From 1a092b81508e73a445c2e4869f8349dc504ee81b Mon Sep 17 00:00:00 2001 From: winter <664946893@qq.com> Date: Sun, 19 Oct 2025 22:58:57 +0800 Subject: [PATCH] fix --- .../WxVtwoPrizeDrawActivityController.java | 4 +- .../WxVtwoPrizeDrawActivityService.java | 2 +- .../WxVtwoPrizeDrawActivityServiceImpl.java | 416 +++++++++--------- 3 files changed, 212 insertions(+), 210 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxVtwoPrizeDrawActivityController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxVtwoPrizeDrawActivityController.java index 29eb43d8d..5736df1f0 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxVtwoPrizeDrawActivityController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxVtwoPrizeDrawActivityController.java @@ -326,8 +326,8 @@ public class WxVtwoPrizeDrawActivityController extends BaseController { throw new MallinkException(Result.ERROR,"活动ID 为空"); } activityGrant.updateTenantInfo(getTenantInfo()); - //wxVtwoPrizeDrawActivityService.grantExportTwo(request,response,activityGrant); - wxVtwoPrizeDrawActivityService.grantExportTwoNew(request,response,activityGrant); + wxVtwoPrizeDrawActivityService.grantExportTwo(request,response,activityGrant); + //wxVtwoPrizeDrawActivityService.grantExportTwoNew(request,response,activityGrant); } } diff --git a/mallinkService/src/main/java/com/iformall/service/WxVtwoPrizeDrawActivityService.java b/mallinkService/src/main/java/com/iformall/service/WxVtwoPrizeDrawActivityService.java index 17447f05b..6af7e8d08 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxVtwoPrizeDrawActivityService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxVtwoPrizeDrawActivityService.java @@ -33,7 +33,7 @@ public interface WxVtwoPrizeDrawActivityService extends IService headList = wxVtwoActivityGrantExportTwoService.getExportHeadList(); -// //获得最大奖项数量 -// Integer orderGrantCount = wxVtwoActivityGrantExportTwoService.selectMaxOrderGrantCount(activityGrant.getActivityId(),activityGrant.getTenantId()); -// Integer jointGrantCount = wxVtwoActivityGrantExportTwoService.selectMaxJointGrantCount(activityGrant.getActivityId(),activityGrant.getTenantId()); -// for(int i=1;i<=orderGrantCount;i++){ -// if(EnumOfflineActivityMode.ONE.getCode().equals(activity.getAmountModel())){ -// ExcelExportEntity entity14 = new ExcelExportEntity(null,"orderGrantList"+i,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); -// }else{ -//// ExcelExportEntity entity14 = new ExcelExportEntity("活动名称", -//// "activityName_o",20); -//// entity14.setNeedMerge(true); -//// headList.add(entity14); -// ExcelExportEntity entity16 = new ExcelExportEntity("订单奖项名称", -// "awardName_o"+i,20); -// entity16.setNeedMerge(true); -// headList.add(entity16); -// ExcelExportEntity entity16_ = new ExcelExportEntity("订单奖项数量", -// "awardCount_o"+i,20); -// entity16_.setNeedMerge(true); -// headList.add(entity16_); -// ExcelExportEntity entity17 = new ExcelExportEntity("订单奖项价值", -// "grantPrice_o"+i,20); -// entity17.setNeedMerge(true); -// headList.add(entity17); -// ExcelExportEntity entity18 = new ExcelExportEntity("商管承担比例(%)", -// "mallShareRate_o"+i,20); -// entity18.setNeedMerge(true); -// headList.add(entity18); -// ExcelExportEntity entity19 = new ExcelExportEntity("商户承担比例(%)", -// "merchantShareRate_o"+i,20); -// entity19.setNeedMerge(true); -// headList.add(entity19); -// -// ExcelExportEntity entity20 = new ExcelExportEntity(null, -// "sharePriceList_o"+i,40); -// List entity20_list = new ArrayList<>(); -// ExcelExportEntity entity20_1 = new ExcelExportEntity("商管承担金额","mallSharePrice",20); -// entity20_list.add(entity20_1); -// ExcelExportEntity entity20_2 = new ExcelExportEntity("商户承担金额","merchantSharePrice",20); -// entity20_list.add(entity20_2); -// entity20.setList(entity20_list); -// headList.add(entity20); -// } -// } -// -// //联单 -// for(int j=1;j<=jointGrantCount;j++){ -// ExcelExportEntity entity15_c = new ExcelExportEntity("联单奖项名称", -// "awardName_c"+j,20); -// entity15_c.setNeedMerge(true); -// headList.add(entity15_c); -// ExcelExportEntity entity16_c = new ExcelExportEntity("联单奖项数量", -// "awardCount_c"+j,20); -// entity16_c.setNeedMerge(true); -// headList.add(entity16_c); -// ExcelExportEntity entity17_c = new ExcelExportEntity("联单奖项价值", -// "grantPrice_c"+j,20); -// entity17_c.setNeedMerge(true); -// headList.add(entity17_c); -// ExcelExportEntity entity18_c = new ExcelExportEntity("商管承担比例(%)", -// "mallShareRate_c"+j,20); -// entity18_c.setNeedMerge(true); -// headList.add(entity18_c); -// ExcelExportEntity entity19_c = new ExcelExportEntity("商户承担比例(%)", -// "merchantShareRate_c"+j,20); -// entity19_c.setNeedMerge(true); -// headList.add(entity19_c); -// -// ExcelExportEntity entity20_c = new ExcelExportEntity(null, -// "sharePriceList_c"+j,40); -// List entity20_c_list = new ArrayList<>(); -// ExcelExportEntity entity20_c_1 = new ExcelExportEntity("商管承担金额","mallSharePrice",20); -// entity20_c_list.add(entity20_c_1); -// ExcelExportEntity entity20_c_2 = new ExcelExportEntity("商户承担金额","merchantSharePrice",20); -// entity20_c_list.add(entity20_c_2); -// entity20_c.setList(entity20_c_list); -// headList.add(entity20_c); -// } -// -// List activityGrantExportList = wxVtwoActivityGrantExportTwoService.findActivityGrantList(activityGrant.getActivityId(),activityGrant.getTenantId()); -// List> grantObjectList = new ArrayList<>(); -// if(activityGrantExportList != null && !activityGrantExportList.isEmpty()){ -// grantObjectList = activityGrantExportList.stream().map(e -> { -// Map map = new HashMap<>(); -// try { -// map = BeanUtils.toMap(e); -// } catch (Exception ex) { -// } -// -// List orderGrantAward = JSONObject.parseArray(e.getOrderGrantDetail(), WxVtwoActivityGrantAward.class); -// if(orderGrantAward != null && !orderGrantAward.isEmpty()){ -// if(EnumOfflineActivityMode.ONE.getCode().equals(activity.getAmountModel())){ -// Map> orderGrantAwardMap = orderGrantAward.stream().collect(groupingBy(WxVtwoActivityGrantAward::getOrderId)); -// for(int i=1;i<=orderGrantCount;i++){ -// List sortList = new ArrayList<>(); -// int finalI = i-1; -// e.getOrderList().forEach(order -> { -// List grantAwardList = orderGrantAwardMap.get(order.getId()); -// WxVtwoActivityGrantAward grantAward = null; -// if(grantAwardList != null && !grantAwardList.isEmpty() && grantAwardList.size() > finalI){ -// grantAward = grantAwardList.get(finalI); -// } -// if(grantAward != null){ -// WxVtwoActivityGrantSettlement grantSettlement = grantAward.getGrantSettlementList().get(0); -// grantAward.setMallSharePrice(grantSettlement.getOrderMallSharePrice()); -// grantAward.setMerchantSharePrice(grantSettlement.getOrderMerchantSharePrice()); -// sortList.add(grantAward); -// } else{ -// sortList.add(new WxVtwoActivityGrantAward()); -// } -// }); -// -// map.put("orderGrantList"+i,sortList); -// } -// -// }else{ -// for(int i=1;i<=orderGrantAward.size();i++){ -// WxVtwoActivityGrantAward grantAward = orderGrantAward.get(i - 1); -// map.put("awardName_o"+i,grantAward.getAwardName()); -// map.put("awardCount_o"+i,grantAward.getAwardCount()); -// map.put("grantPrice_o"+i,grantAward.getGrantPrice()); -// map.put("mallShareRate_o"+i,grantAward.getMallShareRate()); -// map.put("merchantShareRate_o"+i,grantAward.getMerchantShareRate()); -// -// List> sharePriceList = new ArrayList<>(); -// -// Map grantSettlementMap = grantAward.getGrantSettlementList().stream().collect(toMap(WxVtwoActivityGrantSettlement::getOrderId, Function.identity())); -// e.getOrderList().forEach(order -> { -// WxVtwoActivityGrantSettlement grantSettlement = grantSettlementMap.get(order.getId()); -// Map sharePriceObject = new HashMap<>(); -// if(grantSettlement != null){ -// sharePriceObject.put("mallSharePrice",grantSettlement.getOrderMallSharePrice()); -// sharePriceObject.put("merchantSharePrice",grantSettlement.getOrderMerchantSharePrice()); -// }else{ -// sharePriceObject.put("mallSharePrice",0); -// sharePriceObject.put("merchantSharePrice",0); -// } -// sharePriceList.add(sharePriceObject); -// }); -// -// map.put("sharePriceList_o"+i,sharePriceList); -// } -// } -// } -// -// List jointGrantAward = JSONObject.parseArray(e.getJointGrantDetail(), WxVtwoActivityGrantAward.class); -// if(jointGrantAward != null && !jointGrantAward.isEmpty()){ -// for(int j=1;j<=jointGrantAward.size();j++){ -// WxVtwoActivityGrantAward jointOne = jointGrantAward.get(j-1); -// map.put("awardName_c"+j,jointOne.getAwardName()); -// map.put("awardCount_c"+j,jointOne.getAwardCount()); -// map.put("grantPrice_c"+j,jointOne.getGrantPrice()); -// map.put("mallShareRate_c"+j,jointOne.getMallShareRate()); -// map.put("merchantShareRate_c"+j,jointOne.getMerchantShareRate()); -// -// List> jointSharePriceList = new ArrayList<>(); -// -// Map grantSettlementMap = jointOne.getGrantSettlementList().stream().collect(toMap(WxVtwoActivityGrantSettlement::getOrderId, Function.identity())); -// e.getOrderList().forEach(order -> { -// WxVtwoActivityGrantSettlement grantSettlement = grantSettlementMap.get(order.getId()); -// Map jointSharePriceObject = new HashMap<>(); -// if(grantSettlement != null){ -// jointSharePriceObject.put("mallSharePrice",grantSettlement.getOrderMallSharePrice()); -// jointSharePriceObject.put("merchantSharePrice",grantSettlement.getOrderMerchantSharePrice()); -// }else{ -// jointSharePriceObject.put("mallSharePrice",0); -// jointSharePriceObject.put("merchantSharePrice",0); -// } -// jointSharePriceList.add(jointSharePriceObject); -// }); -// -// map.put("sharePriceList_c"+j,jointSharePriceList); -// } -// } -// -// return map; -// }).collect(toList()); -// } -// excelService.exportExcel(headList, grantObjectList, null, "抽奖活动发放明细", "抽奖活动发放明细.xlsx",true, response); -// -// } + @Override + public void grantExportTwo(HttpServletRequest request, HttpServletResponse response, WxVtwoActivityGrant activityGrant) { + WxVtwoPrizeDrawActivity activity = this.getById(activityGrant.getActivityId(), activityGrant.getTenantId()); + if(activity == null){ + throw new MallinkException(Result.ERROR,"未查询到活动"); + } + + List headList = wxVtwoActivityGrantExportTwoService.getExportHeadList(); + //获得最大奖项数量 + Integer orderGrantCount = wxVtwoActivityGrantExportTwoService.selectMaxOrderGrantCount(activityGrant.getActivityId(),activityGrant.getTenantId()); + Integer jointGrantCount = wxVtwoActivityGrantExportTwoService.selectMaxJointGrantCount(activityGrant.getActivityId(),activityGrant.getTenantId()); + for(int i=1;i<=orderGrantCount;i++){ + if(EnumOfflineActivityMode.ONE.getCode().equals(activity.getAmountModel())){ + ExcelExportEntity entity14 = new ExcelExportEntity(null,"orderGrantList"+i,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); + }else{ +// ExcelExportEntity entity14 = new ExcelExportEntity("活动名称", +// "activityName_o",20); +// entity14.setNeedMerge(true); +// headList.add(entity14); + ExcelExportEntity entity16 = new ExcelExportEntity("订单奖项名称", + "awardName_o"+i,20); + entity16.setNeedMerge(true); + headList.add(entity16); + ExcelExportEntity entity16_ = new ExcelExportEntity("订单奖项数量", + "awardCount_o"+i,20); + entity16_.setNeedMerge(true); + headList.add(entity16_); + ExcelExportEntity entity17 = new ExcelExportEntity("订单奖项价值", + "grantPrice_o"+i,20); + entity17.setNeedMerge(true); + headList.add(entity17); + ExcelExportEntity entity18 = new ExcelExportEntity("商管承担比例(%)", + "mallShareRate_o"+i,20); + entity18.setNeedMerge(true); + headList.add(entity18); + ExcelExportEntity entity19 = new ExcelExportEntity("商户承担比例(%)", + "merchantShareRate_o"+i,20); + entity19.setNeedMerge(true); + headList.add(entity19); + + ExcelExportEntity entity20 = new ExcelExportEntity(null, + "sharePriceList_o"+i,40); + List entity20_list = new ArrayList<>(); + ExcelExportEntity entity20_1 = new ExcelExportEntity("商管承担金额","mallSharePrice",20); + entity20_list.add(entity20_1); + ExcelExportEntity entity20_2 = new ExcelExportEntity("商户承担金额","merchantSharePrice",20); + entity20_list.add(entity20_2); + entity20.setList(entity20_list); + headList.add(entity20); + } + } + + //联单 + for(int j=1;j<=jointGrantCount;j++){ + ExcelExportEntity entity15_c = new ExcelExportEntity("联单奖项名称", + "awardName_c"+j,20); + entity15_c.setNeedMerge(true); + headList.add(entity15_c); + ExcelExportEntity entity16_c = new ExcelExportEntity("联单奖项数量", + "awardCount_c"+j,20); + entity16_c.setNeedMerge(true); + headList.add(entity16_c); + ExcelExportEntity entity17_c = new ExcelExportEntity("联单奖项价值", + "grantPrice_c"+j,20); + entity17_c.setNeedMerge(true); + headList.add(entity17_c); + ExcelExportEntity entity18_c = new ExcelExportEntity("商管承担比例(%)", + "mallShareRate_c"+j,20); + entity18_c.setNeedMerge(true); + headList.add(entity18_c); + ExcelExportEntity entity19_c = new ExcelExportEntity("商户承担比例(%)", + "merchantShareRate_c"+j,20); + entity19_c.setNeedMerge(true); + headList.add(entity19_c); + + ExcelExportEntity entity20_c = new ExcelExportEntity(null, + "sharePriceList_c"+j,40); + List entity20_c_list = new ArrayList<>(); + ExcelExportEntity entity20_c_1 = new ExcelExportEntity("商管承担金额","mallSharePrice",20); + entity20_c_list.add(entity20_c_1); + ExcelExportEntity entity20_c_2 = new ExcelExportEntity("商户承担金额","merchantSharePrice",20); + entity20_c_list.add(entity20_c_2); + entity20_c.setList(entity20_c_list); + headList.add(entity20_c); + } + + List activityGrantExportList = wxVtwoActivityGrantExportTwoService.findActivityGrantList(activityGrant.getActivityId(),activityGrant.getTenantId()); + List> grantObjectList = new ArrayList<>(); + if(activityGrantExportList != null && !activityGrantExportList.isEmpty()){ + grantObjectList = activityGrantExportList.stream().map(e -> { + Map map = new HashMap<>(); + try { + map = BeanUtils.toMap(e); + } catch (Exception ex) { + } + + List orderGrantAward = JSONObject.parseArray(e.getOrderGrantDetail(), WxVtwoActivityGrantAward.class); + if(orderGrantAward != null && !orderGrantAward.isEmpty()){ + if(EnumOfflineActivityMode.ONE.getCode().equals(activity.getAmountModel())){ + Map> orderGrantAwardMap = orderGrantAward.stream().collect(groupingBy(WxVtwoActivityGrantAward::getOrderId)); + for(int i=1;i<=orderGrantCount;i++){ + List sortList = new ArrayList<>(); + int finalI = i-1; + e.getOrderList().forEach(order -> { + List grantAwardList = orderGrantAwardMap.get(order.getId()); + WxVtwoActivityGrantAward grantAward = null; + if(grantAwardList != null && !grantAwardList.isEmpty() && grantAwardList.size() > finalI){ + grantAward = grantAwardList.get(finalI); + } + if(grantAward != null){ + WxVtwoActivityGrantSettlement grantSettlement = grantAward.getGrantSettlementList().get(0); + grantAward.setMallSharePrice(grantSettlement.getOrderMallSharePrice()); + grantAward.setMerchantSharePrice(grantSettlement.getOrderMerchantSharePrice()); + sortList.add(grantAward); + } else{ + sortList.add(new WxVtwoActivityGrantAward()); + } + }); + + map.put("orderGrantList"+i,sortList); + } + + }else{ + for(int i=1;i<=orderGrantAward.size();i++){ + WxVtwoActivityGrantAward grantAward = orderGrantAward.get(i - 1); + map.put("awardName_o"+i,grantAward.getAwardName()); + map.put("awardCount_o"+i,grantAward.getAwardCount()); + map.put("grantPrice_o"+i,grantAward.getGrantPrice()); + map.put("mallShareRate_o"+i,grantAward.getMallShareRate()); + map.put("merchantShareRate_o"+i,grantAward.getMerchantShareRate()); + + List> sharePriceList = new ArrayList<>(); + + Map grantSettlementMap = grantAward.getGrantSettlementList().stream().collect(toMap(WxVtwoActivityGrantSettlement::getOrderId, Function.identity())); + e.getOrderList().forEach(order -> { + WxVtwoActivityGrantSettlement grantSettlement = grantSettlementMap.get(order.getId()); + Map sharePriceObject = new HashMap<>(); + if(grantSettlement != null){ + sharePriceObject.put("mallSharePrice",grantSettlement.getOrderMallSharePrice()); + sharePriceObject.put("merchantSharePrice",grantSettlement.getOrderMerchantSharePrice()); + }else{ + sharePriceObject.put("mallSharePrice",0); + sharePriceObject.put("merchantSharePrice",0); + } + sharePriceList.add(sharePriceObject); + }); + + map.put("sharePriceList_o"+i,sharePriceList); + } + } + } + + List jointGrantAward = JSONObject.parseArray(e.getJointGrantDetail(), WxVtwoActivityGrantAward.class); + if(jointGrantAward != null && !jointGrantAward.isEmpty()){ + for(int j=1;j<=jointGrantAward.size();j++){ + WxVtwoActivityGrantAward jointOne = jointGrantAward.get(j-1); + map.put("awardName_c"+j,jointOne.getAwardName()); + map.put("awardCount_c"+j,jointOne.getAwardCount()); + map.put("grantPrice_c"+j,jointOne.getGrantPrice()); + map.put("mallShareRate_c"+j,jointOne.getMallShareRate()); + map.put("merchantShareRate_c"+j,jointOne.getMerchantShareRate()); + + List> jointSharePriceList = new ArrayList<>(); + + Map grantSettlementMap = jointOne.getGrantSettlementList().stream().collect(toMap(WxVtwoActivityGrantSettlement::getOrderId, Function.identity())); + e.getOrderList().forEach(order -> { + WxVtwoActivityGrantSettlement grantSettlement = grantSettlementMap.get(order.getId()); + Map jointSharePriceObject = new HashMap<>(); + if(grantSettlement != null){ + jointSharePriceObject.put("mallSharePrice",grantSettlement.getOrderMallSharePrice()); + jointSharePriceObject.put("merchantSharePrice",grantSettlement.getOrderMerchantSharePrice()); + }else{ + jointSharePriceObject.put("mallSharePrice",0); + jointSharePriceObject.put("merchantSharePrice",0); + } + jointSharePriceList.add(jointSharePriceObject); + }); + + map.put("sharePriceList_c"+j,jointSharePriceList); + } + } + + return map; + }).collect(toList()); + } + excelService.exportExcel(headList, grantObjectList, null, "抽奖活动发放明细", "抽奖活动发放明细.xlsx",true, response); + + } @Override public void grantExportTwoNew(HttpServletRequest request, HttpServletResponse response, WxVtwoActivityGrant activityGrant) { @@ -752,7 +752,8 @@ public class WxVtwoPrizeDrawActivityServiceImpl extends ServiceImpl