提交修改
This commit is contained in:
parent
2d8e53efc0
commit
6c13b4ccac
@ -0,0 +1,37 @@
|
||||
package com.heyu.api.data.dao.vv;
|
||||
/**
|
||||
* <p>
|
||||
* 推广码 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author quyixiao
|
||||
* @since 2025-12-26
|
||||
*/
|
||||
import com.heyu.api.data.entity.vv.VvPromoterCodeEntity;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@Mapper
|
||||
public interface VvPromoterCodeDao extends BaseMapper<VvPromoterCodeEntity> {
|
||||
|
||||
|
||||
VvPromoterCodeEntity selectVvPromoterCodeById(@Param("id")Long id);
|
||||
|
||||
|
||||
Long insertVvPromoterCode(VvPromoterCodeEntity vvPromoterCode);
|
||||
|
||||
|
||||
Long insertOrUpdateVvPromoterCode(VvPromoterCodeEntity vvPromoterCode);
|
||||
|
||||
|
||||
int updateVvPromoterCodeById(VvPromoterCodeEntity vvPromoterCode);
|
||||
|
||||
|
||||
int updateCoverVvPromoterCodeById(VvPromoterCodeEntity vvPromoterCode);
|
||||
|
||||
|
||||
int deleteVvPromoterCodeById(@Param("id")Long id);
|
||||
|
||||
|
||||
VvPromoterCodeEntity selectVvPromoterCodeByCode(String promoterCode);
|
||||
}
|
||||
@ -0,0 +1,182 @@
|
||||
package com.heyu.api.data.entity.vv;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import com.lz.mybatis.plugin.annotations.AS;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;import java.util.Date;
|
||||
/**
|
||||
*推广码
|
||||
* @author quyixiao
|
||||
* @since 2025-12-26
|
||||
*/
|
||||
|
||||
@Data
|
||||
@TableName("vv_promoter_code")
|
||||
public class VvPromoterCodeEntity implements java.io.Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public final static String CLASS_NAME ="com.heyu.api.data.entity.vv.VvPromoterCodeEntity:";
|
||||
|
||||
public final static String all = CLASS_NAME + "*";
|
||||
public final static String id_ = CLASS_NAME + "id"; //
|
||||
public final static String is_delete = CLASS_NAME + "is_delete"; // 是否删除:0 否 1 删除
|
||||
public final static String create_time = CLASS_NAME + "create_time"; // 创建时间
|
||||
public final static String modify_time = CLASS_NAME + "modify_time"; // 修改时间
|
||||
public final static String create_timestamp = CLASS_NAME + "create_timestamp"; // 时间毫秒值
|
||||
public final static String promoter_code = CLASS_NAME + "promoter_code"; // 推广码
|
||||
public final static String content_ = CLASS_NAME + "content"; // 推广内容
|
||||
public final static String buyer_id = CLASS_NAME + "buyer_id"; // 买家id
|
||||
//
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Long id;
|
||||
//是否删除:0 否 1 删除
|
||||
private Integer isDelete;
|
||||
//创建时间
|
||||
private Date createTime;
|
||||
//修改时间
|
||||
private Date modifyTime;
|
||||
//时间毫秒值
|
||||
private Long createTimestamp;
|
||||
//推广码
|
||||
private String promoterCode;
|
||||
//推广内容
|
||||
private String content;
|
||||
//买家id
|
||||
private Long buyerId;
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param id
|
||||
*/
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否删除:0 否 1 删除
|
||||
* @return
|
||||
*/
|
||||
public Integer getIsDelete() {
|
||||
return isDelete;
|
||||
}
|
||||
/**
|
||||
* 是否删除:0 否 1 删除
|
||||
* @param isDelete
|
||||
*/
|
||||
public void setIsDelete(Integer isDelete) {
|
||||
this.isDelete = isDelete;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
* @return
|
||||
*/
|
||||
public Date getCreateTime() {
|
||||
return createTime;
|
||||
}
|
||||
/**
|
||||
* 创建时间
|
||||
* @param createTime
|
||||
*/
|
||||
public void setCreateTime(Date createTime) {
|
||||
this.createTime = createTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
* @return
|
||||
*/
|
||||
public Date getModifyTime() {
|
||||
return modifyTime;
|
||||
}
|
||||
/**
|
||||
* 修改时间
|
||||
* @param modifyTime
|
||||
*/
|
||||
public void setModifyTime(Date modifyTime) {
|
||||
this.modifyTime = modifyTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* 时间毫秒值
|
||||
* @return
|
||||
*/
|
||||
public Long getCreateTimestamp() {
|
||||
return createTimestamp;
|
||||
}
|
||||
/**
|
||||
* 时间毫秒值
|
||||
* @param createTimestamp
|
||||
*/
|
||||
public void setCreateTimestamp(Long createTimestamp) {
|
||||
this.createTimestamp = createTimestamp;
|
||||
}
|
||||
|
||||
/**
|
||||
* 推广码
|
||||
* @return
|
||||
*/
|
||||
public String getPromoterCode() {
|
||||
return promoterCode;
|
||||
}
|
||||
/**
|
||||
* 推广码
|
||||
* @param promoterCode
|
||||
*/
|
||||
public void setPromoterCode(String promoterCode) {
|
||||
this.promoterCode = promoterCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* 推广内容
|
||||
* @return
|
||||
*/
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
/**
|
||||
* 推广内容
|
||||
* @param content
|
||||
*/
|
||||
public void setContent(String content) {
|
||||
this.content = content;
|
||||
}
|
||||
|
||||
/**
|
||||
* 买家id
|
||||
* @return
|
||||
*/
|
||||
public Long getBuyerId() {
|
||||
return buyerId;
|
||||
}
|
||||
/**
|
||||
* 买家id
|
||||
* @param buyerId
|
||||
*/
|
||||
public void setBuyerId(Long buyerId) {
|
||||
this.buyerId = buyerId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "VvPromoterCodeEntity{" +
|
||||
",id=" + id +
|
||||
",isDelete=" + isDelete +
|
||||
",createTime=" + createTime +
|
||||
",modifyTime=" + modifyTime +
|
||||
",createTimestamp=" + createTimestamp +
|
||||
",promoterCode=" + promoterCode +
|
||||
",content=" + content +
|
||||
",buyerId=" + buyerId +
|
||||
"}";
|
||||
}
|
||||
}
|
||||
@ -10,7 +10,7 @@ import java.util.Date;import java.util.Date;
|
||||
/**
|
||||
*推广者
|
||||
* @author quyixiao
|
||||
* @since 2025-11-21
|
||||
* @since 2025-12-26
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ -31,6 +31,7 @@ private static final long serialVersionUID = 1L;
|
||||
public final static String type_ = CLASS_NAME + "type"; // link,qrcode等
|
||||
public final static String buyer_info = CLASS_NAME + "buyer_info"; // 活动信息
|
||||
public final static String promoter_url = CLASS_NAME + "promoter_url"; // 相关的url
|
||||
public final static String promoter_code = CLASS_NAME + "promoter_code"; // 推广码
|
||||
//
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Long id;
|
||||
@ -52,6 +53,8 @@ private static final long serialVersionUID = 1L;
|
||||
private String buyerInfo;
|
||||
//相关的url
|
||||
private String promoterUrl;
|
||||
//推广码
|
||||
private String promoterCode;
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
@ -202,6 +205,21 @@ private static final long serialVersionUID = 1L;
|
||||
this.promoterUrl = promoterUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
* 推广码
|
||||
* @return
|
||||
*/
|
||||
public String getPromoterCode() {
|
||||
return promoterCode;
|
||||
}
|
||||
/**
|
||||
* 推广码
|
||||
* @param promoterCode
|
||||
*/
|
||||
public void setPromoterCode(String promoterCode) {
|
||||
this.promoterCode = promoterCode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "VvPromoterEntity{" +
|
||||
@ -215,6 +233,7 @@ private static final long serialVersionUID = 1L;
|
||||
",type=" + type +
|
||||
",buyerInfo=" + buyerInfo +
|
||||
",promoterUrl=" + promoterUrl +
|
||||
",promoterCode=" + promoterCode +
|
||||
"}";
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,68 @@
|
||||
package com.heyu.api.data.service.impl.vv;
|
||||
/**
|
||||
* <p>
|
||||
* 推广码 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author quyixiao
|
||||
* @since 2025-12-26
|
||||
*/
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.heyu.api.data.dao.vv.VvPromoterCodeDao;
|
||||
import com.heyu.api.data.entity.vv.VvPromoterCodeEntity;
|
||||
import com.heyu.api.data.service.vv.VvPromoterCodeService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@Service
|
||||
public class VvPromoterCodeServiceImpl extends ServiceImpl<VvPromoterCodeDao, VvPromoterCodeEntity> implements VvPromoterCodeService {
|
||||
|
||||
|
||||
@Autowired
|
||||
private VvPromoterCodeDao vvPromoterCodeDao;
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public VvPromoterCodeEntity selectVvPromoterCodeById(Long id){
|
||||
return vvPromoterCodeDao.selectVvPromoterCodeById(id);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public Long insertVvPromoterCode(VvPromoterCodeEntity vvPromoterCode){
|
||||
return vvPromoterCodeDao.insertVvPromoterCode(vvPromoterCode);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public Long insertOrUpdateVvPromoterCode(VvPromoterCodeEntity vvPromoterCode){
|
||||
return vvPromoterCodeDao.insertOrUpdateVvPromoterCode(vvPromoterCode);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public int updateVvPromoterCodeById(VvPromoterCodeEntity vvPromoterCode){
|
||||
return vvPromoterCodeDao.updateVvPromoterCodeById(vvPromoterCode);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public int updateCoverVvPromoterCodeById(VvPromoterCodeEntity vvPromoterCode){
|
||||
return vvPromoterCodeDao.updateCoverVvPromoterCodeById(vvPromoterCode);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public int deleteVvPromoterCodeById(Long id){
|
||||
return vvPromoterCodeDao.deleteVvPromoterCodeById(id);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
package com.heyu.api.data.service.vv;
|
||||
/**
|
||||
* <p>
|
||||
* 推广码 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author quyixiao
|
||||
* @since 2025-12-26
|
||||
*/
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.heyu.api.data.entity.vv.VvPromoterCodeEntity;
|
||||
public interface VvPromoterCodeService extends IService<VvPromoterCodeEntity> {
|
||||
|
||||
|
||||
|
||||
VvPromoterCodeEntity selectVvPromoterCodeById(Long id);
|
||||
|
||||
|
||||
Long insertVvPromoterCode(VvPromoterCodeEntity vvPromoterCode);
|
||||
|
||||
|
||||
Long insertOrUpdateVvPromoterCode(VvPromoterCodeEntity vvPromoterCode);
|
||||
|
||||
|
||||
int updateVvPromoterCodeById(VvPromoterCodeEntity vvPromoterCode);
|
||||
|
||||
|
||||
int updateCoverVvPromoterCodeById(VvPromoterCodeEntity vvPromoterCode);
|
||||
|
||||
|
||||
int deleteVvPromoterCodeById(Long id);
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.heyu.api.data.dao.vv.VvPromoterCodeDao">
|
||||
|
||||
</mapper>
|
||||
|
||||
@ -94,7 +94,7 @@ public class MysqlMain_insert {
|
||||
|
||||
List<TablesBean> list = new ArrayList<TablesBean>();
|
||||
|
||||
list.add(new TablesBean("vv_front_page"));
|
||||
list.add(new TablesBean("vv_promoter_code"));
|
||||
|
||||
|
||||
|
||||
|
||||
@ -48,7 +48,7 @@ public class MysqlMain_update {
|
||||
}
|
||||
List<TablesBean> list = new ArrayList<TablesBean>();
|
||||
|
||||
list.add(new TablesBean("vv_front_page"));
|
||||
list.add(new TablesBean("vv_promoter"));
|
||||
|
||||
Map<String, String> map = MysqlUtil2ShowCreateTable.getComments();
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
|
||||
@ -1,18 +1,29 @@
|
||||
package com.heyu.api.alibaba.request.mm.order;
|
||||
|
||||
import com.heyu.api.data.entity.vv.VvActivityEntity;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class VvActivityDTO extends VvActivityEntity {
|
||||
public class VvActivityDTO{
|
||||
/***
|
||||
* 过期时间
|
||||
*/
|
||||
private Long activityExpiredTime;
|
||||
|
||||
/***
|
||||
* 推广者id
|
||||
* 推广者id,默认是buyerId
|
||||
*/
|
||||
private Long promoterId;
|
||||
private Long buyerId;
|
||||
|
||||
|
||||
|
||||
/***
|
||||
* 活动id
|
||||
*/
|
||||
private Long activityId;
|
||||
|
||||
/***
|
||||
*
|
||||
*/
|
||||
private String promoterCode;
|
||||
|
||||
}
|
||||
|
||||
@ -1,119 +0,0 @@
|
||||
package com.heyu.api.controller.vv;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.heyu.api.alibaba.request.mm.ActivityUtils;
|
||||
import com.heyu.api.alibaba.request.mm.order.PromoterBuyerInfoDTO;
|
||||
import com.heyu.api.alibaba.request.mm.order.VvActivityDTO;
|
||||
import com.heyu.api.alibaba.request.vv.AppActivityRequest;
|
||||
import com.heyu.api.common.annotation.AppLogin;
|
||||
import com.heyu.api.common.annotation.Describe;
|
||||
import com.heyu.api.data.constants.ApiConstants;
|
||||
import com.heyu.api.data.dao.vv.VvActivityDao;
|
||||
import com.heyu.api.data.dao.vv.VvBuyerDao;
|
||||
import com.heyu.api.data.dao.vv.VvPromoterBuyerDao;
|
||||
import com.heyu.api.data.dao.vv.VvPromoterDao;
|
||||
import com.heyu.api.data.entity.vv.VvActivityEntity;
|
||||
import com.heyu.api.data.entity.vv.VvBuyerEntity;
|
||||
import com.heyu.api.data.entity.vv.VvPromoterBuyerEntity;
|
||||
import com.heyu.api.data.entity.vv.VvPromoterEntity;
|
||||
import com.heyu.api.data.utils.DateUtils;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import com.heyu.api.data.utils.RedisUtils;
|
||||
import com.heyu.api.data.utils.StringUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/app/activity")
|
||||
@AppLogin
|
||||
public class AppActivityController {
|
||||
|
||||
@Autowired
|
||||
private RedisUtils redisUtils;
|
||||
|
||||
@Autowired
|
||||
private VvActivityDao vvActivityDao;
|
||||
|
||||
|
||||
@Autowired
|
||||
private VvPromoterDao vvPromoterDao;
|
||||
|
||||
|
||||
@Autowired
|
||||
private VvPromoterBuyerDao vvPromoterBuyerDao;
|
||||
|
||||
|
||||
@Autowired
|
||||
private VvBuyerDao vvBuyerDao;
|
||||
|
||||
/***
|
||||
* 列表
|
||||
* /app/buyer/info
|
||||
*/
|
||||
@Describe("访问推广链接")
|
||||
@RequestMapping("/register")
|
||||
public R register(@RequestBody AppActivityRequest request) {
|
||||
VvPromoterEntity vvPromoterEntity = vvPromoterDao.selectVvPromoterById(request.getPromoterId());
|
||||
|
||||
if (vvPromoterEntity == null) {
|
||||
return R.error("推广信息不存在");
|
||||
}
|
||||
Long activityId = vvPromoterEntity.getActivityId();
|
||||
if (vvPromoterEntity.getActivityId() == null) {
|
||||
activityId = 2L;
|
||||
}
|
||||
|
||||
VvActivityEntity vvActivityEntity = vvActivityDao.selectVvActivityById(activityId);
|
||||
String activityInfo = redisUtils.get(ApiConstants.token_activity + request.getToken());
|
||||
VvActivityDTO vvActivityOldDTO = null;
|
||||
if (StringUtils.isNotEmpty(activityInfo)) {
|
||||
vvActivityOldDTO = JSONObject.parseObject(activityInfo, VvActivityDTO.class);
|
||||
}
|
||||
PromoterBuyerInfoDTO promoterBuyerInfoDTO = JSONObject.parseObject(JSON.toJSONString(vvActivityOldDTO), PromoterBuyerInfoDTO.class);
|
||||
|
||||
VvBuyerEntity wasBuyerEntity = vvBuyerDao.selectVvBuyerById(promoterBuyerInfoDTO.getWasBuyerId());
|
||||
|
||||
List<VvBuyerEntity> promoterBuyerList = vvBuyerDao.selectVvBuyerByIdList(promoterBuyerInfoDTO.getPromoterBuyerIdList());
|
||||
for (VvBuyerEntity promoterBuyerEntity : promoterBuyerList) {
|
||||
VvPromoterBuyerEntity vvPromoterBuyerEntity = new VvPromoterBuyerEntity();
|
||||
vvPromoterBuyerEntity.setPromoterId(request.getPromoterId());
|
||||
vvPromoterBuyerEntity.setPromoterBuyerId(promoterBuyerEntity.getId());
|
||||
vvPromoterBuyerEntity.setPromoterBuyerName(promoterBuyerEntity.getBuyerName());
|
||||
vvPromoterBuyerEntity.setPromoterBuyerPhone(promoterBuyerEntity.getBuyerPhone());
|
||||
vvPromoterBuyerEntity.setPromoterBuyerWeixin(promoterBuyerEntity.getBuyerWeixin());
|
||||
|
||||
vvPromoterBuyerEntity.setWasBuyerId(wasBuyerEntity.getId());
|
||||
vvPromoterBuyerEntity.setWasBuyerName(wasBuyerEntity.getBuyerName());
|
||||
vvPromoterBuyerEntity.setWasBuyerPhone(wasBuyerEntity.getBuyerPhone());
|
||||
vvPromoterBuyerEntity.setWasBuyerWeixin(wasBuyerEntity.getBuyerWeixin());
|
||||
vvPromoterBuyerDao.insertOrUpdateVvPromoterBuyer(vvPromoterBuyerEntity);
|
||||
}
|
||||
|
||||
if (StringUtils.isNotEmpty(request.getToken())) {
|
||||
VvActivityDTO vvActivityDTO = new VvActivityDTO();
|
||||
BeanUtils.copyProperties(vvActivityEntity, vvActivityDTO);
|
||||
|
||||
vvActivityDTO = ActivityUtils.bestActivityDTO(vvActivityDTO, vvActivityOldDTO);
|
||||
Date endTime = DateUtils.addMinutes(new Date(), 30);
|
||||
vvActivityDTO.setActivityExpiredTime(endTime.getTime());
|
||||
vvActivityDTO.setPromoterId(request.getPromoterId());
|
||||
|
||||
redisUtils.set(ApiConstants.token_activity + request.getToken(), JSON.toJSONString(vvActivityDTO), RedisUtils.thirty_minute);
|
||||
return R.ok().setData(vvActivityEntity);
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,117 @@
|
||||
|
||||
package com.heyu.api.controller.vv;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.heyu.api.alibaba.request.mm.order.VvActivityDTO;
|
||||
import com.heyu.api.alibaba.request.vv.AppCreatePromoterCodeRequest;
|
||||
import com.heyu.api.alibaba.request.vv.AppCreatePromoterLinkRequest;
|
||||
import com.heyu.api.alibaba.request.vv.resp.AppCreatePromoterCodeResp;
|
||||
import com.heyu.api.alibaba.request.vv.resp.AppCreatePromoterLinkResp;
|
||||
import com.heyu.api.common.annotation.AppLogin;
|
||||
import com.heyu.api.common.annotation.Describe;
|
||||
import com.heyu.api.data.dao.vv.*;
|
||||
import com.heyu.api.data.entity.vv.VvPromoterCodeEntity;
|
||||
import com.heyu.api.data.utils.MD5Utils;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import com.heyu.api.data.utils.RedisUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/app")
|
||||
@AppLogin
|
||||
public class AppPromoterCodeController {
|
||||
|
||||
@Autowired
|
||||
private VvPromoterCodeDao vvPromoterCodeDao;
|
||||
|
||||
@Value("${eb.config.weixin.pay.appid}")
|
||||
private String appid;
|
||||
|
||||
|
||||
|
||||
@Autowired
|
||||
private RedisUtils redisUtils;
|
||||
|
||||
@Autowired
|
||||
private VvActivityDao vvActivityDao;
|
||||
|
||||
|
||||
@Autowired
|
||||
private VvPromoterDao vvPromoterDao;
|
||||
|
||||
|
||||
@Autowired
|
||||
private VvPromoterBuyerDao vvPromoterBuyerDao;
|
||||
|
||||
|
||||
@Autowired
|
||||
private VvBuyerDao vvBuyerDao;
|
||||
|
||||
/***
|
||||
* 列表
|
||||
* http://localhost:8888/app/create/promoter/code
|
||||
*/
|
||||
@Describe("创建推广码")
|
||||
@RequestMapping("/create/promoter/code")
|
||||
public R promoterCode(@RequestBody AppCreatePromoterCodeRequest request) {
|
||||
VvActivityDTO vvActivityDTO = getPromoterCode(request.getBuyerId());
|
||||
insertPromoterCode(vvActivityDTO);
|
||||
|
||||
AppCreatePromoterCodeResp promoterCodeResp = new AppCreatePromoterCodeResp();
|
||||
promoterCodeResp.setPromoterCode(vvActivityDTO.getPromoterCode());
|
||||
return R.ok().setData(promoterCodeResp);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***
|
||||
* 列表
|
||||
* http://localhost:8888/app/create/promoter/link
|
||||
*
|
||||
* weixin://dl/business/?appid=wx078a627fc7c5f8e6&path=pages/index/index
|
||||
*/
|
||||
@Describe("创建推广链接")
|
||||
@RequestMapping("/create/promoter/link")
|
||||
public R promoterlink(@RequestBody AppCreatePromoterLinkRequest request) {
|
||||
AppCreatePromoterLinkResp promoterLinkResp = new AppCreatePromoterLinkResp();
|
||||
VvActivityDTO vvActivityDTO = getPromoterCode(request.getBuyerId());
|
||||
String url = "weixin://dl/business/?appid="+appid+"&path=pages/index/index?promoterCode=" + vvActivityDTO.getPromoterCode();
|
||||
promoterLinkResp.setPromoterLink(url);
|
||||
insertPromoterCode(vvActivityDTO);
|
||||
return R.ok().setData(promoterLinkResp);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public VvActivityDTO getPromoterCode(Long buyerId) {
|
||||
Random random = new Random(100000000L);
|
||||
VvActivityDTO vvActivityDTO = new VvActivityDTO();
|
||||
|
||||
vvActivityDTO.setBuyerId(buyerId);
|
||||
vvActivityDTO.setActivityId(2L);
|
||||
String promoteCode = MD5Utils.encode(System.nanoTime() + random.nextInt() + "" + buyerId);
|
||||
|
||||
vvActivityDTO.setPromoterCode(promoteCode);
|
||||
return vvActivityDTO;
|
||||
}
|
||||
|
||||
|
||||
public void insertPromoterCode(VvActivityDTO vvActivityDTO){
|
||||
VvPromoterCodeEntity vvPromoterCode = new VvPromoterCodeEntity();
|
||||
vvPromoterCode.setPromoterCode(vvActivityDTO.getPromoterCode());
|
||||
vvPromoterCode.setContent(JSON.toJSONString(vvActivityDTO));
|
||||
vvPromoterCode.setBuyerId(vvActivityDTO.getBuyerId());
|
||||
vvPromoterCode.setCreateTimestamp(System.currentTimeMillis());
|
||||
vvPromoterCodeDao.insert(vvPromoterCode);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,59 @@
|
||||
|
||||
package com.heyu.api.controller.vv;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.heyu.api.alibaba.request.mm.order.VvActivityDTO;
|
||||
import com.heyu.api.alibaba.request.vv.AppParsePromoterRequest;
|
||||
import com.heyu.api.common.annotation.Describe;
|
||||
import com.heyu.api.data.constants.ApiConstants;
|
||||
import com.heyu.api.data.dao.vv.VvActivityDao;
|
||||
import com.heyu.api.data.dao.vv.VvPromoterCodeDao;
|
||||
import com.heyu.api.data.entity.vv.VvActivityEntity;
|
||||
import com.heyu.api.data.entity.vv.VvPromoterCodeEntity;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import com.heyu.api.data.utils.RedisUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/app")
|
||||
public class AppPromoterCodeParseController {
|
||||
|
||||
@Autowired
|
||||
private VvPromoterCodeDao vvPromoterCodeDao;
|
||||
|
||||
|
||||
@Autowired
|
||||
private RedisUtils redisUtils;
|
||||
|
||||
@Autowired
|
||||
private VvActivityDao vvActivityDao;
|
||||
|
||||
/***
|
||||
* 列表
|
||||
* http://localhost:8888/app/parse/promoter/code
|
||||
*/
|
||||
@Describe("创建推广链接")
|
||||
@RequestMapping("/parse/promoter/code")
|
||||
public R parsePromoterCode(@RequestBody AppParsePromoterRequest request) {
|
||||
VvPromoterCodeEntity promoterCodeEntity = vvPromoterCodeDao.selectVvPromoterCodeByCode(request.getPromoterCode());
|
||||
if(promoterCodeEntity == null){
|
||||
return R.error("promoterCode 不存在");
|
||||
}
|
||||
String content = promoterCodeEntity.getContent();
|
||||
VvActivityDTO vvActivityDTO = JSON.parseObject(content, VvActivityDTO.class);
|
||||
VvActivityEntity vvActivityEntity = vvActivityDao.selectVvActivityById(vvActivityDTO.getActivityId());
|
||||
if(vvActivityEntity ==null){
|
||||
log.info("vvActivityEntity is null");
|
||||
return R.ok();
|
||||
}
|
||||
redisUtils.set(ApiConstants.token_activity + request.getToken(), JSON.toJSONString(vvActivityDTO), RedisUtils.thirty_minute);
|
||||
return R.ok();
|
||||
|
||||
}
|
||||
}
|
||||
@ -1,71 +0,0 @@
|
||||
|
||||
package com.heyu.api.controller.vv;
|
||||
|
||||
|
||||
import com.heyu.api.alibaba.request.vv.AppCreatePromoterCodeRequest;
|
||||
import com.heyu.api.alibaba.request.vv.AppCreatePromoterLinkRequest;
|
||||
import com.heyu.api.alibaba.request.vv.AppParsePromoterRequest;
|
||||
import com.heyu.api.alibaba.request.vv.resp.AppCreatePromoterCodeResp;
|
||||
import com.heyu.api.alibaba.request.vv.resp.AppCreatePromoterLinkResp;
|
||||
import com.heyu.api.common.annotation.AppLogin;
|
||||
import com.heyu.api.common.annotation.Describe;
|
||||
import com.heyu.api.data.dao.vv.VvPromoterBuyerDao;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/app")
|
||||
@AppLogin
|
||||
public class AppPromoterController {
|
||||
|
||||
@Autowired
|
||||
private VvPromoterBuyerDao vvPromoterBuyerDao;
|
||||
|
||||
/***
|
||||
* 列表
|
||||
* http://localhost:8888/app/create/promoter/code
|
||||
*/
|
||||
@Describe("创建推广码")
|
||||
@RequestMapping("/create/promoter/code")
|
||||
public R promoterCode(@RequestBody AppCreatePromoterCodeRequest request) {
|
||||
|
||||
|
||||
AppCreatePromoterCodeResp promoterCodeResp = new AppCreatePromoterCodeResp();
|
||||
|
||||
promoterCodeResp.setPromoterCode("1111111111111");
|
||||
return R.ok().setData(promoterCodeResp);
|
||||
|
||||
}
|
||||
|
||||
/***
|
||||
* 列表
|
||||
* http://localhost:8888/app/create/promoter/link
|
||||
*/
|
||||
@Describe("创建推广链接")
|
||||
@RequestMapping("/create/promoter/link")
|
||||
public R promoterlink(@RequestBody AppCreatePromoterLinkRequest request) {
|
||||
|
||||
AppCreatePromoterLinkResp promoterLinkResp = new AppCreatePromoterLinkResp();
|
||||
|
||||
promoterLinkResp.setPromoterLink("1111111111111");
|
||||
return R.ok().setData(promoterLinkResp);
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
* 列表
|
||||
* http://localhost:8888/app/parse/promoter/code
|
||||
*/
|
||||
@Describe("创建推广链接")
|
||||
@RequestMapping("/parse/promoter/code")
|
||||
public R parsePromoterCode(@RequestBody AppParsePromoterRequest request) {
|
||||
|
||||
return R.ok();
|
||||
|
||||
}
|
||||
}
|
||||
@ -10,10 +10,15 @@ import com.heyu.api.alibaba.request.mm.order.VvActivityDTO;
|
||||
import com.heyu.api.alibaba.request.vv.AppUserLoginRequest;
|
||||
import com.heyu.api.common.annotation.Describe;
|
||||
import com.heyu.api.data.constants.ApiConstants;
|
||||
import com.heyu.api.data.dao.vv.VvActivityDao;
|
||||
import com.heyu.api.data.dao.vv.VvBuyerDao;
|
||||
import com.heyu.api.data.dao.vv.VvPromoterBuyerDao;
|
||||
import com.heyu.api.data.dao.vv.VvPromoterDao;
|
||||
import com.heyu.api.data.dto.BuyerDTO;
|
||||
import com.heyu.api.data.dto.WeiChatLoginDTO;
|
||||
import com.heyu.api.data.entity.vv.VvBuyerEntity;
|
||||
import com.heyu.api.data.entity.vv.VvPromoterBuyerEntity;
|
||||
import com.heyu.api.data.entity.vv.VvPromoterEntity;
|
||||
import com.heyu.api.data.enums.UserLoginFlagEnums;
|
||||
import com.heyu.api.data.service.impl.AppBaseRequest;
|
||||
import com.heyu.api.data.utils.*;
|
||||
@ -23,6 +28,8 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
@Slf4j
|
||||
@ -41,6 +48,18 @@ public class AppUserLoginController {
|
||||
private WeChatUtils weChatUtils;
|
||||
|
||||
|
||||
@Autowired
|
||||
private VvPromoterBuyerDao vvPromoterBuyerDao;
|
||||
|
||||
|
||||
@Autowired
|
||||
private VvPromoterDao vvPromoterDao;
|
||||
|
||||
|
||||
@Autowired
|
||||
private VvActivityDao vvActivityDao;
|
||||
|
||||
|
||||
// http://localhost:8888/app/user/login
|
||||
@RequestMapping("/login")
|
||||
@Describe("微信用户登录")
|
||||
@ -49,7 +68,6 @@ public class AppUserLoginController {
|
||||
if (weiChatLoginDTO == null) {
|
||||
return R.error("code 失效");
|
||||
}
|
||||
|
||||
VvBuyerEntity target = vvBuyerDao.selectVvBuyerOpenId(weiChatLoginDTO.getOpenid());
|
||||
if (target == null) {
|
||||
target = new VvBuyerEntity();
|
||||
@ -61,7 +79,6 @@ public class AppUserLoginController {
|
||||
vvBuyerDao.insertOrUpdateVvBuyer(target);
|
||||
// 默认24 小时
|
||||
BuyerDTO buyerDTO = buildBuyerLoginInfoCacheRedisDB(target, RedisUtils.DEFAULT_EXPIRE, null);
|
||||
replaceActivityInfo(request, "/app/user/login");
|
||||
return R.ok().put("buyer", buyerDTO);
|
||||
}
|
||||
|
||||
@ -85,6 +102,44 @@ public class AppUserLoginController {
|
||||
}
|
||||
|
||||
|
||||
public void insert(String token,Long wasBuyerId) {
|
||||
|
||||
String activityInfo = redisUtils.get(ApiConstants.token_activity + token);
|
||||
|
||||
VvActivityDTO vvActivityDTO = null;
|
||||
if (StringUtils.isNotEmpty(activityInfo)) {
|
||||
vvActivityDTO = JSONObject.parseObject(activityInfo, VvActivityDTO.class);
|
||||
VvBuyerEntity wasBuyerEntity = vvBuyerDao.selectVvBuyerById(wasBuyerId);
|
||||
List<Long> promoterBuyerIdList = new LinkedList<>();
|
||||
promoterBuyerIdList.add(vvActivityDTO.getBuyerId());
|
||||
|
||||
List<VvBuyerEntity> promoterBuyerList = vvBuyerDao.selectVvBuyerByIdList(promoterBuyerIdList);
|
||||
VvPromoterEntity vvPromoter = new VvPromoterEntity();
|
||||
vvPromoter.setActivityId(vvActivityDTO.getActivityId());
|
||||
|
||||
|
||||
for (VvBuyerEntity promoterBuyerEntity : promoterBuyerList) {
|
||||
VvPromoterBuyerEntity vvPromoterBuyerEntity = new VvPromoterBuyerEntity();
|
||||
vvPromoterBuyerEntity.setPromoterId(null);
|
||||
vvPromoterBuyerEntity.setPromoterBuyerId(promoterBuyerEntity.getId());
|
||||
vvPromoterBuyerEntity.setPromoterBuyerName(promoterBuyerEntity.getBuyerName());
|
||||
vvPromoterBuyerEntity.setPromoterBuyerPhone(promoterBuyerEntity.getBuyerPhone());
|
||||
vvPromoterBuyerEntity.setPromoterBuyerWeixin(promoterBuyerEntity.getBuyerWeixin());
|
||||
|
||||
|
||||
|
||||
vvPromoterBuyerEntity.setWasBuyerId(wasBuyerEntity.getId());
|
||||
vvPromoterBuyerEntity.setWasBuyerName(wasBuyerEntity.getBuyerName());
|
||||
vvPromoterBuyerEntity.setWasBuyerPhone(wasBuyerEntity.getBuyerPhone());
|
||||
vvPromoterBuyerEntity.setWasBuyerWeixin(wasBuyerEntity.getBuyerWeixin());
|
||||
vvPromoterBuyerDao.insertOrUpdateVvPromoterBuyer(vvPromoterBuyerEntity);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
// http://localhost:8888/app/user/target/login
|
||||
@RequestMapping("/target/login")
|
||||
@Describe("目标用户登录")
|
||||
@ -122,8 +177,6 @@ public class AppUserLoginController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public void replaceActivityInfo(AppBaseRequest request, String uri) {
|
||||
String activityTokenInfo = redisUtils.get(ApiConstants.token_activity + request.getToken());
|
||||
if (StringUtils.isNotEmpty(activityTokenInfo)) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user