Parcourir la source

1、修改订单excel导出模板
2、修改删除订单部分逻辑

Bingo il y a 4 ans
Parent
commit
2401876ece
32 fichiers modifiés avec 1135 ajouts et 631 suppressions
  1. 9 26
      src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/FeedbackMsgController.java
  2. 2 1
      src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayController.java
  3. 0 125
      src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayDetailBankController.java
  4. 0 25
      src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayItemController.java
  5. 0 2
      src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayMethodSettingController.java
  6. 8 9
      src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayOrderController.java
  7. 46 96
      src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayableInfoController.java
  8. 21 22
      src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayableInfoWaterController.java
  9. 1 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/TestController.java
  10. 42 15
      src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/WechatController.java
  11. 17 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/dao/PayOrderDeleteDao.java
  12. 17 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/dao/PayableInfoWaterDeleteDao.java
  13. 5 5
      src/main/java/com/chuanghai/smartschool/tuitionpayment/entity/PayOrderEntity.java
  14. 159 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/entity/PayableInfoWaterDeleteEntity.java
  15. 1 1
      src/main/java/com/chuanghai/smartschool/tuitionpayment/listener/aliexcel/MyPayableInfoImportListener.java
  16. 17 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/service/PayOrderDeleteService.java
  17. 1 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/service/PayOrderService.java
  18. 7 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/service/PayableInfoService.java
  19. 17 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/service/PayableInfoWaterDeleteService.java
  20. 17 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayOrderDeleteServiceImpl.java
  21. 125 165
      src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayOrderServiceImpl.java
  22. 104 72
      src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayServiceImpl.java
  23. 17 1
      src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayableInfoServiceImpl.java
  24. 14 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayableInfoWaterDeleteServiceImpl.java
  25. 9 62
      src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayableInfoWaterServiceImpl.java
  26. 103 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/to/ExcelTO/CommentItemTO.java
  27. 198 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/to/ExcelTO/PayOrderStatyTO.java
  28. 104 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/to/ExcelTO/PayOrderWaterTO.java
  29. 2 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/vo/WechatJsApiPayParamVO.java
  30. 4 4
      src/main/resources/application.yml
  31. 37 0
      src/main/resources/mapper/tuitionpayment/PayOrderDeleteDao.xml
  32. 31 0
      src/main/resources/mapper/tuitionpayment/PayableInfoWaterDeleteDao.xml

+ 9 - 26
src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/FeedbackMsgController.java

@@ -10,11 +10,8 @@ import com.chuanghai.smartschool.tuitionpayment.common.utils.PageUtils;
 import com.chuanghai.smartschool.tuitionpayment.entity.FeedbackMsgEntity;
 import com.chuanghai.smartschool.tuitionpayment.service.FeedbackMsgService;
 import com.chuanghai.smartschool.tuitionpayment.to.FeedbackMsgCreateTO;
-import com.chuanghai.smartschool.tuitionpayment.to.PayOrderQueryTO;
 import com.chuanghai.smartschool.tuitionpayment.vo.FeedbackMsgQueryVO;
-import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.util.StringUtils;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.ObjectError;
 import org.springframework.web.bind.annotation.*;
