From 65ece4e9e659ba7d0be699a64a4ca016d37a637b Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期三, 15 一月 2025 14:43:14 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/qijisheng

---
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/RefundPass.java                       |    3 +
 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AgentApplicationMapper.xml            |    2 
 ruoyi-service/ruoyi-account/src/test/java/com/ruoyi/order/account/RuoYiAccountApplicationTests.java |   55 ++++++++++++++++++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java          |    9 ++
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java                       |    3 +
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/RefundPassController.java        |    6 ++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java       |   43 +++++++++++---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java          |    8 +-
 8 files changed, 113 insertions(+), 16 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/RefundPass.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/RefundPass.java
index 93c4562..f5a1336 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/RefundPass.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/RefundPass.java
@@ -98,4 +98,7 @@
     @ApiModelProperty(value = "第三方快递结果")
     @TableField("express_result")
     private String expressResult;
+    
+    @ApiModelProperty("最新快递信息")
+    private String express;
 }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java
index ad189f8..764513a 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java
@@ -91,5 +91,8 @@
 
     @ApiModelProperty("核销码BASE64")
     private String writeOffCode;
+    
+    @ApiModelProperty("最新快递信息")
+    private String express;
 
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
index f6d33b5..834ecc6 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
@@ -369,13 +369,19 @@
                 user.setShopName(shop.getName());
             }
         }
-        Long count1 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 1).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
-        Long count2 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 2).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
-        Long count3 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 3).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
-        Long count4 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 4).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
-        Long count5 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 5).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
-        Long count6 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 6).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
-        Long count7 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 7).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
+        List<AppUser> appUserList = appUserService.list(new LambdaQueryWrapper<AppUser>()
+                .ne(AppUser::getStatus, 3)
+                .eq(AppUser::getDelFlag, 0));
+        ArrayList<Long> userIds = new ArrayList<>();
+        userIds.add(userId);
+        getUserAncestorList(userIds, appUserList);
+//        Long count1 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 1).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
+//        Long count2 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 2).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
+//        Long count3 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 3).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
+//        Long count4 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 4).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
+//        Long count5 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 5).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
+//        Long count6 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 6).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
+//        Long count7 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 7).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
         user.setCount1(count1);
         user.setCount2(count2);
         user.setCount3(count3);
@@ -392,8 +398,27 @@
             user.setIsSign(0);
         }
         return R.ok(user);
-
-
+    }
+    private Long count1 = 0L;
+    private Long count2 = 0L;
+    private Long count3 = 0L;
+    private Long count4 = 0L;
+    private Long count5 = 0L;
+    private Long count6 = 0L;
+    private Long count7 = 0L;
+    public void getUserAncestorList(List<Long> userIds, List<AppUser> list) {
+        List<AppUser> children = list.stream().filter(u -> userIds.contains(u.getInviteUserId()) || userIds.contains(u.getTopInviteId())).collect(Collectors.toList());
+        if(!CollectionUtils.isEmpty(children)){
+            count1 = count1 + children.stream().filter(e->e.getVipId() == 1).count();
+            count2 = count2 + children.stream().filter(e->e.getVipId() == 2).count();
+            count3 = count3 + children.stream().filter(e->e.getVipId() == 3).count();
+            count4 = count4 + children.stream().filter(e->e.getVipId() == 4).count();
+            count5 = count5 + children.stream().filter(e->e.getVipId() == 5).count();
+            count6 = count6 + children.stream().filter(e->e.getVipId() == 6).count();
+            count7 = count7 + children.stream().filter(e->e.getVipId() == 7).count();
+            List<Long> userIdList = children.stream().map(AppUser::getId).collect(Collectors.toList());
+            getUserAncestorList(userIdList, children);
+        }
     }
 
     @GetMapping("/index/change")
diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AgentApplicationMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AgentApplicationMapper.xml
index 9c925bc..944e074 100644
--- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AgentApplicationMapper.xml
+++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AgentApplicationMapper.xml
@@ -39,7 +39,7 @@
                 and t2.phone like concat('%',#{agentQuery.phone},'%')
             </if>
             <if test="agentQuery.vipId !=null">
-                and t1.application_vip_id = #{agentQuery.vipId}
+                and t2.vip_id = #{agentQuery.vipId}
             </if>
             <if test="agentQuery.status !=null">
                 and t1.status = #{agentQuery.status}
diff --git a/ruoyi-service/ruoyi-account/src/test/java/com/ruoyi/order/account/RuoYiAccountApplicationTests.java b/ruoyi-service/ruoyi-account/src/test/java/com/ruoyi/order/account/RuoYiAccountApplicationTests.java
index 5d28046..acaa797 100644
--- a/ruoyi-service/ruoyi-account/src/test/java/com/ruoyi/order/account/RuoYiAccountApplicationTests.java
+++ b/ruoyi-service/ruoyi-account/src/test/java/com/ruoyi/order/account/RuoYiAccountApplicationTests.java
@@ -1,8 +1,61 @@
-package com.ruoyi.account;
+package com.ruoyi.order.account;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.account.RuoYiAccountApplication;
+import com.ruoyi.account.api.model.AppUser;
+import com.ruoyi.account.service.AppUserService;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
 
 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = RuoYiAccountApplication.class)
 public class RuoYiAccountApplicationTests {
 
+    @Autowired
+    private AppUserService appUserService;
+
+    @Test
+    public void contextLoads() {
+        List<AppUser> appUserList = appUserService.list(new LambdaQueryWrapper<AppUser>()
+                .ne(AppUser::getStatus, 3));
+        ArrayList<Long> userIds = new ArrayList<>();
+        userIds.add(1879046499735789569L);
+        getUserAncestorList(userIds, appUserList);
+        System.err.println(count1);
+        System.err.println(count2);
+        System.err.println(count3);
+        System.err.println(count4);
+        System.err.println(count5);
+        System.err.println(count6);
+        System.err.println(count7);
+    }
+
+    private Long count1 = 0L;
+    private Long count2 = 0L;
+    private Long count3 = 0L;
+    private Long count4 = 0L;
+    private Long count5 = 0L;
+    private Long count6 = 0L;
+    private Long count7 = 0L;
+    public void getUserAncestorList(List<Long> userIds, List<AppUser> list) {
+        List<AppUser> children = list.stream().filter(u -> userIds.contains(u.getInviteUserId()) || userIds.contains(u.getTopInviteId())).collect(Collectors.toList());
+        if(!CollectionUtils.isEmpty(children)){
+            count1 = count1 + children.stream().filter(e->e.getVipId() == 1).count();
+            count2 = count2 + children.stream().filter(e->e.getVipId() == 2).count();
+            count3 = count3 + children.stream().filter(e->e.getVipId() == 3).count();
+            count4 = count4 + children.stream().filter(e->e.getVipId() == 4).count();
+            count5 = count5 + children.stream().filter(e->e.getVipId() == 5).count();
+            count6 = count6 + children.stream().filter(e->e.getVipId() == 6).count();
+            count7 = count7 + children.stream().filter(e->e.getVipId() == 7).count();
+            List<Long> userIdList = children.stream().map(AppUser::getId).collect(Collectors.toList());
+            getUserAncestorList(userIdList, children);
+        }
+    }
+
+
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/RefundPassController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/RefundPassController.java
index 1db9963..7078489 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/RefundPassController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/RefundPassController.java
@@ -17,6 +17,7 @@
 import com.ruoyi.order.service.RefundPassService;
 import com.ruoyi.order.util.ExpressDeliveryUtil;
 import com.ruoyi.order.util.vo.MapTrackKD100Vo;
+import com.ruoyi.order.util.vo.QueryKD100ListVo;
 import com.ruoyi.order.vo.*;
 import com.ruoyi.other.api.domain.SystemConfig;
 import com.ruoyi.other.api.feignClient.SystemConfigClient;
@@ -88,6 +89,11 @@
 		}
 		one.setIdStr(one.getId().toString());
 		one.setAddressJson(order.getAddressJson());
