| @@ -2,6 +2,7 @@ package com.iformall.controller.market; | |||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.annotation.ApiVersion; | import com.iformall.annotation.ApiVersion; | ||||
| import com.iformall.common.ErrorCode; | |||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.constant.SwaggerConstant; | import com.iformall.constant.SwaggerConstant; | ||||
| @@ -93,6 +94,27 @@ public class WxLegionActivityOrderController extends BaseController { | |||||
| return new ResultData(); | return new ResultData(); | ||||
| } | } | ||||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||||
| @ApiOperation("批量审核通过") | |||||
| @PostMapping("batchAudiPass") | |||||
| public ResultData batchAudiPass(@RequestBody List<Long> ids) { | |||||
| if(ids == null || ids.isEmpty()){ | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||||
| } | |||||
| try{ | |||||
| TenantEntity tenantEntity = getTenantInfo(); | |||||
| wxLegionActivityOrderService.batchAudiPass(tenantEntity,ids,getUserId()); | |||||
| return new ResultData(); | |||||
| }catch(MallinkException e){ | |||||
| logger.error(e.getMessage()); | |||||
| return new ResultData(e.getErrorCode(), e.getMessage()); | |||||
| }catch(Exception e){ | |||||
| logger.error("异常:" + e); | |||||
| return new ResultData(ErrorCode.SYS_SERVER_ERROR); | |||||
| } | |||||
| } | |||||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | @ApiVersion(group = SwaggerConstant.V_2_0_0) | ||||
| @ApiOperation("审核驳回") | @ApiOperation("审核驳回") | ||||
| @PostMapping("audtFail") | @PostMapping("audtFail") | ||||
| @@ -124,6 +146,23 @@ public class WxLegionActivityOrderController extends BaseController { | |||||
| return new ResultData(); | return new ResultData(); | ||||
| } | } | ||||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||||
| @ApiOperation("参加活动用户订单统计") | |||||
| @GetMapping("statistics") | |||||
| public ResultData statisticsCount(@ModelAttribute WxLegionActivityOrder wxLegionActivityOrder) { | |||||
| if(wxLegionActivityOrder.getActivityId() == null){ | |||||
| return new ResultData(Result.ERROR,"活动ID不能为空"); | |||||
| } | |||||
| if(StringUtil.isBlank(wxLegionActivityOrder.getCusPhone())){ | |||||
| return new ResultData(Result.ERROR,"请输入用户手机号"); | |||||
| } | |||||
| TenantEntity tenantInfo = getTenantInfo(); | |||||
| wxLegionActivityOrder.updateTenantInfo(tenantInfo); | |||||
| Map<String,Object> statisticsMap = wxLegionActivityOrderService.getStatistics(wxLegionActivityOrder); | |||||
| return new ResultData(statisticsMap); | |||||
| } | |||||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | @ApiVersion(group = SwaggerConstant.V_2_0_0) | ||||
| @ApiOperation("查询详情") | @ApiOperation("查询详情") | ||||
| @GetMapping("getInfoById") | @GetMapping("getInfoById") | ||||
| @@ -113,7 +113,7 @@ public class WxLegionActivityOrderController extends BaseController { | |||||
| TenantEntity tenantInfo = getTenantInfo(); | TenantEntity tenantInfo = getTenantInfo(); | ||||
| wxLegionActivityOrder.updateTenantInfo(tenantInfo); | wxLegionActivityOrder.updateTenantInfo(tenantInfo); | ||||
| wxLegionActivityOrder.setMerchantId(getLoginBUser().getMerchantId()); | wxLegionActivityOrder.setMerchantId(getLoginBUser().getMerchantId()); | ||||
| Map<String,Integer> statisticsMap = wxLegionActivityOrderService.getStatistics(wxLegionActivityOrder); | |||||
| Map<String,Object> statisticsMap = wxLegionActivityOrderService.getStatistics(wxLegionActivityOrder); | |||||
| return new ResultData(statisticsMap); | return new ResultData(statisticsMap); | ||||
| } | } | ||||
| @@ -196,6 +196,8 @@ public class WxLegionActivityOrder extends TenantEntity { | |||||
| */ | */ | ||||
| @TableField(value = "audit_by") | @TableField(value = "audit_by") | ||||
| private Long auditBy; | private Long auditBy; | ||||
| @TableField(exist = false) | |||||
| private String auditByName; | |||||
| /** | /** | ||||
| * 审核时间 | * 审核时间 | ||||
| @@ -12,4 +12,5 @@ public class LegionActivityOrderStatistics implements Serializable { | |||||
| private Integer auditStatus; | private Integer auditStatus; | ||||
| private Integer count; | private Integer count; | ||||
| private BigDecimal sumMoney; | |||||
| } | } | ||||
| @@ -24,7 +24,7 @@ public interface WxLegionActivityOrderMapper extends CommonMapper<WxLegionActivi | |||||
| List<LegionActivityOrderStatistics> auditStatusStatistics(WxLegionActivityOrder wxLegionActivityOrder); | List<LegionActivityOrderStatistics> auditStatusStatistics(WxLegionActivityOrder wxLegionActivityOrder); | ||||
| void updateAuditStatus(WxLegionActivityOrder wxLegionActivityOrder); | |||||
| Integer updateAuditStatus(WxLegionActivityOrder wxLegionActivityOrder); | |||||
| List<LegionActivityOrderTypeStatistics> orderTypeStatistics(WxLegionActivityOrder wxLegionActivityOrder); | List<LegionActivityOrderTypeStatistics> orderTypeStatistics(WxLegionActivityOrder wxLegionActivityOrder); | ||||
| @@ -28,6 +28,8 @@ public interface WxLegionActivityUserMapper extends CommonMapper<WxLegionActivit | |||||
| void updateStatus(WxLegionActivityUser activityUser); | void updateStatus(WxLegionActivityUser activityUser); | ||||
| Integer selectOnlyCount(WxLegionActivityUser wxLegionActivityUser); | Integer selectOnlyCount(WxLegionActivityUser wxLegionActivityUser); | ||||
| WxLegionActivityUser selectLimitOne(WxLegionActivityUser wxLegionActivityUser); | |||||
| } | } | ||||
| @@ -31,6 +31,8 @@ public interface WxOfflineActivityRecordMapper extends CommonMapper<WxOfflineAct | |||||
| Integer getMerchantCount(WxOfflineActivityRecord recordQ); | Integer getMerchantCount(WxOfflineActivityRecord recordQ); | ||||
| List<WxOfflineActivityRecord> findGrantList(@Param("grantId")Long grantId, @Param("tenantId")String tenantId); | List<WxOfflineActivityRecord> findGrantList(@Param("grantId")Long grantId, @Param("tenantId")String tenantId); | ||||
| void insertList(@Param("recordList")List<WxOfflineActivityRecord> activityRecordList); | |||||
| } | } | ||||
| @@ -20,4 +20,6 @@ public interface WxLegionActivityOfflineConfigService { | |||||
| List<WxOfflineActivity> getOfflineActivityList(WxLegionActivity wxLegionActivity); | List<WxOfflineActivity> getOfflineActivityList(WxLegionActivity wxLegionActivity); | ||||
| void syncOfflineActivityRecord(WxLegionActivityOrder legionActivityOrder); | void syncOfflineActivityRecord(WxLegionActivityOrder legionActivityOrder); | ||||
| void syncOfflineActivityRecord(List<WxLegionActivityOrder> wxLegionActivityOrders); | |||||
| } | } | ||||
| @@ -5,6 +5,7 @@ import com.iformall.domain.po.WxLegionActivity; | |||||
| import com.iformall.domain.po.WxLegionActivityOrder; | import com.iformall.domain.po.WxLegionActivityOrder; | ||||
| import com.baomidou.mybatisplus.extension.service.IService; | 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.vo.LegionActivityMerchantStatistics; | import com.iformall.domain.vo.LegionActivityMerchantStatistics; | ||||
| import com.iformall.domain.vo.LegionActivitySellOrder; | import com.iformall.domain.vo.LegionActivitySellOrder; | ||||
| @@ -26,7 +27,7 @@ public interface WxLegionActivityOrderService { | |||||
| WxLegionActivityOrder getInfoById(Long id, String tenantId); | WxLegionActivityOrder getInfoById(Long id, String tenantId); | ||||
| Map<String, Integer> getStatistics(WxLegionActivityOrder wxLegionActivityOrder); | |||||
| Map<String, Object> getStatistics(WxLegionActivityOrder wxLegionActivityOrder); | |||||
| void exportData(HttpServletRequest request, HttpServletResponse response, WxLegionActivityOrder wxLegionActivityOrder); | void exportData(HttpServletRequest request, HttpServletResponse response, WxLegionActivityOrder wxLegionActivityOrder); | ||||
| @@ -43,4 +44,6 @@ public interface WxLegionActivityOrderService { | |||||
| List<LegionActivitySellOrder> getActivitySellOrder(WxLegionActivityOrder wxLegionActivityOrder); | List<LegionActivitySellOrder> getActivitySellOrder(WxLegionActivityOrder wxLegionActivityOrder); | ||||
| void exportActivitySellOrder(HttpServletRequest request, HttpServletResponse response, WxLegionActivityOrder wxLegionActivityOrder); | void exportActivitySellOrder(HttpServletRequest request, HttpServletResponse response, WxLegionActivityOrder wxLegionActivityOrder); | ||||
| void batchAudiPass(TenantEntity tenantEntity, List<Long> ids, Long userId); | |||||
| } | } | ||||
| @@ -15,9 +15,8 @@ import com.iformall.service.WxOfflineActivityService; | |||||
| 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 java.util.ArrayList; | |||||
| import java.util.Collections; | |||||
| import java.util.List; | |||||
| import java.util.*; | |||||
| import java.util.stream.Collectors; | |||||
| /** | /** | ||||
| * @author xiaohu | * @author xiaohu | ||||
| @@ -75,12 +74,48 @@ public class WxLegionActivityOfflineConfigServiceImpl implements WxLegionActivit | |||||
| @Override | @Override | ||||
| public void syncOfflineActivityRecord(WxLegionActivityOrder legionActivityOrder) { | public void syncOfflineActivityRecord(WxLegionActivityOrder legionActivityOrder) { | ||||
| IdWorker idWorker = IdWorker.get(); | |||||
| //所有都同步(绑定线下活动意义不大) | //所有都同步(绑定线下活动意义不大) | ||||
| WxOfflineActivityRecord activityRecord = createOfflineActivityRecord(legionActivityOrder); | |||||
| activityRecord.setId(idWorker.nextId()); | |||||
| if(activityRecord.getMerchantId() != null){ | |||||
| WxMerchant merchant = wxMerchantService.selectById(activityRecord.getMerchantId()); | |||||
| activityRecord.setBusinessId(merchant.getBusinessId()); | |||||
| } | |||||
| wxOfflineActivityRecordMapper.insert(activityRecord); | |||||
| } | |||||
| @Override | |||||
| public void syncOfflineActivityRecord(List<WxLegionActivityOrder> wxLegionActivityOrders) { | |||||
| if(wxLegionActivityOrders == null || wxLegionActivityOrders.isEmpty()){ | |||||
| return; | |||||
| } | |||||
| IdWorker idWorker = IdWorker.get(); | IdWorker idWorker = IdWorker.get(); | ||||
| List<Long> merchantIds = wxLegionActivityOrders.stream().map(WxLegionActivityOrder::getMerchantId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); | |||||
| WxMerchant merchantQ = new WxMerchant(); | |||||
| merchantQ.setIds(merchantIds); | |||||
| Map<Long, WxMerchant> merchantMap = wxMerchantService.findMerchantMap(merchantQ); | |||||
| List<WxOfflineActivityRecord> activityRecordList = new ArrayList<>(); | |||||
| for (WxLegionActivityOrder legionActivityOrder : wxLegionActivityOrders) { | |||||
| WxOfflineActivityRecord activityRecord = createOfflineActivityRecord(legionActivityOrder); | |||||
| activityRecord.setId(idWorker.nextId()); | |||||
| if(activityRecord.getMerchantId() != null){ | |||||
| WxMerchant merchant = merchantMap.get(activityRecord.getMerchantId()); | |||||
| activityRecord.setBusinessId(merchant.getBusinessId()); | |||||
| } | |||||
| activityRecordList.add(activityRecord); | |||||
| } | |||||
| wxOfflineActivityRecordMapper.insertList(activityRecordList); | |||||
| } | |||||
| private WxOfflineActivityRecord createOfflineActivityRecord(WxLegionActivityOrder legionActivityOrder) { | |||||
| WxOfflineActivityRecord activityRecord = new WxOfflineActivityRecord(); | WxOfflineActivityRecord activityRecord = new WxOfflineActivityRecord(); | ||||
| activityRecord.setId(idWorker.nextId()); | |||||
| activityRecord.updateTenantInfo(legionActivityOrder); | activityRecord.updateTenantInfo(legionActivityOrder); | ||||
| activityRecord.setFromOrderId(legionActivityOrder.getId()); | activityRecord.setFromOrderId(legionActivityOrder.getId()); | ||||
| activityRecord.setOrderNo(legionActivityOrder.getOrderNo()); | activityRecord.setOrderNo(legionActivityOrder.getOrderNo()); | ||||
| @@ -104,7 +139,7 @@ public class WxLegionActivityOfflineConfigServiceImpl implements WxLegionActivit | |||||
| activityRecord.setAuditStatus(EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode()); | activityRecord.setAuditStatus(EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode()); | ||||
| activityRecord.setAuditBy(legionActivityOrder.getAuditBy()); | activityRecord.setAuditBy(legionActivityOrder.getAuditBy()); | ||||
| activityRecord.setAuditTime(legionActivityOrder.getAuditTime()); | activityRecord.setAuditTime(legionActivityOrder.getAuditTime()); | ||||
| wxOfflineActivityRecordMapper.insert(activityRecord); | |||||
| return activityRecord; | |||||
| } | } | ||||
| } | } | ||||
| @@ -22,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional; | |||||
| import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
| import javax.servlet.http.HttpServletResponse; | import javax.servlet.http.HttpServletResponse; | ||||
| import java.math.BigDecimal; | |||||
| import java.util.*; | import java.util.*; | ||||
| import java.util.stream.Collectors; | import java.util.stream.Collectors; | ||||
| @@ -65,6 +66,9 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe | |||||
| @Autowired | @Autowired | ||||
| private WxShopService wxShopService; | private WxShopService wxShopService; | ||||
| @Autowired | |||||
| private MallUserInfoService mallUserInfoService; | |||||
| @Autowired | @Autowired | ||||
| private ExcelService excelService; | private ExcelService excelService; | ||||
| @Autowired | @Autowired | ||||
| @@ -119,14 +123,21 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe | |||||
| } | } | ||||
| List<Long> merchantIds = wxLegionActivityOrders.stream().map(WxLegionActivityOrder::getMerchantId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); | List<Long> merchantIds = wxLegionActivityOrders.stream().map(WxLegionActivityOrder::getMerchantId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); | ||||
| List<Long> adminUserIds = wxLegionActivityOrders.stream().map(WxLegionActivityOrder::getAuditBy).filter(Objects::nonNull).distinct().collect(Collectors.toList()); | |||||
| List<Long> userIds = wxLegionActivityOrders.stream().map(WxLegionActivityOrder::getCusId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); | List<Long> userIds = wxLegionActivityOrders.stream().map(WxLegionActivityOrder::getCusId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); | ||||
| Map<Long, String> merchantMap = new HashMap<>(); | |||||
| Map<Long, WxMerchant> merchantMap = new HashMap<>(); | |||||
| if(!merchantIds.isEmpty()){ | if(!merchantIds.isEmpty()){ | ||||
| WxMerchant merchantQ = new WxMerchant(); | WxMerchant merchantQ = new WxMerchant(); | ||||
| merchantQ.updateTenantInfo(wxLegionActivityOrder); | merchantQ.updateTenantInfo(wxLegionActivityOrder); | ||||
| merchantQ.setIds(merchantIds); | merchantQ.setIds(merchantIds); | ||||
| merchantMap = wxMerchantService.getIdAndNamesMap(merchantQ); | |||||
| merchantMap = wxMerchantService.findMerchantMap(merchantQ); | |||||
| } | |||||
| Map<Long, MallUserInfo> userMap = new HashMap<>(); | |||||
| if(!adminUserIds.isEmpty()){ | |||||
| MallUserInfo userInfoQ = new MallUserInfo(); | |||||
| userInfoQ.updateTenantInfo(wxLegionActivityOrder); | |||||
| userMap = mallUserInfoService.getUserMap(userInfoQ); | |||||
| } | } | ||||
| Map<Long, WxLegionActivityUser> activityUserMap = new HashMap<>(); | Map<Long, WxLegionActivityUser> activityUserMap = new HashMap<>(); | ||||
| if(!userIds.isEmpty()){ | if(!userIds.isEmpty()){ | ||||
| @@ -141,12 +152,19 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe | |||||
| Map<Long, String> legionConfigMap = wxLegionActivityConfigService.getLegionConfigMap(legionConfigQ); | Map<Long, String> legionConfigMap = wxLegionActivityConfigService.getLegionConfigMap(legionConfigQ); | ||||
| for (WxLegionActivityOrder legionActivityOrder : wxLegionActivityOrders) { | for (WxLegionActivityOrder legionActivityOrder : wxLegionActivityOrders) { | ||||
| if(legionActivityOrder.getMerchantId() != null){ | |||||
| WxMerchant merchant = merchantMap.get(legionActivityOrder.getMerchantId()); | |||||
| legionActivityOrder.setMerchantName(merchant.getName()); | |||||
| } | |||||
| if(legionActivityOrder.getAuditBy() != null){ | |||||
| legionActivityOrder.setAuditByName(userMap.get(legionActivityOrder.getAuditBy()).getName()); | |||||
| } | |||||
| WxLegionActivityUser user = activityUserMap.get(legionActivityOrder.getCusId()); | WxLegionActivityUser user = activityUserMap.get(legionActivityOrder.getCusId()); | ||||
| if (null != user) { | if (null != user) { | ||||
| legionActivityOrder.setCusPhone(user.getPhone()); | legionActivityOrder.setCusPhone(user.getPhone()); | ||||
| legionActivityOrder.setCusVipNum(user.getVipNum()); | legionActivityOrder.setCusVipNum(user.getVipNum()); | ||||
| } | } | ||||
| legionActivityOrder.setMerchantName(merchantMap.get(legionActivityOrder.getMerchantId())); | |||||
| if(legionActivityOrder.getLegionId().equals(0L)){ | if(legionActivityOrder.getLegionId().equals(0L)){ | ||||
| legionActivityOrder.setLegionName("未参加活动"); | legionActivityOrder.setLegionName("未参加活动"); | ||||
| legionActivityOrder.setUnionName("未参加活动"); | legionActivityOrder.setUnionName("未参加活动"); | ||||
| @@ -278,15 +296,36 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe | |||||
| } | } | ||||
| @Override | @Override | ||||
| public Map<String, Integer> getStatistics(WxLegionActivityOrder wxLegionActivityOrder) { | |||||
| List<LegionActivityOrderStatistics> auditStatusStatistics = wxLegionActivityOrderMapper.auditStatusStatistics(wxLegionActivityOrder); | |||||
| Map<String, Integer> result = new HashMap<>(); | |||||
| public Map<String, Object> getStatistics(WxLegionActivityOrder wxLegionActivityOrder) { | |||||
| Map<String, Object> result = new HashMap<>(); | |||||
| Integer audting = 0, audi_success = 0, audt_fail = 0, invalid = 0; | Integer audting = 0, audi_success = 0, audt_fail = 0, invalid = 0; | ||||
| BigDecimal sum_success = BigDecimal.ZERO, sum_fail = BigDecimal.ZERO; | |||||
| if(StringUtils.isNotBlank(wxLegionActivityOrder.getCusPhone())){ | |||||
| WxLegionActivityUser activityUserQ = new WxLegionActivityUser(); | |||||
| activityUserQ.setActivityId(wxLegionActivityOrder.getActivityId()); | |||||
| activityUserQ.setPhone(wxLegionActivityOrder.getCusPhone()); | |||||
| WxLegionActivityUser user = wxLegionActivityUserMapper.selectLimitOne(activityUserQ); | |||||
| if(user == null){ | |||||
| result.put("cus_name","查无此人"); | |||||
| result.put("cus_phone",wxLegionActivityOrder.getCusPhone()); | |||||
| return result; | |||||
| }else{ | |||||
| wxLegionActivityOrder.setCusId(user.getId()); | |||||
| result.put("cus_name",user.getName()); | |||||
| result.put("cus_phone",user.getPhone()); | |||||
| result.put("vip_num",user.getVipNum()); | |||||
| } | |||||
| } | |||||
| List<LegionActivityOrderStatistics> auditStatusStatistics = wxLegionActivityOrderMapper.auditStatusStatistics(wxLegionActivityOrder); | |||||
| for(LegionActivityOrderStatistics statistics : auditStatusStatistics){ | for(LegionActivityOrderStatistics statistics : auditStatusStatistics){ | ||||
| if(EnumLegionActivityOrderStatus.AUDTING.getCode().equals(statistics.getAuditStatus())){ | if(EnumLegionActivityOrderStatus.AUDTING.getCode().equals(statistics.getAuditStatus())){ | ||||
| audting = statistics.getCount(); | audting = statistics.getCount(); | ||||
| } else if (EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode().equals(statistics.getAuditStatus())) { | } else if (EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode().equals(statistics.getAuditStatus())) { | ||||
| audi_success = statistics.getCount(); | audi_success = statistics.getCount(); | ||||
| sum_success = statistics.getSumMoney(); | |||||
| } else if (EnumLegionActivityOrderStatus.AUDT_FAIL.getCode().equals(statistics.getAuditStatus())) { | } else if (EnumLegionActivityOrderStatus.AUDT_FAIL.getCode().equals(statistics.getAuditStatus())) { | ||||
| audt_fail = statistics.getCount(); | audt_fail = statistics.getCount(); | ||||
| } else if (EnumLegionActivityOrderStatus.INVALID.getCode().equals(statistics.getAuditStatus())) { | } else if (EnumLegionActivityOrderStatus.INVALID.getCode().equals(statistics.getAuditStatus())) { | ||||
| @@ -295,6 +334,7 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe | |||||
| } | } | ||||
| result.put("audting",audting); | result.put("audting",audting); | ||||
| result.put("audi_success",audi_success); | result.put("audi_success",audi_success); | ||||
| result.put("sum_success",sum_success); | |||||
| result.put("audt_fail",audt_fail); | result.put("audt_fail",audt_fail); | ||||
| result.put("invalid",invalid); | result.put("invalid",invalid); | ||||
| result.put("sum_count",audting+audi_success+audt_fail+invalid); | result.put("sum_count",audting+audi_success+audt_fail+invalid); | ||||
| @@ -313,12 +353,12 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe | |||||
| @Transactional(rollbackFor = Exception.class) | @Transactional(rollbackFor = Exception.class) | ||||
| public void auditRecord(WxLegionActivityOrder wxLegionActivityOrder, Long userId) { | public void auditRecord(WxLegionActivityOrder wxLegionActivityOrder, Long userId) { | ||||
| Date now = new Date(); | Date now = new Date(); | ||||
| wxLegionActivityOrder.setUpdateDate(now); | |||||
| wxLegionActivityOrder.setAuditTime(now); | |||||
| wxLegionActivityOrder.setAuditBy(userId); | wxLegionActivityOrder.setAuditBy(userId); | ||||
| wxLegionActivityOrderMapper.updateAuditStatus(wxLegionActivityOrder); | |||||
| wxLegionActivityOrder.setAuditTime(now); | |||||
| wxLegionActivityOrder.setUpdateDate(now); | |||||
| Integer upd = wxLegionActivityOrderMapper.updateAuditStatus(wxLegionActivityOrder); | |||||
| if(EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode().equals(wxLegionActivityOrder.getAuditStatus())){ | |||||
| if(upd == 1 && EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode().equals(wxLegionActivityOrder.getAuditStatus())){ | |||||
| //同步订单 | //同步订单 | ||||
| WxLegionActivityOrder legionActivityOrder = wxLegionActivityOrderMapper.selectById(wxLegionActivityOrder.getId(), wxLegionActivityOrder.getTenantId()); | WxLegionActivityOrder legionActivityOrder = wxLegionActivityOrderMapper.selectById(wxLegionActivityOrder.getId(), wxLegionActivityOrder.getTenantId()); | ||||
| WxLegionActivityUser user = wxLegionActivityUserMapper.selectById(legionActivityOrder.getCusId(), legionActivityOrder.getTenantId()); | WxLegionActivityUser user = wxLegionActivityUserMapper.selectById(legionActivityOrder.getCusId(), legionActivityOrder.getTenantId()); | ||||
| @@ -329,6 +369,10 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe | |||||
| legionActivityOrder.setLotteryCount(wxLegionActivityOrder.getLotteryCount()); | legionActivityOrder.setLotteryCount(wxLegionActivityOrder.getLotteryCount()); | ||||
| legionActivityOrder.setAnniversaryLotteryNum(wxLegionActivityOrder.getAnniversaryLotteryNum()); | legionActivityOrder.setAnniversaryLotteryNum(wxLegionActivityOrder.getAnniversaryLotteryNum()); | ||||
| legionActivityOrder.setAuditBy(wxLegionActivityOrder.getAuditBy()); | |||||
| legionActivityOrder.setAuditTime(wxLegionActivityOrder.getAuditTime()); | |||||
| legionActivityOrder.setUpdateDate(wxLegionActivityOrder.getUpdateDate()); | |||||
| wxLegionActivityOfflineConfigService.syncOfflineActivityRecord(legionActivityOrder); | wxLegionActivityOfflineConfigService.syncOfflineActivityRecord(legionActivityOrder); | ||||
| } | } | ||||
| @@ -568,6 +612,49 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe | |||||
| excelService.exportExcel(activitySellOrder, null, "军团带单数据("+legionTypeStr+")", LegionActivitySellOrder.class, "军团带单数据("+legionTypeStr+").xlsx", response, false); | excelService.exportExcel(activitySellOrder, null, "军团带单数据("+legionTypeStr+")", LegionActivitySellOrder.class, "军团带单数据("+legionTypeStr+").xlsx", response, false); | ||||
| } | } | ||||
| @Override | |||||
| @Transactional(rollbackFor = Exception.class) | |||||
| public void batchAudiPass(TenantEntity tenantEntity, List<Long> ids, Long userId) { | |||||
| WxLegionActivityOrder wxLegionActivityOrderQ = new WxLegionActivityOrder(); | |||||
| wxLegionActivityOrderQ.updateTenantInfo(tenantEntity); | |||||
| wxLegionActivityOrderQ.setIds(ids); | |||||
| List<WxLegionActivityOrder> wxLegionActivityOrders = wxLegionActivityOrderMapper.findList(wxLegionActivityOrderQ); | |||||
| List<WxLegionActivityOrder> syncOrders = wxLegionActivityOrders.stream() | |||||
| .filter(wxLegionActivityOrder -> !EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode().equals(wxLegionActivityOrder.getAuditStatus())) | |||||
| .collect(Collectors.toList()); | |||||
| if (syncOrders.isEmpty()){ | |||||
| throw new MallinkException(Result.ERROR,"未查询到可审核的订单"); | |||||
| } | |||||
| Date now = new Date(); | |||||
| WxLegionActivityOrder wxLegionActivityOrderUpd = new WxLegionActivityOrder(); | |||||
| wxLegionActivityOrderUpd.updateTenantInfo(tenantEntity); | |||||
| wxLegionActivityOrderUpd.setIds(ids); | |||||
| wxLegionActivityOrderUpd.setAuditStatus(EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode()); | |||||
| wxLegionActivityOrderUpd.setAuditBy(userId); | |||||
| wxLegionActivityOrderUpd.setAuditTime(now); | |||||
| wxLegionActivityOrderUpd.setUpdateDate(now); | |||||
| Integer upd = wxLegionActivityOrderMapper.updateAuditStatus(wxLegionActivityOrderUpd); | |||||
| List<Long> userIds = syncOrders.stream().map(WxLegionActivityOrder::getCusId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); | |||||
| WxLegionActivityUser userQ = new WxLegionActivityUser(); | |||||
| userQ.updateTenantInfo(tenantEntity); | |||||
| userQ.setIds(userIds); | |||||
| Map<Long, WxLegionActivityUser> activityUserMap = wxLegionActivityUserService.findUserMap(userQ); | |||||
| for (WxLegionActivityOrder legionActivityOrder : syncOrders) { | |||||
| WxLegionActivityUser user = activityUserMap.get(legionActivityOrder.getCusId()); | |||||
| legionActivityOrder.setCusPhone(user.getPhone()); | |||||
| legionActivityOrder.setCusVipNum(user.getVipNum()); | |||||
| legionActivityOrder.setAuditBy(userId); | |||||
| legionActivityOrder.setAuditTime(now); | |||||
| legionActivityOrder.setUpdateDate(now); | |||||
| } | |||||
| wxLegionActivityOfflineConfigService.syncOfflineActivityRecord(syncOrders); | |||||
| } | |||||
| } | } | ||||
| @@ -170,11 +170,18 @@ | |||||
| #{midItem} | #{midItem} | ||||
| </foreach> | </foreach> | ||||
| </if> | </if> | ||||
| <if test=" null != ids "> | |||||
| and id in | |||||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | |||||
| #{idItem} | |||||
| </foreach> | |||||
| </if> | |||||
| </update> | </update> | ||||
| <select id="auditStatusStatistics" parameterType="com.iformall.domain.po.WxLegionActivityOrder" resultType="com.iformall.domain.vo.LegionActivityOrderStatistics"> | <select id="auditStatusStatistics" parameterType="com.iformall.domain.po.WxLegionActivityOrder" resultType="com.iformall.domain.vo.LegionActivityOrderStatistics"> | ||||
| SELECT audit_status as 'auditStatus', | SELECT audit_status as 'auditStatus', | ||||
| count(1) as 'count' | |||||
| count(1) as 'count', | |||||
| IFNULL(sum(order_money),0) as 'sumMoney' | |||||
| FROM wx_legion_activity_order | FROM wx_legion_activity_order | ||||
| where 1 = 1 | where 1 = 1 | ||||
| <if test=" null != tenantId and '' != tenantId"> | <if test=" null != tenantId and '' != tenantId"> | ||||
| @@ -193,6 +200,10 @@ | |||||
| and `merchant_id` = #{merchantId} | and `merchant_id` = #{merchantId} | ||||
| </if> | </if> | ||||
| <if test=" null != cusId"> | |||||
| and `cus_id` = #{cusId} | |||||
| </if> | |||||
| <if test=" null != createDateBegin"> | <if test=" null != createDateBegin"> | ||||
| and `create_date` >= #{createDateBegin} | and `create_date` >= #{createDateBegin} | ||||
| </if> | </if> | ||||
| @@ -191,4 +191,10 @@ | |||||
| </if> | </if> | ||||
| </select> | </select> | ||||
| <select id="selectLimitOne" parameterType="com.iformall.domain.po.WxLegionActivityUser" resultMap="BaseResultMap"> | |||||
| select <include refid="allColumns" /> from wx_legion_activity_user | |||||
| <include refid="dynamicWhereConditions" /> | |||||
| limit 1 | |||||
| </select> | |||||
| </mapper> | </mapper> | ||||
| @@ -247,4 +247,25 @@ | |||||
| where rg.grant_id = #{grantId} and rg.tenant_id=#{tenantId} | where rg.grant_id = #{grantId} and rg.tenant_id=#{tenantId} | ||||
| </select> | </select> | ||||
| <insert id="insertList" parameterType="java.util.List"> | |||||
| insert into wx_offline_activity_record | |||||
| (id, | |||||
| from_order_id,order_no,order_money,cus_name, | |||||
| real_cus_name,cus_phone,cus_address, | |||||
| cus_card,lottery_num,lottery_count, | |||||
| anniversary_lottery_num,create_by,merchant_id,business_id, | |||||
| create_date,update_date,audit_remark, | |||||
| audit_status,audit_by,audit_time) | |||||
| values | |||||
| <foreach collection="recordList" item="item" index="index" separator=","> | |||||
| (#{item.id,jdbcType=BIGINT}, | |||||
| #{item.fromOrderId,jdbcType=BIGINT},#{item.orderNo,jdbcType=VARCHAR},#{item.orderMoney,jdbcType=DECIMAL},#{item.cusName,jdbcType=VARCHAR}, | |||||
| #{item.realCusName,jdbcType=VARCHAR},#{item.cusPhone,jdbcType=VARCHAR},#{item.cusAddress,jdbcType=VARCHAR}, | |||||
| #{item.cusCard,jdbcType=VARCHAR},#{item.lotteryNum,jdbcType=VARCHAR},#{item.lotteryCount,jdbcType=INTEGER}, | |||||
| #{item.anniversaryLotteryNum,jdbcType=VARCHAR},#{item.createBy,jdbcType=BIGINT},#{item.merchantId,jdbcType=BIGINT},#{item.businessId,jdbcType=INTEGER}, | |||||
| #{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP},#{item.auditRemark,jdbcType=VARCHAR}, | |||||
| #{item.auditStatus,jdbcType=INTEGER},#{item.auditBy,jdbcType=BIGINT},#{item.auditTime,jdbcType=TIMESTAMP}) | |||||
| </foreach> | |||||
| </insert> | |||||
| </mapper> | </mapper> | ||||