From e49f212c5ae9c5382386ddc0d34e346799720116 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 23 九月 2024 15:25:33 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java |  122 +++++++++++++++++++++++-----------------
 1 files changed, 69 insertions(+), 53 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
index a4e598f..2d4ade6 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -16,10 +16,15 @@
 import com.github.binarywang.wxpay.service.WxPayService;
 import com.google.common.collect.Lists;
 import com.google.gson.Gson;
+import com.ruoyi.common.core.constant.CacheConstants;
+import com.ruoyi.common.core.constant.Constants;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.enums.UserStatus;
 import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.text.Convert;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.utils.ip.IpUtils;
 import com.ruoyi.common.core.utils.uuid.IdUtils;
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.common.security.utils.CodeFactoryUtil;
@@ -60,6 +65,8 @@
 import com.ruoyi.system.api.domain.poji.shop.Shop;
 import com.ruoyi.system.api.domain.poji.sys.SysUser;
 import com.ruoyi.system.api.domain.vo.*;
+import com.ruoyi.system.api.model.QwH5LoginVo;
+import com.ruoyi.system.api.model.QwUserDetailDto;
 import com.ruoyi.system.api.service.*;
 import io.seata.spring.annotation.GlobalTransactional;
 import lombok.extern.log4j.Log4j2;
@@ -156,6 +163,7 @@
 
     @Value("${wx.pay.callbackPath}")
     private String callbackPath;
+    
 
 
     /**
@@ -359,58 +367,6 @@
                 sureOrderGoodsVo.setAppMemberCouponVoList(appGoodsMemberCouponVoList);
             }
         }
-        /*if (appMemberCouponVoList != null && !appMemberCouponVoList.isEmpty()) {
-            // 获取商品关联优惠券
-            appGoodsMemberCouponVoList = new ArrayList<>();
-            for(AppSureOrderGoodsVo sureOrderGoodsVo : appSureOrderGoodsVoList){
-                for (AppMemberCouponVo entity : appMemberCouponVoList) {
-                    if (StringUtils.isBlank(entity.getRelGoodsIds())) {
-                        if (entity.getCouponType() == 1 && entity.getMoneyThreshold() != null && entity.getDiscountMoney() != null) {
-                            moneyThreshold = entity.getMoneyThreshold();
-                            if (sureOrderGoodsVo.getGoodsTotalPrice().compareTo(moneyThreshold) >= 0) {
-                                if(userCouponIdSet==null||!userCouponIdSet.contains(entity.getMemberCouponId())){
-                                    appGoodsMemberCouponVoList.add(entity);
-                                }else{
-                                    if(sureOrderGoodsVo.getMemberCouponId()!=null&&sureOrderGoodsVo.getMemberCouponId().equals(entity.getMemberCouponId())){
-                                        appGoodsMemberCouponVoList.add(entity);
-                                    }
-                                }
-                            }
-                        }else{
-                            if(userCouponIdSet==null||!userCouponIdSet.contains(entity.getMemberCouponId())){
-                                appGoodsMemberCouponVoList.add(entity);
-                            }else{
-                                if(sureOrderGoodsVo.getMemberCouponId()!=null&&sureOrderGoodsVo.getMemberCouponId().equals(entity.getMemberCouponId())){
-                                    appGoodsMemberCouponVoList.add(entity);
-                                }
-                            }
-                        }
-                    } else if (entity.getRelGoodsIds().contains(sureOrderGoodsVo.getGoodsId())) {
-                        if (entity.getCouponType() == 1 && entity.getMoneyThreshold() != null && entity.getDiscountMoney() != null) {
-                            moneyThreshold = entity.getMoneyThreshold();
-                            if (sureOrderGoodsVo.getGoodsTotalPrice().compareTo(moneyThreshold) >= 0) {
-                                if(userCouponIdSet==null||!userCouponIdSet.contains(entity.getMemberCouponId())){
-                                    appGoodsMemberCouponVoList.add(entity);
-                                }else{
-                                    if(sureOrderGoodsVo.getMemberCouponId()!=null&&sureOrderGoodsVo.getMemberCouponId().equals(entity.getMemberCouponId())){
-                                        appGoodsMemberCouponVoList.add(entity);
-                                    }
-                                }
-                            }
-                        }else{
-                            if(userCouponIdSet==null||!userCouponIdSet.contains(entity.getMemberCouponId())){
-                                appGoodsMemberCouponVoList.add(entity);
-                            }else{
-                                if(sureOrderGoodsVo.getMemberCouponId()!=null&&sureOrderGoodsVo.getMemberCouponId().equals(entity.getMemberCouponId())){
-                                    appGoodsMemberCouponVoList.add(entity);
-                                }
-                            }
-                        }
-                    }
-                }
-                sureOrderGoodsVo.setAppMemberCouponVoList(appGoodsMemberCouponVoList);
-            }
-        }*/
         // 设置订单相关金额
         appSureOrderVo.setOrderGoodsMoney(orderGoodsMoney);
         appSureOrderVo.setCouponDiscount(couponDiscount);
