From 8067801393327c1bb8a1f25369f809aa23da4935 Mon Sep 17 00:00:00 2001 From: shil <452061493@qq.com> Date: Mon, 3 Aug 2026 16:05:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=B1i=E4=BC=81=E7=99=BB=E5=BD=95=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/util/IdCardCryptoUtil.java | 2 +- .../common/util/jasypt/JasyptUtils.java | 2 +- .../AppEnterpriseLoginController.java | 71 +- .../domain/vo/siq/SiqLoginVo.java | 43 ++ .../IAppEnterpriseLoginService.java | 2 + .../impl/AppEnterpriseLoginServiceImpl.java | 7 +- .../src/api/enforcement/index.js | 2 + .../enforcement/home/enforcementHome.vue | 31 +- .../router/enterprise-app/ent-main-router.js | 5 +- .../views/enterprise/home/enterpriseHome.vue | 610 +++++++++++------- .../enterprise/home/enterpriseHomeV2.vue | 6 +- .../src/main/resources/application-dev.yml | 15 +- 12 files changed, 515 insertions(+), 281 deletions(-) create mode 100644 zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/siq/SiqLoginVo.java diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/IdCardCryptoUtil.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/IdCardCryptoUtil.java index db1e7dc1..7826b943 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/IdCardCryptoUtil.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/IdCardCryptoUtil.java @@ -35,7 +35,7 @@ public class IdCardCryptoUtil { String key = "VRJHzFqJpsSZhwnsKTWNspv_GZMxTWl-bgH6DyE9Ty0"; System.out.println("====================== 示例 ======================"); // 加密 - String source_dec = "13823290422"; + String source_dec = "15815555985"; String enc = IdCardCryptoUtil.symmetricEncryptIdCard(key, source_dec); System.out.println(source_dec+" 加密后 : "+enc); // 解密 diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/jasypt/JasyptUtils.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/jasypt/JasyptUtils.java index 959c021b..cf3002a8 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/jasypt/JasyptUtils.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/jasypt/JasyptUtils.java @@ -52,7 +52,7 @@ public final class JasyptUtils { //加密 String s = encryptWithMD5("http://10.76.108.1:12004/zwwx_proxy", "ATPfOhpnAVp6yBas7RU"); System.out.println(s); - String channelcs1 = decryptWithMD5("G0vjsS4xBVY0nyNAEnvajBxs+9PyByYkVjEV5ZIXRfq88RmD/pb9x81iJCSf7Ab8", "ATPfOhpnAVp6yBas7RU"); + String channelcs1 = decryptWithMD5("KlJ9leroG2ZnKMUbnOZfpGkZNv/THSthpbSfnp4REq/N4ta1Rx729h0be9TBOkma", "ATPfOhpnAVp6yBas7RU"); System.out.println(channelcs1); } } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEnterpriseLoginController.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEnterpriseLoginController.java index 028806ea..baee13df 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEnterpriseLoginController.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enterprise/AppEnterpriseLoginController.java @@ -2,18 +2,22 @@ package com.zdxt.enforcementcode.controller.app.enterprise; import cn.dev33.satoken.annotation.SaIgnore; +import com.alibaba.fastjson.JSONObject; +import com.zdxt.enforcementcode.common.util.HttpUtil; +import com.zdxt.enforcementcode.common.util.IdCardCryptoUtil; +import com.zdxt.enforcementcode.common.util.StringUtils; import com.zdxt.enforcementcode.domain.bo.enterprise.AppEnterpriseLoginBo; +import com.zdxt.enforcementcode.domain.vo.siq.SiqLoginVo; import com.zdxt.enforcementcode.service.enterprise.IAppEnterpriseLoginService; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -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 org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.Map; @@ -27,9 +31,17 @@ import java.util.Map; @RestController @RequestMapping("/app-ent/enterprise/login") public class AppEnterpriseLoginController { + private static final Logger log = LoggerFactory.getLogger(AppEnterpriseLoginController.class); private final IAppEnterpriseLoginService appEnterpriseLoginService; + @Value("${siq.code}") + private String code; + @Value("${siq.secretKey}") + private String secretKey; + @Value("${siq.siqUrl}") + private String siqUrl; + /** * 获取深i企鉴权所需的 accessKey / accessSecret */ @@ -45,15 +57,52 @@ public class AppEnterpriseLoginController { return R.ok("获取成功", result); } +// /** +// * 企业端用户登录(深i企) +// */ +// @SaIgnore +// @ApiResponse(description = "企业端-用户登录(深i企)") +// @PostMapping("/siqLogin") +// public R> siqLogin(@RequestBody AppEnterpriseLoginBo bo) { +// Map result = appEnterpriseLoginService.siqLogin(bo); +// return R.ok("登录成功", result); +// } + /** - * 企业端用户登录(深i企) + * 深i企用户登录 + * @param siqLogin */ - @SaIgnore - @ApiResponse(description = "企业端-用户登录(深i企)") @PostMapping("/siqLogin") - public R> siqLogin(@RequestBody AppEnterpriseLoginBo bo) { - Map result = appEnterpriseLoginService.siqLogin(bo); - return R.ok("登录成功", result); + @ResponseBody + public R> siqLogin(@RequestBody SiqLoginVo siqLogin){ + + //redis锁 + String redisLock = ""; + try { + Map params = new HashMap<>(); + log.info("---> 深i企登录用户 code:{}",siqLogin.getCode()); + String secret = IdCardCryptoUtil.symmetricEncryptIdCard(secretKey, siqLogin.getCode()); + params.put("accessKeySign",secret); + log.info("accessKeySign{}",secret); + params.put("appCode",code); + String data = null; + try { + data = HttpUtil.httpSendPost(siqUrl + "/pub/auth/getUserInfo", JSONObject.toJSONString(params),new HashMap<>()); + } catch (Exception e) { + e.printStackTrace(); + log.error("---> 获取深i企用户信息失败,返回结果:{}",data); + } + + log.info("---> data: {}", data); + JSONObject jsonObject = JSONObject.parseObject(data); + JSONObject userInfo = (JSONObject) jsonObject.get("data"); + log.info("---> userInfo: {}", userInfo.toJSONString()); + Map result = appEnterpriseLoginService.doSiqLoginWithLock(userInfo); + return R.ok("登录成功", result); + }catch (Exception e){ + e.printStackTrace(); + } + return R.ok("登录失败"); } /** diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/siq/SiqLoginVo.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/siq/SiqLoginVo.java new file mode 100644 index 00000000..c7285aa9 --- /dev/null +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/siq/SiqLoginVo.java @@ -0,0 +1,43 @@ +package com.zdxt.enforcementcode.domain.vo.siq; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class SiqLoginVo { + + /** + * 用户ID + */ + private String userId; + + /** + * 用户姓名 + */ + private String userName; + + private String code; + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } +} diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/IAppEnterpriseLoginService.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/IAppEnterpriseLoginService.java index cbfec316..a5d99571 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/IAppEnterpriseLoginService.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/IAppEnterpriseLoginService.java @@ -25,4 +25,6 @@ public interface IAppEnterpriseLoginService { * @return 登录结果,包含token和用户信息 */ Map siqLoginMock(AppEnterpriseLoginBo bo); + + public Map doSiqLoginWithLock(JSONObject userInfo); } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/impl/AppEnterpriseLoginServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/impl/AppEnterpriseLoginServiceImpl.java index f3b1fcb4..e9d67504 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/impl/AppEnterpriseLoginServiceImpl.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/enterprise/impl/AppEnterpriseLoginServiceImpl.java @@ -137,7 +137,7 @@ public class AppEnterpriseLoginServiceImpl implements IAppEnterpriseLoginService /** * 加锁后完成用户注册、企业关联并签发 token */ - private Map doSiqLoginWithLock(JSONObject userInfo) { + public Map doSiqLoginWithLock(JSONObject userInfo) { String lockKey = resolveLoginLockKey(userInfo); RLock lock = redissonClient.getLock("siq_login_lock:" + lockKey); boolean locked = false; @@ -150,13 +150,16 @@ public class AppEnterpriseLoginServiceImpl implements IAppEnterpriseLoginService log.info("---> 登入锁 key: {}", lockKey); EnterpriseUser newUser = saveOrUpdateEnterpriseUser(userInfo); + log.info("---> newUser: {}", newUser); EnterpriseInformation enterpriseInformation = addSiqUserCompany(userInfo, newUser); + log.info("---> enterpriseInformation: {}", enterpriseInformation); if (newUser != null && enterpriseInformation != null) { createUserEnterpriseRef(newUser.getUserId(), enterpriseInformation); } String token = generateToken(newUser, enterpriseInformation); + log.info("---> token: {}", token); return buildLoginResult(newUser, enterpriseInformation, token); } catch (BaseException e) { throw e; @@ -225,7 +228,7 @@ public class AppEnterpriseLoginServiceImpl implements IAppEnterpriseLoginService EnterpriseUser existUser = enterpriseUserMapper.selectOne(queryWrapper); Long userId; - + log.info("===> existUser: {}", existUser); if (existUser == null) { log.info("企业用户不存在,执行新增操作: userName={}, userType={}", loginName, userType); newUser = buildEnterpriseUser(userInfo, userType); diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/index.js b/zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/index.js index 401bd76d..79acca5a 100644 --- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/index.js +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/index.js @@ -10,6 +10,8 @@ export const enforcementLoginByPassword = (params, success, error) => _post(base // 深圳易平台 export const szyptGetToken = (params, success, error) => _get(baseUrl + "/login/szyptGetToken",params,success,error); +// 深圳易平台登录 +export const getSzyptLoginAuth = (code, success, error) => _get(baseUrl + "/login/szyptLogin/"+code,null,success,error); // region 企业模块 diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/home/enforcementHome.vue b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/home/enforcementHome.vue index 28a41f1c..d2772923 100644 --- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/home/enforcementHome.vue +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/home/enforcementHome.vue @@ -48,9 +48,9 @@
非行政执法
非执法人员入企登记
-
- + + @@ -81,10 +81,11 @@ @@ -360,7 +377,7 @@ onMounted(() => { right: 12px; top: 12px; -} +} .card-scan-box{ display: flex; margin-top: 17px; @@ -393,7 +410,7 @@ onMounted(() => { background-size: 100% 100%; padding: 8px; box-sizing: border-box; - + } } .information-card { diff --git a/zdxt-web-client/zdxt-efcode-enterprise-app/src/router/enterprise-app/ent-main-router.js b/zdxt-web-client/zdxt-efcode-enterprise-app/src/router/enterprise-app/ent-main-router.js index b00d161f..f892816c 100644 --- a/zdxt-web-client/zdxt-efcode-enterprise-app/src/router/enterprise-app/ent-main-router.js +++ b/zdxt-web-client/zdxt-efcode-enterprise-app/src/router/enterprise-app/ent-main-router.js @@ -23,7 +23,7 @@ const routes = [ // 企业端密码登录 { path: "/enterprise/loginByPassword", - name: "enterpriseLoginByPassword", + name: "enterpriseLoginByPas0sword", component: () => import("@/views/enterprise/auth/loginByPassword.vue"), meta: { isKeepAlive: false, @@ -34,7 +34,8 @@ const routes = [ { path: "/enterprise/enterpriseHome", name: "enterpriseHome", - component: () => import("@/views/enterprise/home/enterpriseHomeV2.vue"), + // component: () => import("@/views/enterprise/home/enterpriseHomeV2.vue"), + component: () => import("@/views/enterprise/home/enterpriseHome.vue"), meta: { isKeepAlive: false, title: "首页", diff --git a/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/home/enterpriseHome.vue b/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/home/enterpriseHome.vue index 6e98cbe3..a6ad0a84 100644 --- a/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/home/enterpriseHome.vue +++ b/zdxt-web-client/zdxt-efcode-enterprise-app/src/views/enterprise/home/enterpriseHome.vue @@ -1,41 +1,64 @@