From 3b09eb084576dd6be9a7b342edf345293bcc6459 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期二, 25 七月 2023 09:57:27 +0800 Subject: [PATCH] bug --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java | 93 +++++++++++++++++++++++++--------------------- 1 files changed, 50 insertions(+), 43 deletions(-) diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java index 2b2e94c..4082b34 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java @@ -21,6 +21,7 @@ import com.ruoyi.system.api.domain.dto.*; import com.ruoyi.system.api.domain.poji.config.DelayTask; import com.ruoyi.system.api.domain.poji.goods.Goods; +import com.ruoyi.system.api.domain.poji.member.Member; import com.ruoyi.system.api.domain.poji.member.MemberCoupon; import com.ruoyi.system.api.domain.poji.shop.Shop; import com.ruoyi.system.api.domain.vo.MerGoodsPriceListVo; @@ -36,6 +37,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.StringJoiner; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -187,7 +189,7 @@ } } //判断优惠券是否指定发放用户 - if(coupon.getSendType()==5&&coupon.getRelationType()==1){ + if(coupon.getSendTarget()==5&&coupon.getRelationType()==1){ //获取优惠券发放用户 List<MgtCouponMemberListVo> relUserList = couponRelUserService.listCouponMemberVo(coupon.getCouponId()); mgtCouponGetVo.setRelUserList(relUserList); @@ -207,10 +209,6 @@ MerCouponGetVo merCouponGetVo = new MerCouponGetVo(); Coupon coupon = this.getById(couponId); BeanUtils.copyProperties(coupon, merCouponGetVo); - if(merCouponGetVo.getSendType()>1){ - merCouponGetVo.setSendType(2); - merCouponGetVo.setSendTarget(merCouponGetVo.getSendType()); - } //判断优惠券是否为指定商品 if(coupon.getUseScope()==2){ String relGoodsIds = coupon.getRelGoodsIds(); @@ -223,7 +221,7 @@ } } //判断优惠券是否指定发放用户 - if(coupon.getSendType()==5&&coupon.getRelationType()==1){ + if(coupon.getSendTarget()==5&&coupon.getRelationType()==1){ //获取优惠券发放用户 List<MgtCouponMemberListVo> relUserList = couponRelUserService.listCouponMemberVo(coupon.getCouponId()); merCouponGetVo.setRelUserList(relUserList); @@ -274,6 +272,7 @@ coupon.setCouponType(mgtCouponEditDto.getCouponType()); coupon.setCouponName(mgtCouponEditDto.getCouponName()); coupon.setSendType(mgtCouponEditDto.getSendType()); + coupon.setSendTarget(mgtCouponEditDto.getSendTarget()); coupon.setSendTimeType(mgtCouponEditDto.getSendTimeType()); coupon.setSendTime(mgtCouponEditDto.getSendTime()); coupon.setMoneyThreshold(mgtCouponEditDto.getMoneyThreshold()); @@ -307,18 +306,21 @@ } //判断是否指定用户 List<Long> relUserIdList = null; - if(coupon.getSendType()==5&&coupon.getRelationType()==1&&!mgtCouponEditDto.getRelUserIdList().isEmpty()){ + if(coupon.getSendTarget()==2&&coupon.getSendTarget()==5&&coupon.getRelationType()==1&&!mgtCouponEditDto.getRelUserIdList().isEmpty()){ relUserIdList = mgtCouponEditDto.getRelUserIdList(); - List<CouponRelUser> couponRelUserList = relUserIdList.stream() - .map(str -> { - CouponRelUser couponRelUser = new CouponRelUser(); - couponRelUser.setDelFlag(0); - couponRelUser.setCouponId(coupon.getCouponId()); - couponRelUser.setUserId(str); - return couponRelUser; - }) - .collect(Collectors.toList()); + List<CouponRelUser> couponRelUserList = new ArrayList<>(); + CouponRelUser couponRelUser; + StringJoiner userIdSj = new StringJoiner(","); + for(Long userId : relUserIdList){ + couponRelUser = new CouponRelUser(); + couponRelUser.setDelFlag(0); + couponRelUser.setCouponId(coupon.getCouponId()); + couponRelUser.setUserId(userId); + couponRelUserList.add(couponRelUser); + userIdSj.add(userId.toString()); + } couponRelUserService.saveBatch(couponRelUserList); + coupon.setRelUserIds(userIdSj.toString()); } //处理优惠券发放 if(coupon.getSendTimeType()==1){ @@ -342,15 +344,15 @@ protected void sendCoupon(Coupon coupon, List<Long> relUserIdList){ //1.手动领取2.全部用户3.会员用户4非会员用户5自定义 Date nowTime = new Date(); - Integer sendType = coupon.getSendType(); + Integer sendTarget = coupon.getSendTarget(); List<Long> userIdList = new ArrayList<>(); Long shopId = null; - if(coupon.getCouponFrom()==2 && sendType==3){ + if(coupon.getCouponFrom()==2 && sendTarget==3){ shopId = coupon.getShopId(); } - if(sendType >= 2 && sendType <= 4){ - userIdList = memberService.listIdBySendType(sendType,shopId); - }else if(sendType == 5){ + if(sendTarget >= 2 && sendTarget <= 4){ + userIdList = memberService.listIdBySendType(sendTarget,shopId); + }else if(sendTarget == 5){ //关联类型1.用户管理筛选2.活动管理筛选 if(coupon.getRelationType()==2){ Integer relationActivityType = coupon.getRelationActivityType(); @@ -385,6 +387,7 @@ memberCoupon.setCouponStatus(coupon.getCouponStatus()); memberCoupon.setCouponName(coupon.getCouponName()); memberCoupon.setSendType(coupon.getSendType()); + memberCoupon.setSendTarget(coupon.getSendTarget()); memberCoupon.setSendTimeType(coupon.getSendTimeType()); memberCoupon.setSendTime(coupon.getSendTime()); memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold()); @@ -427,15 +430,15 @@ private void sendCouponNow(Coupon coupon, List<Long> relUserIdList){ //1.手动领取2.全部用户3.会员用户4非会员用户5自定义 Date nowTime = new Date(); - Integer sendType = coupon.getSendType(); + Integer sendTarget = coupon.getSendTarget(); List<Long> userIdList = new ArrayList<>(); Long shopId = null; - if(coupon.getCouponFrom()==2 && sendType==3){ + if(coupon.getCouponFrom()==2 && sendTarget==3){ shopId = coupon.getShopId(); } - if(sendType >= 2 && sendType <= 4){ - userIdList = memberService.listIdBySendType(sendType,shopId); - }else if(sendType == 5){ + if(sendTarget >= 2 && sendTarget <= 4){ + userIdList = memberService.listIdBySendType(sendTarget,shopId); + }else if(sendTarget == 5){ //关联类型1.用户管理筛选2.活动管理筛选 if(coupon.getRelationType()==2){ Integer relationActivityType = coupon.getRelationActivityType(); @@ -470,6 +473,7 @@ memberCoupon.setCouponStatus(coupon.getCouponStatus()); memberCoupon.setCouponName(coupon.getCouponName()); memberCoupon.setSendType(coupon.getSendType()); + memberCoupon.setSendTarget(coupon.getSendTarget()); memberCoupon.setSendTimeType(coupon.getSendTimeType()); memberCoupon.setSendTime(coupon.getSendTime()); memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold()); @@ -581,7 +585,7 @@ List<CouponRelUser> couponRelUserList; List<Long> userIdList = new ArrayList<>(); Coupon coupon = this.getById(couponId); - if(coupon.getSendType()==5&&coupon.getRelationType()==1){ + if(coupon.getSendTarget()==5&&coupon.getRelationType()==1){ couponRelUserList = couponRelUserService.list(new LambdaQueryWrapper<CouponRelUser>().eq(CouponRelUser::getDelFlag,0).eq(CouponRelUser::getCouponId,coupon.getCouponId())); if(couponRelUserList!=null&&!couponRelUserList.isEmpty()){ userIdList = couponRelUserList.stream() @@ -698,7 +702,7 @@ } } //判断优惠券是否指定发放用户 - if(coupon.getSendType()==5&&coupon.getRelationType()==1){ + if(coupon.getSendTarget()==5&&coupon.getRelationType()==1){ //获取优惠券发放用户 List<MgtCouponMemberListVo> relUserList = couponRelUserService.listCouponMemberVo(coupon.getCouponId()); mgtCouponAuditGetVo.setRelUserList(relUserList); @@ -901,9 +905,7 @@ coupon.setCouponType(merCouponEditDto.getCouponType()); coupon.setCouponName(merCouponEditDto.getCouponName()); coupon.setSendType(merCouponEditDto.getSendType()); - if(merCouponEditDto.getSendType()!=1){ - coupon.setSendType(merCouponEditDto.getSendTarget()); - } + coupon.setSendTarget(merCouponEditDto.getSendTarget()); coupon.setSendTimeType(merCouponEditDto.getSendTimeType()); coupon.setSendTime(merCouponEditDto.getSendTime()); coupon.setMoneyThreshold(merCouponEditDto.getMoneyThreshold()); @@ -935,18 +937,21 @@ } //判断是否指定用户 List<Long> relUserIdList = null; - if(coupon.getSendType()==5&&coupon.getRelationType()==1&&!merCouponEditDto.getRelUserIdList().isEmpty()){ + if(coupon.getSendTarget()==5&&coupon.getRelationType()==1&&!merCouponEditDto.getRelUserIdList().isEmpty()){ relUserIdList = merCouponEditDto.getRelUserIdList(); - List<CouponRelUser> couponRelUserList = relUserIdList.stream() - .map(str -> { - CouponRelUser couponRelUser = new CouponRelUser(); - couponRelUser.setDelFlag(0); - couponRelUser.setCouponId(coupon.getCouponId()); - couponRelUser.setUserId(str); - return couponRelUser; - }) - .collect(Collectors.toList()); + List<CouponRelUser> couponRelUserList = new ArrayList<>(); + CouponRelUser couponRelUser; + StringJoiner userIdSj = new StringJoiner(","); + for(Long userId : relUserIdList){ + couponRelUser = new CouponRelUser(); + couponRelUser.setDelFlag(0); + couponRelUser.setCouponId(coupon.getCouponId()); + couponRelUser.setUserId(userId); + couponRelUserList.add(couponRelUser); + userIdSj.add(userId.toString()); + } couponRelUserService.saveBatch(couponRelUserList); + coupon.setRelUserIds(userIdSj.toString()); } this.saveOrUpdate(coupon); } @@ -999,6 +1004,7 @@ memberCoupon.setCouponStatus(coupon.getCouponStatus()); memberCoupon.setCouponName(coupon.getCouponName()); memberCoupon.setSendType(coupon.getSendType()); + memberCoupon.setSendTarget(coupon.getSendTarget()); memberCoupon.setSendTimeType(coupon.getSendTimeType()); memberCoupon.setSendTime(coupon.getSendTime()); memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold()); @@ -1034,10 +1040,10 @@ * @return List<AppUnGetCouponPageVo> */ @Override - public List<AppGetAbleCouponPageVo> pageAppUserGetAbleCoupon(Page page, AppPageDto appPageDto, Long shopId){ + public List<AppGetAbleCouponPageVo> pageAppUserGetAbleCoupon(Page page, AppPageDto appPageDto, Member member){ //获取当前已领取完优惠券 List<String> unGetList = couponMapper.listUserUnGetCoupon(appPageDto.getUserId()); - List<AppGetAbleCouponPageVo> getAbleCouponPageVoList = couponMapper.getAbleCouponPageVoList(page, shopId, unGetList); + List<AppGetAbleCouponPageVo> getAbleCouponPageVoList = couponMapper.getAbleCouponPageVoList(page, member.getRelationShopId(),member.getUserId(),member.getBindingFlag(), unGetList); //处理商品限制 if(!getAbleCouponPageVoList.isEmpty()){ String relGoodsIds; @@ -1106,6 +1112,7 @@ memberCoupon.setCouponStatus(coupon.getCouponStatus()); memberCoupon.setCouponName(coupon.getCouponName()); memberCoupon.setSendType(coupon.getSendType()); + memberCoupon.setSendTarget(coupon.getSendTarget()); memberCoupon.setSendTimeType(coupon.getSendTimeType()); memberCoupon.setSendTime(coupon.getSendTime()); memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold()); -- Gitblit v1.7.1