From 4b759541dfa1de220f176b5688e0e46b3414e388 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期一, 18 九月 2023 18:08:28 +0800
Subject: [PATCH] bug

---
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java |   55 ++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 34 insertions(+), 21 deletions(-)

diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java
index a291caa..eb96ac3 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java
@@ -15,6 +15,7 @@
 import com.ruoyi.system.api.domain.dto.MerBaseDto;
 import com.ruoyi.system.api.domain.dto.MgtBaseBathDto;
 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.vo.AppMemberCouponVo;
 import com.ruoyi.system.api.domain.vo.MerMemberCouponVo;
@@ -180,13 +181,12 @@
      * @return  List<AppMemberCouponPageVo>
      */
     @Override
-    public List<AppMemberCouponPageVo> pageAppUserGetCoupon(Page page, AppMemberCouponPageDto appMemberCouponPageDto){
+    public List<AppMemberCouponPageVo> pageAppUserGetCoupon(Page page, AppMemberCouponPageDto appMemberCouponPageDto, Member member){
         List<AppMemberCouponPageVo> memberCouponPageVoList = memberCouponMapper.pageAppUserGetCoupon(page, appMemberCouponPageDto);
         if(!memberCouponPageVoList.isEmpty()){
             String relGoodsIds;
-            List<Goods> goodsList;
-            List<String> goodsLimitList = null;
             HashSet<Long> shopIdSet = new HashSet<>();
+            HashSet<Long> goodsIdSet = new HashSet<>();
             for(AppMemberCouponPageVo appGetAbleCouponPageVo : memberCouponPageVoList){
                 if(appGetAbleCouponPageVo.getShopId()!=null){
                     shopIdSet.add(appGetAbleCouponPageVo.getShopId());
@@ -194,33 +194,45 @@
                 if(appGetAbleCouponPageVo.getCouponType()==4){
                     appGetAbleCouponPageVo.setVerifyCode("2-"+appGetAbleCouponPageVo.getMemberCouponId());
                 }
+                if(StringUtils.isNotBlank(appGetAbleCouponPageVo.getRelGoodsIds())&&!appGetAbleCouponPageVo.getRelGoodsIds().contains(",")){
+                    goodsIdSet.add(Long.valueOf(appGetAbleCouponPageVo.getRelGoodsIds()));
+                }
             }
+            //获取关联商户和商品信息并转换为Map
             String shopJoinedString = String.join(",", shopIdSet.stream().map(Object::toString).collect(Collectors.toList()));
+            String goodsJoinedString = null;
+            if(goodsIdSet!=null&&!goodsIdSet.isEmpty()){
+                goodsJoinedString = String.join(",", goodsIdSet.stream().map(Object::toString).collect(Collectors.toList()));
+            }
             MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
             mgtBaseBathDto.setIds(shopJoinedString);
             List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(mgtBaseBathDto).getData();
             Map<Long, MgtSimpleShopVo> shopMap = simpleShopVoList.stream()
                     .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity()));
+            Map<String, Goods> goodsMap = null;
+            if(goodsJoinedString!=null){
+                List<Goods> goodsList = remoteGoodsService.listGoodsByGoodsId(goodsJoinedString).getData();
+                goodsMap = goodsList.stream()
+                        .collect(Collectors.toMap(Goods::getGoodsId, Function.identity()));
+            }
+            //处理返回信息
+            String shopLimit = "全场通用";
+            String goodsLimit = null;
             for(AppMemberCouponPageVo appGetAbleCouponPageVo : memberCouponPageVoList){
-                relGoodsIds = appGetAbleCouponPageVo.getRelGoodsIds();
-                if(StringUtils.isNotBlank(relGoodsIds)){
-                    goodsList = remoteGoodsService.listGoodsByGoodsId(relGoodsIds).getData();
-                    if(goodsList!=null&&!goodsList.isEmpty()){
-                        goodsLimitList = goodsList.stream().map(goods -> {
-                            String goodsName = goods.getGoodsName();
-                            goodsName = "限制" + goodsName + "适用";
-                            return goodsName;
-                        }).collect(Collectors.toList());
-                    }
-                }else{
-                    goodsLimitList = new ArrayList<>();
-                    if(appGetAbleCouponPageVo.getShopId()!=null){
-                        goodsLimitList.add(shopMap.get(appGetAbleCouponPageVo.getShopId()).getShopName()+"通用");
-                    }else{
-                        goodsLimitList.add("全场通用");
+                //商户限制
+                if(appGetAbleCouponPageVo.getShopId()!=null){
+                    if(!member.getRelationShopId().equals(appGetAbleCouponPageVo.getShopId())){
+                        shopLimit = shopMap.get(appGetAbleCouponPageVo.getShopId()).getShopName()+"可用";
                     }
                 }
-                appGetAbleCouponPageVo.setGoodsLimitList(goodsLimitList);
+                appGetAbleCouponPageVo.setShopLimit(shopLimit);
+                //商品限制
+                relGoodsIds = appGetAbleCouponPageVo.getRelGoodsIds();
+                if(StringUtils.isNotBlank(relGoodsIds)&&!relGoodsIds.contains(",")){
+                    goodsLimit = goodsMap.get(relGoodsIds).getGoodsName();
+                }
+                appGetAbleCouponPageVo.setGoodsLimit(goodsLimit);
+                //核销商店
                 if(appGetAbleCouponPageVo.getShopId()!=null){
                     appGetAbleCouponPageVo.setVerifyShopName(shopMap.get(appGetAbleCouponPageVo.getShopId()).getShopName());
                 }
@@ -291,7 +303,7 @@
             Iterator<MerMemberCouponVo> iterator = merMemberCouponVoList.iterator();
             while (iterator.hasNext()) {
                 MerMemberCouponVo couponVo = iterator.next();
-                log.debug("couponVo"+couponVo.toString());
+                //处理已选择优惠券过滤
                 if(checkSelect){
                     if (selectCouponList.contains(couponVo.getMemberCouponId()) && selectCouponMap.containsKey(couponVo.getMemberCouponId())) {
                         String goodsId = selectCouponMap.get(couponVo.getMemberCouponId());
@@ -301,6 +313,7 @@
                         }
                     }
                 }
+                //处理满减卷门槛过滤
                 if(merGoodsCouponListDto.getBuyNum()!=null&&merGoodsCouponListDto.getSalesPrice()!=null){
                     if(couponVo.getCouponType()==1){
                         BigDecimal goodsMoney = merGoodsCouponListDto.getSalesPrice().multiply(new BigDecimal(merGoodsCouponListDto.getBuyNum().toString()));

--
Gitblit v1.7.1