From 8f886e9bb2f9204cf0b923979558482249aa8aef Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Mon, 13 Oct 2025 18:39:35 +0800
Subject: [PATCH] 1

---
 ruoyi-admin/src/main/java/com/ruoyi/im/util/SymmetricCryptoUtil.java                        |    3 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/BasicSetupController.java         |    1 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/GroupWelcomeConfig.java                  |    5 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserPolicyController.java        |    2 
 ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/UserPolicyServiceImpl.java              |   11 ++
 ruoyi-admin/src/main/java/com/ruoyi/im/task/MedicalInsuranceTask.java                       |   80 ++++++++++----------
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/HomePageStatisticsController.java |   76 +++++++++++++++++++
 ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java                |    1 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/out/HomePageStatisticsOut.java           |   31 +++++++
 9 files changed, 168 insertions(+), 42 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/UserPolicyServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/UserPolicyServiceImpl.java
index 7a406e4..56bdf79 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/UserPolicyServiceImpl.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/UserPolicyServiceImpl.java
@@ -17,6 +17,7 @@
 import com.ruoyi.system.domain.*;
 import com.ruoyi.system.domain.dto.UserPolicyDto;
 import com.ruoyi.system.mapper.UserPolicyMapper;
+import com.ruoyi.system.service.GroupWelcomeConfigService;
 import com.ruoyi.system.service.PaymentRecordService;
 import com.ruoyi.system.service.UserAccountService;
 import org.json.JSONObject;
@@ -47,6 +48,8 @@
     private PaymentRecordService paymentRecordService;
     @Autowired
     private UserKycService userKycService;
+    @Autowired
+    private GroupWelcomeConfigService groupWelcomeConfigService;
 
 
     @Override
@@ -86,7 +89,15 @@
         if(ObjectUtil.isEmpty(insuranceProduct)){
             return Result.error("该产品停止购买或已下架!");
         }
