SceneProServiceImpl.java 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. package com.fdkankan.manage_jp.service.impl;
  2. import cn.hutool.core.io.FileUtil;
  3. import cn.hutool.json.JSONUtil;
  4. import com.alibaba.fastjson.JSONObject;
  5. import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A;
  6. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  7. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  8. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  9. import com.fdkankan.common.util.FileUtils;
  10. import com.fdkankan.fyun.face.FYunFileServiceInterface;
  11. import com.fdkankan.manage_jp.common.OssPath;
  12. import com.fdkankan.manage_jp.common.PageInfo;
  13. import com.fdkankan.manage_jp.common.ResultCode;
  14. import com.fdkankan.manage_jp.entity.Company;
  15. import com.fdkankan.manage_jp.entity.ScenePlus;
  16. import com.fdkankan.manage_jp.entity.ScenePro;
  17. import com.fdkankan.manage_jp.entity.SceneProEdit;
  18. import com.fdkankan.manage_jp.exception.BusinessException;
  19. import com.fdkankan.manage_jp.httpClient.service.LaserService;
  20. import com.fdkankan.manage_jp.mapper.ISceneProMapper;
  21. import com.fdkankan.manage_jp.service.*;
  22. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  23. import com.fdkankan.manage_jp.vo.request.SceneParam;
  24. import com.fdkankan.manage_jp.vo.response.SceneVo;
  25. import lombok.extern.slf4j.Slf4j;
  26. import org.apache.commons.lang3.StringUtils;
  27. import org.springframework.beans.factory.annotation.Autowired;
  28. import org.springframework.stereotype.Service;
  29. import java.util.HashMap;
  30. import java.util.List;
  31. import java.util.stream.Collectors;
  32. /**
  33. * <p>
  34. * pro场景表 服务实现类
  35. * </p>
  36. *
  37. * @author
  38. * @since 2022-12-30
  39. */
  40. @Service
  41. @Slf4j
  42. public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro> implements ISceneProService {
  43. @Autowired
  44. IScenePlusService scenePlusService;
  45. @Autowired
  46. LaserService laserService;
  47. @Autowired
  48. ISceneProEditService sceneProEditService;
  49. @Autowired
  50. ICompanyService companyService;
  51. @Autowired
  52. IScenePlusExtService scenePlusExtService;
  53. @Autowired
  54. FYunFileServiceInterface fYunFileServiceInterface;
  55. @Override
  56. public Long getCountByUserIds(List<Long> userIds) {
  57. LambdaQueryWrapper<ScenePro> wrapper = new LambdaQueryWrapper<>();
  58. wrapper.in(ScenePro::getUserId,userIds);
  59. wrapper.eq(ScenePro::getIsUpgrade,0);
  60. long count = this.count(wrapper);
  61. LambdaQueryWrapper<ScenePlus> wrapper2 = new LambdaQueryWrapper<>();
  62. wrapper2.in(ScenePlus::getUserId,userIds);
  63. long count2 = scenePlusService.count(wrapper2);
  64. return count + count2;
  65. }
  66. @Override
  67. public void rebindUser(Long fromUserId, Long toUserId) {
  68. LambdaUpdateWrapper<ScenePro> wrapper = new LambdaUpdateWrapper<>();
  69. wrapper.eq(ScenePro::getUserId,fromUserId);
  70. wrapper.set(ScenePro::getUserId,toUserId);
  71. this.update(wrapper);
  72. LambdaUpdateWrapper<ScenePlus> wrapper2 = new LambdaUpdateWrapper<>();
  73. wrapper2.eq(ScenePlus::getUserId,fromUserId);
  74. wrapper2.set(ScenePlus::getUserId,toUserId);
  75. scenePlusService.update(wrapper2);
  76. }
  77. @Override
  78. public Object pageList(SceneParam param) {
  79. if(param.getType() == 2){ //深时
  80. return laserService.pageList(param);
  81. }
  82. Page<SceneVo> page = this.getBaseMapper().pageList(new Page<>(param.getPage(),param.getLimit()),param);
  83. for (SceneVo record : page.getRecords()) {
  84. String userName = record.getUserName();
  85. Company company = companyService.getByUserName(userName);
  86. if(company != null){
  87. record.setCompanyName(company.getCompanyName());
  88. }
  89. }
  90. return PageInfo.PageInfo(page);
  91. }
  92. @Override
  93. public ScenePro getByNum(String num) {
  94. LambdaQueryWrapper<ScenePro> wrapper = new LambdaQueryWrapper<>();
  95. wrapper.eq(ScenePro::getNum,num);
  96. wrapper.eq(ScenePro::getIsUpgrade,0);
  97. List<ScenePro> list = this.list(wrapper);
  98. if(list == null || list.size() <=0){
  99. return null;
  100. }
  101. return list.get(0);
  102. }
  103. @Override
  104. public void addDownloadNum(String sceneNum) {
  105. if(StringUtils.isBlank(sceneNum)){
  106. throw new BusinessException(ResultCode.PARAM_ERROR);
  107. }
  108. ScenePro scenePro = this.getByNum(sceneNum);
  109. if(scenePro != null){
  110. SceneProEdit sceneProEditEntity = sceneProEditService.getByProId(scenePro.getId());
  111. if(sceneProEditEntity.getDownloadNum() == null){
  112. sceneProEditEntity.setDownloadNum(1);
  113. }else{
  114. sceneProEditEntity.setDownloadNum(sceneProEditEntity.getDownloadNum() + 1);
  115. }
  116. sceneProEditService.updateById(sceneProEditEntity);
  117. }
  118. }
  119. @Override
  120. public void deleteByNum(String num) {
  121. ScenePro scenePro = this.getByNum(num);
  122. if(scenePro!=null){
  123. this.removeById(scenePro.getId());
  124. this.updateOssStatus(String.format(OssPath.v3_statusPath,scenePro.getNum()),"I");
  125. }
  126. ScenePlus scenePlus = scenePlusService.getByNum(num);
  127. if(scenePlus!=null){
  128. scenePlusService.removeById(scenePlus.getId());
  129. scenePlusExtService.delByPlus(scenePlus.getId());
  130. this.updateOssStatus(String.format(OssPath.v4_statusPath,scenePlus.getNum()),"I");
  131. }
  132. if(num.contains("SS")){
  133. laserService.delete(num);
  134. }
  135. }
  136. private void updateOssStatus(String path,String recStatus) {
  137. try {
  138. if(!fYunFileServiceInterface.fileExist(path)){
  139. return;
  140. }
  141. String data = fYunFileServiceInterface.getFileContent(path);
  142. if(StringUtils.isBlank(data)){
  143. return;
  144. }
  145. JSONObject jsonObject = JSONObject.parseObject(data);
  146. jsonObject.put("recStatus",recStatus);
  147. String json = JSONUtil.toJsonStr(jsonObject);
  148. FileUtils.writeFile(OssPath.localStatusPath ,json);
  149. log.info("updateOssStatus--localPath:{},ossPath:{}",OssPath.localStatusPath,path);
  150. fYunFileServiceInterface.uploadFile(OssPath.localStatusPath,path);
  151. }catch (Exception e){
  152. e.printStackTrace();
  153. }finally {
  154. FileUtil.del(OssPath.localStatusPath);
  155. }
  156. }
  157. }