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; /** *

* 系统配置表 服务实现类 *

* * @author kzy * @since 2023-11-13 08:39:55 */ @Service public class TaBooComparisonServiceImpl extends ServiceImpl implements TaBooComparisonService { @Resource private RedisService redisService; @PostConstruct public void init(){ loadingTaBooCache(); } @Override public CommonPage selectTaBooComparisonList(TaBooComparison taBooComparison) { PageUtils.startPage(); List 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 taBooComparisons=baseMapper.selectTaBooComparison(); Map 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 lambdaQueryWrapper = Wrappers.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("该数据已存在"); } } }