From 3672aec5bf6c2c6da4cb7ab4a8b5f314a22c5831 Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期一, 19 八月 2019 17:32:00 +0800 Subject: [PATCH] 退回淘礼金 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java | 123 ++++++++++++++++++++++++++++++++++------ 1 files changed, 104 insertions(+), 19 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 6ad928c..46b9769 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 @@ -25,6 +25,7 @@ import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.bus.user.UserInfoExtra; import com.yeshi.fanli.entity.bus.user.UserSystemCoupon; +import com.yeshi.fanli.entity.bus.user.UserSystemCouponGiveRecord; import com.yeshi.fanli.entity.bus.user.UserSystemCouponRecord; import com.yeshi.fanli.entity.common.JumpDetailV2; import com.yeshi.fanli.entity.money.UserMoneyDetail; @@ -54,11 +55,13 @@ import com.yeshi.fanli.service.inter.user.UserInfoExtraService; import com.yeshi.fanli.service.inter.user.UserInfoService; import com.yeshi.fanli.service.inter.user.UserMoneyDetailService; +import com.yeshi.fanli.service.inter.user.UserSystemCouponGiveRecordService; import com.yeshi.fanli.service.inter.user.UserSystemCouponRecordService; import com.yeshi.fanli.service.inter.user.UserSystemCouponService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.RedisManager; +import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.account.UserUtil; import com.yeshi.fanli.util.factory.UserMoneyDetailFactory; import com.yeshi.fanli.util.taobao.TaoBaoUtil; @@ -81,6 +84,9 @@ @Resource private UserSystemCouponMapper userSystemCouponMapper; + @Resource + private UserSystemCouponGiveRecordService userSystemCouponGiveRecordService; + @Resource private ConfigService configService; @@ -192,8 +198,8 @@ } SystemCoupon coupon = null; - if (couponType.equals(CouponTypeEnum.welfareFreeCoupon.name())) { - // 绂忓埄鍏嶅崟鍒� + if (couponType.equals(CouponTypeEnum.welfareFreeCoupon.name()) || couponType.equals(CouponTypeEnum.freeCoupon.name())) { + // 鍏嶅崟鍒� coupon = systemCouponService.getCouponByType(couponType); } else if (couponType.equals(CouponTypeEnum.rebatePercentCoupon.name())) { // 闅忔満濂栧姳鍒� @@ -213,6 +219,8 @@ if (countSuccess == 0) { stateActivated = 0; } + } else if (coupon.getType() == CouponTypeEnum.freeCoupon) { + stateActivated = 0; } // 缁撴潫鏃ユ湡 @@ -1865,32 +1873,109 @@ if (type != CouponTypeEnum.freeCouponGive && type != CouponTypeEnum.rebatePercentCoupon ) throw new UserSystemCouponException(1, "璇ュ埜涓嶆敮鎸佽禒閫�"); + TokenTypeEnum tokenTypeEnum = null; + if (type == CouponTypeEnum.freeCouponGive) { + tokenTypeEnum = TokenTypeEnum.freeCoupon; + } else if (type == CouponTypeEnum.rebatePercentCoupon){ + tokenTypeEnum = TokenTypeEnum.rebatePercentCoupon; + } else { + throw new UserSystemCouponException(1, "璇ュ埜涓嶆敮鎸佽禒閫�"); + } - Date startTime = new Date(); - Date endTime = DateUtil.plusDayDate(3, new Date()); + String token = null; + Date nowDate = new Date(); + TokenRecord record = tokenRecordService.getNearByTypeAndIdentify(tokenTypeEnum.name(), id+""); + if (record != null && record.getEndTime().getTime() > nowDate.getTime()) { + token = record.getToken(); + } else { + for (int i = 0; i < 5; i++) { + try { + // TODO 鍙d护鐢熸垚瑙勫垯寰呭畾 + long num = 10000 + (long) (Math.random() * 10000); + token = UserUtil.getInviteCode(num); + + String endDay = DateUtil.plusDay(Constant.TOKEN_DAYS - 1,nowDate); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Date endTime = format.parse(endDay); + + TokenRecord tokenRecord = new TokenRecord(); + tokenRecord.setUid(uid); + tokenRecord.setIdentify(id+""); + tokenRecord.setType(tokenTypeEnum); + tokenRecord.setStartTime(nowDate); + tokenRecord.setEndTime(endTime); + tokenRecord.setToken(token); + tokenRecord.setState(0); + tokenRecordService.insertSelective(tokenRecord); + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + token = null; + } + + if(!StringUtil.isNullOrEmpty(token)) { + break; + } + } + + if(StringUtil.isNullOrEmpty(token)) + throw new UserSystemCouponException(1, "鍙d护鐢熸垚澶辫触"); + + // 鎻掑叆璧犻�佽褰� + try { + String endDay = DateUtil.plusDay(Constant.GIVE_DAYS - 1, new Date()); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Date endTime = format.parse(endDay); + + UserSystemCouponGiveRecord giveRecord = new UserSystemCouponGiveRecord(); + giveRecord.setCouponId(id); + giveRecord.setGiveUid(uid); + giveRecord.setGiveTime(nowDate); + giveRecord.setEndTime(endTime); + userSystemCouponGiveRecordService.insertSelective(giveRecord); + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + throw new UserSystemCouponException(1, "璧犻�佽褰曞垱寤哄け璐�"); + } + } - long num = 10000 + (long) (Math.random() * 10000); - String token = UserUtil.getInviteCode(num); - - TokenRecord tokenRecord = new TokenRecord(); - tokenRecord.setUid(uid); - tokenRecord.setIdentify(id+""); - tokenRecord.setType(TokenTypeEnum.coupon); - tokenRecord.setEndTime(endTime); - tokenRecord.setStartTime(startTime); - tokenRecord.setToken(token); - tokenRecord.setState(state); - tokenRecordService.insertSelective(tokenRecord); - + if(StringUtil.isNullOrEmpty(token)) + throw new UserSystemCouponException(1, "鍙d护鐢熸垚澶辫触"); + userSystemCoupon.setState(UserSystemCoupon.STATE_IN_USE); + userSystemCoupon.setGive(true); + userSystemCouponMapper.updateByPrimaryKeySelective(userSystemCoupon); + String tips = "閫佺粰浣犱竴寮犺繑鍒╁鍔卞埜蹇幓棰嗗彇鍚э紝澶嶅埗鏈潯娑堟伅[&%s&]锛屾墦寮�[杩斿埄鍒竇App棰嗗彇锛屼娇鐢ㄥ悗鍙杩斿埄鍔犲�嶃�俓r\n" +"----------------------------\r\n" - + "涓嬭浇[杩斿埄鍒竇App閾炬帴:http://t.cn/2H7AXAH\r\n" + + "涓嬭浇[杩斿埄鍒竇App閾炬帴:%s\r\n" + "PS锛氬彛浠ゅ皢浼�24灏忔椂鍐呭け鏁堬紝璇峰強鏃堕鍙栥��"; - tips = String.format(tips, token); + tips = String.format(tips, token, configService.get("app_down_link")); return tips; } + + @Override + public void updateGiveRecord(Long uid, Long id, String couponType) { + Date date = new Date(); + // 鏇存柊鍒哥姸鎬侊細宸蹭娇鐢� + UserSystemCoupon userCoupon = new UserSystemCoupon(); + userCoupon.setId(id); + userCoupon.setState(UserSystemCoupon.STATE_END_USE); + userCoupon.setUseTime(date); + userCoupon.setUpdateTime(date); + userSystemCouponMapper.updateByPrimaryKeySelective(userCoupon); + + // 鎻掑叆浣跨敤鍒歌褰� + UserSystemCouponRecord couponRecord = new UserSystemCouponRecord(); + couponRecord.setState(UserSystemCouponRecord.STATE_SUCCESS); + couponRecord.setUserSystemCoupon(userCoupon); + couponRecord.setCouponType(couponType); + couponRecord.setCreateTime(date); + couponRecord.setUpdateTime(date); + userSystemCouponRecordService.insertSelective(couponRecord); + } + + } -- Gitblit v1.8.0