| | |
| | | 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.ArrayList; |
| | | import java.util.Comparator; |
| | | import java.util.List; |
| | | |
| | | @Service |
| | |
| | | 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("条款编号已存在!"); |
| | |
| | | |
| | | } |
| | | |
| | | 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); |
| | | }); |
| | | |
| | | } |
| | | } |