package com.fdkankan.contro.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fdkankan.common.constant.CameraConstant;
import com.fdkankan.common.exception.BusinessException;
import com.fdkankan.contro.entity.Camera;
import com.fdkankan.contro.entity.SceneUploadCount;
import com.fdkankan.contro.mapper.ISceneUploadCountMapper;
import com.fdkankan.contro.service.ICameraService;
import com.fdkankan.contro.service.ISceneUploadCountService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.contro.vo.SceneUploadCountParamVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Objects;
/**
*
* app触发场景上传统计表 服务实现类
*
*
* @author
* @since 2024-05-20
*/
@Service
public class SceneUploadCountServiceImpl extends ServiceImpl implements ISceneUploadCountService {
@Autowired
private ICameraService cameraService;
@Override
public void increSceneUploadCount(SceneUploadCountParamVO param) {
String uuid = param.getUuid();
String snCode = uuid.split("_")[0];
Camera camera = cameraService.getBySnCode(snCode);
if (camera == null) {
throw new BusinessException(CameraConstant.FAILURE_6003);
}
SceneUploadCount sceneUploadCount = this.getByUUid(uuid);
if(Objects.isNull(sceneUploadCount)){
sceneUploadCount = new SceneUploadCount();
sceneUploadCount.setUuid(uuid);
sceneUploadCount.setSnCode(snCode);
sceneUploadCount.setCount(1);
}else{
sceneUploadCount.setCount(sceneUploadCount.getCount() + 1);
}
this.saveOrUpdate(sceneUploadCount);
}
@Override
public void resetCountByUuid(String uuid) {
SceneUploadCount sceneUploadCount = this.getByUUid(uuid);
if(Objects.isNull(sceneUploadCount)){
return;
}
sceneUploadCount.setCount(0);
this.updateById(sceneUploadCount);
}
@Override
public SceneUploadCount getByUUid(String uuid) {
return this.getOne(new LambdaQueryWrapper().eq(SceneUploadCount::getUuid, uuid));
}
}