system-run/src/main/resources/application-dev.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
user-server/src/main/java/com/yuanchu/mom/controller/CompaniesController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
user-server/src/main/java/com/yuanchu/mom/controller/PostController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
user-server/src/main/java/com/yuanchu/mom/controller/SimpleController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
user-server/src/main/java/com/yuanchu/mom/pojo/AuthApi.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
user-server/src/main/java/com/yuanchu/mom/pojo/Company.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
user-server/src/main/java/com/yuanchu/mom/pojo/Post.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
user-server/src/main/java/com/yuanchu/mom/pojo/User.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
user-server/src/main/java/com/yuanchu/mom/util/HeaderToken.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
user-server/src/main/java/com/yuanchu/mom/util/TestApi.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
system-run/src/main/resources/application-dev.yml
@@ -38,7 +38,8 @@ type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver #url: jdbc:mysql://localhost:3306/center_lims?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 url: jdbc:mysql://114.132.189.42:9004/center-lims?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 # url: jdbc:mysql://114.132.189.42:9004/center-lims?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 url: jdbc:mysql://localhost:3306/center-lims?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 username: root password: 123456 druid: user-server/src/main/java/com/yuanchu/mom/controller/CompaniesController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,37 @@ package com.yuanchu.mom.controller; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpUtil; import com.yuanchu.mom.annotation.ValueAuth; import com.yuanchu.mom.pojo.AuthApi; import com.yuanchu.mom.pojo.Company; import com.yuanchu.mom.util.HeaderToken; import com.yuanchu.mom.vo.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.Authorization; import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController @AllArgsConstructor @RequestMapping("/companies") @Api("ç»ç»æ¨¡å") public class CompaniesController { @Autowired private HeaderToken headerToken; @ValueAuth @ApiOperation(value = "è·åç»ç»å表") @GetMapping(value = "/selectCompaniesList") public Result<List<Company>> selectcompaniesList(){ return Result.success(headerToken.companyUrl()); } } user-server/src/main/java/com/yuanchu/mom/controller/PostController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,30 @@ package com.yuanchu.mom.controller; import com.yuanchu.mom.annotation.ValueAuth; import com.yuanchu.mom.pojo.Post; import com.yuanchu.mom.util.HeaderToken; import com.yuanchu.mom.vo.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @AllArgsConstructor @RequestMapping("/post") @Api("å²ä½æ¨¡å") public class PostController { @Autowired private HeaderToken headerToken; @ValueAuth @ApiOperation(value = "è·åå²ä½å表") @PostMapping(value = "/selectPostList/{companyId}") public Result<List<Post>> selectPostList(@PathVariable String companyId){ return Result.success(headerToken.postUrl(companyId)); } } user-server/src/main/java/com/yuanchu/mom/controller/SimpleController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,28 @@ package com.yuanchu.mom.controller; import com.yuanchu.mom.pojo.User; import com.yuanchu.mom.util.HeaderToken; import com.yuanchu.mom.vo.Result; import io.swagger.annotations.Api; import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @AllArgsConstructor @RestController @RequestMapping("/simple") @Api("äººåæ¨¡å") public class SimpleController { @Autowired private HeaderToken headerToken; @PostMapping( value = "/selectSimpleList/companyId") public Result<List<User>> selectSimpleList(@PathVariable String companyId){ return Result.success(headerToken.userUrl(companyId)); } } user-server/src/main/java/com/yuanchu/mom/pojo/AuthApi.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,11 @@ package com.yuanchu.mom.pojo; public class AuthApi { public static String companies = "https://ztt-sso.asuncloud.net/api/org/v1/companies"; public static String post="https://ztt-sso.asuncloud.net/api/org/v1/post?companyId="; public static String simple="https://ztt-sso.asuncloud.net/api/org/v1/employees/simple?companyId="; } user-server/src/main/java/com/yuanchu/mom/pojo/Company.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,17 @@ package com.yuanchu.mom.pojo; import lombok.Data; @Data public class Company { private String companyId; private String companyName; private String parentCompanyId; private String description; private String status; } user-server/src/main/java/com/yuanchu/mom/pojo/Post.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.yuanchu.mom.pojo; import lombok.Data; @Data public class Post { private String companyId; private String postCode; private String postName; private String deptCode; private String postType; private String status; } user-server/src/main/java/com/yuanchu/mom/pojo/User.java
@@ -112,4 +112,26 @@ @ApiModelProperty(value = "å ³èçé¨é¨id") private String departId; ////人åç¼å·ï¼å ¨å±å¯ä¸ // private String employeeID; ////å²ä½ // private String position; ////å²ä½ç¼ç // private String positionCode; ////ææºå·ç // private String phoneNumber; // // //æ§å« 1:ç· 2:女 // private int gender; // // //ç»ç»ç¶æ enable:å¨è disabled:离è // private String status; ////æå±ç»ç»ç¼ç // private String companyId; ////å ¬å¸é®ç®±(å¯ç¨äºé®ç®±ç³»ç») // private String companyEmail; ////å ¥èå ¬å¸æ¶é´ // private String dateOfJoiningTheCompany; ////ç»ç»å çé¨é¨ç¼ç // private String departmentCode; } user-server/src/main/java/com/yuanchu/mom/util/HeaderToken.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,154 @@ package com.yuanchu.mom.util; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSON; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.yuanchu.mom.pojo.AuthApi; import com.yuanchu.mom.pojo.Company; import com.yuanchu.mom.pojo.Post; import com.yuanchu.mom.pojo.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.time.Duration; import java.util.List; import java.util.concurrent.TimeUnit; @Component public class HeaderToken { @Resource private RedisTemplate redisTemplate; public static void main(String[] args) { HttpRequest request = HttpRequest.post("https://ztt-sso.asuncloud.net/oauth2/token") .header("Content-Type", "application/x-www-form-urlencoded") .form("grant_type", "client_credentials") .form("client_id", "8b2f2c7e-2ab9-4718-8193-c0c636dceba8") .form("client_secret", "db59b70d28ab1865aafe4008f59d4760"); HttpResponse response = request.execute(); System.out.println(response.body()); } public String fetchNewAccessToken() { HttpRequest request = HttpRequest.post("https://ztt-sso.asuncloud.net/oauth2/token") .header("Content-Type", "application/x-www-form-urlencoded") .form("grant_type", "client_credentials") .form("client_id", "8b2f2c7e-2ab9-4718-8193-c0c636dceba8") .form("client_secret", "db59b70d28ab1865aafe4008f59d4760"); HttpResponse response = request.execute(); System.out.println(response.body()); ObjectMapper objectMapper = new ObjectMapper(); JsonNode jsonNode = null; try { jsonNode = objectMapper.readTree(response.body()); String accessToken = jsonNode.get("access_token").asText(); redisTemplate.opsForValue().set("access_token",accessToken); redisTemplate.expire("access_token", dataTime("access_token"), TimeUnit.SECONDS); } catch (JsonProcessingException e) { e.printStackTrace(); } return null; } private String accessToken ; //夿æ¯å¦è¿æ public String getAccessToken() { accessToken=(String) redisTemplate.opsForValue().get("access_token"); if (accessToken == null) { accessToken = fetchNewAccessToken(); } return accessToken; } //夿 token æ¯å¦å·²åå¨ public String getToken(String token) { String o = redisTemplate.opsForValue().get(token).toString(); if (o != null && !o.isEmpty()) { return o; }else{ redisTemplate.expire(token,dataTime("access_token"),TimeUnit.SECONDS); String tokens = redisTemplate.opsForValue().get(token).toString(); return tokens; } // è·å token // accessToken = fetchNewAccessToken(); // return accessToken; } //è·åtokenè¿ææ¶é´ public Long dataTime(String token){ Long access_token = redisTemplate.getExpire(token); if(access_token != null && access_token >60) { redisTemplate.expire(token, access_token - 60 ,TimeUnit.SECONDS); return access_token - 60; }//å°±ç´æ¥è°ç¨ return null; } //è°ç¨ public List<Company> companyUrl() { String accessToken = getAccessToken(); String getToken= getToken(accessToken); String apiUrl =AuthApi.companies; // æ¿æ¢ä¸ºå®é çAPI端ç¹URL HttpRequest request = HttpRequest.get(apiUrl) .header("Authorization", "Bearer " + accessToken); HttpResponse response = request.execute(); ObjectMapper objectMapper = new ObjectMapper(); String body = response.body(); List<Company> companies = null; try { companies = objectMapper.readValue(body, new TypeReference<List<Company>>(){}); } catch (JsonProcessingException e) { e.printStackTrace(); } return companies; } public List<Post> postUrl(String companyId) { String accessToken = getAccessToken(); String token = getToken(accessToken); String apiUrl =AuthApi.post+companyId; // æ¿æ¢ä¸ºå®é çAPI端ç¹URL HttpRequest request = HttpRequest.get(apiUrl) .header("Authorization", "Bearer " + accessToken); HttpResponse response = request.execute(); ObjectMapper objectMapper = new ObjectMapper(); String body = response.body(); List<Post> posts = null; try { posts=objectMapper.readValue(body, new TypeReference<List<Post>>() {}); } catch (JsonProcessingException e) { e.printStackTrace(); } return posts; } public List<User> userUrl(String companyId) { String accessToken = getAccessToken(); String token = getToken(accessToken); String apiUrl =AuthApi.simple+companyId; // æ¿æ¢ä¸ºå®é çAPI端ç¹URL HttpRequest request = HttpRequest.get(apiUrl) .header("Authorization", "Bearer " + accessToken) .header("Content-Type", "application/form-data"); HttpResponse response = request.execute(); ObjectMapper objectMapper = new ObjectMapper(); String body = response.body(); List<User> user=null; try { user= objectMapper.readValue(body,new TypeReference<List<User>>(){}); } catch (JsonProcessingException e) { e.printStackTrace(); } return user; } } user-server/src/main/java/com/yuanchu/mom/util/TestApi.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,25 @@ package com.yuanchu.mom.util; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import com.yuanchu.mom.pojo.AuthApi; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class TestApi { @Autowired private HeaderToken headerToken; public void testApi() { String accessToken =headerToken.getAccessToken(); String apiUrl = AuthApi.companies; // æ¿æ¢ä¸ºå®é çAPI端ç¹URL HttpRequest request = HttpRequest.get(apiUrl) .header("Authorization", "Bearer " + accessToken); HttpResponse response = request.execute(); System.out.println("Response Code: " + response.getStatus()); System.out.println("Response Body: " + response.body()); } }