From c8041ec0544bf122e6819e6bf698997ccbf30aaf Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期二, 10 十二月 2019 15:32:34 +0800 Subject: [PATCH] 小黄条 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java | 118 ++++++++++++++++++++++++++++++---------------------------- 1 files changed, 61 insertions(+), 57 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 cf0dac1..996f96f 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 @@ -26,7 +26,6 @@ import com.aliyun.openservices.ons.api.transaction.LocalTransactionExecuter; import com.aliyun.openservices.ons.api.transaction.TransactionProducer; import com.aliyun.openservices.ons.api.transaction.TransactionStatus; -import com.google.gson.Gson; import com.yeshi.fanli.dao.mybatis.user.UserSystemCouponMapper; import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum; import com.yeshi.fanli.dto.mq.user.body.UserSystemCouponUseMQMsg; @@ -50,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; @@ -75,6 +73,7 @@ import com.yeshi.fanli.service.inter.user.UserSystemCouponRecordService; import com.yeshi.fanli.service.inter.user.UserSystemCouponService; import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce; +import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.RedisManager; @@ -155,6 +154,7 @@ @Resource private UserOtherMsgNotificationService userOtherMsgNotificationService; + @Lazy @Resource private CommonOrderCountService commonOrderCountService; @@ -179,6 +179,10 @@ @Resource(name = "producer") private Producer producer; + + @Lazy + @Resource + private UserVIPInfoService userVIPInfoService; @@ -250,6 +254,8 @@ } else { coupon = systemCouponService.getCouponByTypeAndPercent(couponType, percent); } + } else if (couponType.equals(CouponTypeEnum.freeCouponGive.name())) { + coupon = systemCouponService.getCouponByType(couponType); } if (coupon == null) { @@ -302,23 +308,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); } - } }); @@ -702,6 +703,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) { @@ -1596,13 +1617,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 @@ -1877,18 +1901,20 @@ jumpBtn.put("params", jumpLink); jumpBtn.put("jumpDetail", jumpDetailV2Service.getByTypeCache("web")); } else if (CouponTypeEnum.rebatePercentCoupon == type) { - // 鍙娇鐢ㄣ�� 鍙禒閫� - userCouponVO.setState(UserSystemCoupon.STATE_USE_GIVE); - - // 璁㈠崟鍒楄〃 - jumpLink.put("state", "2"); // 宸叉敹璐� - jumpLink.put("showNav", false); // 涓嶆樉绀轰笂鏂圭粺璁′俊鎭� - jumpLink.put("type", "1"); // 杩斿埄璁㈠崟 - jumpLink.put("title", "杩斿埄璁㈠崟"); // 鏍囬鍚� - jumpLink.put("goodsType", "0"); // 璁㈠崟鏉ユ簮 - jumpBtn = new HashMap<String, Object>(); - jumpBtn.put("params", jumpLink); - jumpBtn.put("jumpDetail", jumpDetailV2Service.getByTypeCache("order_screen_list")); + if (userVIPInfoService.isVIP(uid)) { // 浼氬憳鍙彲璧犻�� + userCouponVO.setState(UserSystemCoupon.STATE_GIVE_ONLY); + } else {// 鍙娇鐢� 鍙禒閫� + userCouponVO.setState(UserSystemCoupon.STATE_USE_GIVE); + + jumpLink.put("state", "2"); // 宸叉敹璐� + jumpLink.put("showNav", false); // 涓嶆樉绀轰笂鏂圭粺璁′俊鎭� + jumpLink.put("type", "1"); // 杩斿埄璁㈠崟 + jumpLink.put("title", "杩斿埄璁㈠崟"); // 鏍囬鍚� + jumpLink.put("goodsType", "0"); // 璁㈠崟鏉ユ簮 + jumpBtn = new HashMap<String, Object>(); + jumpBtn.put("params", jumpLink); + jumpBtn.put("jumpDetail", jumpDetailV2Service.getByTypeCache("order_screen_list")); + } } } else if (UserSystemCoupon.STATE_IN_USE == state && give) { userCouponVO.setCouponEffect("璧犻�佷腑"); @@ -2447,34 +2473,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 { @@ -2484,12 +2492,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