CameraServiceImpl.java 9.1 KB

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