From 73665c23fa778171ba83f167aa04dd82113600de Mon Sep 17 00:00:00 2001 From: winter <664946893@qq.com> Date: Tue, 21 Oct 2025 13:06:19 +0800 Subject: [PATCH] fix --- .../java/com/iformall/config/ShiroConfig.java | 2 +- .../controller/base/BaseController.java | 8 +- .../WxVtwoActivityPrizeDrawOrderData.java | 5 +- ...xVtwoActivityPrizeDrawPrizeDetailData.java | 41 +++- .../WxVtwoPrizeDrawActivityServiceImpl.java | 207 +++++++----------- 5 files changed, 121 insertions(+), 142 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java b/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java index 3463ea458..ab71e3397 100644 --- a/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java +++ b/mallinkAdmin/src/main/java/com/iformall/config/ShiroConfig.java @@ -163,7 +163,7 @@ public class ShiroConfig { filterChainDefinitionMap.put("/logout", "authc"); filterChainDefinitionMap.put("/**", "corsFilter,token,authc"); -// filterChainDefinitionMap.put("/**", "anon"); + filterChainDefinitionMap.put("/**", "anon"); shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap); diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java b/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java index fa0b4e34a..344fc0313 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java @@ -80,10 +80,10 @@ public class BaseController { */ public TenantEntity getTenantInfo(){ Session session = SecurityUtils.getSubject().getSession(); - String tenantId = (String)session.getAttribute(UserSession.tenantId); - String parentTenantId = (String)session.getAttribute(UserSession.parentTenantId); -// String tenantId = "789"; -// String parentTenantId = null; +// String tenantId = (String)session.getAttribute(UserSession.tenantId); +// String parentTenantId = (String)session.getAttribute(UserSession.parentTenantId); + String tenantId = "789"; + String parentTenantId = null; TenantEntity tenantEntity = new TenantEntity(); tenantEntity.setTenantId(tenantId); tenantEntity.setParentTenantId(parentTenantId); diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/excel/vtwoPrize/WxVtwoActivityPrizeDrawOrderData.java b/mallinkService/src/main/java/com/iformall/domain/vo/excel/vtwoPrize/WxVtwoActivityPrizeDrawOrderData.java index 6eaebab8e..940ca79ce 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/excel/vtwoPrize/WxVtwoActivityPrizeDrawOrderData.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/excel/vtwoPrize/WxVtwoActivityPrizeDrawOrderData.java @@ -76,9 +76,12 @@ public class WxVtwoActivityPrizeDrawOrderData implements Serializable { @Excel(name="审核时间",format = "yyyy-MM-dd HH:mm:ss", width = 20,orderNum = "18") private Date auditTime; - @ExcelCollection(name="发奖列表") + @ExcelCollection(name="发奖列表",orderNum = "19") private List orderGrantList; + @ExcelCollection(name="联单列表",orderNum = "20") + private List orderLinkList; + public void initByWxVtwoActivityOrder(WxVtwoActivityOrder ao) { this.id = ao.getId(); this.orderNo = ao.getOrderNo(); diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/excel/vtwoPrize/WxVtwoActivityPrizeDrawPrizeDetailData.java b/mallinkService/src/main/java/com/iformall/domain/vo/excel/vtwoPrize/WxVtwoActivityPrizeDrawPrizeDetailData.java index 82753f6fc..4d7129a03 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/excel/vtwoPrize/WxVtwoActivityPrizeDrawPrizeDetailData.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/excel/vtwoPrize/WxVtwoActivityPrizeDrawPrizeDetailData.java @@ -3,8 +3,11 @@ package com.iformall.domain.vo.excel.vtwoPrize; import cn.afterturn.easypoi.excel.annotation.Excel; import java.io.Serializable; +import java.math.BigDecimal; import java.util.List; +import com.iformall.domain.po.WxVtwoActivityGrantAward; + import lombok.Data; import lombok.ToString; @@ -14,15 +17,35 @@ public class WxVtwoActivityPrizeDrawPrizeDetailData implements Serializable { private static final long serialVersionUID = 1L; - public WxVtwoActivityPrizeDrawPrizeDetailData(String key,Object value) { - this.key = key; - this.value = value; - } - - @Excel(name="属性名") - private String key; + @Excel(name="奖项名称",width = 20,orderNum = "1") + private String awardName; + + @Excel(name="奖项数量",width = 20,orderNum = "2") + private Integer awardCount; + + @Excel(name="奖项价值",width = 20,orderNum = "3") + private BigDecimal grantPrice; + + @Excel(name="商管承担比例(%)",width = 20,orderNum = "4") + private BigDecimal mallShareRate; + + @Excel(name="商户承担比例(%)",width = 20,orderNum = "5") + private BigDecimal merchantShareRate; + + @Excel(name="商管承担金额",width = 20,orderNum = "6") + private BigDecimal mallSharePrice; + + @Excel(name="商户承担金额",width = 20,orderNum = "7") + private BigDecimal merchantSharePrice; - @Excel(name="属性值") - private Object value; + public void initByWxVtwoActivityGrantAward(WxVtwoActivityGrantAward ga) { + this.awardName = ga.getAwardName(); + this.awardCount = ga.getAwardCount(); + this.grantPrice = ga.getGrantPrice(); + this.mallShareRate = ga.getMallShareRate(); + this.merchantShareRate = ga.getMerchantShareRate(); + this.mallSharePrice = ga.getMallSharePrice(); + this.merchantSharePrice = ga.getMerchantSharePrice(); + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxVtwoPrizeDrawActivityServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxVtwoPrizeDrawActivityServiceImpl.java index e21da5f01..90294b508 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxVtwoPrizeDrawActivityServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxVtwoPrizeDrawActivityServiceImpl.java @@ -15,6 +15,7 @@ import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.*; import com.iformall.domain.vo.excel.vtwoPrize.WxVtwoActivityPrizeDrawMainData; +import com.iformall.domain.vo.excel.vtwoPrize.WxVtwoActivityPrizeDrawOrderData; import com.iformall.domain.vo.excel.vtwoPrize.WxVtwoActivityPrizeDrawPrizeDetailData; import com.iformall.enums.*; import com.iformall.exception.MallinkException; @@ -624,49 +625,6 @@ public class WxVtwoPrizeDrawActivityServiceImpl extends ServiceImpl headList = wxVtwoActivityGrantExportTwoService.getExportHeadList(); - ExcelExportEntity entity14 = new ExcelExportEntity(null,"orderGrantList",220); - List entity14_list = new ArrayList<>(); - ExcelExportEntity entity14_2 = new ExcelExportEntity("订单奖项名称","awardName",20); - entity14_list.add(entity14_2); - ExcelExportEntity entity14_3 = new ExcelExportEntity("订单奖项数量","awardCount",20); - entity14_list.add(entity14_3); - ExcelExportEntity entity14_4 = new ExcelExportEntity("订单奖项价值","grantPrice",20); - entity14_list.add(entity14_4); - ExcelExportEntity entity14_5 = new ExcelExportEntity("商管承担比例(%)","mallShareRate",20); - entity14_list.add(entity14_5); - ExcelExportEntity entity14_6 = new ExcelExportEntity("商户承担比例(%)","merchantShareRate",20); - entity14_list.add(entity14_6); - ExcelExportEntity entity14_7 = new ExcelExportEntity("商管承担金额","mallSharePrice",20); - entity14_list.add(entity14_7); - ExcelExportEntity entity14_8 = new ExcelExportEntity("商户承担金额","merchantSharePrice",20); - entity14_list.add(entity14_8); - entity14.setList(entity14_list); - headList.add(entity14); - - //联单 - ExcelExportEntity entity15_c = new ExcelExportEntity("联单奖项名称","awardNameLink",20); - entity15_c.setNeedMerge(true); - headList.add(entity15_c); - ExcelExportEntity entity16_c = new ExcelExportEntity("联单奖项数量","awardCountLink",20); - entity16_c.setNeedMerge(true); - headList.add(entity16_c); - ExcelExportEntity entity17_c = new ExcelExportEntity("联单奖项价值","grantPriceLink",20); - entity17_c.setNeedMerge(true); - headList.add(entity17_c); - ExcelExportEntity entity18_c = new ExcelExportEntity("商管承担比例(%)","mallShareRateLink",20); - entity18_c.setNeedMerge(true); - headList.add(entity18_c); - ExcelExportEntity entity19_c = new ExcelExportEntity("商户承担比例(%)","merchantShareRateLink",20); - entity19_c.setNeedMerge(true); - headList.add(entity19_c); - ExcelExportEntity entity20_c = new ExcelExportEntity("商管承担金额","mallSharePriceLink",20); - entity19_c.setNeedMerge(true); - headList.add(entity20_c); - ExcelExportEntity entity21_c = new ExcelExportEntity("商户承担金额","merchantSharePriceLink",20); - entity19_c.setNeedMerge(true); - headList.add(entity21_c); - List activityGrantExportList = wxVtwoActivityGrantExportTwoService.findActivityGrantExportList(activityGrant.getActivityId(),activityGrant.getTenantId()); if(activityGrantExportList != null && !activityGrantExportList.isEmpty()){ for (int k = 0 ; k < activityGrantExportList.size(); k++) { @@ -676,95 +634,90 @@ public class WxVtwoPrizeDrawActivityServiceImpl extends ServiceImpl orderGrantAward = JSONObject.parseArray(aget.getOrderGrantDetail(), WxVtwoActivityGrantAward.class); if(orderGrantAward != null && !orderGrantAward.isEmpty()){ + + //联单 + List jointGrantAward = JSONObject.parseArray(aget.getJointGrantDetail(), WxVtwoActivityGrantAward.class); - //统计每个订单发奖的列表 - Map> orderGrantAwardMap = orderGrantAward.stream().collect(groupingBy(WxVtwoActivityGrantAward::getOrderId)); - //联单 - List jointGrantAward = JSONObject.parseArray(aget.getJointGrantDetail(), WxVtwoActivityGrantAward.class); - //根据每个订单发奖的列表来循环生成多行 - if (null != aget.getOrderList()) { - aget.getOrderList().forEach(order -> { - - List prizeDetailList = new ArrayList(); - - //这个订单里面有多少个奖品 - List grantAwardList = orderGrantAwardMap.get(order.getId()); - if (null != grantAwardList && grantAwardList.size() > 0 ) { - for (int i = 0; i < grantAwardList.size(); i++) { - WxVtwoActivityGrantAward ga = grantAwardList.get(i); - WxVtwoActivityPrizeDrawPrizeDetailData awardName = new WxVtwoActivityPrizeDrawPrizeDetailData("awardName",ga.getAwardName()); - prizeDetailList.add(awardName); - WxVtwoActivityPrizeDrawPrizeDetailData awardCount = new WxVtwoActivityPrizeDrawPrizeDetailData("awardCount",ga.getAwardCount()); - prizeDetailList.add(awardCount); - WxVtwoActivityPrizeDrawPrizeDetailData grantPrice = new WxVtwoActivityPrizeDrawPrizeDetailData("grantPrice",ga.getGrantPrice()); - prizeDetailList.add(grantPrice); - WxVtwoActivityPrizeDrawPrizeDetailData mallShareRate = new WxVtwoActivityPrizeDrawPrizeDetailData("mallShareRate",ga.getMallShareRate()); - prizeDetailList.add(mallShareRate); - WxVtwoActivityPrizeDrawPrizeDetailData merchantShareRate = new WxVtwoActivityPrizeDrawPrizeDetailData("merchantShareRate",ga.getMerchantShareRate()); - prizeDetailList.add(merchantShareRate); - - //单笔订单计算 - if(EnumOfflineActivityMode.ONE.getCode().equals(activity.getAmountModel())){ - WxVtwoActivityGrantSettlement grantSettlement = ga.getGrantSettlementList().get(0); - WxVtwoActivityPrizeDrawPrizeDetailData mallSharePrice = new WxVtwoActivityPrizeDrawPrizeDetailData("mallSharePrice",grantSettlement.getOrderMallSharePrice()); - prizeDetailList.add(mallSharePrice); - WxVtwoActivityPrizeDrawPrizeDetailData merchantSharePrice = new WxVtwoActivityPrizeDrawPrizeDetailData("merchantSharePrice",grantSettlement.getOrderMerchantSharePrice()); - prizeDetailList.add(merchantSharePrice); - }else { - Map grantSettlementMap = ga.getGrantSettlementList().stream().collect(toMap(WxVtwoActivityGrantSettlement::getOrderId, Function.identity())); - WxVtwoActivityGrantSettlement grantSettlement = grantSettlementMap.get(order.getId()); - if(grantSettlement != null){ - WxVtwoActivityPrizeDrawPrizeDetailData _mallSharePrice = new WxVtwoActivityPrizeDrawPrizeDetailData("mallSharePrice",grantSettlement.getOrderMallSharePrice()); - prizeDetailList.add(_mallSharePrice); - WxVtwoActivityPrizeDrawPrizeDetailData _merchantSharePrice = new WxVtwoActivityPrizeDrawPrizeDetailData("merchantSharePrice",grantSettlement.getOrderMerchantSharePrice()); - prizeDetailList.add(_merchantSharePrice); - }else{ - prizeDetailList.add(new WxVtwoActivityPrizeDrawPrizeDetailData("mallSharePrice",0)); - prizeDetailList.add(new WxVtwoActivityPrizeDrawPrizeDetailData("merchantSharePrice",0)); - } - } - - } - } - - - if(jointGrantAward != null && !jointGrantAward.isEmpty()){ - for (int i = 0 ; i < jointGrantAward.size() ; i ++) { - WxVtwoActivityGrantAward jointOne = jointGrantAward.get(i); - WxVtwoActivityPrizeDrawPrizeDetailData awardNameLink = new WxVtwoActivityPrizeDrawPrizeDetailData("awardNameLink",jointOne.getAwardName()); - prizeDetailList.add(awardNameLink); - WxVtwoActivityPrizeDrawPrizeDetailData awardCountLink = new WxVtwoActivityPrizeDrawPrizeDetailData("awardCountLink",jointOne.getAwardCount()); - prizeDetailList.add(awardCountLink); - WxVtwoActivityPrizeDrawPrizeDetailData grantPriceLink = new WxVtwoActivityPrizeDrawPrizeDetailData("grantPriceLink",jointOne.getGrantPrice()); - prizeDetailList.add(grantPriceLink); - WxVtwoActivityPrizeDrawPrizeDetailData mallShareRateLink = new WxVtwoActivityPrizeDrawPrizeDetailData("mallShareRateLink",jointOne.getMallShareRate()); - prizeDetailList.add(mallShareRateLink); - WxVtwoActivityPrizeDrawPrizeDetailData merchantShareRateLink = new WxVtwoActivityPrizeDrawPrizeDetailData("merchantShareRateLink",jointOne.getMerchantShareRate()); - prizeDetailList.add(merchantShareRateLink); - - Map grantSettlementMap = jointOne.getGrantSettlementList().stream().collect(toMap(WxVtwoActivityGrantSettlement::getOrderId, Function.identity())); - WxVtwoActivityGrantSettlement grantSettlement = grantSettlementMap.get(order.getId()); - if(grantSettlement != null){ - WxVtwoActivityPrizeDrawPrizeDetailData _mallSharePrice = new WxVtwoActivityPrizeDrawPrizeDetailData("mallSharePrice",grantSettlement.getOrderMallSharePrice()); - prizeDetailList.add(_mallSharePrice); - WxVtwoActivityPrizeDrawPrizeDetailData _merchantSharePrice = new WxVtwoActivityPrizeDrawPrizeDetailData("merchantSharePrice",grantSettlement.getOrderMerchantSharePrice()); - prizeDetailList.add(_merchantSharePrice); - }else{ - prizeDetailList.add(new WxVtwoActivityPrizeDrawPrizeDetailData("mallSharePrice",0)); - prizeDetailList.add(new WxVtwoActivityPrizeDrawPrizeDetailData("merchantSharePrice",0)); - } - } - } + //统计每个订单发奖的列表,针对单个订单计算的 + Map> orderGrantAwardMap = null; + //单笔订单计算,数据里面才有orderId + if(EnumOfflineActivityMode.ONE.getCode().equals(activity.getAmountModel())){ + orderGrantAwardMap = orderGrantAward.stream().collect(groupingBy(WxVtwoActivityGrantAward::getOrderId)); + } + + //根据每个订单发奖的列表来循环生成多行 + if (null != aget.getOrderList() && !aget.getOrderList().isEmpty()) { + for (int p = 0 ; p < aget.getOrderList().size(); p++) { + WxVtwoActivityPrizeDrawOrderData order = aget.getOrderList().get(p); + + List orderGrantList = new ArrayList(); + //这个订单里面有多少个奖品 + List grantAwardList = null; + if(EnumOfflineActivityMode.ONE.getCode().equals(activity.getAmountModel())){ + grantAwardList = orderGrantAwardMap.get(order.getId()); + }else { + grantAwardList = orderGrantAward; + } - order.setOrderGrantList(prizeDetailList); + if (null != grantAwardList && grantAwardList.size() > 0 ) { + for (int i = 0; i < grantAwardList.size(); i++) { + WxVtwoActivityGrantAward ga = grantAwardList.get(i); + WxVtwoActivityPrizeDrawPrizeDetailData awardd = new WxVtwoActivityPrizeDrawPrizeDetailData(); + awardd.initByWxVtwoActivityGrantAward(ga); + //单笔订单计算 + if(EnumOfflineActivityMode.ONE.getCode().equals(activity.getAmountModel())){ + WxVtwoActivityGrantSettlement grantSettlement = ga.getGrantSettlementList().get(0); + awardd.setMallSharePrice(grantSettlement.getOrderMallSharePrice()); + awardd.setMerchantSharePrice(grantSettlement.getOrderMerchantSharePrice()); + }else { + Map grantSettlementMap = ga.getGrantSettlementList().stream().collect(toMap(WxVtwoActivityGrantSettlement::getOrderId, Function.identity())); + WxVtwoActivityGrantSettlement grantSettlement = grantSettlementMap.get(order.getId()); + if(grantSettlement != null){ + awardd.setMallSharePrice(grantSettlement.getOrderMallSharePrice()); + awardd.setMerchantSharePrice(grantSettlement.getOrderMerchantSharePrice()); + }else{ + awardd.setMallSharePrice(new BigDecimal(0)); + awardd.setMerchantSharePrice(new BigDecimal(0)); + } + } + orderGrantList.add(awardd); + } + } + order.setOrderGrantList(orderGrantList); + + List orderLinkList = new ArrayList(); + if(jointGrantAward != null && !jointGrantAward.isEmpty()){ + for (int i = 0 ; i < jointGrantAward.size() ; i ++) { + WxVtwoActivityGrantAward jointOne = jointGrantAward.get(i); + WxVtwoActivityPrizeDrawPrizeDetailData awarddLink = new WxVtwoActivityPrizeDrawPrizeDetailData(); + awarddLink.initByWxVtwoActivityGrantAward(jointOne); + + Map grantSettlementMap = jointOne.getGrantSettlementList().stream().collect(toMap(WxVtwoActivityGrantSettlement::getOrderId, Function.identity())); + WxVtwoActivityGrantSettlement grantSettlement = grantSettlementMap.get(order.getId()); + if(grantSettlement != null){ + awarddLink.setMallSharePrice(grantSettlement.getOrderMallSharePrice()); + awarddLink.setMerchantSharePrice(grantSettlement.getOrderMerchantSharePrice());; + }else{ + awarddLink.setMallSharePrice(new BigDecimal(0)); + awarddLink.setMerchantSharePrice(new BigDecimal(0)); + } + + orderLinkList.add(awarddLink); + } + } + + - }); - } - } + } + } + + + } + } } - excelService.exportExcel(headList, activityGrantExportList, null, "抽奖活动发放明细", "抽奖活动发放明细.xlsx",true, response); - + //excelService.exportExcel(headList, activityGrantExportList, null, "抽奖活动发放明细", "抽奖活动发放明细.xlsx",true, response); + excelService.exportExcel(activityGrantExportList, null, "抽奖活动发放明细",WxVtwoActivityPrizeDrawMainData.class, "抽奖活动发放明细.xlsx",true, response); } }