From 6c13b4ccac1c347e381cc67fd444012f90c1b003 Mon Sep 17 00:00:00 2001
From: quyixiao <2621048238@qq.com>
Date: Fri, 26 Dec 2025 09:34:02 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../api/data/dao/vv/VvPromoterCodeDao.java | 37 ++++
.../data/entity/vv/VvPromoterCodeEntity.java | 182 ++++++++++++++++++
.../api/data/entity/vv/VvPromoterEntity.java | 21 +-
.../impl/vv/VvPromoterCodeServiceImpl.java | 68 +++++++
.../service/vv/VvPromoterCodeService.java | 34 ++++
.../resources/mapper/vv/VvPromoterCodeDao.xml | 6 +
.../java/com/test/xxx/MysqlMain_insert.java | 2 +-
.../java/com/test/xxx/MysqlMain_update.java | 2 +-
.../request/mm/order/VvActivityDTO.java | 19 +-
.../controller/vv/AppActivityController.java | 119 ------------
.../vv/AppPromoterCodeController.java | 117 +++++++++++
.../vv/AppPromoterCodeParseController.java | 59 ++++++
.../controller/vv/AppPromoterController.java | 71 -------
.../controller/vv/AppUserLoginController.java | 61 +++++-
14 files changed, 597 insertions(+), 201 deletions(-)
create mode 100644 api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvPromoterCodeDao.java
create mode 100644 api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvPromoterCodeEntity.java
create mode 100644 api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvPromoterCodeServiceImpl.java
create mode 100644 api-mapper/src/main/java/com/heyu/api/data/service/vv/VvPromoterCodeService.java
create mode 100644 api-mapper/src/main/resources/mapper/vv/VvPromoterCodeDao.xml
delete mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppActivityController.java
create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppPromoterCodeController.java
create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppPromoterCodeParseController.java
delete mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppPromoterController.java
diff --git a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvPromoterCodeDao.java b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvPromoterCodeDao.java
new file mode 100644
index 0000000..0aa187c
--- /dev/null
+++ b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvPromoterCodeDao.java
@@ -0,0 +1,37 @@
+package com.heyu.api.data.dao.vv;
+/**
+*
+* 推广码 服务类
+*
+*
+* @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 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);
+}
\ No newline at end of file
diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvPromoterCodeEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvPromoterCodeEntity.java
new file mode 100644
index 0000000..589c1f0
--- /dev/null
+++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvPromoterCodeEntity.java
@@ -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 +
+ "}";
+ }
+}
\ No newline at end of file
diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvPromoterEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvPromoterEntity.java
index fe91f0c..499ee61 100644
--- a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvPromoterEntity.java
+++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvPromoterEntity.java
@@ -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 +
"}";
}
}
\ No newline at end of file
diff --git a/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvPromoterCodeServiceImpl.java b/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvPromoterCodeServiceImpl.java
new file mode 100644
index 0000000..80934c7
--- /dev/null
+++ b/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvPromoterCodeServiceImpl.java
@@ -0,0 +1,68 @@
+package com.heyu.api.data.service.impl.vv;
+/**
+*
+* 推广码 服务类
+*
+*
+* @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 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);
+ }
+
+
+
+}
diff --git a/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvPromoterCodeService.java b/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvPromoterCodeService.java
new file mode 100644
index 0000000..366455a
--- /dev/null
+++ b/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvPromoterCodeService.java
@@ -0,0 +1,34 @@
+package com.heyu.api.data.service.vv;
+/**
+*
+* 推广码 服务类
+*
+*
+* @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 selectVvPromoterCodeById(Long id);
+
+
+ Long insertVvPromoterCode(VvPromoterCodeEntity vvPromoterCode);
+
+
+ Long insertOrUpdateVvPromoterCode(VvPromoterCodeEntity vvPromoterCode);
+
+
+ int updateVvPromoterCodeById(VvPromoterCodeEntity vvPromoterCode);
+
+
+ int updateCoverVvPromoterCodeById(VvPromoterCodeEntity vvPromoterCode);
+
+
+ int deleteVvPromoterCodeById(Long id);
+
+
+}
\ No newline at end of file
diff --git a/api-mapper/src/main/resources/mapper/vv/VvPromoterCodeDao.xml b/api-mapper/src/main/resources/mapper/vv/VvPromoterCodeDao.xml
new file mode 100644
index 0000000..4c0530e
--- /dev/null
+++ b/api-mapper/src/main/resources/mapper/vv/VvPromoterCodeDao.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/api-mapper/src/test/java/com/test/xxx/MysqlMain_insert.java b/api-mapper/src/test/java/com/test/xxx/MysqlMain_insert.java
index 327f9b6..1ba17cc 100644
--- a/api-mapper/src/test/java/com/test/xxx/MysqlMain_insert.java
+++ b/api-mapper/src/test/java/com/test/xxx/MysqlMain_insert.java
@@ -94,7 +94,7 @@ public class MysqlMain_insert {
List list = new ArrayList();
- list.add(new TablesBean("vv_front_page"));
+ list.add(new TablesBean("vv_promoter_code"));
diff --git a/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java b/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java
index 89f0660..c14ea2b 100644
--- a/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java
+++ b/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java
@@ -48,7 +48,7 @@ public class MysqlMain_update {
}
List list = new ArrayList();
- list.add(new TablesBean("vv_front_page"));
+ list.add(new TablesBean("vv_promoter"));
Map map = MysqlUtil2ShowCreateTable.getComments();
for (int i = 0; i < list.size(); i++) {
diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvActivityDTO.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvActivityDTO.java
index 3f83bc3..a0dc2bd 100644
--- a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvActivityDTO.java
+++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VvActivityDTO.java
@@ -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;
}
diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppActivityController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppActivityController.java
deleted file mode 100644
index 627eac7..0000000
--- a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppActivityController.java
+++ /dev/null
@@ -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 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();
- }
-
-
-}
diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppPromoterCodeController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppPromoterCodeController.java
new file mode 100644
index 0000000..2b26fcf
--- /dev/null
+++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppPromoterCodeController.java
@@ -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);
+ }
+
+}
\ No newline at end of file
diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppPromoterCodeParseController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppPromoterCodeParseController.java
new file mode 100644
index 0000000..b1f9956
--- /dev/null
+++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppPromoterCodeParseController.java
@@ -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();
+
+ }
+}
\ No newline at end of file
diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppPromoterController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppPromoterController.java
deleted file mode 100644
index 5059399..0000000
--- a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppPromoterController.java
+++ /dev/null
@@ -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();
-
- }
-}
\ No newline at end of file
diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppUserLoginController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppUserLoginController.java
index 1154b73..367bd1c 100644
--- a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppUserLoginController.java
+++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppUserLoginController.java
@@ -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 promoterBuyerIdList = new LinkedList<>();
+ promoterBuyerIdList.add(vvActivityDTO.getBuyerId());
+
+ List 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)) {