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);
}
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);
}
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);
}
Aggregations