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