From 976fe8de4d45ccdd18cf988a36b9d71697d3bcc3 Mon Sep 17 00:00:00 2001
From: heheng <heheng@123456>
Date: Fri, 21 Feb 2025 16:54:55 +0800
Subject: [PATCH] 修改
---
exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayServiceImpl.java | 154 +++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 143 insertions(+), 11 deletions(-)
diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayServiceImpl.java
index c0f46c7..80b01df 100644
--- a/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayServiceImpl.java
+++ b/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayServiceImpl.java
@@ -1,13 +1,24 @@
package com.gkhy.exam.pay.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.exam.pay.dto.rep.NonCoalPayDetailH5RepDto;
+import com.gkhy.exam.pay.dto.rep.NonCoalPayDetailRepDto;
+import com.gkhy.exam.pay.dto.rep.NonCoalPayPageRepDto;
+import com.gkhy.exam.pay.dto.rep.NonCoalPayStudentDetailRepDto;
import com.gkhy.exam.pay.dto.req.NonCoalPayCategoryReqDto;
import com.gkhy.exam.pay.dto.req.NonCoalPayReqDto;
+import com.gkhy.exam.pay.dto.req.NonCoalPayTypeEditReqDto;
import com.gkhy.exam.pay.entity.NonCoalPay;
import com.gkhy.exam.pay.entity.NonCoalPayCategory;
+import com.gkhy.exam.pay.entity.NonCoalPayStudent;
import com.gkhy.exam.pay.mapper.NonCoalPayMapper;
+import com.gkhy.exam.pay.mapper.NonCoalPayStudentMapper;
import com.gkhy.exam.pay.service.NonCoalPayCategoryService;
import com.gkhy.exam.pay.service.NonCoalPayService;
+import com.gkhy.exam.pay.service.NonCoalPayStudentService;
+import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
@@ -15,6 +26,7 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
+import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@@ -31,6 +43,10 @@
private NonCoalPayMapper nonCoalPayMapper;
@Resource
private NonCoalPayCategoryService nonCoalPayCategoryService;
+ @Resource
+ private NonCoalPayStudentService nonCoalPayStudentService;
+ @Resource
+ private NonCoalPayStudentMapper nonCoalPayStudentMapper;
/**
* 查询【请填写功能名称】
@@ -39,8 +55,13 @@
* @return 【请填写功能名称】
*/
@Override
- public NonCoalPay selectNonCoalPayById(Long id) {
- return nonCoalPayMapper.selectNonCoalPayById(id);
+ public NonCoalPayDetailRepDto selectNonCoalPayById(Long id) {
+ return nonCoalPayMapper.getNonCoalPayById(id);
+ }
+
+ @Override
+ public List<NonCoalPayDetailH5RepDto> selectNonCoalPayByStu(String phone, String idCard) {
+ return nonCoalPayMapper.selectNonCoalPayByParam(phone, idCard);
}
@@ -51,8 +72,48 @@
* @return 【请填写功能名称】
*/
@Override
- public List<NonCoalPay> selectNonCoalPayList(NonCoalPay nonCoalPay) {
- return nonCoalPayMapper.selectNonCoalPayList(nonCoalPay);
+ public List<NonCoalPayPageRepDto> selectNonCoalPayList(NonCoalPay nonCoalPay) {
+ if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())) {
+ if (!Constants.DIS_XINJIANG_CODE.equals(SecurityUtils.getDeptDistrictCode())) {
+ nonCoalPay.setDistrictCode(SecurityUtils.getDeptDistrictCode());
+ }
+ }
+ return nonCoalPayMapper.getNonCoalPayList(nonCoalPay);
+ }
+
+ @Override
+ public NonCoalPayStudentDetailRepDto getNonCoalPayStudentByPayId(Long id) {
+ NonCoalPayDetailRepDto nonCoalPayById = nonCoalPayMapper.getNonCoalPayById(id);
+ NonCoalPayStudentDetailRepDto data = new NonCoalPayStudentDetailRepDto();
+ if (nonCoalPayById != null) {
+ BeanUtils.copyProperties(nonCoalPayById, data);
+ NonCoalPayStudent student = new NonCoalPayStudent();
+ student.setNonCoalPayId(nonCoalPayById.getId());
+ List<NonCoalPayStudent> nonCoalPayStudents = nonCoalPayStudentService.selectNonCoalPayStudentList(student);
+ data.setNonCoalPayStudentList(nonCoalPayStudents);
+ if (nonCoalPayStudents != null && !nonCoalPayStudents.isEmpty()) {
+ int payCount = (int) nonCoalPayStudents.stream()
+ .filter(stu -> stu.getPayStatus() == 1)
+ .count();
+ int size = nonCoalPayStudents.size();
+ data.setPayCount(payCount);
+ data.setUnPayCount(size - payCount);
+ data.setTotalCount(size);
+ data.setPayCountFee(new BigDecimal(payCount).multiply(data.getAmount()));
+ data.setUnPayCountFee(new BigDecimal(size - payCount).multiply(data.getAmount()));
+ data.setTotalCountFee(new BigDecimal(size).multiply(data.getAmount()));
+ } else {
+ data.setPayCount(0);
+ data.setUnPayCount(0);
+ data.setTotalCount(0);
+ data.setPayCountFee(new BigDecimal(0));
+ data.setUnPayCountFee(new BigDecimal(0));
+ data.setTotalCountFee(new BigDecimal(0));
+ }
+
+ return data;
+ }
+ return null;
}
/**
@@ -64,27 +125,55 @@
@Override
@Transactional
public int insertNonCoalPay(NonCoalPayReqDto nonCoalPay) {
- //todo 校验
+ if (!nonCoalPay.getDistrictCode().startsWith(Constants.DIS_XINJIANG_CODE)) {
+ throw new RuntimeException("地州信息错误");
+ }
+ if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())) {
+ if (Constants.DIS_XINJIANG_CODE.equals(nonCoalPay.getDistrictCode())) {
+ throw new RuntimeException("仅可选择下级地州");
+ }
+
+ }
+ checkData(nonCoalPay);
NonCoalPay nonCoalPay1 = new NonCoalPay();
BeanUtils.copyProperties(nonCoalPay, nonCoalPay1);
nonCoalPay1.setCreateBy(SecurityUtils.getUsername());
int i = nonCoalPayMapper.insertNonCoalPay(nonCoalPay1);
if (i > 0) {
- saveNonCoalPayCategory(nonCoalPay.getNonCoalPayCategoryList());
+ saveNonCoalPayCategory(nonCoalPay.getNonCoalPayCategoryList(), nonCoalPay1.getId());
}
return i;
}
- private void saveNonCoalPayCategory(List<NonCoalPayCategoryReqDto> nonCoalPayCategoryList) {
+ private void saveNonCoalPayCategory(List<NonCoalPayCategoryReqDto> nonCoalPayCategoryList, Long id) {
List<NonCoalPayCategory> nonCoalPayCategories = new ArrayList<>();
for (NonCoalPayCategoryReqDto nonCoalPayCategory : nonCoalPayCategoryList) {
NonCoalPayCategory nonCoalPayCategory1 = new NonCoalPayCategory();
BeanUtils.copyProperties(nonCoalPayCategory, nonCoalPayCategory1);
+ nonCoalPayCategory1.setNonCoalPayId(id);
nonCoalPayCategory1.setCreateBy(SecurityUtils.getUsername());
nonCoalPayCategories.add(nonCoalPayCategory1);
}
- nonCoalPayCategoryService.saveBacth(nonCoalPayCategories);
+ boolean b = nonCoalPayCategoryService.saveBatchData(nonCoalPayCategories);
+ if (!b) {
+ throw new ServiceException("保存失败");
+ }
+ }
+
+
+ private void checkData(NonCoalPayReqDto nonCoalPay) {
+ LambdaQueryWrapper<NonCoalPay> lambdaQueryWrapper = Wrappers.<NonCoalPay>lambdaQuery()
+ .eq(NonCoalPay::getDistrictCode, nonCoalPay.getDistrictCode())
+ .eq(NonCoalPay::getBatchName, nonCoalPay.getBatchName())
+ .eq(NonCoalPay::getDelFlag, 0);
+ if (nonCoalPay.getId() != null) {
+ lambdaQueryWrapper.ne(NonCoalPay::getId, nonCoalPay.getId());
+ }
+ Long l = baseMapper.selectCount(lambdaQueryWrapper);
+ if (l > 0) {
+ throw new ServiceException("该批次已存在");
+ }
}
/**
@@ -96,9 +185,12 @@
@Override
@Transactional
public int updateNonCoalPay(NonCoalPayReqDto nonCoalPay) {
- //todo 校验
+
+ checkData(nonCoalPay);
+ checkHavePay(nonCoalPay.getId());
NonCoalPay nonCoalPay1 = new NonCoalPay();
BeanUtils.copyProperties(nonCoalPay, nonCoalPay1);
+ nonCoalPay1.setDistrictCode(null);
nonCoalPay1.setUpdateBy(SecurityUtils.getUsername());
int i = nonCoalPayMapper.updateNonCoalPay(nonCoalPay1);
if (i > 0) {
@@ -106,7 +198,37 @@
if (i1 < 1) {
throw new ServiceException("更新失败");
}
- saveNonCoalPayCategory(nonCoalPay.getNonCoalPayCategoryList());
+ saveNonCoalPayCategory(nonCoalPay.getNonCoalPayCategoryList(), nonCoalPay1.getId());
+ }
+ return i;
+ }
+
+ @Override
+ public int updateNonCoalPayType(NonCoalPayTypeEditReqDto nonCoalPay) {
+ NonCoalPay nonCoalPay1 = new NonCoalPay();
+ BeanUtils.copyProperties(nonCoalPay, nonCoalPay1);
+ nonCoalPay1.setUpdateBy(SecurityUtils.getUsername());
+ return nonCoalPayMapper.updateNonCoalPay(nonCoalPay1);
+ }
+
+ @Override
+ @Transactional
+ public int updateNonCoalPayTypeStatus(int payPersonType, Long id) {
+ NonCoalPay byId = nonCoalPayMapper.selectNonCoalPayById(id);
+ if (byId == null) {
+ throw new ServiceException("该数据不存在");
+ }
+ if (byId.getPayPersonType() == 2) {
+ throw new ServiceException("已是团体缴费不可变更缴费方式!");
+ }
+ NonCoalPay nonCoalPay1 = new NonCoalPay();
+ nonCoalPay1.setPayPersonType(payPersonType);
+ nonCoalPay1.setId(id);
+ nonCoalPay1.setUpdateBy(SecurityUtils.getUsername());
+ int i = nonCoalPayMapper.updateNonCoalPay(nonCoalPay1);
+ if (payPersonType == 2) {
+ //更新未缴费的为团体
+ nonCoalPayStudentMapper.updateNonCoalPayStudentType(id, SecurityUtils.getUsername());
}
return i;
}
@@ -130,6 +252,16 @@
*/
@Override
public int deleteNonCoalPayById(Long id) {
- return nonCoalPayMapper.deleteNonCoalPayById(id);
+ NonCoalPay nonCoalPay = nonCoalPayMapper.selectNonCoalPayById(id);
+ if (nonCoalPay == null) {
+ throw new ServiceException("该数据不存在");
+ }
+ //验证是否有学员已缴费
+ checkHavePay(id);
+ return nonCoalPayMapper.deleteNonCoalPayById(id, SecurityUtils.getUsername());
+ }
+
+ private void checkHavePay(Long id) {
+ nonCoalPayStudentService.checkHavePayData(id);
}
}
\ No newline at end of file
--
Gitblit v1.9.2