提交修改
This commit is contained in:
parent
458b8c7717
commit
027b962ccc
@ -73,4 +73,6 @@ public interface VvBuyerDao extends BaseMapper<VvBuyerEntity> {
|
||||
|
||||
@LIMIT
|
||||
VvBuyerEntity selectVvBuyerOpenId(String openid);
|
||||
|
||||
List<VvBuyerEntity> selectVvBuyerByIdList(@IN List<Long> id);
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
package com.heyu.api.data.dao.vv;
|
||||
/**
|
||||
* <p>
|
||||
* 推广者 服务类
|
||||
* </p>
|
||||
*
|
||||
* @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> {
|
||||
|
||||
|
||||
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);
|
||||
|
||||
|
||||
}
|
||||
@ -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 +
|
||||
|
||||
@ -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 +
|
||||
"}";
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,68 @@
|
||||
package com.heyu.api.data.service.impl.vv;
|
||||
/**
|
||||
* <p>
|
||||
* 推广者 服务类
|
||||
* </p>
|
||||
*
|
||||
* @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<VvPromoterDao, VvPromoterEntity> 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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
package com.heyu.api.data.service.vv;
|
||||
/**
|
||||
* <p>
|
||||
* 推广者 服务类
|
||||
* </p>
|
||||
*
|
||||
* @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> {
|
||||
|
||||
|
||||
|
||||
VvPromoterEntity selectVvPromoterById(Long id);
|
||||
|
||||
|
||||
Long insertVvPromoter(VvPromoterEntity vvPromoter);
|
||||
|
||||
|
||||
Long insertOrUpdateVvPromoter(VvPromoterEntity vvPromoter);
|
||||
|
||||
|
||||
int updateVvPromoterById(VvPromoterEntity vvPromoter);
|
||||
|
||||
|
||||
int updateCoverVvPromoterById(VvPromoterEntity vvPromoter);
|
||||
|
||||
|
||||
int deleteVvPromoterById(Long id);
|
||||
|
||||
|
||||
}
|
||||
@ -94,9 +94,9 @@ public class MysqlMain_insert {
|
||||
|
||||
List<TablesBean> list = new ArrayList<TablesBean>();
|
||||
|
||||
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<TablesBean> list2 = new ArrayList<TablesBean>();
|
||||
|
||||
@ -48,7 +48,7 @@ public class MysqlMain_update {
|
||||
}
|
||||
List<TablesBean> list = new ArrayList<TablesBean>();
|
||||
|
||||
list.add(new TablesBean("vv_shopping_cart"));
|
||||
list.add(new TablesBean("vv_buyer"));
|
||||
|
||||
Map<String, String> map = MysqlUtil2ShowCreateTable.getComments();
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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<Long> promoterBuyerIdList;
|
||||
|
||||
/***
|
||||
* 被推荐者买家id
|
||||
*/
|
||||
private Long wasBuyerId;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -21,7 +21,4 @@ public class VvActivityDTO extends VvActivityEntity {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -8,12 +8,6 @@ import lombok.Data;
|
||||
public class AppActivityRequest extends AppBaseRequest {
|
||||
|
||||
|
||||
/***
|
||||
* 活动id
|
||||
*/
|
||||
private Long activityId ;
|
||||
|
||||
|
||||
|
||||
/***
|
||||
* 推广者id
|
||||
|
||||
@ -138,7 +138,6 @@ public class AdminOrderController {
|
||||
// 获取订单
|
||||
List<Long> tradeOrderIds = SanUtils.list2listFilterNull(vvTradeOrderLineEntities, VvTradeOrderLineEntity::getTradeOrderId);
|
||||
List<VvTradeOrderEntity> tradeOrderEntities = vvTradeOrderDao.selectVvTradeOrderByTradeOrderIds(tradeOrderIds);
|
||||
|
||||
// 对订单进行排序,必须按照子单的顺序
|
||||
Map<Long, VvTradeOrderEntity> vvTradeOrderEntityMap = SanUtils.groupByFiled2Map(tradeOrderEntities, VvTradeOrderEntity::getId);
|
||||
|
||||
|
||||
@ -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<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);
|
||||
}
|
||||
|
||||
@ -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<VvTradeOrderEntity> tradeOrderEntities = vvTradeOrderDao.selectVvTradeOrderByTradeOrderIds(tradeOrderIds);
|
||||
List<VVOrderListResp> vvOrderListResps = vvTradeOrderConvertService.convertTradeOrderLineResp(tradeOrderEntities, vvTradeOrderLineEntities, true);
|
||||
List<AppPackageDTO> appPackageDTOList = vvTradeOrderConvertService.buildAppPackageDTO(vvOrderListResps);
|
||||
|
||||
|
||||
return R.ok().setData(appPackageDTOList);
|
||||
}
|
||||
|
||||
@ -197,7 +202,6 @@ public class AppOrderController {
|
||||
List<VvSkuPropertyValueEntity> vvSkuPropertyValueList = vvSkuPropertyValueDao.selectVvSkuPropertyValueBySkuIds(skuIds);
|
||||
Map<Long, VvTradeOrderLineDTO> vvTradeOrderLineMap = SanUtils.groupByFiled2Map(vvOrderRequest.getVvTradeOrderLineDTOList(), VvTradeOrderLineDTO::getSkuId);
|
||||
|
||||
|
||||
List<VvSkuEntity> vvSkuEntities = vvSkuDao.selectVvSkuBySkuIds(skuIds);
|
||||
for (VvSkuEntity vvSkuEntity : vvSkuEntities) {
|
||||
VvTradeOrderLineDTO vvTradeOrderLineDTO = vvTradeOrderLineMap.get(vvSkuEntity.getId());
|
||||
@ -210,27 +214,30 @@ public class AppOrderController {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Map<Long, VvSkuEntity> skuEntityMap = SanUtils.groupByFiled2Map(vvSkuEntities, VvSkuEntity::getId);
|
||||
|
||||
Map<Long, List<VvSkuPropertyValueEntity>> vvSkuPropertyValueMap = SanUtils.groupByFiled2MapList(vvSkuPropertyValueList, VvSkuPropertyValueEntity::getSkuId);
|
||||
|
||||
List<Long> productIdList = SanUtils.field2Set2List(vvSkuEntities, VvSkuEntity::getProductId);
|
||||
List<VvProductEntity> vvProductList = vvProductDao.selectVvProductByProductIds(productIdList);
|
||||
|
||||
Map<Long, VvProductEntity> vvProductMap = SanUtils.groupByFiled2Map(vvProductList, VvProductEntity::getId);
|
||||
VvBuyerAddressEntity vvBuyerAddress = vvBuyerAddressDao.selectVvBuyerAddressById(vvOrderRequest.getBuyerAddressId());
|
||||
|
||||
|
||||
List<VvProductPropertyEntity> vvProductPropertyEntities = vvProductPropertyDao.selectVvProductPropertyByProductIdList(productIdList);
|
||||
Map<Long, List<VvProductPropertyEntity>> 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<PropertyNameValue> 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<String, VvSkuPropertyValueEntity> vvSkuPropertyValueItemMap = SanUtils.groupByFiled2Map(vvSkuPropertyValueEntities, VvSkuPropertyValueEntity::getProductPropertyName);
|
||||
// 对商品属性进行排序
|
||||
List<VvProductPropertyEntity> 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<VvPromoterTradeOrderLineAwardEntity> 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<VvTradeOrderLineEntity> 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);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user