AuthorizeCameraServiceImpl.java 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. package com.fdkankan.manage.service.impl;
  2. import java.util.Date;
  3. import cn.dev33.satoken.stp.StpUtil;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. import com.fdkankan.common.util.SecurityUtil;
  7. import com.fdkankan.manage.common.CacheUtil;
  8. import com.fdkankan.manage.common.PageInfo;
  9. import com.fdkankan.manage.common.ResultCode;
  10. import com.fdkankan.manage.entity.*;
  11. import com.fdkankan.manage.exception.BusinessException;
  12. import com.fdkankan.manage.mapper.IAuthorizeCameraMapper;
  13. import com.fdkankan.manage.service.*;
  14. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  15. import com.fdkankan.manage.util.CameraUtils;
  16. import com.fdkankan.manage.util.ListUtils;
  17. import com.fdkankan.manage.vo.request.AuthorizeParam;
  18. import com.fdkankan.reg.RegCodeUtil;
  19. import com.fdkankan.reg.dto.CamRegDto;
  20. import com.fdkankan.reg.dto.CamRegSDto;
  21. import com.fdkankan.reg.dto.MachineRegDto;
  22. import jdk.internal.dynalink.linker.LinkerServices;
  23. import lombok.extern.slf4j.Slf4j;
  24. import org.apache.commons.lang3.StringUtils;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.stereotype.Service;
  27. import java.util.*;
  28. import java.util.stream.Collectors;
  29. /**
  30. * <p>
  31. * 服务实现类
  32. * </p>
  33. *
  34. * @author
  35. * @since 2023-07-07
  36. */
  37. @Service
  38. @Slf4j
  39. public class AuthorizeCameraServiceImpl extends ServiceImpl<IAuthorizeCameraMapper, AuthorizeCamera> implements IAuthorizeCameraService {
  40. @Autowired
  41. IAuthorizeCameraDetailService authorizeCameraDetailService;
  42. @Autowired
  43. IAuthorizeCameraLogService authorizeCameraLogService;
  44. @Autowired
  45. ISysUserService sysUserService;
  46. @Autowired
  47. ICameraService cameraService;
  48. @Autowired
  49. ICameraDetailService cameraDetailService;
  50. @Override
  51. public Object pageList(AuthorizeParam param) {
  52. LambdaQueryWrapper<AuthorizeCamera> wrapper = new LambdaQueryWrapper<>();
  53. if(StringUtils.isNotBlank(param.getCustomerName())){
  54. wrapper.like(AuthorizeCamera::getCustomerName,param.getCustomerName());
  55. }
  56. if(param.getCustomerType() != null){
  57. wrapper.eq(AuthorizeCamera::getCustomerType,param.getCustomerType());
  58. }
  59. if(param.getUseType() != null){
  60. wrapper.eq(AuthorizeCamera::getUseType,param.getUseType());
  61. }
  62. if(StringUtils.isNotBlank(param.getAuthorizeKey())){
  63. wrapper.like(AuthorizeCamera::getAuthorizeKey,param.getAuthorizeKey());
  64. }
  65. if(StringUtils.isNotBlank(param.getMachineUuid())){
  66. wrapper.like(AuthorizeCamera::getMachineUuid,param.getMachineUuid());
  67. }
  68. if(StringUtils.isNotBlank(param.getMachineCode())){
  69. wrapper.like(AuthorizeCamera::getMachineCode,param.getMachineCode());
  70. }
  71. wrapper.orderByDesc(AuthorizeCamera::getCreateTime);
  72. Page<AuthorizeCamera> page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
  73. Set<Long> sysIds = page.getRecords().stream().map(AuthorizeCamera::getSysUserId).collect(Collectors.toSet());
  74. HashMap<Long, SysUser> userMap = sysUserService.getByIds(sysIds);
  75. for (AuthorizeCamera record : page.getRecords()) {
  76. if(userMap.get(record.getSysUserId())!=null){
  77. record.setSysUserName(userMap.get(record.getSysUserId()).getNickName());
  78. }
  79. String snCodes = "";
  80. List<AuthorizeCameraDetail> details = authorizeCameraDetailService.getByCameraId(record.getId());
  81. for (AuthorizeCameraDetail detail : details) {
  82. snCodes += detail.getSnCode()+ "\n";
  83. }
  84. record.setSnCodes(snCodes);
  85. }
  86. return PageInfo.PageInfo(page);
  87. }
  88. @Override
  89. public AuthorizeCamera addOrUpdate(AuthorizeCamera param) {
  90. param.setSysUserId(Long.valueOf((String) StpUtil.getLoginId()));
  91. HashMap<String,AuthorizeCameraDetail> detailHashMap = new HashMap<>();
  92. if(param.getId() == null){
  93. //获取机器UUID,机器名称
  94. MachineRegDto machineRegDto = null;
  95. try {
  96. machineRegDto = RegCodeUtil.builder().env(CacheUtil.laserRegEnv).build().ParseMachineCode(param.getMachineCode());
  97. }catch (Exception e){
  98. throw new BusinessException(ResultCode.MACHINE_CODE_ERROR);
  99. }
  100. if(machineRegDto == null){
  101. throw new BusinessException(ResultCode.READ_MACHINE_CODE_ERROR);
  102. }
  103. param.setMachineUuid( machineRegDto.getUuid());
  104. try {
  105. CamRegSDto dtos = new CamRegSDto();
  106. dtos.setMachineCode(param.getMachineCode());
  107. dtos.setTimestamp(new Date().getTime());
  108. List<CamRegDto> camRegs = new ArrayList<>();
  109. String[] split = param.getSnCodes().split("\n");
  110. if(ListUtils.checkForDuplicates(split)){
  111. throw new BusinessException(ResultCode.CAMERA_SN_EXITS);
  112. }
  113. for (String snCode : split) {
  114. if(StringUtils.isBlank(snCode)){
  115. continue;
  116. }
  117. snCode = snCode.toUpperCase();
  118. CamRegDto camRegDto = new CamRegDto();
  119. camRegDto.setSn(snCode);
  120. Camera camera = cameraService.getBySnCode(snCode);
  121. if(camera == null){
  122. throw new BusinessException(ResultCode.CAMERA_SN_NOT_EXIST);
  123. }
  124. CameraDetail cameraDetail = cameraDetailService.getByCameraId(camera.getId());
  125. if(cameraDetail == null){
  126. throw new BusinessException(ResultCode.CAMERA_SN_NOT_EXIST);
  127. }
  128. if(cameraDetail.getType() != 9 && cameraDetail.getType() !=10 && cameraDetail.getType() !=11){
  129. throw new BusinessException(ResultCode.CAMERA_AUTHORIZE_ERROR);
  130. }
  131. camRegDto.setCameraType(cameraDetail.getType());
  132. camRegs.add(camRegDto);
  133. AuthorizeCameraDetail detail = new AuthorizeCameraDetail();
  134. detail.setSnCode(snCode);
  135. detail.setCameraId(camera.getId());
  136. detail.setCameraType(cameraDetail.getType());
  137. detail.setCameraTypeStr(CameraUtils.getCameraTypeStr(detail.getCameraType()));
  138. detailHashMap.put(snCode,detail);
  139. }
  140. param.setCameraNum(detailHashMap.size());
  141. dtos.setCamRegs(camRegs);
  142. String authorizeKey = RegCodeUtil.builder().env(CacheUtil.laserRegEnv).build().batchGenRegeditCamCode(dtos);
  143. if(StringUtils.isBlank(authorizeKey)){
  144. throw new BusinessException(ResultCode.GET_MACHINE_CODE_ERROR);
  145. }
  146. param.setAuthorizeKey(authorizeKey);
  147. }catch (Exception e){
  148. log.info("授权相机:error:",e);
  149. throw e;
  150. }
  151. }
  152. this.saveOrUpdate(param);
  153. for (AuthorizeCameraDetail detail : detailHashMap.values()) {
  154. detail.setAuthorizeCameraId(param.getId());
  155. authorizeCameraDetailService.save(detail);
  156. }
  157. return param;
  158. }
  159. @Override
  160. public Object detail(Integer id) {
  161. AuthorizeCamera authorizeCamera = this.getById(id);
  162. if(authorizeCamera == null){
  163. throw new BusinessException(ResultCode.RECOED_NO_EXITS);
  164. }
  165. return authorizeCameraDetailService.getByCameraId(id);
  166. }
  167. @Override
  168. public Object updateSnCode(Integer detailId, String snCode) {
  169. snCode = snCode.toUpperCase();
  170. AuthorizeCameraDetail cameraDetail = authorizeCameraDetailService.getById(detailId);
  171. if(cameraDetail == null){
  172. throw new BusinessException(ResultCode.RECOED_NO_EXITS);
  173. }
  174. AuthorizeCamera authorizeCamera = this.getById(cameraDetail.getAuthorizeCameraId());
  175. if(authorizeCamera == null){
  176. throw new BusinessException(ResultCode.RECOED_NO_EXITS);
  177. }
  178. if(cameraDetail.getSnCode().toUpperCase().equals(snCode)){
  179. throw new BusinessException(ResultCode.UPDATE_CAMERA_ERROR);
  180. }
  181. Camera bySnCode = cameraService.getBySnCode(snCode);
  182. if(bySnCode == null){
  183. throw new BusinessException(ResultCode.UPDATE_CAMERA_NO_IN);
  184. }
  185. CameraDetail byCameraId = cameraDetailService.getByCameraId(bySnCode.getId());
  186. if(byCameraId == null){
  187. throw new BusinessException(ResultCode.UPDATE_CAMERA_NO_IN);
  188. }
  189. if(!byCameraId.getType().equals(cameraDetail.getCameraType())){
  190. throw new BusinessException(ResultCode.CAMERA_AUTHORIZE_TYPE_ERROR);
  191. }
  192. try {
  193. CamRegSDto dtos = new CamRegSDto();
  194. dtos.setMachineCode(authorizeCamera.getMachineCode());
  195. dtos.setTimestamp(new Date().getTime());
  196. List<CamRegDto> camRegs = new ArrayList<>();
  197. CamRegDto camRegDto = new CamRegDto();
  198. camRegDto.setSn(cameraDetail.getSnCode());
  199. camRegDto.setToSn(snCode);
  200. camRegs.add(camRegDto);
  201. dtos.setCamRegs(camRegs);
  202. String authorizeKey = RegCodeUtil.builder().env(CacheUtil.laserRegEnv).build().batchGenRegeditCamCode(dtos);
  203. if(StringUtils.isBlank(authorizeKey)){
  204. throw new BusinessException(ResultCode.GET_MACHINE_CODE_ERROR);
  205. }
  206. AuthorizeCameraLog authorizeCameraLog = authorizeCameraLogService.saveLog(cameraDetail, snCode, authorizeKey);
  207. authorizeCameraDetailService.updateSnCode(cameraDetail.getId(),bySnCode.getId(),byCameraId.getType(),snCode);
  208. return authorizeCameraLog;
  209. }catch (Exception e){
  210. throw new BusinessException(ResultCode.GET_MACHINE_CODE_ERROR);
  211. }
  212. }
  213. }