| | |
| | | private String userId; |
| | | |
| | | |
| | | @TableField("member_coupon_id") |
| | | /** 用户领取优惠卷id |
| | | * */ |
| | | private String memberCouponId; |
| | | |
| | | } |
| | |
| | | private String claimUserName; |
| | | |
| | | |
| | | @TableField("member_coupon_id") |
| | | /** 用户领取优惠卷id |
| | | * */ |
| | | private String memberCouponId; |
| | | |
| | | |
| | | } |
| | |
| | | storeCouponSingle.setClaimStatus(ClaimStatusEnum.CLAIM.name()); |
| | | storeCouponSingle.setClaimUserId(userId); |
| | | storeCouponSingle.setClaimUserName(nickName); |
| | | storeCouponSingleService.updateById(storeCouponSingle); |
| | | //校验是否在单品卷类领取过 |
| | | LambdaQueryWrapper<StoreCoupon> storeCoupQuery = Wrappers.<StoreCoupon>lambdaQuery() |
| | | .eq(StoreCoupon::getId, storeCouponSingle.getStoreCoupRef()).last("FOR UPDATE"); |
| | |
| | | throw new ServiceException("当前店铺优惠卷状态异常"); |
| | | } |
| | | //领取对应的优惠卷写入记录 |
| | | memberCouponService.receiveCoupon(storeCouponSingle.getCouponId(),userId , nickName); |
| | | MemberCoupon memberCoupon = memberCouponService.receiveCoupon(storeCouponSingle.getCouponId(), userId, nickName); |
| | | String memberCouponId = memberCoupon.getId(); |
| | | storeCouponSingle.setMemberCouponId(memberCouponId); |
| | | storeCouponSingleService.updateById(storeCouponSingle); |
| | | StoreCouponClaimRecord storeCouponClaimRecord = getStoreCouponClaimRecord(storeCouponSingle, userId); |
| | | storeCouponClaimRecord.setMemberCouponId(memberCouponId); |
| | | this.save(storeCouponClaimRecord); |
| | | LambdaUpdateWrapper<StoreCoupon> updateStoreCoupon = Wrappers.<StoreCoupon>lambdaUpdate().eq(StoreCoupon::getId, storeCoupon.getId()) |
| | | .set(StoreCoupon::getCouponClaimNum, storeCoupon.getCouponClaimNum() + 1) |
| | |
| | | * @param memberId 会员 |
| | | * @param memberName 会员名称 |
| | | */ |
| | | void receiveCoupon(String couponId, String memberId, String memberName); |
| | | MemberCoupon receiveCoupon(String couponId, String memberId, String memberName); |
| | | |
| | | /** |
| | | * 获取会员优惠券列表 |
| | |
| | | @Override |
| | | @CacheEvict(key = "#memberId") |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void receiveCoupon(String couponId, String memberId, String memberName) { |
| | | public MemberCoupon receiveCoupon(String couponId, String memberId, String memberName) { |
| | | Coupon coupon = couponService.getById(couponId); |
| | | if (coupon != null) { |
| | | this.receiverCoupon(couponId, memberId, memberName, coupon); |
| | | return this.receiverCoupon(couponId, memberId, memberName, coupon); |
| | | } else { |
| | | throw new ServiceException(ResultCode.COUPON_NOT_EXIST); |
| | | } |
| | |
| | | return this.update(updateWrapper); |
| | | } |
| | | |
| | | private void receiverCoupon(String couponId, String memberId, String memberName, Coupon coupon) { |
| | | private MemberCoupon receiverCoupon(String couponId, String memberId, String memberName, Coupon coupon) { |
| | | this.checkCouponLimit(couponId, memberId); |
| | | MemberCoupon memberCoupon = new MemberCoupon(coupon); |
| | | memberCoupon.setMemberId(memberId); |
| | |
| | | memberCoupon.setPlatformFlag((PromotionTools.PLATFORM_ID).equals(coupon.getStoreId())); |
| | | this.save(memberCoupon); |
| | | couponService.receiveCoupon(couponId, 1); |
| | | return memberCoupon; |
| | | } |
| | | } |