From b971c4366b403aa4e3a970f6f7d60ec5b0c177ef Mon Sep 17 00:00:00 2001 From: 2821744554@qq.com <2821744554@qq.com> Date: Wed, 8 Apr 2020 08:09:34 +0800 Subject: [PATCH] smartcampussearcg增加获取教师和学生个人信息的接口 --- cloud/RibbonConsume/src/main/resources/bootstrap.yml | 3 ++- cloud/dahua/pom.xml | 10 +++++----- cloud/dahua/src/main/java/com/example/dahua/control/FileControl.java | 8 ++++++++ cloud/dahua/src/main/java/com/example/dahua/control/UserControl.java | 31 +++++++++++++++++++++++++++++-- cloud/dahua/src/main/java/com/example/dahua/utils/AuthService.java | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cloud/dahua/src/main/java/com/example/dahua/utils/HttpUtils.java | 12 ++++++++++++ cloud/dahua/src/main/resources/application.yaml | 62 -------------------------------------------------------------- cloud/dahua/src/main/resources/application.yml | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ cloud/dahua/src/main/resources/bootstrap.yml | 40 ++++++++++++++++++++++++++++++++++++++++ cloud/fIle-center/src/main/java/com/sincere/file/control/FileControl.java | 17 ++++++++++++++++- cloud/fIle-center/src/main/java/com/sincere/file/service/impl/AliyunOssServiceImpl.java | 6 ++++-- cloud/getaway/src/main/java/com/sincere/getaway/client/filter/AccessFilter.java | 1 + cloud/getaway/src/main/java/com/sincere/getaway/client/filter/SwaggerHeaderFilter.java | 3 +++ cloud/getaway/src/main/resources/application.yml | 9 ++++++++- cloud/haikangface/src/main/java/com/sincere/haikangface/CMSServer.java | 2 +- cloud/mypulsar/src/main/java/com/example/mypulsar/MyRunnerableInt.java | 11 +++++++++-- cloud/mypulsar/src/main/java/com/example/mypulsar/dao/DeviceDao.java | 2 +- cloud/mypulsar/src/main/java/com/example/mypulsar/utils/ControlUtils.java | 18 +++++++++++------- cloud/mypulsar/src/main/java/com/example/mypulsar/utils/HttpUtil.java | 7 ++++--- cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/controller/UserController.java | 15 +++++++++++++++ cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/mapper/UserMapper.java | 9 +++++++++ cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/model/StudentBean.java | 307 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/UserService.java | 4 ++++ cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/impl/UserServiceImpl.java | 13 +++++++++++++ cloud/server1/src/main/java/com/sincere/server1/FileUtils.java | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cloud/server1/src/main/java/com/sincere/server1/listener/EurekaInstanceCanceledListener.java | 39 ++++++++++++++++++++++++++++----------- cloud/server2/src/main/java/com/sincere/server2/FileUtils.java | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cloud/server2/src/main/java/com/sincere/server2/listener/EurekaInstanceCanceledListener.java | 39 ++++++++++++++++++++++++++++----------- 28 files changed, 887 insertions(+), 110 deletions(-) create mode 100644 cloud/dahua/src/main/java/com/example/dahua/utils/AuthService.java delete mode 100644 cloud/dahua/src/main/resources/application.yaml create mode 100644 cloud/dahua/src/main/resources/application.yml create mode 100644 cloud/dahua/src/main/resources/bootstrap.yml create mode 100644 cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/model/StudentBean.java create mode 100644 cloud/server1/src/main/java/com/sincere/server1/FileUtils.java create mode 100644 cloud/server2/src/main/java/com/sincere/server2/FileUtils.java diff --git a/cloud/RibbonConsume/src/main/resources/bootstrap.yml b/cloud/RibbonConsume/src/main/resources/bootstrap.yml index 5ddb423..134b541 100644 --- a/cloud/RibbonConsume/src/main/resources/bootstrap.yml +++ b/cloud/RibbonConsume/src/main/resources/bootstrap.yml @@ -12,8 +12,9 @@ spring: eureka: client: serviceUrl: + defaultZone: http:// # defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/ - defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/ +# defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/ #http://134.224.249.33:1111/eureka/ 正式库 #http://134.224.249.33:1111/eureka/ 测试库 #http://127.0.0.1:8761/eureka,http://127.0.0.1:8762/eureka diff --git a/cloud/dahua/pom.xml b/cloud/dahua/pom.xml index cf91588..303eda6 100644 --- a/cloud/dahua/pom.xml +++ b/cloud/dahua/pom.xml @@ -118,11 +118,11 @@ mybatis-spring-boot-starter 2.0.1 - - com.sincere - common - 1.0.0 - + + + + + diff --git a/cloud/dahua/src/main/java/com/example/dahua/control/FileControl.java b/cloud/dahua/src/main/java/com/example/dahua/control/FileControl.java index d7f9f07..37fcfa4 100644 --- a/cloud/dahua/src/main/java/com/example/dahua/control/FileControl.java +++ b/cloud/dahua/src/main/java/com/example/dahua/control/FileControl.java @@ -83,6 +83,14 @@ public class FileControl { } + @RequestMapping(value = "imgsSend", method = RequestMethod.GET) + @ApiOperation(value = "照片下放") + public boolean imgsSend(@RequestParam("schoolId") String schoolId, @RequestParam("type") int type) { + userService.sendUserInfos(schoolId, "22", type); + return true; + } + + } diff --git a/cloud/dahua/src/main/java/com/example/dahua/control/UserControl.java b/cloud/dahua/src/main/java/com/example/dahua/control/UserControl.java index 7136116..da8d294 100644 --- a/cloud/dahua/src/main/java/com/example/dahua/control/UserControl.java +++ b/cloud/dahua/src/main/java/com/example/dahua/control/UserControl.java @@ -6,7 +6,6 @@ import com.example.dahua.async.SendUserInfoTask; import com.example.dahua.lib.CompressPic; import com.example.dahua.service.UserService; import com.example.dahua.utils.*; -import com.sincere.common.util.AuthService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -370,6 +369,33 @@ public class UserControl { // } + @RequestMapping(value = "FaceSearch", method = RequestMethod.POST) + @ApiOperation("人脸搜索") + public String FaceSearch(@RequestPart("file")MultipartFile file) { + + // 请求url + String url = "https://aip.baidubce.com/rest/2.0/face/v3/search"; + try { + Map map = new HashMap<>(); + map.put("image", Base64Util.encode(file.getBytes())); + map.put("liveness_control", "NORMAL"); + map.put("group_id_list", "One"); + map.put("image_type", "BASE64"); + map.put("quality_control", "NORMAL"); + String param = GsonUtils.toJson(map); + // 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。 + String accessToken = getAuth(); + String result = HttpUtil.post(url, accessToken, "application/json", param); + System.out.println(result); + return result; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + + } + + @RequestMapping(value = "movePic", method = RequestMethod.GET) @ApiOperation("转移下发失败的图片到批量图片库") public void movePic(@RequestParam("schoolId") int schoolId, @RequestParam("userType") int usertype, @RequestParam("deviceId") String deviceId) { @@ -449,7 +475,8 @@ public class UserControl { - private String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token="+ AuthService.getAuth(); + private String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token="+AuthService.getAuth(); +// + AuthService.getAuth(); private String getAnswer(String imgUrl, int type) { RestTemplate restTemplate = new RestTemplate(); diff --git a/cloud/dahua/src/main/java/com/example/dahua/utils/AuthService.java b/cloud/dahua/src/main/java/com/example/dahua/utils/AuthService.java new file mode 100644 index 0000000..69539fa --- /dev/null +++ b/cloud/dahua/src/main/java/com/example/dahua/utils/AuthService.java @@ -0,0 +1,93 @@ +package com.example.dahua.utils; + +import org.json.JSONObject; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; + +/** + * 获取token类 + */ +public class AuthService { + //设置APPID/AK/SK + public static final String APP_ID = "15990462"; + public static final String API_KEY = "t70Rzr6SGmfU9S6MrqAkspsY"; + public static final String SECRET_KEY = "nSqpqtrf7cCjo8vOB9knL85nwWNoxwvS "; + /** + * 获取权限token + * @return 返回示例: + * { + * "access_token": "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567", + * "expires_in": 2592000 + * } + */ + //获取文字识别id + public static String getAuth() { + // 官网获取的 API Key 更新为你注册的 + String clientId = "t70Rzr6SGmfU9S6MrqAkspsY"; + // 官网获取的 Secret Key 更新为你注册的 + String clientSecret = "nSqpqtrf7cCjo8vOB9knL85nwWNoxwvS"; + return getAuth(clientId, clientSecret); + } + + public static String getFaceAuthToken() { + // 官网获取的 API Key 更新为你注册的 + String clientId = "u6rV4YxRZmwzKj56N0DCW8eO"; + // 官网获取的 Secret Key 更新为你注册的 + String clientSecret = "Krp3KhmIBdnNEsRa1LavMHuZl0KhQGVm"; + return getAuth(clientId, clientSecret); + } + + /** + * 获取API访问token + * 该token有一定的有效期,需要自行管理,当失效时需重新获取. + * @param ak - 百度云官网获取的 API Key + * @param sk - 百度云官网获取的 Securet Key + * @return assess_token 示例: + * "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567" + */ + public static String getAuth(String ak, String sk) { + // 获取token地址 + String authHost = "https://aip.baidubce.com/oauth/2.0/token?"; + String getAccessTokenUrl = authHost + // 1. grant_type为固定参数 + + "grant_type=client_credentials" + // 2. 官网获取的 API Key + + "&client_id=" + ak + // 3. 官网获取的 Secret Key + + "&client_secret=" + sk; + try { + URL realUrl = new URL(getAccessTokenUrl); + // 打开和URL之间的连接 + HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection(); + connection.setRequestMethod("GET"); + connection.connect(); + // 获取所有响应头字段 +// Map> map = connection.getHeaderFields(); +// // 遍历所有的响应头字段 +// for (String key : map.keySet()) { +// System.err.println(key + "--->" + map.get(key)); +// } + // 定义 BufferedReader输入流来读取URL的响应 + BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); + String result = ""; + String line; + while ((line = in.readLine()) != null) { + result += line; + } + /** + * 返回结果示例 + */ +// System.err.println("result:" + result); + JSONObject jsonObject = new JSONObject(result); + String access_token = jsonObject.getString("access_token"); + return access_token; + } catch (Exception e) { + System.err.printf("获取token失败!"); + e.printStackTrace(System.err); + } + return null; + } +} diff --git a/cloud/dahua/src/main/java/com/example/dahua/utils/HttpUtils.java b/cloud/dahua/src/main/java/com/example/dahua/utils/HttpUtils.java index 1a0d561..ebd1710 100644 --- a/cloud/dahua/src/main/java/com/example/dahua/utils/HttpUtils.java +++ b/cloud/dahua/src/main/java/com/example/dahua/utils/HttpUtils.java @@ -7,9 +7,12 @@ import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.client.RestTemplate; import java.io.File; +import java.util.HashMap; +import java.util.Map; public class HttpUtils { @@ -49,4 +52,13 @@ public class HttpUtils { } + public static boolean imgsSend(String schoolId, int type){ + String url = "http://121.40.109.21:8991/file/imgsSend?schoolId="+schoolId+"&type="+type; + RestTemplate restTemplate = new RestTemplate(); + ResponseEntity result = restTemplate.getForEntity(url,Boolean.class); + System.out.println("result:"+result.getBody()); + return result.getBody(); + } + + } diff --git a/cloud/dahua/src/main/resources/application.yaml b/cloud/dahua/src/main/resources/application.yaml deleted file mode 100644 index 949e07a..0000000 --- a/cloud/dahua/src/main/resources/application.yaml +++ /dev/null @@ -1,62 +0,0 @@ -server: - port: 8991 -#spring: -# datasource: -# username: szjxtuser -# password: RQminVCJota3H1u8bBYH -# url: jdbc:sqlserver://116.62.155.137:33419;database=SmartCampus -# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver -# application: -# name: dahuaserver - -spring: - datasource: - campus: - username: szjxtuser - password: RQminVCJota3H1u8bBYH - jdbc-url: jdbc:sqlserver://116.62.155.137:33419;database=SmartCampus - driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver -# username: SZJXTUSER -# password: xst200919 -# jdbc-url: jdbc:sqlserver://60.190.202.57:14333;database=SmartCampusSZ -# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver - xiaoan: - jdbc-url: jdbc:sqlserver://116.62.241.27:33419;database=xiaoanhxy - username: szjxtuser - password: RQminVCJota3H1u8bBYH - driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver -# jdbc-url: jdbc:sqlserver://60.190.202.57:14333;database=xiaoanhxy -# username: SZJXTUSER -# password: xst200919 -# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver - application: - name: dahuaserver - - -eureka: - instance: - hostname: localhost - lease-expiration-duration-in-seconds: 60 - lease-renewal-interval-in-seconds: 10 - prefer-ip-address: true - client: - service-url: -# defaultZone: http://localhost:8761/eureka/ - defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/ - -mybatis: - campus: - type-aliases-package: com.example.dahua.dao - mapper-locations: classpath:mapper/*.xml - xiaoan: - type-aliases-package: com.example.dahua.xiananDao - mapper-locations: classpath:xiaoanmapper/*.xml - config-location: classpath:mybatis-config.xml - - -#haikangpic: E:\wwwhtdocs\HFface\FaceLogs\ - -#haikangfaceurl: http://60.190.202.57:8899 - - - diff --git a/cloud/dahua/src/main/resources/application.yml b/cloud/dahua/src/main/resources/application.yml new file mode 100644 index 0000000..9c00388 --- /dev/null +++ b/cloud/dahua/src/main/resources/application.yml @@ -0,0 +1,48 @@ +#spring: +# datasource: +# username: szjxtuser +# password: RQminVCJota3H1u8bBYH +# url: jdbc:sqlserver://116.62.155.137:33419;database=SmartCampus +# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver +# application: +# name: dahuaserver + +spring: + datasource: + campus: + username: szjxtuser + password: RQminVCJota3H1u8bBYH + jdbc-url: jdbc:sqlserver://116.62.155.137:33419;database=SmartCampus + driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver +# username: SZJXTUSER +# password: xst200919 +# jdbc-url: jdbc:sqlserver://60.190.202.57:14333;database=SmartCampusSZ +# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver + xiaoan: + jdbc-url: jdbc:sqlserver://116.62.241.27:33419;database=xiaoanhxy + username: szjxtuser + password: RQminVCJota3H1u8bBYH + driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver +# jdbc-url: jdbc:sqlserver://60.190.202.57:14333;database=xiaoanhxy +# username: SZJXTUSER +# password: xst200919 +# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver + + + +mybatis: + campus: + type-aliases-package: com.example.dahua.dao + mapper-locations: classpath:mapper/*.xml + xiaoan: + type-aliases-package: com.example.dahua.xiananDao + mapper-locations: classpath:xiaoanmapper/*.xml + config-location: classpath:mybatis-config.xml + + +#haikangpic: E:\wwwhtdocs\HFface\FaceLogs\ + +#haikangfaceurl: http://60.190.202.57:8899 + + + diff --git a/cloud/dahua/src/main/resources/bootstrap.yml b/cloud/dahua/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..88d5266 --- /dev/null +++ b/cloud/dahua/src/main/resources/bootstrap.yml @@ -0,0 +1,40 @@ +#端口 +server: + port: 8991 #固定端口 +# port: ${randomServerPort.value[5000,5005]} #随机端口 + +#服务名称 +spring: + application: + name: dahua + +#management: +# endpoints: +# web: +# exposure: +# include: "*" +# endpoint: +# health: +# show-details: always + +#eureka client配置 +eureka: + client: + serviceUrl: +# defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/ + defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/ + #http://134.224.249.33:1111/eureka/ 正式库 + #http://134.224.249.33:1111/eureka/ 测试库 + #http://127.0.0.1:8761/eureka,http://127.0.0.1:8762/eureka + registry-fetch-interval-seconds: 5 + instance-info-replication-interval-seconds: 10 + instance: +# prefer-ip-address: false + instance-id: ${spring.application.name} +# instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${spring.application.instance_id:${server.port}} #固定端口 +# instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${spring.application.instance_id:${randomServerPort.value[5000,5005]}} #随机端口 + lease-renewal-interval-in-seconds: 10 #每隔几秒告诉eureka服务器我还存活,用于心跳检测 + lease-expiration-duration-in-seconds: 10 #如果心跳检测一直没有发送,10秒后会从eureka服务器中将此服务剔除 +# status-page-url: http://${spring.cloud.client.ip-address}:${server.port}/doc.html # ${server.port}为该服务的端口号 + hostname: 114.55.30.100 +# status-page-url: http://${spring.cloud.client.ip-address}:${randomServerPort.value[5000,5005]}/document.html # ${server.port}为该服务的端口号 \ No newline at end of file diff --git a/cloud/fIle-center/src/main/java/com/sincere/file/control/FileControl.java b/cloud/fIle-center/src/main/java/com/sincere/file/control/FileControl.java index 9a71f30..41fe4ec 100644 --- a/cloud/fIle-center/src/main/java/com/sincere/file/control/FileControl.java +++ b/cloud/fIle-center/src/main/java/com/sincere/file/control/FileControl.java @@ -43,17 +43,32 @@ public class FileControl { FileService fileService; @PostMapping("fileUpload") - @ApiOperation("上传文件") + @ApiOperation("上传文件(重复文件会新增1)") public String fileUpload(@RequestParam("file") MultipartFile file, HttpServletRequest request) throws Exception { String ossPath = request.getHeader("ossPath");//oss的二级目录 + + FileInfo fileInfo = fileService.upload(file, ossPath); + + return fileInfo.getUrl(); + + } + + + @PostMapping("fileUpload1") + @ApiOperation("上传文件") + public String fileUpload1(@RequestParam("file") MultipartFile file, HttpServletRequest request) throws Exception { + + String ossPath = request.getHeader("ossPath");//oss的二级目录 + FileInfo fileInfo = fileService.upload(file, ossPath); return fileInfo.getUrl(); } + @DeleteMapping("deleteFile/{fileName}") @ApiOperation("删除文件") public boolean deleteFile(@PathVariable String fileName, HttpServletRequest request) { diff --git a/cloud/fIle-center/src/main/java/com/sincere/file/service/impl/AliyunOssServiceImpl.java b/cloud/fIle-center/src/main/java/com/sincere/file/service/impl/AliyunOssServiceImpl.java index f999f37..a577cc0 100644 --- a/cloud/fIle-center/src/main/java/com/sincere/file/service/impl/AliyunOssServiceImpl.java +++ b/cloud/fIle-center/src/main/java/com/sincere/file/service/impl/AliyunOssServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.io.File; +import java.util.UUID; /** * @author 作者 owen E-mail: 624191343@qq.com @@ -41,8 +42,9 @@ public class AliyunOssServiceImpl extends AbstractFileService { @Override protected void uploadFile(MultipartFile file, FileInfo fileInfo,String filePath) throws Exception { - ossClient.putObject(bucketName, filePath+"/"+fileInfo.getName(), file.getInputStream()); - fileInfo.setUrl(domain+"/" +filePath+ "/" + fileInfo.getName()); + String fileName = UUID.randomUUID().toString()+"."+fileInfo.getName().split("\\.")[1]; + ossClient.putObject(bucketName, filePath+"/"+fileName, file.getInputStream()); + fileInfo.setUrl(domain+"/" +filePath+ "/" + fileName); } @Override diff --git a/cloud/getaway/src/main/java/com/sincere/getaway/client/filter/AccessFilter.java b/cloud/getaway/src/main/java/com/sincere/getaway/client/filter/AccessFilter.java index 4919a65..88b9c72 100644 --- a/cloud/getaway/src/main/java/com/sincere/getaway/client/filter/AccessFilter.java +++ b/cloud/getaway/src/main/java/com/sincere/getaway/client/filter/AccessFilter.java @@ -46,6 +46,7 @@ public class AccessFilter implements GlobalFilter, Ordered { @Override public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { String accessToken = this.extractToken(exchange.getRequest()); + System.out.println("path:"+exchange.getRequest().getPath().value()); // 默认 boolean flag = false; for (String ignored :permitUrlProperties.getIgnored()) { diff --git a/cloud/getaway/src/main/java/com/sincere/getaway/client/filter/SwaggerHeaderFilter.java b/cloud/getaway/src/main/java/com/sincere/getaway/client/filter/SwaggerHeaderFilter.java index b0308d1..c2db915 100644 --- a/cloud/getaway/src/main/java/com/sincere/getaway/client/filter/SwaggerHeaderFilter.java +++ b/cloud/getaway/src/main/java/com/sincere/getaway/client/filter/SwaggerHeaderFilter.java @@ -21,6 +21,9 @@ public class SwaggerHeaderFilter extends AbstractGatewayFilterFactory { return (exchange, chain) -> { ServerHttpRequest request = exchange.getRequest(); String path = request.getURI().getPath(); + + System.out.println("path:"+path); + if (!StringUtils.endsWithIgnoreCase(path, SwaggerProvider.API_URI)) { return chain.filter(exchange); } diff --git a/cloud/getaway/src/main/resources/application.yml b/cloud/getaway/src/main/resources/application.yml index 7320d89..fdb9c82 100644 --- a/cloud/getaway/src/main/resources/application.yml +++ b/cloud/getaway/src/main/resources/application.yml @@ -55,6 +55,13 @@ spring: - Path=/NewSmartCampus/** filters: - StripPrefix=1 + - id: dahua +# uri: lb://dahua + uri: http://114.55.30.100:8991 + predicates: + - Path=/dahua/** + filters: + - StripPrefix=1 # default-filters: # - DedupeResponseHeader=Access-Control-Allow-Origin, RETAIN_UNIQUE # discovery: @@ -78,4 +85,4 @@ ribbon: url: - ignored: /SmartCampusWebApi/**,/authserver/**,/NewSmartCampus/**,/file-center/** \ No newline at end of file + ignored: /SmartCampusWebApi/**,/authserver/**,/NewSmartCampus/**,/file-center/**,/dahua/** \ No newline at end of file diff --git a/cloud/haikangface/src/main/java/com/sincere/haikangface/CMSServer.java b/cloud/haikangface/src/main/java/com/sincere/haikangface/CMSServer.java index 8de1466..6be5ce2 100644 --- a/cloud/haikangface/src/main/java/com/sincere/haikangface/CMSServer.java +++ b/cloud/haikangface/src/main/java/com/sincere/haikangface/CMSServer.java @@ -398,7 +398,7 @@ public class CMSServer implements ApplicationRunner { strXMLData.read(); String strXML = new String(strXMLData.byValue); -// System.out.println(strXML); + System.out.println(strXML); if (null == alarmUtils) { alarmUtils = new AlarmUtils(deviceDao); diff --git a/cloud/mypulsar/src/main/java/com/example/mypulsar/MyRunnerableInt.java b/cloud/mypulsar/src/main/java/com/example/mypulsar/MyRunnerableInt.java index 5be42e7..fae8464 100644 --- a/cloud/mypulsar/src/main/java/com/example/mypulsar/MyRunnerableInt.java +++ b/cloud/mypulsar/src/main/java/com/example/mypulsar/MyRunnerableInt.java @@ -199,7 +199,7 @@ public class MyRunnerableInt implements ApplicationRunner { String value = statue.getValue(); deviceBean.setValue(value); - System.out.println("插入数据:" +value); + System.out.println(devId+"-插入数据:" +value); switch (code) { case "va_temperature"://温度 deviceBean.setValue(Integer.parseInt(value)/100+""); @@ -263,8 +263,14 @@ public class MyRunnerableInt implements ApplicationRunner { case "pir"://人体感应 log("人体感应:" + value); value = (value.equals("pir") ? "有人" : "无人"); + deviceBean.setValue(value); - calOpenOrCloseDevWithPir(deviceBean); + try { + Thread.sleep(1000); + calOpenOrCloseDevWithPir(deviceBean); + } catch (InterruptedException e) { + e.printStackTrace(); + } break; case "cur_voltage"://当前电压 // value = Integer.parseInt(value) / 10 + "V"; @@ -293,6 +299,7 @@ public class MyRunnerableInt implements ApplicationRunner { private void calOpenOrCloseDevWithPir(DeviceBean deviceBean) { List calDevContrls = deviceDao.getCalDevContrlWidthDevId(deviceBean.getDevId()); + System.out.println("calOpenOrCloseDevWithPir:"+calDevContrls.toString()); if (null != calDevContrls && calDevContrls.size() > 0) { if (deviceBean.getValue().equals("有人")) deviceBean.setValue("1"); else deviceBean.setValue("0"); diff --git a/cloud/mypulsar/src/main/java/com/example/mypulsar/dao/DeviceDao.java b/cloud/mypulsar/src/main/java/com/example/mypulsar/dao/DeviceDao.java index 366e7a9..c983541 100644 --- a/cloud/mypulsar/src/main/java/com/example/mypulsar/dao/DeviceDao.java +++ b/cloud/mypulsar/src/main/java/com/example/mypulsar/dao/DeviceDao.java @@ -43,6 +43,6 @@ public interface DeviceDao { @Select("select * from CalDevContrl where Devid = #{Devid} and Status = 1") List getCalDevContrlWidthDevId(@Param("Devid") String devId); - @Select("select * from CalDevContrl where State = 1 and Id = #{Id}") + @Select("select * from CalDevBeContrl where State = 1 and Id = #{Id}") CalDevBeContrl getCalDevBeControl(@Param("Id") String Id); } diff --git a/cloud/mypulsar/src/main/java/com/example/mypulsar/utils/ControlUtils.java b/cloud/mypulsar/src/main/java/com/example/mypulsar/utils/ControlUtils.java index c9a4114..13ab8af 100644 --- a/cloud/mypulsar/src/main/java/com/example/mypulsar/utils/ControlUtils.java +++ b/cloud/mypulsar/src/main/java/com/example/mypulsar/utils/ControlUtils.java @@ -47,7 +47,9 @@ public class ControlUtils { calDevContrls) { String inUseTime = cal.getInUserTime();//联动的时间范围,[{"Week":"5","StartTime":"14:02","EndTime":"14:06"}] + if (inUseTime == null) break; +// System.out.println("inUseTime:"+inUseTime); try { JSONArray jsonArray = new JSONArray(inUseTime); @@ -72,9 +74,9 @@ public class ControlUtils { Date date = simpleDateFormat1.parse(new Date().getHours() + ":" + new Date().getMinutes() + ":" + new Date().getSeconds()); long starTime = startDate.getTime(); - System.out.println("startDate:" + starTime); - System.out.println("endDate:" + endDate.getTime()); - System.out.println("date:" + date.getTime()); +// System.out.println("startDate:" + starTime); +// System.out.println("endDate:" + endDate.getTime()); +// System.out.println("date:" + date.getTime()); if (date.getTime() < endDate.getTime() && date.getTime() > starTime) { //比较器类型 @@ -82,7 +84,7 @@ public class ControlUtils { switch (compreType) { case 1://固定值 - calCompre(cal, deviceBean); + calCompre(cal,deviceBean); break; case 2://当天日期 @@ -92,7 +94,7 @@ public class ControlUtils { } - System.out.println("jsonObject:" + jsonObject.toString()); +// System.out.println("jsonObject:" + jsonObject.toString()); } } catch (JSONException e) { @@ -181,7 +183,8 @@ public class ControlUtils { String assDevice = cal.getAssDevice();//联动的设备id - boolean isExit = isExist(assDevice.split(",")); +// boolean isExit = isExist(assDevice.split(",")); + boolean isExit = true; System.out.println("是否符合联动条件:" + isExit); @@ -214,7 +217,8 @@ public class ControlUtils { HttpUtil.addAirCode(conValue, conDevId); break; case 10://开关 - HttpUtil.controlDev(conDevId, conCode, conValue); +// HttpUtil.controlDev(conDevId, conCode, conValue); + HttpUtil.addAirCode(conValue, conDevId); break; case 12://万能遥控器 HttpUtil.addAirCode(conValue, conDevId); diff --git a/cloud/mypulsar/src/main/java/com/example/mypulsar/utils/HttpUtil.java b/cloud/mypulsar/src/main/java/com/example/mypulsar/utils/HttpUtil.java index 2285e49..623799b 100644 --- a/cloud/mypulsar/src/main/java/com/example/mypulsar/utils/HttpUtil.java +++ b/cloud/mypulsar/src/main/java/com/example/mypulsar/utils/HttpUtil.java @@ -88,7 +88,7 @@ public class HttpUtil { result += getLine; } in.close(); - System.err.println("result:" + result); +// System.err.println("result:" + result); return result; } @@ -112,7 +112,7 @@ public class HttpUtil { String responseEntity = restTemplate.postForObject(url, tuYaCommand, String.class); - System.out.println("tuYaCommand:" + tuYaCommand.toString()); + System.out.println("tuYaCommand:" + tuYaCommand.toString()+"----deviceId:"+deviceId); System.out.println("responseEntity:" + responseEntity); return responseEntity.equals("1"); } @@ -144,11 +144,12 @@ public class HttpUtil { JSONObject jsonObject = new JSONObject(conValue); tuYaAirCondition.setMode(jsonObject.getString("mode")); tuYaAirCondition.setPower(jsonObject.getString("power")); - tuYaAirCondition.setRemote_id(jsonObject.getString("remote_index")); + tuYaAirCondition.setRemote_id(jsonObject.getString("remote_id")); tuYaAirCondition.setWind(jsonObject.getString("wind")); tuYaAirCondition.setTemp(jsonObject.getString("temp")); tuYaAirCondition.setRemote_index(jsonObject.getString("remote_index")); + } catch (JSONException e) { e.printStackTrace(); } diff --git a/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/controller/UserController.java b/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/controller/UserController.java index 992e99d..d51ee87 100644 --- a/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/controller/UserController.java +++ b/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/controller/UserController.java @@ -23,4 +23,19 @@ public class UserController { String selectStudentNumByStudentId(@RequestParam("studentId") int studentId){ return userService.selectStudentNumByStudentId(studentId); } + + + + @RequestMapping(value = "getStudent_NumWitdCode",method = RequestMethod.GET) + String getStudent_NumWitdCode(@RequestParam("studentcode") String studentcode){ + return userService.getStudent_NumWitdCode(studentcode); + } + + + @RequestMapping(value = "getTeacherWithstudentcode",method = RequestMethod.GET) + String getTeacherWithstudentcode(@RequestParam("num") String num,@RequestParam("schoolId") String schoolId){ + return userService.getTeacherWithstudentcode(num,schoolId); + } + + } diff --git a/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/mapper/UserMapper.java b/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/mapper/UserMapper.java index 8c866b5..1be9524 100644 --- a/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/mapper/UserMapper.java +++ b/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/mapper/UserMapper.java @@ -8,4 +8,13 @@ package com.sincere.smartSearch.mapper; public interface UserMapper { String selectStudentNumByStudentId(int studentId); + + @Select("select Top(1)*\n" + + "from SZ_V_School_Teacher\n" + + "where num = #{num} and school_id = #{schoolId}") + StudentBean getTeacherWithstudentcode(@Param("num") String num,@Param("schoolId")String schoolId); + + @Select("select Top(1) * from SZ_V_School_Student where studentcode = #{studentcode}") + StudentBean getStudent_NumWitdCode(@Param("studentcode") String studentcode); + } diff --git a/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/model/StudentBean.java b/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/model/StudentBean.java new file mode 100644 index 0000000..c4a7982 --- /dev/null +++ b/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/model/StudentBean.java @@ -0,0 +1,307 @@ +package com.sincere.haikangface.bean; + +import java.io.Serializable; +import java.util.Date; + +public class StudentBean implements Serializable { + + private String teacher_id; + + private String parent_id; + + private long ID; + + private String UserId; + + private String CustomerId; + + private int StudentType; + + private int UserType; + + private String name; + + private int ClassId; + + private String ClassName; + + private String OldCard; + + private String Card; + + private int SchoolId; + + private int school_id; + + private int IsNew; + + private int UpdateType; + + private Date AddTime; + + private int Sex; + + private String Face; + + private String studentcode; + + private String student_num; + + private String student_id; + + private String user_id; + + private String photo; + + private String teacher_num; + + private String num; + + public String getNum() { + return num; + } + + public void setNum(String num) { + this.num = num; + } + + public String getTeacher_num() { + return teacher_num; + } + + public void setTeacher_num(String teacher_num) { + this.teacher_num = teacher_num; + } + + public String getPhoto() { + return photo; + } + + public void setPhoto(String photo) { + this.photo = photo; + } + + public String getUser_id() { + return user_id; + } + + public void setUser_id(String user_id) { + this.user_id = user_id; + } + + public String getStudentcode() { + return studentcode; + } + + public void setStudentcode(String studentcode) { + this.studentcode = studentcode; + } + + public String getUserId() { + return UserId; + } + + public void setUserId(String userId) { + UserId = userId; + } + + public String getCustomerId() { + return CustomerId; + } + + public void setCustomerId(String customerId) { + CustomerId = customerId; + } + + public int getStudentType() { + return StudentType; + } + + public void setStudentType(int studentType) { + StudentType = studentType; + } + + public int getUserType() { + return UserType; + } + + public String getTeacher_id() { + return teacher_id; + } + + public String getParent_id() { + return parent_id; + } + + public void setParent_id(String parent_id) { + this.parent_id = parent_id; + } + + public void setTeacher_id(String teacher_id) { + this.teacher_id = teacher_id; + } + + public void setUserType(int userType) { + UserType = userType; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getClassId() { + return ClassId; + } + + public void setClassId(int classId) { + ClassId = classId; + } + + public String getClassName() { + return ClassName; + } + + public void setClassName(String className) { + ClassName = className; + } + + public String getOldCard() { + return OldCard; + } + + public void setOldCard(String oldCard) { + OldCard = oldCard; + } + + public String getCard() { + return Card; + } + + public int getSchool_id() { + return school_id; + } + + public void setSchool_id(int school_id) { + this.school_id = school_id; + } + + public String getStudent_num() { + return student_num; + } + + public void setStudent_num(String student_num) { + this.student_num = student_num; + } + + public void setCard(String card) { + Card = card; + } + + public int getSchoolId() { + return SchoolId; + } + + public void setSchoolId(int schoolId) { + SchoolId = schoolId; + } + + public int getIsNew() { + return IsNew; + } + + public void setIsNew(int isNew) { + IsNew = isNew; + } + + public int getUpdateType() { + return UpdateType; + } + + public void setUpdateType(int updateType) { + UpdateType = updateType; + } + + public Date getAddTime() { + return AddTime; + } + + public void setAddTime(Date addTime) { + AddTime = addTime; + } + + public int getSex() { + return Sex; + } + + public void setSex(int sex) { + Sex = sex; + } + + public String getFace() { + return Face; + } + + public void setFace(String face) { + Face = face; + } + + public String getStudentCode() { + return studentcode; + } + + public void setStudentCode(String studentCode) { + this.studentcode = studentCode; + } + + public long getID() { + return ID; + } + + public void setID(long ID) { + this.ID = ID; + } + + public String getStudent_id() { + return student_id; + } + + public void setStudent_id(String student_id) { + this.student_id = student_id; + } + + @Override + public String toString() { + return "StudentBean{" + + "teacher_id='" + teacher_id + '\'' + + ", parent_id='" + parent_id + '\'' + + ", ID=" + ID + + ", UserId='" + UserId + '\'' + + ", CustomerId='" + CustomerId + '\'' + + ", StudentType=" + StudentType + + ", UserType=" + UserType + + ", name='" + name + '\'' + + ", ClassId=" + ClassId + + ", ClassName='" + ClassName + '\'' + + ", OldCard='" + OldCard + '\'' + + ", Card='" + Card + '\'' + + ", SchoolId=" + SchoolId + + ", school_id=" + school_id + + ", IsNew=" + IsNew + + ", UpdateType=" + UpdateType + + ", AddTime=" + AddTime + + ", Sex=" + Sex + + ", Face='" + Face + '\'' + + ", studentcode='" + studentcode + '\'' + + ", student_num='" + student_num + '\'' + + ", student_id='" + student_id + '\'' + + ", user_id='" + user_id + '\'' + + ", photo='" + photo + '\'' + + ", teacher_num='" + teacher_num + '\'' + + ", num='" + num + '\'' + + '}'; + } +} diff --git a/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/UserService.java b/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/UserService.java index 5a27520..8bd3543 100644 --- a/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/UserService.java +++ b/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/UserService.java @@ -9,4 +9,8 @@ public interface UserService { String selectStudentNumByStudentId(int studentId); + StudentBean getTeacherWithstudentcode(String num,String schoolId); + + StudentBean getStudent_NumWitdCode(String studentcode); + } diff --git a/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/impl/UserServiceImpl.java b/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/impl/UserServiceImpl.java index 31ce0fd..505d9d4 100644 --- a/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/impl/UserServiceImpl.java +++ b/cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/impl/UserServiceImpl.java @@ -20,4 +20,17 @@ public class UserServiceImpl implements UserService { public String selectStudentNumByStudentId(int studentId) { return userMapper.selectStudentNumByStudentId(studentId); } + + + @Override + public StudentBean getStudent_NumWitdCode(String studentcode) { + return userMapper.getStudent_NumWitdCode(studentcode); + } + + + @Override + public StudentBean getTeacherWithstudentcode(String num,String schoolId) { + return userMapper.getTeacherWithstudentcode(num,schoolId); + } + } diff --git a/cloud/server1/src/main/java/com/sincere/server1/FileUtils.java b/cloud/server1/src/main/java/com/sincere/server1/FileUtils.java new file mode 100644 index 0000000..327b2fb --- /dev/null +++ b/cloud/server1/src/main/java/com/sincere/server1/FileUtils.java @@ -0,0 +1,94 @@ +package com.sincere.server1; + +import java.io.*; +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * 日志记录、文件操作工具类 + */ +public class FileUtils { + + + public static String checkFail = "检测失败.txt"; + public static String checkSuc = "检测成功.txt"; + public static String device_login="设备登录id.txt"; + private static FileUtils fileUtils; + + private String filePath = "./log/";//日志记录目录 + + public static String devices = "devices.txt";//设备记录 + + public static String sendUserErrTxt = "senduserErr.txt";//用户下发失败记录 + + public static String sendUserSucTxt = "senduserSuc.txt";//用户下发成功记录 + + public static String qiandaoSuccess = "qiandaoSuccess.txt";//用户签到成功记录 + + public static String qiandaoErr = "qiandaoErr.txt";//用户签到失败记录 + + public static String sendNodevice = "没有设备.txt";//设备没有 + + public static String sendOrder = "下发指令.txt";//学校id记录表 + + public static FileUtils getInstance() { + if (null == fileUtils) { + synchronized (FileUtils.class) { + fileUtils = new FileUtils(); + } + } + return fileUtils; + } + + + public FileUtils() { + + File filePa = new File(filePath); + if (!filePa.exists()) filePa.mkdirs(); + + } + + + /** + * @param content 日志内容 + * @param fileName 文件名字 + */ + public void writeLogs(String content, String fileName) { + + String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); + + File path = new File(filePath+date); + if (!path.exists())path.mkdirs(); + + File logPath = new File(filePath+date, fileName); + + try { +// System.out.println("logPath:" + logPath.getAbsolutePath()); + if (!logPath.exists()) logPath.createNewFile(); + + FileOutputStream fileOutputStream = new FileOutputStream(logPath, true);//true表示文件后面续写 + + String writeContent = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + + " " + content + "\r\n"; + + OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8"); + + outputStreamWriter.write(writeContent); + + outputStreamWriter.write("\r\n"); + + outputStreamWriter.close(); + + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + + } + + +} diff --git a/cloud/server1/src/main/java/com/sincere/server1/listener/EurekaInstanceCanceledListener.java b/cloud/server1/src/main/java/com/sincere/server1/listener/EurekaInstanceCanceledListener.java index 32b9f5e..523796e 100644 --- a/cloud/server1/src/main/java/com/sincere/server1/listener/EurekaInstanceCanceledListener.java +++ b/cloud/server1/src/main/java/com/sincere/server1/listener/EurekaInstanceCanceledListener.java @@ -4,6 +4,7 @@ package com.sincere.server1.listener; import com.netflix.discovery.shared.Applications; import com.netflix.eureka.EurekaServerContextHolder; import com.netflix.eureka.registry.PeerAwareInstanceRegistry; +import com.sincere.server1.FileUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceCanceledEvent; import org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceRegisteredEvent; @@ -29,27 +30,43 @@ public class EurekaInstanceCanceledListener implements ApplicationListener { PeerAwareInstanceRegistry registry = EurekaServerContextHolder.getInstance().getServerContext().getRegistry(); Applications applications = registry.getApplications(); // 遍历获取已注册节点中与当前失效节点ID一致的节点信息 - applications.getRegisteredApplications().forEach((registeredApplication) -> { - registeredApplication.getInstances().forEach((instance) -> { - if (instance.getInstanceId().equals(event.getServerId())) { - log.debug("服务:" + instance.getAppName() + " 挂啦。。。"); - // // TODO: 2017/9/3 扩展消息提醒 邮件、手机短信、微信等 - } - }); - }); + if (null != applications && null != event) { + applications.getRegisteredApplications().forEach((registeredApplication) -> { + + registeredApplication.getInstances().forEach((instance) -> { + + if (null != instance && instance.getInstanceId().equals(event.getServerId())) { + System.out.println("服务:" + instance.getAppName() + " 挂啦。。。"); + // // TODO: 2017/9/3 扩展消息提醒 邮件、手机短信、微信等 + FileUtils.getInstance().writeLogs("服务:" + instance.getAppName() + " 挂啦。。。","服务监控"); + } + }); + + }); + } } + if (applicationEvent instanceof EurekaInstanceRegisteredEvent) { EurekaInstanceRegisteredEvent event = (EurekaInstanceRegisteredEvent) applicationEvent; - log.debug("服务:" + event.getInstanceInfo().getAppName() + " 注册成功啦。。。"); + if (null!=event){ + System.out.println("服务:" + event.getInstanceInfo().getAppName() + " 注册成功啦。。。"); + FileUtils.getInstance().writeLogs("服务:" +event.getInstanceInfo().getAppName() + " 注册成功啦。。。","服务注册监控"); + }else System.out.println("服务EurekaInstanceRegisteredEvent"); } if (applicationEvent instanceof EurekaInstanceRenewedEvent) { EurekaInstanceRenewedEvent event = (EurekaInstanceRenewedEvent) applicationEvent; - log.debug("心跳检测服务:" + event.getInstanceInfo().getAppName() + "。。"); + if (null!=event){ + System.out.println("心跳检测服务:" + event.getInstanceInfo().getAppName() + "。。"); + FileUtils.getInstance().writeLogs("心跳检测服务:" +event.getInstanceInfo().getAppName() + "。。","服务心跳监控"); + }else { + System.out.println("心跳检测服务EurekaInstanceRenewedEvent"); + } } if (applicationEvent instanceof EurekaRegistryAvailableEvent) { - log.debug("服务 Aualiable。。"); + System.out.println("服务 Aualiable。。"); + FileUtils.getInstance().writeLogs("服务 Aualiable。。","服务Aualiable"); } } diff --git a/cloud/server2/src/main/java/com/sincere/server2/FileUtils.java b/cloud/server2/src/main/java/com/sincere/server2/FileUtils.java new file mode 100644 index 0000000..6bf042d --- /dev/null +++ b/cloud/server2/src/main/java/com/sincere/server2/FileUtils.java @@ -0,0 +1,94 @@ +package com.sincere.server2; + +import java.io.*; +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * 日志记录、文件操作工具类 + */ +public class FileUtils { + + + public static String checkFail = "检测失败.txt"; + public static String checkSuc = "检测成功.txt"; + public static String device_login="设备登录id.txt"; + private static FileUtils fileUtils; + + private String filePath = "./log/";//日志记录目录 + + public static String devices = "devices.txt";//设备记录 + + public static String sendUserErrTxt = "senduserErr.txt";//用户下发失败记录 + + public static String sendUserSucTxt = "senduserSuc.txt";//用户下发成功记录 + + public static String qiandaoSuccess = "qiandaoSuccess.txt";//用户签到成功记录 + + public static String qiandaoErr = "qiandaoErr.txt";//用户签到失败记录 + + public static String sendNodevice = "没有设备.txt";//设备没有 + + public static String sendOrder = "下发指令.txt";//学校id记录表 + + public static FileUtils getInstance() { + if (null == fileUtils) { + synchronized (FileUtils.class) { + fileUtils = new FileUtils(); + } + } + return fileUtils; + } + + + public FileUtils() { + + File filePa = new File(filePath); + if (!filePa.exists()) filePa.mkdirs(); + + } + + + /** + * @param content 日志内容 + * @param fileName 文件名字 + */ + public void writeLogs(String content, String fileName) { + + String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); + + File path = new File(filePath+date); + if (!path.exists())path.mkdirs(); + + File logPath = new File(filePath+date, fileName); + + try { +// System.out.println("logPath:" + logPath.getAbsolutePath()); + if (!logPath.exists()) logPath.createNewFile(); + + FileOutputStream fileOutputStream = new FileOutputStream(logPath, true);//true表示文件后面续写 + + String writeContent = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + + " " + content + "\r\n"; + + OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8"); + + outputStreamWriter.write(writeContent); + + outputStreamWriter.write("\r\n"); + + outputStreamWriter.close(); + + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + + } + + +} diff --git a/cloud/server2/src/main/java/com/sincere/server2/listener/EurekaInstanceCanceledListener.java b/cloud/server2/src/main/java/com/sincere/server2/listener/EurekaInstanceCanceledListener.java index 9455d0e..f937f3e 100644 --- a/cloud/server2/src/main/java/com/sincere/server2/listener/EurekaInstanceCanceledListener.java +++ b/cloud/server2/src/main/java/com/sincere/server2/listener/EurekaInstanceCanceledListener.java @@ -4,6 +4,7 @@ package com.sincere.server2.listener; import com.netflix.discovery.shared.Applications; import com.netflix.eureka.EurekaServerContextHolder; import com.netflix.eureka.registry.PeerAwareInstanceRegistry; +import com.sincere.server2.FileUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceCanceledEvent; import org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceRegisteredEvent; @@ -29,27 +30,43 @@ public class EurekaInstanceCanceledListener implements ApplicationListener { PeerAwareInstanceRegistry registry = EurekaServerContextHolder.getInstance().getServerContext().getRegistry(); Applications applications = registry.getApplications(); // 遍历获取已注册节点中与当前失效节点ID一致的节点信息 - applications.getRegisteredApplications().forEach((registeredApplication) -> { - registeredApplication.getInstances().forEach((instance) -> { - if (instance.getInstanceId().equals(event.getServerId())) { - log.debug("服务:" + instance.getAppName() + " 挂啦。。。"); - // // TODO: 2017/9/3 扩展消息提醒 邮件、手机短信、微信等 - } - }); - }); + if (null != applications && null != event) { + applications.getRegisteredApplications().forEach((registeredApplication) -> { + + registeredApplication.getInstances().forEach((instance) -> { + + if (null != instance && instance.getInstanceId().equals(event.getServerId())) { + System.out.println("服务:" + instance.getAppName() + " 挂啦。。。"); + // // TODO: 2017/9/3 扩展消息提醒 邮件、手机短信、微信等 + FileUtils.getInstance().writeLogs("服务:" + instance.getAppName() + " 挂啦。。。","服务监控"); + } + }); + + }); + } } + if (applicationEvent instanceof EurekaInstanceRegisteredEvent) { EurekaInstanceRegisteredEvent event = (EurekaInstanceRegisteredEvent) applicationEvent; - log.debug("服务:" + event.getInstanceInfo().getAppName() + " 注册成功啦。。。"); + if (null!=event){ + System.out.println("服务:" + event.getInstanceInfo().getAppName() + " 注册成功啦。。。"); + FileUtils.getInstance().writeLogs("服务:" +event.getInstanceInfo().getAppName() + " 注册成功啦。。。","服务注册监控"); + }else System.out.println("服务EurekaInstanceRegisteredEvent"); } if (applicationEvent instanceof EurekaInstanceRenewedEvent) { EurekaInstanceRenewedEvent event = (EurekaInstanceRenewedEvent) applicationEvent; - log.debug("心跳检测服务:" + event.getInstanceInfo().getAppName() + "。。"); + if (null!=event){ + System.out.println("心跳检测服务:" + event.getInstanceInfo().getAppName() + "。。"); + FileUtils.getInstance().writeLogs("心跳检测服务:" +event.getInstanceInfo().getAppName() + "。。","服务心跳监控"); + }else { + System.out.println("心跳检测服务EurekaInstanceRenewedEvent"); + } } if (applicationEvent instanceof EurekaRegistryAvailableEvent) { - log.debug("服务 Aualiable。。"); + System.out.println("服务 Aualiable。。"); + FileUtils.getInstance().writeLogs("服务 Aualiable。。","服务Aualiable"); } } -- libgit2 0.21.0