From bce822c1cb336db7dad14e7dbc12f5a8a0fd656b Mon Sep 17 00:00:00 2001
From: value <z1292839451@163.com>
Date: 星期三, 15 五月 2024 15:28:14 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
system-run/src/main/resources/application-dev.yml | 3
user-server/src/main/java/com/yuanchu/mom/controller/SimpleController.java | 28 ++++
user-server/src/main/java/com/yuanchu/mom/util/HeaderToken.java | 154 +++++++++++++++++++++++++
user-server/src/main/java/com/yuanchu/mom/util/TestApi.java | 25 ++++
user-server/src/main/java/com/yuanchu/mom/pojo/AuthApi.java | 11 +
user-server/src/main/java/com/yuanchu/mom/controller/PostController.java | 30 +++++
user-server/src/main/java/com/yuanchu/mom/pojo/Company.java | 17 ++
user-server/src/main/java/com/yuanchu/mom/pojo/User.java | 22 +++
user-server/src/main/java/com/yuanchu/mom/controller/CompaniesController.java | 37 ++++++
user-server/src/main/java/com/yuanchu/mom/pojo/Post.java | 13 ++
10 files changed, 339 insertions(+), 1 deletions(-)
diff --git a/system-run/src/main/resources/application-dev.yml b/system-run/src/main/resources/application-dev.yml
index b8bc183..6892d1f 100644
--- a/system-run/src/main/resources/application-dev.yml
+++ b/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:
diff --git a/user-server/src/main/java/com/yuanchu/mom/controller/CompaniesController.java b/user-server/src/main/java/com/yuanchu/mom/controller/CompaniesController.java
new file mode 100644
index 0000000..73bb8e9
--- /dev/null
+++ b/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());
+ }
+}
\ No newline at end of file
diff --git a/user-server/src/main/java/com/yuanchu/mom/controller/PostController.java b/user-server/src/main/java/com/yuanchu/mom/controller/PostController.java
new file mode 100644
index 0000000..dd87db6
--- /dev/null
+++ b/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));
+ }
+}
\ No newline at end of file
diff --git a/user-server/src/main/java/com/yuanchu/mom/controller/SimpleController.java b/user-server/src/main/java/com/yuanchu/mom/controller/SimpleController.java
new file mode 100644
index 0000000..9d2660d
--- /dev/null
+++ b/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));
+ }
+}
diff --git a/user-server/src/main/java/com/yuanchu/mom/pojo/AuthApi.java b/user-server/src/main/java/com/yuanchu/mom/pojo/AuthApi.java
new file mode 100644
index 0000000..b91d14b
--- /dev/null
+++ b/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=";
+
+}
\ No newline at end of file
diff --git a/user-server/src/main/java/com/yuanchu/mom/pojo/Company.java b/user-server/src/main/java/com/yuanchu/mom/pojo/Company.java
new file mode 100644
index 0000000..6ba5133
--- /dev/null
+++ b/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;
+}
\ No newline at end of file
diff --git a/user-server/src/main/java/com/yuanchu/mom/pojo/Post.java b/user-server/src/main/java/com/yuanchu/mom/pojo/Post.java
new file mode 100644
index 0000000..5891604
--- /dev/null
+++ b/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;
+}
diff --git a/user-server/src/main/java/com/yuanchu/mom/pojo/User.java b/user-server/src/main/java/com/yuanchu/mom/pojo/User.java
index ab26b1b..6f4b5fb 100644
--- a/user-server/src/main/java/com/yuanchu/mom/pojo/User.java
+++ b/user-server/src/main/java/com/yuanchu/mom/pojo/User.java
@@ -112,4 +112,26 @@
@ApiModelProperty(value = "鍏宠仈鐨勯儴闂╥d")
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;
}
diff --git a/user-server/src/main/java/com/yuanchu/mom/util/HeaderToken.java b/user-server/src/main/java/com/yuanchu/mom/util/HeaderToken.java
new file mode 100644
index 0000000..147145f
--- /dev/null
+++ b/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;
+ }
+}
\ No newline at end of file
diff --git a/user-server/src/main/java/com/yuanchu/mom/util/TestApi.java b/user-server/src/main/java/com/yuanchu/mom/util/TestApi.java
new file mode 100644
index 0000000..1955fa5
--- /dev/null
+++ b/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());
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.3