package com.fdkankan.fusion.httpClient; import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; import com.fdkankan.fusion.common.ResultCode; import com.fdkankan.fusion.common.util.RedisKeyUtil; import com.fdkankan.fusion.entity.TmCamera; import com.fdkankan.fusion.exception.BusinessException; import com.fdkankan.fusion.httpClient.client.FdKKClient; import com.fdkankan.fusion.httpClient.client.TakeLookClient; import com.fdkankan.fusion.httpClient.request.FdRoomAddParam; import com.fdkankan.fusion.httpClient.request.FdkkCameraParam; import com.fdkankan.fusion.httpClient.request.FdkkDelNumParam; import com.fdkankan.fusion.httpClient.response.FdRoomVo; import com.fdkankan.fusion.httpClient.response.FdkkLoginVo; import com.fdkankan.fusion.httpClient.response.FdkkResponse; import com.fdkankan.fusion.response.CameraVo; import com.fdkankan.redis.util.RedisUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @Service public class FdService { @Autowired RedisUtil redisUtil; @Autowired FdKKClient fdKKClient; @Autowired TakeLookClient takeLookClient; public String getFdToken(String fusionToken){ String jsObj = redisUtil.get(String.format(RedisKeyUtil.fusionLoginToken, fusionToken)); FdkkLoginVo vo = JSONObject.parseObject(jsObj, FdkkLoginVo.class); if(vo == null){ throw new BusinessException(ResultCode.USER_NOT_LOGIN); } return vo.getFdToken(); } public String getFdToken(){ String jsObj = redisUtil.get(String.format(RedisKeyUtil.fusionLoginToken, StpUtil.getTokenValue())); FdkkLoginVo vo = JSONObject.parseObject(jsObj, FdkkLoginVo.class); if(vo == null){ throw new BusinessException(ResultCode.USER_NOT_LOGIN); } return vo.getFdToken(); } public String getFdTokenByUserName(String userName) { return null; } public FdkkResponse fdkkUnbind(List cameras) { List cameraIds = cameras.stream().map(TmCamera::getFdCameraId).collect(Collectors.toList()); String ids = StringUtils.join(cameraIds, ","); FdkkCameraParam request = new FdkkCameraParam(ids); return fdKKClient.fdkkUnbind(request,this.getFdToken()); } public FdkkResponse getCameraDetail(String snCode) { FdkkCameraParam request = new FdkkCameraParam(snCode,snCode); return fdKKClient.fdkkCameraDetail(request,getFdToken()); } public FdkkResponse> getCameraDetails(List snCodes) { FdkkCameraParam request = new FdkkCameraParam(snCodes); return fdKKClient.fdkkCameraDetails(request,getFdToken()); } public FdkkResponse fdkKBind(String cameraSn,String userName) { FdkkCameraParam request = new FdkkCameraParam(cameraSn,cameraSn,userName); return fdKKClient.fdkKBind(request,getFdToken()); } public Object getFdTokenByNum(String num) { return fdKKClient.getFdTokenByNum(num,getFdToken()); } public FdkkResponse fdCreateTakeLookRoom(String caseTitle,List numList,String roomId) { FdRoomAddParam param = new FdRoomAddParam(); param.setRoomTitle(caseTitle); param.setNumList(numList); param.setRoomId(roomId); param.setMaxMan(30); param.setUseStartTime(new Date()); param.setUseEndTime(DateUtil.parse("2038-01-19 03:14:07","yyyy-MM-dd HH:mm:ss")); param.setPlatform("fd"); return takeLookClient.roomAddOrUpdate(param,getFdToken()); } public void fdOpenTakeLookRoom(String takeRoomId) { takeLookClient.openRoom(takeRoomId,getFdToken()); } public void deleteNum(String num) { fdKKClient.deleteNum(new FdkkDelNumParam(num),getFdToken()); } }