diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/MarkingDataReportController.java b/mallinkAdmin/src/main/java/com/iformall/controller/MarkingDataReportController.java index 47e70c808..174522e18 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/MarkingDataReportController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/MarkingDataReportController.java @@ -28,13 +28,13 @@ public class MarkingDataReportController extends BaseController { @ApiOperation("查询券数据") @GetMapping("/couponData") public ResultData findCouponData() { - return new ResultData(markingDataReportService.getCouponDate(getTenantId())); + return new ResultData(markingDataReportService.getCouponData(getTenantId())); } @ApiOperation("查询券数据列表") @GetMapping("/couponDataList") public ResultData findCouponDataList(@ModelAttribute MarkingCouponDataReportDto markingCouponDataReportDto, Integer pageNum, Integer pageSize) { - return new ResultData(markingDataReportService.getCouponDateList(getTenantId(), markingCouponDataReportDto, pageNum, pageSize)); + return new ResultData(markingDataReportService.getCouponDataList(getTenantId(), markingCouponDataReportDto, pageNum, pageSize)); } @ApiOperation("查询场景投放券数据") diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index 2045c6bf5..1b9e71aee 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -89,9 +89,11 @@ public enum ErrorCode{ COUPON_CHANNEL_IS_EXISTED(2027, "此券已投放过"), COUPON_SEND_IS_EXISTED(2028, "此券已经添加到该渠道"), COUPON_SEND_IS_INVALID(2029, "此发券渠道不存在"), - PUSH_LIMIT_UP_TO_1DAYLIMIT(2030, "此用户一天内发券到达疲劳度限制"), - PUSH_LIMIT_UP_TO_COUPONLIMIT(2031, "此用户发此券到达疲劳度限制"), - PUSH_LIMIT_NOT_INRANG(2032, "不在疲劳度允许的时间段"), + COUPON_SEND_IS_INVALID_TIME(2030, "发放时间不能晚于使用时间"), + + PUSH_LIMIT_UP_TO_1DAYLIMIT(2040, "此用户一天内发券到达疲劳度限制"), + PUSH_LIMIT_UP_TO_COUPONLIMIT(2041, "此用户发此券到达疲劳度限制"), + PUSH_LIMIT_NOT_INRANG(2042, "不在疲劳度允许的时间段"), /** * 车流 2040 */ diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxCouponChannelAddVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxCouponChannelAddVo.java index 996bde030..34a0cc8c3 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxCouponChannelAddVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxCouponChannelAddVo.java @@ -15,11 +15,23 @@ public class WxCouponChannelAddVo implements Serializable { private String title; private Integer channelId; private Date validEndDate; + private String errorMsg; + + public String getErrorMsg() { + return errorMsg; + } + + public void setErrorMsg(String errorMsg) { + this.errorMsg = errorMsg; + } + + public WxCouponChannelAddVo toCouponChannnelVo(WxCoupon wxCoupon, Integer channelId){ + if ( wxCoupon != null ) { + this.couponId = wxCoupon.getId(); + this.title = wxCoupon.getTitle(); + this.validEndDate = wxCoupon.getValidEndDate(); + } - public WxCouponChannelAddVo toCouponChannnelVo(WxCoupon wxCoupon,Integer channelId){ - this.couponId = wxCoupon.getId(); - this.title = wxCoupon.getTitle(); - this.validEndDate = wxCoupon.getValidEndDate(); this.channelId = channelId; return this; } diff --git a/mallinkService/src/main/java/com/iformall/service/MarkingDataReportService.java b/mallinkService/src/main/java/com/iformall/service/MarkingDataReportService.java index 7eea53c11..31e5a5d7c 100644 --- a/mallinkService/src/main/java/com/iformall/service/MarkingDataReportService.java +++ b/mallinkService/src/main/java/com/iformall/service/MarkingDataReportService.java @@ -13,11 +13,11 @@ import java.util.Map; * Created by syf on 2018/8/28. */ public interface MarkingDataReportService { - Map getCouponDate(String tenantId); + Map getCouponData(String tenantId); Map getSceneData(String tenantId); - PageInfo getCouponDateList(String tenantId, MarkingCouponDataReportDto markingCouponDataReportDto, Integer pageIndex, Integer pageSize); + PageInfo getCouponDataList(String tenantId, MarkingCouponDataReportDto markingCouponDataReportDto, Integer pageIndex, Integer pageSize); PageInfo getSceneDataList(String tenantId, MarkingCouponDataReportDto markingCouponDataReportDto, Integer pageIndex, Integer pageSize); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java index b8026eae2..9b3fe33e6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java @@ -93,7 +93,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { //取的当月券数据 @Override - public Map getCouponDate(String tenantId) { + public Map getCouponData(String tenantId) { //今日领取券数 //查询coupon order表 int todayCouponCount = wxCouponOrderMapper.findCountByDateLimit(tenantId, addDay(0), addDay(1)); @@ -238,7 +238,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { } @Override - public PageInfo getCouponDateList(String tenantId, MarkingCouponDataReportDto markingCouponDataReportDto, Integer pageIndex, Integer pageSize) { + public PageInfo getCouponDataList(String tenantId, MarkingCouponDataReportDto markingCouponDataReportDto, Integer pageIndex, Integer pageSize) { HashMap params = new HashMap<>(); params.put("tenantId", tenantId); if (markingCouponDataReportDto.getStartTime() != null) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java index ef56578c6..8791ec8e7 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java @@ -5,6 +5,7 @@ import java.util.stream.Collectors; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.WxCoupon; @@ -12,6 +13,10 @@ import com.iformall.domain.po.WxCouponChannel; import com.iformall.domain.po.WxMerchant; import com.iformall.domain.vo.WxCouponChannelAddVo; import com.iformall.domain.vo.WxCouponChannelVo; +import com.iformall.enums.EnumCouponChannelStatus; +import com.iformall.enums.EnumCouponChannelType; +import com.iformall.enums.EnumCouponStatus; +import com.iformall.enums.EnumMerchantStatus; import com.iformall.mapper.WxCouponChannelMapper; import com.iformall.mapper.WxMerchantMapper; import com.iformall.service.WxCouponChannelService; @@ -69,25 +74,23 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { @Override public ResultData addBatch(String[] ids, String[] channelId, String tanantId, Date beginTime, Date endTime) { - boolean result = false; + List errorList = new ArrayList<>(); for (String targetIdstr:channelId) { Integer targetId = Integer.parseInt(targetIdstr); for (String couponidstr:ids) { Long couponid = Long.parseLong(couponidstr); - boolean addResult = addCuponChannel(couponid,targetId,tanantId,beginTime,endTime,errorList); - if(addResult){ - result = true; + WxCouponChannelAddVo vo = addCouponChannel(couponid,targetId,tanantId,beginTime,endTime); + if(vo != null){ + errorList.add(vo); } } } - if(result) { + if(errorList.size()>0) { return new ResultData(errorList); }else { - return new ResultData(Result.SUCCESS,"请检查券的有效期以及投放截止时间",errorList); + return new ResultData(); } - - } @Override @@ -100,40 +103,67 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { } - public boolean addCuponChannel(Long couponid,Integer channelId,String tanantId,Date beginTime,Date endTime,List errorList){ + public WxCouponChannelAddVo addCouponChannel(Long couponid,Integer channelId,String tanantId,Date beginTime,Date endTime){ + + WxCouponChannelAddVo vo = new WxCouponChannelAddVo(); + + WxCoupon wxCoupon = wxCouponService.getById(couponid); + if(wxCoupon==null){ + logger.debug(couponid+ErrorCode.COUPON_IS_EMPTY.getMessage()); + vo.toCouponChannnelVo(null,channelId); + vo.setErrorMsg(ErrorCode.COUPON_IS_EMPTY.getMessage()); + return vo; + } WxCouponChannel wxCouponChannelQuery = new WxCouponChannel(); wxCouponChannelQuery.setTenantId(tanantId); wxCouponChannelQuery.setCouponId(couponid); wxCouponChannelQuery.setTargetAd(channelId); - wxCouponChannelQuery.setStatus(0); + wxCouponChannelQuery.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()); List wxCouponChannels = wxCouponChannelMapper.findList(wxCouponChannelQuery); if(wxCouponChannels.size()>0){ - logger.debug(couponid+"已经投放过了"); - return false; + logger.debug(couponid+ErrorCode.COUPON_CHANNEL_IS_EXISTED.getMessage()); + vo.toCouponChannnelVo(wxCoupon,channelId); + vo.setErrorMsg(ErrorCode.COUPON_CHANNEL_IS_EXISTED.getMessage()); + return vo; } - WxCoupon wxCoupon = wxCouponService.getById(couponid); - if(wxCoupon==null){ - logger.debug(couponid+"没有查到对应的券信息"); - return false; + + if(wxCoupon.getStatus()!=EnumCouponStatus.COUPON_STATUS_THROW_IN.getCode()) { + logger.debug(wxCoupon.getId()+couponid+ErrorCode.COUPON_IS_TAKE_OFF.getMessage()); + vo.toCouponChannnelVo(wxCoupon,channelId); + vo.setErrorMsg(ErrorCode.COUPON_IS_TAKE_OFF.getMessage()); + return vo; } - if(wxCoupon.getStatus()!=0) { - logger.debug(wxCoupon.getId()+"状态不对"); - return false; + + WxMerchant wxMerchant = new WxMerchant(); + wxMerchant.setId(wxCoupon.getMerchantId()); + List merchants = wxMerchantMapper.findList(wxMerchant); + if(merchants.size() <= 0) { + logger.debug(wxCoupon.getId()+couponid+ErrorCode.MERCHANT_INFO_NOT_FOUND.getMessage()); + vo.toCouponChannnelVo(wxCoupon,channelId); + vo.setErrorMsg(ErrorCode.MERCHANT_INFO_NOT_FOUND.getMessage()); + return vo; + } + + if(merchants.get(0).getStatus().equals(EnumMerchantStatus.NOT_VALID.getCode())) { + logger.debug(wxCoupon.getId()+couponid+ErrorCode.MERCHANT_INFO_NOT_VALID.getMessage()); + vo.toCouponChannnelVo(wxCoupon,channelId); + vo.setErrorMsg(ErrorCode.MERCHANT_INFO_NOT_VALID.getMessage()); + return vo; } - if(channelId==1){ //列表默认投放结束时间为有效时间之后 + if(channelId.equals(EnumCouponChannelType.COUPON_CHANNEL_ID_LIST.getCode())){ //列表默认投放结束时间为有效时间之后 beginTime = new Date(); endTime = wxCoupon.getValidEndDate(); } - if(channelId==2){ + if(channelId.equals(EnumCouponChannelType.COUPON_CHANNEL_ID_TIMED.getCode())){ if(wxCoupon.getValidEndDate()!=null&&wxCoupon.getValidEndDate().before(endTime)){ - logger.debug(wxCoupon.getId()+"发放时间不能晚于使用时间"); - WxCouponChannelAddVo vo = new WxCouponChannelAddVo(); - errorList.add(vo.toCouponChannnelVo(wxCoupon,channelId)); - return false; + logger.debug(wxCoupon.getId()+ErrorCode.COUPON_SEND_IS_INVALID_TIME.getMessage()); + vo.toCouponChannnelVo(wxCoupon,channelId); + vo.setErrorMsg(ErrorCode.COUPON_SEND_IS_INVALID_TIME.getMessage()); + return vo; } } @@ -151,7 +181,7 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { wxCouponChannel.setBusiness(wxCoupon.getBusiness()); wxCouponChannel.setTitle(wxCoupon.getTitle()); saveOrUpdate(wxCouponChannel); - return true; + return null; } /**