SceneServiceImpl.java 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package com.fdkankan.manage.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  6. import com.fdkankan.manage.common.PageInfo;
  7. import com.fdkankan.manage.entity.FeedbackOption;
  8. import com.fdkankan.manage.entity.Scene;
  9. import com.fdkankan.manage.mapper.ISceneMapper;
  10. import com.fdkankan.manage.service.IFeedbackOptionService;
  11. import com.fdkankan.manage.service.ISceneService;
  12. import com.fdkankan.manage.util.SceneStatusUtil;
  13. import com.fdkankan.manage.vo.request.SceneParam;
  14. import com.fdkankan.manage.vo.response.GroupByCount;
  15. import com.fdkankan.manage.vo.response.SceneVo;
  16. import org.apache.commons.lang3.StringUtils;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.stereotype.Service;
  19. import java.util.HashMap;
  20. import java.util.HashSet;
  21. import java.util.List;
  22. import java.util.stream.Collectors;
  23. /**
  24. * <p>
  25. * 场景表 服务实现类
  26. * </p>
  27. *
  28. * @author
  29. * @since 2022-06-16
  30. */
  31. @Service
  32. public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implements ISceneService {
  33. @Autowired
  34. IFeedbackOptionService feedbackOptionService;
  35. @Override
  36. public void unbindCamera(Long cameraId) {
  37. LambdaUpdateWrapper<Scene> wrapper = new LambdaUpdateWrapper<>();
  38. wrapper.set(Scene::getUserId,null)
  39. .eq(Scene::getCameraId,cameraId);
  40. this.update(wrapper);
  41. }
  42. @Override
  43. public HashMap<Long, Long> getCountGroupByUserId(List<Long> userIdList) {
  44. HashMap<Long,Long> map = new HashMap<>();
  45. List<GroupByCount> result = this.getBaseMapper().getCountGroupByUserId(userIdList);
  46. result.forEach(entity ->map.put(entity.getId(),entity.getCount()));
  47. return map;
  48. }
  49. @Override
  50. public HashMap<Long, Long> getCountGroupByCameraId(List<Long> cameraIds) {
  51. HashMap<Long,Long> map = new HashMap<>();
  52. List<GroupByCount> result = this.getBaseMapper().getCountGroupByCameraId(cameraIds);
  53. result.forEach(entity ->map.put(entity.getId(),entity.getCount()));
  54. return map;
  55. }
  56. @Override
  57. public PageInfo pageList(SceneParam param) {
  58. Page<SceneVo> page = this.getBaseMapper().pageList(new Page<>(param.getPageNum(), param.getPageSize()), param);
  59. List<Integer> feedbackOptionIds = page.getRecords().stream().map(SceneVo::getFeedbackOptionId).collect(Collectors.toList());
  60. HashMap<Integer, FeedbackOption> mapByIds = feedbackOptionService.getMapByIds(new HashSet<>(feedbackOptionIds));
  61. for (SceneVo record : page.getRecords()) {
  62. record.setStatusString(SceneStatusUtil.getStatusString(record));
  63. if(StringUtils.isNotBlank(record.getCopyTime())){
  64. record.setIsCopy(true);
  65. }
  66. FeedbackOption feedbackOption = mapByIds.get(record.getFeedbackOptionId());
  67. if(feedbackOption != null){
  68. record.setFeedbackOptionName(feedbackOption.getNameCn());
  69. }else {
  70. record.setFeedbackOptionId(null);
  71. }
  72. }
  73. return PageInfo.PageInfo(page);
  74. }
  75. @Override
  76. public Scene getByNum(String num) {
  77. LambdaQueryWrapper<Scene> wrapper = new LambdaQueryWrapper<>();
  78. wrapper.eq(Scene::getNum,num);
  79. List<Scene> list = this.list(wrapper);
  80. if(list!=null && list.size() >0){
  81. return list.get(0);
  82. }
  83. return null;
  84. }
  85. }