| | |
| | | import com.yeshi.fanli.entity.common.JumpDetailV2;
|
| | | import com.yeshi.fanli.entity.money.UserMoneyDetail;
|
| | | import com.yeshi.fanli.entity.order.CommonOrder;
|
| | | import com.yeshi.fanli.entity.system.ConfigKeyEnum;
|
| | | import com.yeshi.fanli.entity.system.SystemCoupon;
|
| | | import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum;
|
| | | import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
|
| | |
| | | }
|
| | |
|
| | | @Override
|
| | | @Transactional
|
| | | @Transactional(rollbackFor=Exception.class)
|
| | | public UserSystemCoupon insertUserCoupon(Long uid, String couponType, String source, BigDecimal percent,
|
| | | Boolean needNotify) throws UserSystemCouponException, Exception {
|
| | |
|
| | |
| | | return userCoupon;
|
| | | }
|
| | |
|
| | | @Transactional
|
| | | @Transactional(rollbackFor=Exception.class)
|
| | | @Override
|
| | | public List<UserSystemCouponVO> getUserCouponVOList(long start, int count, Long uid, boolean changeJump)
|
| | | throws UserSystemCouponException, Exception {
|
| | |
| | | // 免单券、 福利免单券
|
| | |
|
| | | // 免单商品列表
|
| | | jumpLink.put("url", configService.get("free_goods_list"));
|
| | | jumpLink.put("url", configService.get(ConfigKeyEnum.freeGoodsList.getKey()));
|
| | |
|
| | | jumpBtn = new HashMap<String, Object>();
|
| | | jumpBtn.put("params", jumpLink);
|
| | |
| | |
|
| | | } else if (UserSystemCoupon.STATE_IN_USE == state) {
|
| | | // 使用中
|
| | | userCouponVO.setInUseExplain(configService.get("free_coupon_using-help"));
|
| | | userCouponVO.setInUseExplain(configService.get(ConfigKeyEnum.freeCouponUsingHelp.getKey()));
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | return hasCoupon;
|
| | | }
|
| | |
|
| | | @Transactional
|
| | | @Transactional(rollbackFor=Exception.class)
|
| | | @Override
|
| | | public List<UserSystemCouponVO> getOrderCouponList(Long uid) throws UserSystemCouponException, Exception {
|
| | |
|
| | |
| | | return getEnableListByCouponId(uid, 1, couponList);
|
| | | }
|
| | |
|
| | | @Transactional
|
| | | @Transactional(rollbackFor=Exception.class)
|
| | | @Override
|
| | | public List<UserSystemCouponVO> getGoodsCouponList(Long uid, Long auctionId)
|
| | | throws UserSystemCouponException, Exception {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | @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
|
| | |
| | | userRecordVO.setJumpWelfare(jumpWelfare);
|
| | |
|
| | | // 跳转奖励券规则
|
| | | userRecordVO.setRuleLink(configService.get("reward_coupon_help"));
|
| | | userRecordVO.setRuleLink(configService.get(ConfigKeyEnum.rewardCouponHelp.getKey()));
|
| | |
|
| | | String rewardCouponRemark = configService.get("reward_coupon_remark");
|
| | | String rewardCouponRemark = configService.get(ConfigKeyEnum.rewardCouponRemark.getKey());
|
| | | if (rewardCouponRemark != null && rewardCouponRemark.trim().length() > 0) {
|
| | | userRecordVO.setRemark(JSONObject.fromObject(rewardCouponRemark));
|
| | | }
|
| | |
| | | String progressMsg = "";
|
| | | String progressColor = "";
|
| | | // 跳转奖励券规则
|
| | | userRecordVO.setRuleLink(configService.get("free_coupon_help"));
|
| | | userRecordVO.setRuleLink(configService.get(ConfigKeyEnum.freeCouponHelp.getKey()));
|
| | |
|
| | | // 进度: 1 灰色 2 红色 3 绿色
|
| | | String progressState1 = "3";
|
| | |
| | |
|
| | | jumpDetail = jumpDetailV2Service.getByTypeCache("welfareCore");
|
| | |
|
| | | rewardCouponRemark = configService.get("free_coupon_back_remark");
|
| | | rewardCouponRemark = configService.get(ConfigKeyEnum.freeCouponBackRemark.getKey());
|
| | |
|
| | | } else if (UserSystemCouponRecord.STATE_FAIL_DRAWBACK == stateRecord) {
|
| | | // 退款
|
| | |
| | |
|
| | | jumpDetail = jumpDetailV2Service.getByTypeCache("welfareCore");
|
| | |
|
| | | rewardCouponRemark = configService.get("free_coupon_back_remark");
|
| | | rewardCouponRemark = configService.get(ConfigKeyEnum.freeCouponBackRemark.getKey());
|
| | |
|
| | | } else if (UserSystemCouponRecord.STATE_FREE_ON == stateRecord) {
|
| | | // 免单中
|
| | |
| | | progressMsg = "免单发起,等待收货";
|
| | | }
|
| | |
|
| | | rewardCouponRemark = configService.get("free_coupon_remark");
|
| | | rewardCouponRemark = configService.get(ConfigKeyEnum.freeCouponRemark.getKey());
|
| | |
|
| | | } else if (UserSystemCouponRecord.STATE_SUCCESS == stateRecord) {
|
| | | // 免单成功
|
| | |
| | |
|
| | | jumpDetail = jumpDetailV2Service.getByTypeCache("capitalDetails");
|
| | |
|
| | | rewardCouponRemark = configService.get("free_coupon_remark");
|
| | | rewardCouponRemark = configService.get(ConfigKeyEnum.freeCouponRemark.getKey());
|
| | | }
|
| | | userRecordVO.setProgressState(progressState);
|
| | | userRecordVO.setPayMoney(payMoney);
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | @Transactional
|
| | | @Transactional(rollbackFor=Exception.class)
|
| | | @Override
|
| | | public void updateStateByDrawback(String orderNo) throws Exception {
|
| | |
|
| | |
| | | sendBackCoupon(record.getUserSystemCoupon(), record);
|
| | | }
|
| | |
|
| | | @Transactional
|
| | | @Transactional(rollbackFor=Exception.class)
|
| | | @Override
|
| | | public void updateStateByArrivalAccount(String orderNo) throws Exception {
|
| | |
|
| | |
| | | return userSystemCouponMapper.getCounponNowInvalid(count);
|
| | | }
|
| | |
|
| | | @Transactional
|
| | | @Transactional(rollbackFor=Exception.class)
|
| | | @Override
|
| | | public boolean updateCouponRecordUsed(Long uid, String orderNo, BigDecimal payment, Long auctionId)
|
| | | throws Exception {
|
| | |
| | | }
|
| | |
|
| | | @Override
|
| | | @Transactional
|
| | | @Transactional(rollbackFor=Exception.class)
|
| | | public void copyLotteryPrize(Long uid, int platform, String device) throws Exception {
|
| | |
|
| | | return;
|
| | |
| | | }
|
| | |
|
| | | @Override
|
| | | @Transactional
|
| | | @Transactional(rollbackFor=Exception.class)
|
| | | public void randomRewardCoupon(int num, Long uid, String source) throws Exception {
|
| | | if (num < 1) {
|
| | | return;
|
| | |
| | | throws Exception {
|
| | | // 添加奖励券
|
| | | insertUserCoupon(uid, CouponTypeEnum.rebatePercentCoupon.name(), "系统赠送",
|
| | | new BigDecimal(configService.get("exchange_rebate_percent")), false);
|
| | | new BigDecimal(configService.get(ConfigKeyEnum.exchangeRebatePercent.getKey())), false);
|
| | | // 添加奖励券消息
|
| | | userOtherMsgNotificationService.systemGiveRewardCoupon(uid, null, MsgOtherSystemGiveDTOFactory
|
| | | .createRewardCouponGive(num, "请按照返利奖励券规则使用", "返利奖励券", orderId, orderType, reason));
|
| | |
| | | }
|
| | |
|
| | | @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) {
|
| | |
| | | insertSelective(userCoupon);
|
| | | }
|
| | |
|
| | | @Transactional
|
| | | @Transactional(rollbackFor=Exception.class)
|
| | | @Override
|
| | | public List<UserSystemCouponVO> getCouponList(AcceptData acceptData, long start, int count, Long uid)
|
| | | throws UserSystemCouponException, Exception {
|
| | |
| | | // 统计待激活数量
|
| | | if (VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(), acceptData.getVersion())) {
|
| | | int activateCount = userSystemCouponActivateService.getActivateCount(userCouponVO.getId());
|
| | | String activateNum = configService.get("free_coupon_activate_num");
|
| | | String activateNum = configService.get(ConfigKeyEnum.freeCouponActivateNum.getKey());
|
| | | userCouponVO.setCouponEffect(
|
| | | "(" + activateCount + "/" + Integer.parseInt(activateNum) + ")待激活");
|
| | | }
|
| | |
| | | userCouponVO.setState(UserSystemCoupon.STATE_GIVE_ONLY);
|
| | | } else if (CouponTypeEnum.freeCoupon == type || CouponTypeEnum.welfareFreeCoupon == type
|
| | | || CouponTypeEnum.freeCouponBuy == type) {
|
| | | jumpLink.put("url", configService.get("free_goods_list"));
|
| | | jumpLink.put("url", configService.get(ConfigKeyEnum.freeGoodsList.getKey()));
|
| | | jumpBtn = new HashMap<String, Object>();
|
| | | jumpBtn.put("params", jumpLink);
|
| | | jumpBtn.put("jumpDetail", jumpDetailV2Service.getByTypeCache("web"));
|
| | |
| | | TokenTypeEnum tokenType = null;
|
| | | if (CouponTypeEnum.freeCouponGive == type) {
|
| | | userCouponVO.setState(UserSystemCoupon.STATE_GIVE_IN);
|
| | | tips = configService.get("give_free_coupon_tips");
|
| | | tips = configService.get(ConfigKeyEnum.giveFreeCouponTips.getKey());
|
| | | tokenType = TokenTypeEnum.freeCoupon;
|
| | | }
|
| | |
|
| | | if (CouponTypeEnum.rebatePercentCoupon == type) {
|
| | | userCouponVO.setState(UserSystemCoupon.STATE_GIVE_IN);
|
| | | tips = configService.get("give_rebate_percent_coupon_tips");
|
| | | tips = configService.get(ConfigKeyEnum.giveRebatePercentCouponTips.getKey());
|
| | | tokenType = TokenTypeEnum.rebatePercentCoupon;
|
| | | }
|
| | |
|
| | |
| | | tips = tips.replace("{APP名称}", projectChineseName);
|
| | | }
|
| | | tips = tips.replace("{口令}", tokenRecord.getToken()).replace("{下载链接}",
|
| | | configService.get("app_down_link"));
|
| | | configService.get(ConfigKeyEnum.appDownLink.getKey()));
|
| | | userCouponVO.setGiveTips(tips);
|
| | | }
|
| | |
|
| | |
| | | TokenTypeEnum tokenTypeEnum = null;
|
| | | if (type == CouponTypeEnum.freeCouponGive) {
|
| | | tokenTypeEnum = TokenTypeEnum.freeCoupon;
|
| | | tips = configService.get("give_free_coupon_tips");
|
| | | tips = configService.get(ConfigKeyEnum.giveFreeCouponTips.getKey());
|
| | | } else if (type == CouponTypeEnum.rebatePercentCoupon) {
|
| | | tokenTypeEnum = TokenTypeEnum.rebatePercentCoupon;
|
| | | tips = configService.get("give_rebate_percent_coupon_tips");
|
| | | tips = configService.get(ConfigKeyEnum.giveRebatePercentCouponTips.getKey());
|
| | | } else {
|
| | | throw new UserSystemCouponException(1, "该券不支持赠送");
|
| | | }
|
| | |
| | | tips = tips.replace("{APP名称}", projectChineseName);
|
| | | }
|
| | | tips = tips.replace("{口令}", tokenRecord.getToken()).replace("{下载链接}",
|
| | | configService.get("app_down_link"));
|
| | | configService.get(ConfigKeyEnum.appDownLink.getKey()));
|
| | |
|
| | | return createUserCouponVOo(userSystemCoupon, systemCoupon, record, tips);
|
| | | }
|
| | | }
|
| | |
|
| | | 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);
|
| | |
|
| | |
| | | while (tips.contains("{APP名称}")) {
|
| | | tips = tips.replace("{APP名称}", projectChineseName);
|
| | | }
|
| | | tips = tips.replace("{口令}", token).replace("{下载链接}", configService.get("app_down_link"));
|
| | | tips = tips.replace("{口令}", token).replace("{下载链接}", configService.get(ConfigKeyEnum.appDownLink.getKey()));
|
| | |
|
| | | UserSystemCouponVO couponVO = createUserCouponVOo(userSystemCoupon, systemCoupon, giveRecord, tips);
|
| | |
|
| | |
| | | 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)
|
| | |
| | |
|
| | | // 激活数量
|
| | | boolean result = false;
|
| | | int limitNum = Integer.parseInt(configService.get("free_coupon_activate_num"));
|
| | | int limitNum = Integer.parseInt(configService.get(ConfigKeyEnum.freeCouponActivateNum.getKey()));
|
| | |
|
| | | Integer state = couponActivate.getState();
|
| | | int count = couponActivate.getCount();
|