| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 |
- package com.chuanghai.smartschool.tuitionpayment.controller;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- 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.service.PayOrderService;
- import com.chuanghai.smartschool.tuitionpayment.service.PayableInfoWaterDeleteService;
- import com.chuanghai.smartschool.tuitionpayment.service.PayableInfoWaterService;
- import com.chuanghai.smartschool.tuitionpayment.service.SchoolUserService;
- import com.chuanghai.smartschool.tuitionpayment.utils.RSAUtils;
- import com.chuanghai.smartschool.tuitionpayment.vo.DormVO;
- import com.chuanghai.smartschool.tuitionpayment.vo.YearVo;
- import org.apache.poi.ss.formula.functions.T;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.web.multipart.MultipartFile;
- import java.io.IOException;
- import java.time.LocalDateTime;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * @Author: bingo
- * @Date: 2022/6/28 星期二 15:30
- * @Description: com.chuanghai.smartschool.tuitionpayment.controller
- * @version: 1.0
- */
- @RestController
- @RequestMapping("tuitionpayment/payableinfowater")
- public class PayableInfoWaterController {
- @Autowired
- private PayableInfoWaterService payableInfoWaterService;
- @Autowired
- private PayOrderService payOrderService;
- @Autowired
- private PayableInfoWaterDeleteService payableInfoWaterDeleteService;
- @Autowired
- private SchoolUserService schoolUserService;
- @Value("${my-security.private-key}")
- private String privateKey;
- /**
- * excel 导入学生学费相关原始数据
- *
- * @param adminToken 管理员token
- * @param file 文件,文件格式注意需要符合要求
- * @return
- * @apiNote 导入学生学费相关原始数据
- * <strong>注意:</strong>
- * 1.需要提示用户上传的excel文件需要符合规定的格式;
- * 2.上传新文件将会导致所有的旧数据被删除,学费缴纳开始后不建议再上传新数据。
- */
- @PostMapping("importWaterByExcel")
- @AdminLoginCheck
- public CommonResult<String> importWaterByExcel(@RequestHeader("admin_token") String adminToken,
- @RequestParam MultipartFile file) throws IOException {
- if (file.isEmpty()) {
- throw new RRException(BizCodeEnume.PARAMETER_ERROR, "文件不能为空");
- }
- payableInfoWaterService.importByExcel(file);
- return CommonResult.ok();
- }
- /**
- * 更新缴费订单的时间参数
- */
- @PutMapping("updatePayInfoWater")
- public CommonResult<T> updatePayInfoWater() {
- QueryWrapper<PayableInfoWaterEntity> wrapper = new QueryWrapper<>();
- wrapper.isNull("pay_item_type");
- //更新时间等参数
- List<PayableInfoWaterEntity> InfoEntityList = payableInfoWaterService.list(wrapper);
- List<PayableInfoWaterEntity> objectList = new ArrayList<>();
- InfoEntityList.forEach(payableInfoWaterEntity -> {
- payableInfoWaterEntity.setPayCreateTime(LocalDateTime.now());
- payableInfoWaterEntity.setPayItemType("1");
- payableInfoWaterEntity.setPayNoticeType("1");
- objectList.add(payableInfoWaterEntity);
- });
- payableInfoWaterService.updateBatchById(objectList);
- return CommonResult.ok();
- }
- /**
- * 根据宿舍号查询宿舍的缴费订单
- *
- * @param dormVO
- * @return
- * @apiNote 注意:密码使用提供的公钥进行RSA加密后传输
- * 公钥:MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMOcPB06u5yKyQsPjfVWiWgbEIrd14kiXNNihciaVKb6HnkQvq7zpQuZ80WEX94spnUMI3iOAl/GmIvHrpGwcbB4hJbznm+PajiwnUSPuCCXA68YJF640cJKb/8KeM7WVz69OFkIEPHhVxOy4FFF5QWe/kt6zOZ19HmE+ak+5x/QIDAQAB
- */
- @PostMapping("queryWaterInfo")
- public CommonResult queryWaterInfo(@RequestBody DormVO dormVO) {
- String dorm;
- try {
- dorm = RSAUtils.decrypt(dormVO.getDorm(), RSAUtils.getPrivateKey(privateKey));
- } catch (Exception e) {
- e.printStackTrace();
- throw new RRException(BizCodeEnume.PARAMETER_ERROR, "密码解密失败");
- }
- if (dorm.contains("层")) {
- int indexD = dorm.indexOf("栋");
- dorm = dorm.substring(0, indexD + 1) + dorm.split("层")[1];
- }
- List<PayableInfoWaterEntity> payableInfoWaterList = payableInfoWaterService.queryWaterInfo(dorm, dormVO.getYear(), dormVO.getPayStatu());
- payableInfoWaterList.forEach(payableInfoWaterEntity -> {
- if (payableInfoWaterEntity.getPayItemType().equals("2")) {
- String payerName = payOrderService.queryPayerName(payableInfoWaterEntity.getId());
- payableInfoWaterEntity.setPayerName(payerName);
- }
- payableInfoWaterService.updateById(payableInfoWaterEntity);
- });
- return CommonResult.ok().setResult(payableInfoWaterList);
- }
- /**
- * 根据card_number获取缴费信息
- *
- * @param cardNumber 当前登录用户cardNumber
- * @return
- */
- public List<PayableInfoWaterEntity> getPayableInfoByCardNumber(@RequestHeader("card_number") String cardNumber,
- String studentName) {
- List<PayableInfoWaterEntity> payableInfoWaterByCardNumber = payableInfoWaterService.getPayableInfoWaterByCardNumber(cardNumber, studentName);
- return payableInfoWaterByCardNumber;
- }
- /**
- * 查询所有的水费订单年份
- *
- * @return
- */
- @GetMapping("queryAllYear")
- public CommonResult queryAllYear(String dorm, String payStatu) {
- if (dorm.contains("层")) {
- int indexD = dorm.indexOf("栋");
- dorm = dorm.substring(0, indexD + 1) + dorm.split("层")[1];
- }
- List<YearVo> allYearlist = payableInfoWaterService.queryAllYear(dorm, payStatu);
- return CommonResult.ok().setResult(allYearlist);
- }
- /**
- * 修改学生宿舍信息
- *
- * @param id
- * @param dorm
- */
- @GetMapping("updateDormById")
- public CommonResult<T> updateDormById(@RequestParam("id") String id, @RequestParam("dorm") String dorm,
- @RequestParam("payMonth") String payMonth) {
- PayableInfoWaterEntity waterEntity = new PayableInfoWaterEntity();
- Long ID = Long.parseLong(id);
- waterEntity.setId(ID);
- waterEntity.setDorm(dorm);
- if (!dorm.contains("栋")) {
- throw new RRException(BizCodeEnume.VAILD_EXCEPTION, "宿舍信息填写异常");
- }
- QueryWrapper<PayableInfoWaterEntity> wrapper = new QueryWrapper<>();
- wrapper.eq("dorm", dorm)
- .eq("pay_month", payMonth)
- .orderByDesc("pay_item_type");
- 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 {
- waterEntity.setPayAmountDetail(listWater.get(0).getPayAmountDetail());
- waterEntity.setOrderNotice(listWater.get(0).getOrderNotice());
- waterEntity.setRealPayAmount(listWater.get(0).getRealPayAmount());
- waterEntity.setPayMonth(listWater.get(0).getPayMonth());
- payableInfoWaterService.updateById(waterEntity);
- }
- } else {
- throw new RRException(BizCodeEnume.PARAMETER_ERROR, "该宿舍不存在" + payMonth + "缴费信息");
- }
- return CommonResult.ok().setResult(Boolean.TRUE);
- }
- @GetMapping("queryWaterType")
- public CommonResult queryWaterType() {
- List<String> waterList = payableInfoWaterService.queryWaterType();
- return CommonResult.ok().setResult(waterList);
- }
- /**
- * 更新缴费名单状态 正在支付时无法重复提交
- *
- * @param payInfoId 缴费名单的id
- * @param payStatu 0 代表正在支付的状态
- * @return
- */
- @GetMapping("updateWaterStatu")
- public CommonResult updateWaterStatu(Long payInfoId, String payStatu, String cardNumber,String orderNo) {
- PayableInfoWaterEntity waterInfo = new PayableInfoWaterEntity();
- waterInfo.setId(payInfoId);
- waterInfo.setPayItemType(payStatu);
- waterInfo.setPayerCardNumber(cardNumber);
- waterInfo.setOrderNo(orderNo);
- payableInfoWaterService.updateById(waterInfo);
- // System.out.println( payableInfoWaterService.getById(payInfoId));
- return CommonResult.ok();
- }
- @GetMapping("testss")
- public CommonResult testette() {
- System.out.println("sdkjfhisafjjkkdbbfksdf-------------sdkfnkjsndkfnsdf ");
- System.out.println("sdkjfhisafjjkkdbbfksdf-------------sdkfnkjsndkfnsdf ");
- System.out.println("sdkjfhisafjjkkdbbfksdf-------------sdkfnkjsndkfnsdf ");
- System.out.println("sdkjfhisafjjkkdbbfksdf-------------sdkfnkjsndkfnsdf ");
- return CommonResult.ok();
- }
- /**
- * 取消订单正在支付的锁定状态
- * @param payInfoId
- * @return
- */
- @GetMapping("unlock")
- public CommonResult unlock(Long payInfoId){
- payableInfoWaterService.unlock(payInfoId);
- return CommonResult.ok();
- }
- }
|