xinagyan 3 жил өмнө
parent
commit
50cadc83eb
87 өөрчлөгдсөн 1862 нэмэгдсэн , 1107 устгасан
  1. 1 1
      cms/src/main/resources/static/ftl/fzzd/dhl/hdgn/wjll.ftl
  2. 1 1
      spring-cloud/configer/src/main/resources/config/dev/threeapi-dev.yml
  3. 1 1
      spring-cloud/configer/src/main/resources/config/prod/threeapi-prod.yml
  4. 2 1
      spring-cloud/server-basic/src/main/java/com/jd/configer/ResourceServerConfig.java
  5. 22 1
      spring-cloud/server-basic/src/main/java/com/jd/controller/FlatController.java
  6. 11 1
      spring-cloud/server-basic/src/main/java/com/jd/controller/SafetyInforController.java
  7. 0 1
      spring-cloud/server-basic/src/main/java/com/jd/controller/SsoSystemController.java
  8. 43 0
      spring-cloud/server-basic/src/main/java/com/jd/controller/SsoUserController.java
  9. 0 5
      spring-cloud/server-basic/src/main/java/com/jd/controller/WebAttackTypeController.java
  10. 35 0
      spring-cloud/server-basic/src/main/java/com/jd/hystrix/ThreeApiHystrix.java
  11. 16 9
      spring-cloud/server-basic/src/main/java/com/jd/mapper/SsoSystemMapper.java
  12. 15 0
      spring-cloud/server-basic/src/main/java/com/jd/mapper/SsoUserMapper.java
  13. 1 1
      spring-cloud/server-basic/src/main/java/com/jd/mapper/WebAttackTypeMapper.java
  14. 7 0
      spring-cloud/server-basic/src/main/java/com/jd/service/SafetyInfoService.java
  15. 20 0
      spring-cloud/server-basic/src/main/java/com/jd/service/SsoUserService.java
  16. 0 5
      spring-cloud/server-basic/src/main/java/com/jd/service/WebAttackTypeService.java
  17. 144 11
      spring-cloud/server-basic/src/main/java/com/jd/service/impl/SafetyInfoServiceImpl.java
  18. 80 0
      spring-cloud/server-basic/src/main/java/com/jd/service/impl/SsoUserServiceImpl.java
  19. 0 25
      spring-cloud/server-basic/src/main/java/com/jd/service/impl/WebAttackTypeServiceImpl.java
  20. 17 8
      spring-cloud/server-basic/src/main/resources/mapper/SsoSystemMapper.xml
  21. 9 0
      spring-cloud/server-basic/src/main/resources/mapper/SsoUserMapper.xml
  22. 1 2
      spring-cloud/server-basic/src/main/resources/mapper/WebAttackTypeMapper.xml
  23. 10 10
      spring-cloud/server-page/src/main/resources/static/ipad/js/constant.js
  24. 2 2
      spring-cloud/server-page/src/main/resources/static/ipad/login_sw.html
  25. 87 85
      spring-cloud/server-page/src/main/resources/static/lbzd/css/index_lbfz.css
  26. 79 41
      spring-cloud/server-page/src/main/resources/static/lbzd/css/indexb.css
  27. 9 4
      spring-cloud/server-page/src/main/resources/static/lbzd/css/style.css
  28. 11 8
      spring-cloud/server-page/src/main/resources/static/lbzd/css/ztzs.css
  29. 8 4
      spring-cloud/server-page/src/main/resources/static/lbzd/font/iconfont.css
  30. 0 0
      spring-cloud/server-page/src/main/resources/static/lbzd/font/iconfont.js
  31. 0 51
      spring-cloud/server-page/src/main/resources/static/lbzd/font/iconfont.json
  32. BIN
      spring-cloud/server-page/src/main/resources/static/lbzd/font/iconfont.ttf
  33. BIN
      spring-cloud/server-page/src/main/resources/static/lbzd/font/iconfont.woff
  34. BIN
      spring-cloud/server-page/src/main/resources/static/lbzd/font/iconfont.woff2
  35. BIN
      spring-cloud/server-page/src/main/resources/static/lbzd/img/1.png
  36. BIN
      spring-cloud/server-page/src/main/resources/static/lbzd/img/2.png
  37. BIN
      spring-cloud/server-page/src/main/resources/static/lbzd/img/3.png
  38. BIN
      spring-cloud/server-page/src/main/resources/static/lbzd/img/4.png
  39. BIN
      spring-cloud/server-page/src/main/resources/static/lbzd/img/5.png
  40. BIN
      spring-cloud/server-page/src/main/resources/static/lbzd/img/bg.png
  41. BIN
      spring-cloud/server-page/src/main/resources/static/lbzd/img/kk.png
  42. BIN
      spring-cloud/server-page/src/main/resources/static/lbzd/img/left.png
  43. BIN
      spring-cloud/server-page/src/main/resources/static/lbzd/img/licheng.png
  44. BIN
      spring-cloud/server-page/src/main/resources/static/lbzd/img/licheng1.png
  45. BIN
      spring-cloud/server-page/src/main/resources/static/lbzd/img/pdf.png
  46. BIN
      spring-cloud/server-page/src/main/resources/static/lbzd/img/right.png
  47. BIN
      spring-cloud/server-page/src/main/resources/static/lbzd/img/sp.png
  48. BIN
      spring-cloud/server-page/src/main/resources/static/lbzd/img/tp.png
  49. BIN
      spring-cloud/server-page/src/main/resources/static/lbzd/img/wj.png
  50. 148 16
      spring-cloud/server-page/src/main/resources/static/lbzd/indexb.html
  51. 8 6
      spring-cloud/server-page/src/main/resources/static/lbzd/js/xczs.js
  52. 96 172
      spring-cloud/server-page/src/main/resources/static/lbzd/wjll.html
  53. 61 33
      spring-cloud/server-page/src/main/resources/static/lbzd/wjts.html
  54. 176 149
      spring-cloud/server-page/src/main/resources/static/lbzd/xczs.html
  55. 4 16
      spring-cloud/server-page/src/main/resources/static/lbzd/ztzs.html
  56. 1 0
      spring-cloud/server-page/src/main/resources/static/page/js/basic/safetyInfoManager.js
  57. 7 5
      spring-cloud/server-page/src/main/resources/static/page/js/basic/systemRisk.js
  58. 3 0
      spring-cloud/server-page/src/main/resources/static/page/login.html
  59. 125 101
      spring-cloud/server-page/src/main/resources/static/sso/js/basic/login.js
  60. 1 1
      spring-cloud/server-page/src/main/resources/static/sso/login.html
  61. 5 14
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test10/test10.css
  62. 2 1
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test3/test3.css
  63. 1 1
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test32/test32.css
  64. 3 2
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test33/test33.js
  65. 18 3
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test35/test35.js
  66. 46 114
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test36/test36 copy.js
  67. 6 15
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test36/test36.js
  68. 17 24
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test43/test43.js
  69. 4 3
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test44/test44.js
  70. 3 11
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test45/test45.css
  71. 2 2
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test45/test45.html
  72. 1 1
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test45/test45.js
  73. 2 2
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test49/test49.html
  74. 7 7
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test50/test50.js
  75. 1 1
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test51/test51.html
  76. 46 9
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test61/test61.css
  77. 8 9
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test61/test61.html
  78. 6 1
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test61/test61.js
  79. 25 0
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/css/coom.css
  80. BIN
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/css/modules/layer/default/色相饱和度1854.png
  81. BIN
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/images/图层 789 copy.png
  82. 23 0
      spring-cloud/server-page/src/main/resources/static/testEcharts/test/main/css/main.css
  83. 6 2
      spring-cloud/server-threeapi/src/main/java/com/jd/controller/ApiUrlController.java
  84. 2 0
      spring-cloud/server-threeapi/src/main/java/com/jd/service/ApiUrlService.java
  85. 36 0
      spring-cloud/server-threeapi/src/main/java/com/jd/service/impl/ApiUrlServiceImpl.java
  86. 193 0
      spring-cloud/server-threeapi/src/main/java/com/jd/util/GisUtil.java
  87. 137 108
      xiaoniaoServer/src/main/java/com/jd/xiaoniao/api/XiaoniaoApi.java

+ 1 - 1
cms/src/main/resources/static/ftl/fzzd/dhl/hdgn/wjll.ftl

