Search in sources :

Example 1 with CouponReceivedRecord

use of com.whoiszxl.entity.CouponReceivedRecord in project shopzz by whoiszxl.

the class CouponController method receive.

@SaCheckLogin
@PostMapping("/receive/{couponId}")
@ApiOperation(value = "用户领取优惠券", notes = "用户领取优惠券", response = Boolean.class)
public ResponseResult<Boolean> receive(@PathVariable Long couponId) {
    // 1. 校验优惠券是否能被领取
    Coupon coupon = couponService.getById(couponId);
    if (coupon.getGiveType().equals(CouponConstants.Status.GIVING) || coupon.getAllCount() - coupon.getReceivedCount() == 0) {
        return ResponseResult.buildError("当前优惠券不能被领取");
    }
    Long memberId = StpUtil.getLoginIdAsLong();
    // 2. 判断用户是否领取过
    CouponReceivedRecord couponReceivedRecord = couponReceivedRecordService.getByCouponIdAndMemberId(couponId, memberId);
    if (couponReceivedRecord != null) {
        return ResponseResult.buildError("你已经领取过了此优惠券");
    }
    // 3. 发放优惠券
    Boolean giveFlag = couponService.giveCouponToMember(StpUtil.getLoginIdAsLong(), couponId);
    return ResponseResult.buildByFlag(giveFlag);
}
Also used : Coupon(com.whoiszxl.entity.Coupon) MemberCoupon(com.whoiszxl.entity.MemberCoupon) CouponReceivedRecord(com.whoiszxl.entity.CouponReceivedRecord) SaCheckLogin(cn.dev33.satoken.annotation.SaCheckLogin) ApiOperation(io.swagger.annotations.ApiOperation)

Example 2 with CouponReceivedRecord

use of com.whoiszxl.entity.CouponReceivedRecord in project shopzz by whoiszxl.

the class PromotionFeignClientImpl method useCoupon.

@Override
public ResponseResult<Boolean> useCoupon(String receivedRecordId) {
    long memberId = StpUtil.getLoginIdAsLong();
    CouponReceivedRecord receivedRecord = couponReceivedRecordService.getById(receivedRecordId);
    if (receivedRecord.getMemberId() != memberId || CouponConstants.UseStatus.USED.equals(receivedRecord.getIsUsed())) {
        return ResponseResult.buildError("优惠券不可用");
    }
    receivedRecord.setIsUsed(CouponConstants.UseStatus.USED);
    receivedRecord.setUsedTime(new Date());
    boolean updateFlag = couponReceivedRecordService.updateById(receivedRecord);
    return ResponseResult.buildByFlag(updateFlag);
}
Also used : CouponReceivedRecord(com.whoiszxl.entity.CouponReceivedRecord) Date(java.util.Date)

Example 3 with CouponReceivedRecord

use of com.whoiszxl.entity.CouponReceivedRecord in project shopzz by whoiszxl.

the class CouponServiceImpl method giveCouponToMember.

@Override
public Boolean giveCouponToMember(Long memberId, Long couponId) {
    CouponReceivedRecord receivedRecord = new CouponReceivedRecord();
    receivedRecord.setId(idWorker.nextId());
    receivedRecord.setCouponId(couponId);
    receivedRecord.setMemberId(memberId);
    receivedRecord.setIsUsed(0);
    receivedRecord.setUsedTime(null);
    return couponReceivedRecordService.save(receivedRecord);
}
Also used : CouponReceivedRecord(com.whoiszxl.entity.CouponReceivedRecord)

Aggregations

CouponReceivedRecord (com.whoiszxl.entity.CouponReceivedRecord)3 SaCheckLogin (cn.dev33.satoken.annotation.SaCheckLogin)1 Coupon (com.whoiszxl.entity.Coupon)1 MemberCoupon (com.whoiszxl.entity.MemberCoupon)1 ApiOperation (io.swagger.annotations.ApiOperation)1 Date (java.util.Date)1