From f0181cd4f035e8317d6f70b74192dcafd28f79fe Mon Sep 17 00:00:00 2001
From: yupeng <roc__yu@163.com>
Date: 星期五, 07 二月 2025 10:59:30 +0800
Subject: [PATCH] 新增支付订单、定时任务

---
 ruoyi-admin/src/main/resources/application-test.yml                            |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/BankOutController.java  |    5 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java |    8 +
 ruoyi-admin/src/main/java/com/ruoyi/web/task/TbillTask.java                    |  135 +++++++++++++++++++++++++++++++++
 bankapi/src/main/java/com/taxi591/bankapi/service/BankService.java             |    1 
 ruoyi-system/src/main/java/com/ruoyi/system/service/TBillService.java          |    4 +
 ruoyi-applet/pom.xml                                                           |    6 +
 ruoyi-system/src/main/java/com/ruoyi/system/query/TBillQuery.java              |    5 +
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java                   |    6 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBillController.java    |   18 ++++
 ruoyi-admin/src/main/resources/application-prod.yml                            |    2 
 ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/PayController.java     |   25 ++++++
 ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java   |   11 ++
 13 files changed, 219 insertions(+), 9 deletions(-)

diff --git a/bankapi/src/main/java/com/taxi591/bankapi/service/BankService.java b/bankapi/src/main/java/com/taxi591/bankapi/service/BankService.java
index 39adb3b..657cfc2 100644
--- a/bankapi/src/main/java/com/taxi591/bankapi/service/BankService.java
+++ b/bankapi/src/main/java/com/taxi591/bankapi/service/BankService.java
@@ -97,6 +97,7 @@
             result.setResult(chargeBillRequest);
             result.setBack(createResponse(chargeBillRequest,dealBack));
         }catch (ServiceException e){
+            result.setBack(e.getMessage());
             throw e;
         }catch (Exception e){
             log.error("解析异常:{}",requestContent,e);
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/BankOutController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/BankOutController.java
index 2fa8329..8aa5914 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/BankOutController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/BankOutController.java
@@ -11,14 +11,17 @@
 import javax.servlet.http.HttpServletRequest;
 
 @RestController
-@RequestMapping("out/bank")
+@RequestMapping("open/bank")
 public class BankOutController {
 
     @Autowired
     BankService bankService;
+
+
     @PostMapping(value = "payCallback")
     public @ResponseBody String payCallback(HttpServletRequest request){
         CovertPayBackResult result = bankService.covertPayCallBack(request, (billRequest) -> {
+
             return true;
         });
         return result.getBack();
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBillController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBillController.java
index dba1a39..5b6b535 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBillController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBillController.java
@@ -1,6 +1,14 @@
 package com.ruoyi.web.controller.api;
 
 
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.system.model.TBill;
+import com.ruoyi.system.query.TBillQuery;
+import com.ruoyi.system.service.TBillService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -16,5 +24,15 @@
 @RequestMapping("/t-bill")
 public class TBillController {
 
+    @Autowired
+    TBillService tBillService;
+
+    @PostMapping("list")
+    public R<PageInfo<TBill>> list(@RequestBody TBillQuery query){
+        PageInfo<TBill> pageInfo = tBillService.queryPage(query);
+        return R.ok(pageInfo);
+    }
+
+
 }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/task/TbillTask.java b/ruoyi-admin/src/main/java/com/ruoyi/web/task/TbillTask.java
new file mode 100644
index 0000000..bfb5688
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/task/TbillTask.java
@@ -0,0 +1,135 @@
+package com.ruoyi.web.task;
+
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.model.TBill;
+import com.ruoyi.system.model.TContract;
+import com.ruoyi.system.query.TBillQuery;
+import com.ruoyi.system.query.TContractQuery;
+import com.ruoyi.system.service.TBillService;
+import com.ruoyi.system.service.TContractService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Date;
+
+@Slf4j
+@Component("billTask")
+public class TbillTask {
+
+    @Autowired
+    TBillService tBillService;
+
+    @Autowired
+    TContractService tContractService;
+
+    public void generateBill(){
+        try {
+            int index = 1;
+            int rows = 20;
+            long pages = 0;
+            TContractQuery query = new TContractQuery();
+            query.setPageSize(rows);
+            query.setStatus(4);
+            Calendar c = Calendar.getInstance();
+            Date time = c.getTime();
+            do {
+                query.setPageNum(index);
+                PageInfo<TContract> pageinfo = tContractService.contractList(query);
+                if (pages==0){
+                    pages = pageinfo.getPages();
+                }
+                if (pageinfo.getRecords()!=null && pageinfo.getRecords().size()>0){
+                    pageinfo.getRecords().forEach(tContract -> {
+
+                        //todo 生成账单
+
+                    });
+
+                }
+                index++;
+            }while (index<=pages);
+        }catch (Exception e){
+            log.error("");
+        }
+
+    }
+
+    /**
+     * 判断账单是否到期
+     */
+    public void checkBillOverdue(){
+        try {
+            int index = 1;
+            int rows = 20;
+            long pages = 0;
+            TBillQuery query = new TBillQuery();
+            query.setPageSize(rows);
+            //查询未缴费的
+            query.setPayFeesStatus(1);
+            Calendar c = Calendar.getInstance();
+            Date time = c.getTime();
+            do {
+                query.setPageNum(index);
+                PageInfo<TBill> pageinfo = tBillService.queryPage(query);
+                if (pages==0){
+                    pages = pageinfo.getPages();
+                }
+                if (pageinfo.getRecords()!=null && pageinfo.getRecords().size()>0){
+                    pageinfo.getRecords().forEach(tBill -> {
+
+                        //todo 生成账单
+
+                    });
+
+                }
+                index++;
+            }while (index<=pages);
+        }catch (Exception e){
+            log.error("");
+        }
+
+    }
+
+
+    /**
+     * 计算违约金
+     */
+    public void caculatePenaltyFee(){
+        try {
+            int index = 1;
+            int rows = 20;
+            long pages = 0;
+            TBillQuery query = new TBillQuery();
+            query.setPageSize(rows);
+            //查询已逾期的
+            query.setPayFeesStatus(4);
+            Calendar c = Calendar.getInstance();
+            Date time = c.getTime();
+            do {
+                query.setPageNum(index);
+                PageInfo<TContract> pageinfo = tContractService.contractList(query);
+                if (pages==0){
+                    pages = pageinfo.getPages();
+                }
+                if (pageinfo.getRecords()!=null && pageinfo.getRecords().size()>0){
+                    pageinfo.getRecords().forEach(tContract -> {
+
+                        //todo 生成账单
+
+                    });
+
+                }
+                index++;
+            }while (index<=pages);
+        }catch (Exception e){
+            log.error("");
+        }
+
+    }
+
+
+
+}
diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml
index 027c4d6..caf8b52 100644
--- a/ruoyi-admin/src/main/resources/application-prod.yml
+++ b/ruoyi-admin/src/main/resources/application-prod.yml
@@ -21,7 +21,7 @@
   port: 8081
   servlet:
     # 应用的访问路径
-    context-path: /
+    context-path: /admin
   tomcat:
     # tomcat的URI编码
     uri-encoding: UTF-8
diff --git a/ruoyi-admin/src/main/resources/application-test.yml b/ruoyi-admin/src/main/resources/application-test.yml
index 4ca4b21..e30bce7 100644
--- a/ruoyi-admin/src/main/resources/application-test.yml
+++ b/ruoyi-admin/src/main/resources/application-test.yml
@@ -21,7 +21,7 @@
   port: 8081
   servlet:
     # 应用的访问路径
-    context-path: /
+    context-path: /admin
   tomcat:
     # tomcat的URI编码
     uri-encoding: UTF-8
diff --git a/ruoyi-applet/pom.xml b/ruoyi-applet/pom.xml
index 6c75435..f18e8ca 100644
--- a/ruoyi-applet/pom.xml
+++ b/ruoyi-applet/pom.xml
@@ -16,7 +16,11 @@
     </description>
 
     <dependencies>
-
+        <dependency>
+            <groupId>org.taxi591</groupId>
+            <artifactId>bankapi</artifactId>
+            <version>1.0.0-SNAPSHOT</version>
+        </dependency>
         <dependency>
             <groupId>com.aliyun.oss</groupId>
             <artifactId>aliyun-sdk-oss</artifactId>
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/PayController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/PayController.java
new file mode 100644
index 0000000..cfd55df
--- /dev/null
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/PayController.java
@@ -0,0 +1,25 @@
+package com.ruoyi.web.controller.api;
+
+import com.ruoyi.common.core.domain.AjaxResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/t-pay")
+public class PayController {
+
+
+
+
+
+    @PostMapping("makeOrder")
+    public AjaxResult makeOrder(){
+
+        return null;
+    }
+
+
+
+
+}
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 972e404..1a4e0fa 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
@@ -111,8 +111,15 @@
                 // 过滤请求
                 .authorizeRequests()
                 // 对于登录login 注册register 验证码captchaImage 允许匿名访问
-                .antMatchers("/getPrivacyAgreement/{agreementType}","/applet/queryProtocolConfigByType","/applet/login","/login","/applet/queryProtocolConfigByType", "/register","/applet/getCode","/applet/loginCode","/applet/changepwd", "/captchaImage","/getCode","/loginCode","/operations/getBySingleNum/**",
-                        "/user/getUserInfoByNumber/**").permitAll()
+                .antMatchers("/getPrivacyAgreement/{agreementType}",
+                        "/applet/queryProtocolConfigByType","/applet/login",
+                        "/login","/applet/queryProtocolConfigByType",
+                        "/register","/applet/getCode","/applet/loginCode",
+                        "/applet/changepwd", "/captchaImage","/getCode","/loginCode",
+                        "/operations/getBySingleNum/**",
+                        "/user/getUserInfoByNumber/**",
+                        "/open/**"
+                ).permitAll()
                 // 静态资源,可匿名访问
                 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
                 .antMatchers("/swagger-ui.html","/doc.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
index 853243b..b03ebb3 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -25,4 +25,10 @@
     {
         System.out.println("执行无参方法");
     }
+
+
+
+    
+
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TBillQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TBillQuery.java
index 56fb75f..9cfb8cb 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TBillQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TBillQuery.java
@@ -5,7 +5,10 @@
 
 @Data
 public class TBillQuery extends BasePage {
-
+    /**
+     * 缴费状态 1=未缴费 2=待确认 3=已缴费 4=已逾期
+     */
+    private Integer payFeesStatus;
 
 
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TBillService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TBillService.java
index cdf84dd..9dbe020 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TBillService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TBillService.java
@@ -1,7 +1,9 @@
 package com.ruoyi.system.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.TBill;
+import com.ruoyi.system.query.TBillQuery;
 
 /**
  * <p>
@@ -13,4 +15,6 @@
  */
 public interface TBillService extends IService<TBill> {
 
+    PageInfo<TBill> queryPage(TBillQuery query);
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java
index 0418f45..e30ccf0 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java
@@ -1,5 +1,6 @@
 package com.ruoyi.system.service.impl;
 
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.system.mapper.TBillMapper;
@@ -25,8 +26,11 @@
     @Autowired
     RedisCache redisCache;
 
-    public AjaxResult queryPage(TBillQuery query){
-        return AjaxResult.success();
+    @Autowired
+    TBillMapper tBillMapper;
+
+    public PageInfo<TBill> queryPage(TBillQuery query){
+        return null;
     }
 
 

--
Gitblit v1.7.1