wuzhen 20250723提交
This commit is contained in:
1 parent
609371ed82
commit
cc03e81f49
117 files changed
+76654
-1889
No files matched your search
@@ -0,0 +1,238 @@
|
||||
package org.dromara.zsjy.service.impl;
|
||||
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.zsjy.domain.ZsjyEnrollmentProcess;
|
||||
import org.dromara.zsjy.domain.bo.ZsjyEnrollmentProcessBo;
|
||||
import org.dromara.zsjy.domain.vo.ZsjyEnrollmentProcessVo;
|
||||
import org.dromara.zsjy.mapper.ZsjyEnrollmentProcessMapper;
|
||||
import org.dromara.zsjy.service.IZsjyEnrollmentProcessService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 招生录取流程状态Service实现类
|
||||
* 修复版本 - 添加了基于用户角色的数据过滤逻辑
|
||||
*
|
||||
* @author Cursor AI
|
||||
* @date 2025-07-21
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class ZsjyEnrollmentProcessServiceImpl implements IZsjyEnrollmentProcessService {
|
||||
|
||||
private final ZsjyEnrollmentProcessMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询招生录取流程状态
|
||||
*
|
||||
* @param id 招生录取流程状态主键
|
||||
* @return 招生录取流程状态
|
||||
*/
|
||||
@Override
|
||||
public ZsjyEnrollmentProcessVo queryById(Long id) {
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建查询条件
|
||||
*/
|
||||
private LambdaQueryWrapper<ZsjyEnrollmentProcess> buildQueryWrapper(ZsjyEnrollmentProcessBo bo) {
|
||||
LambdaQueryWrapper<ZsjyEnrollmentProcess> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.eq(bo.getEnrollmentId() != null, ZsjyEnrollmentProcess::getEnrollmentId, bo.getEnrollmentId());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getStudentName()), ZsjyEnrollmentProcess::getStudentName, bo.getStudentName());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getIdCard()), ZsjyEnrollmentProcess::getIdCard, bo.getIdCard());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getCurrentStatus()), ZsjyEnrollmentProcess::getCurrentStatus, bo.getCurrentStatus());
|
||||
lqw.eq(bo.getCurrentHandler() != null, ZsjyEnrollmentProcess::getCurrentHandler, bo.getCurrentHandler());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getInfoAuditStatus()), ZsjyEnrollmentProcess::getInfoAuditStatus, bo.getInfoAuditStatus());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAdmissionStatus()), ZsjyEnrollmentProcess::getAdmissionStatus, bo.getAdmissionStatus());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFinalAuditStatus()), ZsjyEnrollmentProcess::getFinalAuditStatus, bo.getFinalAuditStatus());
|
||||
lqw.eq(bo.getIsCompleted() != null, ZsjyEnrollmentProcess::getIsCompleted, bo.getIsCompleted());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询招生录取流程状态列表
|
||||
* 修复:添加基于用户角色的数据过滤逻辑
|
||||
*
|
||||
* @param bo 招生录取流程状态查询条件
|
||||
* @param pageQuery 分页查询参数
|
||||
* @return 招生录取流程状态分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<ZsjyEnrollmentProcessVo> queryPageList(ZsjyEnrollmentProcessBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<ZsjyEnrollmentProcess> lqw = buildQueryWrapper(bo);
|
||||
|
||||
// 获取当前用户ID和角色
|
||||
Long userId = LoginHelper.getUserId();
|
||||
List<String> roles = LoginHelper.getRolePermission();
|
||||
|
||||
// 根据角色过滤数据
|
||||
if (roles.contains("zsjy_info_auditor")) {
|
||||
// 信息审核员只能看到状态为0和1的数据
|
||||
lqw.in(ZsjyEnrollmentProcess::getCurrentStatus, "0", "1");
|
||||
} else if (roles.contains("zsjy_admission_processor")) {
|
||||
// 录取处理员只能看到状态为2的数据
|
||||
lqw.eq(ZsjyEnrollmentProcess::getCurrentStatus, "2");
|
||||
} else if (!roles.contains("admin") && !roles.contains("superadmin")) {
|
||||
// 非管理员且非特定角色,只能看到自己处理的数据
|
||||
lqw.eq(ZsjyEnrollmentProcess::getCurrentHandler, userId);
|
||||
}
|
||||
|
||||
Page<ZsjyEnrollmentProcessVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的招生录取流程状态列表
|
||||
*
|
||||
* @param bo 招生录取流程状态查询条件
|
||||
* @return 招生录取流程状态列表
|
||||
*/
|
||||
@Override
|
||||
public List<ZsjyEnrollmentProcessVo> queryList(ZsjyEnrollmentProcessBo bo) {
|
||||
LambdaQueryWrapper<ZsjyEnrollmentProcess> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询当前用户的待处理流程列表
|
||||
* 修复:添加基于用户角色的数据过滤逻辑
|
||||
*
|
||||
* @param bo 招生录取流程状态查询条件
|
||||
* @param pageQuery 分页查询参数
|
||||
* @return 待处理的招生录取流程状态分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<ZsjyEnrollmentProcessVo> queryPendingList(ZsjyEnrollmentProcessBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<ZsjyEnrollmentProcess> lqw = buildQueryWrapper(bo);
|
||||
|
||||
// 获取当前用户ID和角色
|
||||
Long userId = LoginHelper.getUserId();
|
||||
List<String> roles = LoginHelper.getRolePermission();
|
||||
|
||||
// 根据角色过滤待处理数据
|
||||
if (roles.contains("zsjy_info_auditor")) {
|
||||
// 信息审核员只能看到状态为0和1的待处理数据
|
||||
lqw.and(wrapper -> wrapper
|
||||
.eq(ZsjyEnrollmentProcess::getCurrentHandler, userId)
|
||||
.or(subWrapper -> subWrapper
|
||||
.isNull(ZsjyEnrollmentProcess::getCurrentHandler)
|
||||
.in(ZsjyEnrollmentProcess::getCurrentStatus, "0", "1")
|
||||
)
|
||||
);
|
||||
} else if (roles.contains("zsjy_admission_processor")) {
|
||||
// 录取处理员只能看到状态为2的待处理数据
|
||||
lqw.and(wrapper -> wrapper
|
||||
.eq(ZsjyEnrollmentProcess::getCurrentHandler, userId)
|
||||
.or(subWrapper -> subWrapper
|
||||
.isNull(ZsjyEnrollmentProcess::getCurrentHandler)
|
||||
.eq(ZsjyEnrollmentProcess::getCurrentStatus, "2")
|
||||
)
|
||||
);
|
||||
} else if (roles.contains("admin") || roles.contains("superadmin")) {
|
||||
// 管理员可以看到所有待处理数据
|
||||
// 不添加额外过滤条件
|
||||
} else {
|
||||
// 其他用户只能看到分配给自己的数据
|
||||
lqw.eq(ZsjyEnrollmentProcess::getCurrentHandler, userId);
|
||||
}
|
||||
|
||||
// 排除已完成和已驳回的流程
|
||||
lqw.notIn(ZsjyEnrollmentProcess::getCurrentStatus, "4", "9");
|
||||
|
||||
Page<ZsjyEnrollmentProcessVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据报名信息ID查询流程状态
|
||||
*
|
||||
* @param enrollmentId 报名信息ID
|
||||
* @return 招生录取流程状态
|
||||
*/
|
||||
@Override
|
||||
public ZsjyEnrollmentProcessVo queryByEnrollmentId(Long enrollmentId) {
|
||||
LambdaQueryWrapper<ZsjyEnrollmentProcess> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.eq(ZsjyEnrollmentProcess::getEnrollmentId, enrollmentId);
|
||||
return baseMapper.selectVoOne(lqw);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增招生录取流程状态
|
||||
*
|
||||
* @param bo 招生录取流程状态
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(ZsjyEnrollmentProcessBo bo) {
|
||||
ZsjyEnrollmentProcess add = MapstructUtils.convert(bo, ZsjyEnrollmentProcess.class);
|
||||
// 设置初始状态为待审核
|
||||
if (StringUtils.isEmpty(add.getCurrentStatus())) {
|
||||
add.setCurrentStatus("0");
|
||||
}
|
||||
// 设置信息审核状态为待审核
|
||||
if (StringUtils.isEmpty(add.getInfoAuditStatus())) {
|
||||
add.setInfoAuditStatus("0");
|
||||
}
|
||||
// 设置录取处理状态为待处理
|
||||
if (StringUtils.isEmpty(add.getAdmissionStatus())) {
|
||||
add.setAdmissionStatus("0");
|
||||
}
|
||||
// 设置最终审核状态为待确认
|
||||
if (StringUtils.isEmpty(add.getFinalAuditStatus())) {
|
||||
add.setFinalAuditStatus("0");
|
||||
}
|
||||
// 设置缴费状态为未缴费
|
||||
if (StringUtils.isEmpty(add.getPaymentStatus())) {
|
||||
add.setPaymentStatus("0");
|
||||
}
|
||||
// 设置完成状态为未完成
|
||||
if (add.getIsCompleted() == null) {
|
||||
add.setIsCompleted(0);
|
||||
}
|
||||
// 分配处理人(根据角色分配)
|
||||
if (add.getCurrentHandler() == null) {
|
||||
// 这里应该根据实际业务逻辑分配处理人
|
||||
// 例如:从信息审核员角色中选择一个用户作为处理人
|
||||
}
|
||||
|
||||
return baseMapper.insert(add) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改招生录取流程状态
|
||||
*
|
||||
* @param bo 招生录取流程状态
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(ZsjyEnrollmentProcessBo bo) {
|
||||
ZsjyEnrollmentProcess update = MapstructUtils.convert(bo, ZsjyEnrollmentProcess.class);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除招生录取流程状态信息
|
||||
*
|
||||
* @param ids 需要删除的招生录取流程状态主键集合
|
||||
* @param isValid 是否校验,true-删除前校验,false-不校验
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if (isValid) {
|
||||
// 进行校验,例如检查是否有已完成的流程不允许删除等
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user