夏文涛 1 год назад
Родитель
Сommit
70697655ac

+ 2 - 1
src/main/java/com/template/api/WelcomePayControllerAPI.java

@@ -1,5 +1,6 @@
 package com.template.api;
 
+import com.fasterxml.jackson.core.JsonProcessingException;
 import com.template.model.query.WelcomeVisitorQuery;
 import com.template.model.request.WelcomeVisitorRequest;
 import com.template.model.result.CommonResult;
@@ -27,7 +28,7 @@ public interface WelcomePayControllerAPI {
 
     @GetMapping(value = "/getDataOne")
     @ApiOperation(value = "根据学校及收费区间获取欠费")
-    CommonResult getDataOne(String cardNo,String year);
+    CommonResult getDataOne(String cardNo,String year) throws JsonProcessingException;
 
     @GetMapping(value = "/getDataTwo")
     @ApiOperation(value = "根据学号、入学年度和收费区间获取欠费")

+ 67 - 1
src/main/java/com/template/controller/LoginController.java

@@ -36,6 +36,8 @@ import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
 import java.awt.image.BufferedImage;
 import java.io.IOException;
+import java.math.BigDecimal;
+import java.math.BigInteger;
 import java.net.URLEncoder;
 import java.util.*;
 
@@ -278,6 +280,38 @@ public class LoginController implements LoginControllerAPI {
             //student.setClassstr(classStr);
             student.setCardId(id_card);//身份证号
 
+            if(!(student.getIsPay() != null && student.getIsPay().intValue() == 1)){
+                List<JsonPayVo> payInfos = WelcomePayController.queryStudentPayInfo(card_number,TimeExchange.getYear());
+                if(payInfos != null && payInfos.size() > 0){
+                    List<WelcomePaySetting> paySettings = welcomePaySettingService.queryPaySettings(campus);
+                    if(paySettings != null && paySettings.size() > 0){
+                        for (WelcomePaySetting pay:paySettings) {
+                            BigDecimal money = pay.getPayAmount();
+                            if(pay.getMethod().equals("全部")){
+                                BigDecimal totalSj = new BigDecimal(BigInteger.ZERO);
+                                for (JsonPayVo jpv:payInfos){
+                                    totalSj = totalSj.add(jpv.getSJJE());
+                                }
+
+                                if(totalSj.compareTo(money) >= 0){
+                                    student.setIsPay(1);
+                                }
+                            }
+                            Optional<JsonPayVo> ojpv = payInfos.stream().filter(e -> e.getSFXMMC().equals(pay.getMethod())).findFirst();
+                            if(ojpv != null && ojpv.isPresent()){
+                                if(ojpv.get().getSJJE().compareTo(money) >= 0){
+                                    student.setIsPay(1);
+                                }
+                            }
+                        }
+                    }else{
+                        student.setIsPay(0);
+                    }
+                }else{
+                    student.setIsPay(0);
+                }
+            }
+
             int num = welcomeStudentService.updateWelcomeStudent(student);
             if (num <= 0) {
                 System.out.println("微校授权失败,用户信息新增异常:" + user_name + "" + card_number);
@@ -383,7 +417,7 @@ public class LoginController implements LoginControllerAPI {
         wlv.setCity(student.getCity());
         wlv.setDistrictId(student.getDistrictId());
         wlv.setDistrict(student.getDistrict());
-
+        wlv.setIsPay(student.getIsPay());
         wlv.setPhone(student.getPhone().replace("(+86)", ""));
         wlv.setCollege(college == null ? "微校获取不到院校" : college);
         long expired = 1000 * 60 * 60 * 24 * 365;
@@ -488,6 +522,38 @@ public class LoginController implements LoginControllerAPI {
         }
         //endregion
 
+        if(!(student.getIsPay() != null && student.getIsPay().intValue() == 1)){
+            List<JsonPayVo> payInfos = WelcomePayController.queryStudentPayInfo(student.getAdmissNum(),TimeExchange.getYear());
+            if(payInfos != null && payInfos.size() > 0){
+                List<WelcomePaySetting> paySettings = welcomePaySettingService.queryPaySettings(student.getSchool());
+                if(paySettings != null && paySettings.size() > 0){
+                    for (WelcomePaySetting pay:paySettings) {
+                        BigDecimal money = pay.getPayAmount();
+                        if(pay.getMethod().equals("全部")){
+                            BigDecimal totalSj = new BigDecimal(BigInteger.ZERO);
+                            for (JsonPayVo jpv:payInfos){
+                                totalSj = totalSj.add(jpv.getSJJE());
+                            }
+
+                            if(totalSj.compareTo(money) >= 0){
+                                student.setIsPay(1);
+                            }
+                        }
+                        Optional<JsonPayVo> ojpv = payInfos.stream().filter(e -> e.getSFXMMC().equals(pay.getMethod())).findFirst();
+                        if(ojpv != null && ojpv.isPresent()){
+                            if(ojpv.get().getSJJE().compareTo(money) >= 0){
+                                student.setIsPay(1);
+                            }
+                        }
+                    }
+                }else{
+                    student.setIsPay(0);
+                }
+            }else{
+                student.setIsPay(0);
+            }
+        }
+
         long expired = 1000 * 60 * 60 * 24 * 365;
         TokenDateVo token = JWTUtil.getToken(student.getCardId(), student.getId(), expired);
         student.setToken(token.getToken());

+ 50 - 26
src/main/java/com/template/controller/WelcomePayController.java

@@ -2,6 +2,11 @@ package com.template.controller;
 
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.reflect.TypeToken;
+import com.google.gson.Gson;
 import com.template.annotation.PassToken;
 import com.template.api.WelcomePayControllerAPI;
 import com.template.api.WelcomeVisitorControllerAPI;
@@ -12,8 +17,10 @@ import com.template.model.query.WelcomeVisitorQuery;
 import com.template.model.request.WelcomeVisitorRequest;
 import com.template.model.result.CommonResult;
 import com.template.model.result.PageUtils;
+import com.template.model.vo.JsonPayVo;
 import com.template.model.vo.WelcomeVisitorVO;
 import com.template.services.WelcomeVisitorService;
+import com.tencentcloudapi.tci.v20190318.models.Person;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -38,11 +45,10 @@ public class WelcomePayController implements WelcomePayControllerAPI {
         String sds = querySign(timeStr);
 
         Map<String, String> tokenParams = new HashMap<>();
-        tokenParams.put("sign", sds);
-        tokenParams.put("timestamp", timeStr);
 
+        String queryStr = "?token="+sds+"&timestamp="+timeStr;
         // wecode换取token
-        String respon = HttpsClient.post("http://pay.ncjti.edu.cn:8068/api/getXsffDataAll", tokenParams);
+        String respon = HttpsClient.post("http://pay.ncjti.edu.cn:8068/api/getXsffDataAll"+queryStr, tokenParams);
 
         return CommonResult.ok(respon);
     }
@@ -50,22 +56,19 @@ public class WelcomePayController implements WelcomePayControllerAPI {
     //根据学校及收费区间获取欠费
     @Override
     @PassToken
-    public CommonResult getDataOne(String cardNo,String year) {
+    public CommonResult getDataOne(String cardNo,String year) throws JsonProcessingException {
         String timeStr = String.valueOf(System.currentTimeMillis());
         String token = querySign(timeStr);
 
         Map<String, String> tokenParams = new HashMap<>();
-//        tokenParams.put("sign", token);
-//        tokenParams.put("timestamp", timeStr);
-//        tokenParams.put("xh", cardNo);
-//        tokenParams.put("sfqjdm", year);
 
-        String queryStr = "?token="+token+"=&timestamp="+timeStr+"&sfqjdm="+year+"&xh="+cardNo;
+        String queryStr = "?token="+token+"&timestamp="+timeStr+"&sfqjdm="+year+"&xh="+cardNo;
 
         // wecode换取token
         String respon = HttpsClient.post("http://pay.ncjti.edu.cn:8068/api/getXsffDataOne"+queryStr, tokenParams);
-
-        return CommonResult.ok(respon);
+        Gson gson = new Gson();
+        List<JsonPayVo> travelers = gson.fromJson(respon, new TypeToken<List<JsonPayVo>>(){}.getType());
+        return CommonResult.ok(travelers);
     }
 
     //根据学号、入学年度和收费区间获取欠费
@@ -76,16 +79,18 @@ public class WelcomePayController implements WelcomePayControllerAPI {
         String sds = querySign(timeStr);
 
         Map<String, String> tokenParams = new HashMap<>();
-        tokenParams.put("sign", sds);
-        tokenParams.put("timestamp", timeStr);
-        tokenParams.put("xh", cardNo);
-        tokenParams.put("sfqjdm", year);
-        tokenParams.put("rxnd", year);
+//        tokenParams.put("sign", sds);
+//        tokenParams.put("timestamp", timeStr);
+//        tokenParams.put("xh", cardNo);
+//        tokenParams.put("sfqjdm", year);
+//        tokenParams.put("rxnd", year);
 
+        String queryStr = "?token="+sds+"&timestamp="+timeStr+"&sfqjdm="+year+"&xh="+cardNo+"&rxnd="+year;
         // wecode换取token
-        String respon = HttpsClient.post("http://pay.ncjti.edu.cn:8068/api/getXsffDataTwo", tokenParams);
-
-        return CommonResult.ok(respon);
+        String respon = HttpsClient.post("http://pay.ncjti.edu.cn:8068/api/getXsffDataTwo"+queryStr, tokenParams);
+        Gson gson = new Gson();
+        List<JsonPayVo> travelers = gson.fromJson(respon, new TypeToken<List<JsonPayVo>>(){}.getType());
+        return CommonResult.ok(travelers);
     }
 
     //根据入学年度及收费区间获取欠费
@@ -96,18 +101,37 @@ public class WelcomePayController implements WelcomePayControllerAPI {
         String sds = querySign(timeStr);
 
         Map<String, String> tokenParams = new HashMap<>();
-        tokenParams.put("sign", sds);
-        tokenParams.put("timestamp", timeStr);
-        tokenParams.put("sfqjdm", year);
-        tokenParams.put("rxnd", year);
-
+//        tokenParams.put("sign", sds);
+//        tokenParams.put("timestamp", timeStr);
+//        tokenParams.put("sfqjdm", year);
+//        tokenParams.put("rxnd", year);
+        String queryStr = "?token="+sds+"&timestamp="+timeStr+"&sfqjdm="+year+"&rxnd="+year;
         // wecode换取token
-        String respon = HttpsClient.post("http://pay.ncjti.edu.cn:8068/api/getXsffDataThree", tokenParams);
+        String respon = HttpsClient.post("http://pay.ncjti.edu.cn:8068/api/getXsffDataThree"+queryStr, tokenParams);
 
         return CommonResult.ok(respon);
     }
 
-    private String querySign(String timestr){
+    public static List<JsonPayVo> queryStudentPayInfo(String cardNo,String year) {
+        String timeStr = String.valueOf(System.currentTimeMillis());
+        String sds = querySign(timeStr);
+
+        Map<String, String> tokenParams = new HashMap<>();
+//        tokenParams.put("sign", sds);
+//        tokenParams.put("timestamp", timeStr);
+//        tokenParams.put("xh", cardNo);
+//        tokenParams.put("sfqjdm", year);
+//        tokenParams.put("rxnd", year);
+
+        String queryStr = "?token="+sds+"&timestamp="+timeStr+"&sfqjdm="+year+"&xh="+cardNo+"&rxnd="+year;
+        // wecode换取token
+        String respon = HttpsClient.post("http://pay.ncjti.edu.cn:8068/api/getXsffDataTwo"+queryStr, tokenParams);
+        Gson gson = new Gson();
+        List<JsonPayVo> travelers = gson.fromJson(respon, new TypeToken<List<JsonPayVo>>(){}.getType());
+        return travelers;
+    }
+
+    private static String querySign(String timestr){
         String devId = "ncjt00001";
 
         Map<String, String> tokenParams = new HashMap<>();

+ 0 - 1
src/main/java/com/template/model/pojo/WelcomeStudent.java

@@ -201,7 +201,6 @@ public class WelcomeStudent implements Serializable {
     //0:未缴费
     //1:已缴费
     @ApiModelProperty(value = "是否已缴费")
-    @TableField(exist = false)
     private Integer isPay;
 
     @ApiModelProperty(value = "创建时间")

+ 61 - 0
src/main/java/com/template/model/vo/JsonPayVo.java

@@ -0,0 +1,61 @@
+package com.template.model.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @Author: xwt
+ * @Date: 2025/6/16 星期一 11:28
+ * @Description: com.template.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class JsonPayVo {
+    private String SFQJMC;
+
+    private String BJMC;
+
+
+    private Integer DKJE;
+
+    //应缴金额
+    private BigDecimal YJJE;
+
+
+    private Integer TFJE;
+
+
+    private String XH;
+
+
+    private String SFXMDM;
+
+    //实缴金额
+    private BigDecimal SJJE;
+
+
+    private String XM;
+
+
+    private BigDecimal QFJE;
+
+
+    private String SFQJDM;
+
+
+    private String RXND;
+
+    //收费项目名称
+    private String SFXMMC;
+
+
+    private Integer JMJE;
+
+
+    private String BMMC;
+
+
+    private String ZYMC;
+}