| | |
| | | |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.LinkedHashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | |
| | | @Service |
| | |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Integer> findPendingCount(Integer memberId) { |
| | | Long waitClaim = memberCouponMapper.selectCount(new QueryWrapper<MemberCoupon>().lambda() |
| | | .eq(MemberCoupon::getMemberId, memberId) |
| | | .eq(MemberCoupon::getStatus, Constants.CouponStatus.waitClaim.getKey()) |
| | | .eq(MemberCoupon::getIsdeleted, Constants.ZERO)); |
| | | Long waitUse = memberCouponMapper.selectCount(new QueryWrapper<MemberCoupon>().lambda() |
| | | .eq(MemberCoupon::getMemberId, memberId) |
| | | .eq(MemberCoupon::getStatus, Constants.CouponStatus.claimed.getKey()) |
| | | .eq(MemberCoupon::getIsdeleted, Constants.ZERO)); |
| | | Map<String, Integer> result = new LinkedHashMap<>(); |
| | | result.put("waitClaim", waitClaim != null ? waitClaim.intValue() : 0); |
| | | result.put("waitUse", waitUse != null ? waitUse.intValue() : 0); |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class, BusinessException.class}) |
| | | public void claimCoupon(Integer memberId, Integer couponId) { |
| | | // 查询该会员的待领取优惠券记录 |
| | |
| | | .eq(MemberCoupon::getIsdeleted, Constants.ZERO)); |
| | | if (mc == null) { |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | // 校验优惠券是否有效 |
| | | Coupon coupon = couponMapper.selectById(couponId); |
| | | if (coupon == null || coupon.getStatus() != Constants.ZERO) { |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "优惠券无效"); |
| | | } |
| | | // 标记已领取,计算有效期 |
| | | Date now = new Date(); |