From 89cc3286104f6ceaf664fa23647be40a84fcd2c4 Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期三, 28 八月 2019 17:04:35 +0800 Subject: [PATCH] ios 版本1.65改为65 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java | 388 ++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 253 insertions(+), 135 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 5a7cf37..684416c 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 @@ -185,6 +185,11 @@ } @Override + public long countCouponOld(Long uid) { + return userSystemCouponMapper.countCouponOld(uid); + } + + @Override public long countUserCouponList(Long uid) { return userSystemCouponMapper.countUserCouponList(uid); } @@ -305,10 +310,13 @@ return null; } + // 杩囨湡鍒� + updateInvalidSate(uid); + // 閫�鍥炲埜 sendBackTimeOutCoupon(uid); - List<UserSystemCouponVO> listVO = userSystemCouponMapper.getUserCouponVOList(start, count, uid); + List<UserSystemCouponVO> listVO = userSystemCouponMapper.getCouponListOld(start, count, uid); if (listVO == null || listVO.size() == 0) { return listVO; } @@ -568,6 +576,9 @@ throw new UserSystemCouponException(1, "鐢ㄦ埛鏈櫥褰�"); } + // 杩囨湡鍒� + updateInvalidSate(uid); + // 閫�鍥炲埜 sendBackTimeOutCoupon(uid); @@ -593,6 +604,9 @@ throw new UserSystemCouponException(1, "鍟嗗搧ID涓虹┖"); } + // 杩囨湡鍒� + updateInvalidSate(uid); + // 閫�鍥炲埜 sendBackTimeOutCoupon(uid); @@ -1219,76 +1233,7 @@ return userSystemCouponMapper.getCounponNowInvalid(count); } - - @Override - public void updateCounponInvalid(List<UserSystemCoupon> list) { - if (list == null || list.size() == 0) { - return; - } - - for (UserSystemCoupon userSystemCoupon : list) { - UserSystemCoupon userCoupon = new UserSystemCoupon(); - userCoupon.setUpdateTime(new Date()); - userSystemCoupon.setState(UserSystemCoupon.STATE_OVERDUE); - userSystemCouponMapper.updateByPrimaryKeySelective(userSystemCoupon); - - SystemCoupon baseCoupon = userSystemCoupon.getSystemCoupon(); - if (baseCoupon == null) { - continue; - } - - baseCoupon = systemCouponService.selectByPrimaryKey(baseCoupon.getId()); - if (baseCoupon == null || baseCoupon.getId() == null) { - continue; - } - - // 娑堟伅鎺ㄩ�� - try { - if (baseCoupon.getType() == CouponTypeEnum.welfareFreeCoupon) { - userOtherMsgNotificationService.welfareCouponAlreadyOutOfDate(userSystemCoupon); - } else if (baseCoupon.getType() == CouponTypeEnum.freeCoupon) { - userOtherMsgNotificationService.freeSheetCouponAlreadyOutOfDate(userSystemCoupon); - } else if (baseCoupon.getType() == CouponTypeEnum.rebatePercentCoupon) { - userOtherMsgNotificationService.rewardCouponAlreadyOutOfDate(userSystemCoupon); - }else if (baseCoupon.getType() == CouponTypeEnum.freeCouponBuy) { - userOtherMsgNotificationService.outOfDate(userSystemCoupon, MsgTypeOtherTypeEnum.freeCouponBuy); - } else if (baseCoupon.getType() == CouponTypeEnum.freeCouponGive) { - userOtherMsgNotificationService.outOfDate(userSystemCoupon, MsgTypeOtherTypeEnum.freeCouponGive); - } - } catch (Exception e) { - try { - LogHelper.errorDetailInfo(e); - } catch (Exception e1) { - e1.printStackTrace(); - } - } - } - } - - @Transactional - @Override - public void sendBackTimeOutCoupon(Long uid) { - // 瓒呰繃10鍒嗛挓 鏈鍖归厤鐨勫埜 - List<UserSystemCouponRecord> list = userSystemCouponRecordService.getCouponByUsingTimeOut(uid, 600L); - if (list == null || list.size() == 0) { - return; - } - - for (UserSystemCouponRecord couponRecord : list) { - // 鏇存柊鐘舵�侊細鍖归厤瓒呮椂 - couponRecord.setState(UserSystemCouponRecord.STATE_WAIT_TIME_OUT); - couponRecord.setUpdateTime(new Date()); - userSystemCouponRecordService.updateByPrimaryKeySelective(couponRecord); - - UserSystemCoupon userSystemCoupon = couponRecord.getUserSystemCoupon(); - // 鐘舵�佸垵濮嬪寲 - userSystemCoupon.setState(UserSystemCoupon.STATE_CAN_USE); - userSystemCoupon.setUseTime(null); - userSystemCoupon.setUpdateTime(new Date()); - userSystemCouponMapper.updateByPrimaryKey(userSystemCoupon); - } - } - + @Transactional @Override public boolean updateCouponRecordUsed(Long uid, String orderNo, BigDecimal payment, Long auctionId) @@ -1367,56 +1312,7 @@ return isfree; } - /** - * 閫�鍥炲埜 鍒濆鏁版嵁 - * - * @param userSystemCoupon - */ - public void sendBackCoupon(UserSystemCoupon userCoupon, UserSystemCouponRecord record) throws Exception { - if (userCoupon == null) - return; - - Integer state = userCoupon.getState(); - if (state != UserSystemCoupon.STATE_IN_USE) - return; - - Date now = new Date(); - Date endTime = userCoupon.getEndTime(); - if (endTime != null && endTime.getTime() < now.getTime()) { - // 杩囨湡 - List<UserSystemCoupon> list = new ArrayList<UserSystemCoupon>(); - list.add(userCoupon); - updateCounponInvalid(list); - return; - } - - // 閫�鍥炲埜 - UserSystemCoupon userSystemCoupon = new UserSystemCoupon(); - userSystemCoupon.setId(userCoupon.getId()); - userSystemCoupon.setGive(false); - userSystemCoupon.setUseTime(null); - userSystemCoupon.setState(UserSystemCoupon.STATE_CAN_USE); - userSystemCoupon.setUpdateTime(new Date()); - userSystemCouponMapper.updateByPrimaryKey(userSystemCoupon); - - // 浣跨敤璁板綍 - if (record != null) { - UserSystemCouponRecord useRecordUpdate = new UserSystemCouponRecord(); - useRecordUpdate.setId(record.getId()); - useRecordUpdate.setState(UserSystemCouponRecord.STATE_WAIT_TIME_OUT); - useRecordUpdate.setUpdateTime(new Date()); - userSystemCouponRecordService.updateByPrimaryKeySelective(useRecordUpdate); - - if (CouponTypeEnum.welfareFreeCoupon.name().equals(record.getCouponType())) { - userOtherMsgNotificationService.welfareCouponDrawBack(userSystemCoupon, record.getOrderNo()); - } else if (CouponTypeEnum.freeCoupon.name().equals(record.getCouponType())) { - userOtherMsgNotificationService.freeSheetCouponDrawBack(userSystemCoupon, record.getOrderNo()); - } else if (CouponTypeEnum.freeCouponBuy.name().equals(record.getCouponType())) { - userOtherMsgNotificationService.couponDrawBack(userSystemCoupon, record.getOrderNo(), MsgTypeOtherTypeEnum.freeCouponBuy); - } - } - - } + @Override @Transactional @@ -1710,9 +1606,14 @@ @Override public List<UserSystemCouponVO> getCouponList(long start, int count, Long uid) throws UserSystemCouponException, Exception { + + // 杩囨湡鍒� + updateInvalidSate(uid); + // 閫�鍥炲埜 sendBackTimeOutCoupon(uid); + List<UserSystemCouponVO> listVO = userSystemCouponMapper.getUserCouponVOList(start, count, uid); if (listVO == null || listVO.size() == 0) { return listVO; @@ -1834,11 +1735,12 @@ // 鍙娇鐢ㄣ�� 鍙禒閫� userCouponVO.setState(UserSystemCoupon.STATE_USE_GIVE); - // 杩斿埄濂栧姳鍒�- 璺宠浆鑷宠鍗曞埌璐︾晫闈� + // 杩斿埄濂栧姳鍒�- 璺宠浆鑷冲凡鍒拌处-宸叉敹璐� jumpLink.put("state", "2"); + jumpLink.put("type", "1"); jumpBtn = new HashMap<String, Object>(); jumpBtn.put("params", jumpLink); - jumpBtn.put("jumpDetail", jumpDetailV2Service.getByTypeCache("orderList")); + jumpBtn.put("jumpDetail", jumpDetailV2Service.getByTypeCache("order_screen_list")); } } else if (UserSystemCoupon.STATE_IN_USE == state && give) { userCouponVO.setCouponEffect("璧犻�佷腑"); @@ -1883,9 +1785,9 @@ } else if (UserSystemCoupon.STATE_END_USE == state) { if (give) { - userCouponVO.setCouponEffect("浠绘��0鍏冭喘"); userCouponVO.setCouponRule(systemCoupon.getRemark()); if (CouponTypeEnum.freeCouponGive == type) { + userCouponVO.setCouponEffect("浠绘��0鍏冭喘"); userCouponVO.setState(UserSystemCoupon.STATE_GIVE_END); } @@ -1896,7 +1798,7 @@ Date useTime = userCouponVO.getUseTime(); if (useTime != null) { Map<String, Object> remainDays = new HashMap<String, Object>(); - remainDays.put("content", "浜�" + sdf.format(useTime) + "鎴愬姛璧犻��"); + remainDays.put("content", "浜�" + sdf.format(useTime) + "璧犻��"); remainDays.put("fontColor", "#CCCCCC"); userCouponVO.setRemainDays(remainDays); } @@ -1904,7 +1806,7 @@ Date useTime = userCouponVO.getUseTime(); if (useTime != null) { Map<String, Object> remainDays = new HashMap<String, Object>(); - remainDays.put("content", "浜�" + sdf.format(useTime) + "鎴愬姛浣跨敤"); + remainDays.put("content", "浜�" + sdf.format(useTime) + "浣跨敤"); remainDays.put("fontColor", "#CCCCCC"); userCouponVO.setRemainDays(remainDays); } @@ -2063,6 +1965,139 @@ } + @Transactional + @Override + public void updateInvalidSate(Long uid) { + List<UserSystemCoupon> list = userSystemCouponMapper.getCounponNowInvalidByUid(uid); + if (list == null || list.size() == 0) { + return; + } + updateCounponInvalid(list); + } + + + @Override + public void updateCounponInvalid(List<UserSystemCoupon> list) { + if (list == null || list.size() == 0) { + return; + } + + for (UserSystemCoupon userSystemCoupon : list) { + UserSystemCoupon userCoupon = new UserSystemCoupon(); + userCoupon.setUpdateTime(new Date()); + userSystemCoupon.setState(UserSystemCoupon.STATE_OVERDUE); + userSystemCouponMapper.updateByPrimaryKeySelective(userSystemCoupon); + + SystemCoupon baseCoupon = userSystemCoupon.getSystemCoupon(); + if (baseCoupon == null) { + continue; + } + + baseCoupon = systemCouponService.selectByPrimaryKey(baseCoupon.getId()); + if (baseCoupon == null || baseCoupon.getId() == null) { + continue; + } + + // 娑堟伅鎺ㄩ�� + try { + if (baseCoupon.getType() == CouponTypeEnum.welfareFreeCoupon) { + userOtherMsgNotificationService.welfareCouponAlreadyOutOfDate(userSystemCoupon); + } else if (baseCoupon.getType() == CouponTypeEnum.freeCoupon) { + userOtherMsgNotificationService.freeSheetCouponAlreadyOutOfDate(userSystemCoupon); + } else if (baseCoupon.getType() == CouponTypeEnum.rebatePercentCoupon) { + userOtherMsgNotificationService.rewardCouponAlreadyOutOfDate(userSystemCoupon); + }else if (baseCoupon.getType() == CouponTypeEnum.freeCouponBuy) { + userOtherMsgNotificationService.outOfDate(userSystemCoupon, MsgTypeOtherTypeEnum.freeCouponBuy); + } else if (baseCoupon.getType() == CouponTypeEnum.freeCouponGive) { + userOtherMsgNotificationService.outOfDate(userSystemCoupon, MsgTypeOtherTypeEnum.freeCouponGive); + } + } catch (Exception e) { + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + } + } + + + /** + * 閫�鍥炲埜 鍒濆鏁版嵁 + * + * @param userSystemCoupon + */ + public void sendBackCoupon(UserSystemCoupon userCoupon, UserSystemCouponRecord record) throws Exception { + if (userCoupon == null) + return; + + Integer state = userCoupon.getState(); + if (state != UserSystemCoupon.STATE_IN_USE) + return; + + Date now = new Date(); + Date endTime = userCoupon.getEndTime(); + if (endTime != null && endTime.getTime() < now.getTime()) { + // 杩囨湡 + List<UserSystemCoupon> list = new ArrayList<UserSystemCoupon>(); + list.add(userCoupon); + updateCounponInvalid(list); + return; + } + + // 閫�鍥炲埜 + UserSystemCoupon userSystemCoupon = new UserSystemCoupon(); + userSystemCoupon.setId(userCoupon.getId()); + userSystemCoupon.setGive(false); + userSystemCoupon.setUseTime(null); + userSystemCoupon.setState(UserSystemCoupon.STATE_CAN_USE); + userSystemCoupon.setUpdateTime(new Date()); + userSystemCouponMapper.updateByPrimaryKey(userSystemCoupon); + + // 浣跨敤璁板綍 + if (record != null) { + UserSystemCouponRecord useRecordUpdate = new UserSystemCouponRecord(); + useRecordUpdate.setId(record.getId()); + useRecordUpdate.setState(UserSystemCouponRecord.STATE_WAIT_TIME_OUT); + useRecordUpdate.setUpdateTime(new Date()); + userSystemCouponRecordService.updateByPrimaryKeySelective(useRecordUpdate); + + if (CouponTypeEnum.welfareFreeCoupon.name().equals(record.getCouponType())) { + userOtherMsgNotificationService.welfareCouponDrawBack(userSystemCoupon, record.getOrderNo()); + } else if (CouponTypeEnum.freeCoupon.name().equals(record.getCouponType())) { + userOtherMsgNotificationService.freeSheetCouponDrawBack(userSystemCoupon, record.getOrderNo()); + } else if (CouponTypeEnum.freeCouponBuy.name().equals(record.getCouponType())) { + userOtherMsgNotificationService.couponDrawBack(userSystemCoupon, record.getOrderNo(), MsgTypeOtherTypeEnum.freeCouponBuy); + } + } + } + + + @Transactional + @Override + public void sendBackTimeOutCoupon(Long uid) { + // 瓒呰繃10鍒嗛挓 鏈鍖归厤鐨勫埜 + List<UserSystemCouponRecord> list = userSystemCouponRecordService.getCouponByUsingTimeOut(uid, 600L); + if (list == null || list.size() == 0) { + return; + } + + for (UserSystemCouponRecord couponRecord : list) { + // 鏇存柊鐘舵�侊細鍖归厤瓒呮椂 + couponRecord.setState(UserSystemCouponRecord.STATE_WAIT_TIME_OUT); + couponRecord.setUpdateTime(new Date()); + userSystemCouponRecordService.updateByPrimaryKeySelective(couponRecord); + + // 鐘舵�佸垵濮嬪寲 + UserSystemCoupon userSystemCoupon = couponRecord.getUserSystemCoupon(); + userSystemCoupon.setState(UserSystemCoupon.STATE_CAN_USE); + userSystemCoupon.setUseTime(null); + userSystemCoupon.setUpdateTime(new Date()); + userSystemCouponMapper.updateByPrimaryKey(userSystemCoupon); + } + } + + @Override public void sendBackGiveCoupon(List<UserSystemCouponGiveRecord> overdueList) { for (UserSystemCouponGiveRecord record: overdueList) { @@ -2122,11 +2157,12 @@ if (systemCoupon == null) continue; + + // 閫�鍥炴秷鎭� String couponName = systemCoupon.getName(); if (CouponTypeEnum.freeCouponGive == systemCoupon.getType()) couponName = "鍏嶅崟鍒�"; - // 閫�鍥炴秷鎭� String beiZhu = "璇峰埌鎴戠殑-绂忓埄涓績鏌ョ湅"; SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd HH:mm"); MsgOtherGiveContentDTO msgOther = new MsgOtherGiveContentDTO(); @@ -2142,10 +2178,13 @@ @Override public boolean getIncludeExchange(Long uid) { - List<String> list = new ArrayList<String>(); - list.add(UserSystemCoupon.SOURCE_EXCHANGE); - list.add(UserSystemCoupon.SOURCE_GIVE); - List<UserSystemCoupon> listCoupon = userSystemCouponMapper.getIncludeExchange(uid, list); + // 杩囨湡鍒� + 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()); if (listCoupon == null || listCoupon.size() == 0) return false; return true; @@ -2154,13 +2193,92 @@ @Override public boolean getIncludeNotExchange(Long uid) { - List<String> list = new ArrayList<String>(); - list.add(UserSystemCoupon.SOURCE_EXCHANGE); - list.add(UserSystemCoupon.SOURCE_GIVE); - List<UserSystemCoupon> listCoupon = userSystemCouponMapper.getIncludeNotExchange(uid, list); + // 杩囨湡鍒� + 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{ + // 杩囨湡鍒� + updateInvalidSate(uid); + + // 閫�鍥炲埜 + 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()); + if (listCoupon == null || listCoupon.size() == 0) + return null; + + for (UserSystemCouponVO userCouponVO : listCoupon) { + String source = userCouponVO.getSource(); + if (source != null && "濂栧姳鍒稿ぉ澶╂娊".equals(source)) { + source = "澶╁ぉ鎶�"; + } + + SystemCoupon systemCoupon = userCouponVO.getSystemCoupon(); + if (systemCoupon == null) { + continue; // 鍒镐俊鎭笉瀹屾暣 + } + + systemCoupon = systemCouponService.selectByPrimaryKey(systemCoupon.getId()); + + userCouponVO.setSource("鏉ユ簮锛�" + source); + userCouponVO.setCouponName(systemCoupon.getName()); + userCouponVO.setCouponEffect(systemCoupon.getEffect()); + userCouponVO.setCouponRule(systemCoupon.getRule()); + userCouponVO.setCouponRuleLink(systemCoupon.getRuleLink()); + userCouponVO.setCouponPicture(systemCoupon.getPicture()); + userCouponVO.setCouponPictureInvalid(systemCoupon.getPictureInvalid()); + + int differentDays = 0; + String couponTerm = "鏈夋晥鏈燂細"; + Date startTime = userCouponVO.getStartTime(); + Date endTime = userCouponVO.getEndTime(); + if (endTime != null && startTime != null) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd"); + couponTerm = couponTerm + sdf.format(startTime) + "-" + sdf.format(endTime); + + SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd"); + differentDays = DateUtil.daysBetween(sdf2.format(new Date()), sdf2.format(endTime)) + 1; + if (differentDays < 0) { + differentDays = 0; + } + } + userCouponVO.setCouponTerm(couponTerm); + + // 鍓╀綑澶╂暟 + Map<String, Object> remainDays = new HashMap<String, Object>(); + remainDays.put("content", "杩樺墿" + differentDays + "澶╄繃鏈�"); + String remainDaysFontColor = ""; + + Integer stateActivated = userCouponVO.getStateActivated(); + if (stateActivated == null || stateActivated == 0) { + userCouponVO.setState(0); + userCouponVO.setCouponEffect("寰呮縺娲�"); + userCouponVO.setCouponPicture(systemCoupon.getPictureInvalid()); + remainDaysFontColor = "#CCCCCC"; + } else { + userCouponVO.setCouponPicture(systemCoupon.getPicture()); + remainDaysFontColor = "#F14242"; + } + + remainDays.put("fontColor", remainDaysFontColor); + userCouponVO.setRemainDays(remainDays); + } + + return listCoupon; + } } -- Gitblit v1.8.0