From d46dea27b6ec3e0fb32ec7d137699e9fc7d609b0 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 12 十二月 2019 14:18:11 +0800 Subject: [PATCH] 订单补贴消息修改 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java | 129 +++++++++++++++++++++--------------------- 1 files changed, 65 insertions(+), 64 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java index 90c43a0..1483a50 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java @@ -49,7 +49,6 @@ import com.yeshi.fanli.entity.system.SystemCoupon; import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; -import com.yeshi.fanli.exception.user.UserInfoExtraException; import com.yeshi.fanli.exception.user.UserSystemCouponException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.common.JumpDetailV2Service; @@ -79,6 +78,7 @@ import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.util.TokenUtil; import com.yeshi.fanli.util.VersionUtil; import com.yeshi.fanli.util.annotation.RequestSerializableByKeyService; @@ -155,6 +155,7 @@ @Resource private UserOtherMsgNotificationService userOtherMsgNotificationService; + @Lazy @Resource private CommonOrderCountService commonOrderCountService; @@ -179,7 +180,7 @@ @Resource(name = "producer") private Producer producer; - + @Resource private UserVIPInfoService userVIPInfoService; @@ -251,6 +252,8 @@ } else { coupon = systemCouponService.getCouponByTypeAndPercent(couponType, percent); } + } else if (couponType.equals(CouponTypeEnum.freeCouponGive.name())) { + coupon = systemCouponService.getCouponByType(couponType); } if (coupon == null) { @@ -303,23 +306,18 @@ executor.execute(new Runnable() { @Override - public void run() { - UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid); - // 娣诲姞涓�鏉℃秷鎭� - if (userInfoExtra != null) { - if (userInfoExtra.getCouponNews() == null) { - userInfoExtra.setCouponNews(1); + public void run() { // 绂忓埄涓績绾㈢偣 + UserInfoExtra extra = userInfoExtraService.getUserInfoExtra(uid); + if (extra != null) { + UserInfoExtra updateExtra = new UserInfoExtra(); + updateExtra.setId(extra.getId()); + if (extra.getCouponNews() == null) { + updateExtra.setCouponNews(1); } else { - userInfoExtra.setCouponNews(userInfoExtra.getCouponNews() + 1); + updateExtra.setCouponNews(extra.getCouponNews() + 1); } - - try { - userInfoExtraService.saveUserInfoExtra(userInfoExtra); - } catch (UserInfoExtraException e) { - e.printStackTrace(); - } + userInfoExtraService.updateByPrimaryKeySelective(updateExtra); } - } }); @@ -703,6 +701,26 @@ return userSystemCouponMapper.countUsableByUid(uid, listCouponId); } + + + @Override + public long countGiveFreeCoupon(Long uid) { + if (uid == null) + return 0; + + List<SystemCoupon> couponList = systemCouponService.getGiveFreeCouponList(); + if (couponList == null || couponList.size() == 0) + return 0; + + List<Long> listCouponId = new ArrayList<Long>(); + for (SystemCoupon systemCoupon : couponList) { + listCouponId.add(systemCoupon.getId()); + } + + return userSystemCouponMapper.countUsableByUid(uid, listCouponId); + } + + @Override public long countUsableRewardCoupon(Long uid) { @@ -721,7 +739,7 @@ return userSystemCouponMapper.countUsableByUid(uid, listCouponId); } - @Transactional + @Transactional(rollbackFor = Exception.class) @Override public void useGoodsCoupon(Long uid, Long id, Long goodId, Integer sourceType) throws UserSystemCouponException, Exception { @@ -798,7 +816,7 @@ } - @Transactional + @Transactional(rollbackFor = Exception.class) @Override public void useOrderCoupon(Long uid, Long id, String orderNo, Integer sourceType, AcceptData acceptData) throws UserSystemCouponException, Exception { @@ -851,24 +869,26 @@ throw new UserSystemCouponException(1, "浜诧紝寰堥仐鎲撅紝鍞悗缁存潈璁㈠崟涓嶈兘浣跨敤杩斿埄濂栧姳鍒竳"); } + // 璁㈠崟 - CommonOrderVO orderVO = commonOrderService.getCommonOrderByOrderNo(uid, orderNo, CommonOrder.STATE_JS, - sourceType); - if (orderVO == null) - throw new UserSystemCouponException(1, "璁㈠崟淇℃伅鑾峰彇澶辫触"); - - // 鐗堟湰鍖哄垎锛�2.0.2 + List<CommonOrderVO> listVo = commonOrderService.listGroupOrderNoByUid(0, 1, uid, 2, 1,1, orderNo, null, + null, null, sourceType); + if (listVo == null || listVo.size() == 0) + throw new UserSystemCouponException(1, "浜诧紝寰堥仐鎲撅紝璇ヨ鍗曞凡涓嶈兘浣跨敤杩斿埄濂栧姳鍒竳"); + + CommonOrderVO orderVO = listVo.get(0); + // 鐗堟湰鍖哄垎锛�2.1 if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) { + boolean valid = false; Date thirdCreateTime = orderVO.getThirdCreateTime(); - if (thirdCreateTime != null) { + Date accountTime = orderVO.getAccountTime(); + if (thirdCreateTime != null && accountTime != null) { long downOrderTime = thirdCreateTime.getTime(); - long limitDate = Long.parseLong("1573315200000"); // TODO - // 鏃ユ湡寰呯‘瀹�2019-11-10 + long limitDate = TimeUtil.parse(Constant.COUPON_REWARD_TIME).getTime(); if (downOrderTime > limitDate) { - Date endDay = DateUtil.plusDayDate(4, thirdCreateTime); + Date endDay = DateUtil.plusDayDate(Constant.COUPON_REWARD_LIMIT_DAY, accountTime); long currentTime = java.lang.System.currentTimeMillis(); if (endDay.getTime() > currentTime) { - boolean valid = false; DateInfo dateInfo = DateUtil.dateDiff3(currentTime, endDay.getTime()); if (dateInfo != null) { if (dateInfo.getDay() > 0) @@ -880,15 +900,15 @@ if (!valid && dateInfo.getMinute() > 0) valid = true; - if (!valid && dateInfo.getSecond() >= 0) + if (!valid && dateInfo.getSecond() > 0) valid = true; } - - if (!valid) - throw new UserSystemCouponException(1, "璇ヨ鍗曞凡涓嶈兘浣跨敤浣跨敤濂栧姳鍒革紝璇︽儏璇峰挩璇㈠鏈�"); } } - } + } + + if (!valid) + throw new UserSystemCouponException(1, "璇ヨ鍗曚笉鑳戒娇鐢ㄥ鍔卞埜"); } BigDecimal hongBao = orderVO.getHongBao(); @@ -1612,13 +1632,16 @@ if (userInfoExtra == null) { return; } + + UserInfoExtra extra = new UserInfoExtra(); + extra.setId(userInfoExtra.getId()); Integer couponNews = userInfoExtra.getCouponNews(); if (couponNews == null) { - userInfoExtra.setCouponNews(num); + extra.setCouponNews(num); } else { - userInfoExtra.setCouponNews(couponNews + num); + extra.setCouponNews(couponNews + num); } - userInfoExtraService.saveUserInfoExtra(userInfoExtra); + userInfoExtraService.saveUserInfoExtra(extra); } @Override @@ -1997,7 +2020,7 @@ return listVO; } - @Transactional + @Transactional(rollbackFor = Exception.class) @Override public UserSystemCouponVO giveCoupon(Long uid, Long id) throws UserSystemCouponException { UserSystemCoupon userSystemCoupon = userSystemCouponMapper.selectByPrimaryKey(id); @@ -2461,34 +2484,16 @@ } @Override - public boolean getIncludeExchange(Long uid) { + public boolean getValidRebateCoupon(Long uid) { // 杩囨湡鍒� updateInvalidSate(uid); - - String percent = configService.get("exchange_rebate_percent"); - if (StringUtil.isNullOrEmpty(percent)) - percent = "35"; - List<UserSystemCoupon> listCoupon = userSystemCouponMapper.getIncludeExchange(uid, Integer.parseInt(percent), - CouponTypeEnum.rebatePercentCoupon.name()); + + List<UserSystemCouponVO> listCoupon = userSystemCouponMapper.getValidByUidAndType(uid, CouponTypeEnum.rebatePercentCoupon.name()); if (listCoupon == null || listCoupon.size() == 0) return false; return true; } - @Override - public boolean getIncludeNotExchange(Long uid) { - // 杩囨湡鍒� - updateInvalidSate(uid); - - String percent = configService.get("exchange_rebate_percent"); - if (StringUtil.isNullOrEmpty(percent)) - percent = "35"; - List<UserSystemCouponVO> listCoupon = userSystemCouponMapper.getIncludeNotExchange(uid, - Integer.parseInt(percent), CouponTypeEnum.rebatePercentCoupon.name()); - if (listCoupon == null || listCoupon.size() == 0) - return false; - return true; - } @Override public List<UserSystemCouponVO> listIncludeNotExchange(Long uid) throws Exception { @@ -2498,12 +2503,8 @@ // 閫�鍥炲埜 sendBackTimeOutCoupon(uid); - String percent = configService.get("exchange_rebate_percent"); - if (StringUtil.isNullOrEmpty(percent)) - percent = "35"; - List<UserSystemCouponVO> listCoupon = userSystemCouponMapper.getIncludeNotExchange(uid, - Integer.parseInt(percent), CouponTypeEnum.rebatePercentCoupon.name()); + List<UserSystemCouponVO> listCoupon = userSystemCouponMapper.getValidByUidAndType(uid, CouponTypeEnum.rebatePercentCoupon.name()); if (listCoupon == null || listCoupon.size() == 0) return null; -- Gitblit v1.8.0