From a792d6da6bff54d37009bdcbc929db77933e911a Mon Sep 17 00:00:00 2001 From: xiaohu <1901900812@qq.com> Date: Sun, 13 Jul 2025 19:02:53 +0800 Subject: [PATCH] //activity v. --- .../domain/po/WxLegionActivityOrder.java | 19 +++++--- .../domain/po/WxVtwoActivityOrder.java | 5 +- .../service/WxVtwoActivityOrderService.java | 2 + .../WxLegionActivityOrderServiceImpl.java | 22 ++++++++- ...twoActivityGrantSettlementServiceImpl.java | 21 +++++--- .../impl/WxVtwoActivityOrderServiceImpl.java | 17 ++++++- .../WxVtwoCashBackGrantAwardServiceImpl.java | 48 +++++++++++++------ .../mapper/WxVtwoActivityOrderMapper.xml | 7 +++ 8 files changed, 109 insertions(+), 32 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivityOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivityOrder.java index 64ef15cd3..116d1af86 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivityOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxLegionActivityOrder.java @@ -52,7 +52,7 @@ public class WxLegionActivityOrder extends TenantEntity { * 订单金额 */ @io.swagger.annotations.ApiModelProperty(value="订单金额",name="orderMoney") - @Excel(name = "订单金额", width = 20, orderNum = "12") + @Excel(name = "订单金额", width = 20, orderNum = "13") @TableField(value = "order_money") private BigDecimal orderMoney; @@ -110,6 +110,9 @@ public class WxLegionActivityOrder extends TenantEntity { private String merchantName; @TableField(exist = false) private List merchantIdList; + @Excel(name = "商铺号", width = 20, orderNum = "8") + @TableField(exist = false) + private String merchantShopNum; /** * 军团ID @@ -117,7 +120,7 @@ public class WxLegionActivityOrder extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="军团ID",name="legionId") @TableField(value = "legion_id") private Long legionId; - @Excel(name = "所属军团", width = 20, orderNum = "8") + @Excel(name = "所属军团", width = 20, orderNum = "9") @TableField(exist = false) private String legionName; @@ -130,14 +133,14 @@ public class WxLegionActivityOrder extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="联盟id",name="unionId") @TableField(value = "union_id") private Long unionId; - @Excel(name = "所属联盟", width = 20, orderNum = "9") + @Excel(name = "所属联盟", width = 20, orderNum = "10") @TableField(exist = false) private String unionName; // /** // * 卡属派系 // */ -// @Excel(name = "所属派系", width = 20, orderNum = "10", replace = {"原联盟_1", "非联盟_2"}) +// @Excel(name = "所属派系", width = 20, orderNum = "11", replace = {"原联盟_1", "非联盟_2"}) // @TableField(exist = false) // private Integer unionType; @@ -151,7 +154,7 @@ public class WxLegionActivityOrder extends TenantEntity { * 0:签单, 1:外部军团带单1, 2:内部军团不同联盟带单, 3:内部军团相同联盟带单, 4:内部军团无联盟带单 */ @io.swagger.annotations.ApiModelProperty(value="带单类型 0:签单, 1:外部军团带单1, 2:内部军团不同联盟带单, 3:内部军团相同联盟带单, 4:内部军团无联盟带单",name="orderType") - @Excel(name = "带单类型", width = 20, orderNum = "13", replace = {"签单_0", "外部军团带单_1", "内部军团不同联盟带单_2", "内部军团相同联盟带单_3", "内部军团无联盟带单_4"}) + @Excel(name = "带单类型", width = 20, orderNum = "14", replace = {"签单_0", "外部军团带单_1", "内部军团不同联盟带单_2", "内部军团相同联盟带单_3", "内部军团无联盟带单_4"}) @TableField(value = "order_type") private Integer orderType; @TableField(exist = false) @@ -194,7 +197,7 @@ public class WxLegionActivityOrder extends TenantEntity { * 0:审核中, 1:已审批, 2:已驳回, 3:已失效 */ @io.swagger.annotations.ApiModelProperty(value="审批状态 0:审核中, 1:已审批, 2:已驳回, 3:已失效",name="auditStatus") - @Excel(name = "审核状态", width = 20, orderNum = "11", replace = {"审核中_0", "已审批_1", "已驳回_2", "已失效_3"}) + @Excel(name = "审核状态", width = 20, orderNum = "12", replace = {"审核中_0", "已审批_1", "已驳回_2", "已失效_3"}) @TableField(value = "audit_status") private Integer auditStatus; @@ -210,7 +213,7 @@ public class WxLegionActivityOrder extends TenantEntity { * 审核时间 */ @io.swagger.annotations.ApiModelProperty(value="审核时间",name="auditTime") - @Excel(name = "审核时间", format = "yyyy-MM-dd HH:mm:ss", width = 20, orderNum = "14") + @Excel(name = "审核时间", format = "yyyy-MM-dd HH:mm:ss", width = 20, orderNum = "15") @TableField(value = "audit_time") private Date auditTime; @@ -223,6 +226,7 @@ public class WxLegionActivityOrder extends TenantEntity { /** * 抽奖券编码 */ + @Excel(name = "抽奖券编码", width = 20, orderNum = "8") @TableField(exist = false) private String lotteryNum; @TableField(exist = false) @@ -241,6 +245,7 @@ public class WxLegionActivityOrder extends TenantEntity { /** * 抽奖券数量 */ + @Excel(name = "抽奖券数量", width = 20, orderNum = "8") @TableField(exist = false) private Integer lotteryCount; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxVtwoActivityOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxVtwoActivityOrder.java index 849dea992..20142993f 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxVtwoActivityOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxVtwoActivityOrder.java @@ -105,6 +105,9 @@ public class WxVtwoActivityOrder extends TenantEntity { @TableField(value = "from_order_id") private Long fromOrderId; + @TableField(exist = false) + private List fromOrderIds; + /** * 订单号 */ @@ -214,7 +217,7 @@ public class WxVtwoActivityOrder extends TenantEntity { /** * 审核时间 */ - @Excel(name = "提交时间", format = "yyyy-MM-dd HH:mm:ss", width = 20, orderNum = "13") + @Excel(name = "审核时间", format = "yyyy-MM-dd HH:mm:ss", width = 20, orderNum = "13") @TableField(value = "audit_time") private Date auditTime; diff --git a/mallinkService/src/main/java/com/iformall/service/WxVtwoActivityOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxVtwoActivityOrderService.java index 5c27ab05e..93d7fbd5f 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxVtwoActivityOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxVtwoActivityOrderService.java @@ -59,4 +59,6 @@ public interface WxVtwoActivityOrderService extends IService orderCountStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo); List orderBusinessStatistics(WxVtwoActivityStatisticsVo statisticsVo); + + Map findFromMap(WxVtwoActivityOrder record); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java index 059cc9e87..f89f40091 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java @@ -77,6 +77,9 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe @Autowired private WxLegionActivityConfigMapper wxLegionActivityConfigMapper; + @Autowired + private WxVtwoActivityOrderService wxVtwoActivityOrderService; + @Override public PageInfo listAsPage(WxLegionActivityOrder wxLegionActivityOrder, Integer pageNum, Integer pageSize) { handlerQuery(wxLegionActivityOrder); @@ -124,17 +127,26 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe if (wxLegionActivityOrders == null || wxLegionActivityOrders.isEmpty()) { return; } - + List ids = wxLegionActivityOrders.stream().map(WxLegionActivityOrder::getId).collect(Collectors.toList()); List merchantIds = wxLegionActivityOrders.stream().map(WxLegionActivityOrder::getMerchantId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); List adminUserIds = wxLegionActivityOrders.stream().map(WxLegionActivityOrder::getAuditBy).filter(Objects::nonNull).distinct().collect(Collectors.toList()); List userIds = wxLegionActivityOrders.stream().map(WxLegionActivityOrder::getCusId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); Map merchantMap = new HashMap<>(); + Map merchantShopNumberMap = new HashMap<>(); if(!merchantIds.isEmpty()){ WxMerchant merchantQ = new WxMerchant(); merchantQ.updateTenantInfo(wxLegionActivityOrder); merchantQ.setIds(merchantIds); merchantMap = wxMerchantService.findMerchantMap(merchantQ); + merchantShopNumberMap = wxShopService.getMerchantShopNumberMap(wxLegionActivityOrder, merchantIds, EnumYesOrNo.NO.getCode()); + } + Map vtwoActivityOrderMap = new HashMap<>(); + if(!ids.isEmpty()){ + WxVtwoActivityOrder vtwoActivityOrderQ = new WxVtwoActivityOrder(); + vtwoActivityOrderQ.updateTenantInfo(wxLegionActivityOrder); + vtwoActivityOrderQ.setFromOrderIds(ids); + vtwoActivityOrderMap = wxVtwoActivityOrderService.findFromMap(vtwoActivityOrderQ); } Map userMap = new HashMap<>(); if(!adminUserIds.isEmpty()){ @@ -155,9 +167,17 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe Map legionConfigMap = wxLegionActivityConfigService.getLegionConfigMap(legionConfigQ); for (WxLegionActivityOrder legionActivityOrder : wxLegionActivityOrders) { + WxVtwoActivityOrder vtwoActivityOrder = vtwoActivityOrderMap.get(legionActivityOrder.getId()); + if(vtwoActivityOrder != null){ + legionActivityOrder.setLotteryNum(vtwoActivityOrder.getLotteryNum()); + legionActivityOrder.setLotteryCount(vtwoActivityOrder.getLotteryCount()); + legionActivityOrder.setAnniversaryLotteryNum(vtwoActivityOrder.getAnniversaryLotteryNum()); + } + if(legionActivityOrder.getMerchantId() != null){ WxMerchant merchant = merchantMap.get(legionActivityOrder.getMerchantId()); legionActivityOrder.setMerchantName(merchant.getName()); + legionActivityOrder.setMerchantShopNum(merchantShopNumberMap.get(legionActivityOrder.getMerchantId())); } if(legionActivityOrder.getAuditBy() != null){ legionActivityOrder.setAuditByName(userMap.get(legionActivityOrder.getAuditBy()).getName()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxVtwoActivityGrantSettlementServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxVtwoActivityGrantSettlementServiceImpl.java index 22b25dfae..1fa3b07ae 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxVtwoActivityGrantSettlementServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxVtwoActivityGrantSettlementServiceImpl.java @@ -115,17 +115,24 @@ public class WxVtwoActivityGrantSettlementServiceImpl extends ServiceImpl orderList){ BigDecimal orderSumMoney = orderList.stream().map(WxVtwoActivityOrder::getOrderMoney).reduce(BigDecimal.ZERO, BigDecimal::add); - int size = orderList.size() - 1; - BigDecimal lastRatio = new BigDecimal(100); - for(int i=0; i findFromMap(WxVtwoActivityOrder record) { + List list = wxVtwoActivityOrderMapper.findList(record); + if(list != null && !list.isEmpty()){ + return list.stream().collect(Collectors.toMap(WxVtwoActivityOrder::getFromOrderId, Function.identity())); + } + return Collections.emptyMap(); + } + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxVtwoCashBackGrantAwardServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxVtwoCashBackGrantAwardServiceImpl.java index 20af1dc29..801b27a93 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxVtwoCashBackGrantAwardServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxVtwoCashBackGrantAwardServiceImpl.java @@ -59,7 +59,7 @@ public class WxVtwoCashBackGrantAwardServiceImpl extends ServiceImpl 0){ cashBackTotal = cashBackTotal.add(cashBackPrice); WxVtwoCashBackGrantAward grantAward = new WxVtwoCashBackGrantAward(); @@ -86,7 +86,7 @@ public class WxVtwoCashBackGrantAwardServiceImpl extends ServiceImpl 0){ cashBackTotal = cashBackTotal.add(cashBackPrice); @@ -110,7 +110,7 @@ public class WxVtwoCashBackGrantAwardServiceImpl extends ServiceImpl 0){ cashBackTotal = cashBackTotal.add(cashBackPrice); @@ -126,20 +126,34 @@ public class WxVtwoCashBackGrantAwardServiceImpl extends ServiceImpl= 0){ - prop = cashBackActivity.getCashBackLimit().divide(cashBackTotal,4, RoundingMode.HALF_UP); - } - - if(prop.compareTo(BigDecimal.ONE) < 0){ + cashBackTotal = awardsRulePrice(cashBackActivity.getCashBackLimit(),cashBackActivity.getCashBackRule()); + //按返现金额进行分摊 + BigDecimal sumCashBack = grantAwardList.stream().map(WxVtwoCashBackGrantAward::getCashBack).reduce(BigDecimal.ZERO, BigDecimal::add); for (WxVtwoCashBackGrantAward grantAward:grantAwardList){ - grantAward.setCashBack(awardsRulePrice(grantAward.getCashBack().multiply(prop),cashBackActivity.getCashBackRule())); + BigDecimal cashBackRatio = grantAward.getCashBack() + .divide(sumCashBack,6, RoundingMode.HALF_UP); + grantAward.setCashBack(awardsRulePrice(cashBackTotal.multiply(cashBackRatio),EnumOfflineActivityAwardsRule.DEF.getCode())); } } - BigDecimal realCashBackTotal = grantAwardList.stream().map(WxVtwoCashBackGrantAward::getCashBack).reduce(BigDecimal.ZERO, BigDecimal::add); + +// BigDecimal prop = BigDecimal.ONE; +// if(cashBackTotal.compareTo(cashBackActivity.getCashBackLimit()) >= 0){ +// prop = cashBackActivity.getCashBackLimit().divide(cashBackTotal,6, RoundingMode.HALF_UP); +// } +// +// if(prop.compareTo(BigDecimal.ONE) < 0){ +// for (WxVtwoCashBackGrantAward grantAward:grantAwardList){ +// grantAward.setCashBack(awardsRulePrice(grantAward.getCashBack().multiply(prop),cashBackActivity.getCashBackRule())); +// } +// } + +// BigDecimal realCashBackTotal = grantAwardList.stream().map(WxVtwoCashBackGrantAward::getCashBack).reduce(BigDecimal.ZERO, BigDecimal::add); + activityGrant.setCashBackLimit(cashBackActivity.getCashBackLimit()); - activityGrant.setCashBack(realCashBackTotal); + activityGrant.setCashBack(cashBackTotal); if(EnumOfflineActivityMode.ONE.getCode().equals(cashBackActivity.getAmountModel())){ //单独算税点 @@ -166,10 +180,16 @@ public class WxVtwoCashBackGrantAwardServiceImpl extends ServiceImpl + + and from_order_id in + + #{foidItem} + + + and merchant_id in