From 027b962ccc8b2bb8840da54e7a0275858f32d2b0 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Fri, 21 Nov 2025 21:30:47 +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 --- .../com/heyu/api/data/dao/vv/VvBuyerDao.java | 2 + .../heyu/api/data/dao/vv/VvPromoterDao.java | 36 +++ .../api/data/entity/vv/VvBuyerEntity.java | 64 +---- .../api/data/entity/vv/VvPromoterEntity.java | 220 ++++++++++++++++++ .../heyu/api/data/enums/AwardStatusEnums.java | 40 ++++ .../impl/vv/VvPromoterServiceImpl.java | 68 ++++++ .../data/service/vv/VvPromoterService.java | 34 +++ .../java/com/test/xxx/MysqlMain_insert.java | 6 +- .../java/com/test/xxx/MysqlMain_update.java | 2 +- .../api/alibaba/request/mm/ActivityUtils.java | 38 +++ .../mm/order/PromoterBuyerInfoDTO.java | 23 ++ .../request/mm/order/VvActivityDTO.java | 3 - .../request/vv/AppActivityRequest.java | 6 - .../controller/mm/AdminOrderController.java | 1 - .../controller/vv/AppActivityController.java | 64 ++++- .../api/controller/vv/AppOrderController.java | 46 +++- 16 files changed, 561 insertions(+), 92 deletions(-) create mode 100644 api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvPromoterDao.java create mode 100644 api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvPromoterEntity.java create mode 100644 api-mapper/src/main/java/com/heyu/api/data/enums/AwardStatusEnums.java create mode 100644 api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvPromoterServiceImpl.java create mode 100644 api-mapper/src/main/java/com/heyu/api/data/service/vv/VvPromoterService.java create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/mm/ActivityUtils.java create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/PromoterBuyerInfoDTO.java diff --git a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvBuyerDao.java b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvBuyerDao.java index 5ece33b..2d9547f 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvBuyerDao.java +++ b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvBuyerDao.java @@ -73,4 +73,6 @@ public interface VvBuyerDao extends BaseMapper { @LIMIT VvBuyerEntity selectVvBuyerOpenId(String openid); + + List selectVvBuyerByIdList(@IN List id); } \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvPromoterDao.java b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvPromoterDao.java new file mode 100644 index 0000000..53570c7 --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvPromoterDao.java @@ -0,0 +1,36 @@ +package com.heyu.api.data.dao.vv; +/** +*

+* 推广者 服务类 +*

+* +* @author quyixiao +* @since 2025-11-21 +*/ +import com.heyu.api.data.entity.vv.VvPromoterEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +@Mapper +public interface VvPromoterDao extends BaseMapper { + + + VvPromoterEntity selectVvPromoterById(@Param("id")Long id); + + + Long insertVvPromoter(VvPromoterEntity vvPromoter); + + + Long insertOrUpdateVvPromoter(VvPromoterEntity vvPromoter); + + + int updateVvPromoterById(VvPromoterEntity vvPromoter); + + + int updateCoverVvPromoterById(VvPromoterEntity vvPromoter); + + + int deleteVvPromoterById(@Param("id")Long id); + + +} \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvBuyerEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvBuyerEntity.java index 55c48ae..ff1c238 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvBuyerEntity.java +++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvBuyerEntity.java @@ -1,16 +1,16 @@ 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;import java.util.Date; /** *买家信息 * @author quyixiao -* @since 2025-11-03 +* @since 2025-11-21 */ @Data @@ -31,9 +31,6 @@ private static final long serialVersionUID = 1L; public final static String create_timestamp = CLASS_NAME + "create_timestamp"; // 买家创建时间 public final static String modify_timestamp = CLASS_NAME + "modify_timestamp"; // 买家修改时间 public final static String is_test = CLASS_NAME + "is_test"; // 是否是测试账号 - public final static String promoter_id = CLASS_NAME + "promoter_id"; // 推荐者id - public final static String scan_code = CLASS_NAME + "scan_code"; // 是否是扫码关注的用户 - public final static String scan_code_award_count = CLASS_NAME + "scan_code_award_count"; // 是否已经领取,是否已经领取新人福利,1 已领取,0 未领取 public final static String promoter_sum_amount = CLASS_NAME + "promoter_sum_amount"; // 总金额 public final static String promoter_draw_cash_success_amount = CLASS_NAME + "promoter_draw_cash_success_amount"; // 提现金额 public final static String promoter_arrive_account_mount = CLASS_NAME + "promoter_arrive_account_mount"; // 到账户余额 @@ -69,12 +66,6 @@ private static final long serialVersionUID = 1L; private Long modifyTimestamp; //是否是测试账号 private Integer isTest; - //推荐者id - private String promoterId; - //是否是扫码关注的用户 - private Integer scanCode; - //是否已经领取,是否已经领取新人福利,1 已领取,0 未领取 - private Integer scanCodeAwardCount; //总金额 private BigDecimal promoterSumAmount; //提现金额 @@ -103,7 +94,6 @@ private static final long serialVersionUID = 1L; private String sessionKey; //微信open_id private String openid; - /** * * @return @@ -254,51 +244,6 @@ private static final long serialVersionUID = 1L; this.isTest = isTest; } - /** - * 推荐者id - * @return - */ - public String getPromoterId() { - return promoterId; - } - /** - * 推荐者id - * @param promoterId - */ - public void setPromoterId(String promoterId) { - this.promoterId = promoterId; - } - - /** - * 是否是扫码关注的用户 - * @return - */ - public Integer getScanCode() { - return scanCode; - } - /** - * 是否是扫码关注的用户 - * @param scanCode - */ - public void setScanCode(Integer scanCode) { - this.scanCode = scanCode; - } - - /** - * 是否已经领取,是否已经领取新人福利,1 已领取,0 未领取 - * @return - */ - public Integer getScanCodeAwardCount() { - return scanCodeAwardCount; - } - /** - * 是否已经领取,是否已经领取新人福利,1 已领取,0 未领取 - * @param scanCodeAwardCount - */ - public void setScanCodeAwardCount(Integer scanCodeAwardCount) { - this.scanCodeAwardCount = scanCodeAwardCount; - } - /** * 总金额 * @return @@ -522,9 +467,6 @@ private static final long serialVersionUID = 1L; ",createTimestamp=" + createTimestamp + ",modifyTimestamp=" + modifyTimestamp + ",isTest=" + isTest + - ",promoterId=" + promoterId + - ",scanCode=" + scanCode + - ",scanCodeAwardCount=" + scanCodeAwardCount + ",promoterSumAmount=" + promoterSumAmount + ",promoterDrawCashSuccessAmount=" + promoterDrawCashSuccessAmount + ",promoterArriveAccountMount=" + promoterArriveAccountMount + 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 new file mode 100644 index 0000000..fe91f0c --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvPromoterEntity.java @@ -0,0 +1,220 @@ +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-11-21 +*/ + +@Data +@TableName("vv_promoter") +public class VvPromoterEntity implements java.io.Serializable { +private static final long serialVersionUID = 1L; + + public final static String CLASS_NAME ="com.heyu.api.data.entity.vv.VvPromoterEntity:"; + + 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 activity_id = CLASS_NAME + "activity_id"; // 活动id + public final static String activity_name = CLASS_NAME + "activity_name"; // 活动名称 + 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 + // + @TableId(value = "id", type = IdType.AUTO) + private Long id; + //是否删除:0 否 1 删除 + private Integer isDelete; + //创建时间 + private Date createTime; + //修改时间 + private Date modifyTime; + //时间毫秒值 + private Long createTimestamp; + //活动id + private Long activityId; + //活动名称 + private String activityName; + //link,qrcode等 + private String type; + //活动信息 + private String buyerInfo; + //相关的url + private String promoterUrl; + /** + * + * @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; + } + + /** + * 活动id + * @return + */ + public Long getActivityId() { + return activityId; + } + /** + * 活动id + * @param activityId + */ + public void setActivityId(Long activityId) { + this.activityId = activityId; + } + + /** + * 活动名称 + * @return + */ + public String getActivityName() { + return activityName; + } + /** + * 活动名称 + * @param activityName + */ + public void setActivityName(String activityName) { + this.activityName = activityName; + } + + /** + * link,qrcode等 + * @return + */ + public String getType() { + return type; + } + /** + * link,qrcode等 + * @param type + */ + public void setType(String type) { + this.type = type; + } + + /** + * 活动信息 + * @return + */ + public String getBuyerInfo() { + return buyerInfo; + } + /** + * 活动信息 + * @param buyerInfo + */ + public void setBuyerInfo(String buyerInfo) { + this.buyerInfo = buyerInfo; + } + + /** + * 相关的url + * @return + */ + public String getPromoterUrl() { + return promoterUrl; + } + /** + * 相关的url + * @param promoterUrl + */ + public void setPromoterUrl(String promoterUrl) { + this.promoterUrl = promoterUrl; + } + + @Override + public String toString() { + return "VvPromoterEntity{" + + ",id=" + id + + ",isDelete=" + isDelete + + ",createTime=" + createTime + + ",modifyTime=" + modifyTime + + ",createTimestamp=" + createTimestamp + + ",activityId=" + activityId + + ",activityName=" + activityName + + ",type=" + type + + ",buyerInfo=" + buyerInfo + + ",promoterUrl=" + promoterUrl + + "}"; + } +} \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/enums/AwardStatusEnums.java b/api-mapper/src/main/java/com/heyu/api/data/enums/AwardStatusEnums.java new file mode 100644 index 0000000..4487d50 --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/enums/AwardStatusEnums.java @@ -0,0 +1,40 @@ +package com.heyu.api.data.enums; + + +/*** + * create 创建, canceled 取消 , arrive,到账 + */ +public enum AwardStatusEnums { + + + create("create", "创建"), + + canceled("canceled", "取消"), + + arrive("arrive", "到账"); + + private String status; + + private String desc; + + AwardStatusEnums(String status, String desc) { + this.status = status; + this.desc = desc; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvPromoterServiceImpl.java b/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvPromoterServiceImpl.java new file mode 100644 index 0000000..b8ec5cc --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/service/impl/vv/VvPromoterServiceImpl.java @@ -0,0 +1,68 @@ +package com.heyu.api.data.service.impl.vv; +/** +*