@@ -342,7 +342,7 @@
     function getFileListForQYY() {
         $.ajax({
             type: 'get',
-            url: HOME_PATH + 'cms/files/getQYYFiles',
+            url: FLAT_PATH_BASIC + 'flat/getQYYFiles',
             dataType: 'json',
             data: {
                 current: 1,

+ 1 - 1
spring-cloud/configer/src/main/resources/config/dev/threeapi-dev.yml

@@ -17,4 +17,4 @@ mybatis:
         
 contrl:
   # 设置连接超时,单位:毫秒
-    connection-timeout: 5000
+  connection-timeout: 5000

+ 1 - 1
spring-cloud/configer/src/main/resources/config/prod/threeapi-prod.yml

@@ -17,4 +17,4 @@ mybatis:
         
 contrl:
   # 设置连接超时,单位:毫秒
-    connection-timeout: 5000
+  connection-timeout: 5000

+ 2 - 1
spring-cloud/server-basic/src/main/java/com/jd/configer/ResourceServerConfig.java

@@ -40,7 +40,8 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
 					,"/AttackType/getAttackTypeByMonth","/SystemAttacked/getSystemAttackedByInfo","/safetyInfor/getWebSafetyStatusByOrg"
 					,"/OfficeVirus/getOfficeSafetyInfo","/AttackType/getAttackTypeByMonth","/SystemAttacked/getSystemAttackedByInfo","/businessSystem/getSystemInfoByVoiceKeyword"
 					,"/GuaranteeGroup/getAllGuaranteeGroup","/SystemRisk/GetSystemRiskList","/SystemRisk/getSysInfoByOffice","/monitoringResources/getMonitorListByName","/monitoringResources/creatRelay","/monitoringResources/closeAllRelay"
-					,"/monitoringResources/getStreamForKaiKang","/flat/door/personRegister","/flat/sendMessage","/businessSystem/getSystemInfoByShow","/commandTranscription/insertCommandTranscription"
+					,"/monitoringResources/getStreamForKaiKang","/flat/door/personRegister","/flat/sendMessage","/businessSystem/getSystemInfoByShow","/commandTranscription/insertCommandTranscription","/ssoUser/userLogin","/flat/getQYYFiles"
+					,"/safetyInfor/analysisWebSafetyInfo","/safetyInfor/analysisSafetyStatus"
 					).permitAll().anyRequest()
 			.authenticated()
 		.and()

+ 22 - 1
spring-cloud/server-basic/src/main/java/com/jd/controller/FlatController.java

@@ -7,6 +7,7 @@ import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.HttpRequest;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSON;
 import com.jd.code.ConstString;
 import com.jd.entity.PersonCode;
 import com.jd.entity.basic.User;
@@ -19,8 +20,8 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -106,6 +107,26 @@ public class FlatController {
 	}
 
 
+	/**
+	 * 获取轻应用文件
+	 * @return
+	 */
+	@GetMapping("getQYYFiles")
+	public Map<String, Object> getQYYFiles(Integer current, Integer size) {
+		//调用http请求
+//		String url = "http://172.16.100.101:9876/sms/getQYYFiles";
+		String url = Convert.toStr(basicDataService.getOneBasicDataByType("QYYFILE_URL").get("data_value"));
+		Map<String, Object> param = new HashMap<>();
+		param.put("current", current);
+		param.put("size", size);
+		String body = HttpRequest.get(url).form(param).execute().body();
+		if (StrUtil.isNotBlank(body)) {
+			com.alibaba.fastjson.JSONObject jsonObject = JSON.parseObject(body);
+			com.alibaba.fastjson.JSONObject data = jsonObject.getJSONObject("data");
+			return SendUtil.send(true, ConstString.RESULT_SUCCESS, data);
+		}
+		return SendUtil.send(false);
+	}
 
 	/**
 	 * 发送短信验证码

+ 11 - 1
spring-cloud/server-basic/src/main/java/com/jd/controller/SafetyInforController.java

@@ -104,7 +104,16 @@ public class SafetyInforController {
     @GetMapping("analysisSafetyStatus")
     @ApiOperation(value = "查询门户网站安全态势")
     Map<String, Object> analysisSafetyStatus(String orgType){
-        return safetyInfoService.getWebSafetyStatusByOrg(orgType);
+        return safetyInfoService.analysisSafetyStatus(orgType);
+    }
+
+    @GetMapping("analysisWebSafetyInfo")
+    @ApiOperation(value = "查询门户网站安全态势")
+    Map<String, Object> analysisWebSafetyInfo(String orgType){
+        if (Blank.isEmpty(orgType)){
+            return SendUtil.send(false, ConstString.REQUEST_WRONGPARAMS);
+        }
+        return safetyInfoService.analysisWebSafetyInfo(orgType);
     }
 
     /**
@@ -167,4 +176,5 @@ public class SafetyInforController {
 
 
 
+
 }

+ 0 - 1
spring-cloud/server-basic/src/main/java/com/jd/controller/SsoSystemController.java

@@ -31,7 +31,6 @@ public class SsoSystemController  {
 
 	/**
 	 * 查询SSO业务系统列表
-	 * @param planId
 	 * @return
 	 */
 	@GetMapping("/getSsoSystemList")

+ 43 - 0
spring-cloud/server-basic/src/main/java/com/jd/controller/SsoUserController.java

@@ -0,0 +1,43 @@
+package com.jd.controller;
+
+import com.jd.code.ConstString;
+import com.jd.service.SsoUserService;
+import com.jd.util.Blank;
+import com.jd.util.SendUtil;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import io.swagger.annotations.ApiOperation;
+
+import java.util.Map;
+
+/**
+ * @author Admin
+ */
+@RestController
+@RequestMapping("ssoUser")
+@Api(value = "SSO用户管理", tags = {"SSO用户管理"})
+public class SsoUserController {
+
+    @Value("${security.oauth2.client.user.password}")
+    private String oauth2Pwd;
+
+    private final SsoUserService ssoUserService;
+
+    public SsoUserController(SsoUserService ssoUserService) {
+        this.ssoUserService = ssoUserService;
+    }
+
+    @PostMapping("userLogin")
+    @ApiOperation(value = "SSO用户登录")
+    public Map<String, Object> ssoUserLogin(String loginAccount, String loginPwd, String clientId, String redirect) {
+        if (Blank.isEmpty(loginAccount, loginPwd)) {
+            return SendUtil.send(false, ConstString.REQUEST_WRONGPARAMS);
+        }
+
+        return ssoUserService.userLogin(loginAccount, loginPwd, clientId, redirect, oauth2Pwd);
+    }
+
+}

+ 0 - 5
spring-cloud/server-basic/src/main/java/com/jd/controller/WebAttackTypeController.java

@@ -37,11 +37,6 @@ public class WebAttackTypeController {
     //需要验重的参数
     String[] keys = {};
 
-    @GetMapping("getTop6AttackType")
-    @ApiOperation(value = "查询攻击类型前六")
-    public Map<String, Object> getTop6AttackType() {
-        return attackTypeService.getTop6AttackType();
-    }
 
     @GetMapping("getAttackTypeBymonth")
     @ApiOperation(value = "统计半年攻击类型")

+ 35 - 0
spring-cloud/server-basic/src/main/java/com/jd/hystrix/ThreeApiHystrix.java

@@ -0,0 +1,35 @@
+package com.jd.hystrix;
+
+import com.jd.client.AuthClient;
+import com.jd.client.ThreeApiClient;
+import com.jd.code.ServerEnum;
+import com.jd.util.SendUtil;
+import lombok.extern.log4j.Log4j2;
+
+import java.util.Map;
+
+/** @ApplicationName: server-basic
+ * @Title: AuthHystrix.java
+ * @Package: com.jd.hystrix
+ * @Description: token验证熔断
+ * @author: zhouchangfen
+ * @date: 2020-8-5 17:46:49
+ * @version: V1.0
+ */
+@Log4j2
+public class ThreeApiHystrix implements ThreeApiClient {
+
+	@Override
+	public Map<String, Object> sendApiUrl(String urlCode) {
+		log.error("调用模块:" + ServerEnum.BASIC + ",请求模块:" + ServerEnum.THREEAPI + ",请求方法:"
+				+ "getToken,参数:" + urlCode );
+		return SendUtil.send(false);
+	}
+
+	@Override
+	public Map<String, Object> sendApiUrlAndParam(String urlCode, String params) {
+		log.error("调用模块:" + ServerEnum.BASIC + ",请求模块:" + ServerEnum.AUTH + ",请求方法:"
+				+ "revokeToken,参数:" + urlCode + "," + params);
+		return SendUtil.send(false);
+	}
+}

+ 16 - 9
spring-cloud/server-basic/src/main/java/com/jd/mapper/SsoSystemMapper.java

@@ -4,20 +4,27 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.ibatis.annotations.Mapper;
-
+import org.apache.ibatis.annotations.Param;
 
 /**
  * SSO业务系统
  * @author leihy
- *
  */
 @Mapper
 public interface SsoSystemMapper {
-	
-	/**
-	 * 查询SSO业务系统列表
-	 * @param map
-	 * @return
-	 */
-	List<Map<String, Object>> getSsoSystemList(Map<String, Object> map);
+
+    /**
+     * 查询SSO业务系统列表
+     * @param map
+     * @return
+     */
+    List<Map<String, Object>> getSsoSystemList(Map<String, Object> map);
+
+    /**
+     * 根据ClientId查询SSO业务系统
+     * @param clientId
+     * @return
+     */
+    Map<String, Object> getSsoSystemByClient(@Param("clientId") String clientId);
+
 }

+ 15 - 0
spring-cloud/server-basic/src/main/java/com/jd/mapper/SsoUserMapper.java

@@ -0,0 +1,15 @@
+package com.jd.mapper;
+
+import java.util.Map;
+
+/**
+ * @author Admin
+ */
+public interface SsoUserMapper {
+
+    /**
+     * @param loginAccount
+     * @return
+     */
+    Map<String, Object> getSsoUserInfoByAccount(String loginAccount);
+}

+ 1 - 1
spring-cloud/server-basic/src/main/java/com/jd/mapper/WebAttackTypeMapper.java

@@ -38,7 +38,7 @@ public interface WebAttackTypeMapper {
      * 通过Type查询攻击类型数量
      * @return
      */
-    List<Map<String, Object>> getTop6AttackType(Integer infoId);
+    List<Map<String, Object>> getTopAttackType(Integer infoId);
 
     /**
      * 获取单条攻击类型

+ 7 - 0
spring-cloud/server-basic/src/main/java/com/jd/service/SafetyInfoService.java

@@ -57,6 +57,13 @@ public interface SafetyInfoService {
      * @return
      */
     Map<String, Object> analysisSafetyStatus(String orgType);
+
+    /**
+     *
+     * @param orgType
+     * @return
+     */
+    Map<String, Object> analysisWebSafetyInfo(String orgType);
     /**
      * 查询门户网站安全态势
      * @param orgType

+ 20 - 0
spring-cloud/server-basic/src/main/java/com/jd/service/SsoUserService.java

@@ -0,0 +1,20 @@
+package com.jd.service;
+
+import java.util.Map;
+
+/**
+ * @author Admin
+ */
+public interface SsoUserService {
+
+    /**
+     *
+     * @param loginAccount
+     * @param loginPwd
+     * @param clientId
+     * @param redirect
+     * @return
+     */
+    Map<String, Object> userLogin(String loginAccount, String loginPwd, String clientId, String redirect, String oauth2Pwd);
+
+}

+ 0 - 5
spring-cloud/server-basic/src/main/java/com/jd/service/WebAttackTypeService.java

@@ -24,11 +24,6 @@ public interface WebAttackTypeService {
      */
     Map<String, Object> getAttackTypeById(Map<String, Object> param);
 
-    /**
-     * 获取当月前六条攻击类型
-     * @return
-     */
-    Map<String, Object> getTop6AttackType();
 
     /**
      * 获取近半年攻击类型

+ 144 - 11
spring-cloud/server-basic/src/main/java/com/jd/service/impl/SafetyInfoServiceImpl.java

@@ -1,18 +1,25 @@
 package com.jd.service.impl;
 
 import cn.hutool.core.convert.Convert;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.http.HttpRequest;
+import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.jd.client.ThreeApiClient;
 import com.jd.code.ConstString;
 import com.jd.entity.SafetyInfo;
+import com.jd.entity.threeapi.ApiUrl;
 import com.jd.mapper.*;
 import com.jd.service.SafetyInfoService;
 import com.jd.util.Blank;
 import com.jd.util.SendUtil;
 import com.netflix.discovery.converters.Auto;
+import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import zipkin2.reporter.Sender;
+import lombok.extern.log4j.Log4j2;
 
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
@@ -26,6 +33,7 @@ import java.util.*;
  * @createTime 2022年03月24日 20:08:00
  */
 @Service("SafetyInfoServiceImpl")
+@Log4j2
 public class SafetyInfoServiceImpl implements SafetyInfoService {
     @Autowired
     private SafetyInfoMapper safetyInfoMapper;
@@ -63,6 +71,9 @@ public class SafetyInfoServiceImpl implements SafetyInfoService {
     @Autowired
     private ThreeApiClient threeApiClient;
 
+    @Value("${contrl.connection-timeout}")
+    private Integer connectionTimeout = 30000;
+
     @Override
     public Map<String, Object> getSafetyInfo(Map<String, Object> param) {
         Integer count = safetyInfoMapper.getCountSafetyInfo(param);
@@ -97,7 +108,7 @@ public class SafetyInfoServiceImpl implements SafetyInfoService {
         //获取当前年月份
         Map<String, Object> map = new HashMap<>();
         Calendar calender = Calendar.getInstance();
-        Integer year = calender.get(calender.YEAR);
+        Integer year = calender.get(Calendar.YEAR);
         Integer month = (calender.get(Calendar.MONTH)==0?12:calender.get(Calendar.MONTH));
         if ((orgType != null) && (orgType != "")) {
             map.put("orgType", orgType);
@@ -117,7 +128,8 @@ public class SafetyInfoServiceImpl implements SafetyInfoService {
         //查询参数
         Map<String, Object> paramMap = new HashMap<>();
         Calendar calender = Calendar.getInstance();
-        Integer year = calender.get(calender.YEAR);
+        Integer year = calender.get(Calendar.YEAR);
+
         Integer month = (calender.get(Calendar.MONTH)==0?12:calender.get(Calendar.MONTH));
         paramMap.put("createYear", year);
         paramMap.put("createMonth", month);
@@ -163,7 +175,7 @@ public class SafetyInfoServiceImpl implements SafetyInfoService {
         Map<String, Object> paramMap = new HashMap<>();
         //时间
         Calendar calender = Calendar.getInstance();
-        Integer year = calender.get(calender.YEAR);
+        Integer year = calender.get(Calendar.YEAR);
         Integer month = (calender.get(Calendar.MONTH)==0?12:calender.get(Calendar.MONTH));
         paramMap.put("createYear", year);
         paramMap.put("createMonth", month);
@@ -205,7 +217,7 @@ public class SafetyInfoServiceImpl implements SafetyInfoService {
         Map<String, Object> paramMap = new HashMap<>();
         //时间
         Calendar calender = Calendar.getInstance();
-        Integer year = calender.get(calender.YEAR);
+        Integer year = calender.get(Calendar.YEAR);
         Integer month = (calender.get(Calendar.MONTH)==0?12:calender.get(Calendar.MONTH));
         paramMap.put("createYear", year);
         paramMap.put("createMonth", month);
@@ -268,13 +280,17 @@ public class SafetyInfoServiceImpl implements SafetyInfoService {
                 riskFlag_2 = Convert.toInt(map.get("data_value").toString());
             }
         }
-        String urlCode = "AQZX_";
-        String params = "{\"sex\":\"男\",\"name\":\"赵云\"," +
-                "\"project\":\"pe_powerup_prod\"}";
+        ApiUrl apiUrl = new ApiUrl();
+        apiUrl.setUrlApi("https://23.37.0.200/api/security/incident/overview");
+
+        String params = "{\"keyword\":\"\",\"startTime\":\"2022-04-10 17:05:00\"," +
+                "\"endTime\":\"2022-05-10 17:05:00\"}";
         //通过threeAPI调用第三方接口
-        Map<String, Object> apiMap = threeApiClient.sendApiUrlAndParam(urlCode, params);
-        Map<String, Object> attackInfoMap = JSONObject.parseObject(apiMap.get("data").toString());
-        Map<String, Object> attackMap = JSONObject.parseObject(attackInfoMap.get("data").toString());
+        //Map<String, Object> apiMap = threeApiClient.sendApiUrlAndParam(urlCode, params);
+        String apiString = sendHttpRequest(apiUrl, params);
+        cn.hutool.json.JSONObject parseObj = JSONUtil.parseObj(apiString);
+
+        Map<String, Object> attackMap = JSONObject.parseObject(parseObj.get("data").toString());
         //风险系数
         Integer attackHighNum = Convert.toInt(attackMap.get("High").toString());
         if(attackHighNum < riskFlag_1){
@@ -284,8 +300,60 @@ public class SafetyInfoServiceImpl implements SafetyInfoService {
         }else {
             riskCoefficient = 3;
         }
+
         resultMap.put("safetyLevel", safetyLevel);
         resultMap.put("riskCoefficient", riskCoefficient);
+        resultMap.put("highRiskNumber", highRiskNumber);
+        resultMap.put("middleRiskNumber", middleRiskNumber);
+        resultMap.put("attackHighNum", attackHighNum);
+
+        return SendUtil.send(resultMap);
+    }
+
+    @Override
+    public Map<String, Object> analysisWebSafetyInfo(String orgType) {
+        //返回参数
+        Map<String, Object> resultMap = new HashMap<>();
+        //请求参数
+        Map<String, Object> paramMap = new HashMap<>();
+        //高危漏洞数
+        Calendar calender = Calendar.getInstance();
+        Integer year = calender.get(calender.YEAR);
+        Integer month = (calender.get(Calendar.MONTH)==0?12:calender.get(Calendar.MONTH));
+        paramMap.put("createYear", year);
+        paramMap.put("createMonth", month);
+        paramMap.put("orgType", orgType);
+        Map<String, Object> safetyInfo = safetyInfoMapper.getSafetyInfoByMonth(paramMap);
+        if(Blank.isEmpty(safetyInfo)){
+            return SendUtil.send(false, "无数据");
+        }
+        if( Blank.isEmpty(safetyInfo.get("high_risk_number_second"))){
+            return SendUtil.send(false, "无数据");
+        }
+        Integer highRiskNumber = Convert.toInt(safetyInfo.get("high_risk_number_second").toString());
+        Integer infoId = Convert.toInt(safetyInfo.get("id").toString());
+        Map<String, Object> virusParam = new HashMap<>();
+        virusParam.put("infoId", infoId);
+        //病毒数
+        Map<String, Object> virus = officeVirusMapper.getOfficeSafetyInfo(virusParam);
+        if(Blank.isEmpty(virus)){
+            return SendUtil.send(false, "无数据");
+        }
+        if( Blank.isEmpty(virus.get("viruses_Tnumber"))){
+            return SendUtil.send(false, "无数据");
+        }
+        Integer virusesTNumber = Convert.toInt(virus.get("viruses_Tnumber").toString());
+        //攻击次数
+        Integer attackNumber = 0;
+        List<Map<String, Object>> attackList = webAttackTypeMapper.getTopAttackType(infoId);
+        for (Map<String, Object> map : attackList) {
+            if(Blank.isNotEmpty(map.get("attack_count"))){
+                attackNumber += Convert.toInt(map.get("attack_count").toString());
+            }
+        }
+        resultMap.put("highRiskNumber", highRiskNumber);
+        resultMap.put("virusesTNumber", virusesTNumber);
+        resultMap.put("attackNumber", attackNumber);
         return SendUtil.send(resultMap);
     }
 
@@ -298,7 +366,7 @@ public class SafetyInfoServiceImpl implements SafetyInfoService {
         Map<String, Object> paramMap = new HashMap<>();
         //当前时间
         Calendar calender = Calendar.getInstance();
-        Integer year = calender.get(calender.YEAR);
+        Integer year = calender.get(Calendar.YEAR);
         Integer month = (calender.get(Calendar.MONTH)==0?12:calender.get(Calendar.MONTH));
         paramMap.put("createYear", year);
         paramMap.put("createMonth", month);
@@ -355,4 +423,69 @@ public class SafetyInfoServiceImpl implements SafetyInfoService {
         return SendUtil.send(safetyInfoMapper.deleteSafetyInfo(InfoId));
 
     }
+
+    public String sendHttpRequest(ApiUrl apiUrl, String params) {
+        String url = apiUrl.getUrlPrefix() + apiUrl.getUrlApi();
+        String urlMethod = apiUrl.getUrlMethod().toUpperCase();
+        HttpRequest httpRequest = null;
+        String get = "GET";
+        String post = "POST";
+        if(get.equals(urlMethod)) {
+            // GET
+            httpRequest = HttpRequest.get(url);
+        }else if(post.equals(urlMethod)) {
+            // POST
+            httpRequest = HttpRequest.post(url);
+        }
+        log.info("请求地址: " + url);
+
+
+
+        cn.hutool.json.JSONObject paramsObj = null;
+        if(StrUtil.isNotEmpty(params)) {
+            paramsObj = JSONUtil.parseObj(params);
+        }else {
+            paramsObj = new cn.hutool.json.JSONObject();
+        }
+
+        Integer urlParamType = apiUrl.getUrlParamType();
+        if(urlParamType == 0){
+            //无参数2
+            String jsonStr = paramsObj.toJSONString(0);
+            httpRequest = httpRequest.body(jsonStr);
+            log.info("请求参数: " + jsonStr);
+        }else if(urlParamType == 1){
+            //参数为json字符串
+            String urlParam = apiUrl.getUrlParam();
+            if(StrUtil.isNotEmpty(urlParam)) {
+                cn.hutool.json.JSONObject urlParamObj = JSONUtil.parseObj(urlParam);
+                paramsObj.putAll(urlParamObj);
+            }
+            String jsonStr = paramsObj.toJSONString(0);
+            httpRequest = httpRequest.body(jsonStr);
+            log.info("请求参数(json字符串): " + jsonStr);
+        }else if(urlParamType == 2){
+            //参数为form表单
+            String urlParam = apiUrl.getUrlParam();
+            if(StrUtil.isNotEmpty(urlParam)) {
+                cn.hutool.json.JSONObject urlParamObj = JSONUtil.parseObj(urlParam);
+                paramsObj.putAll(urlParamObj);
+            }
+            httpRequest = httpRequest.form(paramsObj);
+            log.info("请求参数(form表单): " + paramsObj.toJSONString(0));
+        }
+
+        try {
+            String result = httpRequest.setConnectionTimeout(connectionTimeout)
+                    .execute()
+                    .body();
+            log.info("返回参数: " + result);
+            return result;
+        } catch (Exception e) {
+            log.error("请求报错: " + e.getMessage());
+            e.printStackTrace();
+            return null;
+        }
+
+    }
 }

+ 80 - 0
spring-cloud/server-basic/src/main/java/com/jd/service/impl/SsoUserServiceImpl.java

@@ -0,0 +1,80 @@
+package com.jd.service.impl;
+
+import cn.hutool.core.convert.Convert;
+import cn.hutool.crypto.SecureUtil;
+import com.jd.client.AuthClient;
+import com.jd.mapper.SsoSystemMapper;
+import com.jd.mapper.SsoUserMapper;
+import com.jd.service.SsoUserService;
+import com.jd.util.Blank;
+import com.jd.util.SendUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author Admin
+ */
+@Service
+public class SsoUserServiceImpl implements SsoUserService {
+
+    private final SsoUserMapper ssoUserMapper;
+
+    private final SsoSystemMapper ssoSystemMapper;
+
+    @Autowired
+    private AuthClient authClient;
+
+    @Resource
+    private RedisTemplate<String, Object> redisTemplate;
+
+    public SsoUserServiceImpl(SsoUserMapper ssoUserMapper, SsoSystemMapper ssoSystemMapper) {
+        this.ssoUserMapper = ssoUserMapper;
+        this.ssoSystemMapper = ssoSystemMapper;
+    }
+
+    @Override
+    public Map<String, Object> userLogin(String loginAccount, String loginPwd, String clientId, String redirect, String oauth2Pwd) {
+        // 判断clientId是否存在
+        Map<String, Object> map = ssoSystemMapper.getSsoSystemByClient(clientId);
+        if (Blank.isEmpty(map)) {
+            return SendUtil.send(false, "系统尚未接入统一身份认证平台");
+        }
+        // 判断登录帐号和密码
+        Map<String, Object> user = ssoUserMapper.getSsoUserInfoByAccount(loginAccount);
+        if (Blank.isEmpty(user)) {
+            return SendUtil.send(false, "帐号或密码错误");
+        }
+        // 验证密码
+        String pwd = Convert.toStr(user.get("login_pwd"), "");
+        // 加密输入密码
+        String encryption = SecureUtil.md5(loginPwd);
+        if (!pwd.equals(encryption)) {
+            return SendUtil.send(false, "帐号或密码错误");
+        }
+
+        // 获取token
+        Map<String, Object> tokenMap = authClient.getToken(loginAccount, oauth2Pwd);
+        System.err.println("tokenMap :: " + tokenMap);
+        String accessToken = Convert.toStr(tokenMap.get("access_token"));
+        String refreshToken = Convert.toStr(tokenMap.get("refresh_token"));
+        String tokenType = Convert.toStr(tokenMap.get("token_type"));
+        Map<String, Object> result = new HashMap<>(8);
+        result.put("userId", user.get("user_id"));
+        result.put("userName", user.get("login_account"));
+        result.put("account", user.get("login_account"));
+        result.put("access_token", accessToken);
+        result.put("refresh_token", refreshToken);
+        result.put("token_type", tokenType);
+        System.err.println("result::" + result);
+        // 保存到Redis
+        redisTemplate.opsForValue().set(Convert.toStr(user.get("user_id")), result);
+        redisTemplate.opsForValue().set(tokenType + " " + accessToken, user.get("user_id"));
+
+        return SendUtil.send(true, "登录成功", result);
+    }
+}

+ 0 - 25
spring-cloud/server-basic/src/main/java/com/jd/service/impl/WebAttackTypeServiceImpl.java

@@ -59,31 +59,6 @@ public class WebAttackTypeServiceImpl implements WebAttackTypeService {
         return SendUtil.send(attackTypeMapper.getAttackTypeById(param));
     }
 
-    @Override
-    public Map<String, Object> getTop6AttackType() {
-        //获取当前年月份
-        Map<String, Object> map = new HashMap<>();
-        Calendar calender = Calendar.getInstance();
-        Integer year = calender.get(calender.YEAR);
-        Integer month = (calender.get(Calendar.MONTH)==0?12:calender.get(Calendar.MONTH));
-        map.put("createYear", year);
-        map.put("createMonth", month);
-        //获取当月对应的安全信息
-        Map<String, Object> safetyInfo = safetyInfoMapper.getSafetyInfoByMonth(map);
-        if(Blank.isEmpty(safetyInfo)){
-            return SendUtil.send(false);
-        }
-        Integer infoId = null;
-        try{
-           infoId = Integer.parseInt(safetyInfo.get("id").toString());
-        }catch (Exception e){
-            e.printStackTrace();
-            return SendUtil.send(false);
-        }
-        //根据安全信息查询前六条攻击类型
-        List<Map<String, Object>> result = attackTypeMapper.getTop6AttackType(infoId);
-        return  SendUtil.send(result);
-    }
 
     @Override
     public Map<String, Object> getAttackTypeBymonth(String orgType) {

+ 17 - 8
spring-cloud/server-basic/src/main/resources/mapper/SsoSystemMapper.xml

@@ -1,11 +1,20 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.jd.mapper.SsoSystemMapper">	
-	
-	<!-- 查询SSO业务系统列表 -->
-	<select id="getSsoSystemList" resultType="map" parameterType="map">
-		select s.appid,s.`name`,s.title_img,s.redirect_url,us.login_account 
-		from sso_system s,sso_user_system us 
-		where s.id = us.system_id and us.user_id = #{userId}			
-	</select>
+<mapper namespace="com.jd.mapper.SsoSystemMapper">
+
+    <!-- 查询SSO业务系统列表 -->
+    <select id="getSsoSystemList" resultType="map" parameterType="map">
+        SELECT s.appid, s.`name`, s.title_img, s.redirect_url, us.login_account
+        FROM sso_system s,
+             sso_user_system us
+        WHERE s.id = us.system_id
+          AND us.user_id = #{userId}
+    </select>
+
+    <select id="getSsoSystemByClient" resultType="java.util.Map">
+        SELECT *
+        FROM sso_system
+        WHERE appid = #{clientId} LIMIT 1
+    </select>
+
 </mapper>

+ 9 - 0
spring-cloud/server-basic/src/main/resources/mapper/SsoUserMapper.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.jd.mapper.SsoUserMapper">
+    <select id="getSsoUserInfoByAccount" resultType="java.util.Map">
+        SELECT *
+        FROM sso_user
+        WHERE login_account = #{loginAccount}
+    </select>
+</mapper>

+ 1 - 2
spring-cloud/server-basic/src/main/resources/mapper/WebAttackTypeMapper.xml

@@ -34,7 +34,7 @@
         LIMIT #{startRows}, #{limit}
     </select>
 
-    <select id="getTop6AttackType" resultType="map">
+    <select id="getTopAttackType" resultType="map">
         SELECT
         id,
         info_id,
@@ -46,7 +46,6 @@
             web_attack_type
         WHERE info_id = #{infoId}
         ORDER BY attack_count DESC
-        LIMIT 6
     </select>
 
     <!-- 查询攻击类型 -->

+ 10 - 10
spring-cloud/server-page/src/main/resources/static/ipad/js/constant.js

@@ -1,10 +1,10 @@
-var FLAT_PATH = 'http://23.37.100.87:8084/';
+var FLAT_PATH = 'http://23.37.100.80:8084/';
 var FLAT_PATH_BASIC = FLAT_PATH + 'basic/';
 var FLAT_PATH_THREE = FLAT_PATH + 'threeapi/';
-var FLAT_PATH_IMG = 'http://23.37.100.87:8085';
-var XN_PATH = 'http://23.37.100.87:8092/';
-var WS_PATH = 'ws://23.37.100.87:8087';
-var YK_PATH = 'http://23.37.100.87:298${port}/vnc.html';
+var FLAT_PATH_IMG = 'http://23.37.100.80:8085';
+var XN_PATH = 'http://23.37.100.80:8092/';
+var WS_PATH = 'ws://23.37.100.80:8087';
+var YK_PATH = 'http://23.37.100.80:${port}/vnc.html';
 
 var DEVICE_GROUP = {
 	dpq: {
@@ -31,11 +31,11 @@ var DEVICE_GROUP = {
 
 var DEVICE_CODE_GROUP = ['mtq', 'hpq', 'dpq', 'xcqn', 'xcqw', 'dpzhd'];
 
-var DPZHD_VNC_HOST = "23.37.100.87";
+var DPZHD_VNC_HOST = "23.37.100.80";
 var DPZHD_PATH = 'http://' + DPZHD_VNC_HOST + ':8123/';
-var DPZHD_VNC_PATH = 'http://' + DPZHD_VNC_HOST + ':29850/vnc.html';
-var KJY_PATH = "http://23.37.100.87/dldp2/index.html";
+var DPZHD_VNC_PATH = 'http://' + DPZHD_VNC_HOST + ':29050/vnc.html';
+var KJY_PATH = "http://23.37.100.80/dldp2/index.html";
 
 
-var OLD_YK_URL_HOST = "23.37.100.80";
-var NEW_YK_URL_HOST = "23.37.100.87";
+var OLD_YK_URL_HOST = "23.37.100.87";
+var NEW_YK_URL_HOST = "23.37.100.80";

+ 2 - 2
spring-cloud/server-page/src/main/resources/static/ipad/login_sw.html

@@ -2,7 +2,7 @@
 <html lang="en">
 <head>
 	<meta charset="UTF-8">
-	<title>重庆市城市管理局-指挥席讲解台</title>
+	<title>重庆市城市管理局-指挥席导览台</title>
 	<link rel="stylesheet" type="text/css" href="font/iconfont.css"/>
 	<!-- <link rel="stylesheet" type="text/css" href="./css/main.css"/> -->
 	<style>
@@ -165,7 +165,7 @@
 	<!-- 背景div -->
 	<div class="login-form">
 		<div class="login-title">
-			<p>指挥席讲解台</p>
+			<p>指挥席导览台</p>
 		</div>
 		<div class="login-con">
 			<div class="login-formCon">

+ 87 - 85
spring-cloud/server-page/src/main/resources/static/lbzd/css/index_lbfz.css

@@ -1,124 +1,126 @@
-*{
-	margin: 0;
-	padding: 0;
-	box-sizing: border-box;
-	font-family: "Microsoft YaHei";
+* {
+    margin: 0;
+    padding: 0;
+    box-sizing: border-box;
+    font-family: "Microsoft YaHei";
 }
 
-html,body{
-	width: 100%;
-	height: 100%;
-	background-color: #E8E8F0;
+html,
+body {
+    width: 100%;
+    height: 100%;
+    background-color: #E8E8F0;
 }
 
-li{
-	list-style: none;
+li {
+    list-style: none;
 }
 
 @font-face {
-  font-family: 'iconfont';
-  src: url('iconfont.woff2?t=1649485663505') format('woff2'),
-       url('iconfont.woff?t=1649485663505') format('woff'),
-       url('iconfont.ttf?t=1649485663505') format('truetype');
+    font-family: 'iconfont';
+    src: url('iconfont.woff2?t=1649485663505') format('woff2'), url('iconfont.woff?t=1649485663505') format('woff'), url('iconfont.ttf?t=1649485663505') format('truetype');
 }
 
+
 /* 头部 */
 
-.header{
-	display: flex;
-	align-items: center;
-	justify-content: space-between;
-	width: 100%;
-	height: 8%;
-	padding: 0 2%;
-	background-color: #1aadec;
-	background-image: linear-gradient(to right,#0451A3,#207DC2,#2C8ECD);
+.header {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    width: 100%;
+    height: 8%;
+    padding: 0 2%;
+    background-color: #1aadec;
+    background-image: linear-gradient(to right, #0451A3, #207DC2, #2C8ECD);
 }
 
-.header .head_left{
-	display: flex;
-	align-items: center;
-	cursor: default;
+.header .head_left {
+    display: flex;
+    align-items: center;
+    cursor: default;
 }
 
-.head_left>img{
-	height: 30px;
-	margin-right: 10px;
+.head_left>img {
+    height: 30px;
+    margin-right: 10px;
 }
 
-.head_left>i{
-	font-size: 25px;
-	font-weight: 550;
-	color: #D5D5D6;
+.head_left>i {
+    font-size: 25px;
+    font-weight: 550;
+    color: #D5D5D6;
 }
 
-.header .head_right>button{
-	width: 95px;
-	height: 40px;
-	border: 1px solid #fff;
-	border-radius: 5px;
-	font-size: 18px;
-	color: #FFFFFF;
-	cursor: pointer;
-	background-color: transparent;
+.header .head_right>button {
+    width: 95px;
+    height: 40px;
+    border: 1px solid #fff;
+    border-radius: 5px;
+    font-size: 18px;
+    color: #FFFFFF;
+    cursor: pointer;
+    background-color: transparent;
 }
 
-.header .head_right .swith{
-	font-size: 18px;
-	color: #FFFFFF;
-	margin-right: 10px;
+.header .head_right .swith {
+    font-size: 18px;
+    color: #FFFFFF;
+    margin-right: 10px;
 }
 
 
 /* 主体 */
-main{
-	width: 100%;
-	height: 92%;
-	padding: 1%;
+
+main {
+    width: 100%;
+    height: 92%;
+    padding: 1%;
 }
 
-.main-tab{
-	width: 100%;
-	height: 8%;
-	box-shadow: 0px 4px 13px rgb(147 147 147 / 50%);
+.main-tab {
+    width: 100%;
+    height: 8%;
+    box-shadow: 0px 4px 13px rgb(147 147 147 / 50%);
 }
 
-.main-tab .tab-list{
-	display: flex;
-	align-items: center;
-	width: 100%;
-	height: 100%;
+.main-tab .tab-list {
+    display: flex;
+    align-items: center;
+    width: 100%;
+    height: 100%;
 }
 
-.tab-list .tab-item{
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 25%;
-	height: 100%;
-	font-size: 18px;
-	font-weight: 500;
-	color: #717171;
-	border-right: 1px solid #ccc;
-	border-radius: 5px;
-	background-color: #fff;
+.tab-list .tab-item {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    width: 25%;
+    height: 100%;
+    font-size: 18px;
+    font-weight: 500;
+    color: #717171;
+    border-right: 1px solid #ccc;
+    border-radius: 5px;
+    background-color: #fff;
 }
 
-.tab-list .tab-item:nth-child(4){
-	border-right: none;
+.tab-list .tab-item:nth-child(4) {
+    border-right: none;
 }
 
-.tab-item-act{
-	color: #FFFFFF !important;
-	background-image: linear-gradient(to right,#0451A3,#207DC2,#2C8ECD);
+.tab-item-act {
+    color: #FFFFFF !important;
+    background-image: linear-gradient(to right, #0451A3, #207DC2, #2C8ECD);
 }
 
-section{
-	width: 100%;
-	height: 92%;
-	border-radius: 5px;
-	background-color: #FFFFFF;
-	box-shadow: 0px 4px 13px rgb(147 147 147 / 50%);
+section {
+    width: 100%;
+    height: 92%;
+    border-radius: 5px;
+    background-color: #FFFFFF;
+    box-shadow: 0px 4px 13px rgb(147 147 147 / 50%);
 }
 
-/* 宣传展示 */
+
+/* 宣传展示 */

+ 79 - 41
spring-cloud/server-page/src/main/resources/static/lbzd/css/indexb.css

@@ -75,6 +75,8 @@ li {
     position: relative;
     width: 100%;
     height: 100%;
+    background: url(../img/bg.png) bottom center no-repeat;
+    background-size: cover;
 }
 
 
@@ -87,74 +89,109 @@ li {
 
 .yg-box .time-line {
     position: relative;
-    height: 100%;
-}
-
-.time-line .center-line {
-    position: absolute;
-    bottom: 20%;
     width: 100%;
-    height: 5px;
-    background-color: #0451A3;
+    height: 100%;
+    display: flex;
+    align-items: center;
+    overflow-x: scroll;
+    /* background: url(../img/licheng.png) top left no-repeat;
+    background-size: 100% 100%; */
 }
 
-.time-line img {
-    position: fixed;
-    bottom: 22.5%;
-    left: 50%;
+.one {
+    min-width: 100%;
+    height: 100%;
+    background: url(../img/licheng.png) top left no-repeat;
+    background-size: 100% 100%;
 }
 
-.time-top {
-    position: relative;
-    display: flex;
-    align-items: center;
-    justify-content: flex-start;
-    width: 100%;
+.two {
+    min-width: 100%;
     height: 100%;
-    overflow-y: scroll;
+    background: url(../img/licheng1.png) top left no-repeat;
+    background-size: 100% 100%;
 }
 
-.time-top .time-item {
+.time-line>div {
     position: relative;
-    bottom: -5%;
-    min-width: 200px;
-    height: 50%;
-    padding-right: 35px;
-    box-sizing: content-box;
 }
 
-.time-top .time-item::after {
-    content: "";
+.time-line>div>div {
     position: absolute;
-    bottom: 0;
-    width: 100%;
-    height: 5px;
-    background-color: #0451A3;
+    width: 17%;
+    height: 40%;
+}
+
+.o-one {
+    top: 32%;
+    left: 6%;
+}
+
+.o-two {
+    top: 32%;
+    left: 25%;
+}
+
+.o-there {
+    top: 31%;
+    left: 44%;
+}
+
+.o-four {
+    height: 52% !important;
+    top: 26%;
+    left: 63%;
+}
+
+.o-five {
+    top: 10%;
+    left: 82%;
+}
+
+.t-one {
+    top: 15%;
+    left: 6%;
+}
+
+.t-two {
+    top: 24%;
+    left: 25%;
+}
+
+.t-there {
+    top: 35%;
+    left: 44%;
+}
+
+.t-four {
+    top: 28%;
+    left: 63%;
 }
 
-.time-top .time-item:nth-of-type(1) {
-    padding-left: 40px;
+.t-five {
+    top: 27%;
+    left: 82%;
 }
 
-.time-item .flag {
+.flag {
     position: absolute;
-    width: 5px;
+    width: 7px;
     height: 100%;
     background-color: #0451A3;
 }
 
 .flag>i {
     position: absolute;
-    top: 5px;
+    top: 0px;
     display: inline-block;
-    border-top: 40px solid transparent;
-    border-bottom: 40px solid transparent;
-    border-left: 90px solid #0451A3;
+    border-top: 20px solid transparent;
+    border-bottom: 20px solid transparent;
+    border-left: 40px solid #0451A3;
 }
 
-.time-item .contan-box {
+.contan-box {
     position: absolute;
-    top: 30%;
+    top: 15%;
     margin-left: 14px;
 }
 
@@ -533,4 +570,5 @@ li {
     white-space: nowrap;
     font-size: 18px;
     text-align: center;
+    margin-top: 2%;
 }

+ 9 - 4
spring-cloud/server-page/src/main/resources/static/lbzd/css/style.css

@@ -11,7 +11,7 @@
           body {
               width: 100%;
               height: 100%;
-              background: url(../img/xiangce.png) 75% center no-repeat;
+              background: url(../img/1.png) 75% center no-repeat;
               background-size: 92% 90%;
           }
           
@@ -80,6 +80,8 @@
               text-overflow: ellipsis;
               overflow: hidden;
               font-size: 18px;
+              background: url(../img/kk.png) top center no-repeat;
+              background-size: auto 100%;
           }
           /* new */
           
@@ -89,14 +91,17 @@
           }
           
           .front>span {
-              display: inline-block;
+              display: flex;
+              align-items: center;
+              justify-content: center;
               width: 100%;
-              height: 6%;
-              text-align: center;
+              height: 10%;
               white-space: nowrap;
               text-overflow: ellipsis;
               overflow: hidden;
               font-size: 18px;
+              background: url(../img/kk.png) top center no-repeat;
+              background-size: auto 100%;
           }
           
           .page.active {

+ 11 - 8
spring-cloud/server-page/src/main/resources/static/lbzd/css/ztzs.css

@@ -22,30 +22,33 @@ li {
     width: 100%;
     height: 100%;
     padding: 2%;
+    background: url(../img/bg.png) bottom center no-repeat;
+    background-size: cover;
 }
 
 .ztzs .ztzs-list {
     width: 100%;
-    height: 85%;
+    height: 100%;
     padding: 0 2%;
+    overflow-y: scroll;
 }
 
 .ztzs-list .ztzs-item {
     float: left;
     width: 32%;
-    height: 30%;
+    height: 35%;
     margin-right: 2%;
     margin-bottom: 1.5%;
 }
 
 .ztzs-list .ztzs-item>img {
     width: 100%;
-    height: 87%;
+    height: 89%;
 }
 
 .ztzs-list .ztzs-item>p {
     width: 100%;
-    height: 13%;
+    height: 11%;
     text-align: center;
     text-overflow: ellipsis;
     overflow: hidden;
@@ -101,12 +104,12 @@ li {
 
 .back-ztzs {
     position: fixed;
-    top: 1%;
-    right: 1%;
-    width: 5%;
+    top: 4%;
+    right: 2%;
+    width: 4%;
     padding: 0.5%;
     border-radius: 10px;
-    background-color: rgb(218, 33, 33);
+    background-color: #1F7ABF;
 }
 
 .back-ztzs>img {

+ 8 - 4
spring-cloud/server-page/src/main/resources/static/lbzd/font/iconfont.css

@@ -1,18 +1,22 @@
 @font-face {
   font-family: "iconfont"; /* Project id 3314969 */
-  src: url('iconfont.woff2?t=1649485663505') format('woff2'),
-       url('iconfont.woff?t=1649485663505') format('woff'),
-       url('iconfont.ttf?t=1649485663505') format('truetype');
+  src: url('iconfont.woff2?t=1652443805784') format('woff2'),
+       url('iconfont.woff?t=1652443805784') format('woff'),
+       url('iconfont.ttf?t=1652443805784') format('truetype');
 }
 
 .iconfont {
   font-family: "iconfont" !important;
-  font-size: 20px;
+  font-size: 16px;
   font-style: normal;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
 }
 
+.icon-wenjian:before {
+  content: "\e631";
+}
+
 .icon-zhaoxiangji:before {
   content: "\e663";
 }

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
spring-cloud/server-page/src/main/resources/static/lbzd/font/iconfont.js


+ 0 - 51
spring-cloud/server-page/src/main/resources/static/lbzd/font/iconfont.json

@@ -1,51 +0,0 @@
-{
-  "id": "3314969",
-  "name": "fzzd",
-  "font_family": "iconfont",
-  "css_prefix_text": "icon-",
-  "description": "",
-  "glyphs": [
-    {
-      "icon_id": "630128",
-      "name": "照相机",
-      "font_class": "zhaoxiangji",
-      "unicode": "e663",
-      "unicode_decimal": 58979
-    },
-    {
-      "icon_id": "10640861",
-      "name": "政务大厅",
-      "font_class": "jingwuicon_svg-",
-      "unicode": "e603",
-      "unicode_decimal": 58883
-    },
-    {
-      "icon_id": "11715087",
-      "name": "政府",
-      "font_class": "zhengfu",
-      "unicode": "e607",
-      "unicode_decimal": 58887
-    },
-    {
-      "icon_id": "12781205",
-      "name": "奖杯",
-      "font_class": "jiangbei",
-      "unicode": "e717",
-      "unicode_decimal": 59159
-    },
-    {
-      "icon_id": "15000963",
-      "name": "目标状态",
-      "font_class": "mubiaozhuangtai",
-      "unicode": "e612",
-      "unicode_decimal": 58898
-    },
-    {
-      "icon_id": "23505198",
-      "name": "步骤",
-      "font_class": "buzhou",
-      "unicode": "e625",
-      "unicode_decimal": 58917
-    }
-  ]
-}

BIN
spring-cloud/server-page/src/main/resources/static/lbzd/font/iconfont.ttf


BIN
spring-cloud/server-page/src/main/resources/static/lbzd/font/iconfont.woff


BIN
spring-cloud/server-page/src/main/resources/static/lbzd/font/iconfont.woff2


BIN
spring-cloud/server-page/src/main/resources/static/lbzd/img/1.png


BIN
spring-cloud/server-page/src/main/resources/static/lbzd/img/2.png


BIN
spring-cloud/server-page/src/main/resources/static/lbzd/img/3.png


BIN
spring-cloud/server-page/src/main/resources/static/lbzd/img/4.png


BIN
spring-cloud/server-page/src/main/resources/static/lbzd/img/5.png


BIN
spring-cloud/server-page/src/main/resources/static/lbzd/img/bg.png


BIN
spring-cloud/server-page/src/main/resources/static/lbzd/img/kk.png


BIN
spring-cloud/server-page/src/main/resources/static/lbzd/img/left.png


BIN
spring-cloud/server-page/src/main/resources/static/lbzd/img/licheng.png


BIN
spring-cloud/server-page/src/main/resources/static/lbzd/img/licheng1.png


BIN
spring-cloud/server-page/src/main/resources/static/lbzd/img/pdf.png


BIN
spring-cloud/server-page/src/main/resources/static/lbzd/img/right.png


BIN
spring-cloud/server-page/src/main/resources/static/lbzd/img/sp.png


BIN
spring-cloud/server-page/src/main/resources/static/lbzd/img/tp.png


BIN
spring-cloud/server-page/src/main/resources/static/lbzd/img/wj.png


+ 148 - 16
spring-cloud/server-page/src/main/resources/static/lbzd/indexb.html

@@ -34,10 +34,8 @@
             <!-- 沿革 -->
             <div class="yg-box">
                 <div class="time-line">
-                    <ul class="time-top">
-                        <div class="center-line"></div>
-                        <img src="img/run-man.png" />
-                        <li class="time-item">
+                    <div class="one">
+                        <div class="o-one">
                             <p class="flag">
                                 <i></i>
                             </p>
@@ -49,8 +47,142 @@
                                     重庆市城市建设局科技技术情报站成立
                                 </p>
                             </div>
-                        </li>
-                        <li class="time-item">
+                        </div>
+                        <div class="o-two">
+                            <p class="flag">
+                                <i></i>
+                            </p>
+                            <div class="contan-box">
+                                <div class="item-title">
+                                    1998
+                                </div>
+                                <p class="item-cont">
+                                    更名为重庆市市政管理局科学技术情报站
+                                </p>
+                            </div>
+                        </div>
+                        <div class="o-there">
+                            <p class="flag">
+                                <i></i>
+                            </p>
+                            <div class="contan-box">
+                                <div class="item-title">
+                                    2001
+                                </div>
+                                <p class="item-cont">
+                                    更名为重庆市市政信息中心
+                                </p>
+                            </div>
+                        </div>
+                        <div class="o-four">
+                            <p class="flag">
+                                <i></i>
+                            </p>
+                            <div class="contan-box">
+                                <div class="item-title">
+                                    2005
+                                </div>
+                                <p class="item-cont">
+                                    单位机构规格调整为正处级
+                                </p>
+                            </div>
+                        </div>
+                        <div class="o-five">
+                            <p class="flag">
+                                <i></i>
+                            </p>
+                            <div class="contan-box">
+                                <div class="item-title">
+                                    2010
+                                </div>
+                                <p class="item-cont">
+                                    经市编办批准增挂重庆市数字化城市管理中心牌子
+                                </p>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="two">
+                        <div class="t-one">
+                            <p class="flag">
+                                <i></i>
+                            </p>
+                            <div class="contan-box">
+                                <div class="item-title">
+                                    1985
+                                </div>
+                                <p class="item-cont">
+                                    重庆市城市建设局科技技术情报站成立
+                                </p>
+                            </div>
+                        </div>
+                        <div class="t-two">
+                            <p class="flag">
+                                <i></i>
+                            </p>
+                            <div class="contan-box">
+                                <div class="item-title">
+                                    1985
+                                </div>
+                                <p class="item-cont">
+                                    重庆市城市建设局科技技术情报站成立
+                                </p>
+                            </div>
+                        </div>
+                        <div class="t-there">
+                            <p class="flag">
+                                <i></i>
+                            </p>
+                            <div class="contan-box">
+                                <div class="item-title">
+                                    1985
+                                </div>
+                                <p class="item-cont">
+                                    重庆市城市建设局科技技术情报站成立
+                                </p>
+                            </div>
+                        </div>
+                        <div class="t-four">
+                            <p class="flag">
+                                <i></i>
+                            </p>
+                            <div class="contan-box">
+                                <div class="item-title">
+                                    1985
+                                </div>
+                                <p class="item-cont">
+                                    重庆市城市建设局科技技术情报站成立
+                                </p>
+                            </div>
+                        </div>
+                        <div class="t-five">
+                            <p class="flag">
+                                <i></i>
+                            </p>
+                            <div class="contan-box">
+                                <div class="item-title">
+                                    1985
+                                </div>
+                                <p class="item-cont">
+                                    重庆市城市建设局科技技术情报站成立
+                                </p>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="one">
+                        <div class="o-one">
+                            <p class="flag">
+                                <i></i>
+                            </p>
+                            <div class="contan-box">
+                                <div class="item-title">
+                                    1985
+                                </div>
+                                <p class="item-cont">
+                                    重庆市城市建设局科技技术情报站成立
+                                </p>
+                            </div>
+                        </div>
+                        <div class="o-two">
                             <p class="flag">
                                 <i></i>
                             </p>
@@ -62,8 +194,8 @@
                                     更名为重庆市市政管理局科学技术情报站
                                 </p>
                             </div>
-                        </li>
-                        <li class="time-item">
+                        </div>
+                        <div class="o-there">
                             <p class="flag">
                                 <i></i>
                             </p>
@@ -75,8 +207,8 @@
                                     更名为重庆市市政信息中心
                                 </p>
                             </div>
-                        </li>
-                        <li class="time-item">
+                        </div>
+                        <div class="o-four">
                             <p class="flag">
                                 <i></i>
                             </p>
@@ -88,8 +220,8 @@
                                     单位机构规格调整为正处级
                                 </p>
                             </div>
-                        </li>
-                        <li class="time-item">
+                        </div>
+                        <div class="o-five">
                             <p class="flag">
                                 <i></i>
                             </p>
@@ -101,8 +233,8 @@
                                     经市编办批准增挂重庆市数字化城市管理中心牌子
                                 </p>
                             </div>
-                        </li>
-                    </ul>
+                        </div>
+                    </div>
                 </div>
             </div>
             <!-- 机构 -->
@@ -144,7 +276,7 @@
             <!-- 掠影 -->
             <div class="ly-box" style="display: none;">
                 <div class="pre">
-                    <img src="img/zuoqiehuan.png" />
+                    <img src="img/left.png" />
                 </div>
                 <div class="swiper">
                     <div class="swiper-wrapper">
@@ -175,7 +307,7 @@
                     </div>
                 </div>
                 <div class="next">
-                    <img src="img/youqiehuan.png" />
+                    <img src="img/right.png" />
                 </div>
             </div>
             <!-- 奖牌 -->

+ 8 - 6
spring-cloud/server-page/src/main/resources/static/lbzd/js/xczs.js

@@ -1,7 +1,9 @@
-$(".scene-tab").on("click",".tab-text",function(){
-	const bool = $(this).hasClass("active-scene")
-	if(!bool){
-		$(this).siblings(".tab-text").removeClass("active-scene")
-		$(this).addClass("active-scene")
-	}
+$(".scene-tab").on("click", ".tab-text", function() {
+    const bool = $(this).hasClass("active-scene")
+    const imgId = $(this).attr("data-img")
+    if (!bool) {
+        $(this).siblings(".tab-text").removeClass("active-scene")
+        $(this).addClass("active-scene")
+        $("body").css({ "background": "url(./img/" + imgId + ".png) 75% center no-repeat", "background-size": "92% 90%" })
+    }
 })

+ 96 - 172
spring-cloud/server-page/src/main/resources/static/lbzd/wjll.html

@@ -29,6 +29,8 @@
             width: 100%;
             height: 100%;
             background-color: #FFFFFF;
+            background: url(img/bg.png) bottom center no-repeat;
+            background-size: cover;
         }
         
         .box .back {
@@ -39,47 +41,45 @@
             background-color: #000000;
         }
         
-        .back_list {
+        .crumbs {
             position: absolute;
-            top: 5%;
-            right: 5%;
-            width: 20%;
-            z-index: 9999;
+            top: 3%;
+            left: 2%;
             display: flex;
             align-items: center;
-            justify-content: flex-end;
-        }
-        
-        .back_list>div {
             font-size: 18px;
-            width: 50%;
-            text-align: center;
-            border-radius: 5px;
-            padding: 1% 0;
+            width: 80%;
+            z-index: 100;
         }
         
-        .back_list .back {
-            color: #FFFFFF;
-            background-color: #ff0000;
+        .crumbs>span {
+            margin: 0 0.5%;
         }
         
-        .back_list .wj_list {
-            /* margin-left: 1%; */
-            color: #297CC2;
-            background-color: #D5E8F6;
+        .crumbs .cur {
+            color: #8BBBDF;
         }
         
-        .file_list {
+        .box-wj {
             position: absolute;
             top: 50%;
             left: 50%;
             transform: translate(-50%, -50%);
+            width: 90%;
+            height: 70%;
+            box-shadow: 0px 1px 9px 0px rgba(0, 0, 0, 0.13);
+            border-radius: 16px;
+            overflow: hidden;
+        }
+        
+        .file_list {
             z-index: 1000;
             display: flex;
             align-content: baseline;
             flex-wrap: wrap;
-            width: 70%;
-            height: 60%;
+            width: 100%;
+            height: 87%;
+            overflow-y: scroll;
             border-radius: 5px;
             background-color: #FFFFFF;
         }
@@ -105,16 +105,18 @@
             display: -webkit-box;
             -webkit-line-clamp: 2;
             -webkit-box-orient: vertical;
-            font-size: 12px;
+            font-size: 14px;
         }
         
         .show {
             display: none;
-            justify-content: flex-end;
+            justify-content: center;
             width: 100%;
             height: 100%;
             overflow: auto;
             background-color: #FFFFFF;
+            background: url(img/bg.png) bottom center no-repeat;
+            background-size: cover;
         }
         
         .show::-webkit-scrollbar {
@@ -146,163 +148,96 @@
         }
         
         .file_ass {
-            position: absolute;
-            top: 0;
-            left: -15%;
-            width: 15%;
-            height: 100%;
-            overflow: auto;
-            z-index: 30;
-            transition: all 0.5s linear;
-            background-color: #FFFFFF;
+            display: flex;
+            align-items: center;
+            width: 100%;
+            height: 13%;
+            background-color: #8EB9E1;
         }
         
         .file_ass::-webkit-scrollbar {
             width: 0;
         }
         
-        .file_ass .title_ass {
-            width: 100%;
-            height: 40px;
-            line-height: 40px;
-            text-align: center;
-            font-weight: 550;
-            color: #333;
-            font-size: 18px;
-            border-bottom: 1px solid #ccc;
-        }
-        
         .file_ass .ass_item {
             display: flex;
             align-items: center;
             justify-content: center;
-            width: 100%;
-            height: 10%;
+            width: 20%;
+            height: 100%;
             overflow: hidden;
             text-overflow: ellipsis;
             white-space: nowrap;
-            border-bottom: 1px solid rgba(147, 147, 147, 0.4);
+            color: #FFFFFF;
+            font-size: 20px;
         }
         
         .ass_active {
-            color: #2D8FCE;
-            background-color: #C0DAED;
+            color: #FFFFFF;
+            background-color: #1F7ABF;
         }
         
-        .ass_shrink {
-            display: flex;
-            align-items: center;
-            justify-content: center;
-            position: absolute;
-            left: 0%;
-            top: 1%;
-            z-index: 30;
-            width: 3%;
-            height: 40px;
-            border-radius: 5px;
-            transition: all 0.5s linear;
-            background-color: rgba(4, 108, 183, 0.25);
+        .back-ztzs {
+            position: fixed;
+            top: 4%;
+            right: 2%;
+            width: 4%;
+            padding: 0.5%;
+            border-radius: 10px;
+            background-color: #1F7ABF;
+            z-index: 100;
         }
         
-        .ass_shrink>img {
-            width: 60%;
+        .back-ztzs>img {
+            width: 100%;
         }
     </style>
 </head>
 
 <body>
-    <ul class="file_ass" style="left: 0;">
-        <div class="title_ass">文件分类</div>
-        <li class="ass_item">一类文件</li>
-        <li class="ass_item">二类文件</li>
-        <li class="ass_item">三类文件</li>
-        <li class="ass_item">四类文件</li>
-    </ul>
-    <!-- 收缩文件分类 -->
-    <div class="ass_shrink" style="display: none;">
-        <img src="img/bottom.png" style="transform: rotate(90deg);" />
-    </div>
     <!-- 返回和文件列表 -->
-    <div class="back_list">
-        <div class="wj_list" style="display: none;">文件列表</div>
-        <div class="back">返回</div>
+    <div class="crumbs">
+        <div class="back_wjts">互动功能</div>
+        <span>&gt;</span>
+        <div class="cur">文件浏览</div>
     </div>
     <!-- 文件列表 -->
     <div class="box">
-        <ul class="file_list">
-            <li class="file_item" data-iden="video" data-src="https://vd4.bdstatic.com/mda-ndd5br5k6hgdgpwi/sc/cae_h264_delogo/1649908320881108315/mda-ndd5br5k6hgdgpwi.mp4?v_from_s=bdapp-bdappcore-hnb">
-                <img src="img/sp.png" />
-                <div class="file_name">
-                    视频视频视频视频视频视频
-                </div>
-            </li>
-            <li class="file_item" data-iden="img" data-src="img/a1.png">
-                <img src="img/tp.png" />
-                <div class="file_name">
-                    图片图片图片图片图片图片图片
-                </div>
-            </li>
-            <li class="file_item" data-iden="pdf">
-                <img src="img/pdf.png" />
-                <div class="file_name">
-                    pdf
-                </div>
-            </li>
-            <li class="file_item" data-iden="wj">
-                <img src="img/wj.png" />
-                <div class="file_name">
-                    文件
-                </div>
-            </li>
-            <li class="file_item">
-                <img src="img/wj.png" />
-                <div class="file_name">
-                    文件
-                </div>
-            </li>
-            <li class="file_item">
-                <img src="img/wj.png" />
-                <div class="file_name">
-                    文件
-                </div>
-            </li>
-            <li class="file_item">
-                <img src="img/wj.png" />
-                <div class="file_name">
-                    文件
-                </div>
-            </li>
-            <li class="file_item">
-                <img src="img/wj.png" />
-                <div class="file_name">
-                    文件
-                </div>
-            </li>
-            <li class="file_item">
-                <img src="img/wj.png" />
-                <div class="file_name">
-                    文件
-                </div>
-            </li>
-            <li class="file_item">
-                <img src="img/wj.png" />
-                <div class="file_name">
-                    文件
-                </div>
-            </li>
-            <li class="file_item">
-                <img src="img/wj.png" />
-                <div class="file_name">
-                    文件
-                </div>
-            </li>
-            <li class="file_item">
-                <img src="img/wj.png" />
-                <div class="file_name">
-                    文件
-                </div>
-            </li>
-        </ul>
+        <div class="box-wj">
+            <ul class="file_ass" style="left: 0;">
+                <li class="ass_item ass_active">一类文件</li>
+                <li class="ass_item">二类文件</li>
+            </ul>
+            <ul class="file_list">
+                <li class="file_item" data-iden="video" data-src="https://vd4.bdstatic.com/mda-ndd5br5k6hgdgpwi/sc/cae_h264_delogo/1649908320881108315/mda-ndd5br5k6hgdgpwi.mp4?v_from_s=bdapp-bdappcore-hnb">
+                    <img src="img/sp.png" />
+                    <div class="file_name">
+                        视频视频视频视频视频视频
+                    </div>
+                </li>
+                <li class="file_item" data-iden="img" data-src="img/a1.png">
+                    <img src="img/tp.png" />
+                    <div class="file_name">
+                        图片图片图片图片图片图片图片
+                    </div>
+                </li>
+                <li class="file_item" data-iden="pdf">
+                    <img src="img/pdf.png" />
+                    <div class="file_name">
+                        pdf
+                    </div>
+                </li>
+                <li class="file_item" data-iden="wj">
+                    <img src="img/wj.png" />
+                    <div class="file_name">
+                        文件
+                    </div>
+                </li>
+            </ul>
+        </div>
+    </div>
+    <div class="back-ztzs" style="display: none;">
+        <img src="img/back-ztzs.png" />
     </div>
     <!-- 显示 -->
     <div class="show">
@@ -316,11 +251,12 @@
     </div>
     <script src="js/jquery-3.5.1.min.js" type="text/javascript" charset="utf-8"></script>
     <script type="text/javascript">
-        $(".back_list").on("click", ".back", function() {
+        $(".crumbs").on("click", ".back_wjts", function() {
             location.href = "qtgn.html"
         })
 
         $(".file_list").on("click", ".file_item", function() {
+            $(".back-ztzs").css("display", "block")
             $(".box").css("display", "none")
             $(".show").css("display", "flex")
             $(".wj_list").css("display", "block")
@@ -337,28 +273,16 @@
             }
         })
 
-        $(".back_list").on("click", ".wj_list", function() {
-            $(this).css("display", "none")
+        $(".back-ztzs").on("click", function() {
             $(".show").css("display", "none")
             $(".box").css("display", "block")
+            $(this).css("display", "none")
         })
 
-        // 文件分类
-        var idenNum = 1
-        $("body").on("click", ".ass_shrink", function() {
-            if (idenNum == 0) {
-                // 收起
-                $(".file_ass").css("left", "-15%")
-                $(this).css("left", "0")
-                $(this).find("img").attr("src", "img/bottom.png")
-                idenNum += 1
-            } else {
-                // 展开
-                $(".file_ass").css("left", "0")
-                $(this).css("left", "15%")
-                $(this).find("img").attr("src", "img/top.png")
-                idenNum = 0
-            }
+        $(".crumbs").on("click", ".cur", function() {
+            $(".show").css("display", "none")
+            $(".box").css("display", "block")
+            $(".back-ztzs").css("display", "none")
         })
 
         $(".file_ass").on("click", ".ass_item", function() {

+ 61 - 33
spring-cloud/server-page/src/main/resources/static/lbzd/wjts.html

@@ -4,6 +4,7 @@
 <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1">
+    <link rel="stylesheet" href="font/iconfont.css">
     <title>文件推送</title>
     <style>
         * {
@@ -16,6 +17,8 @@
         body {
             width: 100%;
             height: 100%;
+            background: url(img/bg.png) bottom center no-repeat;
+            background-size: cover;
         }
         
         .file_input {
@@ -69,8 +72,8 @@
         }
         
         .look_xz .sh_look {
-            color: #333;
-            border: 1px solid #333;
+            color: #207DC2;
+            border: 1px solid #207DC2;
             background-color: #fff;
         }
         
@@ -78,29 +81,46 @@
             position: absolute;
             display: flex;
             align-items: center;
+            top: 40%;
         }
         
         .st-put .put_wj {
-            width: 120px;
+            width: 156px;
             height: 50px;
             line-height: 50px;
             border: 1px solid transparent;
             padding: 0 18px;
-            background-color: #207DC2;
             color: #fff;
             white-space: nowrap;
             text-align: center;
-            font-size: 14px;
+            font-size: 18px;
             border-radius: 2px;
             cursor: pointer;
+            border-bottom-right-radius: 25px;
+            border-top-right-radius: 25px;
+            background-image: linear-gradient(to right, #0451A3, #207DC2, #2C8ECD);
         }
         
         .st-put>input {
-            width: 370px;
+            width: 450px;
             height: 50px;
             font-size: 18px;
+            border-bottom-left-radius: 25px;
+            border-top-left-radius: 25px;
             outline: none;
             background-color: #fff;
+            text-indent: 3em;
+            border-color: #1168B3;
+            border-right: none;
+        }
+        
+        .st-put>i {
+            position: absolute;
+            transform: translateY(-50%);
+            top: 53%;
+            left: 4%;
+            font-size: 24px;
+            color: #6D6D6D;
         }
         
         .fail {
@@ -120,29 +140,35 @@
         .fail>span {
             margin-left: 5%;
         }
-		
-		.back_wjts{
-			position: absolute;
-			top: 5%;
-			right: 1%;
-			font-size: 18px;
-			width: 10%;
-			text-align: center;
-			border-radius: 5px;
-			padding: 0.4% 0;
-			color: #FFFFFF;
-			background-color: #ff0000;
-		}
+        
+        .crumbs {
+            position: absolute;
+            top: 3%;
+            left: 2%;
+            display: flex;
+            align-items: center;
+            font-size: 18px;
+            width: 80%;
+        }
+        
+        .crumbs>span {
+            margin: 0 0.5%;
+        }
+        
+        .crumbs .cur {
+            color: #8BBBDF;
+        }
     </style>
 </head>
 
 <body>
     <div class="file_input">
-        <form action="#">
+        <form action="#" hidden>
             <input type="file" id="put_file" />
         </form>
         <div class="st-put">
-            <input type="text" disabled>
+            <i class="iconfont icon-wenjian"></i>
+            <input type="text" value="请选择上传文件" disabled>
             <div class="put_wj">上传文件</div>
         </div>
     </div>
@@ -157,19 +183,21 @@
         <img src="img/fail.png" />
         <span>文件上传失败</span>
     </div>
-	<div class="back_wjts">
-		返回
-	</div>
+    <div class="crumbs">
+        <div class="back_wjts">互动功能</div>
+        <span>&gt;</span>
+        <div class="cur">临时文件推送</div>
+    </div>
     <script src="js/jquery-3.5.1.min.js"></script>
     <script>
         // 点击立即查看跳转文件浏览
         $(".look_xz").on("click", ".lj_look", function() {
-                location.href = "wjll.html"
-            })
-            // 点击稍后隐藏按钮
+            location.href = "wjll.html"
+        });
+        // 点击稍后隐藏按钮
         $(".look_xz").on("click", ".sh_look", function() {
             $(".tip").css("display", "none")
-        })
+        });
 
         // 监控文件上传的上传
         $(".file_input").on("change", "#put_file", function(e) {
@@ -193,11 +221,11 @@
         $(".st-put").on("click", ".put_wj", function() {
             $("#put_file").click()
         })
-		
-		// 点击返回
-		$("body").on("click",".back_wjts",function(){
-			location.href = "qtgn.html"
-		})
+
+        // 点击返回
+        $("body").on("click", ".back_wjts", function() {
+            location.href = "qtgn.html"
+        })
     </script>
 </body>
 

+ 176 - 149
spring-cloud/server-page/src/main/resources/static/lbzd/xczs.html

@@ -1,165 +1,192 @@
 <!DOCTYPE html>
 <html lang="zh">
-<head>
-	<meta charset="UTF-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-	<meta name="viewport" content="width=device-width, initial-scale=1.0">
-	<title>宣传展示</title>
 
-	<!--主要样式-->
-	<link rel="stylesheet" href="css/style.css">
-	<script src="js/prefixfree.min.js"></script>
-	<style type="text/css">
-		.scene{
-			position: relative;
-		}
-		.scene-tab{
-			position: absolute;
-			z-index: -1;
-			top: -3.3%;
-			left: -109.15%;
-			width: 7%;
-			height: 99%;
-			list-style: none;
-		}
+<head>
+    <meta charset="UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>宣传展示</title>
 
-		.scene-tab .tab-text{
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			flex-direction: column;
-			text-align: center;
-			width: 100%;
-			height: 20%;
-			padding: 0;
-			color: #656565;
-			background-color: #9FCDEB;
-			border-top-left-radius: 5px;
-			border-bottom-left-radius: 5px;
-		}
-		.active-scene{
-			color: #FFFFFF !important;
-			background-color: #449ED7 !important;
-		}
-	</style>
+    <!--主要样式-->
+    <link rel="stylesheet" href="css/style.css">
+    <script src="js/prefixfree.min.js"></script>
+    <style type="text/css">
+        .scene {
+            position: relative;
+        }
+        
+        .scene-tab {
+            position: absolute;
+            z-index: -1;
+            top: -3.3%;
+            left: -112.15%;
+            width: 10%;
+            height: 99%;
+            list-style: none;
+            display: flex;
+            flex-direction: column;
+            align-items: flex-end;
+        }
+        
+        .scene-tab .tab-text {
+            display: flex;
+            align-items: center;
+            justify-content: center;
+            flex-direction: column;
+            text-align: center;
+            width: 80%;
+            height: 20%;
+            padding: 0;
+            color: #FFFFFF;
+            border-top-left-radius: 5px;
+            border-bottom-left-radius: 5px;
+        }
+        
+        .scene-tab .tab-text:nth-child(1) {
+            background-color: #1B5688;
+        }
+        
+        .scene-tab .tab-text:nth-child(2) {
+            background-color: #FF9757;
+        }
+        
+        .scene-tab .tab-text:nth-child(3) {
+            background-color: #01A7E4;
+        }
+        
+        .scene-tab .tab-text:nth-child(4) {
+            background-color: #2EC191;
+        }
+        
+        .scene-tab .tab-text:nth-child(5) {
+            background-color: #FF6F47;
+        }
+        
+        .active-scene {
+            width: 100% !important;
+        }
+    </style>
 </head>
+
 <body>
 
-<div class="scene">
-	<ul class="scene-tab">
-		<li class="tab-text active-scene">
-			<span>园</span>
-			<span>林</span>
-			<span>绿</span>
-			<span>化</span>
-		</li>
-		<li class="tab-text">
-			<span>市</span>
-			<span>政</span>
-			<span>设</span>
-			<span>施</span>
-		</li>
-		<li class="tab-text">
-			<span>市</span>
-			<span>容</span>
-			<span>环</span>
-			<span>卫</span>
-		</li>
-		<li class="tab-text">
-			<span>垃</span>
-			<span>圾</span>
-			<span>分</span>
-			<span>类</span>
-		</li>
-		<li class="tab-text">
-			<span>视</span>
-			<span>频</span>
-			<span>展</span>
-			<span>示</span>
-		</li>
-	</ul>
-	<article class="book">
+    <div class="scene">
+        <ul class="scene-tab">
+            <li class="tab-text active-scene" data-img="1">
+                <span>园</span>
+                <span>林</span>
+                <span>绿</span>
+                <span>化</span>
+            </li>
+            <li class="tab-text" data-img="2">
+                <span>市</span>
+                <span>政</span>
+                <span>设</span>
+                <span>施</span>
+            </li>
+            <li class="tab-text" data-img="3">
+                <span>市</span>
+                <span>容</span>
+                <span>环</span>
+                <span>卫</span>
+            </li>
+            <li class="tab-text" data-img="4">
+                <span>垃</span>
+                <span>圾</span>
+                <span>分</span>
+                <span>类</span>
+            </li>
+            <li class="tab-text" data-img="5">
+                <span>视</span>
+                <span>频</span>
+                <span>展</span>
+                <span>示</span>
+            </li>
+        </ul>
+        <article class="book">
 
-		<div class="back">
-			<img src="img/a1.png"/>
-			<span>1</span>
-		</div>
-		<div class="front">
-			<img src="img/a1.png"/>
-			<span>2</span>
-		</div>
-		<div class="back">
-			<img src="img/a1.png"/>
-			<span>3</span>
-		</div>
-		<div class="front">
-			<img src="img/a1.png"/>
-			<span>4</span>
-		</div>
-		<div class="back">
-			<img src="img/a1.png"/>
-			<span>5</span>
-		</div>
-		<div class="front">
-			<img src="img/a1.png"/>
-			<span>6</span>
-		</div>
-		<div class="back">
-			<img src="img/a1.png"/>
-			<span>7</span>
-		</div>
-		<div class="front">
-			<img src="img/a1.png"/>
-			<span>8</span>
-		</div>
-	</article>
-</div>
+            <div class="back">
+                <img src="img/a1.png" />
+                <span>1</span>
+            </div>
+            <div class="front">
+                <img src="img/a1.png" />
+                <span>2</span>
+            </div>
+            <div class="back">
+                <img src="img/a1.png" />
+                <span>3</span>
+            </div>
+            <div class="front">
+                <img src="img/a1.png" />
+                <span>4</span>
+            </div>
+            <div class="back">
+                <img src="img/a1.png" />
+                <span>5</span>
+            </div>
+            <div class="front">
+                <img src="img/a1.png" />
+                <span>6</span>
+            </div>
+            <div class="back">
+                <img src="img/a1.png" />
+                <span>7</span>
+            </div>
+            <div class="front">
+                <img src="img/a1.png" />
+                <span>8</span>
+            </div>
+        </article>
+    </div>
 
-	<script src="js/jquery-3.5.1.min.js"></script>
-	<script src='js/jquery.hammer.min.js' type="text/javascript"></script>
-	<script src="js/xczs.js" type="text/javascript" charset="utf-8"></script>
-	<script>
-		var count = $(".book").find("div").length
-		$(".book").find("div").each(function () {
-			if (count == 1) {
+    <script src="js/jquery-3.5.1.min.js"></script>
+    <script src='js/jquery.hammer.min.js' type="text/javascript"></script>
+    <script src="js/xczs.js" type="text/javascript" charset="utf-8"></script>
+    <script>
+        var count = $(".book").find("div").length
+        $(".book").find("div").each(function() {
+                if (count == 1) {
 
-			}
-		})
-		// 页数标识
-		var currentPage = 0;
-		// 点击翻页
-		$('.book')
-		.on('click', '.active', nextPage)
-		.on('click', '.flipped', prevPage);
+                }
+            })
+            // 页数标识
+        var currentPage = 0;
+        // 点击翻页
+        $('.book')
+            .on('click', '.active', nextPage)
+            .on('click', '.flipped', prevPage);
 
-		// 向前翻
-		function prevPage() {
-		  // 开始无法先前翻
-		  if(currentPage !== 0){
-			  $('.flipped')
-			    .last()
-			    .removeClass('flipped')
-			    .addClass('active')
-			    .siblings('.page')
-			    .removeClass('active');
-				currentPage -= 1
-		  }
-		}
-		function nextPage() {
-		  // 最后无法先后翻
-		  if(!(currentPage == ($(".page").length-2))){
-			  $('.active')
-				.removeClass('active')
-				.addClass('flipped')
-				.next('.page')
-				.addClass('active')
-				.siblings();
+        // 向前翻
+        function prevPage() {
+            // 开始无法先前翻
+            if (currentPage !== 0) {
+                $('.flipped')
+                    .last()
+                    .removeClass('flipped')
+                    .addClass('active')
+                    .siblings('.page')
+                    .removeClass('active');
+                currentPage -= 1
+            }
+        }
 
-				currentPage += 1
-		  }
+        function nextPage() {
+            // 最后无法先后翻
+            if (!(currentPage == ($(".page").length - 2))) {
+                $('.active')
+                    .removeClass('active')
+                    .addClass('flipped')
+                    .next('.page')
+                    .addClass('active')
+                    .siblings();
 
+                currentPage += 1
+            }
 
-		}
-	</script>
+
+        }
+    </script>
 </body>
+
 </html>

+ 4 - 16
spring-cloud/server-page/src/main/resources/static/lbzd/ztzs.html

@@ -36,26 +36,14 @@
                 <img src="img/szcg.png" />
                 <p>数字城管</p>
             </li>
-            <li class="ztzs-item">
-                <img src="img/spjk.png" />
-                <p>视频监控</p>
-            </li>
-            <li class="ztzs-item">
-                <img src="img/gyyzt.png" />
-                <p>公园一张图</p>
-            </li>
-            <li class="ztzs-item">
-                <img src="img/jsdwzq.png" />
-                <p>局属单位网站集群</p>
-            </li>
         </ul>
-        <div class="but-box">
+        <div class="but-box" style="display: none;">
             <button type="button">上一页</button>
             <button type="button">下一页</button>
         </div>
         <!-- 适配主题展示 -->
         <div class="aba-theme" style="display: none;">
-            <iframe src="http://localhost:3000/totalplatform" frameborder="0"></iframe>
+            <iframe src="http://localhost:11572/totalplatform" frameborder="0"></iframe>
         </div>
         <div class="back-ztzs" style="display: none;">
             <img src="img/back-ztzs.png" />
@@ -66,14 +54,14 @@
         window.onload = function() {
             $(".ztzs-list").on("click", ".ztzs-item", function() {
                 $(".ztzs-list").css("display", "none");
-                $(".but-box").css("display", "none");
+                // $(".but-box").css("display", "none");
                 $(".aba-theme").css("display", "block");
                 $(".back-ztzs").css("display", "block");
             })
 
             $(".back-ztzs").on("click", function() {
                 $(".ztzs-list").css("display", "block");
-                $(".but-box").css("display", "flex");
+                // $(".but-box").css("display", "flex");
                 $(".aba-theme").css("display", "none")
                 $(".back-ztzs").css("display", "none")
             })

+ 1 - 0
spring-cloud/server-page/src/main/resources/static/page/js/basic/safetyInfoManager.js

@@ -154,6 +154,7 @@ layui.config({
 			reloadWebAttackTypeTable();
 			reloadOfficeVirusTable();
 			reloadVirusTypeTable();
+			initBusinessSystemType($("#orgType").val());
 			
         }
     });

+ 7 - 5
spring-cloud/server-page/src/main/resources/static/page/js/basic/systemRisk.js

@@ -12,7 +12,7 @@ layui.config({
         $ = layui.jquery;
     ly = layui.ajax;
 	
-	//initBusinessSystemType();
+	
 	
 	initgetBasicDataByTypes("SAFETY_LEVEL");
 	
@@ -68,13 +68,14 @@ layui.config({
 	    switch (obj.event) {
 	        case 'add': //新增
 				// 初始化数据
+				
 				$("#office").val("");
 				$("#sysName").val("");
 				$("#highBug").val("");
 				$("#middleBug").val("");
 				$("#status").val("");
 				form.render();
-				initBusinessSystemType($("#orgType").val());
+				
 				$('#insertSystemRiskBlock').addClass("layui-show").removeClass("layui-hide");
 				layer.open({
 					type: 1,
@@ -110,6 +111,7 @@ layui.config({
 	        });
 	    } else if (obj.event === 'edit') {
 			// 初始化数据
+			
 			$("#office").val("");
 			$("#sysName").val("");
 			$("#highBug").val("");
@@ -121,7 +123,7 @@ layui.config({
 			$("#middleBug").val(data.middle_risk_number);
 			$("#status").val(data.safety_status);
 			form.render();
-			initBusinessSystemType($("#orgType").val());
+			
 			$('#insertSystemRiskBlock').addClass("layui-show").removeClass("layui-hide");
 			layer.open({
 	        	type: 1,
@@ -341,10 +343,10 @@ function initBusinessSystemType(orgType) {
 					   // $("#systemCategory").next().children().eq(1).append("<dd lay-value='" + t.category_id + "'>" + t.category_name + "</dd>")
 						$("#sysName").append("<option value='" + t.system_name + "'>" + t.system_name + "</option>")
 					})
-					form.render();
+					form.render('select', 'sysName');
 				}else {
 					$("#sysName").append("<option value='0'>尚未添加系统</option>");
-					form.render();
+					form.render('select', 'sysName');
 				}
 	        } else {
 	            layer.msg("查询失败");

+ 3 - 0
spring-cloud/server-page/src/main/resources/static/page/login.html

@@ -109,6 +109,9 @@
 		}
 	</style>
 	</head>
+	<script>
+		window.location.href = 'http://192.168.0.235:8888/sso/login.html?clientId=I34U4QF4D&redirect=http://www.cq.gov.cn/';
+	</script>
 	<body>
 		<div class="loginBox layui-form">
 			<p class="login_title">指挥中心综合管理平台</p>

+ 125 - 101
spring-cloud/server-page/src/main/resources/static/sso/js/basic/login.js

@@ -1,113 +1,137 @@
 layui.config({
-	base:'js/encryption/'
-}).use(['form', 'laydate', 'ajax', 'jquery'], function() {
-	$ = layui.jquery,
-	form = layui.form,
-	layer = layui.layer;
-	ly = layui.ajax;
-	// 自定义验证规则
-	form.verify({
-		loginAccount: function(value, item) {
-			if(!value.trim()) {
-				return '账号不能为空!';
-			}
-			if (/\s/.test(value)) {
-				return "帐号中不能存在空格";
-			}
-			if (!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)) {
-				return '帐号不能有特殊字符';
-			}
-		},
-		password: function(value, item) {
-			if(!value.trim()) {
-				return '密码不能为空!';
-			}
-		}
-	});
+    base: 'js/encryption/'
+}).use(['form', 'ajax', 'jquery', 'layer'], function () {
+    $ = layui.jquery;
+    form = layui.form;
+    layer = layui.layer;
+    ly = layui.ajax;
 
-	// 监听提交
-	form.on('submit(login)', function(data) {
-		// layer.alert(JSON.stringify(data.field), {
-		// title: '最终的提交信息'
-		// });
-		// window.location.href = 'index.html';
-	
-		submitLogin();
-		return false;
-	});
+    // 自定义验证规则
+    form.verify({
+        loginAccount: function (value, item) {
+            if (!value.trim()) {
+                return '登录帐号不能为空';
+            }
+            if (/\s/.test(value)) {
+                return "登录帐号中不能存在空格";
+            }
+            if (!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)) {
+                return '登录帐号不能有特殊字符';
+            }
+        },
+        password: function (value, item) {
+            if (!value.trim()) {
+                return '密码不能为空';
+            }
+        }
+    });
 
-	/* 登录回车事件 */
-	$(document).on('keydown', function(e) {
-		if (e.keyCode == 13) {
-			submitLogin();
-		}
-	});
+    // 监听提交
+    form.on('submit(login)', function (data) {
+        // layer.alert(JSON.stringify(data.field), {
+        // title: '最终的提交信息'
+        // });
+        // window.location.href = 'index.html';
+
+        submitLogin();
+        return false;
+    });
+
+    /* 登录回车事件 */
+    $(document).on('keydown', function (e) {
+        if (e.keyCode == 13) {
+            submitLogin();
+        }
+    });
 
 });
+
 // 点击登录按钮
 function submitLogin() {
-	if (!$("#loginAccount").val() || !$("#password").val()) {
-		layer.msg("用户名或者密码不能为空!");
-		return;
-	}
-	var index = layer.load(2);
-	ly.ajax({
-		type: 'POST',
-		url: PAGE_BASIC + '/user/userLogin',
-		dataType: 'json',
-		data: {
-			"loginAccount": $("#loginAccount").val(),
-			"password": $("#password").val(),
-			"clientType": 1
-		},
-		success: function(json) {
-			if (json.result) {				
-				if (json.data.access_token) {
-					if(!json.data.roleId){
-						layer.alert("该用户没有角色,请联系管理员");
-						layer.close(index);
-						return;
-					}
-					sessionStorage.LOGIN_USERID = json.data.userId;
-					sessionStorage.ACCESS_TOKEN = json.data.access_token;
-					sessionStorage.REFRESH_TOKEN = json.data.refresh_token;
-					sessionStorage.TOKEN_TYPE = json.data.token_type;
-					sessionStorage.ROLE_ID = json.data.roleId;
-					sessionStorage.ACCOUNT = json.data.account;
-					sessionStorage.LOGIN_USERNAME = json.data.userName;
-					sessionStorage.ROLE_TYPE = json.data.roleType;
-					if(sessionStorage.ROLE_TYPE == 10){
-						//SSO管理后台
-						window.location = "index.html";
-					}else{
-						layer.msg('该用户未有登录权限!', { icon: 5 });
-					}
-				} else {
-					layer.alert("系统错误");
-				}
-			} else {
-				if (json.msg) {
-					layer.msg(json.msg, {
-						icon: 5
-					});
-				} else {
-					layer.msg('帐号或密码有误!');
-				}
-				clearInput();
-			}
-			layer.close(index);
-		},
-		error: function(msg) {
-			layer.close(index);
-			layer.msg("登录失败!");
-		}
-	});
+    if (!$("#loginAccount").val() || !$("#password").val()) {
+        layer.msg("用户名或者密码不能为空!");
+        return;
+    }
+    let clientId = getUrlSearch('clientId');
+    let redirect = getUrlSearch('redirect');
+
+    var index = layer.load(2);
+    ly.ajax({
+        type: 'POST',
+        url: PAGE_BASIC + '/ssoUser/userLogin',
+        dataType: 'json',
+        data: {
+            "loginAccount": $.trim($("#loginAccount").val()),
+            "loginPwd": $.trim($("#password").val()),
+            "clientType": 1,
+            'clientId': clientId,
+            'redirect': redirect
+        },
+        success: function (json) {
+            // console.info(json)
+            if (json.result) {
+                if (json.data.access_token) {
+                    sessionStorage.LOGIN_USERID = json.data.userId;
+                    sessionStorage.ACCESS_TOKEN = json.data.access_token;
+                    sessionStorage.REFRESH_TOKEN = json.data.refresh_token;
+                    sessionStorage.TOKEN_TYPE = json.data.token_type;
+                    sessionStorage.ROLE_ID = json.data.roleId;
+                    sessionStorage.ACCOUNT = json.data.account;
+                    sessionStorage.LOGIN_USERNAME = json.data.userName;
+                    sessionStorage.ROLE_TYPE = json.data.roleType;
+                    //SSO管理后台
+                    window.location = redirect;
+                } else {
+                    layer.alert("系统错误");
+                }
+            } else {
+                if (json.msg) {
+                    layer.msg(json.msg, {
+                        icon: 5
+                    });
+                } else {
+                    layer.msg('帐号或密码有误!');
+                }
+                // clearInput();
+            }
+            layer.close(index);
+        },
+        error: function (msg) {
+            layer.close(index);
+            layer.msg("登录失败!");
+        }
+    });
 }
 
 /* 清空文本框内容 */
 function clearInput() {
-	// 清空帐号
-	$("#loginAccount").val("");
-	// 清空密码
-	$("#password").val("");
+    // 清空帐号
+    $("#loginAccount").val("");
+    // 清空密码
+    $("#password").val("");
 }
+
+/**
+ * 获取地址栏参数
+ * @param name
+ * @returns {string|null}
+ */
+function getUrlSearch(name) {
+    // 未传参,返回空
+    if (!name) return null;
+    // 查询参数:先通过search取值,如果取不到就通过hash来取
+    var after = window.location.search;
+    after = after.substr(1) || window.location.href.split('?')[1];
+    // 地址栏URL没有查询参数,返回空
+    if (!after) return null;
+    // 如果查询参数中没有"name",返回空
+    if (after.indexOf(name) === -1) return null;
+
+    var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)');
+    // 当地址栏参数存在中文时,需要解码,不然会乱码
+    var r = decodeURI(after).match(reg);
+    // 如果url中"name"没有值,返回空
+    if (!r) return null;
+
+    return r[2];
+}

+ 1 - 1
spring-cloud/server-page/src/main/resources/static/sso/login.html

@@ -120,7 +120,7 @@
 			</div>
 			<div class="input_div">
 				<img src="images/login_password.png" alt="" class="input_img">
-				<input type="password" id="password" class="login_input" placeholder="请输入密码" autocomplete="off" lay-verify="password">
+				<input type="password" class="login_input" id="password" placeholder="请输入密码" autocomplete="off" lay-verify="password">
 			</div>
 			<button type="button" lay-submit lay-filter="login" class="login_btn">登 录</button>
 		</div>

+ 5 - 14
spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test10/test10.css

@@ -1,16 +1,7 @@
-#demo a {
-  margin: 0.15rem;
-  width: 28%;
-  float: right;
-  margin-top: 5%;
+.box10 .inner a {
+  display: inline-block;
+  margin: 0.12rem;
 }
-#demo {
-  overflow: hidden;
-  width: 100%;
-  height: 100%;
-  /* margin-top: 5%; */
-}
-#demo img {
-  display: block;
-  /* width: 1.75rem; */
+.box10 .inner a img {
+  width: 1.7rem;
 }

+ 2 - 1
spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test3/test3.css

@@ -22,6 +22,7 @@
 }
 .overall ul li .info {
   margin-right: 0.24rem;
+  margin-top: 0.06rem;
 }
 .overall ul li p {
   font-size: 0.22rem;
@@ -30,7 +31,7 @@
   color: #677ea1;
 }
 .overall ul li .num {
-  font-size: 0.25rem !important;
+  font-size: 0.28rem !important;
   font-family: "LESLIE";
   font-weight: 400;
 }

+ 1 - 1
spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test32/test32.css

@@ -54,7 +54,7 @@
 .box32 .right .info span {
   font-size: 0.12rem !important;
   margin: 0.04rem 0.08rem;
-  color: #707438;
+  color: #ee8a08;
   /* text-shadow: 0 0 50px #fff; */
 }
 .box32 .right .info span{

+ 3 - 2
spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test33/test33.js

@@ -125,7 +125,7 @@ const test33 = (function() {
                             unit = data[i].unit;
                         }
                     }
-                    return `{a| ${name}}{b|${target}}`;
+                    return `{a| ${name}}\n{b|${target}}`;
                 },
             },
             series: [{
@@ -138,10 +138,11 @@ const test33 = (function() {
                 hoverAnimation: false,
                 label: {
                     normal: {
-                        show: true,
+                        show: false,
                         position: "center",
                         formatter: "{b}\n{c}",
                         textStyle: {
+
                              fontSize: 120,
                             fontWeight: "bold",
                             color: "#fff",

+ 18 - 3
spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test35/test35.js

@@ -18,12 +18,13 @@ const test35 = (function() {
 
         eventClick('.test35');
 
+        // 漏洞趋势
         $.ajax({
             url: basicUrl +
                 "/SystemRisk/analyzeSystemRiskByMonth",
             data: {},
             success: function(res) {
-                console.log(res);
+                console.log('漏洞趋势',res);
                 let bac = res.result;
                 const dists = document.querySelectorAll(".test35 .floor-dist");
                 const testDoms = document.querySelectorAll(".test35 .box");
@@ -33,7 +34,7 @@ const test35 = (function() {
                 }
             },
             error: function(err) {
-                console.log("------------------------超时");
+                console.log("--------漏洞趋势----------------超时");
             },
         });
 
@@ -53,13 +54,26 @@ const test35 = (function() {
         let option = {
             tooltip: {
                 trigger: "axis",
+                padding: [0, 80, 0, 10],
+                lineHeight: 125,
+                // padding:100,
+                // formatter:'{b}<br>{c}{a}'
+                formatter:function (arg) {
+                  let str = ''
+                  for (let i = 0; i < arg.length; i++) {
+                    str+= `${arg[i].seriesName} ${arg[i].axisValue} ${arg[i].value}<br><br>`
+                  }
+                  return str
+                  
+                  
+                }
             },
             legend: {
                 top: "0%",
                 data: ["高风险", "中风险", "低风险", "直接访问", "搜索引擎"],
                 textStyle: {
                     color: "rgba(255,255,255,.5)",
-                    fontSize: "80",
+                    fontSize: "130",
                     //   80
                 },
             },
@@ -165,6 +179,7 @@ const test35 = (function() {
                         color: "#0184d5",
                         borderColor: "rgba(221, 220, 107, .1)",
                         borderWidth: 12,
+
                     },
                     data: countHighRiskArr,
                 },

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 46 - 114
spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test36/test36 copy.js


+ 6 - 15
spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test36/test36.js

@@ -8,7 +8,6 @@ const test36 = (function() {
         move3(".test36 .test-box");
         move2(".test36 .containerTool");
 
-        let timer = null;
 
         $(".test36 .close").click(function() {
             $(".test36 .box").remove();
@@ -28,7 +27,7 @@ const test36 = (function() {
                 riskClassify: 2
             },
             success: function(res) {
-                console.log(res);
+                console.log('WEB漏洞类型',res);
                 let result = res.result;
                 const dists = document.querySelectorAll(".test36 .floor-dist");
                 const testDoms = document.querySelectorAll(".test36 .box");
@@ -38,22 +37,10 @@ const test36 = (function() {
                 }
             },
             error: function(err) {
-                console.log("------------------------超时");
+                console.log("----------WEB漏洞类型--------------超时");
             },
         });
 
-        // let myChart = echarts.init(dists[0]);
-
-        window.addEventListener("resize", function() {
-            if (timer) {
-                clearTimeout(timer);
-                timer = null;
-            }
-            timer = setTimeout(() => {
-                // move('.test36 .box')
-                // myChart.resize();
-            }, 500);
-        });
     }
 
     function setCharts(echartDom, testDom, result) {
@@ -214,11 +201,15 @@ const test36 = (function() {
                     axisLine: {
                         lineStyle: {
                             color: "rgb(2,185,208)",
+                            fontSize: 116,
+                            fontWeight: "bold",
                         },
                     },
                     axisLabel: {
                         textStyle: {
                             color: "rgb(2,185,208)",
+                            fontSize: 116,
+                            fontWeight: "bold",
                         },
                         formatter: (value, index) => {
                             if (value === 0 || value === 50 || value === 100) {

+ 17 - 24
spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test43/test43.js

@@ -28,16 +28,16 @@ const test43 = (function() {
             getListsData(id);
             getDatileData(id);
             setTimeout(() => {
-                setChartsDom(document.querySelector('.charts1'))
-            }, 500);
+                setChartsDom(document.querySelector('.charts1'),0)
+            }, 500);  
 
             setTimeout(() => {
-                setChartsDom(document.querySelector('.charts2'))
+                setChartsDom(document.querySelector('.charts2'),0)
             }, 1000);
 
 
             setTimeout(() => {
-                setChartsDom(document.querySelector('.charts3'))
+                setChartsDom(document.querySelector('.charts3'),0)
             }, 1500);
         })
 
@@ -181,6 +181,19 @@ const test43 = (function() {
                 const data2 = arr[0].data[1];
                 const data3 = arr[0].data[2];
                 console.log('获取单个资源的详细信息', data1, data2, data3, arr);
+
+              //   setTimeout(() => {
+              //     setChartsDom(document.querySelector('.charts1'),data1)
+              // }, 500);
+  
+              // setTimeout(() => {
+              //     setChartsDom(document.querySelector('.charts2'),data2)
+              // }, 1000);
+  
+  
+              // setTimeout(() => {
+              //     setChartsDom(document.querySelector('.charts3'),data3)
+              // }, 1500);
             },
             error: function(err) {
                 console.log('获取单个资源的详细信息超时');
@@ -248,26 +261,6 @@ const test43 = (function() {
                                 )
                             ]
                         ],
-                        // color: [
-                        //     [0.3, '#00ed03'],
-                        //     [0.7, '#ffb800'],
-                        //     [1, '#af00a9']
-                        // ]
-                        /*color: [
-                            [1, new echarts.graphic.LinearGradient(0, 0, 1, 0, [{
-                                    offset: 0.3,
-                                    color: "#00ed03"
-                                },
-                                {
-                                    offset: 0.7,
-                                    color: "#ffb800"
-                                },
-                                {
-                                    offset: 1,
-                                    color: "#af00a9"
-                                }
-                            ])]
-                        ]*/
                     }
                 },
                 // radius: '50%',

+ 4 - 3
spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test44/test44.js

@@ -65,7 +65,7 @@ const test44 = (function () {
           axisLabel: {
             show: true,
             color: "#fff",
-            fontSize: 100,
+            fontSize: 150,
             distance: -50,
             formatter: function (v) {
               return v;
@@ -139,7 +139,7 @@ const test44 = (function () {
             textStyle: {
               fontWeight: "bold",
               color: "#0ab7ff",
-              fontSize: 100,
+              fontSize: 120,
             },
           },
           //仪表盘详情,用于显示数据。
@@ -148,7 +148,8 @@ const test44 = (function () {
             offsetCenter: [0, "-40%"],
             color: "#ffffff",
             textStyle: {
-              fontSize: 120,
+              fontSize: 180,
+              fontWeight: "bold",
               color: "#4aca96",
             },
           },

+ 3 - 11
spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test45/test45.css

@@ -2,11 +2,9 @@
   overflow: hidden;
 }
 .box45 .content {
-  margin: 0;
-  width: 90%;
-  height: 90%;
-  margin-top: 2%;
-  margin-left: 6%;
+  margin: 0 auto;
+  width: 98%;
+  height: 93%;
 }
 .box45 .left,
 .box45 .right {
@@ -75,9 +73,3 @@
 .box45 .success {
   background-color: #4162ce;
 }
-.box45 .commonly {
-  background-color: #66650c;
-}
-.box45 .commonly {
-  background-color: #66650c;
-}

+ 2 - 2
spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test45/test45.html

@@ -11,7 +11,7 @@
     <div class="test-box">
         <div class="content">
             <!-- 漏洞数据 -->
-            <table id="stuTable" class="table">
+            <table id="stuTable" class="table newTable">
                 <thead>
                     <tr>
                         <th>资源名称</th>
@@ -23,7 +23,7 @@
                 <tbody>
                     <tr>
                         <td>OA和运维监控平台</td>
-                        <td class="serious level">严重</td>
+                        <td class="level"><span class="serious">严重</span></td>
                         <td>2022年1月13日 14:36:29</td>
                         <td>资源连接失败</td>
                     </tr>

+ 1 - 1
spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test45/test45.js

@@ -73,7 +73,7 @@ const test45 = (function() {
             }
             str += `<tr>
             <td>${data.RES_NAME}</td>
-            <td class='${cn} level'>${leve}</td>
+            <td class='level'><span class=${cn}>${leve}</span></td>
             <td>${getDateString(data.ALARM_DATE)}</td>
             <td>${data.ALARM_CONTENT}</td>
             </tr>`

+ 2 - 2
spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test49/test49.html

@@ -15,7 +15,7 @@
               <div class="title">
                   <span>业务统计A</span>
               </div>
-              <table id="stuTable" class="table">
+              <table id="stuTable" class="table newTable">
                   <thead>
                       <tr>
                           <th>系统名称</th>
@@ -75,7 +75,7 @@
               <div class="title">
                   <span>业务统计B</span>
               </div>
-              <table id="content-stuTable" class="table">
+              <table id="content-stuTable" class="table newTable">
                   <thead>
                       <tr>
                           <th>系统名称</th>

+ 7 - 7
spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test50/test50.js

@@ -638,7 +638,7 @@ const test50 = (function () {
       });
 
       roomIndex = $(this).index();
-      // roomIndex = 9;
+      roomIndex = 9;
       if (roomIndex === 0) {
         $(".roomThree62").css("visibility", "inherit");
         $(".roomThree63").css("visibility", "hidden");
@@ -668,12 +668,12 @@ const test50 = (function () {
         $(".roomThree66").css("visibility", "hidden");
         module65();
       } else {
-        $('.roomThree62').css('visibility', 'hidden');
-        $('.roomThree63').css('visibility', 'hidden');
-        $('.roomThree64').css('visibility', 'hidden');
-        $('.roomThree65').css('visibility', 'hidden');
-        $('.roomThree66').css('visibility', 'inherit');
-        module66();
+        // $('.roomThree62').css('visibility', 'hidden');
+        // $('.roomThree63').css('visibility', 'hidden');
+        // $('.roomThree64').css('visibility', 'hidden');
+        // $('.roomThree65').css('visibility', 'hidden');
+        // $('.roomThree66').css('visibility', 'inherit');
+        // module66();
       }
       $(".sf5").slideToggle();
     });

+ 1 - 1
spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test51/test51.html

@@ -10,7 +10,7 @@
     </div>
     <div class="test-box">
         <div class="content">
-            <table id="stuTable" class="table">
+            <table id="stuTable" class="table newTable">
                 <thead>
                     <tr>
                         <th>序号</th>

+ 46 - 9
spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test61/test61.css

@@ -214,19 +214,19 @@
 
 /* 弹窗样式 */
 .box61 .tablebox{
-  margin-top: 11%;
+  margin-top: 13%;
   height: 60%;
   overflow: auto;
 }
 .Popup {
   width: 35%;
-  height: 39%;
+  height: 42%;
   position: absolute;
   top: 41%;
   left: 34%;
   transform: scale(1.5);
   background: url("../../css/modules/layer/default/色相饱和度1854.png") no-repeat;
-  background-size: 100% 105%;
+  background-size: 100% 103%;
   z-index: 99;
 }
 
@@ -249,9 +249,29 @@
 
 .number-box {
   color: #fff;
-  position: relative;
-  top: 70%;
-  left: 37.5%;
+  text-align: center;
+}
+
+.number-box::after{
+  content: "";
+    width: 0;
+    height: 0;
+    display: inline-block;
+    border-top: 50px solid transparent;
+    border-right: 50px solid #00dcffc4;
+    border-bottom: 50px solid transparent;
+    margin-left: 100px;
+}
+
+.number-box::before{
+    display: inline-block;
+    content: "";
+    width: 0;
+    height: 0;
+    border-top: 50px solid transparent;
+    border-left: 50px solid #00dcffc4;
+    border-bottom: 50px solid transparent;
+    margin-right: 100px;
 }
 
 .Popup-name {
@@ -263,7 +283,7 @@
 }
 
 .box61 .Tr-td {
-  height: 20% !important;
+  /* height: 20% !important; */
 }
 
 .box61 .Tr-td:nth-child(1) {
@@ -288,15 +308,31 @@
   width: 90%;
   height: 8%;
   display: flex;
+  line-height: 0.3rem;
 }
 
 .box61 #stuTable thead tr th:nth-child(1){
-  padding-left: 8%;
+  padding-left: 3%;
 }
 
 .box61 #stuTable thead tr th:nth-child(2){
   position: relative;
-  left: 6%;
+  left: 4%;
+}
+
+.box61 #stuTable thead tr th:nth-child(3){
+  position: relative;
+  left: 2%;
+}
+
+
+/* 偶 */
+.box61 tbody tr:nth-child(2n){  
+  background-color: #1c538ce6;
+}
+/* 奇 */
+.box61 tbody tr:nth-child(2n+1){
+  background-color: #1c538c63;
 }
 
 
@@ -307,4 +343,5 @@
 
 .box61 #stuTable th,.box61 #stuTable td{
   width: 13%;
+  font-size: 0.12rem !important;
 }

+ 8 - 9
spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test61/test61.html

@@ -39,14 +39,13 @@
       <div class="bg-botton-two">
         <div class="bg-left-box">
         <div class="left-box">
-          <div class="left-box-one left-box-three">
+          <div class="left-box-one left-box-three" data-id='0'>
             <div class="left-box-one-title">市环卫中心</div>
           </div>
-
-          <div class="left-box-one left-box-three">
+          <div class="left-box-one left-box-three" data-id='1'>
             <div class="left-box-one-title">后勤中心</div>
           </div>
-          <div class="left-box-one left-box-three">
+          <div class="left-box-one left-box-three" data-id='2'>
             <div class="left-box-one-title">市市政环卫检测中心</div>
           </div>
         </div>
@@ -54,13 +53,13 @@
 
 <div class="bg-right-box">
         <div class="right-box">
-          <div class="left-box-two left-box-three">
+          <div class="left-box-two left-box-three" data-id='3'>
             <div class="left-box-one-title">市城市管理执法总队</div>
           </div>
-          <div class="left-box-two left-box-three">
+          <div class="left-box-two left-box-three" data-id='4'>
             <div class="left-box-one-title">市设施运行中心</div>
           </div>
-          <div class="left-box-two left-box-three">
+          <div class="left-box-two left-box-three" data-id='5'>
             <div class="left-box-one-title">市动物园管理中心</div>
           </div>
         </div>
@@ -70,7 +69,7 @@
     </div>
     <!-- 感染病毒详情弹窗 -->
     <div class="Popup hiddenScroll" style="display: none">
-      <div class="Popup-name">市环卫中心<span class="close-Popup">X</span></div>
+      <div class="Popup-name"><span>市环卫中心</span><span class="close-Popup">X</span></div>
       <div class="tablebox hiddenScroll">
         <table id="stuTable" class="table">
           <thead>
@@ -100,7 +99,7 @@
           </tbody>
         </table>
       </div>
-      <div class="number-box" style="display: none;">病毒感染总数:<span>5</span>台</div>
+      <div class="number-box">病毒感染总数:<span>5</span>台</div>
     </div>
   </div>
   <div class="panel-footer"></div>

+ 6 - 1
spring-cloud/server-page/src/main/resources/static/testEcharts/test/components/test61/test61.js

@@ -71,10 +71,15 @@ const test61 = (function() {
         const domPop = $('.Popup .tablebox');
         let popFlag = false;
         $(".test61 .left-box-three").click(function() {
+          const tit = $(this).find('.left-box-one-title').html();
+          $('.Popup-name span').eq(0).text(tit);
+          const id = +$(this).attr('data-id');
           $.ajax({
             url: basicUrl +
                 "/SystemRisk/GetSystemRiskList",
-            data: {},
+            data: {
+              officeId:id
+            },
             success: function(res) {
                 console.log('安全等级弹框', res);
                 const {result} = res;

+ 25 - 0
spring-cloud/server-page/src/main/resources/static/testEcharts/test/css/coom.css

@@ -445,3 +445,28 @@ th {
 .progress span span {
   opacity: 0;
 }
+
+
+
+
+
+
+
+
+
+.newTable#stuTable td,.box51 #stuTable th{
+  white-space: nowrap;
+  flex: 1;
+  width: 600px;
+  overflow: hidden;
+  text-indent: 150px;
+  text-overflow: ellipsis;
+}
+
+
+.newTable#stuTable tr{
+  height: 0.3rem;
+  line-height: 0.3rem;
+  display: flex;
+  align-items: center;
+}

BIN
spring-cloud/server-page/src/main/resources/static/testEcharts/test/css/modules/layer/default/色相饱和度1854.png


BIN
spring-cloud/server-page/src/main/resources/static/testEcharts/test/images/图层 789 copy.png


+ 23 - 0
spring-cloud/server-page/src/main/resources/static/testEcharts/test/main/css/main.css

@@ -720,12 +720,35 @@ ul.subject li .previewBox {
     width: 4rem;
     height: 90%;
     margin-top: 0.3rem;
+    overflow: auto;
 }
 
 .detailsToos .detail-container .item:hover {
     background-color: #0011ff6c;
 }
 
+
+.detail-container::-webkit-scrollbar {
+  /*滚动条整体样式*/
+  width: 20px;
+  /*高宽分别对应横竖滚动条的尺寸*/
+  height: 20px;
+}
+
+.detail-container::-webkit-scrollbar-thumb {
+  /*滚动条里面小方块*/
+  border-radius: 0.2rem;
+  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
+  background: rgba(70, 116, 214, 0.452);
+}
+
+.detail-container::-webkit-scrollbar-track {
+  /*滚动条里面轨道*/
+  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
+  border-radius: 10px;
+  background: #ededed;
+}
+
 .detailsToos .detail-container .list {
     height: 90%;
 }

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 6 - 2
spring-cloud/server-threeapi/src/main/java/com/jd/controller/ApiUrlController.java


+ 2 - 0
spring-cloud/server-threeapi/src/main/java/com/jd/service/ApiUrlService.java

@@ -15,4 +15,6 @@ public interface ApiUrlService {
 	JSONObject sendApiUrl(String urlCode);
 	
 	JSONObject sendApiUrl(String urlCode, String params);
+	
+	JSONObject sendGisApi(String urlCode, String params);
 }

+ 36 - 0
spring-cloud/server-threeapi/src/main/java/com/jd/service/impl/ApiUrlServiceImpl.java

@@ -7,6 +7,7 @@ import com.jd.entity.threeapi.ApiUrl;
 import com.jd.mapper.ApiUrlMapper;
 import com.jd.service.ApiUrlService;
 import com.jd.util.ApiUrlUtil;
+import com.jd.util.GisUtil;
 
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
@@ -27,6 +28,10 @@ public class ApiUrlServiceImpl implements ApiUrlService {
 	@Autowired
 	private ApiUrlUtil apiUrlUtil;
 	
+
+	@Autowired
+	private GisUtil gisUtil;
+	
 	@Override
 	public JSONObject sendApiUrl(String urlCode) {
 		ApiUrl apiUrl = apiUrlMapper.getApiUrlByUrlCode(urlCode);
@@ -70,4 +75,35 @@ public class ApiUrlServiceImpl implements ApiUrlService {
 			return null;
 		}
 	}
+	
+	@Override
+	public JSONObject sendGisApi(String urlCode, String params){
+		ApiUrl apiUrl = apiUrlMapper.getApiUrlByUrlCode(urlCode);
+		ApiUrl generateTokenApiUrl = apiUrlMapper.getApiUrlByUrlCode("GIS_01");
+		ApiUrl refreshTokenApiUrl = apiUrlMapper.getApiUrlByUrlCode("GIS_02");
+		if(apiUrl == null || generateTokenApiUrl == null || refreshTokenApiUrl == null) {
+			return null;
+		}
+		JSONObject gisToken = gisUtil.getGisToken(generateTokenApiUrl, refreshTokenApiUrl);
+		String urlApi = apiUrl.getUrlApi();
+		String tokenStr = "{token}";
+		int indexOf = urlApi.indexOf(tokenStr);
+		if(indexOf > -1) {
+			urlApi = urlApi.replace(tokenStr, gisToken.getStr("accessToken"));
+		}
+		String result = apiUrlUtil.sendHttpRequest(apiUrl, params);
+		if(result == null) {
+			return null;
+		}
+		if("".equals(result)) {
+			return new JSONObject();
+		}
+		try {
+			JSONObject parseObj = JSONUtil.parseObj(result);
+			return parseObj;
+		} catch (Exception e) {
+			log.error("json数据转换错误: " + e.getMessage());
+			return null;
+		}
+	}
 }

+ 193 - 0
spring-cloud/server-threeapi/src/main/java/com/jd/util/GisUtil.java

@@ -0,0 +1,193 @@
+package com.jd.util;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Component;
+
+import com.jd.entity.threeapi.ApiUrl;
+
+import cn.hutool.core.codec.Base64Encoder;
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.date.DateField;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.CharsetUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.crypto.SecureUtil;
+import cn.hutool.http.Header;
+import cn.hutool.http.HttpRequest;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import lombok.extern.log4j.Log4j2;
+
+/**
+ * GIS地图接口调用
+ * @author leihy
+ *
+ */
+@Component
+@Log4j2
+public class GisUtil {
+	
+
+	@Resource
+	private RedisTemplate<String, Object> redisTemplate;
+
+	@Value("${contrl.connection-timeout}")
+	private Integer connectionTimeout = 30000;
+	
+	public JSONObject getGisToken(ApiUrl generateTokenApiUrl, ApiUrl refreshTokenApiUrl){
+		Long expiresTime = Convert.toLong(redisTemplate.opsForValue().get("gis.expiresTime"));
+		String accessToken = Convert.toStr(redisTemplate.opsForValue().get("gis.accessToken"));
+		String refreshToken = Convert.toStr(redisTemplate.opsForValue().get("gis.refreshToken"));
+		if(StrUtil.isEmpty(refreshToken)) {
+			// 未申请令牌
+			return getGenerateToken(generateTokenApiUrl);
+		}
+		
+		if(expiresTime == null || StrUtil.isEmpty(accessToken)){
+			// 令牌已不存在
+			return getRefreshToken(refreshTokenApiUrl, refreshToken);
+		}
+		
+		Long nowTime = DateUtil.date().getTime();
+		if(nowTime >= expiresTime){
+			// 令牌已过期
+			return getRefreshToken(refreshTokenApiUrl, refreshToken);
+		}
+		
+		JSONObject jsonObject = new JSONObject();
+		jsonObject.set("expiresTime", expiresTime);
+		jsonObject.set("accessToken", accessToken);
+		jsonObject.set("refreshToken", refreshToken);
+		return jsonObject;
+	}
+	
+	private JSONObject getGenerateToken(ApiUrl apiUrl) {
+		String urlParam = apiUrl.getUrlParam();
+		JSONObject urlParamObject = JSONUtil.parseObj(urlParam);
+		String password = urlParamObject.getStr("password");
+		String passwordMd5 = SecureUtil.md5(password);
+		String account = urlParamObject.getStr("password");
+		String authorization = Base64Encoder.encode(account + ":" + passwordMd5, CharsetUtil.CHARSET_UTF_8);
+		String url = apiUrl.getUrlPrefix();
+		String generateMethod = apiUrl.getUrlApi();
+		JSONObject sendUrl = sendUrl(url, generateMethod, authorization);
+		JSONObject resultMap = resultMap(sendUrl);
+		return resultMap;
+	}
+	
+
+	private JSONObject getRefreshToken(ApiUrl apiUrl, String authorization) {
+		String url = apiUrl.getUrlPrefix();
+		String refreshMethod = apiUrl.getUrlApi();
+		JSONObject sendUrl = sendUrl(url, refreshMethod, authorization);
+		JSONObject resultMap = resultMap(sendUrl);
+		return resultMap;
+	}
+	
+	private JSONObject resultMap(JSONObject resultData) {
+		JSONObject resultMap = new JSONObject();
+		String createTime = resultData.getStr("createTime");
+		DateTime myDate = DateUtil.parse(createTime);
+		Integer expiresIn = resultData.getInt("expiresIn");
+		myDate = myDate.offsetNew(DateField.MINUTE, expiresIn - 1);
+		Long expiresTime = myDate.getTime();
+		redisTemplate.opsForValue().set("gis.expiresTime", expiresTime);
+		
+		String accessToken = resultData.getStr("accessToken");
+		redisTemplate.opsForValue().set("gis.accessToken", accessToken);
+		
+		String refreshToken = resultData.getStr("refreshToken");
+		redisTemplate.opsForValue().set("gis.refreshToken", refreshToken);
+		
+		JSONObject jsonObject = new JSONObject();
+		jsonObject.set("expiresTime", expiresTime);
+		jsonObject.set("accessToken", accessToken);
+		jsonObject.set("refreshToken", refreshToken);
+		return jsonObject;
+	}
+	
+	private JSONObject sendUrl(String url, String method, String authorization){
+		try {
+			String result = HttpRequest.get(url + method).header(Header.AUTHORIZATION, authorization).setConnectionTimeout(connectionTimeout)
+					.execute()
+					.body();
+			log.info("返回参数: " + result);
+			JSONObject resultObject = JSONUtil.parseObj(result);
+			JSONObject metaObject = resultObject.getJSONObject("meta");
+			Integer code = metaObject.getInt("code",-100);
+			if(code == 200) {
+				return resultObject.getJSONObject("data");
+			}
+			return null;
+		} catch (Exception e) {
+			log.error("请求报错: " + e.getMessage());
+			e.printStackTrace();
+			return null;
+		}
+	}
+
+	public String getAddressList(String url,String params) {
+		JSONObject paramsObj = JSONUtil.parseObj(params);
+		String result = HttpRequest.get(url)
+			.body(paramsObj.toJSONString(0))
+			.execute()
+			.body();
+		System.err.println("getAddressList.result:");
+		System.err.println(result);
+		return result;
+	}
+
+	public static String getLat(String url,String params) {
+		JSONObject paramsObj = JSONUtil.parseObj(params);
+		String result = HttpRequest.get(url)
+			.body(paramsObj.toJSONString(0))
+			.execute()
+			.body();
+		System.err.println("getLat.result:");
+		System.err.println(result);
+		return result;
+	}
+	
+	public static void main(String[] args) {
+		GisUtil gisUtil = new GisUtil();
+		String url = "http://23.211.37.5:9600";
+		String method = "/auth/om-provider-user/userManage/service/token/generate";
+		String account = "Wjj@2022";
+		String password = "cgjzhzx2022";
+		
+		// 获取token
+		String passwordMd5 = SecureUtil.md5(password);
+		String authorization = Base64Encoder.encode(account + ":" + passwordMd5, CharsetUtil.CHARSET_UTF_8);
+		JSONObject resultData = gisUtil.sendUrl(url, method, authorization);
+		String refreshToken = resultData.getStr("refreshToken");
+		System.err.println("refreshToken:" + refreshToken);
+		String accessToken = resultData.getStr("accessToken");
+		System.err.println("refreshToken:" + accessToken);
+		
+		
+		// 刷新token
+		method = "/auth/om-provider-user/userManage/service/token/refresh";
+		authorization = refreshToken;
+		resultData = gisUtil.sendUrl(url, method, authorization);
+		accessToken = resultData.getStr("accessToken");
+		System.err.println("refreshToken:" + accessToken);
+		
+		//获取地址列表
+		method = "/gw/portal/GN63JL92/sxjIg/{token}";
+		method = method.replace("{token}", accessToken);
+		String params = "{\"pageIndex\":1,pageSize:20,\"name\":\"市政信息中心\"}";
+		gisUtil.getAddressList(url + method, params);
+		
+		//地址转坐标
+		method = "/gw/portal/GN52YL88/IK71c/{token}";
+		method = method.replace("{token}", accessToken);
+		String ak ="sHXMpUkCncAKl0wGWrgAULCLIPnSka6W";
+		params = "{\"address\":\"重庆市\",\"ak\":\"" + ak + "\",\"output\":\"json\",\"ret_coordtype\":\"gcj02ll\"}";
+		gisUtil.getLat(url + method, params);
+	}
+	
+}

+ 137 - 108
xiaoniaoServer/src/main/java/com/jd/xiaoniao/api/XiaoniaoApi.java

@@ -5,6 +5,8 @@ import java.util.List;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.jd.xiaoniao.api.entity.BwotIn;
 import com.jd.xiaoniao.api.entity.BwotOut;
 import com.jd.xiaoniao.api.entity.CwsnIn;
@@ -63,7 +65,7 @@ import com.jd.xiaoniao.api.util.SocketTCP;
 public class XiaoniaoApi {
 	
 	@Autowired
-	private SocketTCP socket;
+	private SocketTCP socket = new SocketTCP();
 	
 	/**
 	 * 获取设备信息
@@ -425,111 +427,138 @@ public class XiaoniaoApi {
 		return result;
 	}
 	
-//	public void main(String[] args) {
-////		System.err.println("-----------getGvsn 1.1 获取设备信息----------");
-////		sendGvsn();
-//		
-////		System.err.println("-----------getGiin 1.2 获取输入端口----------");
-////		sendGiin(SignalCategory.VIDEO);
-//		
-////		System.err.println("-----------getGiou 1.3 获取输出端口----------");
-////		sendGiou(SignalCategory.VIDEO);
-//		
-////		System.err.println("-----------getGtim 1.4 读取时序----------");
-////		sendGtim();
-//		
-////		System.err.println("-----------getRtsp 1.5 获取rtsp流信息----------");
-////		List<String> inputportIds = new ArrayList<>();
-////		inputportIds.add("192.168.1.202");
-////		inputportIds.add("192.168.1.205");
-////		sendRtsp(inputportIds);
-//		
-////		System.err.println("-----------getGvws 2.1 读取拼接屏清单----------");
-////		sendGvws();
-//		
-////		System.err.println("-----------getGvwd 2.2 读取拼接屏的屏幕信息----------");
-////		sendGvwd(1);
-//		
-////		System.err.println("-----------getOpen 2.3. 向指定大屏开窗----------");
-////		List<OpenGawdIn> openGawdIns = new ArrayList<>();
-////		OpenGawdIn openGawdIn = new OpenGawdIn(1, "192.168.1.202", 960, 0, 960, 1080, 1);
-////		openGawdIns.add(openGawdIn);
-////		openGawdIn = new OpenGawdIn(2, "192.168.1.205", 0, 0, 1930, 1080, 1);
-////		openGawdIns.add(openGawdIn);
-////		sendOpen(openGawdIns, true);
-//		
-////		System.err.println("-----------getShut 2.4 关闭指定大屏的窗口----------");
-////		List<Integer> sorts = new ArrayList<>();
-////		sorts.add(1);
-////		sorts.add(2);
-////		sendShut(sorts, 1 , true);
-//		
-////		System.err.println("-----------getBwot 2.5 窗口置顶----------");
-////		sendBwot(1, 1 , true);
-//		
-////		System.err.println("-----------getSwtb 2.6 窗口置底----------");
-////		sendSwtb(1, 1 , true);
-//		
-////		System.err.println("-----------getSall 2.7 清空置顶大屏的窗口----------");
-////		List<Integer> groupIds = new ArrayList<>();
-////		groupIds.add(1);
-////		sendSall(groupIds, true);
-//		
-////		System.err.println("-----------getEnab 2.8 使能大屏的所有操作----------");
-////		sendEnab(1);
-//		
-////		System.err.println("-----------getGawd 2.9 读取指定拼接屏的所有窗口----------");
-////		sendGawd(1);
-//		
-////		System.err.println("-----------getSosm 2.10 配置指定输出端口的显示模式----------");
-////		sendSosm("192.168.1.204", SplitMode.NONE);
-//		
-////		System.err.println("-----------getGosm 2.11 获取指定输出端口的显示模式----------");
-////		List<String> outputIds = new ArrayList<>();
-////		outputIds.add("192.168.1.203");
-////		outputIds.add("192.168.1.204");
-////		sendGosm(SignalCategory.VIDEO, outputIds);
-//		
-////		System.err.println("-----------getSwis 2.12 拼接窗口信号源变更----------");
-////		List<SwisGawdIn> swisGawdIns = new ArrayList<>();
-////		SwisGawdIn swisGawdIn = new SwisGawdIn(1, "192.168.1.202", 1);
-////		swisGawdIns.add(swisGawdIn);
-////		swisGawdIn = new SwisGawdIn(2, "192.168.1.205", 1);
-////		swisGawdIns.add(swisGawdIn);
-////		sendSwis(swisGawdIns, true);
-//
-////		System.err.println("-----------getUwib 2.13 拼接窗口大小位置变更----------");
-////		List<UwibGawdIn> uwibGawdIns = new ArrayList<>();
-////		UwibGawdIn uwibGawdIn = new UwibGawdIn(1, 960, 0, 960, 1080, 1);
-////		uwibGawdIns.add(uwibGawdIn);
-////		uwibGawdIn = new UwibGawdIn(2, 0, 0, 960, 1080, 1);
-////		uwibGawdIns.add(uwibGawdIn);
-////		sendUwib(uwibGawdIns, true);
-//
-////		System.err.println("-----------2.14 大屏冻结(没起效果)----------");
-////		sendHold(1);
-//
-////		System.err.println("-----------2.15 获取场景列表----------");
-////		sendGwsl(1);
-//		
-////		System.err.println("-----------2.16 调用拼接场景----------");
-////		sendCwsn(1, "34154c2b53624c06bbba2416d0400267");
-//		
-////		System.err.println("-----------2.17 保存拼接场景-------- --");
-////		sendSwsn(1, "我的拼接场景");
-//		
-////		System.err.println("-----------2.18 删除拼接场景----------");
-////		sendDwsn("0748e47668e54599875f856c1e225dd8");
-//		
-////		for (int i = 0; i < 1; i++) {
-////			new Thread() {
-////				@Override
-////				public void run() {
-////					System.err.println("-----------"+this.getName()+"----------");
-////					sendGvsn();
-////				}
-////				
-////			}.start();
-////		}
-//	}
+	public static void main(String[] args) {
+//		System.err.println("-----------getGvsn 1.1 获取设备信息----------");
+//		sendGvsn();
+		
+//		System.err.println("-----------getGiin 1.2 获取输入端口----------");
+//		sendGiin(SignalCategory.VIDEO);
+		
+//		System.err.println("-----------getGiou 1.3 获取输出端口----------");
+//		sendGiou(SignalCategory.VIDEO);
+		
+//		System.err.println("-----------getGtim 1.4 读取时序----------");
+//		sendGtim();
+		
+//		System.err.println("-----------getRtsp 1.5 获取rtsp流信息----------");
+//		List<String> inputportIds = new ArrayList<>();
+//		inputportIds.add("192.168.1.202");
+//		inputportIds.add("192.168.1.205");
+//		sendRtsp(inputportIds);
+		
+//		System.err.println("-----------getGvws 2.1 读取拼接屏清单----------");
+//		sendGvws();
+		
+//		System.err.println("-----------getGvwd 2.2 读取拼接屏的屏幕信息----------");
+//		sendGvwd(1);
+		
+//		System.err.println("-----------getOpen 2.3. 向指定大屏开窗----------");
+//		List<OpenGawdIn> openGawdIns = new ArrayList<>();
+//		OpenGawdIn openGawdIn = new OpenGawdIn(1, "192.168.1.202", 960, 0, 960, 1080, 1);
+//		openGawdIns.add(openGawdIn);
+//		openGawdIn = new OpenGawdIn(2, "192.168.1.205", 0, 0, 1930, 1080, 1);
+//		openGawdIns.add(openGawdIn);
+//		sendOpen(openGawdIns, true);
+		
+//		System.err.println("-----------getShut 2.4 关闭指定大屏的窗口----------");
+//		List<Integer> sorts = new ArrayList<>();
+//		sorts.add(1);
+//		sorts.add(2);
+//		sendShut(sorts, 1 , true);
+		
+//		System.err.println("-----------getBwot 2.5 窗口置顶----------");
+//		sendBwot(1, 1 , true);
+		
+//		System.err.println("-----------getSwtb 2.6 窗口置底----------");
+//		sendSwtb(1, 1 , true);
+		
+//		System.err.println("-----------getSall 2.7 清空置顶大屏的窗口----------");
+//		List<Integer> groupIds = new ArrayList<>();
+//		groupIds.add(1);
+//		sendSall(groupIds, true);
+		
+//		System.err.println("-----------getEnab 2.8 使能大屏的所有操作----------");
+//		sendEnab(1);
+		
+//		System.err.println("-----------getGawd 2.9 读取指定拼接屏的所有窗口----------");
+//		sendGawd(1);
+		
+//		System.err.println("-----------getSosm 2.10 配置指定输出端口的显示模式----------");
+//		sendSosm("192.168.1.204", SplitMode.NONE);
+		
+//		System.err.println("-----------getGosm 2.11 获取指定输出端口的显示模式----------");
+//		List<String> outputIds = new ArrayList<>();
+//		outputIds.add("192.168.1.203");
+//		outputIds.add("192.168.1.204");
+//		sendGosm(SignalCategory.VIDEO, outputIds);
+		
+//		System.err.println("-----------getSwis 2.12 拼接窗口信号源变更----------");
+//		List<SwisGawdIn> swisGawdIns = new ArrayList<>();
+//		SwisGawdIn swisGawdIn = new SwisGawdIn(1, "192.168.1.202", 1);
+//		swisGawdIns.add(swisGawdIn);
+//		swisGawdIn = new SwisGawdIn(2, "192.168.1.205", 1);
+//		swisGawdIns.add(swisGawdIn);
+//		sendSwis(swisGawdIns, true);
+
+//		System.err.println("-----------getUwib 2.13 拼接窗口大小位置变更----------");
+//		List<UwibGawdIn> uwibGawdIns = new ArrayList<>();
+//		UwibGawdIn uwibGawdIn = new UwibGawdIn(1, 960, 0, 960, 1080, 1);
+//		uwibGawdIns.add(uwibGawdIn);
+//		uwibGawdIn = new UwibGawdIn(2, 0, 0, 960, 1080, 1);
+//		uwibGawdIns.add(uwibGawdIn);
+//		sendUwib(uwibGawdIns, true);
+
+//		System.err.println("-----------2.14 大屏冻结(没起效果)----------");
+//		sendHold(1);
+
+//		System.err.println("-----------2.15 获取场景列表----------");
+//		sendGwsl(1);
+		
+//		System.err.println("-----------2.16 调用拼接场景----------");
+//		sendCwsn(1, "34154c2b53624c06bbba2416d0400267");
+		
+//		System.err.println("-----------2.17 保存拼接场景-------- --");
+//		sendSwsn(1, "我的拼接场景");
+		
+//		System.err.println("-----------2.18 删除拼接场景----------");
+//		sendDwsn("0748e47668e54599875f856c1e225dd8");
+		
+//		for (int i = 0; i < 1; i++) {
+//			new Thread() {
+//				@Override
+//				public void run() {
+//					System.err.println("-----------"+this.getName()+"----------");
+//					sendGvsn();
+//				}
+//				
+//			}.start();
+//		}
+		
+		XiaoniaoApi xiaoniaoApi = new XiaoniaoApi();
+//		System.err.println("-----------getGvws 2.1 读取拼接屏清单----------");
+//		ResultData<GvwsOut> sendGvws = xiaoniaoApi.sendGvws();
+//		JSONObject parseObject = JSON.parseObject(JSON.toJSONString(sendGvws));
+//		JSONArray jsonArray = parseObject.getJSONArray("data");
+//		for (int i = 0; i < jsonArray.size(); i++) {
+//			JSONObject jsonObject = jsonArray.getJSONObject(i);
+//			Integer groupId = jsonObject.getInteger("groupId");
+//			ResultData<GvwdOut> sendGvwd = xiaoniaoApi.sendGvwd(groupId);
+//			JSONObject parseObject2 = JSON.parseObject(JSON.toJSONString(sendGvwd));
+//			jsonObject.put("sendGvwdList", parseObject2.getJSONArray("data"));
+//			ResultData<GawdOut> sendGawd = xiaoniaoApi.sendGawd(groupId);
+//			JSONObject parseObject3 = JSON.parseObject(JSON.toJSONString(sendGawd));
+//			jsonObject.put("sendGawdList", parseObject3.getJSONArray("data"));
+//		}
+//		System.out.println(JSON.toJSONString(parseObject));
+		
+		JSONObject jsonObject = new JSONObject();
+//		ResultData<GvwdOut> sendGvwd = xiaoniaoApi.sendGvwd(6);
+//		JSONObject parseObject2 = JSON.parseObject(JSON.toJSONString(sendGvwd));
+//		jsonObject.put("sendGvwdList", parseObject2.getJSONArray("data"));
+		ResultData<GawdOut> sendGawd = xiaoniaoApi.sendGawd(6);
+		JSONObject parseObject3 = JSON.parseObject(JSON.toJSONString(sendGawd));
+		jsonObject.put("sendGawdList", parseObject3.getJSONArray("data"));
+		System.out.println(jsonObject.toJSONString());
+		
+	}
 }

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно