From 330fcece11892289f2936ec8e11e4c8a610d5bab Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期三, 15 十月 2025 10:30:07 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wuhuyancao' into wuhuyancao
---
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java | 187 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 185 insertions(+), 2 deletions(-)
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
index 847cb74..65d569e 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
@@ -1,9 +1,13 @@
package com.doumee.cloud.admin;
+import com.alibaba.fastjson.JSONObject;
import com.doumee.api.BaseController;
+import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.config.annotation.CloudRequiredPermission;
import com.doumee.config.annotation.LoginNoRequired;
+import com.doumee.config.jwt.JwtProperties;
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;
@@ -11,24 +15,41 @@
import com.doumee.core.haikang.model.param.request.event.parks.EventPlatformRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
-import com.doumee.core.model.ApiResponse;
+import com.doumee.core.haikang.model.param.respose.PageRegionInfoResponse;
+import com.doumee.core.haikang.service.HKService;
+import com.doumee.dao.web.response.platformReport.CarmeraListVO;
+import com.doumee.service.business.third.BoardService;
+import com.doumee.service.business.third.model.ApiResponse;
+import com.doumee.service.business.third.model.LoginUserInfo;
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 com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import java.io.BufferedReader;
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+
/**
* @author 姹熻箘韫�
* @date 2023/11/30 15:33
*/
@Api(tags = "娴峰悍鏁版嵁鍚屾鎺ュ彛")
@RestController
+@Slf4j
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/hksync")
public class HkSyncCloudController extends BaseController {
@@ -37,13 +58,31 @@
@Autowired
private HkSyncDeviceServiceImpl hkSyncDeviceService;
@Autowired
+ private BoardService boardService;
+ @Autowired
private HkSyncParkServiceImpl hkSyncParkService;
@Autowired
private HkSyncPrivilegeServiceImpl hkSyncPrivilegeService;
@Autowired
private HkSyncPushServiceImpl hkSyncPushService;
@Autowired
+ private HkSyncOrgUserToHKServiceImpl hkSyncOrgUserToHKService;
+ @Autowired
+ private HkSyncNoticeServiceImpl hkSyncNoticeService;
+ @Autowired
private HkSyncLoginAuthServiceImpl hkSyncLoginAuthService;
+
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+ @Autowired
+ private DeviceService deviceService;
+
+ @Autowired
+ private RedisTemplate<String,Object> redisTemplate;
+
+ @Autowired
+ private JwtProperties jwtProperties;
+
@PreventRepeat
@ApiOperation("銆愭捣搴枫�戝叏閲忓悓姝ユ湀鍙颁俊鎭帴鍙�")
@PostMapping("/syncPlatforms")
@@ -75,6 +114,21 @@
//鍚屾骞挎挱
result = hkSyncDeviceService.syncHkBroadcast(param);
}
+ return ApiResponse.success(result);
+ }
+ @PreventRepeat
+ @ApiOperation("銆愭捣搴枫�戜繚瀛樻捣搴风敤鎴风粦瀹歰penid")
+ @PostMapping("/saveHkUserOpenid")
+ public ApiResponse syncHkUserOpenid( @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ String result = hkSyncOrgUserToHKService.syncHkUserOpenid(this.getLoginUser(token).getId());
+ return ApiResponse.success(result);
+ }
+ @PreventRepeat
+ @ApiOperation("銆愭捣搴枫�戞竻绌烘捣搴风敤鎴风粦瀹歰penid")
+ @PostMapping("/delHkUserOpenid")
+ @LoginNoRequired
+ public ApiResponse delHkUserOpenid( @RequestBody UserOpenidSaveRequest param){
+ String result = hkSyncOrgUserToHKService.delHkUserOpenid(param);
return ApiResponse.success(result);
}
@PreventRepeat
@@ -124,6 +178,22 @@
String result = hkSyncPushService.dealVisitEventIccm(param,response);
return ApiResponse.success(result);
}
+ @ApiOperation("銆愭捣搴枫�戞祴璇昄ED鏄剧ず灞�")
+ @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")
@@ -146,6 +216,31 @@
String result = hkSyncPushService.dealPlatformCarsEvent(param,response);
return ApiResponse.success(result);
}
+ @ApiOperation("銆愭捣搴穞est銆戞湀鍙拌溅杈嗙姸鎬佷簨浠惰闃呮帹閫佸鎺ュ鐞嗘帴鍙�")
+ @PostMapping("/push/platform/carstatusTest")
+ @LoginNoRequired
+ public ApiResponse pushPlatformCarStatus(HttpServletRequest request, HttpServletResponse response ){
+ doPringParam(request,"銆愭捣搴穞est銆戞湀鍙拌溅杈嗙姸鎬佷簨浠惰闃呮帹閫佸鎺ュ鐞嗘帴鍙�:\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")
@@ -154,4 +249,92 @@
hkSyncPushService.cancelEventSub();
return ApiResponse.success(null);
}
+
+ /**
+ * 鑾峰彇瀹夐槻骞冲彴绯荤粺鍏嶅瘑鑿滃崟璋冩暣鍦板潃
+ * @return
+ */
+ @ApiOperation(value = "鑾峰彇瀹夐槻骞冲彴绯荤粺鍏嶅瘑鑿滃崟璋冩暣鍦板潃" )
+ @PostMapping("/getHkMenuLink/{type}")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type",example = "0",value = "鑿滃崟绫诲瀷", required = true),
+ })
+ public ApiResponse<String> getHkMenuLink(@PathVariable Integer type,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ LoginUserInfo loginUserInfo = this.getLoginUser(token);
+ String hkToken = DESUtil.generateTokenToHk(loginUserInfo.getUsername(),Integer.valueOf(
+ systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_TOKEN_VALIDITY).getCode()
+ ),redisTemplate);
+ String url = (systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_HTTPS).getCode() +
+ systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_HOST).getCode())
+ + HKService.getMenuUrl(type,hkToken);
+ try {
+ if(redisTemplate!=null&& jwtProperties!=null){
+ loginUserInfo.setHkMenuToken(hkToken);
+ redisTemplate.opsForValue().set(Constants.REDIS_TOKEN_KEY+token, JSONObject.toJSONString(loginUserInfo),jwtProperties.getExpiration(), TimeUnit.MILLISECONDS);
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+
+ return ApiResponse.success( url);
+ }
+
+ @ApiOperation(value = "鑾峰彇瀹夐槻骞冲彴绯荤粺鍏嶅瘑鑿滃崟閰嶇疆" )
+ @GetMapping("/getHkMenuConfig")
+ public ApiResponse<List<Integer>> getHkMenuConfig(@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ LoginUserInfo loginUserInfo = getLoginUser(token);
+ List<Integer> menuConfigList = new ArrayList<>();
+ if(Objects.nonNull(loginUserInfo) && StringUtils.isNotBlank(loginUserInfo.getUsername())){
+ menuConfigList = hkSyncPlatformsService.getMenuConfig(loginUserInfo.getUsername());
+ }
+ return ApiResponse.success(menuConfigList);
+ }
+
+
+ @ApiOperation("銆愭捣搴枫�戜唬鍔炴秷鎭暟鎹泦鍚堝鎺ュ鐞嗘帴鍙�")
+ @PostMapping("/notice/getList")
+ public ApiResponse getNoticeList( HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token ){
+ String result = hkSyncNoticeService.syncHkNotices(this.getLoginUser(token).getUsername());
+ return ApiResponse.success(result);
+ }
+
+ @ApiOperation("銆愭捣搴枫�戣幏鍙栧叏閮ㄧ洃鎺у尯鍩熸爲褰㈢粨鏋�")
+ @PostMapping("/regionList")
+ public ApiResponse<List<PageRegionInfoResponse> > getRegionList(HttpServletResponse response, @RequestHeader(Constants.HEADER_USER_TOKEN) String token ){
+ CarmeraListVO param =new CarmeraListVO();
+ param.setWithCameras(0);
+ List<PageRegionInfoResponse> result = new ArrayList<>();
+ try {
+// result = boardService.getRegionTree( param);
+ //------TODO---------娴嬭瘯妯℃嫙鏁版嵁----start-----
+ for (int i = 0; i < 5; i++) {
+ PageRegionInfoResponse t = new PageRegionInfoResponse();
+ t.setName("鎬诲尯鍩焈"+i);
+ t.setIndexCode(i+"_code");
+ t.setChildList(new ArrayList<>());
+ for (int j = 0; j < 5; j++) {
+ PageRegionInfoResponse t1 = new PageRegionInfoResponse();
+ t1.setName("瀛愬尯鍩焈"+i+"_"+j);
+ t1.setIndexCode(i+"_"+j+"_ChildCode");
+ t1.setParentIndexCode(t.getIndexCode());
+ t.getChildList().add(t1);
+ }
+ result.add(t);
+ }
+ //------TODO---------娴嬭瘯妯℃嫙鏁版嵁----end-----
+ }catch (Exception e){
+
+ }
+ return ApiResponse.success(result);
+ }
+
+
+
+ @ApiOperation("銆愭捣搴枫�戣缃甃ED灞忔枃妗�")
+ @PostMapping("/setLedContent")
+ public ApiResponse<List<Map<String,Object>>> setLedContent(@RequestBody TransparentChannelSingleRequest body , HttpServletResponse response) {
+ deviceService.setLedContent(body);
+ return ApiResponse.success(null);
+ }
+
}
--
Gitblit v1.9.3