diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityController.java index 99f5cd484..c4e48cdea 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityController.java @@ -2,6 +2,7 @@ package com.iformall.controller.market; import com.github.pagehelper.PageInfo; import com.iformall.annotation.ApiVersion; +import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.constant.SwaggerConstant; @@ -85,8 +86,17 @@ public class WxLegionActivityController extends BaseController { if(!merchantIds.isEmpty() && merchantIds.stream().distinct().count() != merchantIds.size()){ return new ResultData(Result.ERROR,"军团商户配置重复"); } - wxLegionActivityService.saveOrUpdate(wxLegionActivity); - return new ResultData(wxLegionActivity); + try{ + wxLegionActivityService.saveOrUpdate(wxLegionActivity); + return new ResultData(wxLegionActivity); + }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) 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 eda9b0c4b..68da935d0 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityGrantController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivityGrantController.java @@ -1,6 +1,7 @@ package com.iformall.controller.market; import com.github.pagehelper.PageInfo; +import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; @@ -118,8 +119,16 @@ public class WxOfflineActivityGrantController extends BaseController { TenantEntity tenantEntity = getTenantInfo(); wxOfflineActivityGrantAward.updateTenantInfo(tenantEntity); wxOfflineActivityGrantAward.setCreateBy(getUserId()); - wxOfflineActivityGrantAwardService.grantAward(wxOfflineActivityGrantAward); - return new ResultData(); + try{ + wxOfflineActivityGrantAwardService.grantAward(wxOfflineActivityGrantAward); + 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); + } } @ApiOperation("活动发奖详情") diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxLegionActivityOrderController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxLegionActivityOrderController.java index 2ac66d9c2..422a361f7 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxLegionActivityOrderController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxLegionActivityOrderController.java @@ -2,6 +2,7 @@ package com.iformall.controller; import com.github.pagehelper.PageInfo; import com.iformall.annotation.ApiVersion; +import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.constant.SwaggerConstant; @@ -9,6 +10,7 @@ import com.iformall.domain.po.WxLegionActivityOrder; import com.iformall.domain.po.WxOfflineActivityRecord; import com.iformall.domain.po.base.BaseEntity.SortField; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.exception.MallinkException; import com.iformall.service.WxLegionActivityOrderService; import com.iformall.service.WxOfflineActivityRecordService; import io.swagger.annotations.Api; @@ -78,8 +80,16 @@ public class WxLegionActivityOrderController extends BaseController { wxLegionActivityOrder.updateTenantInfo(tenantEntity); wxLegionActivityOrder.setCreateBy(getMerchantBUserId()); wxLegionActivityOrder.setMerchantId(getLoginBUser().getMerchantId()); - wxLegionActivityOrderService.saveOrUpdate(wxLegionActivityOrder); - return new ResultData(); + try{ + wxLegionActivityOrderService.saveOrUpdate(wxLegionActivityOrder); + 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) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxLegionActivityUserController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxLegionActivityUserController.java index 0980d8975..b6f038d8b 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxLegionActivityUserController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxLegionActivityUserController.java @@ -2,6 +2,7 @@ package com.iformall.controller; import com.github.pagehelper.PageInfo; import com.iformall.annotation.ApiVersion; +import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.constant.SwaggerConstant; @@ -10,6 +11,7 @@ import com.iformall.domain.po.WxOfflineActivityRecord; import com.iformall.domain.po.base.BaseEntity.SortField; import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumLegionActivityUserStatus; +import com.iformall.exception.MallinkException; import com.iformall.service.WxLegionActivityUserService; import com.iformall.service.WxOfflineActivityRecordService; import io.swagger.annotations.Api; @@ -73,8 +75,16 @@ public class WxLegionActivityUserController extends BaseController { wxLegionActivityUser.updateTenantInfo(tenantEntity); wxLegionActivityUser.setCreateBy(getMerchantBUserId()); wxLegionActivityUser.setMerchantId(getLoginBUser().getMerchantId()); - wxLegionActivityUserService.saveOrUpdate(wxLegionActivityUser); - return new ResultData(); + try{ + wxLegionActivityUserService.saveOrUpdate(wxLegionActivityUser); + 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) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java index 70f9d1dac..156a941b4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxLegionActivityOrderServiceImpl.java @@ -380,33 +380,45 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe throw new MallinkException(Result.ERROR,"未查询到活动"); } + List merchantIds = new ArrayList<>(); + + //用户 + WxLegionActivityUser userQ = new WxLegionActivityUser(); + userQ.updateTenantInfo(activity); + userQ.setActivityId(activity.getId()); + userQ.setStatus(EnumLegionActivityUserStatus.VALID.getCode()); + List merchantCountStatistics = wxLegionActivityUserMapper.merchantCountStatistics(userQ); + Map merchantCountStatisticsMap = new HashMap<>(); + if(merchantCountStatistics != null && !merchantCountStatistics.isEmpty()){ + merchantIds.addAll(merchantCountStatistics.stream().map(LegionActivityUserStatistics::getMerchantId).distinct().collect(Collectors.toList())); + merchantCountStatisticsMap = merchantCountStatistics.stream().collect(Collectors.toMap(LegionActivityUserStatistics::getMerchantId, LegionActivityUserStatistics::getCount)); + } + + //订单 WxLegionActivityOrder orderQ = new WxLegionActivityOrder(); orderQ.updateTenantInfo(activity); orderQ.setActivityId(activity.getId()); orderQ.setAuditStatus(EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode()); List merchantStatistics = wxLegionActivityOrderMapper.merchantStatistics(orderQ); - if(merchantStatistics == null || merchantStatistics.isEmpty()){ + Map> merchantStatisticsMap = new HashMap<>(); + if(merchantStatistics != null && !merchantStatistics.isEmpty()){ + merchantIds.addAll(merchantStatistics.stream().map(LegionActivityOrderTypeStatistics::getMerchantId).distinct().collect(Collectors.toList())); + merchantStatisticsMap = merchantStatistics.stream().collect(groupingBy(LegionActivityOrderTypeStatistics::getMerchantId)); + } + if(merchantIds.isEmpty()){ return Collections.emptyList(); } - List merchantIds = merchantStatistics.stream().map(LegionActivityOrderTypeStatistics::getMerchantId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); + merchantIds = merchantIds.stream().distinct().collect(Collectors.toList()); + WxMerchant merchantQ = new WxMerchant(); merchantQ.updateTenantInfo(activity); merchantQ.setIds(merchantIds); Map idAndNamesMap = wxMerchantService.getIdAndNamesMap(merchantQ); - Map merchantShopNumberMap = wxShopService.getMerchantShopNumberMap(activity, merchantIds, EnumYesOrNo.NO.getCode()); - - Map> merchantStatisticsMap = merchantStatistics.stream().collect(groupingBy(LegionActivityOrderTypeStatistics::getMerchantId)); - - WxLegionActivityUser userQ = new WxLegionActivityUser(); - userQ.updateTenantInfo(activity); - userQ.setActivityId(activity.getId()); - userQ.setStatus(EnumLegionActivityUserStatus.VALID.getCode()); - List merchantCountStatistics = wxLegionActivityUserMapper.merchantCountStatistics(userQ); - Map merchantCountStatisticsMap = merchantCountStatistics.stream().collect(Collectors.toMap(LegionActivityUserStatistics::getMerchantId, LegionActivityUserStatistics::getCount)); + Map merchantShopNumberMap = wxShopService.getMerchantShopNumberMap(activity, merchantIds, EnumYesOrNo.NO.getCode()); List merchantStatisticsList = new ArrayList<>(); - for (Long merchantId : merchantStatisticsMap.keySet()) { + for (Long merchantId : idAndNamesMap.keySet()) { LegionActivityMerchantStatistics merchantS = new LegionActivityMerchantStatistics(); merchantS.setMerchantId(merchantId); merchantS.setMerchantName(idAndNamesMap.get(merchantId)); @@ -414,17 +426,19 @@ public class WxLegionActivityOrderServiceImpl implements WxLegionActivityOrderSe Integer userCount = merchantCountStatisticsMap.get(merchantId)==null?0:merchantCountStatisticsMap.get(merchantId); merchantS.setUserCount(userCount); Integer sign_order = 0,dif_legion = 0,dif_union = 0,eq_union = 0,not_union = 0; - for(LegionActivityOrderTypeStatistics statistics : merchantStatisticsMap.get(merchantId)){ - if(EnumLegionActivityOrderType.SIGN_ORDER.getCode().equals(statistics.getOrderType())){ - sign_order = statistics.getCount(); - }else if (EnumLegionActivityOrderType.DIF_LEGION.getCode().equals(statistics.getOrderType())){ - dif_legion = statistics.getCount(); - }else if(EnumLegionActivityOrderType.DIF_UNION.getCode().equals(statistics.getOrderType())){ - dif_union = statistics.getCount(); - }else if(EnumLegionActivityOrderType.EQ_UNION.getCode().equals(statistics.getOrderType())){ - eq_union = statistics.getCount(); - }else if(EnumLegionActivityOrderType.NOT_UNION.getCode().equals(statistics.getOrderType())){ - not_union = statistics.getCount(); + if(merchantStatisticsMap.get(merchantId) != null){ + for(LegionActivityOrderTypeStatistics statistics : merchantStatisticsMap.get(merchantId)){ + if(EnumLegionActivityOrderType.SIGN_ORDER.getCode().equals(statistics.getOrderType())){ + sign_order = statistics.getCount(); + }else if (EnumLegionActivityOrderType.DIF_LEGION.getCode().equals(statistics.getOrderType())){ + dif_legion = statistics.getCount(); + }else if(EnumLegionActivityOrderType.DIF_UNION.getCode().equals(statistics.getOrderType())){ + dif_union = statistics.getCount(); + }else if(EnumLegionActivityOrderType.EQ_UNION.getCode().equals(statistics.getOrderType())){ + eq_union = statistics.getCount(); + }else if(EnumLegionActivityOrderType.NOT_UNION.getCode().equals(statistics.getOrderType())){ + not_union = statistics.getCount(); + } } } //签单=总订单数