CameraServiceImpl.java 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. package com.fdkankan.manage_jp.service.impl;
  2. import java.util.Arrays;
  3. import java.util.Date;
  4. import java.util.List;
  5. import java.util.Set;
  6. import java.util.stream.Collectors;
  7. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  8. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  9. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  10. import com.fdkankan.common.util.DateUtil;
  11. import com.fdkankan.manage_jp.common.Constant;
  12. import com.fdkankan.manage_jp.common.PageInfo;
  13. import com.fdkankan.manage_jp.common.ResultCode;
  14. import com.fdkankan.manage_jp.entity.Camera;
  15. import com.fdkankan.manage_jp.entity.CameraDetail;
  16. import com.fdkankan.manage_jp.entity.Company;
  17. import com.fdkankan.manage_jp.entity.User;
  18. import com.fdkankan.manage_jp.exception.BusinessException;
  19. import com.fdkankan.manage_jp.httpClient.param.SSToBind;
  20. import com.fdkankan.manage_jp.httpClient.service.LaserService;
  21. import com.fdkankan.manage_jp.mapper.ICameraMapper;
  22. import com.fdkankan.manage_jp.service.*;
  23. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  24. import com.fdkankan.manage_jp.vo.request.CameraAddParam;
  25. import com.fdkankan.manage_jp.vo.request.CameraListParam;
  26. import com.fdkankan.manage_jp.vo.request.RequestCamera;
  27. import com.fdkankan.manage_jp.vo.response.ResponseCamera;
  28. import com.github.yulichang.base.MPJBaseServiceImpl;
  29. import com.github.yulichang.wrapper.MPJLambdaWrapper;
  30. import org.apache.commons.lang3.StringUtils;
  31. import org.springframework.beans.factory.annotation.Autowired;
  32. import org.springframework.stereotype.Service;
  33. /**
  34. * <p>
  35. * 相机主表 服务实现类
  36. * </p>
  37. *
  38. * @author
  39. * @since 2022-12-30
  40. */
  41. @Service
  42. public class CameraServiceImpl extends MPJBaseServiceImpl<ICameraMapper, Camera> implements ICameraService {
  43. @Autowired
  44. ICameraDetailService cameraDetailService;
  45. @Autowired
  46. ICompanyService companyService;
  47. @Autowired
  48. IUserService userService;
  49. @Autowired
  50. IUserRoleService userRoleService;
  51. @Autowired
  52. ISceneProService sceneProService;
  53. @Autowired
  54. IScenePlusService scenePlusService;
  55. @Autowired
  56. LaserService laserService;
  57. @Override
  58. public Camera findByChildName(String childName) {
  59. LambdaQueryWrapper<Camera> wrapper = new LambdaQueryWrapper<>();
  60. wrapper.eq(Camera::getChildName,childName);
  61. return this.getOne(wrapper);
  62. }
  63. @Override
  64. public Object pageList(CameraListParam param,User user) {
  65. Set<Long> roleIds = userRoleService.getByUser(user);
  66. if(roleIds.contains(6L)){
  67. param.setCompanyId(user.getCompanyId());
  68. }
  69. Page<ResponseCamera> page = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
  70. for (ResponseCamera record : page.getRecords()) {
  71. record.setCameraType(record.getType());
  72. }
  73. return PageInfo.PageInfo(page);
  74. }
  75. @Override
  76. public void add(CameraAddParam param) {
  77. if(StringUtils.isBlank(param.getChildName()) && StringUtils.isBlank(param.getSnCode())){
  78. throw new BusinessException(ResultCode.PARAM_ERROR);
  79. }
  80. if(!param.getChildName().equals(param.getSnCode())){
  81. throw new BusinessException(ResultCode.PARAM_ERROR);
  82. }
  83. List<Camera> byChildNames = this.getByChildNames(Arrays.asList(param.getChildName()));
  84. if(byChildNames !=null && byChildNames.size() >0){
  85. throw new BusinessException(ResultCode.CAMERA_IN);
  86. }
  87. Camera camera = new Camera();
  88. camera.setChildName(param.getChildName());
  89. camera.setChildPassword(Constant.CHILD_PASSWORD_VALUE);
  90. camera.setSnCode(param.getSnCode());
  91. camera.setWifiName(param.getWifiName());
  92. camera.setWifiPassword(Constant.WIFI_PASSWORD_VALUE);
  93. // camera.setActivatedTime(DateUtil.date2String(new Date(),"yyyy-MM-dd HH:mm:ss"));
  94. this.save(camera);
  95. CameraDetail detail = new CameraDetail();
  96. detail.setOwn(param.getOwn());
  97. detail.setTotalSpace(0L);
  98. detail.setUsedSpace(0L);
  99. detail.setCameraId(camera.getId());
  100. detail.setType(param.getCameraType());
  101. if(param.getCameraType() == 9){
  102. detail.setGoodsId(9L);
  103. }else if(param.getCameraType() == 10){
  104. detail.setGoodsId(10L);
  105. }else{
  106. detail.setGoodsId(param.getCameraType() == 0 ? 1L : 4L);
  107. }
  108. detail.setOutTime(new Date());
  109. detail.setAgency(Constant.DEFAULT_AGENT);
  110. detail.setAddress(param.getAddress());
  111. // detail.setCompanyId(112L);
  112. cameraDetailService.save(detail);
  113. }
  114. @Override
  115. public void updateByParam(CameraAddParam param) {
  116. if(param.getCameraId() == null || param.getOwn() == null ){
  117. throw new BusinessException(ResultCode.PARAM_ERROR);
  118. }
  119. cameraDetailService.updateOwnByCameraId(param.getCameraId(),param.getOwn());
  120. }
  121. @Override
  122. public void unbind(CameraAddParam param) {
  123. if(StringUtils.isBlank(param.getChildName())){
  124. throw new BusinessException(ResultCode.PARAM_ERROR);
  125. }
  126. Camera camera = this.findByChildName(param.getChildName());
  127. if(camera == null){
  128. throw new BusinessException(ResultCode.PARAM_ERROR);
  129. }
  130. CameraDetail cameraDetail = cameraDetailService.getByCameraId(camera.getId());
  131. if(cameraDetail == null){
  132. throw new BusinessException(ResultCode.PARAM_ERROR);
  133. }
  134. LambdaUpdateWrapper<Camera> wrapper = new LambdaUpdateWrapper<>();
  135. wrapper.eq(Camera::getId,camera.getId());
  136. wrapper.set(Camera::getActivatedTime,null);
  137. this.update(wrapper);
  138. cameraDetailService.unbind(camera.getId());
  139. sceneProService.unbind(camera.getId(),null);
  140. scenePlusService.unbind(camera.getId(),null);
  141. if(cameraDetail.getType() == 10){
  142. laserService.toBind(Arrays.asList(camera.getSnCode()),false,null);
  143. }
  144. }
  145. @Override
  146. public void bind(CameraAddParam param) {
  147. if(param.getChildNames() == null || param.getChildNames().size() <=0 || param.getCompanyId() == null){
  148. throw new BusinessException(ResultCode.PARAM_ERROR);
  149. }
  150. Company company = companyService.getById(param.getCompanyId());
  151. if(company == null){
  152. throw new BusinessException(ResultCode.COMPANY_NOT_EXIST);
  153. }
  154. User user = userService.getById(company.getManagerId());
  155. if(user == null){
  156. throw new BusinessException(ResultCode.USER_NOT_EXIST);
  157. }
  158. LambdaUpdateWrapper<Camera> wrapper = new LambdaUpdateWrapper<>();
  159. wrapper.in(Camera::getChildName,param.getChildNames());
  160. wrapper.set(Camera::getActivatedTime, DateUtil.date2String(new Date(),"yyyy-MM-dd HH:mm:ss"));
  161. this.update(wrapper);
  162. List<Camera> byChildNames = this.getByChildNames(param.getChildNames());
  163. List<Long> cameraIds = byChildNames.stream().map(Camera::getId).collect(Collectors.toList());
  164. cameraDetailService.bind(cameraIds,param.getCompanyId());
  165. for (Long cameraId : cameraIds) {
  166. sceneProService.unbind(cameraId, user.getId());
  167. scenePlusService.unbind(cameraId,user.getId());
  168. }
  169. }
  170. @Override
  171. public List<Camera> getByChildNames(List<String> childNames) {
  172. LambdaQueryWrapper<Camera> wrapper = new LambdaQueryWrapper<>();
  173. wrapper.in(Camera::getChildName,childNames);
  174. return this.list(wrapper);
  175. }
  176. @Override
  177. public List<Camera> getByWiFiName(List<String> wifiNames) {
  178. LambdaQueryWrapper<Camera> wrapper = new LambdaQueryWrapper<>();
  179. wrapper.in(Camera::getWifiName,wifiNames);
  180. return this.list(wrapper);
  181. }
  182. @Override
  183. public List<Camera> getLikeChildName(String childName) {
  184. LambdaQueryWrapper<Camera> wrapper = new LambdaQueryWrapper<>();
  185. wrapper.like(Camera::getChildName,childName);
  186. return this.list(wrapper);
  187. }
  188. @Override
  189. public Object getByUser(Long userId, Long oldCameraId) {
  190. CameraDetail cameraDetail = cameraDetailService.getByCameraId(oldCameraId);
  191. if(cameraDetail == null){
  192. return null;
  193. }
  194. List<CameraDetail> cameraDetails = cameraDetailService.getByUserIdAndType(userId,cameraDetail.getType());
  195. if(cameraDetails.isEmpty()){
  196. return null;
  197. }
  198. List<Long> cameraIds = cameraDetails.stream().map(CameraDetail::getCameraId).collect(Collectors.toList());
  199. return this.listByIds(cameraIds);
  200. }
  201. }