From 435c078d26563947a8832473216ed91556128e37 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 28 Sep 2022 09:13:05 +0800 Subject: [PATCH 01/12] DATA_CODE --- .../src/main/resources/db/migration/V0.0.75__datacode.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.75__datacode.sql diff --git a/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.75__datacode.sql b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.75__datacode.sql new file mode 100644 index 0000000000..74ed8d1a42 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.75__datacode.sql @@ -0,0 +1 @@ +alter table data_sync_config add COLUMN `DATA_CODE` varchar(32) NOT NULL COMMENT '数据key'after SORT; \ No newline at end of file From 2a3ed208415e4dcb53895fe933d556d06e960b01 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 28 Sep 2022 15:25:34 +0800 Subject: [PATCH 02/12] =?UTF-8?q?=E5=8A=A0=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/mapper/IcResiUserDao.xml | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml index caba921430..e8b69faefa 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml @@ -945,6 +945,33 @@ AND GRID_ID = #{gridId} + + AND a.VILLAGE_ID = #{neighborId} + + + AND a.BUILD_ID = #{buildingId} + + + AND a.UNIT_ID = #{unitId} + + + AND a.HOME_ID = #{houseId} + + + AND a.`NAME` LIKE concat( '%', #{name}, '%' ) + + + AND a.MOBILE LIKE concat( '%', #{mobile}, '%' ) + + + AND a.ID_CARD LIKE concat( '%', #{idCard}, '%' ) + + + AND a.BIRTHDAY = ]]> #{startBirthDay} + + + AND a.BIRTHDAY #{endBirthDay} + ) t WHERE 1=1 From 6f90dc4fa666505f945beec104e252a0fea123bc Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 29 Sep 2022 08:41:20 +0800 Subject: [PATCH 03/12] =?UTF-8?q?ding=E8=A1=A8=E7=9A=84=E4=B8=BB=E9=94=AE?= =?UTF-8?q?=E9=95=BF=E5=BA=A6=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/db/migration/V0.0.14__add_ding_table.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/db/migration/V0.0.14__add_ding_table.sql b/epmet-module/epmet-third/epmet-third-server/src/main/resources/db/migration/V0.0.14__add_ding_table.sql index 9d13ecb53c..8187e01d08 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/db/migration/V0.0.14__add_ding_table.sql +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/db/migration/V0.0.14__add_ding_table.sql @@ -33,7 +33,7 @@ INSERT INTO `epmet_third`.`ding_mini_info` (`ID`, `SUITE_ID`, `APP_ID`, `MINI_AP CREATE TABLE `open_sync_biz_data` ( - `ID` varchar(255) NOT NULL, + `ID` varchar(64) NOT NULL, `SUITE_KEY` varchar(255) DEFAULT NULL, `SUBSCRIBE_ID` varchar(255) NOT NULL COMMENT '第三方企业应用的suiteid加下划线0', `CORP_ID` varchar(255) NOT NULL COMMENT '第三方企业应用的corpid', @@ -48,4 +48,4 @@ CREATE TABLE `open_sync_biz_data` `UPDATED_BY` varchar(255) NOT NULL, PRIMARY KEY (`ID`) USING BTREE ) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb4; \ No newline at end of file + DEFAULT CHARSET = utf8mb4; From 6200a48f6484497a8af6475600548cc52e2ed3a8 Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 29 Sep 2022 15:14:43 +0800 Subject: [PATCH 04/12] pp --- .../controller/DingdingLoginController.java | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 epmet-auth/src/main/java/com/epmet/controller/DingdingLoginController.java diff --git a/epmet-auth/src/main/java/com/epmet/controller/DingdingLoginController.java b/epmet-auth/src/main/java/com/epmet/controller/DingdingLoginController.java new file mode 100644 index 0000000000..d09e80467c --- /dev/null +++ b/epmet-auth/src/main/java/com/epmet/controller/DingdingLoginController.java @@ -0,0 +1,78 @@ +package com.epmet.controller; + +import com.dingtalk.api.DefaultDingTalkClient; +import com.dingtalk.api.DingTalkClient; +import com.dingtalk.api.request.OapiGettokenRequest; +import com.dingtalk.api.request.OapiSnsGetuserinfoBycodeRequest; +import com.dingtalk.api.request.OapiUserGetbyunionidRequest; +import com.dingtalk.api.request.OapiV2UserGetRequest; +import com.dingtalk.api.response.OapiGettokenResponse; +import com.dingtalk.api.response.OapiSnsGetuserinfoBycodeResponse; +import com.dingtalk.api.response.OapiUserGetbyunionidResponse; +import com.dingtalk.api.response.OapiV2UserGetResponse; +import com.taobao.api.ApiException; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +/** + * 免登第三方网站 + * + * @author openapi@dingtalk + */ +@RestController("dingtalk") +public class DingdingLoginController { + + /** + * 获取授权用户的个人信息 openapi@dingtalk + * + * @return + * @throws Exception ServiceResult> 2020-11-4 + */ + @RequestMapping(value = "/getUserInfo", method = RequestMethod.GET) + public String getDdScan(@RequestParam("code") String code) throws Exception { + // 获取access_token,注意正式代码要有异常流处理 + String access_token = this.getToken(); + + // 通过临时授权码获取授权用户的个人信息 + DefaultDingTalkClient client2 = new DefaultDingTalkClient("https://oapi.dingtalk.com/sns/getuserinfo_bycode"); + OapiSnsGetuserinfoBycodeRequest reqBycodeRequest = new OapiSnsGetuserinfoBycodeRequest(); + + reqBycodeRequest.setTmpAuthCode(code); + OapiSnsGetuserinfoBycodeResponse bycodeResponse = client2.execute(reqBycodeRequest, "yourAppId", "yourAppSecret"); + + // 根据unionid获取userid + String unionid = bycodeResponse.getUserInfo().getUnionid(); + DingTalkClient clientDingTalkClient = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/user/getbyunionid"); + OapiUserGetbyunionidRequest reqGetbyunionidRequest = new OapiUserGetbyunionidRequest(); + reqGetbyunionidRequest.setUnionid(unionid); + OapiUserGetbyunionidResponse oapiUserGetbyunionidResponse = clientDingTalkClient.execute(reqGetbyunionidRequest, access_token); + + // 根据userId获取用户信息 + String userid = oapiUserGetbyunionidResponse.getResult().getUserid(); + DingTalkClient clientDingTalkClient2 = new DefaultDingTalkClient( + "https://oapi.dingtalk.com/topapi/v2/user/get"); + OapiV2UserGetRequest reqGetRequest = new OapiV2UserGetRequest(); + reqGetRequest.setUserid(userid); + reqGetRequest.setLang("zh_CN"); + OapiV2UserGetResponse rspGetResponse = clientDingTalkClient2.execute(reqGetRequest, access_token); + System.out.println(rspGetResponse.getBody()); + return rspGetResponse.getBody(); + } + private String getToken() throws RuntimeException { + try { + DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken"); + OapiGettokenRequest request = new OapiGettokenRequest(); + + request.setAppkey("dingiopfbtn8mktfoaf0"); + request.setAppsecret("RcmHIoP5KFLZSM5wzpYhvCKMMKEzLoWPtqu3OqOEBD6myg4IT8oVw4AwvRkKYKJz"); + request.setHttpMethod("GET"); + OapiGettokenResponse response = client.execute(request); + return response.getAccessToken(); + } catch (ApiException e) { + throw new RuntimeException(); + } + + } +} From 1e13ca23b4e38555ebac4d42b6ac63b27e15264c Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 29 Sep 2022 15:37:08 +0800 Subject: [PATCH 05/12] pp2 --- .../src/main/test/java/com/epmet/ThirdPlatformTest.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/test/java/com/epmet/ThirdPlatformTest.java b/epmet-module/epmet-third/epmet-third-server/src/main/test/java/com/epmet/ThirdPlatformTest.java index 02c064c0de..bd5671a8cf 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/test/java/com/epmet/ThirdPlatformTest.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/test/java/com/epmet/ThirdPlatformTest.java @@ -1,7 +1,5 @@ package com.epmet; -import com.alibaba.fastjson.JSON; -import com.aliyun.dingtalk.module.DingTalkResult; import com.taobao.dingtalk.client.DingTalkClientToken; import lombok.extern.slf4j.Slf4j; import org.junit.Test; @@ -24,7 +22,7 @@ public class ThirdPlatformTest { @Test public void sendText(){ - DingTalkResult appAccessTokenToken = dingTalkClientToken.getAppAccessTokenToken(); - System.out.println("=======:"+JSON.toJSONString(appAccessTokenToken)); + /* DingTalkResult appAccessTokenToken = dingTalkClientToken.getAppAccessTokenToken(); + System.out.println("=======:"+JSON.toJSONString(appAccessTokenToken));*/ } } From c590dc0e7efaad606cbafb36de96170b2c386f08 Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 29 Sep 2022 16:23:28 +0800 Subject: [PATCH 06/12] pp3 --- .../main/java/com/epmet/controller/DingdingLoginController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-auth/src/main/java/com/epmet/controller/DingdingLoginController.java b/epmet-auth/src/main/java/com/epmet/controller/DingdingLoginController.java index d09e80467c..50380e5cdf 100644 --- a/epmet-auth/src/main/java/com/epmet/controller/DingdingLoginController.java +++ b/epmet-auth/src/main/java/com/epmet/controller/DingdingLoginController.java @@ -55,7 +55,7 @@ public class DingdingLoginController { "https://oapi.dingtalk.com/topapi/v2/user/get"); OapiV2UserGetRequest reqGetRequest = new OapiV2UserGetRequest(); reqGetRequest.setUserid(userid); - reqGetRequest.setLang("zh_CN"); + //reqGetRequest.setLang("zh_CN"); OapiV2UserGetResponse rspGetResponse = clientDingTalkClient2.execute(reqGetRequest, access_token); System.out.println(rspGetResponse.getBody()); return rspGetResponse.getBody(); From 74d3a598c11b7d33a5bc749a04277c9712db69d0 Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 29 Sep 2022 16:57:51 +0800 Subject: [PATCH 07/12] pp4 --- .../java/com/epmet/controller/DingdingLoginController.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/epmet-auth/src/main/java/com/epmet/controller/DingdingLoginController.java b/epmet-auth/src/main/java/com/epmet/controller/DingdingLoginController.java index 50380e5cdf..538060a391 100644 --- a/epmet-auth/src/main/java/com/epmet/controller/DingdingLoginController.java +++ b/epmet-auth/src/main/java/com/epmet/controller/DingdingLoginController.java @@ -10,6 +10,7 @@ import com.dingtalk.api.response.OapiGettokenResponse; import com.dingtalk.api.response.OapiSnsGetuserinfoBycodeResponse; import com.dingtalk.api.response.OapiUserGetbyunionidResponse; import com.dingtalk.api.response.OapiV2UserGetResponse; +import com.epmet.commons.tools.utils.Result; import com.taobao.api.ApiException; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -30,8 +31,8 @@ public class DingdingLoginController { * @return * @throws Exception ServiceResult> 2020-11-4 */ - @RequestMapping(value = "/getUserInfo", method = RequestMethod.GET) - public String getDdScan(@RequestParam("code") String code) throws Exception { + @RequestMapping(value = "/auth", method = RequestMethod.GET) + public Result getDdScan(@RequestParam("code") String code) throws Exception { // 获取access_token,注意正式代码要有异常流处理 String access_token = this.getToken(); @@ -58,7 +59,7 @@ public class DingdingLoginController { //reqGetRequest.setLang("zh_CN"); OapiV2UserGetResponse rspGetResponse = clientDingTalkClient2.execute(reqGetRequest, access_token); System.out.println(rspGetResponse.getBody()); - return rspGetResponse.getBody(); + return new Result().ok(rspGetResponse.getBody()); } private String getToken() throws RuntimeException { try { From 67d0cecd3930f0b0c8f447c12bbdfc39304245ce Mon Sep 17 00:00:00 2001 From: jianjun Date: Sat, 8 Oct 2022 10:51:06 +0800 Subject: [PATCH 08/12] =?UTF-8?q?=E9=92=89=E9=92=89=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=AB=AFweb?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ThirdLoginController.java | 21 +++++++++++-- ...ormDTO.java => DingAppLoginMdFormDTO.java} | 2 +- .../java/com/epmet/service/GovWebService.java | 8 +++++ .../com/epmet/service/ThirdLoginService.java | 11 +++++-- .../epmet/service/impl/GovWebServiceImpl.java | 27 +++++++++++++++++ .../service/impl/ThirdLoginServiceImpl.java | 30 +++++++++++++++++-- 6 files changed, 91 insertions(+), 8 deletions(-) rename epmet-auth/src/main/java/com/epmet/dto/form/{ResiDingAppLoginMdFormDTO.java => DingAppLoginMdFormDTO.java} (90%) diff --git a/epmet-auth/src/main/java/com/epmet/controller/ThirdLoginController.java b/epmet-auth/src/main/java/com/epmet/controller/ThirdLoginController.java index 0bb11c468a..44ca89df30 100644 --- a/epmet-auth/src/main/java/com/epmet/controller/ThirdLoginController.java +++ b/epmet-auth/src/main/java/com/epmet/controller/ThirdLoginController.java @@ -9,7 +9,10 @@ import com.epmet.dto.result.UserTokenResultDTO; import com.epmet.service.ThirdLoginService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +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 java.util.List; @@ -174,7 +177,7 @@ public class ThirdLoginController { * @return */ @PostMapping("resilogin-ding-md") - public Result resiLoginDingMd(@RequestBody ResiDingAppLoginMdFormDTO formDTO) { + public Result resiLoginDingMd(@RequestBody DingAppLoginMdFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO); return new Result().ok(thirdLoginService.resiLoginDingMd(formDTO)); } @@ -200,8 +203,20 @@ public class ThirdLoginController { * @return */ @PostMapping("resilogin-internalding") - public Result resiLoginInternalDing(@RequestBody ResiDingAppLoginMdFormDTO formDTO) { + public Result resiLoginInternalDing(@RequestBody DingAppLoginMdFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO); return new Result().ok(thirdLoginService.resiLoginInternalDing(formDTO)); } + + /** + * 根据免登授权码, 获取登录用户身份 + * + * @param formDTO 免登授权码 + * @return + */ + @PostMapping("govlogin-internalding") + public Result login(@RequestBody DingAppLoginMdFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + return new Result().ok(thirdLoginService.govLoginInternalDing(formDTO)); + } } diff --git a/epmet-auth/src/main/java/com/epmet/dto/form/ResiDingAppLoginMdFormDTO.java b/epmet-auth/src/main/java/com/epmet/dto/form/DingAppLoginMdFormDTO.java similarity index 90% rename from epmet-auth/src/main/java/com/epmet/dto/form/ResiDingAppLoginMdFormDTO.java rename to epmet-auth/src/main/java/com/epmet/dto/form/DingAppLoginMdFormDTO.java index 0b3b9ae0f8..1a8840e949 100644 --- a/epmet-auth/src/main/java/com/epmet/dto/form/ResiDingAppLoginMdFormDTO.java +++ b/epmet-auth/src/main/java/com/epmet/dto/form/DingAppLoginMdFormDTO.java @@ -10,7 +10,7 @@ import javax.validation.constraints.NotBlank; * @Date 2022/9/22 10:42 */ @Data -public class ResiDingAppLoginMdFormDTO { +public class DingAppLoginMdFormDTO { @NotBlank(message = "authCode不能为空") private String authCode; /** diff --git a/epmet-auth/src/main/java/com/epmet/service/GovWebService.java b/epmet-auth/src/main/java/com/epmet/service/GovWebService.java index 10d86c20b4..6bee4b24b3 100644 --- a/epmet-auth/src/main/java/com/epmet/service/GovWebService.java +++ b/epmet-auth/src/main/java/com/epmet/service/GovWebService.java @@ -18,6 +18,14 @@ public interface GovWebService { **/ UserTokenResultDTO login(GovWebLoginFormDTO formDTO); + /** + * @param formDTO + * @return + * @Author sun + * @Description PC工作端-工作人员 通过第三方系统登录 + **/ + UserTokenResultDTO loginByThirdPlatform(GovWebLoginFormDTO formDTO); + /** * 区块链系统通过用户密码认证身份 * @param mobile diff --git a/epmet-auth/src/main/java/com/epmet/service/ThirdLoginService.java b/epmet-auth/src/main/java/com/epmet/service/ThirdLoginService.java index 70bcc92338..dff5e129e5 100644 --- a/epmet-auth/src/main/java/com/epmet/service/ThirdLoginService.java +++ b/epmet-auth/src/main/java/com/epmet/service/ThirdLoginService.java @@ -102,12 +102,19 @@ public interface ThirdLoginService { * @param formDTO * @return */ - ResiDingAppLoginResDTO resiLoginDingMd(ResiDingAppLoginMdFormDTO formDTO); + ResiDingAppLoginResDTO resiLoginDingMd(DingAppLoginMdFormDTO formDTO); /** * 企业内部应用免登 文档地址:https://open.dingtalk.com/document/orgapp-server/enterprise-internal-application-logon-free * @param formDTO * @return */ - ResiDingAppLoginResDTO resiLoginInternalDing(ResiDingAppLoginMdFormDTO formDTO); + ResiDingAppLoginResDTO resiLoginInternalDing(DingAppLoginMdFormDTO formDTO); + + /** + * desc:企业内部应用 工作端登录 + * @param formDTO + * @return + */ + UserTokenResultDTO govLoginInternalDing(DingAppLoginMdFormDTO formDTO); } diff --git a/epmet-auth/src/main/java/com/epmet/service/impl/GovWebServiceImpl.java b/epmet-auth/src/main/java/com/epmet/service/impl/GovWebServiceImpl.java index eab142e6a5..92e1de27a5 100644 --- a/epmet-auth/src/main/java/com/epmet/service/impl/GovWebServiceImpl.java +++ b/epmet-auth/src/main/java/com/epmet/service/impl/GovWebServiceImpl.java @@ -100,6 +100,33 @@ public class GovWebServiceImpl implements GovWebService, ResultDataResolver { } + @Override + public UserTokenResultDTO loginByThirdPlatform(GovWebLoginFormDTO formDTO) { + formDTO.setApp(LoginConstant.APP_GOV); + formDTO.setClient(LoginConstant.CLIENT_WEB); +// //1.参数校验 +// if (!(LoginConstant.APP_GOV.equals(formDTO.getApp()) && LoginConstant.CLIENT_WEB.equals(formDTO.getClient()))) { +// logger.error("当前接口只适用于PC工作端运营管理后台"); +// throw new RenException("当前接口只适用于PC工作端运营管理后台"); +// } + //3.校验登陆账号是否存在 + //根据客户Id和手机号查询登陆用户信息(此处不需要判断登陆人是否是有效客户以及是否是客户的根管理员,前一接口获取登陆手机号对应客户列表已经判断了) + GovWebOperLoginFormDTO form = new GovWebOperLoginFormDTO(); + form.setCustomerId(formDTO.getCustomerId()); + form.setMobile(formDTO.getPhone()); + Result result = epmetUserFeignClient.getStaffIdAndPwd(form); + if (!result.success() || null == result.getData() || null == result.getData().getUserId()) { + logger.warn("根据手机号查询PC工作端登陆人员信息失败,返回10003账号不存在"); + throw new RenException(EpmetErrorCode.ERR10003.getCode()); + } + GovWebOperLoginResultDTO resultDTO = result.getData(); + + //5.生成token存到redis并返回 + UserTokenResultDTO userTokenResultDTO = new UserTokenResultDTO(); + userTokenResultDTO.setToken(this.packagingUserToken(formDTO, resultDTO.getUserId())); + return userTokenResultDTO; + } + /** * 生成PC工作端token * @author sun diff --git a/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java b/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java index 91812aaeda..cd3b36a5ee 100644 --- a/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java +++ b/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java @@ -34,11 +34,13 @@ import com.epmet.dto.dingres.V2UserGetuserinfoResDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.feign.EpmetMessageOpenFeignClient; +import com.epmet.feign.EpmetUserFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.jwt.JwtTokenProperties; import com.epmet.jwt.JwtTokenUtils; import com.epmet.redis.CaptchaRedis; +import com.epmet.service.GovWebService; import com.epmet.service.ThirdLoginService; import com.taobao.api.ApiException; import com.taobao.dingtalk.client.DingTalkClientToken; @@ -90,6 +92,10 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol private DingTalkClientToken dingTalkClientToken; @Autowired private DingTalkClientUser dingTalkClientUser; + @Autowired + private EpmetUserFeignClient epmetUserFeignClient; + @Autowired + private GovWebService govWebService; /** * @param formDTO @@ -920,7 +926,7 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol } @Override - public ResiDingAppLoginResDTO resiLoginDingMd(ResiDingAppLoginMdFormDTO formDTO) { + public ResiDingAppLoginResDTO resiLoginDingMd(DingAppLoginMdFormDTO formDTO) { // 获取用户手机号 log.info("1、钉钉居民端应用登录入参:" + JSON.toJSONString(formDTO)); ResiDingAppLoginResDTO resDTO = null; @@ -1020,7 +1026,7 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol * @return */ @Override - public ResiDingAppLoginResDTO resiLoginInternalDing(ResiDingAppLoginMdFormDTO formDTO) { + public ResiDingAppLoginResDTO resiLoginInternalDing(DingAppLoginMdFormDTO formDTO) { // 获取用户手机号 log.info("1、钉钉居民端应用登录入参:" + JSON.toJSONString(formDTO)); ResiDingAppLoginResDTO resDTO = null; @@ -1052,6 +1058,26 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol return resDTO; } + @Override + public UserTokenResultDTO govLoginInternalDing(DingAppLoginMdFormDTO formDTO) { + // 获取用户手机号 + log.info("1、钉钉居民端应用登录入参:" + JSON.toJSONString(formDTO)); + ResiDingAppLoginResDTO resDTO = null; + resDTO = new ResiDingAppLoginResDTO(); + resDTO.setCustomerId(getCurrentCustomerId()); + + // 1、获取用户手机号 + DingLoginResiFormDTO dingLoginResiFormDTO = getDingLoginResiFormDTOInternal(formDTO.getMiniAppId(), formDTO.getAuthCode()); + dingLoginResiFormDTO.setCustomerId(resDTO.getCustomerId()); + + + GovWebLoginFormDTO loginGovParam = new GovWebLoginFormDTO(); + loginGovParam.setCustomerId(dingLoginResiFormDTO.getCustomerId()); + loginGovParam.setPhone(dingLoginResiFormDTO.getMobile()); + + return govWebService.loginByThirdPlatform(loginGovParam); + } + /** * 最原始的企业内部应用开发,不授权给产品服务商 * @param miniAppId From c85690b38ae775c868e439d86026704b8ccd44ad Mon Sep 17 00:00:00 2001 From: jianjun Date: Sat, 8 Oct 2022 14:44:37 +0800 Subject: [PATCH 09/12] =?UTF-8?q?=E9=92=89=E9=92=89=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=AB=AFweb2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/service/impl/ThirdLoginServiceImpl.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java b/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java index cd3b36a5ee..e1ab790e0f 100644 --- a/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java +++ b/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java @@ -1086,12 +1086,14 @@ public class ThirdLoginServiceImpl implements ThirdLoginService, ResultDataResol */ private DingLoginResiFormDTO getDingLoginResiFormDTOInternal(String miniAppId, String authCode) { DingMiniInfoCache dingMiniInfo = CustomerDingDingRedis.getDingMiniInfo(miniAppId); - + if (dingMiniInfo == null){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取钉钉应用配置异常", "获取钉钉应用配置异常"); + } // 1、获取企业内部应用的accessToken文档地址:https://open.dingtalk.com/document/orgapp-server/obtain-the-access_token-of-an-internal-app String accessToken = ""; DingTalkResult dingTalkResult = dingTalkClientToken.getAppAccessTokenToken(dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret()); if (!dingTalkResult.success() || StringUtils.isBlank(dingTalkResult.getData())) { - log.error(String.format("获取企业内部应用的accessToken失败,customKey:%s,customSecret:%s", dingMiniInfo.getSuiteSecret(), dingMiniInfo.getSuiteSecret())); + log.error(String.format("获取企业内部应用的accessToken失败,customKey:%s,customSecret:%s", dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret())); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取企业内部应用的accessToken异常", "获取企业内部应用的accessToken"); } accessToken = dingTalkResult.getData(); From e15ded2585eb8ad298dc81b031327f21eace8b6c Mon Sep 17 00:00:00 2001 From: jianjun Date: Sat, 8 Oct 2022 16:26:18 +0800 Subject: [PATCH 10/12] =?UTF-8?q?=E8=BF=90=E8=90=A5=E7=AB=AF=E7=BB=B4?= =?UTF-8?q?=E6=8A=A4=20miniapp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DingMiniInfoController.java | 71 ++++++++++++++++ .../java/com/epmet/dao/DingMiniInfoDao.java | 16 ++++ .../com/epmet/entity/DingMiniInfoEntity.java | 51 ++++++++++++ .../epmet/service/DingMiniInfoService.java | 78 ++++++++++++++++++ .../service/impl/DingMiniInfoServiceImpl.java | 82 +++++++++++++++++++ .../main/resources/mapper/DingMiniInfoDao.xml | 23 ++++++ 6 files changed, 321 insertions(+) create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/DingMiniInfoController.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/DingMiniInfoDao.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/DingMiniInfoEntity.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/DingMiniInfoService.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/DingMiniInfoServiceImpl.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/DingMiniInfoDao.xml diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/DingMiniInfoController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/DingMiniInfoController.java new file mode 100644 index 0000000000..be5a853dab --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/DingMiniInfoController.java @@ -0,0 +1,71 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.AssertUtils; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.DefaultGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.dto.DingMiniInfoDTO; +import com.epmet.service.DingMiniInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + + +/** + * 钉钉小程序信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-09-14 + */ +@RestController +@RequestMapping("dingMiniInfo") +public class DingMiniInfoController { + + @Autowired + private DingMiniInfoService dingMiniInfoService; + + @RequestMapping("page") + public Result> page(@RequestBody Map params){ + PageData page = dingMiniInfoService.page(params); + return new Result>().ok(page); + } + + @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) + public Result get(@PathVariable("id") String id){ + DingMiniInfoDTO data = dingMiniInfoService.get(id); + return new Result().ok(data); + } + + @NoRepeatSubmit + @PostMapping("save") + public Result save(@RequestBody DingMiniInfoDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + dingMiniInfoService.save(dto); + return new Result(); + } + + @NoRepeatSubmit + @PostMapping("update") + public Result update(@RequestBody DingMiniInfoDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + dingMiniInfoService.update(dto); + return new Result(); + } + + @PostMapping("delete") + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + dingMiniInfoService.delete(ids); + return new Result(); + } + + +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/DingMiniInfoDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/DingMiniInfoDao.java new file mode 100644 index 0000000000..3e3d84793b --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/DingMiniInfoDao.java @@ -0,0 +1,16 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.DingMiniInfoEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 钉钉小程序信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-09-14 + */ +@Mapper +public interface DingMiniInfoDao extends BaseDao { + +} \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/DingMiniInfoEntity.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/DingMiniInfoEntity.java new file mode 100644 index 0000000000..f649cef4a1 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/DingMiniInfoEntity.java @@ -0,0 +1,51 @@ +package com.epmet.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 钉钉小程序信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-09-14 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ding_mini_info") +public class DingMiniInfoEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * + */ + private String suiteId; + + /** + * + */ + private String appId; + + /** + * + */ + private String miniAppId; + + /** + * + */ + private String suiteName; + + /** + * + */ + private String suiteKey; + + /** + * + */ + private String suiteSecret; + +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/DingMiniInfoService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/DingMiniInfoService.java new file mode 100644 index 0000000000..a57b3b3cfa --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/DingMiniInfoService.java @@ -0,0 +1,78 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.DingMiniInfoDTO; +import com.epmet.entity.DingMiniInfoEntity; + +import java.util.List; +import java.util.Map; + +/** + * 钉钉小程序信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-09-14 + */ +public interface DingMiniInfoService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2022-09-14 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2022-09-14 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return DingMiniInfoDTO + * @author generator + * @date 2022-09-14 + */ + DingMiniInfoDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2022-09-14 + */ + void save(DingMiniInfoDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2022-09-14 + */ + void update(DingMiniInfoDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2022-09-14 + */ + void delete(String[] ids); +} \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/DingMiniInfoServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/DingMiniInfoServiceImpl.java new file mode 100644 index 0000000000..7e8579d139 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/DingMiniInfoServiceImpl.java @@ -0,0 +1,82 @@ +package com.epmet.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.dao.DingMiniInfoDao; +import com.epmet.dto.DingMiniInfoDTO; +import com.epmet.entity.DingMiniInfoEntity; +import com.epmet.service.DingMiniInfoService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 钉钉小程序信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-09-14 + */ +@Service +public class DingMiniInfoServiceImpl extends BaseServiceImpl implements DingMiniInfoService { + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, DingMiniInfoDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, DingMiniInfoDTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public DingMiniInfoDTO get(String id) { + DingMiniInfoEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, DingMiniInfoDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(DingMiniInfoDTO dto) { + DingMiniInfoEntity entity = ConvertUtils.sourceToTarget(dto, DingMiniInfoEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(DingMiniInfoDTO dto) { + DingMiniInfoEntity entity = ConvertUtils.sourceToTarget(dto, DingMiniInfoEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/DingMiniInfoDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/DingMiniInfoDao.xml new file mode 100644 index 0000000000..e812ece013 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/DingMiniInfoDao.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From ed516f482e4c3e808c006c1fc5ede57c32e739df Mon Sep 17 00:00:00 2001 From: jianjun Date: Sun, 9 Oct 2022 10:00:45 +0800 Subject: [PATCH 11/12] =?UTF-8?q?=E8=BF=90=E8=90=A5=E7=AB=AF=E7=BB=B4?= =?UTF-8?q?=E6=8A=A4=20miniapp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/controller/DingMiniInfoController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/DingMiniInfoController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/DingMiniInfoController.java index be5a853dab..ada1f1d0ff 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/DingMiniInfoController.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/DingMiniInfoController.java @@ -30,7 +30,7 @@ public class DingMiniInfoController { private DingMiniInfoService dingMiniInfoService; @RequestMapping("page") - public Result> page(@RequestBody Map params){ + public Result> page(@RequestParam Map params){ PageData page = dingMiniInfoService.page(params); return new Result>().ok(page); } From db7ae95b0180b18d731f6cff8588c140ec7e3ae7 Mon Sep 17 00:00:00 2001 From: jianjun Date: Sun, 9 Oct 2022 10:42:19 +0800 Subject: [PATCH 12/12] =?UTF-8?q?=E8=BF=90=E8=90=A5=E7=AB=AF=E7=BB=B4?= =?UTF-8?q?=E6=8A=A4=20miniapp3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/entity/DingMiniInfoEntity.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/DingMiniInfoEntity.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/DingMiniInfoEntity.java index f649cef4a1..e2be67a8a4 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/DingMiniInfoEntity.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/DingMiniInfoEntity.java @@ -48,4 +48,8 @@ public class DingMiniInfoEntity extends BaseEpmetEntity { */ private String suiteSecret; + private String token; + + private String aesKey; + }