From 9abc6588d464269024d3e680b98cfd71e2acc84e Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: Wed, 29 Apr 2026 13:14:15 +0800
Subject: [PATCH] 新增修改部分限制
---
multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysClauseManagementServiceImpl.java | 74 +++++++++++++++++++++++++++++++-----
1 files changed, 63 insertions(+), 11 deletions(-)
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysClauseManagementServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysClauseManagementServiceImpl.java
index 08d1d5e..e885554 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysClauseManagementServiceImpl.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysClauseManagementServiceImpl.java
@@ -1,18 +1,22 @@
package com.gkhy.exam.system.service.impl;
+import cn.hutool.core.util.ObjectUtil;
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.common.exception.ApiException;
+import com.gkhy.exam.common.utils.NaturalOrderComparator;
import com.gkhy.exam.common.utils.SecurityUtils;
import com.gkhy.exam.system.domain.SysClauseManagement;
import com.gkhy.exam.system.mapper.SysClauseManagementMapper;
import com.gkhy.exam.system.service.SysClauseManagementService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
-import java.util.Collections;
+import java.util.ArrayList;
+import java.util.Comparator;
import java.util.List;
@Service
@@ -21,19 +25,26 @@
private SysClauseManagementMapper sysClauseManagementMapper;
@Override
- public List<SysClauseManagement> getSysClauseManagements() {
+ public List<SysClauseManagement> getSysClauseManagements(Long companyId) {
LambdaQueryWrapper<SysClauseManagement> lambdaQueryWrapper = Wrappers.<SysClauseManagement>lambdaQuery()
- .eq(SysClauseManagement::getDelFlag, "0").orderByAsc(SysClauseManagement::getClauseNum);
- return baseMapper.selectList(lambdaQueryWrapper);
+ .eq(SysClauseManagement::getDelFlag, "0").eq(SysClauseManagement::getCompanyId, companyId)
+ .orderByAsc(SysClauseManagement::getClauseNum);
+
+ List<SysClauseManagement> sysClauseManagements = baseMapper.selectList(lambdaQueryWrapper);
+ if (ObjectUtil.isNotEmpty(sysClauseManagements)){
+ sysClauseManagements.sort(Comparator.comparing(SysClauseManagement::getClauseNum, new NaturalOrderComparator()));
+ }
+
+ return sysClauseManagements;
}
@Override
public int saveSysClauseManagement(SysClauseManagement sysClauseManagement) {
- if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
- throw new ApiException("没有权限访问!");
- }
+ checkPer();
LambdaQueryWrapper<SysClauseManagement> lambdaQueryWrapper = Wrappers.<SysClauseManagement>lambdaQuery()
- .eq(SysClauseManagement::getDelFlag, "0").eq(SysClauseManagement::getClauseNum, sysClauseManagement.getClauseNum());
+ .eq(SysClauseManagement::getDelFlag, "0")
+ .eq(SysClauseManagement::getCompanyId, sysClauseManagement.getCompanyId())
+ .eq(SysClauseManagement::getClauseNum, sysClauseManagement.getClauseNum());
if (sysClauseManagement.getId() == null){
if (baseMapper.selectCount(lambdaQueryWrapper) > 0){
throw new ApiException("条款编号已存在!");
@@ -54,15 +65,56 @@
}
+ private void checkPer(){
+ boolean admin = SecurityUtils.adminUser();
+ if (!admin) {
+ Integer userType = SecurityUtils.getLoginUser().getUser().getUserType();
+ if (userType != 6){
+ throw new ApiException("无权操作!");
+ }
+ }
+ }
+
@Override
public int delSysClauseManagement(Long id) {
- if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
- throw new ApiException("没有权限访问!");
- }
+ checkPer();
//todo 校验已使用的?
SysClauseManagement sysClauseManagement = new SysClauseManagement();
sysClauseManagement.setDelFlag("1");
sysClauseManagementMapper.update(sysClauseManagement, Wrappers.<SysClauseManagement>lambdaQuery().eq(SysClauseManagement::getId, id));
return 1;
}
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void copySysClauseManagements(Long sourceCompanyId, Long targetCompanyId) {
+ boolean admin = SecurityUtils.adminUser();
+ if (!admin) {
+ throw new ApiException("无权操作!");
+ }
+ List<SysClauseManagement> targetClauseManagements = baseMapper.selectList(Wrappers.<SysClauseManagement>lambdaQuery()
+ .eq(SysClauseManagement::getDelFlag, "0")
+ .eq(SysClauseManagement::getCompanyId, targetCompanyId));
+ if (ObjectUtil.isNotEmpty(targetClauseManagements)){
+ throw new ApiException("目标公司已存在条款!");
+ }
+
+ List<SysClauseManagement> sysClauseManagements = baseMapper.selectList(Wrappers.<SysClauseManagement>lambdaQuery()
+ .eq(SysClauseManagement::getDelFlag, "0")
+ .eq(SysClauseManagement::getCompanyId, sourceCompanyId));
+
+// List<SysClauseManagement> add = new ArrayList<>();
+ sysClauseManagements.forEach(sysClauseManagement -> {
+ SysClauseManagement newClauseManagement = new SysClauseManagement();
+ newClauseManagement.setName(sysClauseManagement.getName());
+ newClauseManagement.setClauseNum(sysClauseManagement.getClauseNum());
+ newClauseManagement.setPoints(sysClauseManagement.getPoints());
+ newClauseManagement.setCompanyId(targetCompanyId);
+ newClauseManagement.setCreateBy(SecurityUtils.getUsername());
+ newClauseManagement.setCreateTime(LocalDateTime.now());
+// add.add(newClauseManagement);
+ sysClauseManagementMapper.insert(newClauseManagement);
+ });
+
+ }
}
--
Gitblit v1.9.2