From df300df7832cc3d24f1b09297998e8bee8cfd126 Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期二, 20 八月 2019 18:06:43 +0800 Subject: [PATCH] 签到弹框bug --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java | 207 +++++++++++++++++++++++++++++++-------------------- 1 files changed, 125 insertions(+), 82 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 46b9769..5db76ad 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 @@ -1824,16 +1824,38 @@ jumpBtn.put("params", jumpLink); jumpBtn.put("jumpDetail", jumpDetailV2Service.getByTypeCache("orderList")); } - } else if (UserSystemCoupon.STATE_IN_USE == state) { + } else if (UserSystemCoupon.STATE_IN_USE == state && give) { + userCouponVO.setCouponEffect("璧犻�佷腑"); + String tips = null; if (CouponTypeEnum.freeCouponGive == type) { userCouponVO.setState(UserSystemCoupon.STATE_GIVE_IN); + tips = configService.get("give_free_coupon_tips"); } - if (give && CouponTypeEnum.rebatePercentCoupon == type) { + if (CouponTypeEnum.rebatePercentCoupon == type) { userCouponVO.setState(UserSystemCoupon.STATE_GIVE_IN); + tips = configService.get("give_free_coupon_tips"); } + + if (!StringUtil.isNullOrEmpty(tips)) { + UserSystemCouponGiveRecord record = userSystemCouponGiveRecordService.getRecordByUidAndCouponId(uid, userCouponVO.getId()); + if (record != null) { + TokenRecord tokenRecord = tokenRecordService.getNearByTypeAndIdentify(CouponTypeEnum.freeCoupon.name(), record.getId().toString()); + if (tokenRecord != null && !StringUtil.isNullOrEmpty(tokenRecord.getToken())) { + String projectChineseName = Constant.systemCommonConfig.getProjectChineseName(); + while(tips.contains("{APP鍚嶇О}")) { + tips = tips.replace("{APP鍚嶇О}", projectChineseName); + } + tips = tips.replace("{鍙d护}", tokenRecord.getToken()).replace("{涓嬭浇閾炬帴}", configService.get("app_down_link")); + } + } + } else { + tips = ""; + } + userCouponVO.setGiveTips(tips); + } else if (UserSystemCoupon.STATE_END_USE == state) { - if (CouponTypeEnum.freeCouponGive == type) { + if (give && CouponTypeEnum.freeCouponGive == type) { userCouponVO.setState(UserSystemCoupon.STATE_GIVE_END); } @@ -1873,109 +1895,130 @@ if (type != CouponTypeEnum.freeCouponGive && type != CouponTypeEnum.rebatePercentCoupon ) throw new UserSystemCouponException(1, "璇ュ埜涓嶆敮鎸佽禒閫�"); + String tips = null; TokenTypeEnum tokenTypeEnum = null; if (type == CouponTypeEnum.freeCouponGive) { tokenTypeEnum = TokenTypeEnum.freeCoupon; + tips = configService.get("give_free_coupon_tips"); } else if (type == CouponTypeEnum.rebatePercentCoupon){ tokenTypeEnum = TokenTypeEnum.rebatePercentCoupon; + tips = configService.get("give_rebate_percent_coupon_tips"); } else { throw new UserSystemCouponException(1, "璇ュ埜涓嶆敮鎸佽禒閫�"); } - 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(tips)) + throw new UserSystemCouponException(1, "tips鏁版嵁缂哄け"); + + + // 鏄惁鏈�杩戠敓鎴愬彛浠ゆ湁鏁� + UserSystemCouponGiveRecord record = userSystemCouponGiveRecordService.getRecordByUidAndCouponId(uid, id); + if (record != null) { + TokenRecord tokenRecord = tokenRecordService.getNearByTypeAndIdentify(tokenTypeEnum.name(), id+""); + if (tokenRecord != null && !StringUtil.isNullOrEmpty(tokenRecord.getToken())) { + String projectChineseName = Constant.systemCommonConfig.getProjectChineseName(); + while(tips.contains("{APP鍚嶇О}")) { + tips = tips.replace("{APP鍚嶇О}", projectChineseName); } - - 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, "璧犻�佽褰曞垱寤哄け璐�"); + tips = tips.replace("{鍙d护}", tokenRecord.getToken()).replace("{涓嬭浇閾炬帴}", configService.get("app_down_link")); + return tips; } } + + Long giveRecordId = null; + Date nowDate = new Date(); + + // 鎻掑叆璧犻�佽褰� + try { + UserSystemCouponGiveRecord giveRecord = new UserSystemCouponGiveRecord(); + giveRecord.setCouponId(id); + giveRecord.setGiveUid(uid); + giveRecord.setGiveTime(nowDate); + giveRecord.setEndTime(DateUtil.plusDayDate(Constant.GIVE_DAYS, nowDate)); + userSystemCouponGiveRecordService.insertSelective(giveRecord); + giveRecordId = giveRecord.getId(); + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + throw new UserSystemCouponException(1, "璧犻�佽褰曞垱寤哄け璐�"); + } + + String token = null; + for (int i = 0; i < 5; i++) { + try { + // TODO 鍙d护鐢熸垚瑙勫垯寰呭畾 + long num = 10000 + (long) (Math.random() * 10000); + token = UserUtil.getInviteCode(num); + + TokenRecord tokenRecord = new TokenRecord(); + tokenRecord.setUid(uid); + tokenRecord.setIdentify(giveRecordId+""); + tokenRecord.setType(tokenTypeEnum); + tokenRecord.setStartTime(nowDate); + tokenRecord.setEndTime(DateUtil.plusDayDate(Constant.TOKEN_DAYS, nowDate)); + 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护鐢熸垚澶辫触"); - + userSystemCoupon.setState(UserSystemCoupon.STATE_IN_USE); userSystemCoupon.setGive(true); + userSystemCoupon.setUpdateTime(nowDate); userSystemCouponMapper.updateByPrimaryKeySelective(userSystemCoupon); - String tips = "閫佺粰浣犱竴寮犺繑鍒╁鍔卞埜蹇幓棰嗗彇鍚э紝澶嶅埗鏈潯娑堟伅[&%s&]锛屾墦寮�[杩斿埄鍒竇App棰嗗彇锛屼娇鐢ㄥ悗鍙杩斿埄鍔犲�嶃�俓r\n" - +"----------------------------\r\n" - + "涓嬭浇[杩斿埄鍒竇App閾炬帴:%s\r\n" - + "PS锛氬彛浠ゅ皢浼�24灏忔椂鍐呭け鏁堬紝璇峰強鏃堕鍙栥��"; - - tips = String.format(tips, token, configService.get("app_down_link")); - + // 鎻掑叆浣跨敤鍒歌褰� + UserSystemCouponRecord couponRecord = new UserSystemCouponRecord(); + couponRecord.setState(UserSystemCouponRecord.STATE_GIVE_ON); + couponRecord.setUserSystemCoupon(userSystemCoupon); + couponRecord.setCouponType(type.name()); + couponRecord.setCreateTime(nowDate); + couponRecord.setUpdateTime(nowDate); + userSystemCouponRecordService.insertSelective(couponRecord); + + String projectChineseName = Constant.systemCommonConfig.getProjectChineseName(); + while(tips.contains("{APP鍚嶇О}")) { + tips = tips.replace("{APP鍚嶇О}", projectChineseName); + } + tips = tips.replace("{鍙d护}", token).replace("{涓嬭浇閾炬帴}", 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); + public void sendBackGive(Long id) { + UserSystemCoupon userSystemCoupon = userSystemCouponMapper.selectByPrimaryKey(id); + if (userSystemCoupon == null) + return; + + Integer state = userSystemCoupon.getState(); + if (state != UserSystemCoupon.STATE_IN_USE) + return; + + Date now = new Date(); + Date endTime = userSystemCoupon.getEndTime(); + if (endTime != null && endTime.getTime() < now.getTime()) { + + // TODO 杩囨湡 + return; + } + + userSystemCoupon.setGive(false); + userSystemCoupon.setUseTime(null); + userSystemCoupon.setState(UserSystemCoupon.STATE_CAN_USE); + userSystemCoupon.setUpdateTime(new Date()); + userSystemCouponMapper.updateByPrimaryKey(userSystemCoupon); - // 鎻掑叆浣跨敤鍒歌褰� - UserSystemCouponRecord couponRecord = new UserSystemCouponRecord(); - couponRecord.setState(UserSystemCouponRecord.STATE_SUCCESS); - couponRecord.setUserSystemCoupon(userCoupon); - couponRecord.setCouponType(couponType); - couponRecord.setCreateTime(date); - couponRecord.setUpdateTime(date); - userSystemCouponRecordService.insertSelective(couponRecord); + // TODO 娑堟伅 } - - } -- Gitblit v1.8.0