@@ -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<WxVtwoPrizeD
throw new MallinkException(Result.ERROR,"未查询到活动");
}
List<ExcelExportEntity> headList = wxVtwoActivityGrantExportTwoService.getExportHeadList();
ExcelExportEntity entity14 = new ExcelExportEntity(null,"orderGrantList",220);
List<ExcelExportEntity> 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<WxVtwoActivityPrizeDrawMainData> 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<WxVtwoPrizeD
List<WxVtwoActivityGrantAward> orderGrantAward = JSONObject.parseArray(aget.getOrderGrantDetail(), WxVtwoActivityGrantAward.class);
if(orderGrantAward != null && !orderGrantAward.isEmpty()){
//联单
List<WxVtwoActivityGrantAward> jointGrantAward = JSONObject.parseArray(aget.getJointGrantDetail(), WxVtwoActivityGrantAward.class);
//统计每个订单发奖的列表
Map<Long, List<WxVtwoActivityGrantAward>> orderGrantAwardMap = orderGrantAward.stream().collect(groupingBy(WxVtwoActivityGrantAward::getOrderId));
//联单
List<WxVtwoActivityGrantAward> jointGrantAward = JSONObject.parseArray(aget.getJointGrantDetail(), WxVtwoActivityGrantAward.class);
//根据每个订单发奖的列表来循环生成多行
if (null != aget.getOrderList()) {
aget.getOrderList().forEach(order -> {
List<WxVtwoActivityPrizeDrawPrizeDetailData> prizeDetailList = new ArrayList<WxVtwoActivityPrizeDrawPrizeDetailData>();
//这个订单里面有多少个奖品
List<WxVtwoActivityGrantAward> 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<Long, WxVtwoActivityGrantSettlement> 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<Long, WxVtwoActivityGrantSettlement> 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<Long, List<WxVtwoActivityGrantAward>> 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<WxVtwoActivityPrizeDrawPrizeDetailData> orderGrantList = new ArrayList<WxVtwoActivityPrizeDrawPrizeDetailData>();
//这个订单里面有多少个奖品
List<WxVtwoActivityGrantAward> 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<Long, WxVtwoActivityGrantSettlement> 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<WxVtwoActivityPrizeDrawPrizeDetailData> orderLinkList = new ArrayList<WxVtwoActivityPrizeDrawPrizeDetailData>();
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<Long, WxVtwoActivityGrantSettlement> 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);
}
}