From 210ce1ed17ecb3b81d08cf268030e27694b9dfba Mon Sep 17 00:00:00 2001 From: winter Date: Sat, 30 Mar 2024 12:22:13 +0800 Subject: [PATCH] fix --- .../market/WxRaffleActivityController.java | 26 ++-- .../WxRaffleActivityController.java | 10 +- .../iformall/domain/po/WxRaffleActivity.java | 4 + .../domain/po/WxRaffleActivityItem.java | 8 +- .../domain/po/WxRaffleActivityRecord.java | 45 ++++--- .../domain/po/WxRaffleActivityRecordItem.java | 58 +++++++++ .../WxRaffleActivityRecordItemMapper.java | 27 ++++ .../mapper/WxRaffleActivityRecordMapper.java | 10 +- .../service/WxRaffleActivityService.java | 10 +- .../impl/WxRaffleActivityServiceImpl.java | 122 ++++++++++++++---- .../mapper/WxRaffleActivityItemMapper.xml | 11 +- .../mapper/WxRaffleActivityMapper.xml | 3 +- .../WxRaffleActivityRecordItemMapper.xml | 121 +++++++++++++++++ .../mapper/WxRaffleActivityRecordMapper.xml | 62 +-------- 14 files changed, 384 insertions(+), 133 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/WxRaffleActivityRecordItem.java create mode 100644 mallinkService/src/main/java/com/iformall/mapper/WxRaffleActivityRecordItemMapper.java create mode 100644 mallinkService/src/main/resources/mapper/WxRaffleActivityRecordItemMapper.xml diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxRaffleActivityController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxRaffleActivityController.java index 730925a68..d0115a92e 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxRaffleActivityController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxRaffleActivityController.java @@ -12,6 +12,7 @@ import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.WxRaffleActivity; import com.iformall.domain.po.WxRaffleActivityItem; import com.iformall.domain.po.WxRaffleActivityRecord; +import com.iformall.domain.po.WxRaffleActivityRecordItem; import com.iformall.domain.po.base.BaseEntity.SortField; import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumCashBackActivityItemRule; @@ -105,6 +106,9 @@ public class WxRaffleActivityController extends BaseController { int allRecordCount = wxCashBackActivityService.getRecordCount(r); a.setRecordCount(allRecordCount); + int allRaffledCount = wxCashBackActivityService.getRecordItemCount(r); + a.setAllRaffledCount(allRaffledCount); + r.setAuditStatus(EnumCashBackActivityRecordStatus.AUDI_SUCCESS.getCode()); //int successRecordCount = wxCashBackActivityService.getRecordCount(r); BigDecimal successRecordSum = wxCashBackActivityService.getRecordSum(r); @@ -163,11 +167,11 @@ public class WxRaffleActivityController extends BaseController { List itemList = wxCashBackActivity.getItemList(); for (WxRaffleActivityItem i : itemList) { if (i.getMoneyRule().intValue() == EnumCashBackActivityItemRule.MALL_ONLY.getCode().intValue()) { - i.setMallBackRate(i.getTotalBackRate()); + i.setMallBackRate(new BigDecimal(100)); i.setMerchantBackRate(new BigDecimal(0)); }else if (i.getMoneyRule().intValue() == EnumCashBackActivityItemRule.MERCHANT_ONLY.getCode().intValue()) { i.setMallBackRate(new BigDecimal(0)); - i.setMerchantBackRate(i.getTotalBackRate()); + i.setMerchantBackRate(new BigDecimal(100)); }else if (i.getMoneyRule().intValue() == EnumCashBackActivityItemRule.SHARE.getCode().intValue()) { if (i.getMallBackRate().add(i.getMerchantBackRate()).intValue() != 100) { return new ResultData(Result.ERROR,"分担规则下,商户和商管的比例总和需要为100%"); @@ -247,7 +251,7 @@ public class WxRaffleActivityController extends BaseController { }else { result = new ArrayList(); } - wxCashBackActivityService.exportData(result,"现金返现记录",WxRaffleActivityRecord.class, request, response); + wxCashBackActivityService.exportData(result,"线下抽奖记录",WxRaffleActivityRecord.class, request, response); } @ApiOperation("查询当前提现信息") @@ -289,18 +293,22 @@ public class WxRaffleActivityController extends BaseController { public ResultData recordAudit(@RequestBody WxRaffleActivityRecord wxCashBackActivityRecord) { TenantEntity tenantEntity = getTenantInfo(); wxCashBackActivityRecord.updateTenantInfo(tenantEntity); - if (wxCashBackActivityRecord.getAuditStatus().intValue() == EnumCashBackActivityRecordStatus.AUDI_SUCCESS.getCode()) { - WxRaffleActivityRecord _r = wxCashBackActivityService.getActivityRecordById(wxCashBackActivityRecord.getId(), tenantEntity.getTenantId()); - wxCashBackActivityRecord.setOrderMoney(_r.getOrderMoney()); - wxCashBackActivityService.calcuteMoney(wxCashBackActivityRecord); - } wxCashBackActivityService.auditRecord(wxCashBackActivityRecord); return new ResultData(); } + @ApiOperation("抽奖") + @PostMapping("recordItemSave") + public ResultData recordItemSave(@RequestBody WxRaffleActivityRecordItem wxCashBackActivityRecord) { + TenantEntity tenantEntity = getTenantInfo(); + wxCashBackActivityRecord.updateTenantInfo(tenantEntity); + wxCashBackActivityService.saveOrUpdateRecordItem(wxCashBackActivityRecord); + return new ResultData(wxCashBackActivityRecord); + } + @ApiOperation("计算金额") @PostMapping("calRecordMoney") - public ResultData calRecordMoney(@RequestBody WxRaffleActivityRecord wxCashBackActivityRecord) { + public ResultData calRecordMoney(@RequestBody WxRaffleActivityRecordItem wxCashBackActivityRecord) { TenantEntity tenantEntity = getTenantInfo(); wxCashBackActivityRecord.updateTenantInfo(tenantEntity); wxCashBackActivityService.calcuteMoney(wxCashBackActivityRecord); diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxRaffleActivityController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxRaffleActivityController.java index ea9b0b92e..73f23f63a 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxRaffleActivityController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxRaffleActivityController.java @@ -30,7 +30,10 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -128,10 +131,9 @@ public class WxRaffleActivityController extends BaseController { } } - WxRaffleActivityItem item = wxCashBackActivityService.getActivityItemById(activity.getItemId(), tenantInfo.getTenantId()); - if (null != item) { - activity.setItemName(item.getName()); - } + List aids = new ArrayList();; + aids.add(activity.getActivityId()); + activity.setRecordItemList(wxCashBackActivityService.getActivityRecordItemListByRecordId(aids, id, tenantInfo)); if (null != activity.getMerchantId()) { WxMerchant m = new WxMerchant(); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRaffleActivity.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRaffleActivity.java index ad66d5030..427511467 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxRaffleActivity.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRaffleActivity.java @@ -35,6 +35,8 @@ public class WxRaffleActivity extends TenantEntity { private Date endTime; @io.swagger.annotations.ApiModelProperty(value = "最低订单金额", name = "limitMoney") private BigDecimal limitMoney; + @io.swagger.annotations.ApiModelProperty(value = "奖券总数量", name = "totalCount") + private Integer totalCount; @io.swagger.annotations.ApiModelProperty(value = "是否全部商户EnumYesOrNo", name = "allMerchant") private Integer allMerchant; @@ -46,6 +48,8 @@ public class WxRaffleActivity extends TenantEntity { @TableField(exist = false) private Integer recordCount; @TableField(exist = false) + private Integer allRaffledCount; + @TableField(exist = false) private String merchantCount; @TableField(exist = false) private BigDecimal auditSuccessRecordSum; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRaffleActivityItem.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRaffleActivityItem.java index ea8fb76ae..87e7214b7 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxRaffleActivityItem.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRaffleActivityItem.java @@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode; import lombok.ToString; import java.math.BigDecimal; import java.util.Date; +import java.util.List; @TableName(value = "wx_raffle_activity_item") @Data @@ -30,12 +31,15 @@ public class WxRaffleActivityItem extends TenantEntity { private String name; @io.swagger.annotations.ApiModelProperty(value = "EnumCashBackActivityItemRule", name = "moneyRule") private Integer moneyRule; - @io.swagger.annotations.ApiModelProperty(value = "总返现比例", name = "totalBackRate") - private BigDecimal totalBackRate; + @io.swagger.annotations.ApiModelProperty(value = "总价值", name = "totalMoney") + private BigDecimal totalMoney; @io.swagger.annotations.ApiModelProperty(value = "商管返现比例", name = "mallBackRate") private BigDecimal mallBackRate; @io.swagger.annotations.ApiModelProperty(value = "商户返现比例", name = "merchantBackRate") private BigDecimal merchantBackRate; + @TableField(exist = false) + private List activityIdList; + } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRaffleActivityRecord.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRaffleActivityRecord.java index d9756eaae..010a2e149 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxRaffleActivityRecord.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRaffleActivityRecord.java @@ -31,11 +31,6 @@ public class WxRaffleActivityRecord extends TenantEntity { @Excel(name="商户名称",width = 20,orderNum = "2") @TableField(exist = false) private String merchantName; - @io.swagger.annotations.ApiModelProperty(value = "选项", name = "itemId") - private Long itemId; - @Excel(name="选项名称",width = 20,orderNum = "3") - @TableField(exist = false) - private String itemName; @Excel(name="订单号",width = 20,orderNum = "4") @io.swagger.annotations.ApiModelProperty(value = "订单号", name = "orderNo") private String orderNo; @@ -58,24 +53,6 @@ public class WxRaffleActivityRecord extends TenantEntity { private List auditStatusList; @io.swagger.annotations.ApiModelProperty(value = "审核内容", name = "auditRemark") private String auditRemark; - @Excel(name="返现比例(%)",width = 20,orderNum = "10") - @io.swagger.annotations.ApiModelProperty(value = "返现比率", name = "cashRate") - private BigDecimal cashRate; - @Excel(name="返现金额",width = 20,orderNum = "11") - @io.swagger.annotations.ApiModelProperty(value = "返现金额", name = "cashMoney") - private BigDecimal cashMoney; - @Excel(name="商管承担比例(%)",width = 20,orderNum = "12") - @io.swagger.annotations.ApiModelProperty(value = "商管承担比例", name = "mallRate") - private BigDecimal mallRate; - @Excel(name="商管承担返现金额",width = 20,orderNum = "13") - @io.swagger.annotations.ApiModelProperty(value = "商管承担返现金额", name = "mallCashMoney") - private BigDecimal mallCashMoney; - @Excel(name="商户承担比例(%)",width = 20,orderNum = "14") - @io.swagger.annotations.ApiModelProperty(value = "商户承担比例", name = "merchantRate") - private BigDecimal merchantRate; - @Excel(name="商户承担返现金额",width = 20,orderNum = "15") - @io.swagger.annotations.ApiModelProperty(value = "商户承担返现金额", name = "merchantCashMoney") - private BigDecimal merchantCashMoney; @Excel(name="提交时间",width = 20,format="yyyy-MM-dd HH:mm:ss", orderNum = "16") @io.swagger.annotations.ApiModelProperty(value = "创建时间", name = "createDate") private Date createDate; @@ -86,10 +63,32 @@ public class WxRaffleActivityRecord extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "更新时间", name = "updateDate") private Date updateDate; + @Excel(name="中奖信息",width = 20, orderNum = "16") + @io.swagger.annotations.ApiModelProperty(value = "中奖信息", name = "itemDetail") + @TableField(exist = false) + private String itemDetail; + @TableField(exist = false) private List activityIdList; @TableField(exist = false) private List merchantIdList; + @TableField(exist = false) + private List recordItemList; + + public String generateItemDetaiJson() { + if (null != recordItemList && recordItemList.size() > 0 ) { + StringBuffer sb = new StringBuffer(); + for (int i = 0 ; i < recordItemList.size() ; i++) { + WxRaffleActivityRecordItem ri = recordItemList.get(i); + sb.append("奖项[").append(i+1).append("]:奖券编码-").append(ri.getCode()).append(",奖项-").append(ri.getItemName()).append(",总价值-") + .append(ri.getCashMoney()).append(",商管承担-").append(ri.getMallCashMoney()).append("元(").append(ri.getMallRate()).append("%),") + .append("商户承担-").append(ri.getMerchantCashMoney()).append("元(").append(ri.getMerchantRate()).append("%). \n"); + } + return sb.toString(); + } + return null; + } + } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRaffleActivityRecordItem.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRaffleActivityRecordItem.java new file mode 100644 index 000000000..329e3358b --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRaffleActivityRecordItem.java @@ -0,0 +1,58 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.iformall.domain.po.base.TenantEntity; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +@TableName(value = "wx_raffle_activity_record_item") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxRaffleActivityRecordItem extends TenantEntity { + + private Long id; + + @io.swagger.annotations.ApiModelProperty(value = "活动", name = "activityId") + private Long activityId; + @io.swagger.annotations.ApiModelProperty(value = "商户id", name = "merchantId") + private Long merchantId; + @io.swagger.annotations.ApiModelProperty(value = "记录id", name = "recordId") + private Long recordId; + @io.swagger.annotations.ApiModelProperty(value = "选项", name = "itemId") + private Long itemId; + @TableField(exist = false) + private String itemName; + @io.swagger.annotations.ApiModelProperty(value = "奖券编码", name = "code") + private String code; + @io.swagger.annotations.ApiModelProperty(value = "返现金额", name = "cashMoney") + private BigDecimal cashMoney; + @io.swagger.annotations.ApiModelProperty(value = "商管承担比例", name = "mallRate") + private BigDecimal mallRate; + @io.swagger.annotations.ApiModelProperty(value = "商管承担返现金额", name = "mallCashMoney") + private BigDecimal mallCashMoney; + @io.swagger.annotations.ApiModelProperty(value = "商户承担比例", name = "merchantRate") + private BigDecimal merchantRate; + @io.swagger.annotations.ApiModelProperty(value = "商户承担返现金额", name = "merchantCashMoney") + private BigDecimal merchantCashMoney; + @io.swagger.annotations.ApiModelProperty(value = "创建时间", name = "createDate") + private Date createDate; + @io.swagger.annotations.ApiModelProperty(value = "更新时间", name = "updateDate") + private Date updateDate; + + @TableField(exist = false) + private List activityIdList; + @TableField(exist = false) + private List recordIdIdList; + @TableField(exist = false) + private List merchantIdList; + +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxRaffleActivityRecordItemMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxRaffleActivityRecordItemMapper.java new file mode 100644 index 000000000..24cda59e4 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxRaffleActivityRecordItemMapper.java @@ -0,0 +1,27 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxRaffleActivityRecordItem; + +import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; + +public interface WxRaffleActivityRecordItemMapper extends CommonMapper { + + WxRaffleActivityRecordItem selectById(@Param("id")Long id,@Param("tenantId")String tenantId); + + List findList(WxRaffleActivityRecordItem wxCashBackActivity); + + Integer selectCount(WxRaffleActivityRecordItem wxCashBackActivity); + + BigDecimal sumAll(WxRaffleActivityRecordItem wxCashBackActivity); + + BigDecimal sumMerchant(WxRaffleActivityRecordItem wxCashBackActivity); + + BigDecimal sumOrderMoney(WxRaffleActivityRecordItem wxCashBackActivity); + + List selectMerchantRecords(WxRaffleActivityRecordItem wxCashBackActivity); + +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxRaffleActivityRecordMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxRaffleActivityRecordMapper.java index 9ccc146fd..2bff1d54e 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxRaffleActivityRecordMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxRaffleActivityRecordMapper.java @@ -14,16 +14,10 @@ public interface WxRaffleActivityRecordMapper extends CommonMapper findList(WxRaffleActivityRecord wxCashBackActivity); + List findIdList(WxRaffleActivityRecord wxCashBackActivity); + void updateStatus(WxRaffleActivityRecord wxCashBackActivity); Integer selectCount(WxRaffleActivityRecord wxCashBackActivity); - BigDecimal sumAll(WxRaffleActivityRecord wxCashBackActivity); - - BigDecimal sumMerchant(WxRaffleActivityRecord wxCashBackActivity); - - BigDecimal sumOrderMoney(WxRaffleActivityRecord wxCashBackActivity); - - List selectMerchantRecords(WxRaffleActivityRecord wxCashBackActivity); - } diff --git a/mallinkService/src/main/java/com/iformall/service/WxRaffleActivityService.java b/mallinkService/src/main/java/com/iformall/service/WxRaffleActivityService.java index bda73f9f1..44ab9d8b7 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxRaffleActivityService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxRaffleActivityService.java @@ -12,6 +12,8 @@ import com.iformall.domain.po.WxRaffleActivity; import com.iformall.domain.po.WxRaffleActivityItem; import com.iformall.domain.po.WxRaffleActivityMerchant; import com.iformall.domain.po.WxRaffleActivityRecord; +import com.iformall.domain.po.WxRaffleActivityRecordItem; +import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumCashBackActivityRecordStatus; public interface WxRaffleActivityService { @@ -32,6 +34,7 @@ public interface WxRaffleActivityService { int getItemCount(WxRaffleActivity record); int getRecordCount(WxRaffleActivityRecord record); + int getRecordItemCount(WxRaffleActivityRecord record); BigDecimal getRecordSum(WxRaffleActivityRecord record); BigDecimal getRecordMerchantSum(WxRaffleActivityRecord record); BigDecimal getRecordOrderMoneySum(WxRaffleActivityRecord record); @@ -52,7 +55,8 @@ public interface WxRaffleActivityService { WxRaffleActivityRecord getActivityRecordById(Long id,String tenantId); - + List getActivityRecordItemListByRecordId(List activitIds,Long recordId,TenantEntity tenantEntity); + /** *更新状态 * @@ -68,7 +72,9 @@ public interface WxRaffleActivityService { void auditRecord(WxRaffleActivityRecord record); - void calcuteMoney(WxRaffleActivityRecord record); + void saveOrUpdateRecordItem(WxRaffleActivityRecordItem record); + + void calcuteMoney(WxRaffleActivityRecordItem record); void saveOrUpdateRecord(WxRaffleActivityRecord record); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRaffleActivityServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRaffleActivityServiceImpl.java index c67a3d7ef..71cc22c7a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRaffleActivityServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRaffleActivityServiceImpl.java @@ -1,5 +1,6 @@ package com.iformall.service.impl; +import com.alibaba.fastjson.JSON; import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -9,6 +10,7 @@ import com.iformall.domain.po.WxRaffleActivity; import com.iformall.domain.po.WxRaffleActivityItem; import com.iformall.domain.po.WxRaffleActivityMerchant; import com.iformall.domain.po.WxRaffleActivityRecord; +import com.iformall.domain.po.WxRaffleActivityRecordItem; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxCUserBasicInfoVo; import com.iformall.enums.EnumCashBackActivityItemRule; @@ -18,6 +20,7 @@ import com.iformall.mapper.WxMerchantMapper; import com.iformall.mapper.WxRaffleActivityItemMapper; import com.iformall.mapper.WxRaffleActivityMapper; import com.iformall.mapper.WxRaffleActivityMerchantMapper; +import com.iformall.mapper.WxRaffleActivityRecordItemMapper; import com.iformall.mapper.WxRaffleActivityRecordMapper; import com.iformall.service.ExcelService; import com.iformall.service.WxRaffleActivityService; @@ -42,6 +45,8 @@ public class WxRaffleActivityServiceImpl implements WxRaffleActivityService { @Autowired WxRaffleActivityRecordMapper wxActivityRecordMapper; @Autowired + WxRaffleActivityRecordItemMapper wxActivityRecordItemMapper; + @Autowired WxRaffleActivityMerchantMapper wxActivityMerchantMapper; @Autowired WxMerchantMapper wxMerchantMapper; @@ -131,11 +136,9 @@ public class WxRaffleActivityServiceImpl implements WxRaffleActivityService { } List aidList = new ArrayList(); List midList = new ArrayList(); - List itemIdList = new ArrayList(); for (WxRaffleActivityRecord r : recordList) { aidList.add(r.getActivityId()); midList.add(r.getMerchantId()); - itemIdList.add(r.getItemId()); } WxRaffleActivity aq = new WxRaffleActivity(); aq.updateTenantInfo(tenantEntity); @@ -159,17 +162,6 @@ public class WxRaffleActivityServiceImpl implements WxRaffleActivityService { } } - WxRaffleActivityItem itemq = new WxRaffleActivityItem(); - itemq.updateTenantInfo(tenantEntity); - itemq.setIds(itemIdList); - List itemList = wxActivityItemMapper.findList(itemq); - Map itemMap = new HashMap(); - if (null != itemList && itemList.size() > 0 ) { - for (WxRaffleActivityItem m : itemList) { - itemMap.put(m.getId(), m); - } - } - for (WxRaffleActivityRecord _r : recordList) { if (null != _r.getActivityId()) { WxRaffleActivity _a = activityMap.get(_r.getActivityId()); @@ -184,15 +176,24 @@ public class WxRaffleActivityServiceImpl implements WxRaffleActivityService { _r.setMerchantName(_m.getName()); } } - - if (null != _r.getItemId()) { - WxRaffleActivityItem _i = itemMap.get(_r.getItemId()); - if (null != _i) { - _r.setItemName(_i.getName()); - } - } + _r.setRecordItemList(getActivityRecordItemListByRecordId(aidList,_r.getId(),_r)); + _r.setItemDetail(_r.generateItemDetaiJson()); } } + + private Map getItemMap(TenantEntity tenantEntity,List activitIds) { + WxRaffleActivityItem iq = new WxRaffleActivityItem(); + iq.updateTenantInfo(tenantEntity); + iq.setActivityIdList(activitIds); + List iqList = wxActivityItemMapper.findList(iq); + Map itemMap = new HashMap(); + if (null != iqList && iqList.size() > 0 ) { + for (WxRaffleActivityItem i : iqList) { + itemMap.put(i.getId(), i); + } + } + return itemMap; + } @Override public int getItemCount(WxRaffleActivity record) { @@ -235,19 +236,48 @@ public class WxRaffleActivityServiceImpl implements WxRaffleActivityService { return wxActivityRecordMapper.selectCount(record); } + private WxRaffleActivityRecordItem generateItemByRecordQuery(WxRaffleActivityRecord record) { + WxRaffleActivityRecordItem ri = new WxRaffleActivityRecordItem(); + ri.updateTenantInfo(record); + ri.setMerchantId(record.getMerchantId()); + ri.setActivityId(record.getActivityId()); + ri.setRecordId(record.getId()); + if (null != record.getActivityIdList() && record.getActivityIdList().size() > 0 ) { + ri.setActivityIdList(record.getActivityIdList()); + } + if (null != record.getMerchantIdList() && record.getMerchantIdList().size() > 0 ) { + ri.setMerchantIdList(record.getMerchantIdList()); + } + return ri; + } + + @Override + public int getRecordItemCount(WxRaffleActivityRecord record) { + return wxActivityRecordItemMapper.selectCount(generateItemByRecordQuery(record)); + } + @Override public BigDecimal getRecordSum(WxRaffleActivityRecord record) { - return wxActivityRecordMapper.sumAll(record); + WxRaffleActivityRecordItem ri = generateItemByRecordQuery(record); + if (null != record.getAuditStatus()) { + List rids = wxActivityRecordMapper.findIdList(record); + if (null == rids || rids.size() <= 0 ) { + return new BigDecimal(0); + } + ri.setRecordIdIdList(rids); + } + + return wxActivityRecordItemMapper.sumAll(ri); } @Override public BigDecimal getRecordMerchantSum(WxRaffleActivityRecord record) { - return wxActivityRecordMapper.sumMerchant(record); + return wxActivityRecordItemMapper.sumMerchant(generateItemByRecordQuery(record)); } @Override public BigDecimal getRecordOrderMoneySum(WxRaffleActivityRecord record) { - return wxActivityRecordMapper.sumOrderMoney(record); + return wxActivityRecordItemMapper.sumOrderMoney(generateItemByRecordQuery(record)); } @Override @@ -348,11 +378,24 @@ public class WxRaffleActivityServiceImpl implements WxRaffleActivityService { } @Override - public void calcuteMoney(WxRaffleActivityRecord record) { + public void saveOrUpdateRecordItem(WxRaffleActivityRecordItem record) { + final IdWorker idWorker = IdWorker.get(); + if (null == record.getId()) { + record.setId(idWorker.nextId()); + record.setCreateDate(new Date()); + record.setUpdateDate(new Date()); + wxActivityRecordItemMapper.insert(record); + }else { + record.setUpdateDate(new Date()); + wxActivityRecordItemMapper.updateById(record); + } + } + + @Override + public void calcuteMoney(WxRaffleActivityRecordItem record) { WxRaffleActivityItem item = wxActivityItemMapper.selectById(record.getItemId(), record.getTenantId()); EnumCashBackActivityItemRule moneyRule = EnumCashBackActivityItemRule.getEnum(item.getMoneyRule()); - record.setCashRate(item.getTotalBackRate()); - record.setCashMoney(record.getOrderMoney().multiply(item.getTotalBackRate()).divide(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP)); + record.setCashMoney(item.getTotalMoney().setScale(3,BigDecimal.ROUND_HALF_UP)); record.setMallRate(item.getMallBackRate()); record.setMerchantRate(item.getMerchantBackRate()); if (moneyRule == EnumCashBackActivityItemRule.MALL_ONLY) { @@ -385,7 +428,32 @@ public class WxRaffleActivityServiceImpl implements WxRaffleActivityService { @Override public List getMerchantRecords(WxRaffleActivityRecord record) { initRecordQueryParam(record); - return wxActivityRecordMapper.selectMerchantRecords(record); + return wxActivityRecordItemMapper.selectMerchantRecords(generateItemByRecordQuery(record)); + } + + @Override + public List getActivityRecordItemListByRecordId(List activitIds,Long recordId, + TenantEntity tenantEntity) { + + Map itemMap = getItemMap(tenantEntity,activitIds); + + WxRaffleActivityRecordItem _ri = new WxRaffleActivityRecordItem(); + _ri.updateTenantInfo(tenantEntity); + _ri.setRecordId(recordId); + List _riList = wxActivityRecordItemMapper.findList(_ri); + if (null != _riList && _riList.size() >= 0 ) { + if (null != itemMap) { + for (int j = 0 ; j < _riList.size() ; j++) { + WxRaffleActivityRecordItem ari = _riList.get(j); + WxRaffleActivityItem ai = itemMap.get(ari.getItemId()); + if (null != ai) { + ari.setItemName(ai.getName()); + } + } + } + + } + return _riList; } } diff --git a/mallinkService/src/main/resources/mapper/WxRaffleActivityItemMapper.xml b/mallinkService/src/main/resources/mapper/WxRaffleActivityItemMapper.xml index 4ced57c1f..42aaf2033 100644 --- a/mallinkService/src/main/resources/mapper/WxRaffleActivityItemMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxRaffleActivityItemMapper.xml @@ -10,14 +10,14 @@ - + `id`,`tenant_id`,`parent_tenant_id`,`name`,`create_date`,`update_date`,`activity_id`,`money_rule`, - `total_back_rate`,`mall_back_rate`,`merchant_back_rate` + `total_money`,`mall_back_rate`,`merchant_back_rate` @@ -50,6 +50,13 @@ and `activity_id` = #{activityId} + + and activity_id in + + #{aidItem} + + + and id in diff --git a/mallinkService/src/main/resources/mapper/WxRaffleActivityMapper.xml b/mallinkService/src/main/resources/mapper/WxRaffleActivityMapper.xml index 11fb2bea7..948030355 100644 --- a/mallinkService/src/main/resources/mapper/WxRaffleActivityMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxRaffleActivityMapper.xml @@ -12,11 +12,12 @@ + - `id`,`tenant_id`,`parent_tenant_id`,`status`,`name`,`create_date`,`update_date`,`start_time`,`end_time`,`limit_money`,`all_merchant` + `id`,`tenant_id`,`parent_tenant_id`,`status`,`name`,`create_date`,`update_date`,`start_time`,`end_time`,`limit_money`,`total_count`,`all_merchant` diff --git a/mallinkService/src/main/resources/mapper/WxRaffleActivityRecordItemMapper.xml b/mallinkService/src/main/resources/mapper/WxRaffleActivityRecordItemMapper.xml new file mode 100644 index 000000000..cfc4c0e59 --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxRaffleActivityRecordItemMapper.xml @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + `id`,`tenant_id`,`parent_tenant_id`,`merchant_id`,`activity_id`,`record_id`,`item_id`,`code`,`create_date`,`update_date`, + `cash_money`,`mall_rate`,`mall_cash_money`,`merchant_rate`,`merchant_cash_money` + + + + where 1 = 1 + + + and `id` = #{id} + + + and `merchant_id` = #{merchantId} + + + and `activity_id` = #{activityId} + + + and `record_id` = #{recordId} + + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + + + and `item_id` = #{itemId} + + + + and activity_id in + + #{aidItem} + + + + + and record_id in + + #{ridItem} + + + + + and merchant_id in + + #{midItem} + + + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mallinkService/src/main/resources/mapper/WxRaffleActivityRecordMapper.xml b/mallinkService/src/main/resources/mapper/WxRaffleActivityRecordMapper.xml index 326a99f12..b03fe0e47 100644 --- a/mallinkService/src/main/resources/mapper/WxRaffleActivityRecordMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxRaffleActivityRecordMapper.xml @@ -6,7 +6,6 @@ - @@ -16,19 +15,13 @@ - - - - - - - `id`,`tenant_id`,`parent_tenant_id`,`activity_id`,`item_id`,`order_no`,`order_money`,`cus_name`,`create_date`,`update_date`,`phone`, - `address`,`audit_remark`,`audit_status`,`cash_rate`,`cash_money`,`mall_rate`,`mall_cash_money`,`merchant_rate`,`merchant_cash_money`,`merchant_id` + `id`,`tenant_id`,`parent_tenant_id`,`activity_id`,`order_no`,`order_money`,`cus_name`,`create_date`,`update_date`,`phone`, + `address`,`audit_remark`,`audit_status`,`merchant_id` @@ -43,10 +36,6 @@ and `activity_id` = #{activityId} - - and `item_id` = #{itemId} - - and `tenant_id` = #{tenantId} @@ -116,6 +105,11 @@ select from wx_raffle_activity_record + + update wx_raffle_activity_record @@ -123,27 +117,6 @@ `audit_remark` = #{auditRemark}, - - `cash_rate` = #{cashRate}, - - - `cash_money` = #{cashMoney}, - - - `mall_rate` = #{mallRate}, - - - `mall_cash_money` = #{mallCashMoney}, - - - `merchant_rate` = #{merchantRate}, - - - `merchant_cash_money` = #{merchantCashMoney}, - - - `item_id` = #{itemId}, - `update_date` = #{updateDate} where id=#{id} @@ -159,25 +132,4 @@ - - - - - - - - \ No newline at end of file