Selaa lähdekoodia

1、核对农商行支付请求路径
2、测试修改移动端bug
3、核对修改管理端项目设置

Bingo 4 vuotta sitten
vanhempi
commit
a7ad136be6

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

@@ -71,8 +71,7 @@ public class PayDetailBankController {
     @PostMapping("saveOrUpdateBank")
     public CommonResult<T> updatePayDetailBank(@RequestBody JSONObject jsonObject){
         PayDetailBank payDetailBank = JSONObject.toJavaObject(jsonObject, PayDetailBank.class);
-        System.out.println(payDetailBank);
-        if (payDetailBank.getId() == null) {
+        if (payDetailBank.getBId() == null) {
             throw new RRException(BizCodeEnume.ID_IS_NULL, "ID字段为空");
         }
        payDetailBankService.saveOrUpdate(payDetailBank);

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

@@ -6,9 +6,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.PayDetailBank;
 import com.chuanghai.smartschool.tuitionpayment.entity.PayItem;
 import com.chuanghai.smartschool.tuitionpayment.service.PayItemService;
+import com.chuanghai.smartschool.tuitionpayment.vo.PayItemDetailVO;
 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.*;
 
@@ -26,6 +29,8 @@ public class PayItemController {
 
     @Autowired
     private PayItemService payItemService;
+    @Autowired
+    private PayDetailBankController payDetailBankController;
 
     /**
      * 用于缴费项目的新增
@@ -111,9 +116,17 @@ public class PayItemController {
     @PutMapping("/updatePayItem")
     public CommonResult<T> updatePayItem(@RequestHeader("admin_token") String adminToken,
                                          @RequestBody JSONObject jsonObject) {
-        PayItem payItem = JSONObject.toJavaObject(jsonObject, PayItem.class);
+        PayItemDetailVO payItemDetailVO = JSONObject.toJavaObject(jsonObject, PayItemDetailVO.class);
+        PayItem payItem = new PayItem();
+        PayDetailBank payDetailBank = new PayDetailBank();
+        BeanUtils.copyProperties(payItemDetailVO, payItem);
+        BeanUtils.copyProperties(payItemDetailVO, payDetailBank);
+        System.out.println(payDetailBank);
+        System.out.println(payItem);
         //将催缴发送请求计数器归零
         payItem.setRequestCount("0");
+        JSONObject payDetailBankJson = JSONObject.parseObject(payDetailBank.toString());
+        payDetailBankController.updatePayDetailBank(payDetailBankJson);
         boolean b = payItemService.updateById(payItem);
         return CommonResult.ok().setResult(b);
     }

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

@@ -102,14 +102,14 @@ public class PayOrderController {
     /**
      * 查询订单状态【用户端】
      *
-     * @param cardNumber 当前登录用户cardNumber
+    // * @param cardNumber 当前登录用户cardNumber
      * @param orderNo    订单号
      * @return
      */
     @GetMapping("{orderNo}/orderStatu")
-    public CommonResult<OrderStatusVO> queryOrderStatus(@RequestHeader("card_number") String cardNumber,
+    public CommonResult<OrderStatusVO> queryOrderStatus( //@RequestHeader("card_number") String cardNumber,
                                                         @PathVariable("orderNo") String orderNo) {
-        OrderStatusVO orderStatusVO = payOrderService.queryOrderStatus(cardNumber, orderNo);
+        OrderStatusVO orderStatusVO = payOrderService.queryOrderStatus(orderNo);
         return CommonResult.ok().setResult(orderStatusVO);
     }
 

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

@@ -269,7 +269,7 @@ public class PayableInfoController {
      * 更新缴费订单的时间参数
      */
     @PutMapping("updatePayInfo")
-    public CommonResult<T> updatePayInfo(@RequestHeader("card_number") String cardNumber, String itemName) {
+    public CommonResult<T> updatePayInfo(String itemName) {
         QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
         wrapper.eq("payMent_item", itemName);
         //更新时间等参数
@@ -277,7 +277,7 @@ public class PayableInfoController {
 
         List<PayableInfoEntity> objectList = new ArrayList<>();
         infoEntityList.forEach(payableInfoEntity -> {
-            payableInfoEntity.setCardNumber(cardNumber);
+            payableInfoEntity.setCardNumber(payableInfoEntity.getStudentNo());
             payableInfoEntity.setPayCreateTime(LocalDateTime.now());
             payableInfoEntity.setPayItemType("1");
             payableInfoEntity.setPayNoticeType("1");

+ 25 - 48
src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayableInfoWaterController.java

@@ -35,6 +35,8 @@ public class PayableInfoWaterController {
     private PayOrderService payOrderService;
     @Autowired
     private PayableInfoController payableInfoController;
+    @Autowired
+    private WechatController wechatController;
 
     /**
      * excel 导入学生学费相关原始数据
@@ -62,7 +64,7 @@ public class PayableInfoWaterController {
      * 更新缴费订单的时间参数
      */
     @PutMapping("updatePayInfoWater")
-    public CommonResult<T> updatePayInfoWater( @RequestHeader("card_number") String cardNumber) {
+    public CommonResult<T> updatePayInfoWater( ) {
 
         //更新时间等参数
         List<PayableInfoWaterEntity> InfoEntityList = payableInfoWaterService.list();
@@ -70,7 +72,7 @@ public class PayableInfoWaterController {
         InfoEntityList.forEach(payableInfoWaterEntity -> {
            // String cardNumber = payableInfoController.getCardNumberByIdCard(payableInfoWaterEntity.getStudentNo(),null,null,null);
 
-            payableInfoWaterEntity.setCardNumber(cardNumber);
+            payableInfoWaterEntity.setCardNumber(payableInfoWaterEntity.getStudentNo());
             payableInfoWaterEntity.setPayCreateTime(LocalDateTime.now());
             payableInfoWaterEntity.setPayItemType("1");
             payableInfoWaterEntity.setPayNoticeType("1");
@@ -81,52 +83,6 @@ public class PayableInfoWaterController {
         return CommonResult.ok();
     }
 
-//    /**
-//     * 删除缴费信息
-//     *
-//     * @param adminToken 管理员token
-//     * @param file       文件
-//     * @return
-//     * @apiNote 删除缴费信息
-//     * <strong>注意:</strong>
-//     * 文件需要符合规定的格式
-//     * 不会删除已经在线缴费的学生。如果有没有删除的学生,会在接口返回没有被删除学生的列表。
-//     * @since 0.1.0
-//     */
-//    @DeleteMapping("/deletePayWaterExecl")
-//    @AdminLoginCheck
-//    public CommonResult<DeletePayableInfoTO> deletePayableInfo(@RequestHeader("admin_token") String adminToken,
-//                                                               @RequestParam MultipartFile file) throws IOException {
-//
-//        MyStudentNoImportListener studentNoImportListener = new MyStudentNoImportListener();
-//        EasyExcel.read(file.getInputStream(), StudentNoVO.class, studentNoImportListener).sheet().doRead();
-//        List<StudentNoVO> studentNos = studentNoImportListener.getStudentNoList();
-//
-//        QueryWrapper<PayableInfoWaterEntity> wrapper = new QueryWrapper<>();
-//        wrapper.in(studentNos != null && studentNos.size() > 0, "student_no", studentNos);
-//        List<PayableInfoWaterEntity> list = payableInfoWaterService.list(wrapper);
-//
-//        List<DeletePayableInfoTO> alreadyPayList = new ArrayList<>();
-//
-//        List<Long> collect = list.stream().filter(payableInfo -> {
-//            boolean alreadyPay = payOrderService.isAlreadyPay(payableInfo.getStudentNo());
-//            if (alreadyPay) {
-//                DeletePayableInfoTO to = new DeletePayableInfoTO();
-//                BeanUtils.copyProperties(payableInfo, to);
-//                to.setMsg("学生已缴费,删除失败!");
-//                alreadyPayList.add(to);
-//            }
-//            return !alreadyPay;
-//        }).map(payableInfo -> payableInfo.getId())
-//                .collect(Collectors.toList());
-//
-//        if (collect.size() > 0) {
-//            payableInfoWaterService.removeByIds(collect);
-//        }
-//
-//        return CommonResult.ok().setResult(alreadyPayList);
-//    }
-
 
     /**
      * 根据card_number获取缴费信息
@@ -140,4 +96,25 @@ public class PayableInfoWaterController {
         List<PayableInfoWaterEntity> payableInfoWaterByCardNumber = payableInfoWaterService.getPayableInfoWaterByCardNumber(cardNumber, studentName);
         return payableInfoWaterByCardNumber;
     }
+
+    /**
+     * 修改学生宿舍信息
+     * @param id
+     * @param dorm
+     */
+    @GetMapping("updateDormById")
+    public CommonResult<T> updateDormById( @RequestParam("id") String id, @RequestParam("dorm") String dorm){
+        PayableInfoWaterEntity waterEntity = new PayableInfoWaterEntity();
+        Long ID = Long.parseLong(id);
+        waterEntity.setDorm(dorm);
+        if (dorm.contains("栋")) {
+            String[] dormSplit = dorm.split("栋");
+            if (dormSplit[1].length() != 3) {
+                throw new RRException(BizCodeEnume.VAILD_EXCEPTION, "宿舍信息填写异常");
+            }
+        }
+        waterEntity.setId(ID);
+        boolean b = payableInfoWaterService.updateById(waterEntity);
+        return CommonResult.ok().setResult(b);
+    }
 }

+ 29 - 10
src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/WechatController.java

@@ -1,12 +1,16 @@
 package com.chuanghai.smartschool.tuitionpayment.controller;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.chuanghai.smartschool.tuitionpayment.common.utils.CommonResult;
 import com.chuanghai.smartschool.tuitionpayment.config.WechatConfig;
 import com.chuanghai.smartschool.tuitionpayment.config.WeixiaoConfig;
-import com.chuanghai.smartschool.tuitionpayment.entity.*;
+import com.chuanghai.smartschool.tuitionpayment.entity.PayItem;
+import com.chuanghai.smartschool.tuitionpayment.entity.PayOrderEntity;
+import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoEntity;
+import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoWaterEntity;
 import com.chuanghai.smartschool.tuitionpayment.service.PayItemService;
 import com.chuanghai.smartschool.tuitionpayment.service.PayOrderService;
 import com.chuanghai.smartschool.tuitionpayment.service.PayableInfoService;
@@ -55,7 +59,6 @@ public class WechatController {
      * 用于记录用户的access_token
      */
     private String accessTokenPublic = "";
-
     /**
      * 用于记录催缴的次数   计时器
      */
@@ -110,6 +113,7 @@ public class WechatController {
         }
     }
 
+
     /**
      * 微校授权回调地址
      *
@@ -133,10 +137,6 @@ public class WechatController {
         tokenParams.put("grant_type", "authorization_code");
         tokenParams.put("redirect_uri", state); // 该地址需要与发起授权地址保持一直
 
-        System.out.println("======");
-        tokenParams.keySet().forEach(key -> System.out.println(tokenParams.get(key)));
-        System.out.println("======");
-
         try {
             // wecode换取token
             RestTemplate client = new RestTemplate();
@@ -144,12 +144,9 @@ public class WechatController {
             headers.setContentType(MediaType.APPLICATION_JSON);
             HttpEntity<Map<String, String>> request = new HttpEntity<>(tokenParams, headers);
             //ResponseEntity<String> tokenResponse = client.postForEntity(tokenUrl, tokenParams, String.class);
-            System.out.println("-----------------------------------------------------------");
 
             ResponseEntity<String> tokenResponse = client.postForEntity(tokenUrl, request, String.class);
-            // TODO
 
-            System.out.println(tokenResponse.getBody());
             ObjectMapper mapper = new ObjectMapper();
             Map<String, Object> jsonMap = mapper.readValue(tokenResponse.getBody(), new TypeReference<Map<String, Object>>() {
             });
@@ -174,6 +171,8 @@ public class WechatController {
         }
     }
 
+
+
 //    /**
 //     * 查询用户的基本信息
 //     *
@@ -244,7 +243,7 @@ public class WechatController {
     }
 
     /**
-     * 实现一键通知下发缴费订单功能
+     * 实现同步下发缴费订单功能
      *
      * @param itemName
      * @return
@@ -275,6 +274,26 @@ public class WechatController {
     }
 
     /**
+     * 实现同步下发缴费订单功能
+     *
+     * @param jsonObject
+     * @return
+     */
+    @PostMapping("/oneKeyNotice")
+    @ResponseBody
+    public CommonResult<T> oneKeyNotice(@RequestBody JSONObject jsonObject) {
+        String itemName = jsonObject.get("itemName").toString();
+        JSONArray cardNumberList = jsonObject.getJSONArray("cardNumberList");
+        WeixiaoVO weixiaoVO = new WeixiaoVO();
+        weixiaoVO.setCardNumberList(cardNumberList);
+        weixiaoVO.setTitle(itemName + "催缴通知");
+        weixiaoVO.setSender("财务办公室");
+        weixiaoVO.setContent("同学你好," + weixiaoVO.getTitle() + "缴费已经开始,请尽快查看缴费详情完成缴费,谢谢合作!");
+        JSONObject json = (JSONObject) JSONObject.toJSON(weixiaoVO);
+        return notice(json);
+    }
+
+    /**
      * @param jsonObject 封装了发送微校通知的参数信息
      * @return
      */

+ 3 - 1
src/main/java/com/chuanghai/smartschool/tuitionpayment/entity/PayDetailBank.java

@@ -1,5 +1,6 @@
 package com.chuanghai.smartschool.tuitionpayment.entity;
 
+import com.baomidou.mybatisplus.annotation.TableId;
 import lombok.Data;
 
 /**
@@ -13,7 +14,8 @@ public class PayDetailBank {
     /**
      * ID 编号
      */
-    private Integer id;
+    @TableId("id")
+    private Integer bId;
     /**
      * 缴费项目
      */

+ 2 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayOrderServiceImpl.java

@@ -594,6 +594,8 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
     @Override
     public OrderStatusVO queryOrderStatus(String cardNumber, String orderNo) {
         OrderStatusVO orderStatusVO = queryOrderStatus(orderNo);
+        System.out.println(cardNumber+" -----------cardNumber------------- ");
+        System.out.println(orderStatusVO.getPayerId()+" -----------orderStatusVO.getPayerId()------------- ");
         if (!orderStatusVO.getPayerId().equals(cardNumber)) {
             throw new RRException(BizCodeEnume.NO_PERMISSION);
         }

+ 3 - 4
src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayServiceImpl.java

@@ -269,7 +269,7 @@ public class PayServiceImpl implements PayService {
         //联合建行
       //  String paramStr = "{\"ord_no\":\"1547912460571332610\",\"amount\":\"1\",\"out_no\":\"1547912460571332610\",\"rand_str\":\"aj9tBMXszcpXisyKKq8Qp7UOWRgml7vvrEZ3rWw09VYrowc8XkYnsTboLsL6zhB1WA4nxAoGvn8TUk2RE1f7VqvGThMsyouuYySw9hcEElyyFBqkCGry6XeZe1sMpXho\",\"sign\":\"19994536a5357105d0cb9271ebb9850f\",\"pay_time\":\"20220715195451\",\"status\":\"1\",\"timestamp\":\"1657886107\"}";
         //单次
-        String paramStr = "{\"ord_no\":\"1547912827262554114\",\"amount\":\"1\",\"out_no\":\"1547912827262554114\",\"rand_str\":\"lOI3vMnfK4l1TDKNzJHVmgH3QsYythHO5pRBbfQWjcYcQI0psIlPZ3SPwRoZ95NevFQGUGDdTBqKkq9M8vC7zvX5nl4wqSLWxBDsigFcS5Wdv60EBCLb7Igu3l1udMqL\",\"sign\":\"34ec273ef52fbb335c9521c1b8dfc419\",\"pay_time\":\"20220715195604\",\"status\":\"1\",\"timestamp\":\"1657886181\"}";
+        String paramStr = "{\"ord_no\":\"1548887551681536002\",\"amount\":\"1\",\"out_no\":\"1548887551681536002\",\"rand_str\":\"oPN07ifuVHat1j4y5y6tYzJ17ByR2tVrjJsr1HWXo6qqpvYv35Y1EI3MjBDm5yNoifPkWLhlRIMhdLNgQMivulhOXVa2uYrMeh6a2owU6jcj4ZAULTpgfH5cCgf6eHTs\",\"sign\":\"cc777afff162b4f0d562bac8a87068a4\",\"pay_time\":\"20220718122932\",\"status\":\"1\",\"timestamp\":\"1658118593\"}";
 
         ObjectMapper mapper = new ObjectMapper();
         HashMap<String, String> hashMap = mapper.readValue(paramStr, new TypeReference<HashMap>() {
@@ -278,7 +278,7 @@ public class PayServiceImpl implements PayService {
         System.out.println(JXNXSPayUtil.verifySign(hashMap, "611764d05a545bb7bb08cbd457f7dac1"));
 
        //现在
-      // System.out.println(JXNXSPayUtil.verifySign(hashMap, "5a920b634d6486fc2dd4342c6c5787b8"));
+//       System.out.println(JXNXSPayUtil.verifySign(hashMap, "5a920b634d6486fc2dd4342c6c5787b8"));
     }
 
     /**
@@ -307,8 +307,7 @@ public class PayServiceImpl implements PayService {
         // "rand_str":"","sign":"","pay_time":"",
         // "status":"1","timestamp":"1629255539", "amount": ""}
         boolean isHandleSuccess = false;
-        System.out.println("w验签--------------------------verifySign-----------------" + verifySign);
-        log.info("农商验签 ",verifySign.toString());
+        System.out.println("农商验签--------------------------verifySign-----------------" + verifySign);
         if (verifySign) {
             String orderNo = params.get("out_no");
             String status = params.get("status");

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

@@ -200,6 +200,7 @@ public class PayableInfoServiceImpl extends ServiceImpl<PayableInfoDao, PayableI
 
         EasyExcel.read(file.getInputStream(),
                 PayableInfoEntity.class,
+              //  saas.class,
                 new MyPayableInfoImportListener(this))
                 .sheet()
                 .doRead();

+ 74 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/vo/PayItemDetailVO.java

@@ -0,0 +1,74 @@
+package com.chuanghai.smartschool.tuitionpayment.vo;
+
+import lombok.Data;
+
+/**
+ * @Author: binguo
+ * @Date: 2022/7/18 星期一 17:03
+ * @Description: 用于接收缴费设置与银行收费项目的参数
+ * @Version: 1.0
+ */
+@Data
+public class PayItemDetailVO {
+    /**
+     * 项目编号
+     */
+    private Integer itemId;
+    /**
+     * 项目名称
+     */
+    private String itemName;
+    /**
+     * 项目状态
+     */
+    private String itemStatus;
+    /**
+     * 项目缴费银行
+     */
+    private String itemBank;
+    /**
+     * 项目缴费账户
+     */
+    private String itemAccount;
+
+    /**
+     * 可缴费年级 [1,2,3,4,5]
+     */
+    private String itemGrade;
+    /**
+     * 项目是否催缴  true false
+     */
+    private Boolean itemAsk;
+    /**
+     * 异常订单是否发送推送   true  false
+     */
+    private Boolean itemExcept;
+    /**
+     * 催缴间隔天数
+     */
+    private String itemAskDay;
+    /**
+     * 催缴次数
+     */
+    private String itemAskCount;
+    /**
+     * 催缴请求次数
+     */
+    private String requestCount;
+
+    /**
+     * 收费银行明细ID
+     */
+    private String bId;
+    /**
+     * 建设银行的收费项目
+     */
+    private String ccbStr;
+    /**
+     * 农商银行的收费项目
+     */
+    private String rcbStr;
+
+
+
+}