|  |  |  | 
|---|
|  |  |  | import com.doumee.config.annotation.CloudRequiredPermission; | 
|---|
|  |  |  | import com.doumee.config.annotation.LoginNoRequired; | 
|---|
|  |  |  | import com.doumee.core.annotation.pr.PreventRepeat; | 
|---|
|  |  |  | import com.doumee.core.haikang.model.param.BaseResponse; | 
|---|
|  |  |  | import com.doumee.core.haikang.model.param.request.*; | 
|---|
|  |  |  | import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest; | 
|---|
|  |  |  | import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.doumee.core.utils.Constants; | 
|---|
|  |  |  | import com.doumee.core.utils.DESUtil; | 
|---|
|  |  |  | import com.doumee.dao.business.model.Device; | 
|---|
|  |  |  | import com.doumee.service.business.DeviceService; | 
|---|
|  |  |  | import com.doumee.service.business.impl.hksync.*; | 
|---|
|  |  |  | import io.swagger.annotations.Api; | 
|---|
|  |  |  | import io.swagger.annotations.ApiImplicitParam; | 
|---|
|  |  |  | import io.swagger.annotations.ApiImplicitParams; | 
|---|
|  |  |  | import io.swagger.annotations.ApiOperation; | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  | import org.apache.commons.lang3.StringUtils; | 
|---|
|  |  |  | import org.apache.shiro.authz.annotation.RequiresPermissions; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.data.redis.core.RedisTemplate; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import javax.servlet.http.HttpServletRequest; | 
|---|
|  |  |  | import javax.servlet.http.HttpServletResponse; | 
|---|
|  |  |  | import java.io.BufferedReader; | 
|---|
|  |  |  | import java.util.ArrayList; | 
|---|
|  |  |  | import java.util.HashMap; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.util.Map; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * @author 江蹄蹄 | 
|---|
|  |  |  | * @date 2023/11/30 15:33 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Api(tags = "海康数据同步接口") | 
|---|
|  |  |  | @RestController | 
|---|
|  |  |  | @Slf4j | 
|---|
|  |  |  | @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/hksync") | 
|---|
|  |  |  | public class HkSyncCloudController extends BaseController { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SystemDictDataBiz systemDictDataBiz; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private DeviceService deviceService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private RedisTemplate<String,Object> redisTemplate; | 
|---|
|  |  |  | 
|---|
|  |  |  | String result = hkSyncPushService.dealVisitEventIccm(param,response); | 
|---|
|  |  |  | return ApiResponse.success(result); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @ApiOperation("【海康】测试LED显示屏") | 
|---|
|  |  |  | @PostMapping("/testLed") | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | public ApiResponse<BaseResponse> testLed(@RequestBody TransparentChannelBodyRequest request, HttpServletResponse response) { | 
|---|
|  |  |  | TransparentChannelHeadRequest head = new TransparentChannelHeadRequest(); | 
|---|
|  |  |  | head.setAbility("cld");//固定值 | 
|---|
|  |  |  | head.setTreatyType("haixuan_led_net");//固定值 | 
|---|
|  |  |  | head.setDeviceIndexCode("6a5498e9df924befbb9530e467e5e809"); | 
|---|
|  |  |  | return ApiResponse.success(HKService.transparentchannel(head,request)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @ApiOperation("【海康】测试广播播报") | 
|---|
|  |  |  | @PostMapping("/testBroadcast") | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | public ApiResponse<BaseResponse> testBroadcast(@RequestBody CustomBroadcastRequest request, HttpServletResponse response) { | 
|---|
|  |  |  | return ApiResponse.success(  HKService.customBroadcast(request)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //    @PreventRepeat | 
|---|
|  |  |  | @ApiOperation("【海康】停车场事件订阅推送对接处理接口") | 
|---|
|  |  |  | @PostMapping("/push/parks") | 
|---|
|  |  |  | 
|---|
|  |  |  | String result = hkSyncPushService.dealPlatformCarsEvent(param,response); | 
|---|
|  |  |  | return ApiResponse.success(result); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @ApiOperation("【海康test】月台车辆状态事件订阅推送对接处理接口") | 
|---|
|  |  |  | @PostMapping("/push/platform/carstatusTest") | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | public ApiResponse pushPlatformCarStatus(HttpServletRequest request, HttpServletResponse response ){ | 
|---|
|  |  |  | doPringParam(request,"【海康test】月台车辆状态事件订阅推送对接处理接口:\n"); | 
|---|
|  |  |  | return ApiResponse.success(null); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public   void doPringParam(HttpServletRequest request,String name) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | StringBuilder data =new StringBuilder(); | 
|---|
|  |  |  | String line; | 
|---|
|  |  |  | BufferedReader reader =request.getReader(); | 
|---|
|  |  |  | while(null !=(line = reader.readLine())) { | 
|---|
|  |  |  | data.append(line); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(StringUtils.isNotBlank( data.toString())){ | 
|---|
|  |  |  | log.info(name+"=================参数:"+ data.toString()); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | log.info(name+"=================:参数为空"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | log.info(name+"================= 参数异常:"+e.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @PreventRepeat | 
|---|
|  |  |  | @ApiOperation("【海康】取消订阅事件") | 
|---|
|  |  |  | @PostMapping("/cancelEventSub") | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 访客来访配置 | 
|---|
|  |  |  | * 获取安防平台系统免密菜单调整地址 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ApiOperation(value = "获取安防平台系统免密菜单调整地址" ) | 
|---|
|  |  |  | 
|---|
|  |  |  | String hkToken = DESUtil.generateTokenToHk(loginUserInfo.getUsername(),Integer.valueOf( | 
|---|
|  |  |  | systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_TOKEN_VALIDITY).getCode() | 
|---|
|  |  |  | ),redisTemplate); | 
|---|
|  |  |  | return ApiResponse.success( HKService.getMenuUrl(type,hkToken)); | 
|---|
|  |  |  | String url = systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_HTTPS).getCode() + | 
|---|
|  |  |  | systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_HOST).getCode() | 
|---|
|  |  |  | + HKService.getMenuUrl(type,hkToken); | 
|---|
|  |  |  | return ApiResponse.success( url); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @ApiOperation("【海康】设置LED屏文案") | 
|---|
|  |  |  | @PostMapping("/setLedContent") | 
|---|
|  |  |  | public ApiResponse<List<Map<String,Object>>> setLedContent(@RequestBody TransparentChannelSingleRequest body  , HttpServletResponse response) { | 
|---|
|  |  |  | deviceService.setLedContent(body); | 
|---|
|  |  |  | return ApiResponse.success(null); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|