|  |  | 
 |  |  |                 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 boolean expireActivityCouponTemplateAll() { | 
 |  |  |  | 
 |  |  |         return couponTemplateMapperCustom.expireActivityCouponTemplateAll()>0; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public List<CouponTemplateVO> getActivityEffectList(QueryActivityEffectCouponDTO dto) { | 
 |  |  |  | 
 |  |  |         return couponTemplateMapperCustom.getActivityEffectList(dto); |