| @@ -43,7 +43,7 @@ public class WxOfflineActivityRecord extends TenantEntity { | |||
| /** | |||
| * 订单金额 | |||
| */ | |||
| @Excel(name = "订单金额(元)", width = 20, orderNum = "7") | |||
| @Excel(name = "订单金额(元)", width = 20, orderNum = "8") | |||
| @TableField(value = "order_money") | |||
| private BigDecimal orderMoney; | |||
| @@ -125,6 +125,9 @@ public class WxOfflineActivityRecord extends TenantEntity { | |||
| @Excel(name = "商户名称", width = 20, orderNum = "6") | |||
| @TableField(exist = false) | |||
| private String merchantName; | |||
| @Excel(name="商铺号",width = 20,orderNum = "7") | |||
| @TableField(exist = false) | |||
| private String shopNumber; | |||
| @TableField(exist = false) | |||
| private List<Long> merchantIdList; | |||
| @@ -155,14 +158,14 @@ public class WxOfflineActivityRecord extends TenantEntity { | |||
| /** | |||
| * 审批意见 | |||
| */ | |||
| @Excel(name = "审核意见", width = 20, orderNum = "9") | |||
| @Excel(name = "审核意见", width = 20, orderNum = "10") | |||
| @TableField(value = "audit_remark") | |||
| private String auditRemark; | |||
| /** | |||
| * 审批状态 | |||
| */ | |||
| @Excel(name = "审核状态", width = 20, orderNum = "8", replace = {"审核中_0", "已审批_1", "已驳回_2", "已发奖_10"}) | |||
| @Excel(name = "审核状态", width = 20, orderNum = "9", replace = {"审核中_0", "已审批_1", "已驳回_2", "已发奖_10"}) | |||
| @TableField(value = "audit_status") | |||
| private Integer auditStatus; | |||
| @@ -172,14 +175,14 @@ public class WxOfflineActivityRecord extends TenantEntity { | |||
| @TableField(value = "audit_by") | |||
| private Long auditBy; | |||
| @Excel(name = "审核人", width = 20, orderNum = "11") | |||
| @Excel(name = "审核人", width = 20, orderNum = "12") | |||
| @TableField(exist = false) | |||
| private String auditByName; | |||
| /** | |||
| * 审核时间 | |||
| */ | |||
| @Excel(name = "审核时间", width = 20, format = "yyyy-MM-dd HH:mm:ss", orderNum = "10") | |||
| @Excel(name = "审核时间", width = 20, format = "yyyy-MM-dd HH:mm:ss", orderNum = "11") | |||
| @TableField(value = "audit_time") | |||
| private Date auditTime; | |||
| @@ -8,6 +8,7 @@ import com.iformall.domain.po.base.TenantEntity; | |||
| import javax.servlet.http.HttpServletRequest; | |||
| import javax.servlet.http.HttpServletResponse; | |||
| import java.util.List; | |||
| import java.util.Map; | |||
| /** | |||
| @@ -19,6 +20,8 @@ public interface WxOfflineActivityRecordService { | |||
| PageInfo<WxOfflineActivityRecord> listAsPage(WxOfflineActivityRecord record, Integer pageNum, Integer pageSize); | |||
| void handlerRecordList(TenantEntity tenantEntity,Long activityId, List<WxOfflineActivityRecord> recordList); | |||
| void saveOrUpdate(WxOfflineActivityRecord wxOfflineActivityRecord); | |||
| WxOfflineActivityRecord getById(Long id, String tenantId); | |||
| @@ -75,12 +75,17 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity | |||
| @Autowired | |||
| WxOfflineActivityService wxOfflineActivityService; | |||
| @Autowired | |||
| WxOfflineActivityRecordService wxOfflineActivityRecordService; | |||
| @Autowired | |||
| WxOfflineActivityGrantSettlementService wxOfflineActivityGrantSettlementService; | |||
| @Autowired | |||
| WxMerchantService wxMerchantService; | |||
| @Autowired | |||
| WxShopService wxShopService; | |||
| @Autowired | |||
| MallUserInfoService mallUserInfoService; | |||
| @Autowired | |||
| @@ -127,7 +132,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity | |||
| public List<WxOfflineActivityRecord> getRecordList(WxOfflineActivityRecord wxOfflineActivityRecord) { | |||
| handlerRecordQuery(wxOfflineActivityRecord); | |||
| List<WxOfflineActivityRecord> recordList = wxOfflineActivityRecordMapper.findList(wxOfflineActivityRecord); | |||
| handlerRecordList(wxOfflineActivityRecord,recordList); | |||
| wxOfflineActivityRecordService.handlerRecordList(wxOfflineActivityRecord,wxOfflineActivityRecord.getActivityId(),recordList); | |||
| return recordList; | |||
| } | |||
| @@ -149,31 +154,6 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity | |||
| } | |||
| } | |||
| private void handlerRecordList(WxOfflineActivityRecord wxOfflineActivityRecord, List<WxOfflineActivityRecord> recordList) { | |||
| if (recordList == null || recordList.isEmpty()) { | |||
| return; | |||
| } | |||
| WxMerchant merchantQ = new WxMerchant(); | |||
| merchantQ.updateTenantInfo(wxOfflineActivityRecord); | |||
| Map<Long, String> idAndNamesMap = wxMerchantService.getIdAndNamesMap(merchantQ); | |||
| MallUserInfo userInfoQ = new MallUserInfo(); | |||
| userInfoQ.updateTenantInfo(wxOfflineActivityRecord); | |||
| Map<Long, MallUserInfo> userMap = mallUserInfoService.getUserMap(userInfoQ); | |||
| for (WxOfflineActivityRecord record : recordList) { | |||
| record.setMerchantName(idAndNamesMap.get(record.getMerchantId())); | |||
| if(record.getAuditBy() != null){ | |||
| record.setAuditByName(userMap.get(record.getAuditBy()).getName()); | |||
| } | |||
| //判断订单是否发奖 | |||
| Integer grantCount = wxOfflineActivityRecordGrantMapper.selectGrantCount(wxOfflineActivityRecord.getTenantId(),wxOfflineActivityRecord.getActivityId(),record.getId()); | |||
| if(grantCount >= 1){ | |||
| record.setAuditStatus(EnumOfflineActivityRecordStatus.IS_GRANT.getCode()); | |||
| } | |||
| } | |||
| } | |||
| @Override | |||
| public void handlerGrantAwardPage(WxOfflineActivityGrantAward wxOfflineActivityGrantAward) { | |||
| WxOfflineActivity activity = wxOfflineActivityMapper.selectById(wxOfflineActivityGrantAward.getActivityId(), wxOfflineActivityGrantAward.getTenantId()); | |||
| @@ -560,7 +540,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity | |||
| public void recordExport(HttpServletRequest request, HttpServletResponse response, WxOfflineActivityRecord wxOfflineActivityRecord) { | |||
| handlerRecordQuery(wxOfflineActivityRecord); | |||
| List<WxOfflineActivityRecord> recordList = wxOfflineActivityRecordMapper.findList(wxOfflineActivityRecord); | |||
| handlerRecordList(wxOfflineActivityRecord,recordList); | |||
| wxOfflineActivityRecordService.handlerRecordList(wxOfflineActivityRecord,wxOfflineActivityRecord.getActivityId(),recordList); | |||
| excelService.exportExcel(recordList, null, "用户参加活动订单列表", WxOfflineActivityRecord.class, "用户参加活动订单列表.xlsx", response, false); | |||
| } | |||
| @@ -8,12 +8,11 @@ import com.iformall.domain.po.*; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import com.iformall.domain.vo.OfflineActivityRecordStatistics; | |||
| import com.iformall.enums.EnumOfflineActivityRecordStatus; | |||
| import com.iformall.enums.EnumYesOrNo; | |||
| import com.iformall.mapper.WxMerchantMapper; | |||
| import com.iformall.mapper.WxOfflineActivityGrantAwardMapper; | |||
| import com.iformall.service.ExcelService; | |||
| import com.iformall.service.MallUserInfoService; | |||
| import com.iformall.service.WxMerchantService; | |||
| import com.iformall.service.WxOfflineActivityRecordService; | |||
| import com.iformall.mapper.WxOfflineActivityRecordGrantMapper; | |||
| import com.iformall.service.*; | |||
| import com.iformall.mapper.WxOfflineActivityRecordMapper; | |||
| import com.iformall.utils.DateUtils; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| @@ -23,6 +22,7 @@ import javax.servlet.http.HttpServletRequest; | |||
| import javax.servlet.http.HttpServletResponse; | |||
| import java.text.NumberFormat; | |||
| import java.util.*; | |||
| import java.util.stream.Collectors; | |||
| /** | |||
| * @author xiaohu | |||
| @@ -38,11 +38,16 @@ public class WxOfflineActivityRecordServiceImpl implements WxOfflineActivityReco | |||
| @Autowired | |||
| WxOfflineActivityGrantAwardMapper wxOfflineActivityGrantAwardMapper; | |||
| @Autowired | |||
| WxOfflineActivityRecordGrantMapper wxOfflineActivityRecordGrantMapper; | |||
| @Autowired | |||
| WxMerchantMapper wxMerchantMapper; | |||
| @Autowired | |||
| WxMerchantService wxMerchantService; | |||
| @Autowired | |||
| WxShopService wxShopService; | |||
| @Autowired | |||
| MallUserInfoService mallUserInfoService; | |||
| @Autowired | |||
| @@ -52,7 +57,7 @@ public class WxOfflineActivityRecordServiceImpl implements WxOfflineActivityReco | |||
| public PageInfo<WxOfflineActivityRecord> listAsPage(WxOfflineActivityRecord record, Integer pageNum, Integer pageSize) { | |||
| handlerQuery(record); | |||
| PageInfo<WxOfflineActivityRecord> recordPageInfo = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxOfflineActivityRecordMapper.findList(record)); | |||
| handlerRecordList(record,recordPageInfo.getList()); | |||
| handlerRecordList(record,null,recordPageInfo.getList()); | |||
| return recordPageInfo; | |||
| } | |||
| @@ -102,23 +107,47 @@ public class WxOfflineActivityRecordServiceImpl implements WxOfflineActivityReco | |||
| } | |||
| } | |||
| private void handlerRecordList(TenantEntity tenantEntity,List<WxOfflineActivityRecord> recordList) { | |||
| @Override | |||
| public void handlerRecordList(TenantEntity tenantEntity,Long activityId,List<WxOfflineActivityRecord> recordList) { | |||
| if (recordList == null || recordList.size() <= 0) { | |||
| return; | |||
| } | |||
| WxMerchant merchantQ = new WxMerchant(); | |||
| merchantQ.updateTenantInfo(tenantEntity); | |||
| Map<Long, String> idAndNamesMap = wxMerchantService.getIdAndNamesMap(merchantQ); | |||
| MallUserInfo userInfoQ = new MallUserInfo(); | |||
| userInfoQ.updateTenantInfo(tenantEntity); | |||
| Map<Long, MallUserInfo> userMap = mallUserInfoService.getUserMap(userInfoQ); | |||
| List<Long> merchantIds = recordList.stream().map(WxOfflineActivityRecord::getMerchantId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); | |||
| List<Long> userIds = recordList.stream().map(WxOfflineActivityRecord::getAuditBy).filter(Objects::nonNull).distinct().collect(Collectors.toList()); | |||
| Map<Long, String> idAndNamesMap = new HashMap<>(); | |||
| Map<Long,String> merchantShopNumberMap = new HashMap<>(); | |||
| if(!merchantIds.isEmpty()){ | |||
| WxMerchant merchantQ = new WxMerchant(); | |||
| merchantQ.updateTenantInfo(tenantEntity); | |||
| merchantQ.setIds(merchantIds); | |||
| idAndNamesMap = wxMerchantService.getIdAndNamesMap(merchantQ); | |||
| merchantShopNumberMap = wxShopService.getMerchantShopNumberMap(tenantEntity, merchantIds, EnumYesOrNo.NO.getCode()); | |||
| } | |||
| Map<Long, MallUserInfo> userMap = new HashMap<>(); | |||
| if(!userIds.isEmpty()){ | |||
| MallUserInfo userInfoQ = new MallUserInfo(); | |||
| userInfoQ.updateTenantInfo(tenantEntity); | |||
| userMap = mallUserInfoService.getUserMap(userInfoQ); | |||
| } | |||
| for (WxOfflineActivityRecord record : recordList) { | |||
| record.setMerchantName(idAndNamesMap.get(record.getMerchantId())); | |||
| if(record.getMerchantId() != null){ | |||
| record.setMerchantName(idAndNamesMap.get(record.getMerchantId())); | |||
| record.setShopNumber(merchantShopNumberMap.get(record.getMerchantId())); | |||
| } | |||
| if(record.getAuditBy() != null){ | |||
| record.setAuditByName(userMap.get(record.getAuditBy()).getName()); | |||
| } | |||
| if(activityId != null){ | |||
| //判断订单是否发奖 | |||
| Integer grantCount = wxOfflineActivityRecordGrantMapper.selectGrantCount(tenantEntity.getTenantId(),activityId,record.getId()); | |||
| if(grantCount >= 1){ | |||
| record.setAuditStatus(EnumOfflineActivityRecordStatus.IS_GRANT.getCode()); | |||
| } | |||
| } | |||
| } | |||
| } | |||
| @Override | |||
| @@ -242,7 +271,7 @@ public class WxOfflineActivityRecordServiceImpl implements WxOfflineActivityReco | |||
| public void exportData(HttpServletRequest request, HttpServletResponse response, WxOfflineActivityRecord record) { | |||
| handlerQuery(record); | |||
| List<WxOfflineActivityRecord> list = wxOfflineActivityRecordMapper.findList(record); | |||
| handlerRecordList(record,list); | |||
| handlerRecordList(record,null,list); | |||
| excelService.exportExcel(list, null, "活动订单列表", WxOfflineActivityRecord.class, "活动订单列表.xlsx", response, false); | |||
| } | |||