@@ -640,6 +596,9 @@
             // 如果使用了优惠券,计算优惠后的价格
             if (memberCouponId != null) {
                 appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId.toString());
+                if(null == appMemberCouponVo){
+                    throw new ServiceException("优惠券已使用");
+                }
                 // 如果优惠券适用于该商品
                 if (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId)) {
                     couponType = appMemberCouponVo.getCouponType();
@@ -1616,7 +1575,64 @@
      */
     @Override
     public MerHomeShopTotalVo getMerHomeTotal(MerHomeShopTotalVo merHomeShopTotalVo) {
-        Long shopId = merHomeShopTotalVo.getShopId();
+        // 查询用户信息
+        QwUserDetailDto qwUserDetail = new QwUserDetailDto();
+        Long userId = SecurityUtils.getUserId();
+        qwUserDetail.setUserid(userId.toString());
+        // 查询用户信息
+        R<QwH5LoginVo> userResult = remoteShopService.qwH5Login(qwUserDetail);
+        if(userResult==null){
+            throw new ServiceException(AppErrorConstant.USER_NO_SHOP);
+        }
+        if (R.FAIL == userResult.getCode())
+        {
+            throw new ServiceException(userResult.getMsg());
+        }
+        if (401 == userResult.getCode())
+        {
+            throw new ServiceException("商户已被冻结,请联系管理员",401);
+        }
+        QwH5LoginVo userInfo = userResult.getData();
+        SysUser user = userInfo.getSysUser();
+        String username = user.getUserName();
+        // IP黑名单校验
+        String blackStr = Convert.toStr(redisService.getCacheObject(CacheConstants.SYS_LOGIN_BLACKIPLIST));
+        if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr()))
+        {
+            throw new ServiceException("很遗憾,访问IP已被列入系统黑名单");
+        }
+        if (UserStatus.DELETED.getCode().equals(user.getDelFlag()))
+        {
+            throw new ServiceException("对不起,您的账号:" + username + " 已被删除");
+        }
+        if (UserStatus.DISABLE.getCode().equals(user.getStatus()))
+        {
+            throw new ServiceException("对不起,您的账号:" + username + " 已停用");
+        }
+        // 查询用户商户
+        R<ShopRelUserVo> shopResult = remoteShopService.getShopByUserId(user.getUserId());
+        if (R.FAIL == userResult.getCode()) {
+            throw new ServiceException(userResult.getMsg());
+        }
+        ShopRelUserVo shopInfo = shopResult.getData();
+        if(null == shopInfo){
+            throw new ServiceException("未查询到商户信息");
+        }
+        Long shopId = shopInfo.getShopId();
+        Shop shop = remoteShopService.getShop(shopId).getData();
+        if(-1 == shop.getShopStatus()){
+            throw new ServiceException("对应商户已删除,请联系管理员");
+        }
+        if(0 == shop.getShopStatus()){
+            throw new ServiceException("对应商户已冻结,请联系管理员");
+        }
+        if(2 == shop.getShopStatus()){
+            throw new ServiceException("对应商户已终止合作,请联系管理员");
+        }
+    
+    
+        shopId = merHomeShopTotalVo.getShopId();
+        
         //获取今日到店
         Integer todayShop = userServiceRecordService.countShopServicePerson(shopId);
         //获取待处理订单和营业额

--
Gitblit v1.7.1