diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityGrantController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityGrantController.java index 29e56db56..b4c01ee8d 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityGrantController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityGrantController.java @@ -7,13 +7,9 @@ import com.iformall.controller.base.BaseController; import com.iformall.domain.po.*; import com.iformall.domain.po.base.BaseEntity.SortField; import com.iformall.domain.po.base.TenantEntity; -import com.iformall.enums.EnumOfflineActivityAwardsMoneyRule; -import com.iformall.enums.EnumOfflineActivityMerchantType; -import com.iformall.enums.EnumOfflineActivityRecordStatus; +import com.iformall.exception.MallinkException; import com.iformall.service.WxOfflineActivityGrantAwardService; -import com.iformall.service.WxOfflineActivityRecordService; import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import jodd.util.StringUtil; @@ -22,7 +18,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.math.BigDecimal; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; @@ -51,7 +48,7 @@ public class WxOfflineActivityGrantController extends BaseController { TenantEntity tenantInfo = getTenantInfo(); wxOfflineActivityRecord.updateTenantInfo(tenantInfo); - Map statisticsMap = wxOfflineActivityGrantAwardService.getRecordStatistics(wxOfflineActivityRecord.getActivityId(),wxOfflineActivityRecord); + Map statisticsMap = wxOfflineActivityGrantAwardService.getRecordStatistics(wxOfflineActivityRecord); return new ResultData(statisticsMap); } @@ -69,11 +66,27 @@ public class WxOfflineActivityGrantController extends BaseController { TenantEntity tenantInfo = getTenantInfo(); wxOfflineActivityRecord.updateTenantInfo(tenantInfo); wxOfflineActivityRecord.setSortColumns(SortField.CreateDate_DESC); - List recordList = wxOfflineActivityGrantAwardService.getRecordList(wxOfflineActivityRecord.getActivityId(),wxOfflineActivityRecord); + List recordList = wxOfflineActivityGrantAwardService.getRecordList(wxOfflineActivityRecord); return new ResultData(recordList); } + @ApiOperation("参加活动用户订单导出") + @GetMapping("/recordExport") + public void recordExport(@ModelAttribute WxOfflineActivityRecord wxOfflineActivityRecord, HttpServletRequest request, HttpServletResponse response) { + if(wxOfflineActivityRecord.getActivityId() == null){ + throw new MallinkException(Result.ERROR,"请选择活动"); + } + if(StringUtil.isBlank(wxOfflineActivityRecord.getCusPhone())){ + throw new MallinkException(Result.ERROR,"请输入用户手机号"); + } + + TenantEntity tenantInfo = getTenantInfo(); + wxOfflineActivityRecord.updateTenantInfo(tenantInfo); + wxOfflineActivityRecord.setSortColumns(SortField.CreateDate_DESC); + wxOfflineActivityGrantAwardService.recordExport(request,response,wxOfflineActivityRecord); + } + @ApiOperation("活动发放") @PostMapping("grantAward") public ResultData grantAward(@RequestBody WxOfflineActivityGrantAward wxOfflineActivityGrantAward) { diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityRecordController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityRecordController.java index 2058cd839..f1f62100a 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityRecordController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityRecordController.java @@ -4,16 +4,14 @@ import com.github.pagehelper.PageInfo; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; -import com.iformall.domain.po.WxOfflineActivity; -import com.iformall.domain.po.WxOfflineActivityAwardsItem; -import com.iformall.domain.po.WxOfflineActivityItem; -import com.iformall.domain.po.WxOfflineActivityRecord; +import com.iformall.domain.po.*; import com.iformall.domain.po.base.BaseEntity.SortField; import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumOfflineActivityAwardsMoneyRule; import com.iformall.enums.EnumOfflineActivityMerchantType; import com.iformall.enums.EnumOfflineActivityRecordStatus; import com.iformall.enums.EnumOfflineActivityStatus; +import com.iformall.exception.MallinkException; import com.iformall.service.WxOfflineActivityRecordService; import com.iformall.service.WxOfflineActivityService; import io.swagger.annotations.Api; @@ -26,6 +24,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; /** @@ -55,6 +55,16 @@ public class WxOfflineActivityRecordController extends BaseController { return new ResultData(page); } + + @ApiOperation("导出") + @GetMapping("/export") + public void export(@ModelAttribute WxOfflineActivityRecord wxOfflineActivityRecord, HttpServletRequest request, HttpServletResponse response) { + if (null == wxOfflineActivityRecord) wxOfflineActivityRecord = new WxOfflineActivityRecord(); + TenantEntity tenantInfo = getTenantInfo(); + wxOfflineActivityRecord.updateTenantInfo(tenantInfo); + wxOfflineActivityRecord.setSortColumns(SortField.CreateDate_DESC); + wxOfflineActivityRecordService.exportData(request,response,wxOfflineActivityRecord); + } @ApiOperation("审核通过") @PostMapping("audiPass") diff --git a/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantAwardService.java b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantAwardService.java index b0ce33cee..8f1f2c72e 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantAwardService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantAwardService.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.iformall.domain.po.WxOfflineActivityRecord; 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; @@ -15,11 +17,13 @@ import java.util.Map; */ public interface WxOfflineActivityGrantAwardService { - Map getRecordStatistics(Long activityId, WxOfflineActivityRecord wxOfflineActivityRecord); + Map getRecordStatistics(WxOfflineActivityRecord wxOfflineActivityRecord); - List getRecordList(Long activityId, WxOfflineActivityRecord wxOfflineActivityRecord); + List getRecordList(WxOfflineActivityRecord wxOfflineActivityRecord); void grantAward(WxOfflineActivityGrantAward wxOfflineActivityGrantAward); Map cusStatistics(TenantEntity tenantInfo); + + void recordExport(HttpServletRequest request, HttpServletResponse response, WxOfflineActivityRecord wxOfflineActivityRecord); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityRecordService.java b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityRecordService.java index d93f24e71..982ac649a 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityRecordService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxOfflineActivityRecordService.java @@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.iformall.domain.po.WxRaffleActivityRecord; import com.iformall.domain.po.base.TenantEntity; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.Map; /** @@ -27,4 +29,6 @@ public interface WxOfflineActivityRecordService { void auditRecord(WxOfflineActivityRecord wxOfflineActivityRecord, Long userId); Map orderStatistics(TenantEntity tenantInfo); + + void exportData(HttpServletRequest request, HttpServletResponse response, WxOfflineActivityRecord wxOfflineActivityRecord); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java index 65a37e564..aaa6c81cf 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java @@ -15,6 +15,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.text.NumberFormat; import java.util.*; @@ -61,14 +63,12 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity @Autowired MallUserInfoService mallUserInfoService; + @Autowired + ExcelService excelService; + @Override - public Map getRecordStatistics(Long activityId, WxOfflineActivityRecord wxOfflineActivityRecord) { - WxOfflineActivity activity = wxOfflineActivityMapper.selectById(activityId, wxOfflineActivityRecord.getTenantId()); - if (activity == null) { - return Collections.emptyMap(); - } - wxOfflineActivityRecord.setCreateDateBegin(activity.getStartTime()); - wxOfflineActivityRecord.setCreateDateEnd(activity.getEndTime()); + public Map getRecordStatistics(WxOfflineActivityRecord wxOfflineActivityRecord) { + handlerRecordQuery(wxOfflineActivityRecord); WxOfflineActivityRecord limitOne = wxOfflineActivityRecordMapper.selectLimitOne(wxOfflineActivityRecord); Map result = new HashMap<>(); Integer audting = 0, audi_success = 0, audt_fail = 0,sum_success = 0, sum_fail = 0; @@ -102,10 +102,18 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity } @Override - public List getRecordList(Long activityId, WxOfflineActivityRecord wxOfflineActivityRecord) { - WxOfflineActivity activity = wxOfflineActivityMapper.selectById(activityId, wxOfflineActivityRecord.getTenantId()); + public List getRecordList(WxOfflineActivityRecord wxOfflineActivityRecord) { + handlerRecordQuery(wxOfflineActivityRecord); + List recordList = wxOfflineActivityRecordMapper.findList(wxOfflineActivityRecord); + handlerRecordList(wxOfflineActivityRecord,recordList); + return recordList; + } + + private void handlerRecordQuery(WxOfflineActivityRecord wxOfflineActivityRecord){ + WxOfflineActivity activity = wxOfflineActivityMapper.selectById(wxOfflineActivityRecord.getActivityId(), wxOfflineActivityRecord.getTenantId()); if (activity == null) { - return Collections.emptyList(); + wxOfflineActivityRecord.setId(-1l); + return; } wxOfflineActivityRecord.setCreateDateBegin(activity.getStartTime()); wxOfflineActivityRecord.setCreateDateEnd(activity.getEndTime()); @@ -117,21 +125,17 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity List merchantIds = wxOfflineActivityMerchantMapper.getMerchantIdList(activity.getId(), activity.getTenantId()); wxOfflineActivityRecord.setNotMerchantIdList(merchantIds); } - - List recordList = wxOfflineActivityRecordMapper.findList(wxOfflineActivityRecord); - handlerRecordList(wxOfflineActivityRecord,activity,recordList); - return recordList; } - private void handlerRecordList(TenantEntity tenantEntity, WxOfflineActivity activity, List recordList) { + private void handlerRecordList(WxOfflineActivityRecord wxOfflineActivityRecord, List recordList) { if (recordList == null || recordList.isEmpty()) { return; } WxMerchant merchantQ = new WxMerchant(); - merchantQ.updateTenantInfo(tenantEntity); + merchantQ.updateTenantInfo(wxOfflineActivityRecord); Map idAndNamesMap = wxMerchantService.getIdAndNamesMap(merchantQ); MallUserInfo userInfoQ = new MallUserInfo(); - userInfoQ.updateTenantInfo(tenantEntity); + userInfoQ.updateTenantInfo(wxOfflineActivityRecord); Map userMap = mallUserInfoService.getUserMap(userInfoQ); for (WxOfflineActivityRecord record : recordList) { @@ -140,7 +144,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity record.setAuditByName(userMap.get(record.getAuditBy()).getName()); } //判断订单是否发奖 - Integer grantCount = wxOfflineActivityRecordGrantMapper.selectGrantCount(tenantEntity.getTenantId(),activity.getId(),record.getId()); + Integer grantCount = wxOfflineActivityRecordGrantMapper.selectGrantCount(wxOfflineActivityRecord.getTenantId(),wxOfflineActivityRecord.getActivityId(),record.getId()); if(grantCount >= 1){ record.setAuditStatus(EnumOfflineActivityRecordStatus.IS_GRANT.getCode()); } @@ -377,6 +381,14 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity return result; } + @Override + public void recordExport(HttpServletRequest request, HttpServletResponse response, WxOfflineActivityRecord wxOfflineActivityRecord) { + handlerRecordQuery(wxOfflineActivityRecord); + List recordList = wxOfflineActivityRecordMapper.findList(wxOfflineActivityRecord); + handlerRecordList(wxOfflineActivityRecord,recordList); + excelService.exportExcel(recordList, null, "用户参加活动订单列表", WxOfflineActivityGrantSettlement.class, "用户参加活动订单列表.xlsx", response, false); + } + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java index 7a6e718b5..4d1ca7af4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java @@ -1,7 +1,6 @@ package com.iformall.service.impl; import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.IdWorker; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java index 03b34820c..ee80c7a02 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java @@ -10,6 +10,7 @@ import com.iformall.domain.vo.OfflineActivityRecordStatistics; import com.iformall.enums.EnumOfflineActivityRecordStatus; 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; @@ -18,6 +19,8 @@ import com.iformall.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.text.NumberFormat; import java.util.*; @@ -42,6 +45,9 @@ public class WxOfflineActivityRecordServiceImpl implements WxOfflineActivityReco @Autowired MallUserInfoService mallUserInfoService; + @Autowired + ExcelService excelService; + @Override public PageInfo listAsPage(WxOfflineActivityRecord record, Integer pageNum, Integer pageSize) { handlerQuery(record); @@ -222,6 +228,14 @@ public class WxOfflineActivityRecordServiceImpl implements WxOfflineActivityReco result.put("weekPercentage",weekPercentage); return result; } + + @Override + public void exportData(HttpServletRequest request, HttpServletResponse response, WxOfflineActivityRecord record) { + handlerQuery(record); + List list = wxOfflineActivityRecordMapper.findList(record); + handlerRecordList(record,list); + excelService.exportExcel(list, null, "活动订单列表", WxOfflineActivityRecord.class, "活动订单列表.xlsx", response, false); + } }