From 0449a6264819bce3869f47b9e5bd3729f158db54 Mon Sep 17 00:00:00 2001
From: luofl <1442745593@qq.com>
Date: 星期五, 14 三月 2025 16:05:24 +0800
Subject: [PATCH] 迭代版本:2.28

---
 ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml                                                   |   10 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java                 |   52 ++++--
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java             |    2 
 ruoyi-service/ruoyi-account/src/main/resources/bootstrap.yml                                                 |   12 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShareController.java                      |   30 ++-
 ruoyi-gateway/src/main/resources/bootstrap.yml                                                               |   41 ++++-
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/OrderClient.java                         |    8 +
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java                    |    8 +
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java            |    1 
 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml                            |    2 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java                       |    4 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java            |    3 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/payment/PaymentUtil.java                        |    2 
 ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml                                                   |   20 +-
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserCouponServiceImpl.java          |   11 +
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java                      |   10 +
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java                   |   37 ++++
 a.json                                                                                                       |   22 +-
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java                |   93 ++++++++++--
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/OrderClientFallbackFactory.java              |    5 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java |    2 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java             |    5 
 22 files changed, 274 insertions(+), 106 deletions(-)

diff --git a/a.json b/a.json
index 92807e7..d5c72b9 100644
--- a/a.json
+++ b/a.json
@@ -1,13 +1,17 @@
 {
-  "total": "总数",
-  "pageSize": "每页大小",
-  "pageNum": "页码",
-  "records": [
+  "access_token": "90_4PJ8b5aLJa2M7aCtoskALEzfoap1me291Jc3ogi18NGH0Ts-Tol7K3COLLvkQ1JLcouvew11ORqcHf6mH5LA2KSC08NxiDhsjRPKuRh14mpvQRHmeFvwr-wKWjkANLdACAUHF",
+  "order_key": {
+    "order_number_type": 1
+  },
+  "logistics_type": 1,
+  "delivery_mode": 1,
+  "shipping_list": [
     {
-      "item": "项目名称",
-      "time": "时间",
-      "amount": "变动金额",
-      "type": "加或减标记: 1 加 2 减"
+      "item_desc": "这是一个测试"
     }
-  ]
+  ],
+  "upload_time": "2022-12-15T13:29:35.120+08:00",
+  "payer": {
+    "openid": "ooOrs63KYDHcyhnUmTFpprHc6sb4"
+  }
 }
\ No newline at end of file
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/OrderClientFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/OrderClientFallbackFactory.java
index 683c4c5..315e863 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/OrderClientFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/OrderClientFallbackFactory.java
@@ -40,6 +40,11 @@
             }
 
             @Override
+            public R<List<Order>> getRedeemedOrdersByShop(Integer shopId) {
+                return R.fail("获取已核销的订单失败:" + cause.getMessage());
+            }
+
+            @Override
             public R<Order> getOrderById(Long id) {
                 return R.fail("根据id获取订单详情失败:" + cause.getMessage());
             }
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/OrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/OrderClient.java
index 93979ea..2aeda43 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/OrderClient.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/OrderClient.java
@@ -54,6 +54,14 @@
     @PostMapping("/order/getAppUserByShoppingShop")
     R<Set<Long>> getAppUserByShoppingShop(@RequestParam("shopId") Integer shopId);
 
