|
@@ -0,0 +1,735 @@
|
|
|
|
|
+package com.chuanghai.smartschool.tuitionpayment.controller;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+import com.alibaba.excel.EasyExcel;
|
|
|
|
|
+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.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
|
+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.common.utils.PageParam;
|
|
|
|
|
+import com.chuanghai.smartschool.tuitionpayment.common.utils.PageUtils;
|
|
|
|
|
+import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoEntity;
|
|
|
|
|
+import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoWaterEntity;
|
|
|
|
|
+import com.chuanghai.smartschool.tuitionpayment.listener.aliexcel.MyStudentNoImportListener;
|
|
|
|
|
+import com.chuanghai.smartschool.tuitionpayment.service.PayItemDetailService;
|
|
|
|
|
+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.to.DeletePayableInfoTO;
|
|
|
|
|
+import com.chuanghai.smartschool.tuitionpayment.to.PayOrderQueryTO;
|
|
|
|
|
+import com.chuanghai.smartschool.tuitionpayment.utils.ListPageUtil;
|
|
|
|
|
+import com.chuanghai.smartschool.tuitionpayment.vo.*;
|
|
|
|
|
+import com.fasterxml.jackson.core.type.TypeReference;
|
|
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
|
+import jdk.nashorn.internal.scripts.JS;
|
|
|
|
|
+import org.apache.poi.ss.formula.functions.T;
|
|
|
|
|
+import org.ehcache.impl.internal.classes.commonslang.ArrayUtils;
|
|
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
+import org.springframework.http.HttpEntity;
|
|
|
|
|
+import org.springframework.http.HttpHeaders;
|
|
|
|
|
+import org.springframework.http.MediaType;
|
|
|
|
|
+import org.springframework.http.ResponseEntity;
|
|
|
|
|
+import org.springframework.util.LinkedMultiValueMap;
|
|
|
|
|
+import org.springframework.util.MultiValueMap;
|
|
|
|
|
+import org.springframework.util.StringUtils;
|
|
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
|
|
+import org.springframework.web.client.RestTemplate;
|
|
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
+//import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
|
|
|
|
+//import cn.afterturn.easypoi.excel.ExcelImportUtil;
|
|
|
|
|
+//import cn.afterturn.easypoi.excel.entity.ExportParams;
|
|
|
|
|
+
|
|
|
|
|
+import javax.servlet.ServletOutputStream;
|
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
+import java.io.IOException;
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
|
|
+import java.math.RoundingMode;
|
|
|
|
|
+import java.net.URLEncoder;
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
+import java.util.concurrent.ExecutionException;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * 学生应缴数据
|
|
|
|
|
+ *
|
|
|
|
|
+ * @author codingliang
|
|
|
|
|
+ * @email codingliang@gmail.com
|
|
|
|
|
+ * @date 2021-08-12 15:52:41
|
|
|
|
|
+ */
|
|
|
|
|
+@RestController
|
|
|
|
|
+@RequestMapping("tuitionpayment/payableinfo")
|
|
|
|
|
+public class PayableInfoController {
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private PayableInfoService payableInfoService;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private PayableInfoWaterService payableInfoWaterService;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private PayOrderService payOrderService;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private PayItemDetailController payItemDetailController;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private WechatController wechatController;
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 根据card_number获取缴费信息 整合各缴费项目的集合
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param cardNumber 当前登录用户cardNumber
|
|
|
|
|
+ * @return
|
|
|
|
|
+ * @Param currPage 当前页
|
|
|
|
|
+ * @pageSize pageSize 每页记录数
|
|
|
|
|
+ */
|
|
|
|
|
+ @GetMapping("payableInfo")
|
|
|
|
|
+ public CommonResult<PayableInfoWaterListVO> getPayableInfoByCardNumber(@RequestHeader("card_number") String cardNumber, String studentName,
|
|
|
|
|
+ Integer currPage, Integer pageSize) {
|
|
|
|
|
+ currPage = currPage == null ? 1 : currPage;
|
|
|
|
|
+ pageSize = pageSize == null ? 10 : pageSize;
|
|
|
|
|
+ try {
|
|
|
|
|
+ List<PayableInfoEntity> payableInfo = payableInfoService.getPayableInfoByCardNumber(cardNumber, studentName);
|
|
|
|
|
+ List<PayableInfoWaterListVO> objectList = new ArrayList<>();
|
|
|
|
|
+ payableInfo.forEach(payable -> {
|
|
|
|
|
+ PayableInfoWaterListVO payableInfoWaterListVO = new PayableInfoWaterListVO();
|
|
|
|
|
+ BeanUtils.copyProperties(payable, payableInfoWaterListVO);
|
|
|
|
|
+ objectList.add(payableInfoWaterListVO);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ List<PayableInfoWaterEntity> payableWater = payableInfoWaterService.getPayableInfoWaterByCardNumber(cardNumber, studentName);
|
|
|
|
|
+ payableWater.forEach(payableInfoWater -> {
|
|
|
|
|
+ PayableInfoWaterListVO payableInfoWaterListVO = new PayableInfoWaterListVO();
|
|
|
|
|
+ BeanUtils.copyProperties(payableInfoWater, payableInfoWaterListVO);
|
|
|
|
|
+ objectList.add(payableInfoWaterListVO);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ //将得到的payableInfoWaterListVOs集合数据按照payCreateTime进行
|
|
|
|
|
+ List<PayableInfoWaterListVO> payableInfoWaterListVOs = objectList.stream().sorted(Comparator.comparing(PayableInfoWaterListVO::getPayCreateTime).reversed()).collect(Collectors.toList());
|
|
|
|
|
+ payableInfoWaterListVOs.forEach(payableInfoWaterListVO -> {
|
|
|
|
|
+ payableInfoWaterListVO.setPayerIdentify(payableInfoWaterListVO.getStudentNo());
|
|
|
|
|
+ payableInfoWaterListVO.setPayForIdentify(payableInfoWaterListVO.getCardNumber());
|
|
|
|
|
+ payableInfoWaterListVO.setPayYear(payableInfoWaterListVO.getYears());
|
|
|
|
|
+ });
|
|
|
|
|
+ //判断是否传入分页信息
|
|
|
|
|
+ if (currPage != null && pageSize != null) {
|
|
|
|
|
+ ListPageUtil<PayableInfoWaterListVO> listPageUtil = new ListPageUtil<PayableInfoWaterListVO>(payableInfoWaterListVOs, currPage, pageSize);
|
|
|
|
|
+ payableInfoWaterListVOs = listPageUtil.getPagedList();
|
|
|
|
|
+ int totalCount = listPageUtil.getTotalCount();
|
|
|
|
|
+ int pageSize1 = listPageUtil.getPageSize();
|
|
|
|
|
+ int nowPage1 = listPageUtil.getNowPage();
|
|
|
|
|
+ PageUtils<PayableInfoWaterListVO> page = new PageUtils<PayableInfoWaterListVO>(payableInfoWaterListVOs, totalCount, pageSize1, nowPage1);
|
|
|
|
|
+ return CommonResult.ok().setResult(page);
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ return CommonResult.fail("0000", "该用户暂无缴费信息!");
|
|
|
|
|
+ }
|
|
|
|
|
+ return CommonResult.fail();
|
|
|
|
|
+ }
|
|
|
|
|
+//
|
|
|
|
|
+// /**
|
|
|
|
|
+// * 根据学号和学生姓名获取缴费信息
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param cardNumber 当前登录用户cardNumber
|
|
|
|
|
+// * @param studentNo 学号,新生可用身份证号码代替学号
|
|
|
|
|
+// * @param studentName 学生姓名
|
|
|
|
|
+// * @return
|
|
|
|
|
+// */
|
|
|
|
|
+// @GetMapping("payableInfo/{studentNo}/{studentName}")
|
|
|
|
|
+// public CommonResult< List<PayableInfoEntity>> getPayableInfoByCardNumberAndName(@RequestHeader("card_number") String cardNumber,
|
|
|
|
|
+// @PathVariable("studentNo") String studentNo,
|
|
|
|
|
+// @PathVariable("studentName") String studentName) {
|
|
|
|
|
+// List<PayableInfoEntity> info = payableInfoService.getPayableInfoByStudentNoAndName(studentNo, studentName);
|
|
|
|
|
+// return CommonResult.ok().setResult(info);
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 学生应缴列表
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param adminToken // * @param keyword 搜索关键字
|
|
|
|
|
+ * // * @param payStatus 订单状态
|
|
|
|
|
+ * // * @param createTime 创建时间
|
|
|
|
|
+ * // * @param payTime 支付时间
|
|
|
|
|
+ * // * @param pageParam 分页参数
|
|
|
|
|
+ * // * @param payItemType 缴费项目支付状态
|
|
|
|
|
+ * // * @param itemName 缴费项目名
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ @AdminLoginCheck
|
|
|
|
|
+ @GetMapping("/list")
|
|
|
|
|
+ public CommonResult<PageUtils<PayableInfoEntity>> list(@RequestHeader("admin_token") String adminToken,
|
|
|
|
|
+// String keyword, String payStatus, String createTime,
|
|
|
|
|
+// String payTime, PageParam pageParam,
|
|
|
|
|
+// String payItemType,
|
|
|
|
|
+// @RequestParam("itemName") String itemName
|
|
|
|
|
+ PayOrderQueryTO queryTO, PageParam pageParam) {
|
|
|
|
|
+ PageUtils page = null;
|
|
|
|
|
+ BigDecimal totalAmount = BigDecimal.ZERO;
|
|
|
|
|
+ int totalCount = 0;
|
|
|
|
|
+ if (queryTO.getItemName().equals("水费缴纳")) {
|
|
|
|
|
+ page = payableInfoWaterService.queryPage(queryTO, pageParam);
|
|
|
|
|
+ totalCount = page.getTotalCount();
|
|
|
|
|
+
|
|
|
|
|
+ List list = page.getList();
|
|
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
|
|
+ PayableInfoWaterEntity payableInfoWaterEntity = (PayableInfoWaterEntity) list.get(i);
|
|
|
|
|
+ totalAmount = totalAmount.add(payableInfoWaterEntity.getRealPayAmount());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ } else {
|
|
|
|
|
+ page = payableInfoService.queryPage(queryTO, pageParam);
|
|
|
|
|
+ totalCount = page.getTotalCount();
|
|
|
|
|
+ List list = page.getList();
|
|
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
|
|
+ PayableInfoEntity payableInfoEntity = (PayableInfoEntity) list.get(i);
|
|
|
|
|
+ totalAmount = totalAmount.add(payableInfoEntity.getRealPayAmount());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ PayableInfoListVO payableInfoListVO = new PayableInfoListVO();
|
|
|
|
|
+ payableInfoListVO.setPage(page);
|
|
|
|
|
+ payableInfoListVO.setTotalCount(totalCount);
|
|
|
|
|
+ payableInfoListVO.setTotalAmount(totalAmount);
|
|
|
|
|
+ //如果选择支付状态查询对应状态的金额
|
|
|
|
|
+ if (StringUtils.hasText(queryTO.getPayStatus())) {
|
|
|
|
|
+ String amount = payableInfoService.queryAmount(queryTO);
|
|
|
|
|
+ payableInfoListVO.setTotalCount(Integer.parseInt(amount.split("-")[1]));
|
|
|
|
|
+ payableInfoListVO.setTotalAmount(new BigDecimal(amount.split("-")[0]).setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
+ }
|
|
|
|
|
+ return CommonResult.ok().setResult(payableInfoListVO);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 下载缴费名单的txt
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param queryTO 查询参数
|
|
|
|
|
+ * @param response
|
|
|
|
|
+ * @throws IOException
|
|
|
|
|
+ */
|
|
|
|
|
+ @RequestMapping("exportTxt")
|
|
|
|
|
+ //@AdminLoginCheck
|
|
|
|
|
+ public void exportTxt(PayOrderQueryTO queryTO,
|
|
|
|
|
+ HttpServletResponse response) throws IOException {
|
|
|
|
|
+ if (queryTO.getItemName().equals("水费缴纳")) {
|
|
|
|
|
+ payableInfoWaterService.exportTxt(response, queryTO);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ payableInfoService.exportTxt(response, queryTO);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 下载缴费的学生名单
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param queryTO 封装参数
|
|
|
|
|
+ * @param response
|
|
|
|
|
+ * @throws IOException
|
|
|
|
|
+ */
|
|
|
|
|
+ @RequestMapping("downloadResult")
|
|
|
|
|
+ public void downloadResult(PayOrderQueryTO queryTO,
|
|
|
|
|
+ HttpServletResponse response) throws IOException {
|
|
|
|
|
+
|
|
|
|
|
+ if (queryTO.getItemName().equals("水费缴纳")) {
|
|
|
|
|
+ payableInfoWaterService.downloadResult(response, queryTO);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ payableInfoService.downloadResult(response, queryTO);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 学生应缴信息删除
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param adminToken 管理员token
|
|
|
|
|
+ * @param ids 需要删除记录的id集合
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ @AdminLoginCheck
|
|
|
|
|
+ @DeleteMapping("/delete")
|
|
|
|
|
+ public CommonResult<String> delete(@RequestHeader("admin_token") String adminToken,
|
|
|
|
|
+ @RequestBody Long[] ids) {
|
|
|
|
|
+
|
|
|
|
|
+ payableInfoService.removeByIds(Arrays.asList(ids));
|
|
|
|
|
+
|
|
|
|
|
+ return CommonResult.ok();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * excel 导入学生学费相关原始数据
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param adminToken 管理员token
|
|
|
|
|
+ * @param file 文件,文件格式注意需要符合要求
|
|
|
|
|
+ * @return
|
|
|
|
|
+ * @apiNote 导入学生学费相关原始数据
|
|
|
|
|
+ * <strong>注意:</strong>
|
|
|
|
|
+ * 1.需要提示用户上传的excel文件需要符合规定的格式;
|
|
|
|
|
+ * 2.上传新文件将会导致所有的旧数据被删除,学费缴纳开始后不建议再上传新数据。
|
|
|
|
|
+ */
|
|
|
|
|
+ @PostMapping("importByExcel")
|
|
|
|
|
+ @AdminLoginCheck
|
|
|
|
|
+ public CommonResult<String> importByExcel(@RequestHeader("admin_token") String adminToken,
|
|
|
|
|
+ @RequestParam MultipartFile file) throws IOException {
|
|
|
|
|
+ if (file.isEmpty()) {
|
|
|
|
|
+ throw new RRException(BizCodeEnume.PARAMETER_ERROR, "文件不能为空");
|
|
|
|
|
+ }
|
|
|
|
|
+ payableInfoService.importByExcel(file);
|
|
|
|
|
+ return CommonResult.ok();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 更新缴费订单的时间参数
|
|
|
|
|
+ */
|
|
|
|
|
+ @PutMapping("updatePayInfo")
|
|
|
|
|
+ public CommonResult<T> updatePayInfo(String itemName) {
|
|
|
|
|
+ QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
|
|
|
|
|
+ wrapper.eq("payMent_item", itemName);
|
|
|
|
|
+ //更新时间等参数
|
|
|
|
|
+ List<PayableInfoEntity> infoEntityList = payableInfoService.list(wrapper);
|
|
|
|
|
+
|
|
|
|
|
+ List<PayableInfoEntity> objectList = new ArrayList<>();
|
|
|
|
|
+ infoEntityList.forEach(payableInfoEntity -> {
|
|
|
|
|
+ String cardNumber = getCardNumberByIdCard(payableInfoEntity.getStudentNo(), null, null, null);
|
|
|
|
|
+ payableInfoEntity.setCardNumber(cardNumber);
|
|
|
|
|
+ payableInfoEntity.setPayCreateTime(LocalDateTime.now());
|
|
|
|
|
+ payableInfoEntity.setPayItemType("1");
|
|
|
|
|
+ payableInfoEntity.setPayNoticeType("1");
|
|
|
|
|
+
|
|
|
|
|
+ if (StringUtils.hasText(payableInfoEntity.getNotMustMoney())) {
|
|
|
|
|
+ payableInfoEntity.setNotPayDetail(payableInfoEntity.getMustMoney() + "/" + payableInfoEntity.getNotMustMoney());
|
|
|
|
|
+ } else {
|
|
|
|
|
+ payableInfoEntity.setNotPayDetail(payableInfoEntity.getMustMoney());
|
|
|
|
|
+ }
|
|
|
|
|
+ String[] split = payableInfoEntity.getNotPayDetail().split("/");
|
|
|
|
|
+ payableInfoEntity.setNotPaySize(split.length);
|
|
|
|
|
+ payableInfoEntity.setPayableAccount(payableInfoService.queryPayItemByName(payableInfoEntity.getPaymentItem()));
|
|
|
|
|
+ objectList.add(payableInfoEntity);
|
|
|
|
|
+ });
|
|
|
|
|
+ payableInfoService.updateBatchById(objectList);
|
|
|
|
|
+ return CommonResult.ok();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 通过身份证调用活动管理平台数据库换取 微笑的cardNumber信息
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param idCard
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ public String getCardNumberByIdCard(String idCard, String inputType, String inputStr, String outPutType) {
|
|
|
|
|
+ //表示输入的参数为身份证
|
|
|
|
|
+ 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 = "";
|
|
|
|
|
+ try {
|
|
|
|
|
+ cardNumber = jsonObj.get("result").toString();
|
|
|
|
|
+ } catch (NullPointerException e) {
|
|
|
|
|
+ throw new NullPointerException("未匹配到该用户!");
|
|
|
|
|
+ }
|
|
|
|
|
+ return cardNumber == null ? idCard : cardNumber;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 删除缴费信息
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param adminToken 管理员token
|
|
|
|
|
+ * @param file 文件
|
|
|
|
|
+ * @return
|
|
|
|
|
+ * @apiNote 删除缴费信息
|
|
|
|
|
+ * <strong>注意:</strong>
|
|
|
|
|
+ * 文件需要符合规定的格式
|
|
|
|
|
+ * 不会删除已经在线缴费的学生。如果有没有删除的学生,会在接口返回没有被删除学生的列表。
|
|
|
|
|
+ * @since 0.1.0
|
|
|
|
|
+ */
|
|
|
|
|
+ @PostMapping("/deletePayableExecl")
|
|
|
|
|
+ @AdminLoginCheck
|
|
|
|
|
+ public CommonResult<DeletePayableInfoTO> deletePayableInfo(@RequestHeader("admin_token") String adminToken,
|
|
|
|
|
+ @RequestParam MultipartFile file) throws IOException {
|
|
|
|
|
+
|
|
|
|
|
+ if (file.isEmpty()) {
|
|
|
|
|
+ throw new RRException(BizCodeEnume.PARAMETER_ERROR, "文件不能为空");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ MyStudentNoImportListener studentNoImportListener = new MyStudentNoImportListener();
|
|
|
|
|
+ EasyExcel.read(file.getInputStream(), StudentNoVO.class, studentNoImportListener).sheet().doRead();
|
|
|
|
|
+ List<StudentNoVO> studentNos = studentNoImportListener.getStudentNoList();
|
|
|
|
|
+
|
|
|
|
|
+ List<DeletePayableInfoTO> alreadyPayList = new ArrayList<>();
|
|
|
|
|
+ studentNos.forEach(studentNo -> {
|
|
|
|
|
+ StudentNoVO student = studentNo;
|
|
|
|
|
+ if (student.getPaymentItem().equals("水费缴纳")) {
|
|
|
|
|
+ QueryWrapper<PayableInfoWaterEntity> wrapper = new QueryWrapper<>();
|
|
|
|
|
+ wrapper.eq(student.getStudentNo() != null, "student_no", student.getStudentNo());
|
|
|
|
|
+ wrapper.eq(student.getPaymentItem() != null, "payment_item", student.getPaymentItem());
|
|
|
|
|
+
|
|
|
|
|
+ PayableInfoWaterEntity one = payableInfoWaterService.getOne(wrapper);
|
|
|
|
|
+ if (one != null) {
|
|
|
|
|
+ boolean alreadyPay = payOrderService.isAlreadyPay(one.getStudentNo(), one.getPaymentItem(), one.getPayMonth(), null);
|
|
|
|
|
+ if (alreadyPay) {
|
|
|
|
|
+ DeletePayableInfoTO to = new DeletePayableInfoTO();
|
|
|
|
|
+ BeanUtils.copyProperties(one, to);
|
|
|
|
|
+ to.setMsg("学生已缴费,删除失败!");
|
|
|
|
|
+ alreadyPayList.add(to);
|
|
|
|
|
+ }
|
|
|
|
|
+ payableInfoWaterService.removeById(one);
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
|
|
|
|
|
+ wrapper.eq(student.getStudentNo() != null, "student_no", student.getStudentNo());
|
|
|
|
|
+ wrapper.eq(student.getPaymentItem() != null, "payment_item", student.getPaymentItem());
|
|
|
|
|
+
|
|
|
|
|
+ PayableInfoEntity one = payableInfoService.getOne(wrapper);
|
|
|
|
|
+ if (one != null) {
|
|
|
|
|
+ boolean alreadyPay = payOrderService.isAlreadyPay(one.getStudentNo(), one.getPaymentItem(), one.getYears(), one.getNotPaySize());
|
|
|
|
|
+ if (alreadyPay) {
|
|
|
|
|
+ DeletePayableInfoTO to = new DeletePayableInfoTO();
|
|
|
|
|
+ BeanUtils.copyProperties(one, to);
|
|
|
|
|
+ to.setMsg("学生已缴费,删除失败!");
|
|
|
|
|
+ alreadyPayList.add(to);
|
|
|
|
|
+ }
|
|
|
|
|
+ payableInfoService.removeById(one);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ return CommonResult.ok().setResult(alreadyPayList);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 查询缴费名单的缴费详情
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param id
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+// @GetMapping("/queryPayInfoDetail")
|
|
|
|
|
+// public CommonResult queryPayInfoDetail(@RequestParam String id, @RequestParam("itemName") String itemName, String realPayDetail) {
|
|
|
|
|
+// PayInfoDetailVO payInfoDetailVO = new PayInfoDetailVO();
|
|
|
|
|
+// if (itemName.equals("水费缴纳")) {
|
|
|
|
|
+// QueryWrapper<PayableInfoWaterEntity> wrapperWater = new QueryWrapper<>();
|
|
|
|
|
+// wrapperWater.eq("id", id)
|
|
|
|
|
+// .eq("payment_item", itemName);
|
|
|
|
|
+// PayableInfoWaterEntity water = payableInfoWaterService.getOne(wrapperWater);
|
|
|
|
|
+//
|
|
|
|
|
+// if (water.getPayAmountDetail() != null) {
|
|
|
|
|
+// payInfoDetailVO.setPayAmountDetail(water.getPayAmountDetail());
|
|
|
|
|
+// }
|
|
|
|
|
+// payInfoDetailVO.setRealPayAmount(water.getRealPayAmount());
|
|
|
|
|
+// } else {
|
|
|
|
|
+// QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
|
|
|
|
|
+// wrapper.eq("id", id)
|
|
|
|
|
+// .eq("payment_item", itemName);
|
|
|
|
|
+// PayableInfoEntity payableInfoEntity = payableInfoService.getOne(wrapper);
|
|
|
|
|
+//
|
|
|
|
|
+// if (payableInfoEntity.getMustMoney() != null) {
|
|
|
|
|
+// payInfoDetailVO.setMustMoney(payableInfoEntity.getMustMoney());
|
|
|
|
|
+// }
|
|
|
|
|
+// if (payableInfoEntity.getNotMustMoney() != null) {
|
|
|
|
|
+// payInfoDetailVO.setNotMustMoney(payableInfoEntity.getNotMustMoney());
|
|
|
|
|
+// }
|
|
|
|
|
+// if (StringUtils.hasText(realPayDetail)){
|
|
|
|
|
+//
|
|
|
|
|
+// }
|
|
|
|
|
+// String[] realPayDetailStr = realPayDetail.split("/");
|
|
|
|
|
+// BigDecimal realMount = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
|
|
|
|
|
+// for (int i = 0; i < realPayDetailStr.length; i++) {
|
|
|
|
|
+// String detail = realPayDetailStr[i];
|
|
|
|
|
+// String[] detailAMount = detail.split(":");
|
|
|
|
|
+// realMount = realMount.add(new BigDecimal(detailAMount[1]).setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
+// }
|
|
|
|
|
+// String notPayDetail = payableInfoEntity.getMustMoney() + "/" + payableInfoEntity.getNotMustMoney();
|
|
|
|
|
+// payInfoDetailVO.setRealPayAmount(realMount);
|
|
|
|
|
+//
|
|
|
|
|
+//
|
|
|
|
|
+// int notPayDetailCount = 0;
|
|
|
|
|
+// String notPayDetailStr = "";
|
|
|
|
|
+// String[] realPayDetailArray;
|
|
|
|
|
+// String[] notPayDetailArray;
|
|
|
|
|
+// ArrayList<String> listA;
|
|
|
|
|
+// ArrayList<String> listB;
|
|
|
|
|
+// if (StringUtils.hasText(payableInfoEntity.getPayDetail())) {
|
|
|
|
|
+// payInfoDetailVO.setRealPayDetail(payableInfoEntity.getPayDetail() + "/" + realPayDetail);
|
|
|
|
|
+// } else {
|
|
|
|
|
+// payInfoDetailVO.setRealPayDetail(realPayDetail);
|
|
|
|
|
+// }
|
|
|
|
|
+// realPayDetailArray = payInfoDetailVO.getRealPayDetail().split("/");
|
|
|
|
|
+// notPayDetailArray = notPayDetail.split("/");
|
|
|
|
|
+// listA = new ArrayList<>(Arrays.asList(realPayDetailArray));
|
|
|
|
|
+// listB = new ArrayList<>(Arrays.asList(notPayDetailArray));
|
|
|
|
|
+// listB.removeAll(listA);
|
|
|
|
|
+//
|
|
|
|
|
+// if (listB.size() == 1) {
|
|
|
|
|
+// payInfoDetailVO.setNotPayDetail(listB.get(0));
|
|
|
|
|
+// notPayDetailCount = 1;
|
|
|
|
|
+// } else if (listB.size() > 1) {
|
|
|
|
|
+// for (int i = 0; i < listB.size(); i++) {
|
|
|
|
|
+// notPayDetailStr += listB.get(i) + "/";
|
|
|
|
|
+// notPayDetailCount++;
|
|
|
|
|
+// }
|
|
|
|
|
+// payInfoDetailVO.setNotPayDetail(notPayDetailStr.substring(0, notPayDetailStr.length() - 1));
|
|
|
|
|
+// } else {
|
|
|
|
|
+// payInfoDetailVO.setNotPayDetail(notPayDetailStr);
|
|
|
|
|
+// }
|
|
|
|
|
+// payInfoDetailVO.setNotPaySize(notPayDetailCount);
|
|
|
|
|
+//
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// return CommonResult.ok().setResult(payInfoDetailVO);
|
|
|
|
|
+// }
|
|
|
|
|
+ @GetMapping("/queryPayInfoDetail")
|
|
|
|
|
+ public CommonResult queryPayInfoDetail(@RequestParam String id, @RequestParam("itemName") String itemName, String realPayDetail) {
|
|
|
|
|
+ PayInfoDetailVO payInfoDetailVO = new PayInfoDetailVO();
|
|
|
|
|
+ //未缴费明细金额
|
|
|
|
|
+ BigDecimal realMount = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
|
|
|
|
|
+
|
|
|
|
|
+ if (itemName.equals("水费缴纳")) {
|
|
|
|
|
+ QueryWrapper<PayableInfoWaterEntity> wrapperWater = new QueryWrapper<>();
|
|
|
|
|
+ wrapperWater.eq("id", id)
|
|
|
|
|
+ .eq("payment_item", itemName);
|
|
|
|
|
+ PayableInfoWaterEntity water = payableInfoWaterService.getOne(wrapperWater);
|
|
|
|
|
+
|
|
|
|
|
+ if (water.getPayAmountDetail() != null) {
|
|
|
|
|
+ payInfoDetailVO.setPayAmountDetail(water.getPayAmountDetail());
|
|
|
|
|
+ }
|
|
|
|
|
+ payInfoDetailVO.setRealPayAmount(water.getRealPayAmount());
|
|
|
|
|
+ payInfoDetailVO.setNotPayDetailAmount(water.getRealPayAmount());
|
|
|
|
|
+ } else {
|
|
|
|
|
+ QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
|
|
|
|
|
+ wrapper.eq("id", id)
|
|
|
|
|
+ .eq("payment_item", itemName);
|
|
|
|
|
+ PayableInfoEntity payableInfoEntity = payableInfoService.getOne(wrapper);
|
|
|
|
|
+ if (payableInfoEntity == null) {
|
|
|
|
|
+ throw new RRException(BizCodeEnume.DATA_IS_EXIST, "该缴费订单不存在。");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (payableInfoEntity.getMustMoney() != null) {
|
|
|
|
|
+ payInfoDetailVO.setMustMoney(payableInfoEntity.getMustMoney());
|
|
|
|
|
+ }
|
|
|
|
|
+ if (payableInfoEntity.getNotMustMoney() != null) {
|
|
|
|
|
+ payInfoDetailVO.setNotMustMoney(payableInfoEntity.getNotMustMoney());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ String[] realPayDetailStr;
|
|
|
|
|
+ String realPayDetail1= "";
|
|
|
|
|
+ // 缴费订单的已缴费明细不为null
|
|
|
|
|
+ if (StringUtils.hasText(payableInfoEntity.getPayDetail())) {
|
|
|
|
|
+ if (StringUtils.hasText(realPayDetail)) {
|
|
|
|
|
+ //缴费订单所有已交的项目明细
|
|
|
|
|
+ realPayDetail1 = payableInfoEntity.getPayDetail() + "/" + realPayDetail;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ realPayDetail1 = payableInfoEntity.getPayDetail();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // 本次缴费明细不为空
|
|
|
|
|
+ if (StringUtils.hasText(realPayDetail)) {
|
|
|
|
|
+ //缴费订单所有已交的项目明细
|
|
|
|
|
+ if (StringUtils.hasText(payableInfoEntity.getPayDetail())) {
|
|
|
|
|
+ realPayDetail1 = payableInfoEntity.getPayDetail() + "/" + realPayDetail;
|
|
|
|
|
+ }else {
|
|
|
|
|
+ realPayDetail1 = realPayDetail;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // 本次缴费明细为空和缴费订单所有已交的项目明细为空
|
|
|
|
|
+// if (StringUtils.hasText(realPayDetail) && StringUtils.hasText(payableInfoEntity.getPayDetail())) {
|
|
|
|
|
+// System.out.println(realPayDetail1);
|
|
|
|
|
+// realPayDetail1 = realPayDetail1.substring(0,realPayDetail1.length()/2);
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+System.out.println(realPayDetail1);
|
|
|
|
|
+ String notPayDetail = "";
|
|
|
|
|
+ if (StringUtils.hasText(payableInfoEntity.getNotMustMoney())) {
|
|
|
|
|
+
|
|
|
|
|
+ notPayDetail = payableInfoEntity.getMustMoney() + "/" + payableInfoEntity.getNotMustMoney();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ notPayDetail = payableInfoEntity.getMustMoney();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ int notPayDetailCount = 0;
|
|
|
|
|
+ String notPayDetailStr = "";
|
|
|
|
|
+ String[] realPayDetailArray;
|
|
|
|
|
+ String[] notPayDetailArray;
|
|
|
|
|
+ ArrayList<String> listA;
|
|
|
|
|
+ ArrayList<String> listB;
|
|
|
|
|
+// if (StringUtils.hasText(realPayDetail)) {
|
|
|
|
|
+// if (StringUtils.hasText(payableInfoEntity.getPayDetail())) {
|
|
|
|
|
+// payInfoDetailVO.setRealPayDetail(payableInfoEntity.getPayDetail() + "/" + realPayDetail);
|
|
|
|
|
+// } else {
|
|
|
|
|
+// payInfoDetailVO.setRealPayDetail(realPayDetail);
|
|
|
|
|
+// }
|
|
|
|
|
+// } else {
|
|
|
|
|
+// if (StringUtils.hasText(payableInfoEntity.getPayDetail())) {
|
|
|
|
|
+// payInfoDetailVO.setRealPayDetail(payableInfoEntity.getPayDetail());
|
|
|
|
|
+// } else {
|
|
|
|
|
+// payInfoDetailVO.setRealPayDetail(realPayDetail == null ? "" : realPayDetail);
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+ payInfoDetailVO.setRealPayDetail(realPayDetail1);
|
|
|
|
|
+ realPayDetailArray = payInfoDetailVO.getRealPayDetail().split("/");
|
|
|
|
|
+ notPayDetailArray = notPayDetail.split("/");
|
|
|
|
|
+ listA = new ArrayList<>(Arrays.asList(realPayDetailArray));
|
|
|
|
|
+ String[] splitRealPayDetail = new String[listA.size()];
|
|
|
|
|
+ for (int j = 0; j < listA.size(); j++) {
|
|
|
|
|
+ splitRealPayDetail = listA.get(j).split("/");
|
|
|
|
|
+ String detail = splitRealPayDetail[0];
|
|
|
|
|
+ if (StringUtils.hasText(detail)) {
|
|
|
|
|
+ String[] detailAMount = detail.split(":");
|
|
|
|
|
+ realMount = realMount.add(new BigDecimal(detailAMount[1]).setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ listB = new ArrayList<>(Arrays.asList(notPayDetailArray));
|
|
|
|
|
+ listB.removeAll(listA);
|
|
|
|
|
+
|
|
|
|
|
+ if (listB.size() == 1) {
|
|
|
|
|
+ payInfoDetailVO.setNotPayDetail(listB.get(0));
|
|
|
|
|
+ notPayDetailCount = 1;
|
|
|
|
|
+ } else if (listB.size() > 1) {
|
|
|
|
|
+ for (int i = 0; i < listB.size(); i++) {
|
|
|
|
|
+ notPayDetailStr += listB.get(i) + "/";
|
|
|
|
|
+ notPayDetailCount++;
|
|
|
|
|
+ }
|
|
|
|
|
+ payInfoDetailVO.setNotPayDetail(notPayDetailStr.substring(0, notPayDetailStr.length() - 1));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ payInfoDetailVO.setNotPayDetail(notPayDetailStr);
|
|
|
|
|
+ }
|
|
|
|
|
+ payInfoDetailVO.setNotPaySize(notPayDetailCount);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //已支付明细金额
|
|
|
|
|
+ payInfoDetailVO.setPayDetailAmount(realMount);
|
|
|
|
|
+ //订单总金额
|
|
|
|
|
+ payInfoDetailVO.setRealPayAmount(payableInfoEntity.getRealPayAmount().setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
+ // 未支付明细金额
|
|
|
|
|
+ payInfoDetailVO.setNotPayDetailAmount((payableInfoEntity.getRealPayAmount().subtract(realMount)).setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return CommonResult.ok().setResult(payInfoDetailVO);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+// /**
|
|
|
|
|
+// * 查询缴费名单的缴费详情
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param id
|
|
|
|
|
+// * @return
|
|
|
|
|
+// */
|
|
|
|
|
+// @GetMapping("/queryPayDetail")
|
|
|
|
|
+// public CommonResult<T> queryPayDetail(@RequestParam String id, @RequestParam("itemName") String
|
|
|
|
|
+// itemName, String realPayDetail) {
|
|
|
|
|
+// PayInfoDetailVO payInfoDetailVO = new PayInfoDetailVO();
|
|
|
|
|
+// if (itemName.equals("水费缴纳")) {
|
|
|
|
|
+// QueryWrapper<PayableInfoWaterEntity> wrapperWater = new QueryWrapper<>();
|
|
|
|
|
+// wrapperWater.eq("id", id)
|
|
|
|
|
+// .eq("payment_item", itemName);
|
|
|
|
|
+// PayableInfoWaterEntity water = payableInfoWaterService.getOne(wrapperWater);
|
|
|
|
|
+//
|
|
|
|
|
+// if (water.getPayAmountDetail() != null) {
|
|
|
|
|
+// payInfoDetailVO.setPayAmountDetail(water.getPayAmountDetail());
|
|
|
|
|
+// }
|
|
|
|
|
+// payInfoDetailVO.setRealPayAmount(water.getRealPayAmount());
|
|
|
|
|
+// } else {
|
|
|
|
|
+// QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
|
|
|
|
|
+// wrapper.eq("id", id)
|
|
|
|
|
+// .eq("payment_item", itemName);
|
|
|
|
|
+// PayableInfoEntity payableInfoEntity = payableInfoService.getOne(wrapper);
|
|
|
|
|
+//
|
|
|
|
|
+// payInfoDetailVO.setRealPayDetail(realPayDetail);
|
|
|
|
|
+//
|
|
|
|
|
+// if (payableInfoEntity.getNotPayDetail() != null) {
|
|
|
|
|
+// payInfoDetailVO.setNotPayDetail(payableInfoEntity.getNotPayDetail());
|
|
|
|
|
+// }
|
|
|
|
|
+// String detail = "";
|
|
|
|
|
+// if (StringUtils.hasText(payableInfoEntity.getNotPayDetail())) {
|
|
|
|
|
+// detail = payableInfoEntity.getNotPayDetail();
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// String notPayDetail = "";
|
|
|
|
|
+// if (StringUtils.hasText(realPayDetail)) {
|
|
|
|
|
+// String[] realPayDetailArray = realPayDetail.split("/");
|
|
|
|
|
+//
|
|
|
|
|
+// String[] payDetailArray = detail.split("/");
|
|
|
|
|
+// ArrayList<String> listA = new ArrayList<>(Arrays.asList(realPayDetailArray));
|
|
|
|
|
+// ArrayList<String> listB = new ArrayList<>(Arrays.asList(payDetailArray));
|
|
|
|
|
+// listB.removeAll(listA);
|
|
|
|
|
+// if (listB.size() == 1) {
|
|
|
|
|
+// payInfoDetailVO.setNotPayDetail(listB.get(0));
|
|
|
|
|
+// } else if (listB.size() > 1) {
|
|
|
|
|
+// for (int i = 0; i < listB.size(); i++) {
|
|
|
|
|
+// notPayDetail += listB.get(i) + "/";
|
|
|
|
|
+// }
|
|
|
|
|
+// payInfoDetailVO.setNotPayDetail(notPayDetail.substring(0, notPayDetail.length() - 1));
|
|
|
|
|
+// } else {
|
|
|
|
|
+// payInfoDetailVO.setNotPayDetail(notPayDetail);
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// } else {
|
|
|
|
|
+// detail = detail.endsWith("/") == true ? detail.substring(0, detail.length() - 1) : detail;
|
|
|
|
|
+// payInfoDetailVO.setNotPayDetail(detail);
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// String[] split = payInfoDetailVO.getNotPayDetail().split("/");
|
|
|
|
|
+//
|
|
|
|
|
+// BigDecimal realMount = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
|
|
|
|
|
+// for (int i = 0; i < split.length; i++) {
|
|
|
|
|
+// String detail1 = split[i];
|
|
|
|
|
+// String[] detailAMount = detail1.split(":");
|
|
|
|
|
+// realMount = realMount.add(new BigDecimal(detailAMount[1]).setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
+// }
|
|
|
|
|
+// payInfoDetailVO.setRealPayAmount(realMount);
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// return CommonResult.ok().setResult(payInfoDetailVO);
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 查询学生的基本信息
|
|
|
|
|
+ *
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ @GetMapping("/queryStudentInfo")
|
|
|
|
|
+ public CommonResult<PayableInfoStudentResultVO> queryStudentInfo(String cardNumber) {
|
|
|
|
|
+ PayableInfoStudentResultVO payableInfoStudentResultVO;
|
|
|
|
|
+
|
|
|
|
|
+ try {
|
|
|
|
|
+ String url = "https://chtech.ncjti.edu.cn/lamp/recordApi/consume/queryByIdCard";
|
|
|
|
|
+ MultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
|
|
|
|
|
+ map.add("idCard", cardNumber);
|
|
|
|
|
+
|
|
|
|
|
+ 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());
|
|
|
|
|
+ JSONObject jsonResult = JSONObject.parseObject(jsonObj.get("result").toString());
|
|
|
|
|
+ payableInfoStudentResultVO = JSONObject.toJavaObject(jsonResult, PayableInfoStudentResultVO.class);
|
|
|
|
|
+
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ return CommonResult.fail("0000", "信息获取失败!");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return CommonResult.ok().setResult(payableInfoStudentResultVO);
|
|
|
|
|
+ }
|
|
|
|
|
+}
|