package com.fdkankan.manage.service.impl; import cn.dev33.satoken.stp.StpUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fdkankan.manage.common.PageInfo; import com.fdkankan.manage.common.ResultCode; import com.fdkankan.manage.entity.AgentAudit; import com.fdkankan.manage.entity.Camera; import com.fdkankan.manage.entity.RtkInfo; import com.fdkankan.manage.entity.SysUser; import com.fdkankan.manage.exception.BusinessException; import com.fdkankan.manage.mapper.IRtkInfoMapper; import com.fdkankan.manage.service.ICameraService; import com.fdkankan.manage.service.IRtkInfoService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fdkankan.manage.service.ISysUserService; import com.fdkankan.manage.vo.request.RtkInfoParam; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; import java.util.stream.Collectors; /** *

* 服务实现类 *

* * @author * @since 2024-04-26 */ @Service public class RtkInfoServiceImpl extends ServiceImpl implements IRtkInfoService { @Autowired ISysUserService sysUserService; @Autowired ICameraService cameraService; @Override public RtkInfo getByRtkSnCode(String rtkSnCode) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(RtkInfo::getRtkSnCode,rtkSnCode); return this.getOne(wrapper); } @Override public Object pageList(RtkInfoParam param) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); if(StringUtils.isNotBlank(param.getRtkSnCode())){ wrapper.like(RtkInfo::getRtkSnCode,param.getRtkSnCode()); } if(StringUtils.isNotBlank(param.getUserName())){ wrapper.like(RtkInfo::getUserName,param.getUserName()); } if(StringUtils.isNotBlank(param.getOperator())){ wrapper.like(RtkInfo::getOperator,param.getOperator()); } if(StringUtils.isNotBlank(param.getCameraSn())){ wrapper.like(RtkInfo::getCameraSnCode,param.getCameraSn()); } if(StringUtils.isNotBlank(param.getSgRtkSn())){ wrapper.like(RtkInfo::getSgRtkSn,param.getSgRtkSn()); } if(StringUtils.isNotBlank(param.getStartTime())&& StringUtils.isNotBlank(param.getEndTime()) ) { wrapper.between(RtkInfo::getCreateTime,param.getStartTime(),param.getEndTime()); } wrapper.orderByDesc(RtkInfo::getCreateTime); wrapper.orderByDesc(RtkInfo::getId); Page page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper); Set createUserIds = page.getRecords().stream().map(RtkInfo::getCreateUserId).collect(Collectors.toSet()); HashMap byIds = sysUserService.getByIds(createUserIds); for (RtkInfo record : page.getRecords()) { SysUser sysUser = byIds.get(record.getCreateUserId()); if(sysUser != null){ record.setCreateUserName(sysUser.getUserName()); record.setCreateNickName(sysUser.getNickName()); } } return PageInfo.PageInfo(page); } @Override public void saveOrEdit(RtkInfo rtkInfo) { this.saveOrUpdate(rtkInfo); } @Override public void del(RtkInfo rtkInfo) { if(rtkInfo.getId() == null){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } RtkInfo rtkInfo1 = this.getById(rtkInfo.getId()); if(rtkInfo1 == null){ throw new BusinessException(ResultCode.RECOED_NO_EXITS); } this.removeById(rtkInfo.getId()); } @Override public RtkInfo getByCameraSnCode(String cameraSnCode) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(RtkInfo::getCameraSnCode,cameraSnCode); return this.getOne(wrapper); } @Override public void activation(RtkInfo rtkInfo) { if(rtkInfo.getId() == null || rtkInfo.getStatus() == null){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } RtkInfo rtkInfo1 = this.getById(rtkInfo.getId()); if(rtkInfo1 == null){ throw new BusinessException(ResultCode.RECOED_NO_EXITS); } LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(RtkInfo::getId,rtkInfo.getId()); wrapper.set(RtkInfo::getStatus,rtkInfo.getStatus()); this.update(wrapper); } @Override public void saveOrEditEntity(RtkInfo rtkInfo) { RtkInfo dbRtkInfo = null; RtkInfo dbRtkInfo2 = null; Camera camera = null; if(StringUtils.isNotBlank(rtkInfo.getRtkSnCode())){ dbRtkInfo = this.getByRtkSnCode(rtkInfo.getRtkSnCode()); } if(StringUtils.isNotBlank(rtkInfo.getCameraSnCode())){ camera = cameraService.getBySnCode(rtkInfo.getCameraSnCode()); if(camera == null){ throw new BusinessException(ResultCode.CAMERA_NOT_EXIST); } } if(StringUtils.isNotBlank(rtkInfo.getSgRtkSn())){ dbRtkInfo2 = this.getSgRtkSn(rtkInfo.getSgRtkSn()); } if(rtkInfo.getId() == null){ if(dbRtkInfo != null){ throw new BusinessException(ResultCode.RTK_SN_EXIST); } if(dbRtkInfo2 != null){ throw new BusinessException(ResultCode.SGRTK_SN_EXIST); } rtkInfo.setCreateUserId(Long.valueOf((String) StpUtil.getLoginId())); }else { if( dbRtkInfo != null && !Objects.equals(dbRtkInfo.getId(), rtkInfo.getId()) ){ throw new BusinessException(ResultCode.RTK_SN_EXIST); } if( dbRtkInfo2 != null && !Objects.equals(dbRtkInfo2.getId(), rtkInfo.getId()) ){ throw new BusinessException(ResultCode.SGRTK_SN_EXIST); } rtkInfo.setUpdateUserId(Long.valueOf((String)StpUtil.getLoginId())); } if(rtkInfo.getRtkType() != null && rtkInfo.getRtkType() == 0){ rtkInfo.setIpAddr(null); rtkInfo.setMountPoint(null); rtkInfo.setPort(null); rtkInfo.setUserName(null); rtkInfo.setPassword(null); rtkInfo.setOperator(null); } this.saveOrUpdate(rtkInfo); } private RtkInfo getSgRtkSn(String sgRtkSn) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(RtkInfo::getSgRtkSn,sgRtkSn); return this.getOne(wrapper); } }