package com.fdkankan.manage.service.impl; import cn.dev33.satoken.stp.StpUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.AuthorizeCamera; import com.fdkankan.manage.entity.AuthorizeCameraDetail; import com.fdkankan.manage.entity.AuthorizeCameraLog; import com.fdkankan.manage.entity.AuthorizeInstall; import com.fdkankan.manage.exception.BusinessException; import com.fdkankan.manage.mapper.IAuthorizeCameraMapper; import com.fdkankan.manage.service.IAuthorizeCameraDetailService; import com.fdkankan.manage.service.IAuthorizeCameraLogService; import com.fdkankan.manage.service.IAuthorizeCameraService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fdkankan.manage.vo.request.AuthorizeParam; import com.fdkankan.reg.RegCodeUtil; import com.fdkankan.reg.dto.CamRegDto; import com.fdkankan.reg.dto.CamRegSDto; import com.fdkankan.reg.dto.MachineRegDto; import jdk.internal.dynalink.linker.LinkerServices; import org.apache.commons.lang3.StringUtils; import org.ini4j.Reg; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; /** *

* 服务实现类 *

* * @author * @since 2023-07-07 */ @Service public class AuthorizeCameraServiceImpl extends ServiceImpl implements IAuthorizeCameraService { @Autowired IAuthorizeCameraDetailService authorizeCameraDetailService; @Autowired IAuthorizeCameraLogService authorizeCameraLogService; @Override public Object pageList(AuthorizeParam param) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); if(StringUtils.isNotBlank(param.getCustomerName())){ wrapper.like(AuthorizeCamera::getCustomerName,param.getCustomerName()); } if(param.getCustomerType() != null){ wrapper.eq(AuthorizeCamera::getCustomerType,param.getCustomerType()); } if(param.getUseType() != null){ wrapper.eq(AuthorizeCamera::getUseType,param.getUseType()); } if(StringUtils.isNotBlank(param.getAuthorizeKey())){ wrapper.like(AuthorizeCamera::getAuthorizeKey,param.getAuthorizeKey()); } if(StringUtils.isNotBlank(param.getMachineUuid())){ wrapper.like(AuthorizeCamera::getMachineUuid,param.getMachineUuid()); } wrapper.orderByDesc(AuthorizeCamera::getCreateTime); Page page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper); return PageInfo.PageInfo(page); } @Override public AuthorizeCamera addOrUpdate(AuthorizeCamera param) { param.setSysUserId(Long.valueOf((String) StpUtil.getLoginId())); if(param.getId() == null){ //获取机器UUID,机器名称 MachineRegDto machineRegDto = RegCodeUtil.ParseMachineCode(param.getMachineCode()); if(machineRegDto == null){ throw new BusinessException(ResultCode.READ_MACHINE_CODE_ERROR); } param.setMachineUuid( machineRegDto.getUuid()); param.setMachineName( machineRegDto.getComputerName()); try { CamRegSDto dtos = new CamRegSDto(); dtos.setMachineCode(param.getMachineCode()); dtos.setTimestamp(new Date().getTime()); List camRegs = new ArrayList<>(); String[] split = param.getSnCodes().split(","); for (String snCode : split) { CamRegDto camRegDto = new CamRegDto(); camRegDto.setSn(snCode); camRegs.add(camRegDto); } dtos.setCamRegs(camRegs); String authorizeKey = RegCodeUtil.batchGenRegeditCamCode(dtos); if(StringUtils.isBlank(authorizeKey)){ throw new BusinessException(ResultCode.GET_MACHINE_CODE_ERROR); } param.setAuthorizeKey(authorizeKey); }catch (Exception e){ throw new BusinessException(ResultCode.GET_MACHINE_CODE_ERROR); } } this.saveOrUpdate(param); return param; } @Override public Object detail(Integer id) { AuthorizeCamera authorizeCamera = this.getById(id); if(authorizeCamera == null){ throw new BusinessException(ResultCode.RECOED_NO_EXITS); } return authorizeCameraDetailService.getByCameraId(id); } @Override public Object updateSnCode(Integer detailId, String snCode) { AuthorizeCameraDetail cameraDetail = authorizeCameraDetailService.getById(detailId); if(cameraDetail == null){ throw new BusinessException(ResultCode.RECOED_NO_EXITS); } AuthorizeCamera authorizeCamera = this.getById(cameraDetail.getAuthorizeCameraId()); if(authorizeCamera == null){ throw new BusinessException(ResultCode.RECOED_NO_EXITS); } try { CamRegSDto dtos = new CamRegSDto(); dtos.setMachineCode(authorizeCamera.getMachineCode()); dtos.setTimestamp(new Date().getTime()); List camRegs = new ArrayList<>(); CamRegDto camRegDto = new CamRegDto(); camRegDto.setSn(cameraDetail.getSnCode()); camRegDto.setToSn(snCode); camRegs.add(camRegDto); dtos.setCamRegs(camRegs); String authorizeKey = RegCodeUtil.batchGenRegeditCamCode(dtos); if(StringUtils.isBlank(authorizeKey)){ throw new BusinessException(ResultCode.GET_MACHINE_CODE_ERROR); } AuthorizeCameraLog authorizeCameraLog = authorizeCameraLogService.saveLog(cameraDetail, snCode, authorizeKey); authorizeCameraDetailService.updateSnCode(cameraDetail.getId(),snCode); return authorizeCameraLog; }catch (Exception e){ throw new BusinessException(ResultCode.GET_MACHINE_CODE_ERROR); } } }