+		if(StringUtils.isNotEmpty(one.getExpressResult())){
+			MapTrackKD100Vo mapTrackKD100Vo = JSON.parseObject(one.getExpressResult(), MapTrackKD100Vo.class);
+			List<QueryKD100ListVo> data = mapTrackKD100Vo.getData();
+			one.setExpress(data.size() > 0 ? data.get(0).getContext() : "");
+		}
 		return R.ok(one);
 	}
 	
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
index 65a4cd2..38932d5 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -30,6 +30,7 @@
 import com.ruoyi.order.util.payment.model.RefundCallbackResult;
 import com.ruoyi.order.util.payment.model.RefundResult;
 import com.ruoyi.order.util.vo.MapTrackKD100Vo;
+import com.ruoyi.order.util.vo.QueryKD100ListVo;
 import com.ruoyi.order.util.vo.QueryKD100Vo;
 import com.ruoyi.order.vo.*;
 import com.ruoyi.other.api.domain.*;
@@ -201,6 +202,12 @@
         orderDetailVO.setLongitude(shop.getLongitude());
         orderDetailVO.setLatitude(shop.getLatitude());
         orderDetailVO.setShopId(shop.getId());
+        if(StringUtils.isNotEmpty(order.getExpressResult())){
+            MapTrackKD100Vo mapTrackKD100Vo = JSON.parseObject(order.getExpressResult(), MapTrackKD100Vo.class);
+            List<QueryKD100ListVo> data = mapTrackKD100Vo.getData();
+            orderDetailVO.setExpress(data.size() > 0 ? data.get(0).getContext() : "");
+        }
+        
         if(order.getOrderType() == 1){
             List<TechnicianSubscribe> data = technicianSubscribeClient.getTechnicianSubscribeList(order.getId()).getData();
             if(data.size() > 0){
@@ -426,7 +433,7 @@
         if(Arrays.asList(5, 6, 7).contains(order.getOrderStatus())){
             return R.fail("无效的操作");
         }
-        if(LocalDateTime.now().isAfter(order.getAfterSaleTime())){
+        if(null != order.getAfterSaleTime() && LocalDateTime.now().isAfter(order.getAfterSaleTime())){
             return R.fail("订单取消失败");
         }
         order.setOrderStatus(5);
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java
index 2f33fca..57eb8ab 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java
@@ -146,13 +146,13 @@
                     @Override
                     public int compare(GoodsVO o1, GoodsVO o2) {
                         if(null != o1.getIntegral() && null != o2.getIntegral()){
-                            return o1.getIntegral().compareTo(o2.getIntegral()) * (StringUtils.isNotEmpty(search.getIsAsc()) ? -1 : 1);
+                            return o1.getIntegral().compareTo(o2.getIntegral()) * ("desc".equals(search.getIsAsc()) ? -1 : 1);
                         }
                         if(null == o1.getIntegral() && null != o2.getIntegral()){
-                            return Integer.valueOf(0).compareTo(o2.getIntegral()) * (StringUtils.isNotEmpty(search.getIsAsc()) ? -1 : 1);
+                            return Integer.valueOf(0).compareTo(o2.getIntegral()) * ("desc".equals(search.getIsAsc()) ? -1 : 1);
                         }
                         if(null != o1.getIntegral() && null == o2.getIntegral()){
-                            return o1.getIntegral().compareTo(Integer.valueOf(0)) * (StringUtils.isNotEmpty(search.getIsAsc()) ? -1 : 1);
+                            return o1.getIntegral().compareTo(Integer.valueOf(0)) * ("desc".equals(search.getIsAsc()) ? -1 : 1);
                         }
                         return 0;
                     }
@@ -162,7 +162,7 @@
                 list.sort(new Comparator<GoodsVO>() {
                     @Override
                     public int compare(GoodsVO o1, GoodsVO o2) {
-                        return o1.getSaleNum().compareTo(o2.getSaleNum()) * (StringUtils.isNotEmpty(search.getIsAsc()) ? -1 : 1);
+                        return o1.getSaleNum().compareTo(o2.getSaleNum()) * ("desc".equals(search.getIsAsc()) ? -1 : 1);
                     }
                 });
             }

--
Gitblit v1.7.1