Browse Source

1、新建微校基础库
2、修改移动端人员基础信息获取接口

Bingo 4 năm trước cách đây
mục cha
commit
9dd8581863
23 tập tin đã thay đổi với 719 bổ sung328 xóa
  1. 2 1
      src/main/java/com/chuanghai/smartschool/tuitionpayment/common/exception/BizCodeEnume.java
  2. 3 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/common/exception/MyExceptionHandler.java
  3. 21 7
      src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/BankController.java
  4. 121 121
      src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayDetailBankController.java
  5. 2 2
      src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayItemController.java
  6. 4 2
      src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayOrderController.java
  7. 117 68
      src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayableInfoController.java
  8. 30 12
      src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayableInfoWaterController.java
  9. 212 60
      src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/WechatController.java
  10. 15 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/dao/SchoolUserDao.java
  11. 34 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/entity/SchoolUser.java
  12. 11 27
      src/main/java/com/chuanghai/smartschool/tuitionpayment/listener/aliexcel/MyPayableInfoImportListener.java
  13. 7 10
      src/main/java/com/chuanghai/smartschool/tuitionpayment/listener/aliexcel/MyPayableInfoWaterImportListener.java
  14. 1 1
      src/main/java/com/chuanghai/smartschool/tuitionpayment/service/PayOrderService.java
  15. 13 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/service/SchoolUserService.java
  16. 41 13
      src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayOrderServiceImpl.java
  17. 17 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/SchoolUserServiceImpl.java
  18. 4 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/utils/MyAES.java
  19. 25 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/vo/BankVO/BankAppKeyVO.java
  20. 5 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/vo/CreateOrderResultVO.java
  21. 5 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/vo/PayOrderReceiveVO.java
  22. 12 4
      src/main/resources/application.yml
  23. 17 0
      src/main/resources/mapper/tuitionpayment/SchoolUserDao.xml

+ 2 - 1
src/main/java/com/chuanghai/smartschool/tuitionpayment/common/exception/BizCodeEnume.java