+    /**
+     * 获取指定门店的核销订单
+     */
+    @GetMapping("/order/getRedeemedOrdersByShop")
+    R<List<Order>> getRedeemedOrdersByShop(@RequestParam("shopId") Integer shopId);
+
+
+
 
     /**
      * 根据id获取订单详情
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java
index 4a1faf4..cafd99d 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java
@@ -16,6 +16,7 @@
 
             @Override
             public R<SysUser> getSysUser(Long userId) {
+                System.out.println(cause.getMessage());
                 return R.fail("获取用户失败:" + cause.getMessage());
             }
 
diff --git a/ruoyi-gateway/src/main/resources/bootstrap.yml b/ruoyi-gateway/src/main/resources/bootstrap.yml
index 49ad83e..b719769 100644
--- a/ruoyi-gateway/src/main/resources/bootstrap.yml
+++ b/ruoyi-gateway/src/main/resources/bootstrap.yml
@@ -23,16 +23,16 @@
     nacos:
       discovery:
         # 服务注册地址
-        server-addr: 192.168.110.111/:8848
+        server-addr: 127.0.0.1:8848
         service: ruoyi-gateway
         group: DEFAULT_GROUP
-        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
+        namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9
         username:
         password:
       config:
         # 配置中心地址
-        server-addr: 192.168.110.111/:8848
-        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
+        server-addr: 127.0.0.1:8848
+        namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9
         username:
         password:
         group: DEFAULT_GROUP
@@ -52,24 +52,41 @@
       discovery:
         # 服务注册地址
         server-addr: 127.0.0.1:8848
-        service: ruoyi-gateway
+        service: ${spring.application.name}
         group: DEFAULT_GROUP
-        namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9
-        username:
-        password:
+        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
+        username: nacos
+        password: nacos
       config:
         # 配置中心地址
         server-addr: 127.0.0.1:8848
-        namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9
-        username:
-        password:
+        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
+        username: nacos
+        password: nacos
         group: DEFAULT_GROUP
-        name: ruoyi-gateway
+        name: ${spring.application.name}
         # 配置文件格式
         file-extension: yml
         # 共享配置
         shared-configs:
           - application.${spring.cloud.nacos.config.file-extension}
+    sentinel:
+      # 取消控制台懒加载
+      eager: true
+      transport:
+        # 控制台地址
+        dashboard: 192.168.0.137:8718
+      # nacos配置持久化
+      datasource:
+        ds1:
+          nacos:
+            server-addr: 127.0.0.1:8848
+            dataId: sentinel-ruoyi-gateway
+            groupId: DEFAULT_GROUP
+            username: nacos
+            password: nacos
+            data-type: json
+            rule-type: gw-flow
 ---
 spring:
   config:
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 0ef6e50..e99289b 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
@@ -4,6 +4,7 @@
 import cn.hutool.core.collection.CollectionUtil;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
@@ -171,7 +172,7 @@
     @PostMapping("/getCouponCount")
     public R<Long> getCouponCount(@RequestParam("userId") Long userId, @RequestParam("couponId") Integer couponId) {
         LambdaQueryChainWrapper<UserCoupon> chainWrapper = userCouponService.lambdaQuery().eq(UserCoupon::getCouponId, couponId);
-        if(null != userId && -1 == userId){
+        if(null != userId && -1 != userId){
             chainWrapper.eq(UserCoupon::getAppUserId, userId);
         }
         Long count = chainWrapper.count();
@@ -688,14 +689,42 @@
         return R.ok(list);
     }
 
+
+    @GetMapping("/getUserPointsPage")
+    @ApiOperation(value = "用户列表", tags = {"管理后台"})
+    public R<IPage<AppUser>> getUserPointsPage(@ApiParam("页码") @RequestParam Integer pageNum,
+                                            @ApiParam("每一页数据大小") Integer pageSize,
+                                            AppUser appUser) {
+
+        Long userId = tokenService.getLoginUser().getUserid();
+        SysUser data = sysUserClient.getSysUser(userId).getData();
+
+        QueryWrapper<AppUser> queryWrapper = new QueryWrapper<>();
+        if (data.getRoleType() == 2) {
+            Integer shopId = data.getObjectId();
+            List<Order> orders = orderClient.getRedeemedOrdersByShop(shopId).getData();
+            List<Long> userIds = orders.stream().map(Order::getAppUserId).collect(Collectors.toList());
+            queryWrapper.in(!CollectionUtils.isEmpty(userIds), "id", userIds)
+                    .like(StringUtils.isNotEmpty( appUser.getName()),"name", appUser.getName());
+        }
+        queryWrapper.eq("del_flag", 0);
+        queryWrapper.ne("status", 3);
+
+        List<AppUser> appUserList = appUserService.list(queryWrapper);
+        Page<AppUser> objectPage = Page.of(pageNum, pageSize);
+        objectPage.setRecords(appUserList);
+        return R.ok(objectPage);
+
+    }
+
     /**
      * 获取用户列表
      */
     @GetMapping("/getAppuserPage")
