package com.fdkankan.ucenter.service.impl;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.fdkankan.common.util.FileUtils;
import com.fdkankan.fyun.face.FYunFileServiceInterface;
import com.fdkankan.ucenter.common.FileUtil;
import com.fdkankan.ucenter.common.OssPath;
import com.fdkankan.ucenter.entity.CameraDetail;
import com.fdkankan.ucenter.entity.ExceedSpaceScene;
import com.fdkankan.ucenter.entity.IncrementType;
import com.fdkankan.ucenter.entity.UserIncrement;
import com.fdkankan.ucenter.mapper.IExceedSpaceSceneMapper;
import com.fdkankan.ucenter.service.IExceedSpaceSceneService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.ucenter.service.IIncrementTypeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
*
* 超出容量场景码表 服务实现类
*
*
* @author
* @since 2023-06-30
*/
@Service
@Slf4j
public class ExceedSpaceSceneServiceImpl extends ServiceImpl implements IExceedSpaceSceneService {
@Autowired
IIncrementTypeService incrementTypeService;
@Autowired
FYunFileServiceInterface fYunFileServiceInterface;
@Override
public List getExByCameraId(Long cameraId) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ExceedSpaceScene::getCameraId,cameraId);
wrapper.orderByDesc(ExceedSpaceScene::getCreateTime);
return this.list(wrapper);
}
@Override
public ExceedSpaceScene getByUnicode(String unicode) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ExceedSpaceScene::getUnicode,unicode);
List list = this.list(wrapper);
if(list == null || list.size() <=0){
return null;
}
return list.get(0);
}
@Override
public void recoveredSpaceByCameraId(Long cameraId) {
}
@Override
public void recoveredSpaceByCameraId(CameraDetail cameraDetail,UserIncrement userIncrement) {
if("SP".equals(cameraDetail.getUnit())){
List list = this.getExByCameraId(cameraDetail.getCameraId());
IncrementType incrementType = incrementTypeService.getById(userIncrement.getIncrementTypeId());
if(incrementType.getCameraSpace() == -1){
this.recoveredSpaceAll(cameraDetail.getCameraId());
return;
}
Long cameraSpace = Long.valueOf(incrementType.getCameraSpace());
if(cameraSpace >= cameraDetail.getUsedSpace() + list.size()){
this.recoveredSpaceAll(cameraDetail.getCameraId());
}
Long num = cameraSpace - cameraDetail.getUsedSpace();
this.recoveredSpace(list,num);
}
}
private void recoveredSpaceAll(Long cameraId) {
LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(ExceedSpaceScene::getCameraId,cameraId);
this.update(wrapper);
}
private void recoveredSpace(List list, Long num) {
if(num <=0){
return;
}
if(num >list.size()){
num = (long) list.size();
}
for (int i = 0; i