@@ -43,7 +43,8 @@ public enum BizCodeEnume {
     ID_IS_NULL(10023,"id为空"),
     PAY_ITEM_NOT_SUPPORT(10024,"该缴费项目不支持导出TXT"),
     IS_PAY(10025,"该缴费宿舍已缴费"),
-    TOO_LONG(10026,"内容超长");
+    TOO_LONG(10026,"内容超长"),
+    ERROR_DE(10027,"AES加密失败");
 
     private int code;
     private String msg;

+ 3 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/common/exception/MyExceptionHandler.java

@@ -92,11 +92,14 @@ public class MyExceptionHandler {
     @ExceptionHandler(ExcelAnalysisException.class)
     public CommonResult handleExcelAnalysisException(ExcelAnalysisException e) {
         String errorMessage = e.getMessage();
+        System.out.println(errorMessage);
         String errMsg = "文件导入失败";
         if (StringUtils.hasText(errorMessage) && errorMessage.contains("doesn't have a default value")) {
             errMsg =  "文件导入失败,请检查模板header是否正确";
         } else if (StringUtils.hasText(errorMessage) && errorMessage.contains("Duplicate entry")) {
             errMsg = "文件导入失败,含有重复数据";
+        }else if (StringUtils.hasText(errorMessage) && errorMessage.contains("数据已存在") ){
+            errMsg = "文件导入失败,含有重复数据";
         }
         return CommonResult.fail(Integer.toString(BizCodeEnume.FILE_IMPORT_ERROR.getCode()), errMsg);
     }

+ 21 - 7
src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/BankController.java

@@ -5,6 +5,7 @@ import com.chuanghai.smartschool.tuitionpayment.common.utils.CommonResult;
 import com.chuanghai.smartschool.tuitionpayment.entity.Bank;
 import com.chuanghai.smartschool.tuitionpayment.entity.BankDetail;
 import com.chuanghai.smartschool.tuitionpayment.service.BankService;
+import com.chuanghai.smartschool.tuitionpayment.vo.BankVO.BankAppKeyVO;
 import com.chuanghai.smartschool.tuitionpayment.vo.BankVO.BankStoreVO;
 import com.chuanghai.smartschool.tuitionpayment.vo.BankVO.BankVO;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -33,14 +34,14 @@ public class BankController {
     private BankService bankService;
 
     @GetMapping("queryBankStore")
-    public CommonResult<List<BankStoreVO>> queryBankStore( ) {
+    public CommonResult<List<BankStoreVO>> queryBankStore() {
 
         List<BankStoreVO> bankStoreVOList = new ArrayList<>();
         QueryWrapper<BankDetail> wrapper = new QueryWrapper<>();
         List<Bank> banks = bankService.list();
         //去除重复的银行
         List<Bank> arrays = banks.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(()
-                -> new TreeSet<>(Comparator.comparing(Bank :: getBankName))), ArrayList::new));
+                -> new TreeSet<>(Comparator.comparing(Bank::getBankName))), ArrayList::new));
         arrays.forEach(bank -> {
             BankStoreVO bankStoreVO = new BankStoreVO();
             bankStoreVO.setId(bank.getId());
@@ -55,20 +56,18 @@ public class BankController {
     }
 
     /**
-     *
-     *
      * @param bankName
-     * @param id   设置ID
+     * @param id       设置ID
      * @return
      */
-    public List<BankVO> queryBankName(@RequestParam("bankName") String bankName , Integer id) {
+    public List<BankVO> queryBankName(@RequestParam("bankName") String bankName, Integer id) {
         QueryWrapper<Bank> wrapper = new QueryWrapper<>();
         List<BankVO> bankVOList = new ArrayList<>();
         wrapper.eq("bank_name", bankName);
         List<Bank> bankDetailList = bankService.list(wrapper);
         for (int i = 0; i < bankDetailList.size(); i++) {
             BankVO bankVO = new BankVO();
-            bankVO.setId(String.valueOf(id )+ i);
+            bankVO.setId(String.valueOf(id) + i);
             bankVO.setBankId(bankDetailList.get(i).getId());
             bankVO.setLabel(bankDetailList.get(i).getBankStoreName() + " (" + bankDetailList.get(i).getBankCardNumber() + ")");
             bankVOList.add(bankVO);
@@ -77,5 +76,20 @@ public class BankController {
     }
 
 
+    /**
+     * 通过银行ID获取银行信息
+     *
+     * @param bankId
+     * @return
+     */
+    @GetMapping("queryBankById")
+    public CommonResult<BankAppKeyVO> queryBankById(Integer bankId) {
+        BankAppKeyVO bankAppKeyVO = new BankAppKeyVO();
+        Bank bank = bankService.getById(bankId);
+        bankAppKeyVO.setBankId(bank.getId());
+        bankAppKeyVO.setBankName(bank.getBankName());
+        bankAppKeyVO.setOpenId(bank.getOpenId());
+        return CommonResult.ok().setResult(bankAppKeyVO);
+    }
 
 }

+ 121 - 121
src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayDetailBankController.java

@@ -1,125 +1,125 @@
-package com.chuanghai.smartschool.tuitionpayment.controller;
-
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.chuanghai.smartschool.tuitionpayment.common.exception.BizCodeEnume;
-import com.chuanghai.smartschool.tuitionpayment.common.exception.RRException;
-import com.chuanghai.smartschool.tuitionpayment.common.utils.CommonResult;
-import com.chuanghai.smartschool.tuitionpayment.entity.PayDetailBank;
-import com.chuanghai.smartschool.tuitionpayment.service.PayDetailBankService;
-import org.apache.poi.ss.formula.functions.T;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @Author: binguo
- * @Date: 2022/7/11 星期一 20:16
- * @Description: com.chuanghai.smartschool.tuitionpayment.controller
- * @Version: 1.0
- */
-@RestController
-@RequestMapping("tuitionpayment/paydetailbank")
-public class PayDetailBankController {
-    @Autowired
-    private PayDetailBankService payDetailBankService;
-
-    /**
-     * 通过缴费项目查询相关银行的缴费明细数组
-     * @param itemName
-     * @return
-     */
-    @GetMapping("queryBank")
-    public CommonResult<PayDetailBank> queryBankDetailByName(@RequestParam("itemName") String itemName){
-        QueryWrapper<PayDetailBank> wapper = new QueryWrapper<>();
-        wapper.eq("item_name", itemName);
-        PayDetailBank payDetailBank = payDetailBankService.getOne(wapper);
-//        //建行缴费明细字符串转换为数组
-//        String ccbStr = payDetailBank.getCcbStr();
-//        List<String> ccbList = new ArrayList<>();
-//        if (!ccbStr.isEmpty()){
-//            String[] ccbSplit = ccbStr.split("/");
-//            for (int i = 0; i < ccbSplit.length; i++) {
-//                ccbList.add("\""+ccbSplit[i].split(":")[0]+"\"");
-//            }
+//package com.chuanghai.smartschool.tuitionpayment.controller;
+//
+//import com.alibaba.fastjson.JSONObject;
+//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+//import com.chuanghai.smartschool.tuitionpayment.common.exception.BizCodeEnume;
+//import com.chuanghai.smartschool.tuitionpayment.common.exception.RRException;
+//import com.chuanghai.smartschool.tuitionpayment.common.utils.CommonResult;
+//import com.chuanghai.smartschool.tuitionpayment.entity.PayDetailBank;
+//import com.chuanghai.smartschool.tuitionpayment.service.PayDetailBankService;
+//import org.apache.poi.ss.formula.functions.T;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.web.bind.annotation.*;
+//
+///**
+// * @Author: binguo
+// * @Date: 2022/7/11 星期一 20:16
+// * @Description: com.chuanghai.smartschool.tuitionpayment.controller
+// * @Version: 1.0
+// */
+//@RestController
+//@RequestMapping("tuitionpayment/paydetailbank")
+//public class PayDetailBankController {
+//    @Autowired
+//    private PayDetailBankService payDetailBankService;
+//
+//    /**
+//     * 通过缴费项目查询相关银行的缴费明细数组
+//     * @param itemName
+//     * @return
+//     */
+//    @GetMapping("queryBank")
+//    public CommonResult<PayDetailBank> queryBankDetailByName(@RequestParam("itemName") String itemName){
+//        QueryWrapper<PayDetailBank> wapper = new QueryWrapper<>();
+//        wapper.eq("item_name", itemName);
+//        PayDetailBank payDetailBank = payDetailBankService.getOne(wapper);
+////        //建行缴费明细字符串转换为数组
+////        String ccbStr = payDetailBank.getCcbStr();
+////        List<String> ccbList = new ArrayList<>();
+////        if (!ccbStr.isEmpty()){
+////            String[] ccbSplit = ccbStr.split("/");
+////            for (int i = 0; i < ccbSplit.length; i++) {
+////                ccbList.add("\""+ccbSplit[i].split(":")[0]+"\"");
+////            }
+////        }
+////        //农商缴费明细字符串转换为数组
+////        String rcbStr = payDetailBank.getRcbStr();
+////        List<String> rcbList = new ArrayList<>();
+////        if (!rcbStr.isEmpty()) {
+////            String[] rcbSplit = rcbStr.split("/");
+////            for (int i = 0; i < rcbSplit.length; i++) {
+////                rcbList.add("\""+rcbSplit[i].split(":")[0]+"\"");
+////            }
+////        }
+////        payDetailBank.setCcbStr(ccbList.toString());
+////        payDetailBank.setRcbStr(rcbList.toString());
+//        return CommonResult.ok().setResult(payDetailBank);
+//    }
+//
+//    /**
+//     * 通过缴费项目查询银行缴费设置
+//     * @param itemName
+//     * @return
+//     */
+//    public PayDetailBank queryBank(String itemName){
+//        QueryWrapper<PayDetailBank> wrapper = new QueryWrapper<>();
+//        wrapper.eq("item_name", itemName);
+//        PayDetailBank one = payDetailBankService.getOne(wrapper);
+//        return one;
+//    }
+//
+//    /**
+//     * 更新银行缴费明细数组
+//     * @param jsonObject     payDetailBank 的json结构体
+//     * @return
+//     */
+//    @PostMapping("updateBank")
+//    public CommonResult<T> updatePayDetailBank(@RequestBody JSONObject jsonObject){
+//        PayDetailBank payDetailBank = JSONObject.toJavaObject(jsonObject, PayDetailBank.class);
+//        if (payDetailBank.getBId() == null) {
+//            throw new RRException(BizCodeEnume.ID_IS_NULL, "ID字段为空");
+//        }
+//       payDetailBankService.updateById(payDetailBank);
+//        return CommonResult.ok();
+//    }
+//
+//
+//    /**
+//     * 更新银行缴费明细数组
+//     * @param jsonObject     payDetailBank 的json结构体
+//     * @return
+//     */
+//    @PostMapping("saveBank")
+//    public CommonResult<T> savePayDetailBank(@RequestBody JSONObject jsonObject){
+//        PayDetailBank payDetailBank = JSONObject.toJavaObject(jsonObject, PayDetailBank.class);
+//        PayDetailBank data = queryBankDetailByName(payDetailBank.getItemName()).getData();
+//        if (data.getItemName().equals(payDetailBank.getItemName())) {
+//            payDetailBank.setBId(data.getBId());
+//            payDetailBankService.updateById(payDetailBank);
+//        }else {
+//            payDetailBankService.save(payDetailBank);
 //        }
-//        //农商缴费明细字符串转换为数组
+//        return CommonResult.ok();
+//    }
+//
+//
+//    public void queryBankByDetail(String itemName, String detail){
+//        PayDetailBank payDetailBank = queryBank(itemName);
+//        String ccbStr = payDetailBank.getCcbStr();
 //        String rcbStr = payDetailBank.getRcbStr();
-//        List<String> rcbList = new ArrayList<>();
-//        if (!rcbStr.isEmpty()) {
-//            String[] rcbSplit = rcbStr.split("/");
-//            for (int i = 0; i < rcbSplit.length; i++) {
-//                rcbList.add("\""+rcbSplit[i].split(":")[0]+"\"");
+//        String[] splitDetail = detail.split("/");
+//        for (int i=0; i<splitDetail.length; i++){
+//            if (ccbStr.contains(splitDetail[i].split(":")[0])) {
+//
 //            }
 //        }
-//        payDetailBank.setCcbStr(ccbList.toString());
-//        payDetailBank.setRcbStr(rcbList.toString());
-        return CommonResult.ok().setResult(payDetailBank);
-    }
-
-    /**
-     * 通过缴费项目查询银行缴费设置
-     * @param itemName
-     * @return
-     */
-    public PayDetailBank queryBank(String itemName){
-        QueryWrapper<PayDetailBank> wrapper = new QueryWrapper<>();
-        wrapper.eq("item_name", itemName);
-        PayDetailBank one = payDetailBankService.getOne(wrapper);
-        return one;
-    }
-
-    /**
-     * 更新银行缴费明细数组
-     * @param jsonObject     payDetailBank 的json结构体
-     * @return
-     */
-    @PostMapping("updateBank")
-    public CommonResult<T> updatePayDetailBank(@RequestBody JSONObject jsonObject){
-        PayDetailBank payDetailBank = JSONObject.toJavaObject(jsonObject, PayDetailBank.class);
-        if (payDetailBank.getBId() == null) {
-            throw new RRException(BizCodeEnume.ID_IS_NULL, "ID字段为空");
-        }
-       payDetailBankService.updateById(payDetailBank);
-        return CommonResult.ok();
-    }
-
-
-    /**
-     * 更新银行缴费明细数组
-     * @param jsonObject     payDetailBank 的json结构体
-     * @return
-     */
-    @PostMapping("saveBank")
-    public CommonResult<T> savePayDetailBank(@RequestBody JSONObject jsonObject){
-        PayDetailBank payDetailBank = JSONObject.toJavaObject(jsonObject, PayDetailBank.class);
-        PayDetailBank data = queryBankDetailByName(payDetailBank.getItemName()).getData();
-        if (data.getItemName().equals(payDetailBank.getItemName())) {
-            payDetailBank.setBId(data.getBId());
-            payDetailBankService.updateById(payDetailBank);
-        }else {
-            payDetailBankService.save(payDetailBank);
-        }
-        return CommonResult.ok();
-    }
-
-
-    public void queryBankByDetail(String itemName, String detail){
-        PayDetailBank payDetailBank = queryBank(itemName);
-        String ccbStr = payDetailBank.getCcbStr();
-        String rcbStr = payDetailBank.getRcbStr();
-        String[] splitDetail = detail.split("/");
-        for (int i=0; i<splitDetail.length; i++){
-            if (ccbStr.contains(splitDetail[i].split(":")[0])) {
-
-            }
-        }
-        if (ccbStr != null) {
-            String[] splitCCBStr = ccbStr.split("/");
-        }
-        if (rcbStr != null) {
-            String[] splitRCBStr = rcbStr.split("/");
-        }
-
-
-    }
-}
+//        if (ccbStr != null) {
+//            String[] splitCCBStr = ccbStr.split("/");
+//        }
+//        if (rcbStr != null) {
+//            String[] splitRCBStr = rcbStr.split("/");
+//        }
+//
+//
+//    }
+//}

+ 2 - 2
src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayItemController.java

@@ -35,8 +35,8 @@ public class PayItemController {
     private PayItemService payItemService;
     @Autowired
     private PayDetailBankService payDetailBankService;
-    @Autowired
-    private PayDetailBankController payDetailBankController;
+//    @Autowired
+//    private PayDetailBankController payDetailBankController;
     @Autowired
     private BankItemDetailController bankItemDetailController;
 

+ 4 - 2
src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayOrderController.java

@@ -283,12 +283,14 @@ public class PayOrderController {
      * 下载缴费名单的txt点击开始计时十五分钟,导出十五分钟内的数据
      *
      * @param response
+     * @param type   today 当天  quarter 十五分钟
+     *
      * @throws IOException
      */
     @RequestMapping("exportOrderTxtQuarter")
-    public void exportOrderTxtQuarter( HttpServletResponse response) throws IOException {
+    public void exportOrderTxtQuarter( HttpServletResponse response, String type) throws IOException {
         try {
-            payOrderService.exportOrderTxtQuarter(response);
+            payOrderService.exportOrderTxtQuarter(response, type);
         } catch (Exception e) {
             e.printStackTrace();
         }

+ 117 - 68
src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayableInfoController.java

@@ -11,15 +11,9 @@ import com.chuanghai.smartschool.tuitionpayment.common.exception.RRException;
 import com.chuanghai.smartschool.tuitionpayment.common.utils.CommonResult;
 import com.chuanghai.smartschool.tuitionpayment.common.utils.PageParam;
 import com.chuanghai.smartschool.tuitionpayment.common.utils.PageUtils;
-import com.chuanghai.smartschool.tuitionpayment.entity.BankItemDetail;
-import com.chuanghai.smartschool.tuitionpayment.entity.PayOrderEntity;
-import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoEntity;
-import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoWaterEntity;
+import com.chuanghai.smartschool.tuitionpayment.entity.*;
 import com.chuanghai.smartschool.tuitionpayment.listener.aliexcel.MyStudentNoImportListener;
-import com.chuanghai.smartschool.tuitionpayment.service.BankItemDetailService;
-import com.chuanghai.smartschool.tuitionpayment.service.PayOrderService;
-import com.chuanghai.smartschool.tuitionpayment.service.PayableInfoService;
-import com.chuanghai.smartschool.tuitionpayment.service.PayableInfoWaterService;
+import com.chuanghai.smartschool.tuitionpayment.service.*;
 import com.chuanghai.smartschool.tuitionpayment.to.DeletePayableInfoTO;
 import com.chuanghai.smartschool.tuitionpayment.to.PayOrderQueryTO;
 import com.chuanghai.smartschool.tuitionpayment.utils.ListPageUtil;
@@ -75,6 +69,8 @@ public class PayableInfoController {
     private WechatController wechatController;
     @Autowired
     private BankItemDetailService bankItemDetailService;
+    @Autowired
+    private SchoolUserService schoolUserService;
 
 
     /**
@@ -304,18 +300,37 @@ public class PayableInfoController {
 //            throw new RRException(BizCodeEnume.PARAMETER_ERROR, "当前项目为" + itemName + ",无法查询到项目数据,请核对");
 //        }
         infoEntityList.forEach(payableInfoEntity -> {
-            String cardNumber = wechatController.getCardNumber(payableInfoEntity.getStudentName(), payableInfoEntity.getStudentNo());
-            String serial_number = "";
-            if (!cardNumber.endsWith("-")) {
-                String[] split = cardNumber.split("-");
-                cardNumber = split[0];
-                serial_number = split[1];
+            // String cardNumber = wechatController.getCardNumber(payableInfoEntity.getStudentName(), payableInfoEntity.getStudentNo());
+
+            QueryWrapper<SchoolUser> schoolWapper = new QueryWrapper<>();
+            schoolWapper.eq("id_card", payableInfoEntity.getStudentNo()).last("limit 1");
+            SchoolUser schoolUser = schoolUserService.getOne(schoolWapper);
+            if (schoolUser != null) {
+                String cardNumber = schoolUser.getCardNumber();
+                String studentNo = schoolUser.getStudentNo();
+                if (studentNo != null) {
+                    payableInfoEntity.setSerialNumber(studentNo);
+                }
+                payableInfoEntity.setCardNumber(cardNumber);
             } else {
-                cardNumber = cardNumber.substring(0, cardNumber.length() - 1);
-                serial_number = cardNumber;
+                throw new RRException(BizCodeEnume.DATA_IS_NOT_EXIST, payableInfoEntity.getStudentName() + "  " + payableInfoEntity.getStudentNo() + " 数据不存在基础库中");
             }
-            payableInfoEntity.setCardNumber(cardNumber);
-            payableInfoEntity.setSerialNumber(serial_number);
+
+            if (payableInfoEntity.getNotMustMoney().equals("无")) {
+                payableInfoEntity.setNotMustMoney("");
+            }
+            payableInfoEntity.setPayCreateTime(LocalDateTime.now());
+            payableInfoEntity.setPayItemType("1");
+            payableInfoEntity.setPayNoticeType("1");
+            payableInfoEntity.setPayOrderLoan(new BigDecimal("0.00"));
+            if (StringUtils.hasText(payableInfoEntity.getNotMustMoney())) {
+                payableInfoEntity.setNotPayDetail(payableInfoEntity.getMustMoney() + "/" + payableInfoEntity.getNotMustMoney());
+            } else {
+                payableInfoEntity.setNotPayDetail(payableInfoEntity.getMustMoney());
+            }
+            String[] split = payableInfoEntity.getNotPayDetail().split("/");
+            payableInfoEntity.setNotPaySize(split.length);
+
 
             objectList.add(payableInfoEntity);
         });
@@ -388,8 +403,10 @@ public class PayableInfoController {
         List<StudentNoVO> studentNos = studentNoImportListener.getStudentNoList();
         studentNos.remove(studentNos.size() - 1);
         List<DeletePayableInfoTO> alreadyPayList = new ArrayList<>();
-        studentNos.forEach(studentNo -> {
-            StudentNoVO student = studentNo;
+        List<Long> infoIdList = new ArrayList<>();
+        List<Long> waterIdList = new ArrayList<>();
+        for (int m = 0; m < studentNos.size(); m++) {
+            StudentNoVO student = studentNos.get(m);
             if (student.getPaymentItem().equals("水费缴纳")) {
                 QueryWrapper<PayableInfoWaterEntity> wrapper = new QueryWrapper<>();
                 wrapper.eq(student.getStudentNo() != null, "student_no", student.getStudentNo());
@@ -404,7 +421,14 @@ public class PayableInfoController {
                         throw new RRException(BizCodeEnume.DATA_IS_EXIST, "删除失败," + student.getStudentName() + " "
                                 + student.getStudentNo() + " 已完成 " + student.getPayMonth() + " 时间段的 " + student.getPaymentItem() + " 的缴费,请核对完毕之后重新导入删除");
                     } else {
-                        payableInfoService.removeById(one);
+                        QueryWrapper<PayableInfoWaterEntity> waterWapper = new QueryWrapper<>();
+                        waterWapper.eq("student_name", one.getStudentName())
+                                .eq("student_no", one.getStudentNo())
+                                .eq("payment_item", one.getPaymentItem())
+                                .eq("pay_month", one.getPayMonth());
+                        PayableInfoWaterEntity water = payableInfoWaterService.getOne(waterWapper);
+                        waterIdList.add(water.getId());
+                        // remove = payableInfoWaterService.remove(waterWapper);
                     }
                 }
             } else {
@@ -421,14 +445,34 @@ public class PayableInfoController {
                         throw new RRException(BizCodeEnume.DATA_IS_EXIST, "删除失败," + student.getStudentName() + " "
                                 + student.getStudentNo() + " 已完成 " + student.getPayMonth() + " 时间段的 " + student.getPaymentItem() + " 的缴费,请核对完毕之后重新导入删除");
                     } else {
-                        payableInfoService.removeById(one);
+                        QueryWrapper<PayableInfoEntity> infoWapper = new QueryWrapper<>();
+                        infoWapper.eq("student_name", one.getStudentName())
+                                .eq("student_no", one.getStudentNo())
+                                .eq("payment_item", one.getPaymentItem())
+                                .eq("years", one.getYears());
+                        PayableInfoEntity info = payableInfoService.getOne(infoWapper);
+                        infoIdList.add(info.getId());
                     }
                 }
             }
 
-        });
+        }
+        boolean removeInfo = Boolean.FALSE;
+        boolean removeWater = Boolean.FALSE;
+
+        if (waterIdList.size() > 0) {
+            removeWater = payableInfoWaterService.removeByIds(waterIdList);
+        }
+        if (infoIdList.size() > 0) {
+            removeWater = payableInfoService.removeByIds(infoIdList);
+        }
+
+        if (removeInfo == Boolean.FALSE && removeWater == Boolean.FALSE) {
+            return CommonResult.fail("10028", "删除失败,导入模板中需要删除的数据不存在");
+        } else {
+            return CommonResult.ok("", "删除成功");
+        }
 
-        return CommonResult.ok().setResult(alreadyPayList);
     }
 
 
@@ -458,15 +502,16 @@ public class PayableInfoController {
             PayableInfoEntity payableInfoEntity = payableInfoService.getOne(wrapper);
             //查找已经缴费的订单详情
             QueryWrapper<PayOrderEntity> orderWapper = new QueryWrapper<>();
-            orderWapper.eq("payinfo_id", payableInfoEntity.getId());
+            orderWapper.eq("payinfo_id", payableInfoEntity.getId())
+                    .eq("status", "2");
             List<PayOrderEntity> list = payOrderService.list(orderWapper);
             String orderPayDetail = "";
             if (list.size() > 0) {
-                for (int m = 0; m< list.size(); m++) {
-                    orderPayDetail += list.get(m).getPayDetail() +"/";
+                for (int m = 0; m < list.size(); m++) {
+                    orderPayDetail += list.get(m).getPayDetail() + "/";
                 }
             }
-            orderPayDetail = orderPayDetail.endsWith("/") == true ? orderPayDetail.substring(0,orderPayDetail.length()-1) :orderPayDetail;
+            orderPayDetail = orderPayDetail.endsWith("/") == true ? orderPayDetail.substring(0, orderPayDetail.length() - 1) : orderPayDetail;
 
             if (payableInfoEntity == null) {
                 throw new RRException(BizCodeEnume.DATA_IS_EXIST, "该缴费订单不存在。");
@@ -516,30 +561,29 @@ public class PayableInfoController {
             ArrayList<String> listBOrder;
 
 
-
             String[] orderPayDetailArray = orderPayDetail.split("/");
             String[] realPayDetailArray = realPayDetail1.split("/");
-//            System.out.println(realPayDetail1);
-//            System.out.println(orderPayDetail);
+            //  System.out.println(realPayDetail1);
+            //  System.out.println(orderPayDetail);
             listReal = new ArrayList<>(Arrays.asList(realPayDetailArray));
-            listBOrder =  new ArrayList<>(Arrays.asList(orderPayDetailArray));
+            listBOrder = new ArrayList<>(Arrays.asList(orderPayDetailArray));
 
-//            listReal.forEach(s->{
+//            listReal.forEach(s -> {
 //                System.out.println(s);
 //            });
 //            System.out.println("------------------------------------------");
-//            listBOrder.forEach(s->{
+//            listBOrder.forEach(s -> {
 //                System.out.println(s);
 //            });
 //            System.out.println("------------------------------------------");
             //从realPayDetail1中删除已经缴费的明细,剩下代缴明细
             listReal.removeAll(listBOrder);
-//            listReal.forEach(s->{
+//            listReal.forEach(s -> {
 //                System.out.println(s);
 //            });
             String newRealPayDetail = "";
             if (listReal.size() == 1) {
-                payInfoDetailVO.setNotPayDetail(listReal.get(0));
+                payInfoDetailVO.setRealPayDetail(listReal.get(0));
             } else if (listReal.size() > 1) {
                 for (int i = 0; i < listReal.size(); i++) {
                     newRealPayDetail += listReal.get(i) + "/";
@@ -550,7 +594,6 @@ public class PayableInfoController {
             }
 
 
-
             notPayDetailArray = notPayDetail.split("/");
 
 
@@ -604,38 +647,44 @@ public class PayableInfoController {
      */
     @GetMapping("/queryStudentInfo")
     public CommonResult<PayableInfoStudentResultVO> queryStudentInfo(String cardNumber, String name) {
-        PayableInfoStudentResultVO payableInfoStudentResultVO = new PayableInfoStudentResultVO();
-        QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
-        QueryWrapper<PayableInfoWaterEntity> wrapper1 = new QueryWrapper<>();
-        wrapper.eq("card_number", cardNumber)
-                .eq("student_name", name);
-        wrapper1.eq("card_number", cardNumber)
-                .eq("student_name", name);
-        List<PayableInfoWaterEntity> waterList = payableInfoWaterService.list(wrapper1);
-        if (waterList.size() > 0) {
-            waterList.forEach(water -> {
-                if (water.getCollegeName() != null || water.getClassName() != null) {
-                    payableInfoStudentResultVO.setMajor(water.getCollegeName() + water.getClassName());
-                }
-                payableInfoStudentResultVO.setIdCard(water.getStudentNo());
-                payableInfoStudentResultVO.setStudentName(water.getStudentName());
-
-            });
-        }
-
-        List<PayableInfoEntity> infoList = payableInfoService.list(wrapper);
-        if (infoList.size() > 0) {
-            infoList.forEach(info -> {
-
-                if (info.getCollegeName() != null || info.getClassName() != null) {
-                    payableInfoStudentResultVO.setMajor(info.getCollegeName() + info.getClassName());
-                }
-                payableInfoStudentResultVO.setIdCard(info.getStudentNo());
-                payableInfoStudentResultVO.setStudentName(info.getStudentName());
-            });
-        }
-
+//        PayableInfoStudentResultVO payableInfoStudentResultVO = new PayableInfoStudentResultVO();
+//        QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
+//        QueryWrapper<PayableInfoWaterEntity> wrapper1 = new QueryWrapper<>();
+//        wrapper.eq("card_number", cardNumber)
+//                .eq("student_name", name);
+//        wrapper1.eq("card_number", cardNumber)
+//                .eq("student_name", name);
+//        List<PayableInfoWaterEntity> waterList = payableInfoWaterService.list(wrapper1);
+//        if (waterList.size() > 0) {
+//            waterList.forEach(water -> {
+//                if (water.getCollegeName() != null || water.getClassName() != null) {
+//                    payableInfoStudentResultVO.setMajor(water.getCollegeName() + water.getClassName());
+//                }
+//            });
+//        }
+//
+//        List<PayableInfoEntity> infoList = payableInfoService.list(wrapper);
+//        if (infoList.size() > 0) {
+//            infoList.forEach(info -> {
+//
+//                if (info.getCollegeName() != null || info.getClassName() != null) {
+//                    payableInfoStudentResultVO.setMajor(info.getCollegeName() + info.getClassName());
+//                }
+//            });
+//        }
+//
+//        QueryWrapper<SchoolUser> schoolUserWapper = new QueryWrapper<>();
+//        schoolUserWapper.eq("card_number", cardNumber);
+//        SchoolUser one = schoolUserService.getOne(schoolUserWapper);
+//        if (one != null) {
+//            payableInfoStudentResultVO.setIdCard(one.getIdCard());
+//            payableInfoStudentResultVO.setStudentName(one.getName());
+//        }
 
+        PayableInfoStudentResultVO payableInfoStudentResultVO = new PayableInfoStudentResultVO();
+        String idCard = wechatController.getIdCard(cardNumber);
+        payableInfoStudentResultVO.setStudentName(name);
+        payableInfoStudentResultVO.setIdCard(idCard);
         return CommonResult.ok().setResult(payableInfoStudentResultVO);
 
     }

+ 30 - 12
src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayableInfoWaterController.java

@@ -6,15 +6,18 @@ import com.chuanghai.smartschool.tuitionpayment.common.exception.BizCodeEnume;
 import com.chuanghai.smartschool.tuitionpayment.common.exception.RRException;
 import com.chuanghai.smartschool.tuitionpayment.common.utils.CommonResult;
 import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoWaterEntity;
+import com.chuanghai.smartschool.tuitionpayment.entity.SchoolUser;
 import com.chuanghai.smartschool.tuitionpayment.service.PayOrderService;
 import com.chuanghai.smartschool.tuitionpayment.service.PayableInfoService;
 import com.chuanghai.smartschool.tuitionpayment.service.PayableInfoWaterService;
+import com.chuanghai.smartschool.tuitionpayment.service.SchoolUserService;
 import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -37,6 +40,8 @@ public class PayableInfoWaterController {
     private PayableInfoController payableInfoController;
     @Autowired
     private WechatController wechatController;
+    @Autowired
+    private SchoolUserService schoolUserService;
 
     /**
      * excel 导入学生学费相关原始数据
@@ -69,21 +74,34 @@ public class PayableInfoWaterController {
         wrapper.isNull("card_number");
         //更新时间等参数
         List<PayableInfoWaterEntity> InfoEntityList = payableInfoWaterService.list(wrapper);
-        System.out.println(InfoEntityList.size());
         List<PayableInfoWaterEntity> objectList = new ArrayList<>();
         InfoEntityList.forEach(payableInfoWaterEntity -> {
-            String cardNumber = wechatController.getCardNumber(payableInfoWaterEntity.getStudentName(), payableInfoWaterEntity.getStudentNo());
-            String serial_number = "";
-            if (!cardNumber.endsWith("-")) {
-                String[] split = cardNumber.split("-");
-                cardNumber = split[0];
-                serial_number = split[1];
-            } else {
-                cardNumber = cardNumber.substring(0, cardNumber.length() - 1);
-                serial_number = cardNumber;
+
+//            String cardNumber = wechatController.getCardNumber(payableInfoWaterEntity.getStudentName(), payableInfoWaterEntity.getStudentNo());
+//            String serial_number = "";
+//            if (!cardNumber.endsWith("-")) {
+//                String[] split = cardNumber.split("-");
+//                cardNumber = split[0];
+//                serial_number = split[1];
+//            } else {
+//                cardNumber = cardNumber.substring(0, cardNumber.length() - 1);
+//                serial_number = cardNumber;
+//            }
+            QueryWrapper<SchoolUser> schoolWapper = new QueryWrapper<>();
+            schoolWapper.eq("id_card", payableInfoWaterEntity.getStudentNo()).last("limit 1");
+            SchoolUser schoolUser = schoolUserService.getOne(schoolWapper);
+            if (schoolUser != null) {
+                String cardNumber = schoolUser.getCardNumber();
+                String studentNo = schoolUser.getStudentNo();
+                if (studentNo != null) {
+                    payableInfoWaterEntity.setSerialNumber(studentNo);
+                }
+                payableInfoWaterEntity.setCardNumber(cardNumber);
             }
-            payableInfoWaterEntity.setCardNumber(cardNumber);
-            payableInfoWaterEntity.setSerialNumber(serial_number);
+
+            payableInfoWaterEntity.setPayCreateTime(LocalDateTime.now());
+            payableInfoWaterEntity.setPayItemType("1");
+            payableInfoWaterEntity.setPayNoticeType("1");
 
           //  payableInfoWaterEntity.setPayableAccount(payableInfoService.queryPayItemByName(payableInfoWaterEntity.getPaymentItem()));
             objectList.add(payableInfoWaterEntity);

+ 212 - 60
src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/WechatController.java

@@ -9,14 +9,8 @@ import com.chuanghai.smartschool.tuitionpayment.common.exception.RRException;
 import com.chuanghai.smartschool.tuitionpayment.common.utils.CommonResult;
 import com.chuanghai.smartschool.tuitionpayment.config.WechatConfig;
 import com.chuanghai.smartschool.tuitionpayment.config.WeixiaoConfig;
-import com.chuanghai.smartschool.tuitionpayment.entity.PayItem;
-import com.chuanghai.smartschool.tuitionpayment.entity.PayOrderEntity;
-import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoEntity;
-import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoWaterEntity;
-import com.chuanghai.smartschool.tuitionpayment.service.PayItemService;
-import com.chuanghai.smartschool.tuitionpayment.service.PayOrderService;
-import com.chuanghai.smartschool.tuitionpayment.service.PayableInfoService;
-import com.chuanghai.smartschool.tuitionpayment.service.PayableInfoWaterService;
+import com.chuanghai.smartschool.tuitionpayment.entity.*;
+import com.chuanghai.smartschool.tuitionpayment.service.*;
 import com.chuanghai.smartschool.tuitionpayment.vo.PayableInfoStudentResultVO;
 import com.chuanghai.smartschool.tuitionpayment.vo.WeixiaoVO;
 import com.fasterxml.jackson.core.type.TypeReference;
@@ -31,15 +25,14 @@ import org.springframework.http.ResponseEntity;
 import org.springframework.http.converter.StringHttpMessageConverter;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Controller;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.client.RestTemplate;
 
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 微信相关接口
@@ -57,14 +50,6 @@ public class WechatController {
     @Autowired
     private WeixiaoConfig weixiaoConfig;
 
-    /**
-     * 用于记录用户的access_token
-     */
-    private String accessTokenPublic = "";
-    /**
-     * 用于记录催缴的次数   计时器
-     */
-    private Integer askCount = 0;
 
     @Autowired
     private PayableInfoService payableInfoService;
@@ -78,6 +63,26 @@ public class WechatController {
     private FeedbackMsgController feedbackMsgController;
     @Autowired
     private PayItemService payItemService;
+    @Autowired
+    private SchoolUserService schoolUserService;
+
+    /**
+     * 用于记录用户的access_token
+     */
+    private String accessTokenPublic = "";
+    /**
+     * 用于记录催缴的次数   计时器
+     */
+    private Integer askCount = 0;
+    /**
+     * 微校中的学校组织代码
+     */
+    private String schoolOrgId;
+    /**
+     * 用于记录当前获取微校用户的页码信息
+     */
+    private static Integer userPage = 1;
+
 
     /**
      * 微信授权回调地址
@@ -184,6 +189,8 @@ public class WechatController {
             ObjectMapper mapper = new ObjectMapper();
             String userInfoUrl = "https://open.wecard.qq.com/cgi-bin/oauth2/token";
             Map<String, String> userInfoParam = new HashMap<>();
+            // userInfoParam.put("app_key","48103AB41FFBC5FE");
+            // userInfoParam.put("app_secret", "5B7FB4D3CC243695EED3693044D0FC54");
             userInfoParam.put("app_key", weixiaoConfig.getAppKey());
             userInfoParam.put("app_secret", weixiaoConfig.getAppSecret());
             userInfoParam.put("grant_type", "client_credentials");
@@ -195,56 +202,199 @@ public class WechatController {
             });
             accessTokenPublic = userInfoMap.get("access_token").toString();
         } catch (Exception e) {
-            e.printStackTrace();
+            throw new RRException(BizCodeEnume.TOKET_INVALID, "微校token获取失败");
+
+        }
+    }
+
+
+    /**
+     * 获取微校的组织结构
+     *
+     * @return
+     */
+    @PostMapping("/getSchoolOrg")
+    public String getSchoolOrg() {
+
+        String orgInfoUrl = "https://open.wecard.qq.com/cgi-bin/user/org-edu-list";
+        MultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
+        map.add("access_token", accessTokenPublic);
+        RestTemplate restTemplate = new RestTemplate();
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+
+        HttpEntity<MultiValueMap<String, Object>> request = new HttpEntity<>(map, headers);
+        ResponseEntity<String> responseEntity = restTemplate.postForEntity(orgInfoUrl, request, String.class);
+        JSONObject jsonObj = JSON.parseObject(responseEntity.getBody());
+
+        JSONArray orgArray = jsonObj.getJSONArray("organization");
+        if (orgArray != null) {
+            JSONObject jsonObject = JSONObject.parseObject(orgArray.get(0).toString());
+            schoolOrgId = jsonObject.get("id").toString();
         }
+        return schoolOrgId;
     }
 
     /**
+     * 获取微校用户的信息
+     *
+     * @return
+     */
+    @PostMapping("getSchoolUser")
+    @ResponseBody
+    public String getSchoolUser() {
+        //先判断是否获取过学校的组织结构编号
+        if (schoolOrgId == null) {
+            getSchoolOrg();
+        }
+        String userInfoUrl = "https://open.wecard.qq.com/cgi-bin/user/get-org-users";
+        MultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
+        map.add("access_token", accessTokenPublic);
+        map.add("org_id", schoolOrgId);
+        map.add("fetch_child", 1);
+        map.add("page", userPage);
+        map.add("page_size", 5000);//5000
+
+        RestTemplate restTemplate = new RestTemplate();
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+
+        HttpEntity<MultiValueMap<String, Object>> request = new HttpEntity<>(map, headers);
+        ResponseEntity<String> responseEntity = restTemplate.postForEntity(userInfoUrl, request, String.class);
+        JSONObject jsonObj = JSON.parseObject(responseEntity.getBody());
+        Integer total = Integer.parseInt(jsonObj.get("total").toString());
+        //获得总页码数
+        int totalPage = (int) Math.ceil(total / 5000);//5000
+        JSONArray userlist = jsonObj.getJSONArray("userlist");
+        ObjectMapper mapper = new ObjectMapper();
+        ArrayList<SchoolUser> schoolUserList = new ArrayList<>();
+        if (userlist != null) {
+            userlist.forEach(user -> {
+                SchoolUser schoolUser = new SchoolUser();
+                Calendar calendar = Calendar.getInstance();
+                int year = calendar.getWeekYear();
+                try {
+                    Map<String, Object> jsonMap = mapper.readValue(JSONObject.toJSON(user).toString(), new TypeReference<Map<String, Object>>() {
+                    });
+                    if (jsonMap.get("card_number") != null) {
+                        schoolUser.setCardNumber(jsonMap.get("card_number").toString());
+                        String card_number = jsonMap.get("card_number").toString();
+                        if (!card_number.startsWith("VIS") && !card_number.startsWith("REG") && !card_number.startsWith("p")) {
+                            if (card_number.length() > 5 && card_number.length() < 18) {
+                                if (card_number.length() != 11) {
+                                    schoolUser.setStudentNo(card_number);
+                                }
+                            }
+                        }
+                    }
+                    if (jsonMap.get("serial_number") != null) {
+                        if (!(jsonMap.get("serial_number").toString().equals(""))) {
+                            schoolUser.setStudentNo(jsonMap.get("serial_number").toString());
+                        }
+                    }
+                    if (jsonMap.get("name") != null) {
+                        schoolUser.setName(jsonMap.get("name").toString());
+                    }
+                    if (jsonMap.get("id_card") != null) {
+                        schoolUser.setIdCard(jsonMap.get("id_card").toString());
+
+                    }
+
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                // 通过cardNumbe查询用户是否存在
+                SchoolUser schoolUserInBase = querySchoolUser(schoolUser.getCardNumber());
+                if (schoolUserInBase.getId() != null) {
+                    schoolUser.setId(schoolUserInBase.getId());
+                }
+                //将得到的数据封装进list集合中,批量添加数据
+                schoolUserList.add(schoolUser);
+            });
+        }
+        //批量添加数据
+        if (schoolUserList.size() > 0){
+            schoolUserService.saveOrUpdateBatch(schoolUserList);
+        }
+        if (userPage <= totalPage) {
+            userPage += 1;
+            getSchoolUser();
+
+        } else {
+            return String.valueOf(userPage);
+        }
+        return String.valueOf(totalPage);
+    }
+
+
+    /**
+     * 重置微校的计数页码
+     * @param page
+     * @return
+     */
+    @GetMapping("resetUserPage")
+    @ResponseBody
+    public String resetUserPage(String page){
+        Integer thisUserOage = userPage;
+        userPage = Integer.parseInt(page);
+        return "修改前页码计数器 --"+thisUserOage+"  修改后页码计数器---"+userPage;
+    }
+
+    /**
+     * 通过cardNumber判断该用户是否存在于数据库SchoolUser表当中
+     *
+     * @param cardNumber
+     * @param
+     * @return
+     */
+    @PostMapping("/querySchoolUser")
+    public SchoolUser querySchoolUser(String cardNumber) {
+        QueryWrapper<SchoolUser> wrapper = new QueryWrapper<>();
+        //通过微校用户的 cardNumber idCard workNo studentNo 四者均为唯一标识查找用户是否存在数据库中
+        wrapper.eq("card_number", cardNumber);
+        List<SchoolUser> list = schoolUserService.list(wrapper);
+        SchoolUser schoolUser = new SchoolUser();
+        if (list.size() > 0) {
+            schoolUser = list.get(0);
+        }
+        return schoolUser;
+    }
+
+
+    /**
      * 通过学生姓名 身份证查找用户的cardNumber
      *
-     * @param studentName
-     * @param idCard
+     * @param cardNumber
      * @return
      */
     @GetMapping("getWeiXiaoToken1")
     @ResponseBody
-    public String getCardNumber(String studentName, String idCard) {
-        //学生cradNumber(2020级以后的为身份证号)
-        String card_number = "";
-        //学生编号(2020级以后的为学号)
-        String serial_number = "";
+    public String getIdCard(String cardNumber) {
 
         RestTemplate client = new RestTemplate();
         ObjectMapper mapper = new ObjectMapper();
         String userInfoUrl = "https://open.wecard.qq.com/cgi-bin/user/search";
         Map<String, String> userInfoParam = new HashMap<>();
         userInfoParam.put("access_token", accessTokenPublic);
-        userInfoParam.put("keywords", studentName);
+        userInfoParam.put("keywords", cardNumber);
         ResponseEntity<String> userInfoResponse = client.postForEntity(userInfoUrl, userInfoParam, String.class);
         JSONObject jsonObj = JSON.parseObject(userInfoResponse.getBody());
         JSONArray userlist = jsonObj.getJSONArray("userlist");
-        for (int m = 0; m < userlist.size(); m++) {
+        String id_card = "";
             try {
-                Map<String, Object> userInfoMap = mapper.readValue(userlist.get(m).toString(), new TypeReference<Map<String, Object>>() {
+                Map<String, Object> userInfoMap = mapper.readValue(userlist.get(0).toString(), new TypeReference<Map<String, Object>>() {
                 });
-                String id_card = "";
+
                 if (userInfoMap.get("id_card") != null) {
                     id_card = userInfoMap.get("id_card").toString();
                 }
-                if (idCard.equals(id_card)) {
-                    if (userInfoMap.get("card_number") != null) {
-                        card_number = userInfoMap.get("card_number").toString();
-                    }
-                }
-                if (userInfoMap.get("serial_number") != null) {
-                    serial_number = userInfoMap.get("serial_number").toString();
-                }
+
             } catch (Exception e) {
                 e.printStackTrace();
             }
-        }
 
-        return card_number+"-"+serial_number;
+
+        return id_card;
     }
 
 
@@ -287,10 +437,10 @@ public class WechatController {
         WeixiaoVO weixiaoVO = new WeixiaoVO();
         QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
         QueryWrapper<PayableInfoWaterEntity> water = new QueryWrapper<>();
-        wrapper.eq("pay_notice_type", "1")
-                .eq("payment_item", itemName);
-        water.eq("pay_notice_type", "1")
-                .eq("payment_item", itemName);
+        wrapper.eq("payment_item", itemName)
+                .eq("pay_notice_type", "1");
+        water.eq("payment_item", itemName)
+                .eq("pay_notice_type", "1");
         List<PayableInfoEntity> payableInfoEntityList = payableInfoService.list(wrapper);
         List<PayableInfoWaterEntity> payableInfoWaterEntityList = payableInfoWaterService.list(water);
 
@@ -309,10 +459,12 @@ public class WechatController {
                 payableInfoWaterService.updateById(payableInfoEntityWater);
             });
         }
+
+        weixiaoVO.setCardNumberList(cardNumberList);
         weixiaoVO.setCardNumberList(cardNumberList);
         weixiaoVO.setTitle(itemName + "缴纳通知");
-        weixiaoVO.setSender("财务办公室");
-        weixiaoVO.setContent("同学你好," + itemName + "缴费已经开始,请尽快查看缴费详情完成缴费,谢谢合作!");
+        weixiaoVO.setSender("南昌交通学院");
+        weixiaoVO.setContent("您有一笔" + itemName + "账单,请在尽快缴纳");
         JSONObject jsonObject = (JSONObject) JSONObject.toJSON(weixiaoVO);
         return notice(jsonObject);
     }
@@ -333,7 +485,7 @@ public class WechatController {
             QueryWrapper<PayableInfoWaterEntity> water = new QueryWrapper<>();
             wrapper.in("pay_item_type", "1", "3")
                     .eq("payment_item", itemName);
-            water.eq("pay_notice_type", "1")
+            water.eq("pay_item_type", "1")
                     .eq("payment_item", itemName);
             List<PayableInfoEntity> payableInfoEntityList = payableInfoService.list(wrapper);
             List<PayableInfoWaterEntity> payableInfoWaterEntityList = payableInfoWaterService.list(water);
@@ -349,13 +501,11 @@ public class WechatController {
                 });
             }
         }
-
-
         WeixiaoVO weixiaoVO = new WeixiaoVO();
         weixiaoVO.setCardNumberList(cardNumberList);
         weixiaoVO.setTitle(itemName + "催缴通知");
-        weixiaoVO.setSender("财务办公室");
-        weixiaoVO.setContent("同学你好," + itemName + "缴费已经开始,请尽快查看缴费详情完成缴费,谢谢合作!");
+        weixiaoVO.setSender("南昌交通学院");
+        weixiaoVO.setContent("您有一笔" + itemName + "账单,请在尽快缴纳");
         JSONObject json = (JSONObject) JSONObject.toJSON(weixiaoVO);
         return notice(json);
 
@@ -420,8 +570,8 @@ public class WechatController {
 
             }
             weixiaoVO.setCardNumberList(cardNumberList);
-            weixiaoVO.setContent("同学你好,你的" + itemName + "缴费订单异常缴费失败,请尽快查看缴费详情,并再次缴费。若为系统原因,请及时反馈!");
-            weixiaoVO.setSender("财务办公室");
+            weixiaoVO.setContent("您的" + itemName + "订单缴费失败,请尽快查看缴费详情,并再次缴费。若为系统原因,请及时反馈!");
+            weixiaoVO.setSender("南昌交通学院");
             JSONObject jsonObject = (JSONObject) JSONObject.toJSON(weixiaoVO);
             notice(jsonObject);
             //更新订单异常推送的状态
@@ -490,8 +640,9 @@ public class WechatController {
                 });
             }
             weixiaoVO.setCardNumberList(cardNumberList);
-            weixiaoVO.setContent("同学你好," + itemName + "缴费详情已经下发,请尽快查看缴费项目并完成缴费,谢谢配合!");
-            weixiaoVO.setSender("财务办公室");
+            weixiaoVO.setCardNumberList(cardNumberList);
+            weixiaoVO.setSender("南昌交通学院");
+            weixiaoVO.setContent("您有一笔" + itemName + "账单,请在尽快缴纳");
             JSONObject jsonObject = (JSONObject) JSONObject.toJSON(weixiaoVO);
             return notice(jsonObject);
         } else {
@@ -511,8 +662,9 @@ public class WechatController {
                     weixiaoVO.setTitle(payableInfoEntity.getPaymentItem() + "缴纳通知");
                 });
                 weixiaoVO.setCardNumberList(cardNumberList);
-                weixiaoVO.setContent("同学你好," + itemName + "缴费详情已经下发,请尽快查看缴费项目并完成缴费,谢谢配合!");
-                weixiaoVO.setSender("财务办公室");
+                weixiaoVO.setCardNumberList(cardNumberList);
+                weixiaoVO.setSender("南昌交通学院");
+                weixiaoVO.setContent("您有一笔" + itemName + "账单,请在尽快缴纳");
                 JSONObject jsonObject = (JSONObject) JSONObject.toJSON(weixiaoVO);
                 return notice(jsonObject);
             }
@@ -540,7 +692,7 @@ public class WechatController {
         weixiaoVO.setTitle("缴费反馈处理通知");
         weixiaoVO.setCardNumberList(cardNumberList);
         weixiaoVO.setContent(content);
-        weixiaoVO.setSender("财务办公室");
+        weixiaoVO.setSender("南昌交通学院");
         JSONObject jsonObject = (JSONObject) JSONObject.toJSON(weixiaoVO);
         feedbackMsgController.handleFeedbackMsg(id, content);
         return notice(jsonObject);

+ 15 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/dao/SchoolUserDao.java

@@ -0,0 +1,15 @@
+package com.chuanghai.smartschool.tuitionpayment.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.chuanghai.smartschool.tuitionpayment.entity.SchoolUser;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Author: binguo
+ * @Date: 2022/7/20 星期三 19:32
+ * @Description: com.chuanghai.smartschool.tuitionpayment.dao
+ * @Version: 1.0
+ */
+@Mapper
+public interface SchoolUserDao extends BaseMapper<SchoolUser> {
+}

+ 34 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/entity/SchoolUser.java

@@ -0,0 +1,34 @@
+package com.chuanghai.smartschool.tuitionpayment.entity;
+
+import lombok.Data;
+
+/**
+ * @Author: binguo
+ * @Date: 2022/7/29 星期五 14:18
+ * @Description: com.chuanghai.smartschool.tuitionpayment.entity
+ * @Version: 1.0
+ */
+@Data
+public class SchoolUser {
+    /**
+     * 微校用户编号
+     */
+    private Long id;
+    /**
+     * 学生姓名
+     */
+    private String name;
+    /**
+     * 学生微校卡号
+     */
+    private String cardNumber;
+    /**
+     * 学生身份证
+     */
+    private String idCard;
+    /**
+     * 学生学号
+     */
+    private String studentNo;
+}
+

+ 11 - 27
src/main/java/com/chuanghai/smartschool/tuitionpayment/listener/aliexcel/MyPayableInfoImportListener.java

@@ -8,10 +8,7 @@ import com.chuanghai.smartschool.tuitionpayment.common.exception.RRException;
 import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoEntity;
 import com.chuanghai.smartschool.tuitionpayment.service.PayableInfoService;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.StringUtils;
 
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -50,36 +47,23 @@ public class MyPayableInfoImportListener extends AnalysisEventListener<PayableIn
 
     private void inertData() {
         if (list.size() > 0) {
+            if (list.get(0).getPaymentItem().equals("水费缴纳")) {
+                throw new RRException(BizCodeEnume.FILE_IMPORT_ERROR,"当前为"+list.get(0).getPaymentItem()+"模板,请使用正确的模板导入数据");
+            }
             list.forEach(info -> {
-                PayableInfoEntity infoEntity = query(info.getPaymentItem(), info.getStudentNo(), info.getYears(), info.getStudentName());
-                if (info.getPaymentItem().equals("水费缴纳")) {
-                    throw new RRException(BizCodeEnume.FILE_IMPORT_ERROR,"当前为"+infoEntity.getPaymentItem()+"模板,请使用正确的模板导入数据");
-                }
-                if (infoEntity != null) {
-                    throw new RRException(BizCodeEnume.DATA_IS_EXIST, "导入失败," + info.getStudentName() + " "
-                            + info.getStudentNo() + " 已存在 " + info.getYears() + " 时间段的 " + info.getPaymentItem() + " 缴费信息,请核对完毕之后重新导入");
-                }
-                if (info.getNotMustMoney().equals("无")) {
-                    info.setNotMustMoney("");
-                }
-                info.setPayCreateTime(LocalDateTime.now());
-                info.setPayItemType("1");
-                info.setPayNoticeType("1");
-                info.setPayOrderLoan(new BigDecimal("0.00"));
-                if (StringUtils.hasText(info.getNotMustMoney())) {
-                    info.setNotPayDetail(info.getMustMoney() + "/" + info.getNotMustMoney());
-                } else {
-                    info.setNotPayDetail(info.getMustMoney());
-                }
-                String[] split = info.getNotPayDetail().split("/");
-                info.setNotPaySize(split.length);
+//                PayableInfoEntity infoEntity = query(info.getPaymentItem(), info.getStudentNo(), info.getYears(), info.getStudentName());
+//
+//                if (infoEntity != null) {
+//                    throw new RRException(BizCodeEnume.DATA_IS_EXIST, "导入失败," + info.getStudentName() + " "
+//                            + info.getStudentNo() + " 已存在 " + info.getYears() + " 时间段的 " + info.getPaymentItem() + " 缴费信息,请核对完毕之后重新导入");
+//                }
+
             });
         }
         try {
             payableInfoService.saveBatch(list);
         } catch (Exception e) {
-            e.printStackTrace();
-            throw new RRException(BizCodeEnume.DATA_IS_EXIST,"导入失败,导入模板中存在冲突数据,请核查后重新导入");
+            throw new RRException(BizCodeEnume.DATA_IS_EXIST, "导入失败,导入模板中重复数据,请核查后重新导入");
         }
         list.clear();
     }

+ 7 - 10
src/main/java/com/chuanghai/smartschool/tuitionpayment/listener/aliexcel/MyPayableInfoWaterImportListener.java

@@ -49,21 +49,18 @@ public class MyPayableInfoWaterImportListener extends AnalysisEventListener<Paya
     private void inertData() {
         if (list.size() > 0) {
             list.forEach(info -> {
-                PayableInfoWaterEntity waterEntity = query(info.getPaymentItem(), info.getStudentNo(), info.getPayMonth(), info.getStudentName());
-                if (waterEntity != null) {
-                    throw new RRException(BizCodeEnume.DATA_IS_EXIST, "导入失败," + info.getStudentName() + " "
-                            + info.getStudentNo() + " 已存在 " + info.getPayMonth() + " 时间段的 " + info.getPaymentItem() + " 缴费信息,请核对完毕之后重新导入");
-                }
-                info.setPayCreateTime(LocalDateTime.now());
-                info.setPayItemType("1");
-                info.setPayNoticeType("1");
+//                PayableInfoWaterEntity waterEntity = query(info.getPaymentItem(), info.getStudentNo(), info.getPayMonth(), info.getStudentName());
+//                if (waterEntity != null) {
+//                    throw new RRException(BizCodeEnume.DATA_IS_EXIST, "导入失败," + waterEntity.getStudentName() + " "
+//                            + waterEntity.getStudentNo() + " 已存在 " + waterEntity.getPayMonth() + " 时间段的 " + waterEntity.getPaymentItem() + " 缴费信息,请核对完毕之后重新导入");
+//                }
+
             });
         }
         try {
             payableInfoWaterService.saveBatch(list);
         } catch (Exception e) {
-            e.printStackTrace();
-            throw new RRException(BizCodeEnume.DATA_IS_EXIST, "导入失败,导入模板中存在冲突数据,请核查后重新导入");
+            throw new RRException(BizCodeEnume.DATA_IS_EXIST, "导入失败,导入模板中重复数据,请核查后重新导入");
         }
 
         list.clear();

+ 1 - 1
src/main/java/com/chuanghai/smartschool/tuitionpayment/service/PayOrderService.java

@@ -58,7 +58,7 @@ public interface PayOrderService extends IService<PayOrderEntity> {
 
     void exportOrderTxt(HttpServletResponse response, PayOrderQueryTO queryTO, List<String> downIDs) throws IOException;
 
-    void exportOrderTxtQuarter(HttpServletResponse response) throws IOException;
+    void exportOrderTxtQuarter(HttpServletResponse response, String type) throws IOException;
 
     Integer queryCurrentPayedRecordNum(PayOrderQueryTO queryTO);
 

+ 13 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/service/SchoolUserService.java

@@ -0,0 +1,13 @@
+package com.chuanghai.smartschool.tuitionpayment.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.chuanghai.smartschool.tuitionpayment.entity.SchoolUser;
+
+/**
+ * @Author: binguo
+ * @Date: 2022/7/20 星期三 19:29
+ * @Description: com.chuanghai.smartschool.tuitionpayment.service
+ * @Version: 1.0
+ */
+public interface SchoolUserService extends IService<SchoolUser> {
+}

+ 41 - 13
src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayOrderServiceImpl.java

@@ -38,6 +38,7 @@ import java.io.IOException;
 import java.math.BigDecimal;
 import java.net.URLEncoder;
 import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -67,8 +68,8 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
     private PayItemDetailController payItemDetailController;
     @Autowired
     private PayableInfoController payableInfoController;
-    @Autowired
-    private PayDetailBankController payDetailBankController;
+//    @Autowired
+//    private PayDetailBankController payDetailBankController;
     @Autowired
     private BankDetailController bankDetailController;
     @Autowired
@@ -225,9 +226,12 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
         for (int a = 0; a < bankDetailListVOS.size(); a++) {
             if (bankDetailListVOS.get(a).getBankName().equals("建设银行")) {
                 ccbStr = bankDetailListVOS.get(a).getDetail();
+                payOrderReceiveVO.setBankId(bankDetailListVOS.get(a).getBankId());
+
             }
             if (bankDetailListVOS.get(a).getBankName().equals("农商银行")) {
                 rcbStr = bankDetailListVOS.get(a).getDetail();
+                payOrderReceiveVO1.setBankId(bankDetailListVOS.get(a).getBankId());
             }
         }
 
@@ -389,6 +393,8 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
             OrderReceiveTO orderReceiveTO = orderReceiveTOS.get(m);
             String cardNumber1 = orderReceiveTO.getCardNumber();
             PayOrderReceiveVO payOrderReceiveVO1 = orderReceiveTO.getPayOrderReceiveVO();
+            System.out.println("00000000000000000000000000000000");
+            System.out.println(payOrderReceiveVO1 );
             String studentNo = payOrderReceiveVO1.getStudentNo();
             String dorm = payOrderReceiveVO1.getDorm();
             if (dorm == null || dorm.equals("")) {
@@ -602,14 +608,27 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
                         }else {
                             System.out.println("222222222222222222222");
                             System.out.println(payInfoDetailVO);
+                            if ( payOrderReceiveVO1.getItemName().equals("学杂费") && !(payOrderReceiveVO1.getPayDetail().contains("/"))) {
+                                payOrderEntity.setNowPayAmount(
+                                        payOrderEntity.getRealPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP)
+                                                .subtract(parentNowPayDetailAmount).setScale(2, BigDecimal.ROUND_HALF_UP)
+                                                .subtract(parentOrderLone)
+                                                //减去未交明细的金额
+                                                .subtract(payInfoDetailVO.getNotPayDetailAmount().subtract(parentNowPayDetailAmount).subtract(parentOrderLone))
+
+                                        //.subtract(payInfoDetailVO.getPayDetailAmount())
+                                );
+                                System.out.println("+++++++++++++++++++++++++++   "+payInfoDetailVO.getNotPayDetailAmount().subtract(parentNowPayDetailAmount).subtract(parentOrderLone));
+                            }else {
+                                payOrderEntity.setNowPayAmount(
+                                        payOrderEntity.getRealPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP)
+                                                .subtract(parentNowPayDetailAmount).setScale(2, BigDecimal.ROUND_HALF_UP)
+                                                //  .subtract(notPayDetailAmount)
+                                                .subtract(parentOrderLone)
+                                        //.subtract(payInfoDetailVO.getPayDetailAmount())
+                                );
+                            }
 
-                            payOrderEntity.setNowPayAmount(
-                                    payOrderEntity.getRealPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP)
-                                            .subtract(parentNowPayDetailAmount).setScale(2, BigDecimal.ROUND_HALF_UP)
-                                            //  .subtract(notPayDetailAmount)
-                                            .subtract(parentOrderLone)
-                                    //.subtract(payInfoDetailVO.getPayDetailAmount())
-                            );
                             System.out.println( payOrderEntity.getNowPayAmount()+"          222222222222222222222");
 
                         }
@@ -687,6 +706,7 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
             createOrderResultVO.setAmount(payOrderEntity.getNowPayAmount());
             createOrderResultVO.setOrderNo(payOrderEntity.getOrderNo());
             createOrderResultVO.setPayMethod(payOrderEntity.getPayMethod());
+            createOrderResultVO.setBankId(payOrderReceiveVO1.getBankId());
             System.out.println(createOrderResultVO.getMsg() + "------------------------------------msg");
             createOrderResultVOList.add(createOrderResultVO);
         }
@@ -864,13 +884,21 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
      * @param response
      */
     @Override
-    public void exportOrderTxtQuarter(HttpServletResponse response) throws IOException {
+    public void exportOrderTxtQuarter(HttpServletResponse response, String type) throws IOException {
 
         QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
 
-        wrapper.eq("status", "2")
-                .le("finish_time", LocalDateTime.now())
-                .ge("finish_time", LocalDateTime.now().plusMinutes(-15L));
+        if (type.equals("quarter")) {
+            wrapper.eq("status", "2")
+                    .le("finish_time", LocalDateTime.now())
+                    .ge("finish_time", LocalDateTime.now().plusMinutes(-15L));
+        }else if ( type.equals("today") ){
+            wrapper.eq("status", "2")
+                    .le("finish_time", LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MAX))
+                    .ge("finish_time", LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MIN));
+        }
+
+
         wrapper.orderByDesc("finish_time").orderByDesc("create_time").orderByAsc("pay_for_identify");
         List<PayOrderEntity> parOrder = this.list(wrapper);
 

+ 17 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/SchoolUserServiceImpl.java

@@ -0,0 +1,17 @@
+package com.chuanghai.smartschool.tuitionpayment.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chuanghai.smartschool.tuitionpayment.dao.SchoolUserDao;
+import com.chuanghai.smartschool.tuitionpayment.entity.SchoolUser;
+import com.chuanghai.smartschool.tuitionpayment.service.SchoolUserService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: binguo
+ * @Date: 2022/7/20 星期三 19:31
+ * @Description: com.chuanghai.smartschool.tuitionpayment.service.impl
+ * @Version: 1.0
+ */
+@Service("schoolUserService")
+public class SchoolUserServiceImpl extends ServiceImpl<SchoolUserDao, SchoolUser> implements SchoolUserService {
+}

+ 4 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/utils/MyAES.java

@@ -22,6 +22,7 @@ public class MyAES {
 
     /**
      * 加密
+     *
      * @param sSrc 需要加密的字串
      * @return
      * @throws Exception
@@ -29,6 +30,7 @@ public class MyAES {
     public String encrypt(String sSrc) throws Exception {
         String sKey = weixiaoConfig.getAppKey();
         String sIv = weixiaoConfig.getAppSecret();
+
         sIv = sIv.substring(0, 16); // app_secret 取前16位
 
         Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
@@ -54,6 +56,7 @@ public class MyAES {
 
     /**
      * 解密
+     *
      * @param sSrc 需要解密的字串
      * @return
      * @throws Exception
@@ -77,6 +80,7 @@ public class MyAES {
         return originalString;
     }
 
+
     private byte[] hex2byte(String strhex) {
         if (strhex == null) {
             return null;

+ 25 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/vo/BankVO/BankAppKeyVO.java

@@ -0,0 +1,25 @@
+package com.chuanghai.smartschool.tuitionpayment.vo.BankVO;
+
+import lombok.Data;
+
+/**
+ * @Author: binguo
+ * @Date: 2022/7/28 星期四 17:59
+ * @Description: com.chuanghai.smartschool.tuitionpayment.vo.BankVO
+ * @Version: 1.0
+ */
+@Data
+public class BankAppKeyVO {
+    /**
+     * 银行编号
+     */
+    private Integer bankId;
+    /**
+     * 银行名称
+     */
+    private String  bankName;
+    /**
+     * 银行对应的openId
+     */
+    private String  openId;
+}

+ 5 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/vo/CreateOrderResultVO.java

@@ -27,6 +27,11 @@ public class CreateOrderResultVO {
      */
     private String payMethod;
     /**
+     * 支付银行ID
+     * @since 0.1.0
+     */
+    private Integer bankId;
+    /**
      * 支付金额
      * @since 0.1.0
      */

+ 5 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/vo/PayOrderReceiveVO.java

@@ -69,4 +69,9 @@ public class PayOrderReceiveVO {
      * 支付方式  1 建设银行   2 农商银行
      */
     private String payMethod;
+
+    /**
+     * 银行对应的ID
+     */
+    private Integer bankId;
 }

+ 12 - 4
src/main/resources/application.yml

@@ -5,11 +5,19 @@ server:
 spring:
   datasource:
     username: root
-    password: Chuanghai_2022.
-    url: jdbc:mysql://172.16.20.64:3306/tuition_payment?characterEncoding=utf-8&useSSL=FALSE&useAffectedRows=TRUE&allowMultiQueries=true&serverTimezone=GMT%2B8
+#    password: Chuanghai_2022.
+#    url: jdbc:mysql://172.16.20.64:3306/tuition_payment?characterEncoding=utf-8&useSSL=FALSE&useAffectedRows=TRUE&allowMultiQueries=true&serverTimezone=GMT%2B8
     driver-class-name: com.mysql.cj.jdbc.Driver
-#    password: root
-#    url: jdbc:mysql://127.0.0.1:3306/tuition_payment?characterEncoding=utf-8&useSSL=FALSE&useAffectedRows=TRUE&allowMultiQueries=true&serverTimezone=GMT%2B8
+    password: root
+    url: jdbc:mysql://127.0.0.1:3306/tuition_payment?characterEncoding=utf-8&useSSL=FALSE&useAffectedRows=TRUE&allowMultiQueries=true&serverTimezone=GMT%2B8
+
+  #配置文件传输的大小
+  servlet:
+    multipart:
+      enabled: true
+      file-size-threshold: 0
+      max-file-size: 10MB
+      max-request-size: 10MB
 
 # mybatis plus
 mybatis-plus:

+ 17 - 0
src/main/resources/mapper/tuitionpayment/SchoolUserDao.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.chuanghai.smartschool.tuitionpayment.dao.SchoolUserDao">
+
+    <!-- 可根据自己的需求,是否要使用 -->
+    <resultMap type="com.chuanghai.smartschool.tuitionpayment.entity.SchoolUser" id="schoolUserMap">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="cardNumber" column="card_number"/>
+        <result property="idCard" column="id_card"/>
+        <result property="studentNo" column="student_no"/>
+
+    </resultMap>
+
+
+</mapper>