package com.fdkankan.contro.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.common.constant.SpaceType;
import com.fdkankan.contro.constant.ApiConstant;
import com.fdkankan.contro.entity.Camera;
import com.fdkankan.contro.entity.CameraDetail;
import com.fdkankan.contro.httpclient.MyClient;
import com.fdkankan.contro.mapper.ICameraMapper;
import com.fdkankan.contro.service.ICameraDetailService;
import com.fdkankan.contro.service.ICameraService;
import com.fdkankan.contro.service.IScenePlusService;
import com.fdkankan.contro.service.ISceneProService;
import com.fdkankan.web.response.ResultData;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
/**
*
* 相机主表 服务实现类
*
*
* @author
* @since 2021-12-24
*/
@Slf4j
@Service
public class CameraServiceImpl extends ServiceImpl implements ICameraService {
@Value("${4dkk.fdService.basePath}")
private String fdServiceUrl;
@Resource
private MyClient myClient;
@Autowired
private IScenePlusService scenePlusService;
@Autowired
private ISceneProService sceneProService;
@Autowired
private ICameraDetailService cameraDetailService;
@Override
public Camera getByChildName(String childName){
return this.getOne(new LambdaQueryWrapper().eq(Camera::getChildName,childName));
}
@Override
public Camera getBySnCode(String snCode) {
return this.getOne(new LambdaQueryWrapper().eq(Camera::getSnCode,snCode));
}
@Override
public Long getUsedSpace(Long cameraId, String spaceTypeStr) {
return sceneProService.sumUsedSpaceByCameraId(cameraId, spaceTypeStr)
+ scenePlusService.sumUsedSpaceByCameraId(cameraId, spaceTypeStr);
}
@Override
public Map instorage(int camType, String snCode) {
String cameraInStoreUrl = fdServiceUrl + ApiConstant.URL_CAMERA_INSTORE;
Map cameraInStoreParams = new HashMap<>();
cameraInStoreParams.put("cameraType", camType);
cameraInStoreParams.put("snCode", snCode);
ResultData post = myClient.post(cameraInStoreUrl, cameraInStoreParams);
log.info("---------cameraInStore result:{}-----------", post);
Camera camera = this.getBySnCode(snCode);
CameraDetail cameraDetail = cameraDetailService.getByCameraId(camera.getId());
Map result = new HashMap<>();
result.put("camera", camera);
result.put("cameraDetail", cameraDetail);
return result;
}
}