package com.gkhy.hazmat.system.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.hazmat.common.api.CommonPage;
|
import com.gkhy.hazmat.common.constant.Constant;
|
import com.gkhy.hazmat.common.domain.entity.SysUser;
|
import com.gkhy.hazmat.common.enums.UserTypeEnum;
|
import com.gkhy.hazmat.common.exception.ApiException;
|
import com.gkhy.hazmat.common.service.RedisService;
|
import com.gkhy.hazmat.common.utils.PageUtils;
|
import com.gkhy.hazmat.common.utils.SecurityUtils;
|
import com.gkhy.hazmat.system.domain.HzProduct;
|
import com.gkhy.hazmat.system.domain.SysConfig;
|
import com.gkhy.hazmat.system.domain.TaBooComparison;
|
import com.gkhy.hazmat.system.mapper.TaBooComparisonMapper;
|
import com.gkhy.hazmat.system.service.TaBooComparisonService;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.PostConstruct;
|
import javax.annotation.Resource;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Objects;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 系统配置表 服务实现类
|
* </p>
|
*
|
* @author kzy
|
* @since 2023-11-13 08:39:55
|
*/
|
@Service
|
public class TaBooComparisonServiceImpl extends ServiceImpl<TaBooComparisonMapper, TaBooComparison> implements TaBooComparisonService {
|
|
@Resource
|
private RedisService redisService;
|
|
@PostConstruct
|
public void init(){
|
loadingTaBooCache();
|
}
|
|
|
@Override
|
public CommonPage selectTaBooComparisonList(TaBooComparison taBooComparison) {
|
PageUtils.startPage();
|
List<TaBooComparison> taBooComparisonList=baseMapper.selectTaBooComparisonList(taBooComparison);
|
return CommonPage.restPage(taBooComparisonList);
|
}
|
|
@Override
|
public int insertTaBooComparison(TaBooComparison taBooComparison) {
|
checkUserAllowed();
|
checkData(taBooComparison);
|
taBooComparison.setCreateBy(SecurityUtils.getUsername());
|
taBooComparison.setUniqueCode(taBooComparison.getLeftCode()+"_"+taBooComparison.getTopCode());
|
int row=baseMapper.insert(taBooComparison);
|
if(row<1){
|
throw new ApiException("新增失败");
|
}
|
// 更新缓存
|
loadingTaBooCache();
|
return row;
|
}
|
|
@Override
|
public int updateTaBooComparison(TaBooComparison taBooComparison) {
|
checkUserAllowed();
|
checkData(taBooComparison);
|
taBooComparison.setUpdateBy(SecurityUtils.getUsername());
|
taBooComparison.setUniqueCode(taBooComparison.getLeftCode()+"_"+taBooComparison.getTopCode());
|
int row=baseMapper.updateById(taBooComparison);
|
if(row<1){
|
throw new ApiException("更新失败");
|
}
|
// 更新缓存
|
loadingTaBooCache();
|
return row;
|
}
|
|
public void checkUserAllowed() {
|
if (SecurityUtils.isAdmin(SecurityUtils.getUserId())) {
|
throw new ApiException("管理员不能操作");
|
}
|
}
|
@Override
|
public void loadingTaBooCache(){
|
List<TaBooComparison> taBooComparisons=baseMapper.selectTaBooComparison();
|
Map<String, Long> collect = taBooComparisons.stream()
|
.collect(Collectors.toMap(
|
TaBooComparison::getUniqueCode,
|
TaBooComparison::getWarningType
|
));
|
redisService.set(Constant.TABOO_UNIQUE_KEY,collect);
|
// DictUtils.setTabooCache("TABOO_UNIQUE_KEY",collect);
|
}
|
|
@Override
|
public void deleteTaBooComparisonById(Long taBooComparisonId) {
|
checkUserAllowed();
|
baseMapper.deleteById(taBooComparisonId);
|
// 更新缓存
|
loadingTaBooCache();
|
}
|
|
private void checkData(TaBooComparison taBooComparison){
|
LambdaQueryWrapper<TaBooComparison> lambdaQueryWrapper = Wrappers.<TaBooComparison>lambdaQuery()
|
.and(wrapper -> wrapper.eq(TaBooComparison::getLeftCode, taBooComparison.getLeftCode())
|
.or()
|
.eq(TaBooComparison::getLeftCode, taBooComparison.getTopCode()))
|
.and(wrapper -> wrapper.eq(TaBooComparison::getTopCode, taBooComparison.getLeftCode())
|
.or()
|
.eq(TaBooComparison::getTopCode, taBooComparison.getTopCode()));
|
if (taBooComparison.getId() != null){
|
lambdaQueryWrapper.ne(TaBooComparison::getId, taBooComparison.getId());
|
}
|
Long l = baseMapper.selectCount(lambdaQueryWrapper);
|
if (l > 0){
|
throw new ApiException("该数据已存在");
|
}
|
|
|
|
}
|
|
}
|