| | |
| | | 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 {
|
| | |
| | |
|
| | | }
|
| | |
|
| | | @Transactional
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | @Override
|
| | | public void useOrderCoupon(Long uid, Long id, String orderNo, Integer sourceType, AcceptData acceptData)
|
| | | throws UserSystemCouponException, Exception {
|
| | |
| | | throw new UserSystemCouponException(1, "亲,很遗憾,售后维权订单不能使用返利奖励券~");
|
| | | }
|
| | |
|
| | | |
| | | // 订单
|
| | | CommonOrderVO orderVO = commonOrderService.getCommonOrderByOrderNo(uid, orderNo, CommonOrder.STATE_JS,
|
| | | sourceType);
|
| | | if (orderVO == null)
|
| | | 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;
|
| | |
|
| | | // 版本区分: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.getHour() > 0)
|
| | | valid = true;
|
| | | if (!valid && dateInfo.getMinute() > 0)
|
| | | valid = true;
|
| | |
|
| | | if (!valid && dateInfo.getMinute() > 0)
|
| | | valid = true;
|
| | |
|
| | | if (!valid && dateInfo.getSecond() > 0)
|
| | | valid = true;
|
| | | }
|
| | |
|
| | | if (!valid)
|
| | | throw new UserSystemCouponException(1, "该订单已超过有效使用奖励券时间");
|
| | | }
|
| | | if (!valid && dateInfo.getSecond() > 0)
|
| | | valid = true;
|
| | | }
|
| | | }
|
| | | |
| | | if (!valid)
|
| | | throw new UserSystemCouponException(1, "该订单不能使用奖励券");
|
| | | }
|
| | |
|
| | | BigDecimal hongBao = orderVO.getHongBao();
|
| | |
| | | return listVO;
|
| | | }
|
| | |
|
| | | @Transactional
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | @Override
|
| | | public UserSystemCouponVO giveCoupon(Long uid, Long id) throws UserSystemCouponException {
|
| | | UserSystemCoupon userSystemCoupon = userSystemCouponMapper.selectByPrimaryKey(id);
|
| | |
| | | }
|
| | |
|
| | | 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);
|
| | |
|
| | | // 创建记录
|
| | |
| | | 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);
|
| | |
|
| | |
| | | msg.setUserSystemCouponId(id);
|
| | | msg.setCouponType(type.name());
|
| | | Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.systemCouponDrawback, msg);
|
| | | // 延迟一分钟
|
| | | message.setStartDeliverTime(endTime.getTime() + 1000 * 60);
|
| | | try {
|
| | | producer.send(message);
|
| | | } catch (Exception e) {
|
| | |
| | | }
|
| | |
|
| | | @Override
|
| | | @RequestSerializableByKeyService(key = "#id")
|
| | | @RequestSerializableByKeyService(key = "#couponId")
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public void sendBackByGiveId(Long couponId) {
|
| | | if (couponId == null)
|