diff --git a/mallinkAdmin/src/main/resources/db/migration/V202405002.sql b/mallinkAdmin/src/main/resources/db/migration/V202405002.sql new file mode 100644 index 000000000..bd53cb120 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V202405002.sql @@ -0,0 +1,5 @@ +ALTER TABLE wx_raffle_activity_record ADD audit_by BIGINT(20) COMMENT '审核人' AFTER `audit_status`; +ALTER TABLE wx_raffle_activity_record ADD audit_time datetime COMMENT '审核时间' AFTER `audit_status`; + +ALTER TABLE wx_raffle_activity_record ADD send_by BIGINT(20) COMMENT '发放人' ; +ALTER TABLE wx_raffle_activity_record ADD send_time datetime COMMENT '发放时间' ; \ No newline at end of file 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 7dd0f0f0c..5966e5c51 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxRaffleActivityRecord.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRaffleActivityRecord.java @@ -53,14 +53,23 @@ public class WxRaffleActivityRecord extends TenantEntity { @Excel(name="客户地址",width = 20,orderNum = "8") @io.swagger.annotations.ApiModelProperty(value = "客户地址", name = "address") private String address; - @Excel(name="状态",width = 20,replace = {"审核中_0", "审核通过_1", "审核驳回_2","已退单_3"},orderNum = "9") + @Excel(name="状态",width = 20,replace = {"审核中_0", "审核通过_1", "审核驳回_2","已退单_3"},orderNum = "10") @io.swagger.annotations.ApiModelProperty(value = "EnumCashBackActivityRecordStatus", name = "auditStatus") private Integer auditStatus; @TableField(exist = false) private List auditStatusList; + @Excel(name="审核内容",width = 20,orderNum = "11") @io.swagger.annotations.ApiModelProperty(value = "审核内容", name = "auditRemark") private String auditRemark; - @Excel(name="提交时间",width = 20,format="yyyy-MM-dd HH:mm:ss", orderNum = "16") + @Excel(name="审核时间",width = 20,format="yyyy-MM-dd HH:mm:ss",orderNum = "12") + @io.swagger.annotations.ApiModelProperty(value = "审核时间", name = "auditTime") + private Date auditTime; + @io.swagger.annotations.ApiModelProperty(value = "审核人", name = "auditBy") + private Long auditBy; + @Excel(name="审核人",width = 20,orderNum = "13") + @TableField(exist = false) + private String auditByName; + @Excel(name="提交时间",width = 20,format="yyyy-MM-dd HH:mm:ss", orderNum = "9") @io.swagger.annotations.ApiModelProperty(value = "创建时间", name = "createDate") private Date createDate; @TableField(exist = false) @@ -69,6 +78,14 @@ public class WxRaffleActivityRecord extends TenantEntity { private Date createDateEnd; @io.swagger.annotations.ApiModelProperty(value = "更新时间", name = "updateDate") private Date updateDate; + @Excel(name="提交时间",width = 20,format="yyyy-MM-dd HH:mm:ss", orderNum = "14") + @io.swagger.annotations.ApiModelProperty(value = "发奖时间", name = "sendTime") + private Date sendTime; + @io.swagger.annotations.ApiModelProperty(value = "发奖人", name = "sendBy") + private Long sendBy; + @Excel(name="发奖人",width = 20,orderNum = "15") + @TableField(exist = false) + private String sendByName; @io.swagger.annotations.ApiModelProperty(value = "签名图片", name = "updateDate") private String signImg; @Excel(name="中奖信息",width = 20, orderNum = "16") @@ -86,6 +103,8 @@ public class WxRaffleActivityRecord extends TenantEntity { private List recordItemList; @TableField(exist = false) private Map recordItemIdCountMap; + @TableField(exist = false) + private Map recordItemJiangQuanCountMap; public String generateItemDetaiJson() { if (null != recordItemList && recordItemList.size() > 0 ) { @@ -104,6 +123,7 @@ public class WxRaffleActivityRecord extends TenantEntity { public void generateItemIds() { if (null != recordItemList && recordItemList.size() > 0 ) { recordItemIdCountMap = new HashMap(); + recordItemJiangQuanCountMap = new HashMap(); for (int i = 0 ; i < recordItemList.size() ; i++) { WxRaffleActivityRecordItem ri = recordItemList.get(i); String key = this.id+"&"+ri.getItemId(); @@ -114,6 +134,14 @@ public class WxRaffleActivityRecord extends TenantEntity { }else { recordItemIdCountMap.put(key, 1); } + + if (recordItemJiangQuanCountMap.containsKey(key)) { + String jq = recordItemJiangQuanCountMap.get(key); + jq = jq + ","+ri.getCode(); + recordItemJiangQuanCountMap.put(key, jq); + }else { + recordItemJiangQuanCountMap.put(key, ri.getCode()); + } } } } @@ -127,20 +155,27 @@ public class WxRaffleActivityRecord extends TenantEntity { excelTitle.put("cusName", "客户姓名"); excelTitle.put("phone", "客户电话"); excelTitle.put("address", "客户地址"); + excelTitle.put("createDate", "提交时间"); excelTitle.put("auditStatus", "状态"); excelTitle.put("auditRemark", "审核内容"); - excelTitle.put("createDate", "提交时间"); + excelTitle.put("auditTime", "审核时间"); + excelTitle.put("auditByName", "审核人"); + if (null != itemMap) { for (Iterator it = itemMap.keySet().iterator();it.hasNext();) { Long itemId = it.next(); WxRaffleActivityItem item = itemMap.get(itemId); excelTitle.put(String.valueOf(item.getId()),item.getName()); + excelTitle.put(String.valueOf(item.getId())+"_jiangquan",item.getName()+"_奖券编码"); } } + + excelTitle.put("sendTime", "发奖时间"); + excelTitle.put("sendByName", "发奖人"); return excelTitle; } - public Map generateExcelData(Map itemMap) { + public Map generateExcelData(Map itemMap,Map mallUserMap) { Map excelObject = new HashMap(); excelObject.put("activityName", activityName); excelObject.put("merchantName", merchantName); @@ -149,12 +184,23 @@ public class WxRaffleActivityRecord extends TenantEntity { excelObject.put("cusName", cusName); excelObject.put("phone", phone); excelObject.put("address", address); + excelObject.put("createDate", DateUtils.date2String(createDate)); EnumCashBackActivityRecordStatus status = EnumCashBackActivityRecordStatus.getEnum(auditStatus); if (null != status ) { excelObject.put("auditStatus", status.getMessage()); } excelObject.put("auditRemark", auditRemark); - excelObject.put("createDate", DateUtils.date2String(createDate)); + if (null != auditTime) { + excelObject.put("auditTime", DateUtils.date2String(auditTime)); + } + + if (null != auditBy) { + MallUserInfo mu = mallUserMap.get(auditBy); + if (null != mu) { + excelObject.put("auditByName", mu.getName()); + } + } + if (null != itemMap) { for (Iterator it = itemMap.keySet().iterator();it.hasNext();) { Long itemId = it.next(); @@ -162,11 +208,24 @@ public class WxRaffleActivityRecord extends TenantEntity { String key = this.id+"&"+item.getId(); if (null != recordItemIdCountMap && recordItemIdCountMap.containsKey(key)) { excelObject.put(String.valueOf(item.getId()), recordItemIdCountMap.get(key)); + excelObject.put(String.valueOf(item.getId())+"_jiangquan", recordItemJiangQuanCountMap.get(key)); }else { excelObject.put(String.valueOf(item.getId()), 0); + excelObject.put(String.valueOf(item.getId())+"_jiangquan", null); } } } + + if (null != sendTime) { + excelObject.put("sendTime", DateUtils.date2String(sendTime)); + } + + if (null != sendBy) { + MallUserInfo mu = mallUserMap.get(sendBy); + if (null != mu) { + excelObject.put("sendByName", mu.getName()); + } + } return excelObject; } diff --git a/mallinkService/src/main/java/com/iformall/service/MallUserInfoService.java b/mallinkService/src/main/java/com/iformall/service/MallUserInfoService.java index ede013589..dfdbd8c58 100644 --- a/mallinkService/src/main/java/com/iformall/service/MallUserInfoService.java +++ b/mallinkService/src/main/java/com/iformall/service/MallUserInfoService.java @@ -11,6 +11,7 @@ import com.iformall.domain.vo.MallUserInfoVo; import java.io.Serializable; import java.util.Collection; import java.util.List; +import java.util.Map; import java.util.Set; public interface MallUserInfoService { @@ -203,4 +204,6 @@ public interface MallUserInfoService { * @return */ Set getUserPermissions(MallUserInfo record, boolean boolNav); + + Map getUserMap(MallUserInfo record); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/MallUserInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/MallUserInfoServiceImpl.java index 6cc067deb..bd73387a4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/MallUserInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/MallUserInfoServiceImpl.java @@ -334,4 +334,18 @@ public class MallUserInfoServiceImpl implements MallUserInfoService { return permsSet; } + @Override + public Map getUserMap(MallUserInfo record) { + List userList = mallUserInfoMapper.findList(record); + if (null != userList && userList.size() > 0 ) { + Map userMap = new HashMap(); + for (int i = 0 ; i < userList.size() ; i ++) { + MallUserInfo mui = userList.get(i); + userMap.put(mui.getId(), mui); + } + return userMap; + } + return null; + } + } 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 a56b2f49c..f735f0161 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRaffleActivityServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRaffleActivityServiceImpl.java @@ -5,6 +5,7 @@ import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.IdWorker; +import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.WxRaffleActivity; import com.iformall.domain.po.WxRaffleActivityItem; @@ -23,11 +24,13 @@ import com.iformall.mapper.WxRaffleActivityMerchantMapper; import com.iformall.mapper.WxRaffleActivityRecordItemMapper; import com.iformall.mapper.WxRaffleActivityRecordMapper; import com.iformall.service.ExcelService; +import com.iformall.service.MallUserInfoService; import com.iformall.service.WxRaffleActivityService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.*; @@ -51,6 +54,10 @@ public class WxRaffleActivityServiceImpl implements WxRaffleActivityService { @Autowired WxMerchantMapper wxMerchantMapper; + @Lazy + @Autowired + MallUserInfoService mallUserInfoService; + @Autowired ExcelService excelService; @@ -168,6 +175,8 @@ public class WxRaffleActivityServiceImpl implements WxRaffleActivityService { itemMap = getItemMap(tenantEntity,_aids); } + Map userMap = getMallUserInfoMap(tenantEntity); + for (WxRaffleActivityRecord _r : recordList) { if (null != _r.getActivityId()) { WxRaffleActivity _a = activityMap.get(_r.getActivityId()); @@ -187,7 +196,7 @@ public class WxRaffleActivityServiceImpl implements WxRaffleActivityService { if (null != oneActivityExeclList && null != oneAcitvityId) { _r.generateItemIds(); - oneActivityExeclList.add(_r.generateExcelData(itemMap)); + oneActivityExeclList.add(_r.generateExcelData(itemMap,userMap)); } } } @@ -206,6 +215,12 @@ public class WxRaffleActivityServiceImpl implements WxRaffleActivityService { } return itemMap; } + + private Map getMallUserInfoMap(TenantEntity tenantEntity) { + MallUserInfo mui = new MallUserInfo(); + mui.updateTenantInfo(tenantEntity); + return mallUserInfoService.getUserMap(mui); + } @Override public int getItemCount(WxRaffleActivity record) { diff --git a/mallinkService/src/main/resources/mapper/WxRaffleActivityRecordMapper.xml b/mallinkService/src/main/resources/mapper/WxRaffleActivityRecordMapper.xml index d10bc6a8b..401fb03ed 100644 --- a/mallinkService/src/main/resources/mapper/WxRaffleActivityRecordMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxRaffleActivityRecordMapper.xml @@ -15,13 +15,17 @@ + + + + `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`,`sign_img` + `address`,`audit_remark`,`audit_status`,`audit_by`,`audit_time`,`merchant_id`,`sign_img`,`send_by`,`send_time`