package com.gkhy.assess.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.assess.common.enums.DeleteFlagEnum; import com.gkhy.assess.common.exception.ApiException; import com.gkhy.assess.system.domain.AssDevice; import com.gkhy.assess.system.mapper.AssDeviceMapper; import com.gkhy.assess.system.service.AssDeviceService; import com.gkhy.assess.system.service.AssProjectService; import com.gkhy.assess.system.utils.ShiroUtils; import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** *

* 设备表 服务实现类 *

* * @author kzy * @since 2023-12-12 10:46:54 */ @Service public class AssDeviceServiceImpl extends ServiceImpl implements AssDeviceService { @Autowired private AssProjectService projectService; @Override public int addDevice(AssDevice device) { projectService.checkUserAllowed(device.getProjectId()); if(!checkNameUnique(device)){ throw new ApiException("项目下已存在相同设备"); } device.setCreateBy(ShiroUtils.getSysUser().getUsername()); int row=baseMapper.insert(device); return row; } @Override public int editDevice(AssDevice device) { projectService.checkUserAllowed(device.getProjectId()); if(!checkNameUnique(device)){ throw new ApiException("项目下已存在相同设备"); } device.setUpdateBy(ShiroUtils.getSysUser().getUsername()); int row =baseMapper.updateById(device); return row; } @Override public int deleteById(Long deviceId) { AssDevice device=getById(deviceId); if(device==null){ throw new ApiException("设备不存在"); } projectService.checkUserAllowed(device.getProjectId()); device=new AssDevice().setId(deviceId) .setDelFlag(DeleteFlagEnum.DELETED.getCode()); device.setUpdateBy(ShiroUtils.getSysUser().getUsername()); return baseMapper.updateById(device); } @Override public AssDevice getDeviceById(Long deviceId) { AssDevice device= getById(deviceId); projectService.checkUserAllowed(device.getProjectId()); return device; } @Override public boolean checkNameUnique(AssDevice device) { LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery() .eq(AssDevice::getDeviceName, device.getDeviceName()) .eq(AssDevice::getDelFlag, DeleteFlagEnum.UN_DELETE) .eq(AssDevice::getProjectId, device.getProjectId()); if(device.getId()!=null){ lambdaQueryWrapper.ne(AssDevice::getId,device.getId()); } long contractCount= count(lambdaQueryWrapper); if(contractCount>0){ return false; } return true; } @Override public List getByProjectId(Long projectId) { projectService.checkUserAllowed(projectId); return baseMapper.getDevicesByProjectId(projectId); } @Override public int deleteByIds(List ids,Long projectId) { projectService.checkUserAllowed(projectId); return baseMapper.update(null,Wrappers.lambdaUpdate() .in(AssDevice::getId,ids) .set(AssDevice::getDelFlag,DeleteFlagEnum.DELETED.getCode()) .set(AssDevice::getUpdateBy,ShiroUtils.getSysUser().getUsername())); } }