+
         if(!dto.getPayProductId().equals("0")){
+
+            GroupWelcomeConfig groupWelcomeConfig = groupWelcomeConfigService.getOne(new LambdaQueryWrapper<>(GroupWelcomeConfig.class)
+                    .eq(GroupWelcomeConfig::getConfigurationName, "IM-BASICS").last(" limit 1"));
+            if(ObjectUtil.isNotEmpty(groupWelcomeConfig) && ObjectUtil.isNotEmpty(groupWelcomeConfig.getPaymentSwitch()) && !groupWelcomeConfig.getPaymentSwitch()){
+                return Result.error("无可用支付方式!");
+            }
+
             String orderNo = generateOrderNo();
             String payOrder = payService.createOrder(
                     insuranceProduct.getPremium(),
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/im/task/MedicalInsuranceTask.java b/ruoyi-admin/src/main/java/com/ruoyi/im/task/MedicalInsuranceTask.java
index fc6329c..7eeb2a9 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/im/task/MedicalInsuranceTask.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/im/task/MedicalInsuranceTask.java
@@ -94,44 +94,44 @@
 
 
 
-    /**
-     * 定时清除未支付保单
-     */
-    @Scheduled(cron = "0 */1 * * * ?")
-    public void executeWithFixedDelay() {
-        try {
-            log.info("定时清除未支付保单定时任务开始执行,时间:{}", System.currentTimeMillis());
-            doBusiness();
-            log.info("定时清除未支付保单定时任务执行完成");
-        } catch (Exception e) {
-            log.error("定时清除未支付保单定时任务执行异常", e);
-        }
-    }
-
-    private void doBusiness() {
-        // 计算5分钟前的时间
-        Date fiveMinutesAgo = new Date(System.currentTimeMillis() - 5 * 60 * 1000);
-        log.info("查询条件:创建时间早于 {} 的未支付订单", fiveMinutesAgo);
-
-        // 查询所有创建时间超过5分钟且状态为待支付的订单
-        List<UserPolicy> list = userPolicyService.list(new LambdaQueryWrapper<UserPolicy>()
-                .eq(UserPolicy::getPayStatus, 1) // payStatus = 1 (待支付)
-                .lt(UserPolicy::getCreatedAt, fiveMinutesAgo) // 创建时间早于5分钟前
-                .orderByAsc(UserPolicy::getCreatedAt)
-        );
-
-        // 提取orderId列表
-        List<Integer> ids = list.stream()
-                .map(UserPolicy::getId) // 提取orderId字段
-                .collect(Collectors.toList());
-        if(!CollectionUtils.isEmpty(ids)){
-            List<PaymentRecord> records = paymentRecordService.list(new LambdaQueryWrapper<PaymentRecord>()
-                    .in(PaymentRecord::getOrderId, ids)
-            );
-            paymentRecordService.removeByIds(records);
-        }
-        if(!CollectionUtils.isEmpty(list)){
-            userPolicyService.removeByIds(list);
-        }
-    }
+//    /**
+//     * 定时清除未支付保单
+//     */
+//    @Scheduled(cron = "0 */1 * * * ?")
+//    public void executeWithFixedDelay() {
+//        try {
+//            log.info("定时清除未支付保单定时任务开始执行,时间:{}", System.currentTimeMillis());
+//            doBusiness();
+//            log.info("定时清除未支付保单定时任务执行完成");
+//        } catch (Exception e) {
+//            log.error("定时清除未支付保单定时任务执行异常", e);
+//        }
+//    }
+//
+//    private void doBusiness() {
+//        // 计算5分钟前的时间
+//        Date fiveMinutesAgo = new Date(System.currentTimeMillis() - 5 * 60 * 1000);
+//        log.info("查询条件:创建时间早于 {} 的未支付订单", fiveMinutesAgo);
+//
+//        // 查询所有创建时间超过5分钟且状态为待支付的订单
+//        List<UserPolicy> list = userPolicyService.list(new LambdaQueryWrapper<UserPolicy>()
+//                .eq(UserPolicy::getPayStatus, 1) // payStatus = 1 (待支付)
+//                .lt(UserPolicy::getCreatedAt, fiveMinutesAgo) // 创建时间早于5分钟前
+//                .orderByAsc(UserPolicy::getCreatedAt)
+//        );
+//
+//        // 提取orderId列表
+//        List<Integer> ids = list.stream()
+//                .map(UserPolicy::getId) // 提取orderId字段
+//                .collect(Collectors.toList());
+//        if(!CollectionUtils.isEmpty(ids)){
+//            List<PaymentRecord> records = paymentRecordService.list(new LambdaQueryWrapper<PaymentRecord>()
+//                    .in(PaymentRecord::getOrderId, ids)
+//            );
+//            paymentRecordService.removeByIds(records);
+//        }
+//        if(!CollectionUtils.isEmpty(list)){
+//            userPolicyService.removeByIds(list);
+//        }
+//    }
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/im/util/SymmetricCryptoUtil.java b/ruoyi-admin/src/main/java/com/ruoyi/im/util/SymmetricCryptoUtil.java
index 46fe42e..b898b4d 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/im/util/SymmetricCryptoUtil.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/im/util/SymmetricCryptoUtil.java
@@ -31,8 +31,7 @@
 
         String encryptData = encryptFromString(originalText, Mode.CBC, Padding.ZeroPadding);
         System.out.println("加密:" + encryptData);
-
-        String decryptData = decryptFromString(encryptData, Mode.CBC, Padding.ZeroPadding);
+        String decryptData = decryptFromString("6Du/e/lgbGjalVXFruqxjA==", Mode.CBC, Padding.ZeroPadding);
         System.out.println("解密:" + decryptData);
 
         // 验证加解密是否一致
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserPolicyController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserPolicyController.java
index c7e9d4a..c527cf7 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserPolicyController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/product/UserPolicyController.java
@@ -18,8 +18,10 @@
 import com.ruoyi.im.util.UserPolicyUtils;
 import com.ruoyi.system.domain.*;
 import com.ruoyi.system.domain.dto.PayCallbackDTO;
+import com.ruoyi.system.domain.dto.SubordinateInformationDto;
 import com.ruoyi.system.domain.dto.UserPolicyDto;
 import com.ruoyi.im.service.UserPolicyService;
+import com.ruoyi.system.domain.out.UserTeamAndPositionOut;
 import com.ruoyi.system.service.PaymentRecordService;
 import com.ruoyi.system.service.UserAccountService;
 import lombok.extern.slf4j.Slf4j;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/BasicSetupController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/BasicSetupController.java
index 741901c..9999c1e 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/BasicSetupController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/BasicSetupController.java
@@ -54,6 +54,7 @@
         configServiceById.setCodeUrl(vo.getCodeUrl());
         configServiceById.setCustomerServiceUrl(vo.getCustomerServiceUrl());
         configServiceById.setAboutUs(vo.getAboutUs());
+        configServiceById.setPaymentSwitch(vo.getPaymentSwitch());
         groupWelcomeConfigService.updateById(configServiceById);
         return AjaxResult.success("保存成功!");
     }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/HomePageStatisticsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/HomePageStatisticsController.java
new file mode 100644
index 0000000..223993c
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/HomePageStatisticsController.java
@@ -0,0 +1,76 @@
+package com.ruoyi.web.controller.system;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.im.comm.Result;
+import com.ruoyi.im.service.UserPolicyService;
+import com.ruoyi.im.service.impl.InsurancePositionServiceImpl;
+import com.ruoyi.im.util.UserPolicyUtils;
+import com.ruoyi.system.domain.InsurancePosition;
+import com.ruoyi.system.domain.UserAccount;
+import com.ruoyi.system.domain.UserPolicy;
+import com.ruoyi.system.domain.dto.SubordinateInformationDto;
+import com.ruoyi.system.domain.out.HomePageStatisticsOut;
+import com.ruoyi.system.domain.out.UserTeamAndPositionOut;
+import com.ruoyi.system.service.UserAccountService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @program: ruoyiim
+ * @description:首页统计
+ * @create: 2025-10-13 17:21
+ **/
+@RestController
+@RequestMapping("/system/home")
+public class HomePageStatisticsController {
+
+    @Autowired
+    UserAccountService userAccountService;
+
+    @Autowired
+    InsurancePositionServiceImpl insurancePositionService;
+
+    @Autowired
+    UserPolicyService userPolicyService;
+
+    /**
+     * 首页统计
+     */
+    @GetMapping("/getStatistics")
+    public AjaxResult getUserTeamAndPosition() {
+        HomePageStatisticsOut statisticsOut = new HomePageStatisticsOut();
+
+        // 今日注册
+        LambdaQueryWrapper<UserAccount> todayWrapper = new LambdaQueryWrapper<>();
+        todayWrapper.apply("DATE(create_time) = CURDATE()");
+        statisticsOut.setTodayRegister(userAccountService.count(todayWrapper));
+
+        // 总注册
+        statisticsOut.setTotalRegister(userAccountService.count());
+
+        // 今日激活
+        LambdaQueryWrapper<UserPolicy> userPolicyTodayWrapper = new LambdaQueryWrapper<>();
+        userPolicyTodayWrapper.eq(UserPolicy::getApprovalStatus, 1)
+                .apply("DATE(created_at) = CURDATE()");
+        statisticsOut.setTodayActivate(userPolicyService.count(userPolicyTodayWrapper));
+
+        // 总激活
+        LambdaQueryWrapper<UserPolicy> userPolicyTotalWrapper = new LambdaQueryWrapper<>();
+        userPolicyTotalWrapper.eq(UserPolicy::getApprovalStatus, 1);
+        statisticsOut.setTotalActivate(userPolicyService.count(userPolicyTotalWrapper));
+
+        return AjaxResult.success(statisticsOut);
+    }
+
+}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
index 99cdbfe..3ab5a65 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
@@ -124,6 +124,7 @@
                     .antMatchers("/MedicalInsuranceAccount/**").permitAll()
                     .antMatchers("/kyc/**").permitAll()
                     .antMatchers("/userPolicy/**").permitAll()
+                    .antMatchers("/system/home/**").permitAll()
                     // 除上面外的所有请求全部需要鉴权认证
                     .anyRequest().authenticated();
             })
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/GroupWelcomeConfig.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/GroupWelcomeConfig.java
index 816b2ac..c26477d 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/GroupWelcomeConfig.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/GroupWelcomeConfig.java
@@ -73,6 +73,11 @@
     private String codeUrl;
 
     /**
+     * 支付开关
+     */
+    private Boolean paymentSwitch = true;
+
+    /**
      * 创建时间
      */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/out/HomePageStatisticsOut.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/out/HomePageStatisticsOut.java
new file mode 100644
index 0000000..119dbdb
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/out/HomePageStatisticsOut.java
@@ -0,0 +1,31 @@
+package com.ruoyi.system.domain.out;
+
+import lombok.Data;
+
+/**
+ * @program: ruoyiim
+ * @description:
+ * @create: 2025-10-13 17:23
+ **/
+@Data
+public class HomePageStatisticsOut {
+    /**
+     * 今日注册用户数
+     */
+    private Long todayRegister;
+
+    /**
+     * 今日激活用户数
+     */
+    private Long todayActivate;
+
+    /**
+     * 总注册用户数
+     */
+    private Long totalRegister;
+
+    /**
+     * 总激活用户数
+     */
+    private Long totalActivate;
+}

--
Gitblit v1.9.3