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