From c8f11c229b87d1652b6da0b15576c166cd51eb8b Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 01 一月 2020 14:25:22 +0800 Subject: [PATCH] 首页悬浮图mapperbug修改,增加商品详情中的比例展示 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java | 182 ++++++++++++++++++++++++--------------------- 1 files changed, 98 insertions(+), 84 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 ee28c64..ea0b6e2 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 @@ -177,15 +177,12 @@ @Resource private UserSystemCouponActivateService userSystemCouponActivateService; - + @Resource(name = "producer") private Producer producer; - @Lazy @Resource private UserVIPInfoService userVIPInfoService; - - @Override public int insertSelective(UserSystemCoupon record) { @@ -233,7 +230,7 @@ } @Override - @Transactional + @Transactional(rollbackFor=Exception.class) public UserSystemCoupon insertUserCoupon(Long uid, String couponType, String source, BigDecimal percent, Boolean needNotify) throws UserSystemCouponException, Exception { @@ -302,8 +299,8 @@ userCoupon.setCreateTime(new Date()); userCoupon.setUpdateTime(new Date()); userSystemCouponMapper.insertSelective(userCoupon); - - if(coupon.getType() == CouponTypeEnum.freeCoupon) { + + if (coupon.getType() == CouponTypeEnum.freeCoupon) { userSystemCouponActivateService.addActivateRecord(userCoupon.getId()); } @@ -347,7 +344,7 @@ return userCoupon; } - @Transactional + @Transactional(rollbackFor=Exception.class) @Override public List<UserSystemCouponVO> getUserCouponVOList(long start, int count, Long uid, boolean changeJump) throws UserSystemCouponException, Exception { @@ -613,7 +610,7 @@ return hasCoupon; } - @Transactional + @Transactional(rollbackFor=Exception.class) @Override public List<UserSystemCouponVO> getOrderCouponList(Long uid) throws UserSystemCouponException, Exception { @@ -636,7 +633,7 @@ return getEnableListByCouponId(uid, 1, couponList); } - @Transactional + @Transactional(rollbackFor=Exception.class) @Override public List<UserSystemCouponVO> getGoodsCouponList(Long uid, Long auctionId) throws UserSystemCouponException, Exception { @@ -742,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 { @@ -819,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 { @@ -856,43 +853,62 @@ if (orderNo == null || orderNo.trim().length() == 0) throw new UserSystemCouponException(1, "璁㈠崟鍙蜂笉瀛樺湪"); - // 璁㈠崟 - CommonOrderVO orderVO = commonOrderService.getCommonOrderByOrderNo(uid, orderNo, CommonOrder.STATE_JS, - sourceType); - if (orderVO == null) - throw new UserSystemCouponException(1, "璁㈠崟淇℃伅鑾峰彇澶辫触"); - - // 鐗堟湰鍖哄垎锛�2.1 - if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) { - Date thirdCreateTime = orderVO.getThirdCreateTime(); - if (thirdCreateTime != null) { - long downOrderTime = thirdCreateTime.getTime(); - long limitDate = TimeUtil.parse(Constant.COUPON_REWARD_TIME).getTime(); - if (downOrderTime > limitDate) { - Date endDay = DateUtil.plusDayDate(4, thirdCreateTime); - 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) - valid = true; - - if (!valid && dateInfo.getHour() > 0) - valid = true; - - if (!valid && dateInfo.getMinute() > 0) - valid = true; - - if (!valid && dateInfo.getSecond() > 0) - valid = true; - } - - if (!valid) - throw new UserSystemCouponException(1, "璇ヨ鍗曞凡瓒呰繃鏈夋晥浣跨敤濂栧姳鍒告椂闂�"); - } + // 妫�鏌ヨ鍗曞彿鏄惁缁存潈 + List<CommonOrder> commonOrderList = commonOrderService.listBySourceTypeAndOrderId(sourceType, orderNo); + boolean weiquan = false; + if (commonOrderList != null) { + for (CommonOrder commonOrder : commonOrderList) { + if (commonOrder.getState() == CommonOrder.STATE_WQ) { + weiquan = true; + break; } } + } + + if (weiquan) { + throw new UserSystemCouponException(1, "浜诧紝寰堥仐鎲撅紝鍞悗缁存潈璁㈠崟涓嶈兘浣跨敤杩斿埄濂栧姳鍒竳"); + } + + + // 璁㈠崟 + 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鏂扮増 + Date thirdCreateTime = orderVO.getThirdCreateTime(); + Date accountTime = orderVO.getAccountTime(); + if (thirdCreateTime == null || accountTime == null) + throw new UserSystemCouponException(1, "璇ヨ鍗曚笉鑳戒娇鐢ㄥ鍔卞埜"); + + long downOrderTime = thirdCreateTime.getTime(); + long limitDate = TimeUtil.convertDateToTemp(Constant.VIP_ONLINE_TIME); + if (downOrderTime > limitDate) { + boolean valid = false; + Date endDay = DateUtil.plusDayDate(Constant.COUPON_REWARD_LIMIT_DAY, accountTime); + long currentTime = java.lang.System.currentTimeMillis(); + if (endDay.getTime() > currentTime) { + DateInfo dateInfo = DateUtil.dateDiff3(currentTime, endDay.getTime()); + if (dateInfo != null) { + if (dateInfo.getDay() > 0) + valid = true; + + if (!valid && dateInfo.getHour() > 0) + valid = true; + + if (!valid && dateInfo.getMinute() > 0) + valid = true; + + if (!valid && dateInfo.getSecond() > 0) + valid = true; + } + } + + if (!valid) + throw new UserSystemCouponException(1, "璇ヨ鍗曚笉鑳戒娇鐢ㄥ鍔卞埜"); } BigDecimal hongBao = orderVO.getHongBao(); @@ -918,8 +934,7 @@ UserSystemCouponUseMQMsg mqMsg = new UserSystemCouponUseMQMsg(userSystemCoupon.getId(), order.getOrderId(), sourceType, systemCoupon.getType().name()); // 浜嬪姟娑堟伅 - Message msg =MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.useSystemCoupon, - mqMsg); + Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.useSystemCoupon, mqMsg); try { SendResult result = orderTransactionProducer.send(msg, new LocalTransactionExecuter() { @Override @@ -940,7 +955,7 @@ } } - @Transactional + @Transactional(rollbackFor=Exception.class) public void useRewardCouponCore(UserSystemCoupon userSystemCoupon, BigDecimal money, BigDecimal hongBao, Long uid, Order order) throws Exception { org.springframework.transaction.TransactionStatus transactionStatus = transactionManager @@ -1343,7 +1358,7 @@ } } - @Transactional + @Transactional(rollbackFor=Exception.class) @Override public void updateStateByDrawback(String orderNo) throws Exception { @@ -1365,7 +1380,7 @@ sendBackCoupon(record.getUserSystemCoupon(), record); } - @Transactional + @Transactional(rollbackFor=Exception.class) @Override public void updateStateByArrivalAccount(String orderNo) throws Exception { @@ -1399,7 +1414,7 @@ return userSystemCouponMapper.getCounponNowInvalid(count); } - @Transactional + @Transactional(rollbackFor=Exception.class) @Override public boolean updateCouponRecordUsed(Long uid, String orderNo, BigDecimal payment, Long auctionId) throws Exception { @@ -1479,7 +1494,7 @@ } @Override - @Transactional + @Transactional(rollbackFor=Exception.class) public void copyLotteryPrize(Long uid, int platform, String device) throws Exception { return; @@ -1562,7 +1577,7 @@ } @Override - @Transactional + @Transactional(rollbackFor=Exception.class) public void randomRewardCoupon(int num, Long uid, String source) throws Exception { if (num < 1) { return; @@ -1702,7 +1717,7 @@ } @Override - @Transactional + @Transactional(rollbackFor=Exception.class) public void exchangeCoupon(Long uid, String couponType, String source, BigDecimal percent) throws UserSystemCouponException, Exception { if (couponType == null || uid == null) { @@ -1758,7 +1773,7 @@ insertSelective(userCoupon); } - @Transactional + @Transactional(rollbackFor=Exception.class) @Override public List<UserSystemCouponVO> getCouponList(AcceptData acceptData, long start, int count, Long uid) throws UserSystemCouponException, Exception { @@ -1905,7 +1920,7 @@ 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"); // 杩斿埄璁㈠崟 @@ -2005,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); @@ -2060,12 +2075,13 @@ } Date nowDate = new Date(); + Date endTime = DateUtil.plusDayDate(Constant.GIVE_DAYS, nowDate); // 鎻掑叆璧犻�佽褰� UserSystemCouponGiveRecord giveRecord = new UserSystemCouponGiveRecord(); giveRecord.setCouponId(id); giveRecord.setGiveUid(uid); giveRecord.setGiveTime(nowDate); - giveRecord.setEndTime(DateUtil.plusDayDate(Constant.GIVE_DAYS, nowDate)); + giveRecord.setEndTime(endTime); userSystemCouponGiveRecordService.insertSelective(giveRecord); // 鍒涘缓璁板綍 @@ -2074,7 +2090,7 @@ tokenRecord.setIdentify(giveRecord.getId() + ""); tokenRecord.setType(tokenTypeEnum); tokenRecord.setStartTime(nowDate); - tokenRecord.setEndTime(DateUtil.plusDayDate(Constant.TOKEN_DAYS, nowDate)); + tokenRecord.setEndTime(endTime); tokenRecord.setState(0); tokenRecordService.insertSelective(tokenRecord); @@ -2105,18 +2121,19 @@ tips = tips.replace("{鍙d护}", token).replace("{涓嬭浇閾炬帴}", configService.get("app_down_link")); UserSystemCouponVO couponVO = createUserCouponVOo(userSystemCoupon, systemCoupon, giveRecord, tips); - + UserSystemCouponUseMQMsg msg = new UserSystemCouponUseMQMsg(); msg.setUserSystemCouponId(id); msg.setCouponType(type.name()); - Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.systemCouponDrawback, - msg); + Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.systemCouponDrawback, msg); + // 寤惰繜涓�鍒嗛挓 + message.setStartDeliverTime(endTime.getTime() + 1000 * 60); try { producer.send(message); } catch (Exception e) { throw new UserSystemCouponException(1, "鍒涘缓璧犻�佷俊鎭け璐�"); } - + return couponVO; } @@ -2302,38 +2319,36 @@ sendBackGiveCoupon(list); } - @Override - @RequestSerializableByKeyService(key = "#id") + @RequestSerializableByKeyService(key = "#couponId") @Transactional(rollbackFor = Exception.class) public void sendBackByGiveId(Long couponId) { if (couponId == null) return; - + UserSystemCoupon userCoupon = userSystemCouponMapper.selectByPrimaryKey(couponId); if (userCoupon == null) return; - + Integer state = userCoupon.getState(); if (state != UserSystemCoupon.STATE_IN_USE) return; - + UserSystemCouponGiveRecord giveRecord = userSystemCouponGiveRecordService.getByCouponId(couponId); if (giveRecord == null) return; - - if (giveRecord.getState() != null && giveRecord.getState() != UserSystemCouponGiveRecord.STATE_INIT) + + if (giveRecord.getState() != null && giveRecord.getState() != UserSystemCouponGiveRecord.STATE_INIT) return; - + // 鏇存柊璧犻�佽褰� UserSystemCouponGiveRecord updateRecord = new UserSystemCouponGiveRecord(); updateRecord.setId(giveRecord.getId()); updateRecord.setState(UserSystemCouponGiveRecord.STATE_OVERDUE); userSystemCouponGiveRecordService.updateByPrimaryKeySelective(updateRecord); - + // 鍙d护澶辨晥 tokenRecordService.invalidByCoupon(giveRecord.getId()); - Date now = new Date(); Date endTime = userCoupon.getEndTime(); @@ -2388,14 +2403,13 @@ msgOther.setReturnTime(sd.format(new Date())); userOtherMsgNotificationService.tokenGiveMsg(giveRecord.getGiveUid(), beiZhu, msgOther); } - - + @Override public void sendBackGiveCoupon(List<UserSystemCouponGiveRecord> overdueList) { for (UserSystemCouponGiveRecord record : overdueList) { - if (record.getState() != null && record.getState() != UserSystemCouponGiveRecord.STATE_INIT) + if (record.getState() != null && record.getState() != UserSystemCouponGiveRecord.STATE_INIT) continue; - + // 鏇存柊璧犻�佽褰� UserSystemCouponGiveRecord updateRecord = new UserSystemCouponGiveRecord(); updateRecord.setId(record.getId()); @@ -2566,9 +2580,9 @@ @Override @Transactional(rollbackFor = Exception.class) public void triggerFreeCouponActivate(Long uid, String orderNo, Integer source) { - if (uid == null || source == null || StringUtil.isNullOrEmpty(orderNo)) + if (uid == null || source == null || StringUtil.isNullOrEmpty(orderNo)) return; - + UserSystemCoupon coupon = userSystemCouponMapper.getNeedActivateCouponByType(uid, CouponTypeEnum.freeCoupon.name()); if (coupon == null) @@ -2578,14 +2592,14 @@ UserSystemCouponActivate couponActivate = userSystemCouponActivateService.selectForUpdate(id); if (couponActivate == null) return; - + // 楠岃瘉鍚岃鍗曟槸鍚﹀瓨鍦� String key = orderNo + "_" + source; String ordernos = couponActivate.getOrdernos(); if (!StringUtil.isNullOrEmpty(ordernos)) { String[] array = ordernos.split(","); if (array != null) - for (int i= 0; i < array.length; i ++) { + for (int i = 0; i < array.length; i++) { if (array[i].equals(key)) return; } @@ -2608,7 +2622,7 @@ } else { ordernos = ordernos + "," + key; } - + UserSystemCouponActivate updateActivate = new UserSystemCouponActivate(); updateActivate.setId(id); updateActivate.setState(state); -- Gitblit v1.8.0