From 0159eb2b485ca4f80061d83940ba38b28a2c6b7a Mon Sep 17 00:00:00 2001 From: lijiarao Date: Fri, 1 Mar 2024 14:32:49 +0800 Subject: [PATCH 1/4] =?UTF-8?q?add=20hiwork=E5=8D=95=E7=82=B9=E7=99=BB?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/HiworkLoginController.java | 31 ++++++++ .../docking/hiwork/entity/HiworkUserInfo.java | 72 +++++++++++++++++++ .../hiwork/service/impl/HiworkService.java | 42 +++++++++++ .../src/main/resources/application-dev.yml | 3 + 4 files changed, 148 insertions(+) create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/controller/HiworkLoginController.java create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/entity/HiworkUserInfo.java create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkService.java diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/controller/HiworkLoginController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/controller/HiworkLoginController.java new file mode 100644 index 00000000..aac34a37 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/controller/HiworkLoginController.java @@ -0,0 +1,31 @@ +package com.jero.modules.docking.hiwork.controller; + +import com.alibaba.fastjson.JSONObject; +import com.jero.common.api.vo.Result; +import com.jero.modules.docking.hiwork.service.impl.HiworkService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @author liJiaRao + * @date 2024-03-01 14:01 + */ +@RestController +@RequestMapping("/hiwork") +@Slf4j +public class HiworkLoginController { + @Resource + private HiworkService hiworkService; + + @ApiOperation("hiwork单点登录") + @PostMapping("/login") + public Result login(@RequestBody JSONObject jsonObject){ + return hiworkService.login(jsonObject); + } +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/entity/HiworkUserInfo.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/entity/HiworkUserInfo.java new file mode 100644 index 00000000..93ea75d0 --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/entity/HiworkUserInfo.java @@ -0,0 +1,72 @@ +package com.jero.modules.docking.hiwork.entity; + +import com.alibaba.fastjson.annotation.JSONField; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author liJiaRao + * @date 2024-03-01 14:26 + */ +@NoArgsConstructor +@Data +public class HiworkUserInfo { + /** + * errcode + */ + @JSONField(name = "errcode") + private Integer errcode; + /** + * result + */ + @JSONField(name = "result") + private ResultDTO result; + /** + * errmsg + */ + @JSONField(name = "errmsg") + private String errmsg; + + /** + * ResultDTO + */ + @NoArgsConstructor + @Data + public static class ResultDTO { + /** + * associatedUnionid + */ + @JSONField(name = "associated_unionid") + private String associatedUnionid; + /** + * unionid + */ + @JSONField(name = "unionid") + private String unionid; + /** + * deviceId + */ + @JSONField(name = "device_id") + private String deviceId; + /** + * sysLevel + */ + @JSONField(name = "sys_level") + private Integer sysLevel; + /** + * name + */ + @JSONField(name = "name") + private String name; + /** + * sys + */ + @JSONField(name = "sys") + private Boolean sys; + /** + * userid + */ + @JSONField(name = "userid") + private String userid; + } +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkService.java new file mode 100644 index 00000000..0448fc2c --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkService.java @@ -0,0 +1,42 @@ +package com.jero.modules.docking.hiwork.service.impl; + +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSONObject; +import com.jero.common.api.vo.Result; +import com.jero.modules.docking.hiwork.entity.HiworkUserInfo; +import com.jero.modules.system.service.ILoginService; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * @author liJiaRao + * @date 2024-03-01 14:02 + */ +@Service +public class HiworkService { + @Resource + private ILoginService loginService; + + @Value("${hiwork.appkey}") + private String appkey; + @Value("${hiwork.appsecret}") + private String appsecret; + + public Result login(JSONObject jsonObject) { + //根据appkey和appsecret获取accessToken + String body = HttpRequest.get("https://oapi.dingtalk.com/gettoken?appkey=" + appkey + "&appsecret=" + appsecret) + .execute().body(); + JSONObject responseJson = JSONObject.parseObject(body); + String accessToken = responseJson.getString("access_token"); + //根据accessToken和前端传过来的jsonObject获得用户信息 + String body1 = HttpRequest.post("https://oapi.dingtalk.com/topapi/v2/user/getuserinfo?access_token=" + accessToken) + //jsonObject中有code + .body(jsonObject.toJSONString()) + .execute().body(); + HiworkUserInfo hiworkUserInfo = JSONObject.parseObject(body1, HiworkUserInfo.class); + String userid = hiworkUserInfo.getResult().getUserid(); + return loginService.loginByUserName(userid); + } +} diff --git a/laws-single-startup/src/main/resources/application-dev.yml b/laws-single-startup/src/main/resources/application-dev.yml index ea16f516..d9c80a56 100644 --- a/laws-single-startup/src/main/resources/application-dev.yml +++ b/laws-single-startup/src/main/resources/application-dev.yml @@ -411,6 +411,9 @@ hiwork: url: https://iam-uat.sinotruk.com:7011/idp/oauth2/authorize?&state=123&client_id=SRMS&response_type=code&redirect_uri= fontUrl: http://localhost:3334{url}?projectId={projectId}&taskName={taskName}&taskId={taskId}&processInstanceId={processInstanceId}&nodeId={nodeId} fontAppUrl: http://localhost:3334/mobile{url}?projectId={projectId}&taskName={taskName}&taskId={taskId}&processInstanceId={processInstanceId}&nodeId={nodeId} + #hiwork单点登录 + appkey: dingshfclphtivrd0r7k + appsecret: dqhom_17n6BC8pmLeaf5wNp4aV_4XSt_aYn-dNBo8z__-79NjVvZhDJ_M2REdxRc # 汽车标准数字化平台ASMS asms: From 9071dddb90de6a83c6ec89052d00bc109897dbbb Mon Sep 17 00:00:00 2001 From: lijiarao Date: Fri, 1 Mar 2024 14:47:56 +0800 Subject: [PATCH 2/4] =?UTF-8?q?add=20hiwork=E5=8D=95=E7=82=B9=E7=99=BB?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/jero/config/shiro/ShiroConfig.java | 1 + 1 file changed, 1 insertion(+) diff --git a/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java b/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java index def31dc8..deada7e3 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java @@ -81,6 +81,7 @@ public class ShiroConfig { filterChainDefinitionMap.put("/iam/loginByOauth2", "anon"); //单点登录接口排除 filterChainDefinitionMap.put("/sys/mLogin", "anon"); //登录接口排除 filterChainDefinitionMap.put("/oa/login", "anon"); //oa单点登录接口排除 + filterChainDefinitionMap.put("/hiwork/login", "anon"); //hiwork单点登录接口排除 filterChainDefinitionMap.put("/sys/logout", "anon"); //登出接口排除 filterChainDefinitionMap.put("/sys/thirdLogin/**", "anon"); //第三方登录 filterChainDefinitionMap.put("/sys/getEncryptedString", "anon"); //获取加密串 From fd35a90c2da790c78e8b507a7cd60e438996a251 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Fri, 1 Mar 2024 14:55:41 +0800 Subject: [PATCH 3/4] =?UTF-8?q?update=20hiwork=E5=8D=95=E7=82=B9=E7=99=BB?= =?UTF-8?q?=E5=BD=95=20=E5=A2=9E=E5=8A=A0log?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../docking/hiwork/service/impl/HiworkService.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkService.java index 0448fc2c..b07df9e3 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkService.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkService.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject; import com.jero.common.api.vo.Result; import com.jero.modules.docking.hiwork.entity.HiworkUserInfo; import com.jero.modules.system.service.ILoginService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -14,6 +15,7 @@ import javax.annotation.Resource; * @author liJiaRao * @date 2024-03-01 14:02 */ +@Slf4j @Service public class HiworkService { @Resource @@ -26,17 +28,24 @@ public class HiworkService { public Result login(JSONObject jsonObject) { //根据appkey和appsecret获取accessToken - String body = HttpRequest.get("https://oapi.dingtalk.com/gettoken?appkey=" + appkey + "&appsecret=" + appsecret) + String url1 = "https://oapi.dingtalk.com/gettoken?appkey=" + appkey + "&appsecret=" + appsecret; + log.info("url:"+url1); + String body = HttpRequest.get(url1) .execute().body(); JSONObject responseJson = JSONObject.parseObject(body); + log.info("responseJson:"+responseJson.toJSONString()); String accessToken = responseJson.getString("access_token"); //根据accessToken和前端传过来的jsonObject获得用户信息 - String body1 = HttpRequest.post("https://oapi.dingtalk.com/topapi/v2/user/getuserinfo?access_token=" + accessToken) + String url2 = "https://oapi.dingtalk.com/topapi/v2/user/getuserinfo?access_token=" + accessToken; + log.info("url:"+url2); + String body1 = HttpRequest.post(url2) //jsonObject中有code .body(jsonObject.toJSONString()) .execute().body(); HiworkUserInfo hiworkUserInfo = JSONObject.parseObject(body1, HiworkUserInfo.class); + log.info("response:"+hiworkUserInfo.toString()); String userid = hiworkUserInfo.getResult().getUserid(); + log.info("userid:"+userid); return loginService.loginByUserName(userid); } } From 1d3e9b534a88fd28cdaef38d1e14cc439d92b806 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Mon, 4 Mar 2024 14:21:22 +0800 Subject: [PATCH 4/4] =?UTF-8?q?update=20=E6=97=A5=E5=BF=97=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=BF=9D=E7=95=99=E5=A4=A9=E6=95=B0=E6=94=B9=E4=B8=BA?= =?UTF-8?q?200=E5=A4=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- laws-single-startup/src/main/resources/logback-spring.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/laws-single-startup/src/main/resources/logback-spring.xml b/laws-single-startup/src/main/resources/logback-spring.xml index cd94caff..3d25aa70 100644 --- a/laws-single-startup/src/main/resources/logback-spring.xml +++ b/laws-single-startup/src/main/resources/logback-spring.xml @@ -26,7 +26,7 @@ ${LOG_HOME}/${PROJECT_NAME}/${LOG_HOME_SYSTEM}/${PROJECT_NAME}-%d{yyyy-MM-dd}.%i.log - 30 + 200 10MB