MrShi
7 小时以前 59bfd0b8bbbf0ee94ec68e4a3a1a6e536d0ad8fd
server/services/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
@@ -26,7 +26,9 @@
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
@@ -197,6 +199,22 @@
    }
    @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) {
        // 查询该会员的待领取优惠券记录
@@ -207,11 +225,6 @@
                .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();