| | |
| | | import com.yeshi.fanli.entity.bus.user.HongBaoV2;
|
| | | import com.yeshi.fanli.entity.bus.user.Order;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
|
| | | import com.yeshi.fanli.entity.bus.user.UserSystemCoupon;
|
| | | import com.yeshi.fanli.entity.bus.user.UserSystemCouponRecord;
|
| | | 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.order.HongBaoOrder;
|
| | | import com.yeshi.fanli.entity.system.SystemCoupon;
|
| | | import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum;
|
| | | import com.yeshi.fanli.exception.user.UserSystemCouponException;
|
| | |
| | | import com.yeshi.fanli.service.inter.order.HongBaoOrderService;
|
| | | import com.yeshi.fanli.service.inter.order.OrderHongBaoMapService;
|
| | | import com.yeshi.fanli.service.inter.order.OrderService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoService;
|
| | | import com.yeshi.fanli.service.inter.user.UserMoneyDetailService;
|
| | | import com.yeshi.fanli.service.inter.user.UserSystemCouponRecordService;
|
| | |
| | |
|
| | | @Resource
|
| | | private UserMoneyMsgNotificationService userMoneyMsgNotificationService;
|
| | | |
| | | @Resource
|
| | | private UserInfoExtraService userInfoExtraService;
|
| | |
|
| | | // 券失效图片
|
| | | public final static String PIC_INVALID = "http://192.168.1.200/icon/mian_invalid.png";
|
| | |
| | | }
|
| | |
|
| | | @Override
|
| | | public List<UserSystemCoupon> getUserCouponBySource(Long uid, String source) {
|
| | | return userSystemCouponMapper.getUserCouponBySource(uid, source);
|
| | | }
|
| | | |
| | | @Override
|
| | | public long countUserCouponList(Long uid) {
|
| | | return userSystemCouponMapper.countUserCouponList(uid);
|
| | | }
|
| | |
| | | }
|
| | |
|
| | | // 数据组织
|
| | | listDataFactory(listVO);
|
| | | listDataFactory(listVO, uid);
|
| | |
|
| | | return listVO;
|
| | | }
|
| | |
| | | *
|
| | | * @param listVO
|
| | | */
|
| | | public void listDataFactory(List<UserSystemCouponVO> listVO) {
|
| | | public void listDataFactory(List<UserSystemCouponVO> listVO, Long uid) throws Exception{
|
| | |
|
| | | for (UserSystemCouponVO userCouponVO : listVO) {
|
| | |
|
| | |
| | | userCouponVO.setCouponEffect(systemCoupon.getEffect());
|
| | | userCouponVO.setCouponRule(systemCoupon.getRule());
|
| | |
|
| | | // 使用中状态 改变为已使用
|
| | | // 使用状态
|
| | | Integer state = userCouponVO.getState();
|
| | | if (UserSystemCoupon.STATE_IN_USE == state) {
|
| | | state = UserSystemCoupon.STATE_END_USE;
|
| | | userCouponVO.setState(state);
|
| | | }
|
| | |
|
| | | // 按钮跳转
|
| | |
|
| | | Map<String, Object> jumpBtn = null;
|
| | | |
| | | Integer stateActivated = userCouponVO.getStateActivated();
|
| | | |
| | | if (stateActivated == null || stateActivated == 0) {
|
| | | // 显示规则
|
| | | userCouponVO.setCouponRule(systemCoupon.getRemark());
|
| | | systemCoupon.setEffect("待激活");
|
| | | userCouponVO.setCouponEffect("待激活");
|
| | |
|
| | | // 状态未激活
|
| | | userCouponVO.setState(0);
|
| | | // 状态未激活 -且未被使用
|
| | | if (UserSystemCoupon.STATE_CAN_USE == state) {
|
| | | userCouponVO.setState(0);
|
| | | }
|
| | |
|
| | | jumpBtn = new HashMap<String, Object>();
|
| | | Map<String, Object> jumpLink = new HashMap<String, Object>();
|
| | | jumpLink.put("url", configService.get("invite_activation_url"));
|
| | | |
| | | UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
|
| | | if (userInfoExtra != null && userInfoExtra.getInviteCode() != null
|
| | | && userInfoExtra.getInviteCode().trim().length() > 0) {
|
| | | |
| | | jumpLink.put("url", configService.get("invite_activation_success_url" +"?alert=ture"));
|
| | | } else {
|
| | |
|
| | | jumpLink.put("url", configService.get("invite_activation_url"));
|
| | | }
|
| | | |
| | | jumpBtn.put("params", jumpLink);
|
| | | jumpBtn.put("jumpDetail", jumpDetailV2Service.getByTypeCache("invite"));
|
| | |
|
| | |
| | | CouponTypeEnum type = systemCoupon.getType();
|
| | | if (CouponTypeEnum.freeCoupon == type || CouponTypeEnum.welfareFreeCoupon == type) {
|
| | | // 免单券、 福利免单券
|
| | | jumpLink.put("url", configService.get("invite_activation_url"));
|
| | | |
| | | // 免单商品列表
|
| | | jumpLink.put("url", configService.get("free_goods_list"));
|
| | |
|
| | | jumpBtn = new HashMap<String, Object>();
|
| | | jumpBtn.put("params", jumpLink);
|
| | | jumpBtn.put("jumpDetail", jumpDetailV2Service.getByTypeCache("web"));
|
| | |
|
| | | } else if (CouponTypeEnum.rebatePercentCoupon == type) {
|
| | | // 返利奖励券
|
| | | jumpLink.put("url", configService.get("invite_activation_url"));
|
| | |
|
| | | // 返利奖励券- 跳转至订单到账界面
|
| | | jumpLink.put("state", 2);
|
| | | |
| | | jumpBtn = new HashMap<String, Object>();
|
| | | jumpBtn.put("params", jumpLink);
|
| | | jumpBtn.put("jumpDetail", jumpDetailV2Service.getByTypeCache("invite"));
|
| | | // 跳转订单列表
|
| | | jumpBtn.put("jumpDetail", jumpDetailV2Service.getByTypeCache("orderList"));
|
| | | }
|
| | | } else if (UserSystemCoupon.STATE_END_USE == state || UserSystemCoupon.STATE_OVERDUE == state) {
|
| | | userCouponVO.setCouponPicture(PIC_INVALID);
|
| | | |
| | | } else if (UserSystemCoupon.STATE_IN_USE == state) {
|
| | | // 使用中
|
| | | userCouponVO.setInUseExplain(configService.get("free_coupon_using-help"));
|
| | | }
|
| | |
|
| | | }
|
| | | |
| | | // 券失效图片替换
|
| | | if (UserSystemCoupon.STATE_END_USE == state || UserSystemCoupon.STATE_OVERDUE == state) {
|
| | | userCouponVO.setCouponPicture(PIC_INVALID);
|
| | | }
|
| | | |
| | | userCouponVO.setJumpBtn(jumpBtn);
|
| | |
|
| | | String couponTerm = "有效期:";
|
| | |
| | | if (UserSystemCoupon.STATE_CAN_USE == state) {
|
| | | int differentDays = 0;
|
| | | if (endTime != null && startTime != null) {
|
| | | differentDays = DateUtil.differentDaysByMillisecond(new Date(), endTime) + 1;
|
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
| | | differentDays = DateUtil.daysBetween(sdf.format(new Date()), sdf.format(endTime)) + 1;
|
| | | if (differentDays < 0) {
|
| | | differentDays = 0;
|
| | | }
|
| | |
| | | if (endTime != null && startTime != null) {
|
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
|
| | | couponTerm = couponTerm + sdf.format(startTime) + "-" + sdf.format(endTime);
|
| | |
|
| | | differentDays = DateUtil.differentDaysByMillisecond(new Date(), endTime) + 1;
|
| | | |
| | | SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
|
| | | differentDays = DateUtil.daysBetween(sdf2.format(new Date()), sdf2.format(endTime)) + 1;
|
| | | if (differentDays < 0) {
|
| | | differentDays = 0;
|
| | | }
|
| | |
| | | throw new UserSystemCouponException(1, "未找到券基本信息");
|
| | | }
|
| | |
|
| | | if (baseCoupon.getType() != CouponTypeEnum.freeCoupon
|
| | | && baseCoupon.getType() != CouponTypeEnum.welfareFreeCoupon) {
|
| | | throw new UserSystemCouponException(1, "券类型不匹配");
|
| | | }
|
| | | |
| | | Date date = new Date();
|
| | | // 更新券使用
|
| | | userSystemCoupon.setState(UserSystemCoupon.STATE_IN_USE); // 正在匹配
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | if (systemCoupon.getType() != CouponTypeEnum.rebatePercentCoupon) {
|
| | | throw new UserSystemCouponException(1, "券类型不匹配");
|
| | | }
|
| | |
|
| | | |
| | | if (orderNo == null || orderNo.trim().length() == 0) {
|
| | | throw new UserSystemCouponException(1, "订单号不存在");
|
| | | }
|
| | |
| | | throw new UserSystemCouponException(1, "订单信息获取失败");
|
| | | }
|
| | |
|
| | | Long commonOrderId = orderVO.getId();
|
| | |
|
| | | BigDecimal hongBao = orderVO.getHongBao();
|
| | | // 红包状态
|
| | |
| | | throw new UserSystemCouponException(1, "券类型不正确");
|
| | | }
|
| | |
|
| | | List<CommonOrderVO> list = commonOrderService.getCouponHongbaoByOrderNo(userSystemCoupon.getUid(),
|
| | | HongBaoV2.STATE_YILINGQU, orderNo);
|
| | |
|
| | | if (list == null || list.size() == 0) {
|
| | | Long uid = userSystemCoupon.getUid();
|
| | | |
| | | CommonOrderVO commonOrderVO= commonOrderService.getCommonOrderByOrderNo(userSystemCoupon.getUid(),
|
| | | orderNo, CommonOrder.STATE_JS);
|
| | | |
| | | if (commonOrderVO == null) {
|
| | | throw new UserSystemCouponException(1, "订单信息获取失败");
|
| | | }
|
| | | |
| | | // 获取奖励金额
|
| | | Map<String, BigDecimal> map = orderHongBaoMapService.getCouponHongbaoByOrderNo(orderNo, uid);
|
| | |
|
| | | UserSystemCouponRecordVO userRecordVO = new UserSystemCouponRecordVO();
|
| | | userRecordVO.setCouponMoneyState("已到账");
|
| | | userRecordVO.setCommonOrder(list.get(0));
|
| | | userRecordVO.setCouponName("奖励金: ¥" + list.get(0).getCouponMoney().setScale(2, BigDecimal.ROUND_DOWN));
|
| | | userRecordVO.setCommonOrder(commonOrderVO);
|
| | | userRecordVO.setCouponName("奖励金: ¥" + map.get("couponMoney").setScale(2, BigDecimal.ROUND_DOWN));
|
| | |
|
| | | // 比例
|
| | | BigDecimal percent = baseCoupon.getPercent();
|
| | | BigDecimal hongBao = list.get(0).getHongBao().setScale(2, BigDecimal.ROUND_DOWN);
|
| | | BigDecimal hongBao = map.get("totalMoney").setScale(2, BigDecimal.ROUND_DOWN);
|
| | | userRecordVO.setCouponEffect("返利¥" + hongBao + "已返" + percent + "%");
|
| | |
|
| | | // 跳转福利中心
|
| | |
| | | return userRecordVO;
|
| | | }
|
| | |
|
| | | |
| | | |
| | | }
|