ExceedSpaceSceneServiceImpl.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package com.fdkankan.ucenter.service.impl;
  2. import cn.hutool.json.JSONUtil;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  6. import com.fdkankan.common.util.FileUtils;
  7. import com.fdkankan.fyun.face.FYunFileServiceInterface;
  8. import com.fdkankan.ucenter.common.FileUtil;
  9. import com.fdkankan.ucenter.common.OssPath;
  10. import com.fdkankan.ucenter.entity.CameraDetail;
  11. import com.fdkankan.ucenter.entity.ExceedSpaceScene;
  12. import com.fdkankan.ucenter.entity.IncrementType;
  13. import com.fdkankan.ucenter.entity.UserIncrement;
  14. import com.fdkankan.ucenter.mapper.IExceedSpaceSceneMapper;
  15. import com.fdkankan.ucenter.service.IExceedSpaceSceneService;
  16. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  17. import com.fdkankan.ucenter.service.IIncrementTypeService;
  18. import lombok.extern.slf4j.Slf4j;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.stereotype.Service;
  21. import java.util.List;
  22. /**
  23. * <p>
  24. * 超出容量场景码表 服务实现类
  25. * </p>
  26. *
  27. * @author
  28. * @since 2023-06-30
  29. */
  30. @Service
  31. @Slf4j
  32. public class ExceedSpaceSceneServiceImpl extends ServiceImpl<IExceedSpaceSceneMapper, ExceedSpaceScene> implements IExceedSpaceSceneService {
  33. @Autowired
  34. IIncrementTypeService incrementTypeService;
  35. @Autowired
  36. FYunFileServiceInterface fYunFileServiceInterface;
  37. @Override
  38. public List<ExceedSpaceScene> getExByCameraId(Long cameraId) {
  39. LambdaQueryWrapper<ExceedSpaceScene> wrapper = new LambdaQueryWrapper<>();
  40. wrapper.eq(ExceedSpaceScene::getCameraId,cameraId);
  41. wrapper.orderByDesc(ExceedSpaceScene::getCreateTime);
  42. return this.list(wrapper);
  43. }
  44. @Override
  45. public ExceedSpaceScene getByUnicode(String unicode) {
  46. LambdaQueryWrapper<ExceedSpaceScene> wrapper = new LambdaQueryWrapper<>();
  47. wrapper.eq(ExceedSpaceScene::getUnicode,unicode);
  48. List<ExceedSpaceScene> list = this.list(wrapper);
  49. if(list == null || list.size() <=0){
  50. return null;
  51. }
  52. return list.get(0);
  53. }
  54. @Override
  55. public void recoveredSpaceByCameraId(Long cameraId) {
  56. }
  57. @Override
  58. public void recoveredSpaceByCameraId(CameraDetail cameraDetail,UserIncrement userIncrement) {
  59. if("SP".equals(cameraDetail.getUnit())){
  60. List<ExceedSpaceScene> list = this.getExByCameraId(cameraDetail.getCameraId());
  61. IncrementType incrementType = incrementTypeService.getById(userIncrement.getIncrementTypeId());
  62. if(incrementType.getCameraSpace() == -1){
  63. this.recoveredSpaceAll(cameraDetail.getCameraId());
  64. return;
  65. }
  66. Long cameraSpace = Long.valueOf(incrementType.getCameraSpace());
  67. if(cameraSpace >= cameraDetail.getUsedSpace() + list.size()){
  68. this.recoveredSpaceAll(cameraDetail.getCameraId());
  69. }
  70. Long num = cameraSpace - cameraDetail.getUsedSpace();
  71. this.recoveredSpace(list,num);
  72. }
  73. }
  74. private void recoveredSpaceAll(Long cameraId) {
  75. LambdaUpdateWrapper<ExceedSpaceScene> wrapper = new LambdaUpdateWrapper<>();
  76. wrapper.eq(ExceedSpaceScene::getCameraId,cameraId);
  77. this.update(wrapper);
  78. }
  79. private void recoveredSpace(List<ExceedSpaceScene> list, Long num) {
  80. if(num <=0){
  81. return;
  82. }
  83. if(num >list.size()){
  84. num = (long) list.size();
  85. }
  86. for (int i = 0; i<num; i++){
  87. ExceedSpaceScene exceedSpaceScene = list.get(i);
  88. exceedSpaceScene.setUpdateTime(null);
  89. this.updateById(exceedSpaceScene);
  90. // this.updateOssStatus(exceedSpaceScene.getNum());
  91. }
  92. }
  93. private void updateOssStatus(String num) {
  94. String v3StatusJson = String.format(OssPath.v3_statusPath, num);
  95. String v4StatusJson = String.format(OssPath.v4_statusPath, num);
  96. String statusJson = null;
  97. String path = null;
  98. if(fYunFileServiceInterface.fileExist(v3StatusJson)){
  99. statusJson = fYunFileServiceInterface.getFileContent(v3StatusJson);
  100. path = v3StatusJson;
  101. }
  102. if(fYunFileServiceInterface.fileExist(v4StatusJson)){
  103. statusJson = fYunFileServiceInterface.getFileContent(v4StatusJson);
  104. path = v4StatusJson;
  105. }
  106. try {
  107. JSONObject jsonObject = JSONObject.parseObject(statusJson);
  108. jsonObject.put("status",0);
  109. String json = JSONUtil.toJsonStr(jsonObject);
  110. FileUtils.writeFile(OssPath.localStatusPath ,json);
  111. log.info("updateOssStatus--localPath:{},ossPath:{},status:{}",OssPath.localStatusPath,path,0);
  112. fYunFileServiceInterface.uploadFile(OssPath.localStatusPath,path);
  113. }catch (Exception e){
  114. log.error("updateOssStatus--localPath:{},ossPath:{},status:{},error:{}",OssPath.localStatusPath,path,0,e);
  115. }finally {
  116. FileUtil.delFile(OssPath.localStatusPath);
  117. }
  118. }
  119. }