提交修改

This commit is contained in:
quyixiao 2025-11-21 21:30:47 +08:00
parent 458b8c7717
commit 027b962ccc
16 changed files with 561 additions and 92 deletions

View File

@ -73,4 +73,6 @@ public interface VvBuyerDao extends BaseMapper<VvBuyerEntity> {
@LIMIT
VvBuyerEntity selectVvBuyerOpenId(String openid);
List<VvBuyerEntity> selectVvBuyerByIdList(@IN List<Long> id);
}

View File

@ -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);
}

View File

@ -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 +

View File

@ -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 +
"}";
}
}

View File

@ -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;
}
}

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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>();

View File

@ -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++) {

View File

@ -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;
}
}

View File

@ -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;
}

View File

@ -21,7 +21,4 @@ public class VvActivityDTO extends VvActivityEntity {
}

View File

@ -8,12 +8,6 @@ import lombok.Data;
public class AppActivityRequest extends AppBaseRequest {
/***
* 活动id
*/
private Long activityId ;
/***
* 推广者id

View File

@ -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);

View File

@ -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);
}

View File

@ -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);