+* 推广者 服务类 +*

+* +* @author quyixiao +* @since 2025-11-21 +*/ + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.heyu.api.data.dao.vv.VvPromoterDao; +import com.heyu.api.data.entity.vv.VvPromoterEntity; +import com.heyu.api.data.service.vv.VvPromoterService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +@Service +public class VvPromoterServiceImpl extends ServiceImpl implements VvPromoterService { + + + @Autowired + private VvPromoterDao vvPromoterDao; + + + + @Override + public VvPromoterEntity selectVvPromoterById(Long id){ + return vvPromoterDao.selectVvPromoterById(id); + } + + + + @Override + public Long insertVvPromoter(VvPromoterEntity vvPromoter){ + return vvPromoterDao.insertVvPromoter(vvPromoter); + } + + + + @Override + public Long insertOrUpdateVvPromoter(VvPromoterEntity vvPromoter){ + return vvPromoterDao.insertOrUpdateVvPromoter(vvPromoter); + } + + + + @Override + public int updateVvPromoterById(VvPromoterEntity vvPromoter){ + return vvPromoterDao.updateVvPromoterById(vvPromoter); + } + + + + @Override + public int updateCoverVvPromoterById(VvPromoterEntity vvPromoter){ + return vvPromoterDao.updateCoverVvPromoterById(vvPromoter); + } + + + + @Override + public int deleteVvPromoterById(Long id){ + return vvPromoterDao.deleteVvPromoterById(id); + } + + + +} diff --git a/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvPromoterService.java b/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvPromoterService.java new file mode 100644 index 0000000..cf9b455 --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/service/vv/VvPromoterService.java @@ -0,0 +1,34 @@ +package com.heyu.api.data.service.vv; +/** +*

+* 推广者 服务类 +*

+* +* @author quyixiao +* @since 2025-11-21 +*/ +import com.baomidou.mybatisplus.extension.service.IService; +import com.heyu.api.data.entity.vv.VvPromoterEntity; +public interface VvPromoterService extends IService { + + + + VvPromoterEntity selectVvPromoterById(Long id); + + + Long insertVvPromoter(VvPromoterEntity vvPromoter); + + + Long insertOrUpdateVvPromoter(VvPromoterEntity vvPromoter); + + + int updateVvPromoterById(VvPromoterEntity vvPromoter); + + + int updateCoverVvPromoterById(VvPromoterEntity vvPromoter); + + + int deleteVvPromoterById(Long id); + + +} \ No newline at end of file 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 3ea49b5..95cf77f 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,9 +94,9 @@ public class MysqlMain_insert { List list = new ArrayList(); - list.add(new TablesBean("vv_promoter_buyer")); - list.add(new TablesBean("vv_promoter_trade_order_award")); - list.add(new TablesBean("vv_promoter_trade_order_line_award")); + list.add(new TablesBean("vv_promoter")); + + List list2 = new ArrayList(); 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 6ed2c06..9fd6312 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_shopping_cart")); + list.add(new TablesBean("vv_buyer")); 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/ActivityUtils.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/ActivityUtils.java new file mode 100644 index 0000000..28889e4 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/ActivityUtils.java @@ -0,0 +1,38 @@ +package com.heyu.api.alibaba.request.mm; + +import com.heyu.api.alibaba.request.mm.order.VvActivityDTO; + +import java.math.BigDecimal; + +public class ActivityUtils { + + + public static VvActivityDTO bestActivityDTO(VvActivityDTO v1, VvActivityDTO v2) { + + + if (v1 == null) { + + return v2; + } + + if (v2 == null) { + + return v1; + } + + BigDecimal awardAmount = v1.getAwardAmount(); + BigDecimal discountAmount = v1.getDiscountAmount(); + + if (awardAmount == null || (v2.getAwardAmount() != null && v2.getAwardAmount().compareTo(awardAmount) >= 0)) { + awardAmount = v2.getAwardAmount(); + } + + if (discountAmount == null || (v2.getDiscountAmount() != null && v2.getDiscountAmount().compareTo(discountAmount) >= 0)) { + discountAmount = v2.getDiscountAmount(); + } + + v1.setAwardAmount(awardAmount); + v1.setDiscountAmount(discountAmount); + return v1; + } +} diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/PromoterBuyerInfoDTO.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/PromoterBuyerInfoDTO.java new file mode 100644 index 0000000..1757038 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/PromoterBuyerInfoDTO.java @@ -0,0 +1,23 @@ +package com.heyu.api.alibaba.request.mm.order; + +import lombok.Data; + +import java.util.List; + + +@Data +public class PromoterBuyerInfoDTO { + /*** + * 买家信息 + */ + private List promoterBuyerIdList; + + /*** + * 被推荐者买家id + */ + private Long wasBuyerId; + + + + +} 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 e3ad54b..6daf162 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 @@ -21,7 +21,4 @@ public class VvActivityDTO extends VvActivityEntity { - - - } diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppActivityRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppActivityRequest.java index 16bdc2d..f8fba07 100644 --- a/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppActivityRequest.java +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/vv/AppActivityRequest.java @@ -8,12 +8,6 @@ import lombok.Data; public class AppActivityRequest extends AppBaseRequest { - /*** - * 活动id - */ - private Long activityId ; - - /*** * 推广者id diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java index 0461bf3..3298b4c 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java @@ -138,7 +138,6 @@ public class AdminOrderController { // 获取订单 List tradeOrderIds = SanUtils.list2listFilterNull(vvTradeOrderLineEntities, VvTradeOrderLineEntity::getTradeOrderId); List tradeOrderEntities = vvTradeOrderDao.selectVvTradeOrderByTradeOrderIds(tradeOrderIds); - // 对订单进行排序,必须按照子单的顺序 Map vvTradeOrderEntityMap = SanUtils.groupByFiled2Map(tradeOrderEntities, VvTradeOrderEntity::getId); 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 index 7244941..717f888 100644 --- 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 @@ -2,13 +2,22 @@ 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; @@ -21,6 +30,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.Date; +import java.util.List; @Slf4j @@ -35,26 +45,70 @@ public class AppActivityController { @Autowired private VvActivityDao vvActivityDao; + + @Autowired + private VvPromoterDao vvPromoterDao; + + + @Autowired + private VvPromoterBuyerDao vvPromoterBuyerDao; + + + @Autowired + private VvBuyerDao vvBuyerDao; + /*** * 列表 * /app/buyer/info */ @Describe("访问推广链接") - @RequestMapping("/info") - public R list(@RequestBody AppActivityRequest request) { - - Long activityId = request.getActivityId(); - if (request.getActivityId() == null) { + @RequestMapping("/register") + public R register(@RequestBody AppActivityRequest request) { + VvPromoterEntity vvPromoterEntity = vvPromoterDao.selectVvPromoterById(Long.parseLong(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); } diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java index 80e9e5e..87a80ce 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java @@ -4,6 +4,7 @@ package com.heyu.api.controller.vv; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.heyu.api.alibaba.request.mm.ActivityUtils; import com.heyu.api.alibaba.request.mm.order.AppCloseDTO; import com.heyu.api.alibaba.request.mm.order.AppDeliveredDTO; import com.heyu.api.alibaba.request.mm.order.VvActivityDTO; @@ -112,6 +113,8 @@ public class AppOrderController { @Autowired private RedisUtils redisUtils; + @Autowired + private VvShoppingCartDao vvShoppingCartDao; /*** * https://api.1024api.com/api-interface/app/order/list @@ -181,6 +184,8 @@ public class AppOrderController { List tradeOrderEntities = vvTradeOrderDao.selectVvTradeOrderByTradeOrderIds(tradeOrderIds); List vvOrderListResps = vvTradeOrderConvertService.convertTradeOrderLineResp(tradeOrderEntities, vvTradeOrderLineEntities, true); List appPackageDTOList = vvTradeOrderConvertService.buildAppPackageDTO(vvOrderListResps); + + return R.ok().setData(appPackageDTOList); } @@ -197,7 +202,6 @@ public class AppOrderController { List vvSkuPropertyValueList = vvSkuPropertyValueDao.selectVvSkuPropertyValueBySkuIds(skuIds); Map vvTradeOrderLineMap = SanUtils.groupByFiled2Map(vvOrderRequest.getVvTradeOrderLineDTOList(), VvTradeOrderLineDTO::getSkuId); - List vvSkuEntities = vvSkuDao.selectVvSkuBySkuIds(skuIds); for (VvSkuEntity vvSkuEntity : vvSkuEntities) { VvTradeOrderLineDTO vvTradeOrderLineDTO = vvTradeOrderLineMap.get(vvSkuEntity.getId()); @@ -210,27 +214,30 @@ public class AppOrderController { } } + Map skuEntityMap = SanUtils.groupByFiled2Map(vvSkuEntities, VvSkuEntity::getId); - Map> vvSkuPropertyValueMap = SanUtils.groupByFiled2MapList(vvSkuPropertyValueList, VvSkuPropertyValueEntity::getSkuId); - List productIdList = SanUtils.field2Set2List(vvSkuEntities, VvSkuEntity::getProductId); List vvProductList = vvProductDao.selectVvProductByProductIds(productIdList); Map vvProductMap = SanUtils.groupByFiled2Map(vvProductList, VvProductEntity::getId); VvBuyerAddressEntity vvBuyerAddress = vvBuyerAddressDao.selectVvBuyerAddressById(vvOrderRequest.getBuyerAddressId()); - List vvProductPropertyEntities = vvProductPropertyDao.selectVvProductPropertyByProductIdList(productIdList); Map> vvProductPropertyMap = SanUtils.groupByFiled2MapList(vvProductPropertyEntities, VvProductPropertyEntity::getProductId); String activityInfo = redisUtils.get(ApiConstants.token_activity + vvOrderRequest.getToken()); - VvActivityDTO vvActivityDTO =null; + VvActivityDTO vvActivityDTO = null; if (StringUtils.isNotEmpty(activityInfo)) { vvActivityDTO = JSONObject.parseObject(activityInfo, VvActivityDTO.class); } - Integer batchNum = SanUtils.sum(vvOrderRequest.getVvTradeOrderLineDTOList(),VvTradeOrderLineDTO::getNum ); + Integer batchNum = SanUtils.sum(vvOrderRequest.getVvTradeOrderLineDTOList(), VvTradeOrderLineDTO::getNum); + + + + + for (VvTradeOrderLineDTO vvTradeOrderLineDTO : vvOrderRequest.getVvTradeOrderLineDTOList()) { VvSkuEntity vvSkuEntity = skuEntityMap.get(vvTradeOrderLineDTO.getSkuId()); @@ -238,6 +245,13 @@ public class AppOrderController { VvProductEntity vvProduct = vvProductMap.get(vvSkuEntity.getProductId()); List propertyNameValues = new ArrayList<>(); + Long shoppingCartId = vvTradeOrderLineDTO.getShoppingCartId(); + if (shoppingCartId != null) { + VvShoppingCartEntity vvShoppingCart = vvShoppingCartDao.selectVvShoppingCartById(shoppingCartId); + String shippingActivityInfo = vvShoppingCart.getActivityInfo(); + VvActivityDTO vvActivityDTOShipping = JSONObject.parseObject(shippingActivityInfo, VvActivityDTO.class); + vvActivityDTO = ActivityUtils.bestActivityDTO(vvActivityDTO,vvActivityDTOShipping); + } Map vvSkuPropertyValueItemMap = SanUtils.groupByFiled2Map(vvSkuPropertyValueEntities, VvSkuPropertyValueEntity::getProductPropertyName); // 对商品属性进行排序 List vvProductPropertyList = vvProductPropertyMap.get(vvSkuEntity.getProductId()); @@ -276,7 +290,6 @@ public class AppOrderController { vvTradeOrderLineEntity.setBuyerId(vvOrderRequest.getBuyerId()); vvTradeOrderLineEntity.setBuyerAddressId(vvOrderRequest.getBuyerAddressId()); vvTradeOrderLineEntity.setBatchNum(batchNum); // sku 对应的笔数 - // 支付金额默认是促销价格 BigDecimal payAmount = vvSkuEntity.getPromotionPrice(); if (vvActivityDTO != null) { @@ -284,7 +297,6 @@ public class AppOrderController { vvTradeOrderLineEntity.setDiscountAmount(vvActivityDTO.getDiscountAmount()); payAmount = BigDecimalUtil.subtract(vvSkuEntity.getPromotionPrice(), vvActivityDTO.getDiscountAmount()); } - vvTradeOrderLineEntity.setPayAmount(payAmount); vvTradeOrderLineEntity.setActivityInfo(activityInfo); vvTradeOrderLineEntityList.add(vvTradeOrderLineEntity); @@ -292,7 +304,6 @@ public class AppOrderController { } VvTradeOrderEntity vvTradeOrderEntity = new VvTradeOrderEntity(); - VvBuyerEntity vvBuyerEntity = vvBuyerDao.selectVvBuyerById(vvOrderRequest.getBuyerId()); //创建时间 vvTradeOrderEntity.setCreateTime(new Date()); @@ -318,12 +329,25 @@ public class AppOrderController { vvTradeOrderEntity.setBuyerAddressId(vvOrderRequest.getBuyerAddressId()); BigDecimal tradePayAmount = SanUtils.sum(vvTradeOrderLineEntityList, VvTradeOrderLineEntity::getPayAmount); - vvTradeOrderEntity.setPayAmount(tradePayAmount); vvTradeOrderDao.insertVvTradeOrder(vvTradeOrderEntity); + + List vvPromoterTradeOrderLineAwardEntityList = new ArrayList<>(); + + for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { tradeOrderLineEntity.setTradeOrderId(vvTradeOrderEntity.getId()); + + // 如果在奖励金额 + if(tradeOrderLineEntity.getAwardAmount().compareTo(BigDecimal.ZERO) >0){ + VvPromoterTradeOrderLineAwardEntity vvPromoterTradeOrderLineAwardEntity = new VvPromoterTradeOrderLineAwardEntity(); + vvPromoterTradeOrderLineAwardEntity.setAwardAmount(vvActivityDTO.getAwardAmount()); + vvPromoterTradeOrderLineAwardEntity.setTradeOrderId(vvTradeOrderEntity.getId()); + vvPromoterTradeOrderLineAwardEntity.setTradeOrderLineId(tradeOrderLineEntity.getId()); + vvPromoterTradeOrderLineAwardEntity.setStatus(OrderStatusEnums.create.getStatus()); + vvPromoterTradeOrderLineAwardEntityList.add(vvPromoterTradeOrderLineAwardEntity); + } vvTradeOrderLineDao.insertOrUpdateVvTradeOrderLine(tradeOrderLineEntity); } for (VvTradeOrderLineDTO vvTradeOrderLineDTO : vvOrderRequest.getVvTradeOrderLineDTOList()) { @@ -340,7 +364,6 @@ public class AppOrderController { vvBuyerEntity.getOpenid() ); - String prepay_id = jsapiPrepayResponse.getPrepayId(); if (jsapiPrepayResponse != null && jsapiPrepayResponse.getPrepayId() != null) { List vvTradeOrderLineEntities = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderId(vvTradeOrderEntity.getId()); @@ -351,7 +374,6 @@ public class AppOrderController { vvTradeOrderLineEntity.setGmtPrePay(new Date()); vvTradeOrderLineDao.updateVvTradeOrderLineById(vvTradeOrderLineEntity); } - // 发送订单关单的消息 Date currentTime = new Date(); Date after30 = DateUtils.addMinutes(currentTime, 30);