| | |
| | | List<CouponRecordDO> couponUsageDOList = couponTemplateCustomerDOList.stream().map(pointCustomRe -> { |
| | | |
| | | CouponRecordDO couponRecordDO = new CouponRecordDO(); |
| | | |
| | | couponRecordDO.setId(IdUtil.simpleUUID()); |
| | | couponRecordDO.setCouponId(pointCustomRe.getCouponId()); |
| | | couponRecordDO.setCustomerId(pointCustomRe.getCustomId()); |
| | |
| | | couponRecordDO.setCouponDiscountType(couponTemplateDO.getCouponDiscountType()); |
| | | couponRecordDO.setGetUserType(couponTemplateDO.getGetUserType()); |
| | | couponRecordDO.setPoint(couponTemplateDO.getPoint()); |
| | | couponRecordDO.setMemberId(couponRecordDO.getMemberId()); |
| | | couponRecordDO.setMemberId(couponTemplateDO.getMemberId()); |
| | | couponRecordDO.setImageUrl(couponTemplateDO.getImageUrl()); |
| | | |
| | | // 创建相关信息 |
| | | couponRecordDO.create(SecurityUtils.getUserId()); |
| | |
| | | couponRecordService.saveBatch(couponUsageDOList); |
| | | } |
| | | } |
| | | |
| | | // 如果是活动优惠券且领取渠道是Home类型的,那么只能设置当前优惠券为激活状态,其他优惠券是激活状态的设置为下架状态 |
| | | if (StringUtils.isNotBlank(couponTemplateDO.getCategory()) && couponTemplateDO.getCategory().equals(CouponCategoryEnum.ACTIVITY.getStatus()) |
| | | && StringUtils.isNotBlank(couponTemplateDO.getGetType()) && couponTemplateDO.getGetType().equals(CouponGetTypeEnum.HOME.getType()) |
| | | ) { |
| | | |
| | | couponTemplateMapperCustom.expireHomeActivityCouponTemplate(); |
| | | } |
| | | |
| | | return baseMapper.updateById(couponTemplateDO) > 0; |
| | | } |
| | | |
| | |
| | | if(couponTemplateDO==null){ |
| | | throw new ValidationException("优惠券不存在"); |
| | | } |
| | | |
| | | if(couponTemplateDO.getCouponAmount()<=0 ){ |
| | | throw new ValidationException("优惠券已兑换完"); |
| | | } |
| | | CustomerPoint cp = customerPointMapper.selectOne(new LambdaQueryWrapper<CustomerPoint>() |
| | | .eq(CustomerPoint::getUserId, SecurityUtils.getUserId())); |
| | | if(cp == null || (cp.getTotalPoint()-cp.getUsedPoint()-cp.getExpiredPoint()- cp.getExpiredPoint()) < couponTemplateDO.getPoint() * dto.getNum()){ |
| | |
| | | recordDTO.setCustomerId(customer.getId()); |
| | | couponRecordService.createCouponRecord(recordDTO); |
| | | |
| | | // //更新优惠券数量 |
| | | // couponTemplateDO.setCouponAmount(couponTemplateDO.getCouponAmount()-dto.getNum()); |
| | | // couponTemplateService.updateById(couponTemplateDO); |
| | | |
| | | //更新积分汇总 |
| | | cp.setUsedPoint(cp.getUsedPoint()+couponTemplateDO.getPoint()); |
| | | customerPointMapper.updateById(cp); |
| | |
| | | detail.setRemarks(couponTemplateDO.getCouponName()); |
| | | detail.create(SecurityUtils.getUserId()); |
| | | customerPointDetailMapper.insert(detail); |
| | | }catch (Exception e){ |
| | | throw new ValidationException("兑换失败"); |
| | | }finally { |
| | | lockService.releaseObjectLock(key,""); |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | public CouponTemplateVO getHomeActivityEffectAlert(QueryActivityEffectCouponDTO dto) { |
| | | |
| | | // 存在用户是空的情况 |
| | | final CouponTemplateVO homeActivityEffectAlert = couponTemplateMapperCustom.getHomeActivityEffectAlert(dto); |
| | | if(null!=homeActivityEffectAlert ){ |
| | | if(StringUtils.isNotBlank(SecurityUtils.getUserId()) ){ |
| | | // 查看当前已经领取了几张 |
| | | final Integer getCnt = couponRecordService.getUserGainCouponRecordAmountByUserId(homeActivityEffectAlert.getId(), SecurityUtils.getUserId()); |
| | | // 如果当前领取的数量小于限制领取的数量的时候,可以再次领取 |
| | | if(null!=homeActivityEffectAlert.getGetLimit() && null!=getCnt |
| | | && homeActivityEffectAlert.getGetLimit().compareTo(getCnt)>0){ |
| | | return homeActivityEffectAlert; |
| | | } |
| | | }else{ |
| | | return homeActivityEffectAlert; |
| | | } |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public List<CouponTemplateVO> getActivityEffectList(QueryActivityEffectCouponDTO dto) { |
| | | |
| | | return couponTemplateMapperCustom.getActivityEffectList(dto); |