-    @ApiOperation(value = "用户列表", tags = {"管理后台"})
     public R<IPage<AppUser>> getAppuserPage(@ApiParam("页码") @RequestParam Integer pageNum,
-                                            @ApiParam("每一页数据大小") Integer pageSize,
-                                            AppUser appUser) {
+                                               @ApiParam("每一页数据大小") Integer pageSize,
+                                               AppUser appUser){
+
         Long userid = tokenService.getLoginUser().getUserid();
         SysUser sysUser = sysUserClient.getSysUser(userid).getData();
         Integer shopId = null;
@@ -721,6 +750,8 @@
         }
         return R.ok(appuserPage);
     }
+
+
 
     @GetMapping("/shop/getAppuserPage")
     @ApiOperation(value = "用户列表", tags = {"门店后台"})
@@ -1072,22 +1103,46 @@
     @GetMapping("/statistics")
     @ApiOperation(value = "用户统计", tags = {"管理后台-首页统计-用户统计"})
     public R<UserStatistics> statistics() {
-        Long userid = tokenService.getLoginUser().getUserid();
-        SysUser data = sysUserClient.getSysUser(userid).getData();
-        Integer shopId = null;
-        Set<Long> userId = null;
-        if(data.getRoleType() == 2){
-            shopId = data.getObjectId();
-            userId = orderClient.getAppUserByShoppingShop(shopId).getData();
+        Long userId = tokenService.getLoginUser().getUserid();
+        SysUser data = sysUserClient.getSysUser(userId).getData();
+
+        QueryWrapper<AppUser> queryWrapper = new QueryWrapper<>();
+        if (data.getRoleType() == 2) {
+            Integer shopId = data.getObjectId();
+            List<Order> orders = orderClient.getRedeemedOrdersByShop(shopId).getData();
+            List<Long> userIds = orders.stream().map(Order::getAppUserId).collect(Collectors.toList());
+            queryWrapper.in(!CollectionUtils.isEmpty(userIds), "id", userIds); // userIds 不为空时,查询 id 在 userIds 中
         }
-        UserStatistics userStatistics = appUserMapper.getUserStatistics(shopId, userId);
-        List<Shop> shopList = shopClient.getAllShop().getData();
-        if (CollectionUtil.isNotEmpty(shopList)){
-            long count = shopList.stream().map(Shop::getAppUserId).distinct().count();
-            userStatistics.setShopUser((int) count);
-        }else {
-            userStatistics.setShopUser(0);
-        }
+        queryWrapper.eq("del_flag", 0);
+        queryWrapper.ne("status", 3);
+        List<AppUser> appUserList = appUserService.list(queryWrapper);
+
+        Map<Integer, Long> vipIdCountMap = appUserList.stream()
+                .collect(Collectors.groupingBy(AppUser::getVipId, Collectors.counting()));
+
+        UserStatistics userStatistics = new UserStatistics();
+        userStatistics.setTotalUser(appUserList.size());
+        userStatistics.setConsumerUser(vipIdCountMap.getOrDefault(0, 0L).intValue() +
+                vipIdCountMap.getOrDefault(1, 0L).intValue() +
+                vipIdCountMap.getOrDefault(2, 0L).intValue() +
+                vipIdCountMap.getOrDefault(3, 0L).intValue());
+        userStatistics.setCommonUser(vipIdCountMap.getOrDefault(1, 0L).intValue());
+        userStatistics.setGoldUser(vipIdCountMap.getOrDefault(2, 0L).intValue());
+        userStatistics.setDiamondUser(vipIdCountMap.getOrDefault(3, 0L).intValue());
+        userStatistics.setEntrepreneurUser(vipIdCountMap.getOrDefault(4, 0L).intValue() +
+                vipIdCountMap.getOrDefault(5, 0L).intValue() +
+                vipIdCountMap.getOrDefault(6, 0L).intValue() +
+                vipIdCountMap.getOrDefault(7, 0L).intValue());
+        userStatistics.setProxyUser(vipIdCountMap.getOrDefault(4, 0L).intValue());
+        userStatistics.setAgentUser(vipIdCountMap.getOrDefault(5, 0L).intValue());
+        userStatistics.setTotalAgentUser(vipIdCountMap.getOrDefault(6, 0L).intValue());
+        userStatistics.setPartnerUser(vipIdCountMap.getOrDefault(7, 0L).intValue());
+
+        long shopUserCount = appUserList.stream()
+                .filter(appUser -> appUser.getUserType() == 2)
+                .count();
+        userStatistics.setShopUser((int) shopUserCount);
+
         return R.ok(userStatistics);
     }
 
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java
index ee196ff..623e0be 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java
@@ -300,9 +300,8 @@
     @PostMapping("/getCouponInfo")
     public R<CouponInfoVo> getCouponInfo(@RequestParam("userCouponId") Long userCouponId){
         UserCoupon userCoupon = userCouponService.getById(userCouponId);
-        CouponInfo data = couponClient.detail(userCoupon.getCouponId()).getData();
-        CouponInfoVo couponInfoVo = new CouponInfoVo();
-        BeanUtils.copyProperties(data, couponInfoVo);
+        String jsonStr = userCoupon.getCouponInfo();
+        CouponInfoVo couponInfoVo = JSON.parseObject(jsonStr, CouponInfoVo.class);
         return R.ok(couponInfoVo);
     }
 
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
index 60b63e3..26825a6 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
@@ -1043,7 +1043,7 @@
 			Integer online = jsonObject.getInteger("online");
 			online += 10;
 			//满足一个小时,开始发放积分,计时归0
-			if(time >= 3600000L && 60 <= online){
+			if(time >= 60000 && 1 <= online){
 				jsonObject.put("time", System.currentTimeMillis());
 				jsonObject.put("online", 0);
 				redisService.setCacheObject("ONLINE_" + userid, jsonObject, 1L, TimeUnit.HOURS);
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java
index 3ce74d7..2c0fe35 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java
@@ -98,7 +98,7 @@
             BigDecimal beforeAmount = changeRecord.getBeforeAmount();
             BigDecimal afterAmount = changeRecord.getAfterAmount();
 
-            if (beforeAmount.compareTo(afterAmount) < 0 && changeRecord.getChangeType().equals(2)){
+            if (beforeAmount.compareTo(afterAmount) > 0){
                 BigDecimal changeAmount = changeRecord.getChangeAmount();
                 totalWithdraw = totalWithdraw.add(changeAmount);
                 walletStatisticsDetail.setFlag(2);
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserCouponServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserCouponServiceImpl.java
index 9c18143..974914b 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserCouponServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserCouponServiceImpl.java
@@ -1,6 +1,7 @@
 package com.ruoyi.account.service.impl;
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.account.api.vo.PaymentUserCouponVo;
@@ -46,11 +47,13 @@
 	public List<PaymentUserCouponVo> getUserCoupon(Long userId, Integer type) {
 		List<UserCoupon> list = this.list(new LambdaQueryWrapper<UserCoupon>().eq(UserCoupon::getAppUserId, userId).eq(UserCoupon::getDelFlag, 0)
 				.isNull(UserCoupon::getUseTime).gt(UserCoupon::getEndTime, LocalDateTime.now()).last(" and now() between start_time and end_time"));
-		List<Integer> couponIds = list.stream().map(UserCoupon::getCouponId).collect(Collectors.toList());
-		if(couponIds.size() == 0){
-			return null;
+
+
+		List<CouponInfo> couponInfoList = new ArrayList<>();
+		for (String jsonStr : list.stream().map(UserCoupon::getCouponInfo).collect(Collectors.toList())) {
+			CouponInfo couponInfo = JSONObject.parseObject(jsonStr, CouponInfo.class);
+			couponInfoList.add(couponInfo);
 		}
-		List<CouponInfo> couponInfoList = couponInfoClient.getCouponInfoList(couponIds).getData();
 		//构建返回数据
 		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM.dd HH:mm");
 		List<PaymentUserCouponVo> infoVoList = new ArrayList<>();
diff --git a/ruoyi-service/ruoyi-account/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-account/src/main/resources/bootstrap.yml
index d67f0f5..cf492fe 100644
--- a/ruoyi-service/ruoyi-account/src/main/resources/bootstrap.yml
+++ b/ruoyi-service/ruoyi-account/src/main/resources/bootstrap.yml
@@ -23,7 +23,7 @@
     nacos:
       discovery:
         # 服务注册地址
-        server-addr: 127.0.0.1:8848
+        server-addr: 192.168.110.106:8848
         service: ${spring.application.name}
         group: DEFAULT_GROUP
         namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9
@@ -31,12 +31,12 @@
         password: nacos
       config:
         # 配置中心地址
-        server-addr: 127.0.0.1:8848
+        server-addr: 192.168.110.106:8848
         namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9
-        group: DEFAULT_GROUP
-        name: ${spring.application.name}
         username: nacos
         password: nacos
+        group: DEFAULT_GROUP
+        name: ${spring.application.name}
         # 配置文件格式
         file-extension: yml
         # 共享配置
@@ -54,13 +54,13 @@
         server-addr: 127.0.0.1:8848
         service: ${spring.application.name}
         group: DEFAULT_GROUP
-        namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9
+        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
         username: nacos
         password: nacos
       config:
         # 配置中心地址
         server-addr: 127.0.0.1:8848
-        namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9
+        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
         username: nacos
         password: nacos
         group: DEFAULT_GROUP
diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml
index 1744790..0a97245 100644
--- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml
+++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml
@@ -31,7 +31,7 @@
         t_user_point tup
         LEFT JOIN t_app_user tau ON tup.app_user_id = tau.id
         <where>
-            tup.type not in (8, 9, 14)
+            tup.type not in (8, 9, 14) and tau.status != 3 and tau.del_flag = 0
             <if test="userPoint.userName != null and userPoint.userName != ''">
                 AND tau.`name` LIKE concat('%',#{userPoint.userName},'%')
             </if>
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
index fa00bec..d7989f2 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
@@ -483,6 +483,16 @@
         return R.ok(collect);
     }
 
+    /**
+     * 获取指定门店的核销订单
+     */
+    @GetMapping("/getRedeemedOrdersByShop")
+    public R<List<Order>> getRedeemedOrdersByShop(@RequestParam("shopId") Integer shopId) {
+        return R.ok(orderService.list(new LambdaQueryWrapper<Order>()
+                .isNotNull(Order::getEndTime)
+                .eq(Order::getShopId, shopId)));
+    }
+
 
     /**
      * 获取订单快递明细
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 4025706..4c6d803 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
@@ -9,6 +9,7 @@
 import com.ruoyi.common.core.constant.ExpressCompanyMap;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.HttpUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.uuid.QRCodeGenerator;
 import com.ruoyi.common.core.web.page.PageInfo;
@@ -183,9 +184,9 @@
         }
         // 优惠券
         String couponJson = order.getCouponJson();
-        CouponInfo couponInfo = new CouponInfo();
+        JSONObject jsonObject = new JSONObject();
         if (StringUtils.isNotEmpty(couponJson)) {
-            couponInfo = JSONObject.parseObject(couponJson, CouponInfo.class);
+            jsonObject = JSONObject.parseObject(couponJson);
         }
 
         // 参与活动
@@ -208,7 +209,7 @@
         orderDetailVO.setOrderNumber(order.getOrderNumber());
         orderDetailVO.setCreateTime(order.getCreateTime());
         orderDetailVO.setTotalAmount(order.getTotalAmount());
-        orderDetailVO.setCouponName(couponInfo.getCouponName());
+        orderDetailVO.setCouponName(jsonObject.getString("couponName"));
         orderDetailVO.setActivityName(orderActivityInfo.getActivityName());
         orderDetailVO.setCouponAmount(order.getDiscountTotalAmount());
         orderDetailVO.setExpressAmount(order.getExpressAmount());
@@ -246,6 +247,7 @@
         }
         return orderDetailVO;
     }
+
 
     @Override
     public boolean check(Order order, Integer shopId, Long userId) {
@@ -1113,9 +1115,38 @@
                 userAddress.getProvince() + userAddress.getCity());
         order.setExpressResult(JSON.toJSONString(mapTrackKD100Vo));
         this.updateById(order);
+
+
+        String s = HttpUtils.sendGet("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wxdeed472c98e42a54&secret=c89c697c981452480e0781fb82d4284c");
+        JSONObject jsonObject2 = JSONObject.parseObject(s);
+        System.out.println(jsonObject.getString("access_token"));
+
         return R.ok();
     }
 
+    public static void main(String[] args) {
+        String a = "{\n" +
+                "  \"access_token\": \"90_4PJ8b5aLJa2M7aCtoskALEzfoap1me291Jc3ogi18NGH0Ts-Tol7K3COLLvkQ1JLcouvew11ORqcHf6mH5LA2KSC08NxiDhsjRPKuRh14mpvQRHmeFvwr-wKWjkANLdACAUHF\",\n" +
+                "  \"order_key\": {\n" +
+                "    \"order_number_type\": 1\n" +
+                "  },\n" +
+                "  \"logistics_type\": 1,\n" +
+                "  \"delivery_mode\": 1,\n" +
+                "  \"shipping_list\": [\n" +
+                "    {\n" +
+                "      \"item_desc\": \"这是一个测试\"\n" +
+                "    }\n" +
+                "  ],\n" +
+                "  \"upload_time\": \"2022-12-15T13:29:35.120+08:00\",\n" +
+                "  \"payer\": {\n" +
+                "    \"openid\": \"ooOrs63KYDHcyhnUmTFpprHc6sb4\"\n" +
+                "  }\n" +
+                "}";
+
+        JSONObject jsonObject = JSONObject.parseObject(a);
+        System.out.println(jsonObject);
+    }
+
 
     public static void importExpress2(String filePath) throws MalformedURLException {
         // 从网络地址读取
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
index c67422a..c2ff5f0 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -1519,6 +1519,9 @@
 		if(order.getOrderType() == 1 && StringUtils.isEmpty(order.getAddressJson())){
 			order.setOrderStatus(2);
 		}
+
+		String r7TrxNo = uniPayCallbackResult.getR7_TrxNo();
+		order.setSerialNumber(r7TrxNo);
 		orderService.updateById(order);
 
 		//处理优惠券
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/payment/PaymentUtil.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/payment/PaymentUtil.java
index ddce26c..26a7a4f 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/payment/PaymentUtil.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/payment/PaymentUtil.java
@@ -34,7 +34,7 @@
 	/**
 	 * 支付回调地址
 	 */
-	private static final String callbackUrl = "https://www.qijisheng.top";
+	private static final String callbackUrl = "http://luodaxia.free.idcfengye.com";
 	
 	
 	/**
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml
index 80194dc..ab94eeb 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml
@@ -23,7 +23,7 @@
     nacos:
       discovery:
         # 服务注册地址
-        server-addr: 127.0.0.1:8848
+        server-addr: 192.168.110.106:8848
         service: ${spring.application.name}
         group: DEFAULT_GROUP
         namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9
@@ -31,12 +31,12 @@
         password: nacos
       config:
         # 配置中心地址
-        server-addr: 127.0.0.1:8848
+        server-addr: 192.168.110.106:8848
         namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9
-        group: DEFAULT_GROUP
-        name: ${spring.application.name}
         username: nacos
         password: nacos
+        group: DEFAULT_GROUP
+        name: ${spring.application.name}
         # 配置文件格式
         file-extension: yml
         # 共享配置
@@ -60,7 +60,7 @@
       config:
         # 配置中心地址
         server-addr: 127.0.0.1:8848
-        namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9
+        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
         username: nacos
         password: nacos
         group: DEFAULT_GROUP
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java
index 0c85501..4d139a9 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java
@@ -161,6 +161,8 @@
         Long userid = tokenService.getLoginUserApplet().getUserid();
         AppUser appUserById = appUserClient.getAppUserById(userid);
         LocalDateTime now = LocalDateTime.now();
+
+
         //查出全部可领取的优惠劵
         List<CouponInfo> list = couponInfoService.lambdaQuery()
                 .le(CouponInfo::getSendStartTime, now)
@@ -175,32 +177,46 @@
                 .apply("FIND_IN_SET('" + appUserById.getId() + "', person_ids)")
                 .list();
         //查出指定会员可领取优惠劵
-        List<CouponInfo> list2 = couponInfoService.lambdaQuery().le(CouponInfo::getSendStartTime, now).ge(CouponInfo::getSendEndTime, now).eq(CouponInfo::getPersonType, 3).apply("FIND_IN_SET('" + appUserById.getVipId() + "', vip_ids)").list();
+        List<CouponInfo> list2 = couponInfoService.lambdaQuery()
+                .le(CouponInfo::getSendStartTime, now)
+                .ge(CouponInfo::getSendEndTime, now)
+                .eq(CouponInfo::getPersonType, 3)
+                .apply("FIND_IN_SET('" + appUserById.getVipId() + "', vip_ids)").list();
         List<CouponInfo> returnList = new ArrayList<>();
-        count(userid, list, returnList);
-        count(userid, list1, returnList);
-        count(userid, list2, returnList);
-        return R.ok(returnList);
+        returnList.addAll(list);
+        returnList.addAll(list1);
+        returnList.addAll(list2);
+
+        List<CouponInfo> collect = returnList.stream().filter(couponInfo -> {
+            Integer couponInfoId = couponInfo.getId();
+            Integer sendNum = couponInfo.getSendNum();
+            Integer maxNum = couponInfo.getMaxNum();
+            Long count = appUserClient.getCouponCount(-1L, couponInfoId).getData();
+            Long count2 = appUserClient.getCouponCount(userid, couponInfoId).getData();
+            return count < sendNum && count2 < maxNum;
+        }).collect(Collectors.toList());
+
+        return R.ok(collect);
     }
 
     private void count(Long userid, List<CouponInfo> list1, List<CouponInfo> returnList) {
         for (CouponInfo couponInfo : list1) {
-            Long count = appUserClient.getCouponCount(-1L, couponInfo.getId()).getData();
-            if(count >= couponInfo.getSendNum()){
+            Integer couponInfoId = couponInfo.getId();
+            Integer sendNum = couponInfo.getSendNum();
+            Integer maxNum = couponInfo.getMaxNum();
+            Long count = appUserClient.getCouponCount(-1L, couponInfoId).getData();
+            if(count >= sendNum){
                 continue;
             }
-            count = appUserClient.getCouponCount(userid, couponInfo.getId()).getData();
-            couponInfo.setMaxNum(couponInfo.getMaxNum() - count.intValue());
-            if((couponInfo.getSendNum() - count) >= couponInfo.getMaxNum()){
-                for (int i = 0; i < couponInfo.getMaxNum(); i++) {
-                    returnList.add(couponInfo);
-                }
-            }else{
-                for (int i = 0; i < (couponInfo.getSendNum() - count); i++) {
-                    returnList.add(couponInfo);
-                }
+
+            count = appUserClient.getCouponCount(userid, couponInfoId).getData();
+            couponInfo.setMaxNum(maxNum - count.intValue());
+            if(count < maxNum){
+                continue;
             }
-            
+            for (int i = 0; i < maxNum; i++) {
+                returnList.add(couponInfo);
+            }
         }
     }
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShareController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShareController.java
index 1d124c7..231e8f9 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShareController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShareController.java
@@ -324,7 +324,8 @@
             Boolean data = userPointClient.judgmentDailyShare(userid).getData();
             if(!data){
                 AppUser appUser = appUserClient.getAppUserById(userid);
-                PointSetting pointSetting = pointSettingService.getOne(new LambdaQueryWrapper<PointSetting>().eq(PointSetting::getId, appUser.getVipId()).eq(PointSetting::getDelFlag, 0));
+                PointSetting pointSetting = pointSettingService.getOne(new LambdaQueryWrapper<PointSetting>()
+                        .eq(PointSetting::getId, appUser.getVipId()).eq(PointSetting::getDelFlag, 0));
                 if(null != pointSetting){
                     Integer everySharePoint = pointSetting.getEverySharePoint();
                     Integer lavePoint = appUser.getLavePoint();
@@ -336,23 +337,28 @@
                     appUser.setTotalPoint(appUser.getTotalPoint() + everySharePoint);
                     appUserClient.editAppUserById(appUser);
                     //添加积分流水
-                    if(everySharePoint > 0){
-                        UserPoint userPoint = new UserPoint();
-                        userPoint.setAppUserId(userid);
-                        userPoint.setType(4);
-                        userPoint.setHistoricalPoint(lavePoint);
-                        userPoint.setVariablePoint(everySharePoint);
-                        userPoint.setBalance(appUser.getLavePoint());
-                        userPoint.setCreateTime(LocalDateTime.now());
-                        userPoint.setAppUserId(appUser.getId());
-                        userPointClient.saveUserPoint(userPoint);
-                    }
+                    UserPoint userPoint = new UserPoint();
+                    userPoint.setAppUserId(userid);
+                    userPoint.setType(4);
+                    userPoint.setHistoricalPoint(lavePoint);
+                    userPoint.setVariablePoint(everySharePoint);
+                    userPoint.setBalance(appUser.getLavePoint());
+                    userPoint.setCreateTime(LocalDateTime.now());
+                    userPoint.setAppUserId(appUser.getId());
+                    userPointClient.saveUserPoint(userPoint);
                 }
 
             }
         }
         return R.ok(one);
     }
+
+    //appUserShare/
+    @GetMapping("/saveAppUserShare")
+    public R<Share> saveAppUserShare() {
+        return getAppletShare();
+    }
+
     
 }
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
index ac1f16a..0f9e61e 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
@@ -408,6 +408,10 @@
         return R.ok();
     }
 
+    public static void main(String[] args) {
+        System.out.println("17780483325".substring(5));
+    }
+
 
     @PutMapping("/freezingOrThawing")
     @ApiOperation(value = "门店管理-冻结/解冻门店", tags = {"管理后台-门店管理"})
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java
index 6a48227..82b5c84 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java
@@ -134,7 +134,13 @@
                 }
             }
         });
-        return nearbyShopVOS;
+        return sortByDistance(nearbyShopVOS);
+    }
+
+    public static List<NearbyShopVO> sortByDistance(List<NearbyShopVO> nearbyShopVOS) {
+        return nearbyShopVOS.stream()
+                .sorted(Comparator.comparingDouble(NearbyShopVO::getDistance))
+                .collect(Collectors.toList());
     }
 
     @Override
diff --git a/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml
index 149cc82..5e1a7b2 100644
--- a/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml
+++ b/ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml
@@ -23,16 +23,16 @@
     nacos:
       discovery:
         # 服务注册地址
-        server-addr: 192.168.110.111/:8848
+        server-addr: 192.168.110.106:8848
         service: ${spring.application.name}
         group: DEFAULT_GROUP
-        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
+        namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9
         username:
         password:
       config:
         # 配置中心地址
-        server-addr: 192.168.110.111/:8848
-        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
+        server-addr: 192.168.110.106:8848
+        namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9
         username:
         password:
         group: DEFAULT_GROUP
@@ -54,15 +54,15 @@
         server-addr: 127.0.0.1:8848
         service: ${spring.application.name}
         group: DEFAULT_GROUP
-        namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9
-        username:
-        password:
+        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
+        username: nacos
+        password: nacos
       config:
         # 配置中心地址
         server-addr: 127.0.0.1:8848
-        namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9
-        username:
-        password:
+        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
+        username: nacos
+        password: nacos
         group: DEFAULT_GROUP
         name: ${spring.application.name}
         # 配置文件格式

--
Gitblit v1.7.1