@@ -37,6 +34,8 @@ public class FeedbackMsgController {
 
     @Autowired
     private FeedbackMsgService feedbackMsgService;
+    @Autowired
+    private WechatController wechatController;
 
     /**
      * 新增反馈信息
@@ -55,8 +54,13 @@ public class FeedbackMsgController {
             throw new RRException(BizCodeEnume.PARAMETER_ERROR, error.getDefaultMessage());
         }
         feedbackMsgCreateTO.setFeedbackNoticeType("1");
-
-        feedbackMsgService.save(cardNumber, feedbackMsgCreateTO);
+        //TODO 此处cardNumber应为身份证号
+        String idCardName = wechatController.getIdCard(cardNumber);
+        String idCard = cardNumber;
+        if (idCardName != null) {
+            idCard = idCardName.split("-")[0];
+        }
+        feedbackMsgService.save(idCard, feedbackMsgCreateTO);
 
         return CommonResult.ok();
     }
@@ -98,25 +102,6 @@ public class FeedbackMsgController {
         return CommonResult.ok();
     }
 
-    /**
-     * 反馈列表【管理员】
-     * //    * @param adminToken 管理员token
-     *
-     * @return
-     * @apiNote 0.1.0新增keyword关键字查询
-     * @since 0.0.1
-     */
-    // @AdminLoginCheck
-//    @GetMapping("/list")
-//    public CommonResult<PageUtils<FeedbackMsgEntity>> listOfAdmin(//@RequestHeader("admin_token") String adminToken,
-//                                                                  String status,
-//                                                                  String keyword,
-//                                                                  PageParam pageParam){
-//        PageUtils page = feedbackMsgService.queryPageByStatus(status, keyword, pageParam);
-//
-//        return CommonResult.ok().setResult(page);
-//    }
-    // @AdminLoginCheck
     @PostMapping("/list")
     public CommonResult<PageUtils<FeedbackMsgEntity>> listOfAdmin( //@RequestHeader("admin_token") String adminToken,
                                                                    @RequestBody JSONObject jsonObject) {
@@ -163,8 +148,6 @@ public class FeedbackMsgController {
 
     /**
      * 下载完成缴费的学生名单
-     * <p>
-     * //  * @param adminToken 管理员token
      *
      * @param response
      * @apiNote 0.1.0新增按照支付方式下载字段

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

@@ -29,7 +29,7 @@ public class PayController {
 
     /**
      * 【建行】获取拉起微信支付的参数
- //    * @param cardNumber 当前登录用户标识
+     * @param cardNumber 当前登录用户标识
      * @param orderNo 订单号
      * @param openId 支付者唯一标识
      * @param secondOrderNo  携带第二次支付的订单号
@@ -42,6 +42,7 @@ public class PayController {
                                                              @RequestParam String orderNo,
                                                              @RequestParam String openId,
                                                                  String secondOrderNo) {
+
         WechatJsApiPayParamVO jsApiPayParam = payService.getCCBJsApiParam(openId, orderNo,secondOrderNo);
         return CommonResult.ok().setResult(jsApiPayParam);
     }

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

@@ -1,125 +0,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();
-//        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("/");
-//        }
-//
-//
-//    }
-//}

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

@@ -9,7 +9,6 @@ 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.entity.PayItem;
-import com.chuanghai.smartschool.tuitionpayment.service.PayDetailBankService;
 import com.chuanghai.smartschool.tuitionpayment.service.PayItemService;
 import com.chuanghai.smartschool.tuitionpayment.to.BankItemDetailTO.ReceiveBankItemDetailTO;
 import com.chuanghai.smartschool.tuitionpayment.vo.PayItemDetailVO;
@@ -34,10 +33,6 @@ public class PayItemController {
     @Autowired
     private PayItemService payItemService;
     @Autowired
-    private PayDetailBankService payDetailBankService;
-//    @Autowired
-//    private PayDetailBankController payDetailBankController;
-    @Autowired
     private BankItemDetailController bankItemDetailController;
 
     /**
@@ -96,26 +91,6 @@ public class PayItemController {
         return CommonResult.fail();
     }
 
-//    /**
-//     * 查询所有缴费项目
-//     *
-//     * @return
-//     */
-//    @PostMapping("/queryPayItemByName")
-//    public String queryPayItemByName(String name) {
-//        QueryWrapper<PayItem> wapper = new QueryWrapper<>();
-//        wapper.eq("item_name", name);
-//        List<PayItem> list = payItemService.list(wapper);
-//        String itemAccount = "";
-//        if (list.size() > 0) {
-//            PayItem payItem = list.get(0);
-//            itemAccount = payItem.getItemAccount();
-//            String start = itemAccount.substring(0, 3);
-//            String end = itemAccount.substring(itemAccount.length() - 4);
-//            itemAccount = payItem.getItemBank() + " (" + start + "****" + end + ")";
-//        }
-//        return itemAccount;
-//    }
 
 
     /**

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

@@ -29,7 +29,6 @@ public class PayMethodSettingController {
 
     /**
      * 支付方式列表
-     *
      * @param adminToken 管理员token
      * @return
      */
@@ -42,7 +41,6 @@ public class PayMethodSettingController {
 
     /**
      * 设置 payMethodId 为当前支付方式
-     *
      * @param adminToken 管理员token
      * @param payMethodId 支付方式id
      * @return

+ 8 - 9
src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayOrderController.java

@@ -47,8 +47,11 @@ public class PayOrderController {
     @Autowired
     private PayableInfoWaterService payableInfoWaterService;
 
-    @Autowired
-    private PayItemController payItemController;
+
+    @GetMapping("ss")
+    public void ss(String order){
+        payOrderService.getByOrderNo(order);
+    }
 
     /**
      * 创建支付订单
@@ -103,14 +106,12 @@ public class PayOrderController {
     /**
      * 查询订单状态【用户端】
      * <p>
-     * // * @param cardNumber 当前登录用户cardNumber
      *
      * @param orderNo 订单号
      * @return
      */
     @GetMapping("{orderNo}/orderStatu")
-    public CommonResult<OrderStatusVO> queryOrderStatus( //@RequestHeader("card_number") String cardNumber,
-                                                         @PathVariable("orderNo") String orderNo) {
+    public CommonResult<OrderStatusVO> queryOrderStatus( @PathVariable("orderNo") String orderNo) {
         OrderStatusVO orderStatusVO = payOrderService.queryOrderStatus(orderNo);
         return CommonResult.ok().setResult(orderStatusVO);
     }
@@ -118,8 +119,7 @@ public class PayOrderController {
     /**
      * 订单列表【管理端】
      * <p>
-     * //   * @param adminToken 管理员token
-     *
+     * @param adminToken 管理员token
      * @param queryTO   查询条件
      * @param pageParam 分页参数
      * @return
@@ -198,8 +198,7 @@ public class PayOrderController {
      * @return
      */
     @GetMapping("queryOrderStatu")
-    public CommonResult<OrderStatusVO> queryOrderStatusByAdmin(//@RequestHeader("admin_token") String adminToken,
-                                                               @RequestParam String orderNo) {
+    public CommonResult<OrderStatusVO> queryOrderStatusByAdmin( @RequestParam String orderNo) {
         OrderStatusVO orderStatusVO = payOrderService.queryOrderStatus(orderNo);
         return CommonResult.ok().setResult(orderStatusVO);
     }

+ 46 - 96
src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayableInfoController.java

@@ -17,6 +17,7 @@ import com.chuanghai.smartschool.tuitionpayment.to.PayOrderQueryTO;
 import com.chuanghai.smartschool.tuitionpayment.utils.ListPageUtil;
 import com.chuanghai.smartschool.tuitionpayment.vo.*;
 import com.chuanghai.smartschool.tuitionpayment.vo.PayItemInfoDetailVO.ItemInfoDetailVO;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -35,9 +36,6 @@ import java.util.Comparator;
 import java.util.List;
 import java.util.stream.Collectors;
 
-//import cn.afterturn.easypoi.excel.ExcelExportUtil;
-//import cn.afterturn.easypoi.excel.ExcelImportUtil;
-//import cn.afterturn.easypoi.excel.entity.ExportParams;
 
 /**
  * 学生应缴数据
@@ -46,6 +44,7 @@ import java.util.stream.Collectors;
  * @email codingliang@gmail.com
  * @date 2021-08-12 15:52:41
  */
+@Slf4j
 @RestController
 @RequestMapping("tuitionpayment/payableinfo")
 public class PayableInfoController {
@@ -192,7 +191,6 @@ public class PayableInfoController {
      * @throws IOException
      */
     @RequestMapping("exportTxt")
-    //@AdminLoginCheck
     public void exportTxt(PayOrderQueryTO queryTO,
                           HttpServletResponse response) throws IOException {
         List<String> downIDs = new ArrayList<>();
@@ -288,15 +286,25 @@ public class PayableInfoController {
         //更新时间等参数
         List<PayableInfoEntity> infoEntityList = payableInfoService.list(wrapper);
         List<PayableInfoEntity> objectList = new ArrayList<>();
-//        if (infoEntityList.size() == 0) {
-//            throw new RRException(BizCodeEnume.PARAMETER_ERROR, "当前项目为" + itemName + ",无法查询到项目数据,请核对");
-//        }
-        infoEntityList.forEach(payableInfoEntity -> {
-            // String cardNumber = wechatController.getCardNumber(payableInfoEntity.getStudentName(), payableInfoEntity.getStudentNo());
 
+        infoEntityList.forEach(payableInfoEntity -> {
             QueryWrapper<SchoolUser> schoolWapper = new QueryWrapper<>();
-            schoolWapper.eq("id_card", payableInfoEntity.getStudentNo()).last("limit 1");
+            schoolWapper.eq("id_card", payableInfoEntity.getStudentNo())
+            .last("limit 1");
             SchoolUser schoolUser = schoolUserService.getOne(schoolWapper);
+//            List<SchoolUser> list = schoolUserService.list(schoolWapper);
+//            SchoolUser schoolUser = new SchoolUser();
+//            String serialNumber = payableInfoService.getSerialNumber(payableInfoEntity.getStudentNo());
+//            System.out.println(serialNumber);
+//            if (list.size() > 0) {
+//                    for ( int h = 0; h< list.size(); h++) {
+//                        System.out.println(list.get(h));
+//                        if (serialNumber.equals(list.get(h).getStudentNo())) {
+//                            schoolUser = list.get(h);
+//                        }
+//                    }
+//            }
+            //通过学员的身份证查找对应的学号
             if (schoolUser != null) {
                 String cardNumber = schoolUser.getCardNumber();
                 String studentNo = schoolUser.getStudentNo();
@@ -331,44 +339,6 @@ public class PayableInfoController {
     }
 
 
-//    /**
-//     * 通过身份证调用活动管理平台数据库换取 微笑的cardNumber信息
-//     *
-//     * @param idCard
-//     * @return
-//     */
-//    public String getCardNumberByIdCard(String idCard, String inputType, String inputStr, String outPutType, String grade) {
-//        // 2020级以前学生的cardNumber不为身份证号,需要其他平台查询其card Number信息
-//        if (Integer.parseInt(grade) < 2021) {
-//            //表示输入的参数为身份证
-//            inputType = inputType == null ? "1" : inputType;
-//            //输入的参数
-//            inputStr = idCard;
-//            // 返回微校的cardNumber
-//            outPutType = outPutType == null ? "2" : outPutType;
-//
-//            String url = "https://chtech.ncjti.edu.cn/lamp/recordApi/consume/getUserInfo";
-//            MultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
-//            map.add("inputType", inputType);
-//            map.add("inputStr", inputStr);
-//            map.add("outPutType", outPutType);
-//
-//
-//            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(url, request, String.class);
-//            JSONObject jsonObj = JSON.parseObject(responseEntity.getBody());
-//            String cardNumber = jsonObj.get("result").toString();
-//            return cardNumber.equals("该用户暂无返回的身份标识") ? idCard : cardNumber;
-//        } else {
-//            return idCard;
-//        }
-//    }
-
-
     /**
      * 删除缴费信息
      *
@@ -420,7 +390,6 @@ public class PayableInfoController {
                                 .eq("pay_month", one.getPayMonth());
                         PayableInfoWaterEntity water = payableInfoWaterService.getOne(waterWapper);
                         waterIdList.add(water.getId());
-                        // remove = payableInfoWaterService.remove(waterWapper);
                     }
                 }
             } else {
@@ -492,7 +461,6 @@ public class PayableInfoController {
             wrapper.eq("id", id)
                     .eq("payment_item", itemName);
             PayableInfoEntity payableInfoEntity = payableInfoService.getOne(wrapper);
-            System.out.println("1267351653671271732------------- "+payableInfoEntity);
             //查找已经缴费的订单详情
             QueryWrapper<PayOrderEntity> orderWapper = new QueryWrapper<>();
             orderWapper.eq("payinfo_id", payableInfoEntity.getId())
@@ -539,15 +507,10 @@ public class PayableInfoController {
 
             String notPayDetail = "";
             if (StringUtils.hasText(payableInfoEntity.getNotMustMoney())) {
-                System.out.println("1");
                 notPayDetail = payableInfoEntity.getMustMoney() + "/" + payableInfoEntity.getNotMustMoney();
-//                notPayDetail = payableInfoEntity.getNotPayDetail();
             } else {
-                System.out.println("2");
                 notPayDetail = payableInfoEntity.getMustMoney();
             }
-            System.out.println("notPayDetailnotPayDetail"+notPayDetail);
-
             int notPayDetailCount = 0;
             String notPayDetailStr = "";
             String[] notPayDetailArray;
@@ -558,24 +521,13 @@ public class PayableInfoController {
 
             String[] orderPayDetailArray = orderPayDetail.split("/");
             String[] realPayDetailArray = realPayDetail1.split("/");
-              System.out.println(realPayDetail1);
-              System.out.println(orderPayDetail);
+
             listReal = new ArrayList<>(Arrays.asList(realPayDetailArray));
             listBOrder = new ArrayList<>(Arrays.asList(orderPayDetailArray));
-            System.out.println("--------------------------");
-            listReal.forEach(s -> {
-                System.out.println(s);
-            });
-            System.out.println("------------------------------------------");
-            listBOrder.forEach(s -> {
-                System.out.println(s);
-            });
-            System.out.println("------------------------------------------");
+
             //从realPayDetail1中删除已经缴费的明细,剩下代缴明细
             listReal.removeAll(listBOrder);
-            listReal.forEach(s -> {
-                System.out.println(s);
-            });
+
             String newRealPayDetail = "";
             if (listReal.size() == 1) {
                 payInfoDetailVO.setRealPayDetail(listReal.get(0));
@@ -604,10 +556,6 @@ public class PayableInfoController {
 
             listNot = new ArrayList<>(Arrays.asList(notPayDetailArray));
             listNot.removeAll(listReal);
-            System.out.println("-----------------------------------");
-            listNot.forEach(a->{
-                System.out.println(a);
-            });
 
             if (listNot.size() == 1) {
                 payInfoDetailVO.setNotPayDetail(listNot.get(0));
@@ -629,19 +577,10 @@ public class PayableInfoController {
             //订单总金额
             payInfoDetailVO.setRealPayAmount(payableInfoEntity.getRealPayAmount().setScale(2, RoundingMode.HALF_UP));
             BigDecimal notPayDetailAmount = BigDecimal.ZERO;
-//            if (payInfoDetailVO.getNotPayDetail() !=null && !(payInfoDetailVO.getNotPayDetail().equals(""))) {
-//                String[] split = payInfoDetailVO.getNotPayDetail().split("/");
-//                for (int m = 0; m < split.length; m++) {
-//                    BigDecimal bigDecimal = new BigDecimal(split[m].split(":")[1]);
-//                    notPayDetailAmount = notPayDetailAmount.add(bigDecimal);
-//                }
-//            }
             // 未支付明细金额
             payInfoDetailVO.setNotPayDetailAmount((payableInfoEntity.getRealPayAmount().subtract(realMount)).setScale(2, RoundingMode.HALF_UP));
 
         }
-        System.out.println("0000000-1-1-1-1-1 "+ payInfoDetailVO);
-
         return CommonResult.ok().setResult(payInfoDetailVO);
     }
 
@@ -659,13 +598,13 @@ public class PayableInfoController {
         PayableInfoStudentResultVO payableInfoStudentResultVO = new PayableInfoStudentResultVO();
         String idCardName = wechatController.getIdCard(cardNumber);
         if (idCardName.startsWith("-") || idCardName.endsWith("-")) {
-            throw new RRException(BizCodeEnume.DATA_IS_NOT_EXIST,"用户信息不存在,请点击刷新重新授权");
+            throw new RRException(BizCodeEnume.DATA_IS_NOT_EXIST, "用户信息不存在,请点击刷新重新授权");
         }
         String[] split = idCardName.split("-");
         payableInfoStudentResultVO.setStudentName(split[1]);
         payableInfoStudentResultVO.setIdCard(split[0]);
         if (!payableInfoStudentResultVO.getStudentName().equals(name)) {
-            throw new RRException(BizCodeEnume.DATA_IS_NOT_EXIST,"姓名与身份证不匹配");
+            throw new RRException(BizCodeEnume.DATA_IS_NOT_EXIST, "姓名与身份证不匹配");
         }
         return CommonResult.ok().setResult(payableInfoStudentResultVO);
 
@@ -731,7 +670,6 @@ public class PayableInfoController {
                     .eq("pay_year", payYear)
                     .in("status", "2", "3");
             List<PayOrderEntity> payOrderList = payOrderService.list(orderWapper);
-            //List<PayOrderEntity> payOrderList = payOrderService.queryAllOrderByParent(parentOrderNo, new PageParam()).getList();
             if (payOrderList.size() > 0) {
                 for (int i = 0; i < payOrderList.size(); i++) {
                     if (StringUtils.hasText(payOrderList.get(i).getPayDetail())) {
@@ -832,10 +770,7 @@ public class PayableInfoController {
         } else {
             detailStr = itemName;
         }
-
-
         itemInfoDetailVO.setItemNameDetail(detailStr);
-
         return CommonResult.ok().setResult(itemInfoDetailVO);
     }
 
@@ -854,7 +789,6 @@ public class PayableInfoController {
             detailStr = itemName;
         } else {
             QueryWrapper<PayableInfoEntity> info = new QueryWrapper<>();
-
             info.eq("payment_item", itemName)
                     .orderByDesc("pay_create_time")
                     .last("limit 1");
@@ -922,14 +856,15 @@ public class PayableInfoController {
     public CommonResult<StudentInfoVO> getUserInfo(@RequestParam("studentName") String studentName, @RequestParam("idCard") String idCard) {
         StudentInfoVO studentInfoVO = new StudentInfoVO();
         String userCardNumberName = wechatController.getUserCardNumber(studentName, idCard);
-        if (userCardNumberName.endsWith("-") ||userCardNumberName.startsWith("-")) {
-            throw new RRException(BizCodeEnume.DATA_IS_NOT_EXIST,"用户信息不存在,请核对身份信息");
+        log.info("根据姓名【{}】,身份证【{}】查询微校CardNumer【{}】", studentName, idCard, userCardNumberName);
+        if (userCardNumberName.endsWith("-") || userCardNumberName.startsWith("-")) {
+            throw new RRException(BizCodeEnume.DATA_IS_NOT_EXIST, "用户信息不存在,请核对身份信息");
         }
         String[] split = userCardNumberName.split("-");
         studentInfoVO.setCardNumber(split[0]);
         studentInfoVO.setStudentName(split[1]);
         if (!studentInfoVO.getStudentName().equals(studentName)) {
-            throw new RRException(BizCodeEnume.DATA_IS_NOT_EXIST,"姓名与身份证不匹配");
+            throw new RRException(BizCodeEnume.DATA_IS_NOT_EXIST, "姓名与身份证不匹配");
         }
 
         return CommonResult.ok().setResult(studentInfoVO);
@@ -938,27 +873,28 @@ public class PayableInfoController {
 
     /**
      * 通过缴费项目查询缴费年度信息
+     *
      * @param itemName
      * @return
      */
     @GetMapping("queryInfoYearByItem")
-    public CommonResult<List<String>> queryYearByItem(String itemName){
+    public CommonResult<List<String>> queryYearByItem(String itemName) {
         List<String> yearList = new ArrayList<>();
         if (itemName.equals("水费缴纳")) {
             QueryWrapper<PayableInfoWaterEntity> infoWapper = new QueryWrapper<>();
             infoWapper.eq("payment_item", itemName);
             List<PayableInfoWaterEntity> orderList = payableInfoWaterService.list(infoWapper);
             if (orderList.size() > 0) {
-                orderList.forEach(order->{
+                orderList.forEach(order -> {
                     yearList.add(order.getPayMonth());
                 });
             }
-        }else {
+        } else {
             QueryWrapper<PayableInfoEntity> infoWapper = new QueryWrapper<>();
             infoWapper.eq("payment_item", itemName);
             List<PayableInfoEntity> orderList = payableInfoService.list(infoWapper);
             if (orderList.size() > 0) {
-                orderList.forEach(order->{
+                orderList.forEach(order -> {
                     yearList.add(order.getYears());
                 });
             }
@@ -967,4 +903,18 @@ public class PayableInfoController {
         List uniqueStr = yearList.stream().distinct().collect(Collectors.toList());
         return CommonResult.ok().setResult(uniqueStr);
     }
+
+//    /**
+//     * 通过身份证查询缴费名单里对应人员的学号
+//     * @param studentNo   身份证
+//     * @return
+//     */
+//    public String getSerialNumber(String studentNo) {
+//        QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
+//        wrapper.eq("student_no", studentNo)
+//                .orderByDesc("pay_create_time")
+//                .last("limit 1");
+//        PayableInfoEntity one = payableInfoService.getOne(wrapper);
+//        return one.getSerialNumber();
+//    }
 }

+ 21 - 22
src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayableInfoWaterController.java

@@ -5,13 +5,12 @@ import com.chuanghai.smartschool.tuitionpayment.anno.AdminLoginCheck;
 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.PayableInfoWaterDeleteEntity;
 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 com.chuanghai.smartschool.tuitionpayment.service.*;
 import org.apache.poi.ss.formula.functions.T;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -35,11 +34,7 @@ public class PayableInfoWaterController {
     @Autowired
     private PayableInfoService payableInfoService;
     @Autowired
-    private PayOrderService payOrderService;
-    @Autowired
-    private PayableInfoController payableInfoController;
-    @Autowired
-    private WechatController wechatController;
+    private PayableInfoWaterDeleteService payableInfoWaterDeleteService;
     @Autowired
     private SchoolUserService schoolUserService;
 
@@ -76,20 +71,20 @@ public class PayableInfoWaterController {
         List<PayableInfoWaterEntity> InfoEntityList = payableInfoWaterService.list(wrapper);
         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;
-//            }
             QueryWrapper<SchoolUser> schoolWapper = new QueryWrapper<>();
-            schoolWapper.eq("id_card", payableInfoWaterEntity.getStudentNo()).last("limit 1");
+            schoolWapper.eq("id_card", payableInfoWaterEntity.getStudentNo())
+                    .last("limit 1");
             SchoolUser schoolUser = schoolUserService.getOne(schoolWapper);
+//            List<SchoolUser> list = schoolUserService.list(schoolWapper);
+//            SchoolUser schoolUser = new SchoolUser();
+//            String serialNumber = payableInfoService.getSerialNumber(payableInfoWaterEntity.getStudentNo());
+//            if (list.size() > 0) {
+//                for ( int h = 0; h< list.size(); h++) {
+//                    if (serialNumber.equals(list.get(h).getStudentNo())) {
+//                        schoolUser = list.get(h);
+//                    }
+//                }
+//            }
             if (schoolUser != null) {
                 String cardNumber = schoolUser.getCardNumber();
                 String studentNo = schoolUser.getStudentNo();
@@ -149,6 +144,10 @@ public class PayableInfoWaterController {
         List<PayableInfoWaterEntity> listWater = payableInfoWaterService.list(wrapper);
         if (listWater.size() > 0) {
             if (listWater.get(0).getPayItemType().equals("2")) {
+
+                PayableInfoWaterDeleteEntity payableInfoWaterDeleteEntity = new PayableInfoWaterDeleteEntity();
+                BeanUtils.copyProperties(listWater.get(0), payableInfoWaterDeleteEntity);
+                payableInfoWaterDeleteService.save(payableInfoWaterDeleteEntity);
                 payableInfoWaterService.removeById(waterEntity.getId());
                 return CommonResult.ok().setResult("该宿舍已经缴费,请与寝室长核对缴费信息");
             } else {
@@ -160,7 +159,7 @@ public class PayableInfoWaterController {
             }
 
         } else {
-            throw new RRException(BizCodeEnume.PARAMETER_ERROR, "该宿舍不存在"+payMonth+"缴费信息");
+            throw new RRException(BizCodeEnume.PARAMETER_ERROR, "该宿舍不存在" + payMonth + "缴费信息");
         }
 
 

+ 1 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/TestController.java

@@ -48,4 +48,5 @@ public class TestController {
 
         return "code=1111";
     }
+
 }

+ 42 - 15
src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/WechatController.java

@@ -190,8 +190,6 @@ 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");
@@ -253,7 +251,7 @@ public class WechatController {
         map.add("access_token", accessTokenPublic);
         map.add("org_id", schoolOrgId);
         map.add("fetch_child", 1);
-        map.add("page", userPage);
+        map.add("page", userPage); //userPage
         map.add("page_size", 5000);//5000
 
         RestTemplate restTemplate = new RestTemplate();
@@ -277,19 +275,22 @@ public class WechatController {
                 try {
                     Map<String, Object> jsonMap = mapper.readValue(JSONObject.toJSON(user).toString(), new TypeReference<Map<String, Object>>() {
                     });
+                    String card_number = "";
                     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("V") && !card_number.startsWith("R") && !card_number.startsWith("p")) {
-                            if (card_number.length() > 5 && card_number.length() < 18) {
-                                if (card_number.length() != 11) {
-                                    schoolUser.setStudentNo(card_number);
-                                }
-                            }
-                        }
+                        card_number = jsonMap.get("card_number").toString();
+//                        if (!card_number.startsWith("V") && !card_number.startsWith("R") && !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(""))) {
+                        if (!(jsonMap.get("serial_number").toString().equals("") || card_number.length() == 14)) {
                             schoolUser.setStudentNo(jsonMap.get("serial_number").toString());
                         }
                     }
@@ -310,6 +311,7 @@ public class WechatController {
                     schoolUser.setId(schoolUserInBase.getId());
                 }
                 //将得到的数据封装进list集合中,批量添加数据
+                // System.out.println(schoolUser);
                 schoolUserList.add(schoolUser);
             });
         }
@@ -426,6 +428,7 @@ public class WechatController {
         JSONArray userlist = jsonObj.getJSONArray("userlist");
         String name = "";
         String card_numbner = "";
+        String serialNumber = payableInfoService.getSerialNumber(idCard);
         if (userlist.size() > 0) {
             for (int m = 0; m < userlist.size(); m++) {
                 try {
@@ -435,7 +438,9 @@ public class WechatController {
                     if (userInfoMap.get("id_card") != null) {
                         if (userInfoMap.get("id_card").toString().equals(idCard)) {
                             if (userInfoMap.get("card_number") != null) {
-                                card_numbner = userInfoMap.get("card_number").toString();
+                                if ( userInfoMap.get("card_number").toString().equals(idCard) || serialNumber.equals(userInfoMap.get("card_number").toString()) ||serialNumber.equals(userInfoMap.get("serial_number").toString())) {
+                                    card_numbner = userInfoMap.get("card_number").toString();
+                                }
                             }
                         }
                     }
@@ -655,6 +660,29 @@ public class WechatController {
      * @return
      */
     @ResponseBody
+    public CommonResult<T> sendOrderDeleteException(String orderNo) {
+
+        WeixiaoVO weixiaoVO = new WeixiaoVO();
+        weixiaoVO.setTitle("订单异常删除通知");
+        List<String> cardNumberList = new ArrayList<>();
+        cardNumberList.add("360721199802141618");
+        cardNumberList.add("202204081888");
+        cardNumberList.add("360100188808088883");
+        weixiaoVO.setCardNumberList(cardNumberList);
+        weixiaoVO.setContent(orderNo + " 订单银行回调失败,请注意查看");
+        weixiaoVO.setSender("缴费系统");
+        JSONObject jsonObject = (JSONObject) JSONObject.toJSON(weixiaoVO);
+        notice(jsonObject);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 缴费异常订单自动发送微校通知
+     * itemName 缴费项目
+     *
+     * @return
+     */
+    @ResponseBody
     public CommonResult<T> sendException(String itemName, String orderNo) {
         QueryWrapper<PayItem> wrapper1 = new QueryWrapper<>();
         wrapper1.eq("item_name", itemName);
@@ -684,14 +712,13 @@ public class WechatController {
             //更新订单异常推送的状态
             payOrderService.updateById(payOrder);
         }
-
         return CommonResult.ok();
     }
 
     /**
      * 每天执行一次催缴 下午15点
      */
-   // @Scheduled(fixedDelay = 20000)
+    // @Scheduled(fixedDelay = 20000)
     @Scheduled(cron = "0 0 15 * * ?")
     public void autoTiming() {
 

+ 17 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/dao/PayOrderDeleteDao.java

@@ -0,0 +1,17 @@
+package com.chuanghai.smartschool.tuitionpayment.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.chuanghai.smartschool.tuitionpayment.entity.PayOrderDeleteEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 缴费订单
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2021-08-12 15:52:41
+ */
+@Mapper
+public interface PayOrderDeleteDao extends BaseMapper<PayOrderDeleteEntity> {
+
+}

+ 17 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/dao/PayableInfoWaterDeleteDao.java

@@ -0,0 +1,17 @@
+package com.chuanghai.smartschool.tuitionpayment.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoWaterDeleteEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 学生应缴数据
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2021-08-12 15:52:41
+ */
+@Mapper
+public interface PayableInfoWaterDeleteDao extends BaseMapper<PayableInfoWaterDeleteEntity> {
+
+}

+ 5 - 5
src/main/java/com/chuanghai/smartschool/tuitionpayment/entity/PayOrderEntity.java

@@ -45,7 +45,7 @@ public class PayOrderEntity implements Serializable {
 	/**
 	 * 学生id 被付款人的card_number
 	 */
-	@ExcelProperty("学号")
+	@ExcelProperty("身份证")
 	@ColumnWidth(25)
 	private String payForIdentify;
 	/**
@@ -118,15 +118,13 @@ public class PayOrderEntity implements Serializable {
 	/**
 	 * 订单备注
 	 */
-	@ExcelProperty("订单备注")
-	@ColumnWidth(35)
+	@ExcelIgnore
 	private String orderNotice;
 
 	/**
 	 * 支付银行账户
 	 */
-	@ExcelProperty("支付银行账户")
-	@ColumnWidth(25)
+	@ExcelIgnore
 	private String payBank;
 	/**
 	 * 支付人姓名
@@ -211,4 +209,6 @@ public class PayOrderEntity implements Serializable {
 
 
 
+
+
 }

+ 159 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/entity/PayableInfoWaterDeleteEntity.java

@@ -0,0 +1,159 @@
+package com.chuanghai.smartschool.tuitionpayment.entity;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 学生应缴数据水费
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2021-08-12 15:52:41
+ */
+@Data
+@TableName("payable_info_water_delete")
+public class PayableInfoWaterDeleteEntity implements Serializable {
+
+
+	/**
+	 * 应缴信息id
+	 */
+	@ExcelIgnore
+	@TableId
+	private Long id;
+	/**
+	 * 学号
+	 */
+	@ColumnWidth(35)
+	@ExcelProperty("身份证号")
+	private String studentNo;
+	/**
+	 * 姓名
+	 */
+	@ColumnWidth(10)
+	@ExcelProperty("姓名")
+	private String studentName;
+	/**
+	 * 年级
+	 */
+	@ColumnWidth(20)
+	@ExcelProperty("年级")
+	private String grade;
+	/**
+	 * 宿舍号
+	 */
+	@ColumnWidth(20)
+	@ExcelProperty("宿舍号")
+	private String dorm;
+	/**
+	 * 学院名称
+	 */
+	@ColumnWidth(30)
+	@ExcelProperty("学院名称")
+	private String collegeName;
+	/**
+	 * 专业名称
+	 */
+	@ColumnWidth(30)
+	@ExcelProperty("专业名称")
+	private String majorName;
+	/**
+	 * 班级名称
+	 */
+	@ColumnWidth(30)
+	@ExcelProperty("班级名称")
+	private String className;
+	/**
+	 * 应付金额
+	 */
+	@ColumnWidth(20)
+	@ExcelProperty("应付金额")
+	private BigDecimal realPayAmount;
+	/**
+	 * 必交费用 格式:教材费:1000\学费:18000\住宿费:1800
+	 */
+	@ColumnWidth(50)
+	@ExcelProperty("费用详情")
+	private String payAmountDetail;
+
+	/**
+	 * 备注
+	 */
+	@ColumnWidth(50)
+	@ExcelProperty("备注")
+	private String orderNotice;
+	/**
+	 * 校区
+	 */
+	@ColumnWidth(20)
+	@ExcelProperty("校区")
+	private String studentCampus;
+	/**
+	 * 缴费项目
+	 */
+	@ColumnWidth(20)
+	@ExcelProperty("缴费项目")
+	private String paymentItem;
+	/**
+	 * 缴费月度
+	 */
+	@ColumnWidth(20)
+	@ExcelProperty("缴费月度")
+	private String payMonth;
+
+
+
+	/**
+	 * 订单状态    1 未支付  2已支付
+	 */
+	@ExcelIgnore
+	private String payItemType ;
+
+	/**
+	 * 缴费名单创建时间
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@ExcelIgnore
+	private LocalDateTime payCreateTime;
+
+	/**
+	 * 缴费完成时间
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@ExcelIgnore
+	private LocalDateTime payFinishTime;
+
+	/**
+	 * 支付银行账户
+	 */
+	@ColumnWidth(35)
+	@ExcelProperty("银行账户")
+	private String payableAccount ;
+
+	/**
+	 * 缴费通知状态   1 未通知   2 已通知
+	 */
+	@ExcelIgnore
+	private String payNoticeType ;
+
+	/**
+	 * 微校账号
+	 */
+	@ExcelIgnore
+	private String cardNumber ;
+	/**
+	 * 微校编号(2020以后为学号)
+	 */
+	@ExcelIgnore
+	private String serialNumber;
+
+}

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

@@ -60,6 +60,7 @@ public class MyPayableInfoImportListener extends AnalysisEventListener<PayableIn
         try {
             payableInfoService.saveBatch(list);
         } catch (Exception e) {
+            e.printStackTrace();
             throw new RRException(BizCodeEnume.DATA_IS_EXIST, "导入失败,导入模板中重复数据,请核查后重新导入");
         }
         list.clear();
@@ -77,7 +78,6 @@ public class MyPayableInfoImportListener extends AnalysisEventListener<PayableIn
         if (infoEntityList.size() > 0) {
             List<Long> idList = infoEntityList.stream().map(PayableInfoEntity::getId).collect(Collectors.toList());
             boolean b = payableInfoService.removeByIds(idList);
-            System.out.println(b);
         }
 
     }

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

@@ -0,0 +1,17 @@
+package com.chuanghai.smartschool.tuitionpayment.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.chuanghai.smartschool.tuitionpayment.entity.PayOrderDeleteEntity;
+
+/**
+ * 缴费订单
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2021-08-12 15:52:41
+ */
+public interface PayOrderDeleteService extends IService<PayOrderDeleteEntity> {
+
+
+
+}
+

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

@@ -45,6 +45,7 @@ public interface PayOrderService extends IService<PayOrderEntity> {
     List<OrderReceiveTO> receiveOrder(String cardNumber, PayOrderReceiveVO payOrderReceiveVO);
 
     PayOrderEntity getByOrderNo(String orderNo);
+    PayOrderEntity getByOrderNoDelete(String orderNo);
 
     OrderStatusVO queryOrderStatus(String cardNumber, String orderNo);
 

+ 7 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/service/PayableInfoService.java

@@ -34,5 +34,12 @@ public interface PayableInfoService extends IService<PayableInfoEntity> {
     void truncateTable();
     void exportTxt(HttpServletResponse response, PayOrderQueryTO queryTO , List<String> downIDs) throws IOException;
 
+    /**
+     * 通过身份证查询缴费名单里对应人员的学号
+     * @param studentNo   身份证
+     * @return
+     */
+    public String getSerialNumber(String studentNo);
+
 }
 

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

@@ -0,0 +1,17 @@
+package com.chuanghai.smartschool.tuitionpayment.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoWaterDeleteEntity;
+
+/**
+ * 学生应缴数据
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2021-08-12 15:52:41
+ */
+public interface PayableInfoWaterDeleteService extends IService<PayableInfoWaterDeleteEntity> {
+
+
+}
+

+ 17 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayOrderDeleteServiceImpl.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.PayOrderDeleteDao;
+import com.chuanghai.smartschool.tuitionpayment.entity.PayOrderDeleteEntity;
+import com.chuanghai.smartschool.tuitionpayment.service.PayOrderDeleteService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: binguo
+ * @Date: 2022/8/14 星期日 19:10
+ * @Description: com.chuanghai.smartschool.tuitionpayment.service.impl
+ * @Version: 1.0
+ */
+@Service("payOrderDeleteService")
+public class PayOrderDeleteServiceImpl extends ServiceImpl<PayOrderDeleteDao, PayOrderDeleteEntity> implements PayOrderDeleteService {
+}

+ 125 - 165
src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayOrderServiceImpl.java

@@ -19,6 +19,9 @@ import com.chuanghai.smartschool.tuitionpayment.enume.PayMethod;
 import com.chuanghai.smartschool.tuitionpayment.enume.PayStatus;
 import com.chuanghai.smartschool.tuitionpayment.service.*;
 import com.chuanghai.smartschool.tuitionpayment.to.BankItemDetailTO.BankDetailListVO;
+import com.chuanghai.smartschool.tuitionpayment.to.ExcelTO.CommentItemTO;
+import com.chuanghai.smartschool.tuitionpayment.to.ExcelTO.PayOrderStatyTO;
+import com.chuanghai.smartschool.tuitionpayment.to.ExcelTO.PayOrderWaterTO;
 import com.chuanghai.smartschool.tuitionpayment.to.OrderReceiveTO;
 import com.chuanghai.smartschool.tuitionpayment.to.PayOrderQueryTO;
 import com.chuanghai.smartschool.tuitionpayment.utils.MyUtil;
@@ -50,9 +53,8 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
     @Autowired
     private PayableInfoWaterService payableInfoWaterService;
     @Autowired
-    private PayMethodSettingService payMethodSettingService;
-    @Autowired
-    private EnablePayLimitByGradeService enablePayLimitByGradeService;
+    private PayableInfoWaterDeleteService payableInfoWaterDeleteService;
+
     @Autowired
     private PayService payService;
     @Autowired
@@ -60,17 +62,13 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
     @Autowired
     private PayOrderService payOrderService;
     @Autowired
-    private PayItemController payItemController;
+    private PayOrderDeleteService payOrderDeleteService;
     @Autowired
-    private WechatController wechatController;
+    private PayItemController payItemController;
     @Autowired
     private PayItemDetailController payItemDetailController;
     @Autowired
     private PayableInfoController payableInfoController;
-    //    @Autowired
-//    private PayDetailBankController payDetailBankController;
-    @Autowired
-    private BankDetailController bankDetailController;
     @Autowired
     private BankItemDetailController bankItemDetailController;
 
@@ -129,8 +127,7 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
                     .eq("is_parent", Boolean.TRUE);
         }
 
-//        wrapper.eq("payer_identify", cardNumber)
-//                .eq("status", status);
+
         IPage<PayOrderEntity> page = this.page(
                 new MyQuery<PayOrderEntity>().getPage(pageParam),
                 wrapper
@@ -308,15 +305,8 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
                 payAmountCCB = payAmountCCB.subtract(new BigDecimal(payOrderLoan)).setScale(2, BigDecimal.ROUND_HALF_UP);
             }
             payOrderReceiveVO.setNowRealPayAmount(payAmountCCB);
-
-            //TODO
-//                String bankCard = bankDetailController.queryBankByDeatilItem(itemName, ccbRealPayStr);
-//                if (bankCard.contains("建设银行")) {
-//                    payOrderReceiveVO.setPayMethod("1");
-//                }
             payOrderReceiveVO.setPayMethod("1");
 
-
             orderReceiveTOCCB.setPayOrderReceiveVO(payOrderReceiveVO);
             orderReceiveTOList.add(orderReceiveTOCCB);
         }
@@ -361,14 +351,7 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
         if (!payOrderReceiveVO1.getPayDetail().isEmpty()) {
             payOrderReceiveVO1.setPayOrderLoan("0");
             payOrderReceiveVO1.setNowRealPayAmount(payAmountRCB);
-
-            //TODO
-//                String bankCard = bankDetailController.queryBankByDeatilItem(itemName, ccbRealPayStr);
-//                if (bankCard.contains("农商银行")) {
-//                    payOrderReceiveVO1.setPayMethod("2");
-//                }
             payOrderReceiveVO1.setPayMethod("2");
-
             orderReceiveTORCB.setPayOrderReceiveVO(payOrderReceiveVO1);
             orderReceiveTOList.add(orderReceiveTORCB);
 
@@ -386,6 +369,7 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
      */
     @Override
     public List<CreateOrderResultVO> createOrder(String cardNumber, PayOrderReceiveVO payOrderReceiveVO) {
+
         List<OrderReceiveTO> orderReceiveTOS = receiveOrder(cardNumber, payOrderReceiveVO);
         List<CreateOrderResultVO> createOrderResultVOList = new ArrayList<>();
         //记录遍历的次数
@@ -393,12 +377,12 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
             OrderReceiveTO orderReceiveTO = orderReceiveTOS.get(m);
             String cardNumber1 = orderReceiveTO.getCardNumber();
             PayOrderReceiveVO payOrderReceiveVO1 = orderReceiveTO.getPayOrderReceiveVO();
-            //  System.out.println(payOrderReceiveVO1+"   00111------1-1-1-1-1-1--100");
             String studentNo = payOrderReceiveVO1.getStudentNo();
             String dorm = payOrderReceiveVO1.getDorm();
-            if (dorm == null || dorm.equals("")) {
+            if (!StringUtils.hasText(dorm)) {
                 dorm = "";
             }
+
             String itemName = payOrderReceiveVO1.getItemName();
             String payDetial = payOrderReceiveVO1.getPayDetail();
             String payYear = payOrderReceiveVO1.getPayYear();
@@ -406,7 +390,10 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
             String id = payOrderReceiveVO1.getId().toString();
             String payMethod = payOrderReceiveVO1.getPayMethod();
             String payOrderLoan = payOrderReceiveVO1.getPayOrderLoan();
-            payOrderLoan = payOrderLoan.equals("") == true ? "0" : payOrderLoan;
+            //   payOrderLoan = payOrderLoan.equals("") == true ? "0" : payOrderLoan;
+            if (!StringUtils.hasText(payOrderLoan)) {
+                payOrderLoan = "0";
+            }
             BigDecimal orderLoan = new BigDecimal(payOrderLoan).setScale(2, BigDecimal.ROUND_HALF_UP);
 
 
@@ -420,7 +407,12 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
                             .eq("pay_month", payYear)
                             .eq("payment_item", itemName)
                             .eq("pay_item_type", "1");
+                    //将删除的水费缴费信息记录到删除记录表中
                     payableInfoWaterService.remove(wrapper);
+                    PayableInfoWaterEntity payableInfoWaterEntity = payableInfoWaterService.getOne(wrapper);
+                    PayableInfoWaterDeleteEntity payableInfoWaterDeleteEntity = new PayableInfoWaterDeleteEntity();
+                    BeanUtils.copyProperties(payableInfoWaterEntity, payableInfoWaterDeleteEntity);
+                    payableInfoWaterDeleteService.save(payableInfoWaterDeleteEntity);
                     throw new RRException(BizCodeEnume.DORM_EXIST, "宿舍【" + dorm + " " + payYear + "】已缴费,请勿重复缴费");
 
                 }
@@ -430,10 +422,15 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
                 PayableInfoEntity byIdInfo = payableInfoService.getById(payOrderReceiveVO1.getId());
                 //如果在首页已经缴完本订单的全部项目,则将本订单删除,跳转到首页
                 if (byIdInfo != null && (byIdInfo.getNotPayDetail().equals("") || byIdInfo.getNotPayDetail() == null)) {
-                    QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
-                    wrapper.eq("payinfo_id", byIdInfo.getId())
-                            .eq("status", "1");
-                    payOrderService.remove(wrapper);
+//                    QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
+//                    wrapper.eq("payinfo_id", byIdInfo.getId())
+//                            .eq("status", "1");
+                    //TODO 删除订单
+                    payOrderService.removeById(byIdInfo.getId());
+                    PayOrderEntity one = payOrderService.getById(byIdInfo.getId());
+                    PayOrderDeleteEntity payOrderDeleteEntity = new PayOrderDeleteEntity();
+                    BeanUtils.copyProperties(one, payOrderDeleteEntity);
+                    payOrderDeleteService.save(payOrderDeleteEntity);
                     throw new RRException(BizCodeEnume.ORDER_IS_PAY, "该订单已完成缴费,请勿重复缴费");
                 }
                 if (alreadyPay) {
@@ -460,7 +457,6 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
             Integer currentGrade = MyUtil.calcStudentGrade(Integer.valueOf(grade.trim()));
 
             // 判断当前年级是否可线上缴费
-            //  boolean enablePay = Boolean.FALSE;
             PayItem payItem = payItemController.queryByItemNameSetting(itemName).getData();
             String itemGrade = payItem.getItemGrade();
             String gradeStr = "";
@@ -468,19 +464,18 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
             for (int i = 0; i < jsonArray.size(); i++) {
                 gradeStr += jsonArray.get(i);
             }
-            //  boolean enablePay = enablePayLimitByGradeService.getCurrentGradeEnablePay(currentGrade);
             if (!(gradeStr.contains(String.valueOf(currentGrade)))) {
                 throw new RRException(BizCodeEnume.PAYABLE_INFO_IS_NOT_EXIT, "当前学生所在年级不允许线上缴费");
             }
 
 
-            PayOrderEntity payOrderEntity = new PayOrderEntity();
+            PayOrderEntity payOrderEntity;
             if (itemName.equals("水费缴纳")) {
                 QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
                 wrapper.eq("dorm", dorm);
                 wrapper.eq("pay_item", itemName);
                 wrapper.eq(StringUtils.hasText(payYear), "pay_year", payYear);
-                wrapper.in("pay_method", "1", "2");
+             //   wrapper.in("pay_method", "1", "2");
                 wrapper.orderByDesc("create_time");
                 wrapper.last("limit 1");
                 payOrderEntity = this.getOne(wrapper);
@@ -490,7 +485,7 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
                 wrapper.eq("pay_for_identify", studentNo);
                 wrapper.eq("pay_item", itemName);
                 wrapper.eq("pay_detail", payDetial);
-                wrapper.in("pay_method", "1", "2");
+            //    wrapper.in("pay_method", "1", "2");
                 wrapper.eq(StringUtils.hasText(payYear), "pay_year", payYear);
                 wrapper.eq("not_pay_size", payOrderReceiveVO1.getNotPaySize());
                 wrapper.orderByDesc("create_time");
@@ -505,9 +500,15 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
                 if (!(payOrderEntity.getPayMethod().equals(""))) {
                     // 再次查询订单状态
                     OrderStatusVO orderStatusVO = queryOrderStatus(payOrderEntity);
-
                     if (PayStatus.NON_PAY.getCode().equals(orderStatusVO.getStatus())) {
+
+                        log.info("创建订单时需要删除的旧订单信息【{}】", payOrderEntity);
+
                         this.removeById(payOrderEntity.getId());
+
+                        PayOrderDeleteEntity payOrderDeleteEntity = new PayOrderDeleteEntity();
+                        BeanUtils.copyProperties(payOrderEntity, payOrderDeleteEntity);
+                        payOrderDeleteService.save(payOrderDeleteEntity);
                         payOrderEntity = null;
                     }
                 }
@@ -518,15 +519,12 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
                 createOrderResultVO.setMsg("新创建订单");
                 payOrderEntity = new PayOrderEntity();
                 //判断该订单是否为多次支付
-                PayInfoDetailVO payInfoDetailVO = new PayInfoDetailVO();
+                PayInfoDetailVO payInfoDetailVO;
                 int count = Integer.parseInt(payOrderReceiveVO1.getPayCount());
                 if (count == 1) {
                     payOrderEntity.setIsParent(Boolean.TRUE);
-                    // payInfoDetailVO =  payableInfoController.queryPayDetail(id, itemName, payOrderReceiveVO.getPayDetail());
                 }
-                System.out.println("000000" + payOrderReceiveVO1.getPayDetail());
                 payInfoDetailVO = (PayInfoDetailVO) payableInfoController.queryPayInfoDetail(id, itemName, payOrderReceiveVO1.getPayDetail()).getData();
-                System.out.println("00000000000000000000" + payInfoDetailVO);
                 payOrderEntity.setNotPayDetail(payInfoDetailVO.getNotPayDetail());
 
                 payOrderEntity.setOrderNo(generateOrderNo());
@@ -542,7 +540,6 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
                 payOrderEntity.setExceptType("1");
 
                 String bankCard = "";
-
                 List<BankDetailListVO> bankDetailListVOS = bankItemDetailController.queryByItem(itemName);
 
                 for (int a = 0; a < bankDetailListVOS.size(); a++) {
@@ -557,30 +554,27 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
                 }
                 payOrderEntity.setPayBank(bankCard);
                 payOrderEntity.setPayOrderLoan(orderLoan);
-                //   System.out.println(payOrderEntity.getPayOrderLoan()+"       贷款---------------------------------------");
 
 
-                // 支付金额、被支付用户信息
+                //更新对应项目的缴费参数
                 if (itemName.equals("水费缴纳")) {
-                    //更新对应项目的缴费参数
-                    payOrderEntity.setDorm(dorm);
-                    payOrderEntity.setPayinfoId(payableInfoWater.getId());
-                    payOrderEntity.setRealPayAmount(payableInfoWater.getRealPayAmount());
-                    //payOrderEntity.setNowPayAmount(payableInfoWater.getRealPayAmount());
-                    payOrderEntity.setStudentName(payableInfoWater.getStudentName());
-                    payOrderEntity.setClassName(payableInfoWater.getClassName());
-                    payOrderEntity.setSerialNumber(payableInfoWater.getSerialNumber());
-                    payOrderEntity.setNowPayAmount(payableInfoWater.getRealPayAmount());
+                    if (payableInfoWater != null) {
+                        payOrderEntity.setDorm(dorm);
+                        payOrderEntity.setPayinfoId(payableInfoWater.getId());
+                        payOrderEntity.setRealPayAmount(payableInfoWater.getRealPayAmount());
+                        payOrderEntity.setStudentName(payableInfoWater.getStudentName());
+                        payOrderEntity.setClassName(payableInfoWater.getClassName());
+                        payOrderEntity.setSerialNumber(payableInfoWater.getSerialNumber());
+                        payOrderEntity.setNowPayAmount(payableInfoWater.getRealPayAmount());
+                    }
                 } else {
-
-
-                    payOrderEntity.setRealPayAmount(payableInfo.getRealPayAmount());
-                    // payOrderEntity.setNowPayAmount(payInfoDetailVO.getPayDetailAmount());
-                    payOrderEntity.setPayinfoId(payableInfo.getId());
-
-                    payOrderEntity.setStudentName(payableInfo.getStudentName());
-                    payOrderEntity.setClassName(payableInfo.getClassName());
-                    payOrderEntity.setSerialNumber(payableInfo.getSerialNumber());
+                    if (payableInfo != null) {
+                        payOrderEntity.setRealPayAmount(payableInfo.getRealPayAmount());
+                        payOrderEntity.setPayinfoId(payableInfo.getId());
+                        payOrderEntity.setStudentName(payableInfo.getStudentName());
+                        payOrderEntity.setClassName(payableInfo.getClassName());
+                        payOrderEntity.setSerialNumber(payableInfo.getSerialNumber());
+                    }
 
                 }
                 BigDecimal parentNowPayDetailAmount = BigDecimal.ZERO;
@@ -590,55 +584,29 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
                     wrapper1.eq("payer_identify", cardNumber1);
                     wrapper1.eq("pay_for_identify", studentNo);
                     wrapper1.eq("pay_item", itemName);
-                    // wrapper1.eq("is_parent", "1");
                     wrapper1.eq(StringUtils.hasText(payYear), "pay_year", payYear);
                     wrapper1.eq("status", "2");
                     List<PayOrderEntity> payOrderList = this.list(wrapper1);
-                    System.out.println(payOrderList.size() + "    sajsa    size");
                     for (int i = 0; i < payOrderList.size(); i++) {
                         parentOrderLone = parentOrderLone.add(payOrderList.get(i).getPayOrderLoan()).setScale(2, BigDecimal.ROUND_HALF_UP);
                         parentNowPayDetailAmount = parentNowPayDetailAmount.add(payOrderList.get(i).getNowPayAmount()).setScale(2, BigDecimal.ROUND_HALF_UP);
                     }
 
                     BigDecimal notPayDetailAmount = payInfoDetailVO.getNotPayDetailAmount();
-                    System.out.println(payOrderEntity.getRealPayAmount());
-                    System.out.println(parentNowPayDetailAmount);
-                    System.out.println(notPayDetailAmount);
-                    System.out.println(parentOrderLone);
-                    System.out.println(payableInfo);
                     if (itemName.equals("水费缴纳")) {
                         payOrderEntity.setNowPayAmount(payableInfoWater.getRealPayAmount());
                     } else {
-                        System.out.println(orderLoan);
                         if (!(orderLoan.toString().contains("0.0"))) {
                             parentOrderLone = orderLoan;
-                            //  parentOrderLone = parentOrderLone.add(orderLoan);
                         }
                         if (payableInfo.getPayDetail() == null || payableInfo.getPayDetail().equals("")) {
-                            System.out.println("1111111111111111111");
-//                            System.out.println(payInfoDetailVO);
-                            //TODO
-
-
-//                            if (!String.valueOf(orderLoan).equals("")) {
-//                                parentOrderLone = orderLoan;
-//                            }
-
-
-//                            System.out.println(payOrderLoan);
                             payOrderEntity.setNowPayAmount(
                                     payOrderEntity.getRealPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP)
-                                            /// .subtract(parentNowPayDetailAmount).setScale(2, BigDecimal.ROUND_HALF_UP)
                                             .subtract(notPayDetailAmount)
-                                            // .subtract(parentOrderLone)
                                             .subtract(orderLoan)
-                                    //.subtract(payInfoDetailVO.getPayDetailAmount())
                             );
-                            System.out.println(payOrderEntity.getNowPayAmount() + "1111111111111111111111111111111");
 
                         } else {
-                            System.out.println("222222222222222222222");
-
 
                             if (payOrderReceiveVO1.getItemName().equals("学杂费") && !(payOrderReceiveVO1.getPayDetail().contains("/"))) {
                                 payOrderEntity.setNowPayAmount(
@@ -648,118 +616,62 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
                                                 //减去未交明细的金额
                                                 .subtract(payInfoDetailVO.getNotPayDetailAmount().subtract(parentNowPayDetailAmount).subtract(parentOrderLone))
 
-                                        //.subtract(payInfoDetailVO.getPayDetailAmount())
                                 );
-                                System.out.println("+++++++++++++++++++++++++++   " + payInfoDetailVO.getNotPayDetailAmount().subtract(parentNowPayDetailAmount).subtract(parentOrderLone));
                             } else {
-                                System.out.println("-----------1-1111111111-1-1-1-1-1-1-1-1-1");
-                                System.out.println(payOrderReceiveVO1.getPayDetail());
                                 payOrderEntity.setNowPayAmount(
                                         payOrderEntity.getRealPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP)
                                                 .subtract(parentNowPayDetailAmount).setScale(2, BigDecimal.ROUND_HALF_UP)
-//                                                  .subtract(notPayDetailAmount)
                                                 .subtract(parentOrderLone)
                                                 .subtract(orderLoan)
                                                 .subtract(payInfoDetailVO.getNotPayDetailAmount().subtract(parentNowPayDetailAmount).subtract(parentOrderLone))
 
-                                        //.subtract(payInfoDetailVO.getPayDetailAmount())
                                 );
                             }
-                            System.out.println(payOrderEntity.getNowPayAmount() + "          222222222222222222222");
                         }
                     }
 
-                    System.out.println(payOrderEntity.getNowPayAmount() + "hyuwsegufgwf");
                 } else {
-                    payOrderEntity.setNowPayAmount(payInfoDetailVO.getPayDetailAmount().subtract(payOrderEntity.getPayOrderLoan().setScale(2, BigDecimal.ROUND_HALF_UP)));
-                    System.out.println("3333333333333333333333333333");
-                    System.out.println(payInfoDetailVO);
                     payOrderEntity.setNowPayAmount(payInfoDetailVO.getPayDetailAmount().setScale(2, BigDecimal.ROUND_HALF_UP).subtract(orderLoan));
-                    System.out.println(payOrderEntity.getNowPayAmount() + "           33333333333333333");
                 }
-                System.out.println(payOrderEntity.getNowPayAmount() + "     sjdhfuhsbdf getNowPayAmount");
                 //校验订单的支付金额是否异常
-                Boolean flag = Boolean.TRUE;
+                Boolean flag;
                 //前端实付金额
                 BigDecimal realPayAmount = payOrderReceiveVO1.getNowRealPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP);
-
-                // payInfoDetailVO.setPayDetailAmount(payOrderEntity.getNowPayAmount());
                 if (itemName.equals("水费缴纳")) {
                     flag = payOrderEntity.getNowPayAmount().compareTo(payableInfoWater.getRealPayAmount()) == 0 ? Boolean.TRUE : Boolean.FALSE;
                 } else {
-                    //   orderLoan = orderLoan.add(parentOrderLone);
                     BigDecimal nowPayAllMount = BigDecimal.ZERO;
                     if (count > 1) {
-                        System.out.println(payInfoDetailVO);
                         if (payableInfo.getPayDetail() == null || payableInfo.getPayDetail().equals("")) {
-                            System.out.println("13331313131331");
-                            System.out.println(payInfoDetailVO.getNotPayDetailAmount());
-                            System.out.println(payOrderEntity.getNowPayAmount());
                             nowPayAllMount = nowPayAllMount.add(payInfoDetailVO.getNotPayDetailAmount()).add(payOrderEntity.getNowPayAmount());
 
                         } else {
-                            System.out.println("4444444444444444444444");
-
-//                            nowPayAllMount = nowPayAllMount.add(payInfoDetailVO.getNotPayDetailAmount()).add(payOrderEntity.getNowPayAmount().add(orderLoan));
-                            // nowPayAllMount = nowPayAllMount.add(payInfoDetailVO.getNotPayDetailAmount()).add(payOrderEntity.getNowPayAmount().add(orderLoan));
-                            //nowPayAllMount = nowPayAllMount.add(payInfoDetailVO.getNotPayDetailAmount()).add(payOrderEntity.getNowPayAmount().add(orderLoan));
-
-//                            if (payableInfo.getPayDetail() == null || payableInfo.getPayDetail().equals("")) {
-//                                System.out.println("1");
-//                                nowPayAllMount = nowPayAllMount.add(payInfoDetailVO.getNotPayDetailAmount()).add(payOrderEntity.getNowPayAmount().add(orderLoan));
-//
-//                            }else {
-                            System.out.println("211111111111111111100000");
-                            System.out.println(payInfoDetailVO);
-                            System.out.println(payInfoDetailVO.getNotPayDetailAmount());
-                            System.out.println(payOrderEntity.getNowPayAmount());
-                            System.out.println(parentOrderLone);
                             nowPayAllMount = nowPayAllMount.add(payInfoDetailVO.getNotPayDetailAmount()).add(payOrderEntity.getNowPayAmount()).add(orderLoan);//.subtract(parentOrderLone)
-
-//                            }
-                            System.out.println(nowPayAllMount);
                         }
-                        // nowPayAllMount = nowPayAllMount.add(payOrderEntity.getNowPayAmount().add(parentNowPayDetailAmount).add(orderLoan));
-
                     } else {
-                        System.out.println("555555555555555555555");
                         nowPayAllMount = nowPayAllMount.add(payInfoDetailVO.getNotPayDetailAmount()).add(payOrderEntity.getNowPayAmount().add(parentNowPayDetailAmount));
                     }
-                    System.out.println(orderLoan + "   666666666666666");
-                    // BigDecimal realAmount = (payableInfo.getRealPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP)).subtract(orderLoan);
-                    BigDecimal realAmount = BigDecimal.ZERO;
+                    BigDecimal realAmount;
                     if (payableInfo.getPayDetail() == null || payableInfo.getPayDetail().equals("")) {
                         realAmount = (payableInfo.getRealPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP)).subtract(orderLoan);
 
                     } else {
                         if (count > 1) {
-                            System.out.println(count + "    count-----------------------2222222222");
                             realAmount = (payableInfo.getRealPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP));
                         } else {
-                            System.out.println(count + "    count-----------------------11111111111111111");
-
                             realAmount = (payableInfo.getRealPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP)).subtract(orderLoan);
 
                         }
                     }
-
-
-                    //BigDecimal realAmount = (payableInfo.getRealPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP));
-
-
                     flag = nowPayAllMount.compareTo(realAmount) == 0 ? Boolean.TRUE : Boolean.FALSE;
-                    System.out.println(flag + "=====1=====" + nowPayAllMount + "------nowPayAllMount------realAmount------" + realAmount);
                 }
 
                 if (Double.parseDouble(String.valueOf(payOrderEntity.getNowPayAmount())) < 0.00) {
                     flag = Boolean.FALSE;
-                    System.out.println(flag + "=====2=====" + payOrderEntity.getNowPayAmount());
 
                 }
-                System.out.println(payableInfo);
                 if (!(realPayAmount.compareTo(payOrderEntity.getNowPayAmount()) == 0)) {
                     flag = Boolean.FALSE;
-                    System.out.println(flag + "--------------" + realPayAmount + "===realPayAmount==3== payOrderEntity.getNowPayAmount===" + payOrderEntity.getNowPayAmount());
                 }
 
                 //如果在首页已经缴完本订单的部分项目,则将本订单删除,前往首页缴费
@@ -820,6 +732,20 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
     }
 
     /**
+     * 根据订单号查询订单
+     *
+     * @param orderNo
+     * @return
+     */
+    @Override
+    public PayOrderEntity getByOrderNoDelete(String orderNo) {
+        QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
+        wrapper.eq("order_no", orderNo);
+        PayOrderEntity payOrderEntity = this.getOne(wrapper);
+        return payOrderEntity;
+    }
+
+    /**
      * 查询订单状态
      *
      * @param cardNumber 支付者标识
@@ -839,6 +765,7 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
     @Override
     public OrderStatusVO queryOrderStatus(PayOrderEntity payOrder) {
         String orderNo = payOrder.getOrderNo();
+
         // 订单未支付状态,先查询一下银行订单状态
         if (PayStatus.NON_PAY.getCode().equalsIgnoreCase(payOrder.getStatus())) {
             try {
@@ -1032,7 +959,6 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
     public void downloadResult(HttpServletResponse response, PayOrderQueryTO queryTO, List<String> downIDs) throws IOException {
 
         QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
-
         commonWrapper(wrapper, queryTO);
         if (downIDs.size() > 0) {
             wrapper.in("id", downIDs);
@@ -1047,23 +973,59 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
         wrapper.eq(StringUtils.hasText(queryTO.getBankName()), "pay_bank", queryTO.getBankName());
         wrapper.orderByDesc("finish_time").orderByDesc("create_time").orderByAsc("pay_for_identify");
         List<PayOrderEntity> parOrder = this.list(wrapper);
-        String fileName = "";
-        if (queryTO.getPayStatus().equals("1")) {
-            fileName = URLEncoder.encode("未缴费学生名单" + new Date().getTime(), "UTF-8");
-        } else {
-            fileName = URLEncoder.encode("已缴费学生名单" + new Date().getTime(), "UTF-8");
-        }
-        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
-        response.setCharacterEncoding("utf-8");
-        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
-        if (queryTO.getPayStatus().equals("1")) {
-            EasyExcel.write(response.getOutputStream(), PayOrderEntity.class).sheet("未缴费学生名单").doWrite(parOrder);
-        } else {
-            EasyExcel.write(response.getOutputStream(), PayOrderEntity.class).sheet("已缴费学生名单").doWrite(parOrder);
+        List<PayOrderStatyTO> statyList = new ArrayList<>();
+        List<PayOrderWaterTO> waterList = new ArrayList<>();
+        List<CommentItemTO> commentItemList = new ArrayList<>();
+        String itemName = "";
+        if (parOrder.size() > 0) {
+            itemName = parOrder.get(0).getPayItem();
+            parOrder.forEach(order -> {
+                if ("学杂费".equals(order.getPayItem())) {
+                    PayOrderStatyTO payOrderStatyTO = new PayOrderStatyTO();
+                    BeanUtils.copyProperties(order, payOrderStatyTO);
+                    statyList.add(payOrderStatyTO);
+                }else if ("水费缴纳".equals(order.getPayItem())) {
+                    PayOrderWaterTO payOrderWaterTO = new PayOrderWaterTO();
+                    BeanUtils.copyProperties(order, payOrderWaterTO);
+                    waterList.add(payOrderWaterTO);
+                }else {
+                    CommentItemTO commentItemTO = new CommentItemTO();
+                    BeanUtils.copyProperties(order, commentItemTO);
+                    commentItemList.add(commentItemTO);
+                }
+            });
+            String fileName = "";
+            if (queryTO.getPayStatus().equals("1")) {
+                fileName = URLEncoder.encode("支付失败名单" + new Date().getTime(), "UTF-8");
+            } else {
+                fileName = URLEncoder.encode("支付成功名单" + new Date().getTime(), "UTF-8");
+            }
+            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+            response.setCharacterEncoding("utf-8");
+            response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+            if (queryTO.getPayStatus().equals("1")) {
+                if ("学杂费".equals(itemName)) {
+                    EasyExcel.write(response.getOutputStream(), PayOrderStatyTO.class).sheet("支付失败名单").doWrite(statyList);
+                }else if ("水费缴纳".equals(itemName)) {
+                    EasyExcel.write(response.getOutputStream(), PayOrderWaterTO.class).sheet("支付失败名单").doWrite(waterList);
+                }else {
+                    EasyExcel.write(response.getOutputStream(), CommentItemTO.class).sheet("支付失败名单").doWrite(commentItemList);
+                }
+            } else {
+                if ("学杂费".equals(itemName)) {
+                    EasyExcel.write(response.getOutputStream(), PayOrderStatyTO.class).sheet("支付成功名单").doWrite(statyList);
+                }else if ("水费缴纳".equals(itemName)) {
+                    EasyExcel.write(response.getOutputStream(), PayOrderWaterTO.class).sheet("支付成功名单").doWrite(waterList);
+                }else {
+                    EasyExcel.write(response.getOutputStream(), CommentItemTO.class).sheet("支付成功名单").doWrite(commentItemList);
+                }
+            }
         }
+
     }
 
 
+
     @Override
     public Integer queryCurrentPayedRecordNum(PayOrderQueryTO queryTO) {
         QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
@@ -1132,7 +1094,6 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
 
         QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
         commonWrapper(wrapper, queryTO);
-
         if (StringUtils.hasText(queryTO.getPayStatus())) {
             if (queryTO.getPayStatus().endsWith("2")) {
                 wrapper.eq(StringUtils.hasText(queryTO.getPayYear()), "pay_year", queryTO.getPayYear())
@@ -1147,10 +1108,9 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
                     String count = String.valueOf(resultMap.get("count"));
                     BigDecimal realPayAmount = new BigDecimal(String.valueOf(resultMap.get("total"))).setScale(2, BigDecimal.ROUND_HALF_UP);
                     BigDecimal orderLoan = new BigDecimal(String.valueOf(resultMap.get("orderLoan"))).setScale(2, BigDecimal.ROUND_HALF_UP);
-                    System.out.println(orderLoan+"-------");
-                    return realPayAmount + "-" + count+"-"+orderLoan;
+                    return realPayAmount + "-" + count + "-" + orderLoan;
                 }
-            }else {
+            } else {
                 return "0-0-0";
             }
         }

Fichier diff supprimé car celui-ci est trop grand
+ 104 - 72
src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayServiceImpl.java


+ 17 - 1
src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayableInfoServiceImpl.java

@@ -282,6 +282,22 @@ public class PayableInfoServiceImpl extends ServiceImpl<PayableInfoDao, PayableI
         return list;
     }
 
-
+    /**
+     * 通过身份证查询缴费名单里对应人员的学号
+     * @param studentNo   身份证
+     * @return
+     */
+    @Override
+    public String getSerialNumber(String studentNo) {
+        QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
+        wrapper.eq("student_no", studentNo)
+                .orderByDesc("pay_create_time")
+                .last("limit 1");
+        PayableInfoEntity one = payableInfoService.getOne(wrapper);
+        if (one == null){
+            throw new RRException(BizCodeEnume.PAYABLE_INFO_IS_NOT_EXIT);
+        }
+        return one.getSerialNumber();
+    }
 
 }

+ 14 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayableInfoWaterDeleteServiceImpl.java

@@ -0,0 +1,14 @@
+package com.chuanghai.smartschool.tuitionpayment.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chuanghai.smartschool.tuitionpayment.dao.PayableInfoWaterDeleteDao;
+import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoWaterDeleteEntity;
+import com.chuanghai.smartschool.tuitionpayment.service.PayableInfoWaterDeleteService;
+import org.springframework.stereotype.Service;
+
+
+@Service("payableInfoWaterDeleteService")
+public class PayableInfoWaterDeleteServiceImpl extends ServiceImpl<PayableInfoWaterDeleteDao, PayableInfoWaterDeleteEntity> implements PayableInfoWaterDeleteService {
+
+
+}

+ 9 - 62
src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayableInfoWaterServiceImpl.java

@@ -13,8 +13,6 @@ import com.chuanghai.smartschool.tuitionpayment.common.utils.PageUtils;
 import com.chuanghai.smartschool.tuitionpayment.dao.PayableInfoWaterDao;
 import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoWaterEntity;
 import com.chuanghai.smartschool.tuitionpayment.listener.aliexcel.MyPayableInfoWaterImportListener;
-import com.chuanghai.smartschool.tuitionpayment.service.PayItemService;
-import com.chuanghai.smartschool.tuitionpayment.service.PayableInfoService;
 import com.chuanghai.smartschool.tuitionpayment.service.PayableInfoWaterService;
 import com.chuanghai.smartschool.tuitionpayment.to.PayOrderQueryTO;
 import com.chuanghai.smartschool.tuitionpayment.utils.OutputTxt;
@@ -38,10 +36,6 @@ public class PayableInfoWaterServiceImpl extends ServiceImpl<PayableInfoWaterDao
 
     @Autowired
     private PayableInfoWaterService payableInfoWaterService;
-    @Autowired
-    private PayableInfoService payableInfoService;
-    @Autowired
-    private PayItemService payItemService;
 
     /**
      * 导入学生应缴信息原始数据
@@ -52,17 +46,6 @@ public class PayableInfoWaterServiceImpl extends ServiceImpl<PayableInfoWaterDao
     @Override
     public void importByExcel(MultipartFile file) throws IOException {
 
-//        // 清除之前的表数据
-//        List<PayableInfoWaterEntity> payableInfoWater = payableInfoWaterService.list();
-//        if (payableInfoWater.size() > 0){
-//            QueryWrapper<PayableInfoWaterEntity> wrapper = new QueryWrapper<>();
-//            wrapper.eq("payment_item", payableInfoWater.get(0).getPaymentItem());
-//            List<PayableInfoWaterEntity> infoEntityList = payableInfoWaterService.list(wrapper);
-//            List<Long> idList = infoEntityList.stream().map(PayableInfoWaterEntity::getId).collect(Collectors.toList());
-//            payableInfoWaterService.removeByIds(idList);
-//        }
-
-
         EasyExcel.read(file.getInputStream(),
                 PayableInfoWaterEntity.class,
                 new MyPayableInfoWaterImportListener(this))
@@ -73,42 +56,7 @@ public class PayableInfoWaterServiceImpl extends ServiceImpl<PayableInfoWaterDao
     }
 
 
-//    public String queryPayItemByName(String name) {
-//        QueryWrapper<PayItem> wapper = new QueryWrapper<>();
-//        wapper.eq("item_name", name);
-//        List<PayItem> list = payItemService.list(wapper);
-//        String itemAccount = "";
-//        if (list.size() > 0) {
-//            PayItem payItem = list.get(0);
-//            itemAccount = payItem.getItemAccount();
-//            String start = itemAccount.substring(0, 3);
-//            String end = itemAccount.substring(itemAccount.length() - 4);
-//            itemAccount = payItem.getItemBank() + " (" + start + "****" + end + ")";
-//        }
-//        return itemAccount;
-//    }
-
-    //    @Override
-//    public PageUtils queryPage(PayOrderQueryTO queryTO,PageParam pageParam ) {
-//        QueryWrapper<PayableInfoWaterEntity> wrapper = new QueryWrapper<>();
-//        wrapper.eq(StringUtils.hasText(queryTO.getItemName()),"payment_item",queryTO.getItemName());
-//        if (StringUtils.hasText(queryTO.getKeyword())) {
-//            wrapper.and(w -> w.like("student_no", queryTO.getKeyword())
-//                    .or()
-//                    .like("student_name", queryTO.getKeyword()));
-//        }
-//        if (StringUtils.hasText(queryTO.getPayStatus())) {
-//            wrapper.eq("pay_item_type", queryTO.getPayStatus());
-//        }
-//        wrapper.apply(StringUtils.hasText(queryTO.getCreateDateStr()), "date_format(pay_create_time, '%Y-%m-%d') = {0}", queryTO.getCreateDateStr());
-//        wrapper.apply(StringUtils.hasText(queryTO.getPayDateStr()), "date_format(pay_finish_time, '%Y-%m-%d') = {0}", queryTO.getPayDateStr());
-//
-//        IPage<PayableInfoWaterEntity> page = this.page(
-//                new MyQuery<PayableInfoWaterEntity>().getPage(pageParam),
-//                wrapper
-//        );
-//        return new PageUtils(page);
-//    }
+
     @Override
     public PageUtils queryPage(PayOrderQueryTO queryTO, PageParam pageParam) {
         QueryWrapper<PayableInfoWaterEntity> wrapper = new QueryWrapper<>();
@@ -190,11 +138,12 @@ public class PayableInfoWaterServiceImpl extends ServiceImpl<PayableInfoWaterDao
         }
     }
 
-    /**
-     * 下载缴费的名单的txt文件
+    /**下载缴费的名单的txt文件
      *
-     * @param response //     * @param flag
-     *                 //     * @param dateStr
+     * @param response
+     * @param queryTO
+     * @param downIDs
+     * @throws IOException
      */
     @Override
     public void exportTxt(HttpServletResponse response, PayOrderQueryTO queryTO, List<String> downIDs) throws IOException {
@@ -255,15 +204,13 @@ public class PayableInfoWaterServiceImpl extends ServiceImpl<PayableInfoWaterDao
      * 下载完成缴费的名单
      *
      * @param response
-     * @param queryTO  查询条件
-     *                 // * @param downIds  勾选的id
+     * @param queryTO
+     * @param downIDs
+     * @throws IOException
      */
     @Override
     public void downloadResult(HttpServletResponse response, PayOrderQueryTO queryTO, List<String> downIDs) throws IOException {
 
-//        QueryWrapper<PayableInfoWaterEntity> wrapper = new QueryWrapper<>();
-//
-//        commonWrapper(wrapper, queryTO);
         QueryWrapper<PayableInfoWaterEntity> wrapper = new QueryWrapper<>();
         wrapper.eq(StringUtils.hasText(queryTO.getItemName()), "payment_item", queryTO.getItemName());
         if (StringUtils.hasText(queryTO.getKeyword())) {

+ 103 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/to/ExcelTO/CommentItemTO.java

@@ -0,0 +1,103 @@
+package com.chuanghai.smartschool.tuitionpayment.to.ExcelTO;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.chuanghai.smartschool.tuitionpayment.conver.aliexcel.LocalDateTimeConverter;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @Author: binguo
+ * @Date: 2022/8/16 星期二 9:24
+ * @Description: com.chuanghai.smartschool.tuitionpayment.to.ExcelTO
+ * @Version: 1.0
+ */
+@Data
+public class CommentItemTO {
+    /**
+     * 订单号
+     */
+    @ExcelProperty("订单号")
+    @ColumnWidth(25)
+    private String orderNo;
+
+    /**
+     * 学生id 被付款人的card_number
+     */
+    @ExcelProperty("身份证")
+    @ColumnWidth(25)
+    private String payForIdentify;
+    /**
+     * 学生姓名
+     */
+    @ExcelProperty("姓名")
+    @ColumnWidth(15)
+    private String studentName;
+    /**
+     * 学生班级名称
+     */
+    @ExcelProperty("班级名称")
+    @ColumnWidth(15)
+    private String className;
+
+    /**
+     * 缴费项目
+     */
+    @ExcelProperty("缴费项目")
+    @ColumnWidth(25)
+    private String payItem;
+    /**
+     * 订单本次支付金额
+     */
+    @ExcelProperty("支付金额")
+    @ColumnWidth(15)
+    private BigDecimal nowPayAmount;
+
+
+
+    /**
+     * 缴费年度
+     */
+    @ExcelProperty("缴费时间")
+    @ColumnWidth(15)
+    private String payYear;
+
+    /**
+     * 订单本次支付金额
+     */
+    @ExcelProperty("备注")
+    @ColumnWidth(35)
+    private  String orderNotice;;
+
+
+
+    /**
+     * 完成时间
+     */
+    @ExcelProperty(value = "支付完成时间", converter = LocalDateTimeConverter.class)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ColumnWidth(25)
+    private LocalDateTime finishTime;
+
+
+
+
+    /**
+     * 支付人姓名
+     */
+    @ExcelProperty("支付人姓名")
+    @ColumnWidth(15)
+    private String payerName;
+
+    /**
+     * 支付人微校号
+     */
+    @ExcelProperty("支付人微校号")
+    @ColumnWidth(25)
+    private String payerCardNumber;
+
+
+}

+ 198 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/to/ExcelTO/PayOrderStatyTO.java

@@ -0,0 +1,198 @@
+package com.chuanghai.smartschool.tuitionpayment.to.ExcelTO;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.chuanghai.smartschool.tuitionpayment.conver.aliexcel.LocalDateTimeConverter;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @Author: binguo
+ * @Date: 2022/8/15 星期一 17:15
+ * @Description: com.chuanghai.smartschool.tuitionpayment.to
+ * @Version: 1.0
+ */
+@Data
+public class PayOrderStatyTO {
+
+
+    /**
+     * 订单号
+     */
+    @ExcelProperty("订单号")
+    @ColumnWidth(25)
+    private String orderNo;
+
+    /**
+     * 学生id 被付款人的card_number
+     */
+    @ExcelProperty("身份证")
+    @ColumnWidth(25)
+    private String payForIdentify;
+    /**
+     * 学生姓名
+     */
+    @ExcelProperty("姓名")
+    @ColumnWidth(15)
+    private String studentName;
+    /**
+     * 学生班级名称
+     */
+    @ExcelProperty("班级名称")
+    @ColumnWidth(15)
+    private String className;
+
+    /**
+     * 订单本次支付金额
+     */
+    @ExcelProperty("支付金额")
+    @ColumnWidth(15)
+    private BigDecimal nowPayAmount;
+
+
+    /**
+     * 记录二次支付的订单号
+     */
+    @ExcelProperty("助学贷款金额")
+    @ColumnWidth(20)
+    private BigDecimal payOrderLoan;
+
+    /**
+     * 订单号
+     */
+    @ExcelProperty("缴费项目")
+    @ColumnWidth(25)
+    private String payItem;
+    /**
+     * 完成时间
+     */
+    @ExcelProperty(value = "支付完成时间", converter = LocalDateTimeConverter.class)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ColumnWidth(25)
+    private LocalDateTime finishTime;
+
+    /**
+     * 支付人姓名
+     */
+    @ExcelProperty("支付人姓名")
+    @ColumnWidth(15)
+    private String payerName;
+
+    /**
+     * 支付人微校号
+     */
+    @ExcelProperty("支付人微校号")
+    @ColumnWidth(25)
+    private String payerCardNumber;
+
+    /**
+     * 缴费年度
+     */
+    @ExcelProperty("缴费时间")
+    @ColumnWidth(15)
+    private String payYear;
+
+
+    /**
+     * 水费缴纳的宿舍
+     */
+    @ExcelProperty("宿舍")
+    @ColumnWidth(15)
+    private String dorm;
+
+    /**
+     * 已缴费明细
+     */
+    @ExcelIgnore
+    private String payDetail;
+    public void setPayDetail(String payDetail) {
+
+        if (payDetail.length() > 0) {
+            String[] payDetailSplit = payDetail.split("/");
+            for (int m = 0; m < payDetailSplit.length; m++) {
+                if ("预收教材费".equals(payDetailSplit[m].split(":")[0])) {
+                    this.setTextBook(payDetailSplit[m].split(":")[1]);
+                }
+                if ("体检费".equals(payDetailSplit[m].split(":")[0])) {
+                    this.setHealth(payDetailSplit[m].split(":")[1]);
+                }
+                if ("学费".equals(payDetailSplit[m].split(":")[0])) {
+                    this.setTuition(payDetailSplit[m].split(":")[1]);
+                }
+                if ("住宿费".equals(payDetailSplit[m].split(":")[0])) {
+                    this.setStay(payDetailSplit[m].split(":")[1]);
+                }
+                if ("空调租赁使用费".equals(payDetailSplit[m].split(":")[0])) {
+                    this.setAirConditioner(payDetailSplit[m].split(":")[1]);
+                }
+                if ("生活用品费".equals(payDetailSplit[m].split(":")[0])) {
+                    this.setCostume(payDetailSplit[m].split(":")[1]);
+                }
+                if ("军训服装费".equals(payDetailSplit[m].split(":")[0])) {
+                    this.setClothing(payDetailSplit[m].split(":")[1]);
+                }
+                if ("宽带网络费".equals(payDetailSplit[m].split(":")[0])) {
+                    this.setNetwork(payDetailSplit[m].split(":")[1]);
+                }
+            }
+        }
+
+            this.payDetail = payDetail;
+        }
+
+        public String getPayDetail () {
+            return payDetail;
+        }
+
+    @ExcelProperty("预收教材费")
+    @ColumnWidth(15)
+    private String textBook;
+    /**
+     * 体检费
+     */
+    @ExcelProperty("体检费")
+    @ColumnWidth(15)
+    private String health;
+    /**
+     * 学费
+     */
+    @ExcelProperty("学费")
+    @ColumnWidth(15)
+    private String tuition;
+    /**
+     * 住宿费
+     */
+    @ExcelProperty("住宿费")
+    @ColumnWidth(15)
+    private String stay;
+    /**
+     * 空调租赁使用费
+     */
+    @ExcelProperty("空调租赁使用费")
+    @ColumnWidth(20)
+    private String airConditioner;
+    /**
+     * 生活用品费
+     */
+    @ExcelProperty("生活用品费")
+    @ColumnWidth(15)
+    private String costume;
+    /**
+     * 军训服装费
+     */
+    @ExcelProperty("军训服装费")
+    @ColumnWidth(15)
+    private String clothing;
+    /**
+     * 网络费
+     */
+    @ExcelProperty("宽带网络费")
+    @ColumnWidth(20)
+    private String network;
+
+
+}

+ 104 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/to/ExcelTO/PayOrderWaterTO.java

@@ -0,0 +1,104 @@
+package com.chuanghai.smartschool.tuitionpayment.to.ExcelTO;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.chuanghai.smartschool.tuitionpayment.conver.aliexcel.LocalDateTimeConverter;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @Author: binguo
+ * @Date: 2022/8/16 星期二 9:24
+ * @Description: com.chuanghai.smartschool.tuitionpayment.to.ExcelTO
+ * @Version: 1.0
+ */
+@Data
+public class PayOrderWaterTO {
+    /**
+     * 订单号
+     */
+    @ExcelProperty("订单号")
+    @ColumnWidth(25)
+    private String orderNo;
+
+    /**
+     * 学生id 被付款人的card_number
+     */
+    @ExcelProperty("身份证")
+    @ColumnWidth(25)
+    private String payForIdentify;
+    /**
+     * 学生姓名
+     */
+    @ExcelProperty("姓名")
+    @ColumnWidth(15)
+    private String studentName;
+    /**
+     * 学生班级名称
+     */
+    @ExcelProperty("班级名称")
+    @ColumnWidth(15)
+    private String className;
+    /**
+     * 缴费项目
+     */
+    @ExcelProperty("缴费项目")
+    @ColumnWidth(25)
+    private String payItem;
+    /**
+     * 订单本次支付金额
+     */
+    @ExcelProperty("支付金额")
+    @ColumnWidth(15)
+    private BigDecimal nowPayAmount;
+
+
+    /**
+     * 订单本次支付金额
+     */
+    @ExcelProperty("备注")
+    @ColumnWidth(35)
+    private  String orderNotice;;
+
+    /**
+     * 水费缴纳的宿舍
+     */
+    @ExcelProperty("宿舍")
+    @ColumnWidth(15)
+    private String dorm;
+    /**
+     * 缴费年度
+     */
+    @ExcelProperty("缴费月度")
+    @ColumnWidth(15)
+    private String payYear;
+    /**
+     * 完成时间
+     */
+    @ExcelProperty(value = "支付完成时间", converter = LocalDateTimeConverter.class)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ColumnWidth(25)
+    private LocalDateTime finishTime;
+
+
+
+
+    /**
+     * 支付人姓名
+     */
+    @ExcelProperty("支付人姓名")
+    @ColumnWidth(15)
+    private String payerName;
+
+    /**
+     * 支付人微校号
+     */
+    @ExcelProperty("支付人微校号")
+    @ColumnWidth(25)
+    private String payerCardNumber;
+
+
+}

+ 2 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/vo/WechatJsApiPayParamVO.java

@@ -3,6 +3,7 @@ package com.chuanghai.smartschool.tuitionpayment.vo;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Builder;
 import lombok.Data;
+import lombok.ToString;
 
 /**
  * @Author: codingliang
@@ -12,6 +13,7 @@ import lombok.Data;
  **/
 @Builder
 @Data
+@ToString
 public class WechatJsApiPayParamVO {
 
     /**

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

@@ -5,11 +5,11 @@ 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:

+ 37 - 0
src/main/resources/mapper/tuitionpayment/PayOrderDeleteDao.xml

@@ -0,0 +1,37 @@
+<?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.PayOrderDeleteDao">
+
+	<!-- 可根据自己的需求,是否要使用 -->
+    <resultMap type="com.chuanghai.smartschool.tuitionpayment.entity.PayOrderDeleteEntity" id="payOrderDeleteMap">
+        <result property="id" column="id"/>
+        <result property="orderNo" column="order_no"/>
+        <result property="payerIdentify" column="payer_identify"/>
+        <result property="payForIdentify" column="pay_for_identify"/>
+        <result property="studentName" column="student_name"/>
+        <result property="className" column="class_name"/>
+        <result property=" realPayAmount" column="real_pay_amount"/>
+        <result property=" nowPayAmount" column="now_pay_amount"/>
+        <result property="status" column="status"/>
+        <result property="createTime" column="create_time"/>
+        <result property="finishTime" column="finish_time"/>
+        <result property="payItem" column="pay_item"/>
+        <result property="parentOrder" column="parent_order"/>
+        <result property="isParent" column="is_parent"/>
+        <result property="payOrderLoan" column="pay_order_loan"/>
+        <result property="exceptType" column="except_type"/>
+        <result property="dorm" column="dorm"/>
+        <result property="notPayDetail" column="not_pay_detail"/>
+        <result property="notPaySize" column="not_pay_size"/>
+        <result property="payDetail" column="pay_detail"/>
+        <result property="serialNumber" column="serial_number"/>
+        <result property="payinfoId" column="payinfo_id"/>
+        <result property="txtType" column="txt_type"/>
+        <result property="payerName" column="payer_ame"/>
+        <result property="payerCardNumber" column="payer_card_number"/>
+
+    </resultMap>
+
+
+</mapper>

+ 31 - 0
src/main/resources/mapper/tuitionpayment/PayableInfoWaterDeleteDao.xml

@@ -0,0 +1,31 @@
+<?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.PayableInfoWaterDeleteDao">
+
+	<!-- 可根据自己的需求,是否要使用 -->
+    <resultMap type="com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoWaterDeleteEntity" id="payableInfoDeleteMap">
+        <result property="id" column="id"/>
+        <result property="studentNo" column="student_no"/>
+        <result property="studentName" column="student_name"/>
+        <result property="grade" column="grade"/>
+        <result property="dorm" column="dorm"/>
+        <result property="collegeName" column="college_name"/>
+        <result property="majorName" column="major_name"/>
+        <result property="className" column="class_name"/>
+        <result property="realPayAmount" column="real_pay_amount"/>
+        <result property="payAmountDetail" column="pay_amount_detail"/>
+        <result property="studentCampus" column=""/>
+        <result property="paymentItem" column="payment_item"/>
+        <result property="payItemType" column="pay_item_type"/>
+        <result property="payCreateTime" column="pay_create_time"/>
+        <result property="payFinishTime" column="pay_finish_time"/>
+        <result property="payableAccount" column="payable_account"/>
+        <result property="cardNumber" column="card_number"/>
+        <result property="payMonth" column="pay_month"/>
+        <result property="serialNumber" column="serial_number"/>
+
+    </resultMap>
+
+
+</mapper>