From fa533ab92bbf35ab3b83bdc4f4c949ec304efff3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E9=94=90=E6=B3=A2?= <10549902+zhuangruibo@user.noreply.gitee.com> Date: Fri, 22 May 2026 20:48:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A7=E6=B3=95=E7=AB=AF-=E8=AE=A1=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../013-计划任务表设计.sql | 3 +- .../common/util/CommonUtil.java | 43 +++++++++++++++++++ .../AppEnfCpSettingController.java | 8 ++++ .../enforcement/AppEnfLoginController.java | 11 ++++- .../service/IEfcodeCpSettingService.java | 17 ++++++++ .../impl/EfcodeCpSettingServiceImpl.java | 8 ++++ .../src/api/enforcement/plan.js | 3 ++ .../src/store/Common.js | 14 +++++- .../src/views/enforcement/login.vue | 2 + .../enforcement/my/plan/cp_plan_edit.vue | 35 ++++++++++++++- 10 files changed, 139 insertions(+), 5 deletions(-) diff --git a/script/sql/zfjd-refactoring-v1/013-计划任务表设计.sql b/script/sql/zfjd-refactoring-v1/013-计划任务表设计.sql index 5823760c..51df5a85 100644 --- a/script/sql/zfjd-refactoring-v1/013-计划任务表设计.sql +++ b/script/sql/zfjd-refactoring-v1/013-计划任务表设计.sql @@ -184,4 +184,5 @@ VALUES ('CP_SETTING_SUBMIT_DEADLINE', '下阶段计划提交最晚时间', '26', ('CP_SETTING_AUTO_MATCH_START', '系统自动推荐匹配开始时间', '26', '系统自动推荐匹配的开始时间(号)>=', '0', NULL), ('CP_SETTING_MANUAL_MATCH_DAYS', '手工匹配距计划开始天数', '3', '手工匹配距离计划开始的天数>=', '0', NULL), - ('CP_MAX_UNION_UNIT', '单次联合单位最大数量', '3', '单次联合单位最大数量>=2', '0', NULL); + ('CP_MAX_UNION_UNIT', '单次联合单位最大数量', '3', '单次联合单位最大数量>=2', '0', NULL), + ('CP_MAX_INNER_UNIT_AC_PERSON_NUM', '单位内部单次计划最多参与人数', '3', '单位内部单次计划最多参与人数<=3', '0', NULL); diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/CommonUtil.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/CommonUtil.java index 55ae4abb..f853cd9d 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/CommonUtil.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/common/util/CommonUtil.java @@ -22,6 +22,49 @@ public class CommonUtil { return num; } + /** + * 判断手机号是否为加密状态 + * + * + * @param num 待判断的手机号字符串 + * @return true=已加密;false=明文或空值 + */ + public static boolean isPhoneEncrypted(String num){ + if(StringUtils.isEmpty(num))return false; + // 纯数字视为明文,非纯数字视为密文 + return !num.matches("^\\d+$"); + } + + /** + * 手机号解密返回明文(不脱敏) + * + * + * @param num 可能是明文或密文的手机号 + * @return 明文手机号 + */ + public static String decryptPhone(String num){ + if(StringUtils.isEmpty(num))return num; + // 纯数字视为未加密明文,直接返回 + if(num.matches("^\\d+$")){ + return num; + } + try { + return IdCardCryptoUtil.symmetricDecryptIdCard(KEY, num); + } catch (Exception e) { + // 解密失败,返回原值,避免调用方报错 + return num; + } + } + /** * 两个字名字空格 * @param name diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enforcement/AppEnfCpSettingController.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enforcement/AppEnfCpSettingController.java index 2314752e..3741cc68 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enforcement/AppEnfCpSettingController.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enforcement/AppEnfCpSettingController.java @@ -57,4 +57,12 @@ public class AppEnfCpSettingController extends EfcodeCpSettingController { public R getMaxUnionUnit() { return R.ok(efcodeCpSettingService.getMaxUnionUnit()); } + + /** + * 获取单位内部单次计划最多参与人数 + */ + @GetMapping("/maxInnerUnitAcPersonNum") + public R getMaxInnerUnitAcPersonNum() { + return R.ok(efcodeCpSettingService.getMaxInnerUnitAcPersonNum()); + } } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enforcement/AppEnfLoginController.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enforcement/AppEnfLoginController.java index 4dba0fd4..1252bc41 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enforcement/AppEnfLoginController.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/app/enforcement/AppEnfLoginController.java @@ -1,6 +1,7 @@ package com.zdxt.enforcementcode.controller.app.enforcement; import cn.dev33.satoken.annotation.SaIgnore; +import com.zdxt.enforcementcode.common.util.CommonUtil; import com.zdxt.enforcementcode.service.enforcement.IAppEnfLoginService; import com.zdxt.enforcementcode.controller.app.LoginController; import com.zdxt.enforcementcode.domain.vo.SrzDeptVo; @@ -99,14 +100,20 @@ public class AppEnfLoginController extends LoginController { return R.fail("部门ID查找错误!"); } - // 8. 构造返回数据 + // 8. 手机号解密处理(如是加密存储则返回明文以供前端展示与业务使用) + String phonenumber = user.getPhonenumber(); + if (CommonUtil.isPhoneEncrypted(phonenumber)) { + phonenumber = CommonUtil.decryptPhone(phonenumber); + } + + // 9. 构造返回数据 Map data = new HashMap<>(); data.put("token", token); data.put("userId", user.getUserId()); data.put("userName", user.getUserName()); data.put("loginName", user.getLoginName()); data.put("nickName", user.getNickName()); - data.put("phonenumber", user.getPhonenumber() != null ? user.getPhonenumber() : ""); + data.put("phonenumber", phonenumber != null ? phonenumber : ""); data.put("deptId", user.getDeptId()); data.put("deptName", sysDept.getDeptName()); diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeCpSettingService.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeCpSettingService.java index 8911fe99..ab7f1471 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeCpSettingService.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeCpSettingService.java @@ -36,6 +36,11 @@ public interface IEfcodeCpSettingService { */ String SETTING_ID_MAX_UNION_UNIT = "CP_MAX_UNION_UNIT"; + /** + * 设置项主键:单位内部单次计划最多参与人数<=3 + */ + String SETTING_ID_MAX_INNER_UNIT_AC_PERSON_NUM = "CP_MAX_INNER_UNIT_AC_PERSON_NUM"; + /** * 默认值:下阶段计划提交最晚时间 */ @@ -56,6 +61,11 @@ public interface IEfcodeCpSettingService { */ int DEFAULT_MAX_UNION_UNIT = 3; + /** + * 默认值:单位内部单次计划最多参与人数 + */ + int DEFAULT_MAX_INNER_UNIT_AC_PERSON_NUM = 3; + /** * 查询行政执法检查计划-设置 * @@ -92,6 +102,13 @@ public interface IEfcodeCpSettingService { */ Integer getMaxUnionUnit(); + /** + * 获取单位内部单次计划最多参与人数 + * + * @return 数值,未配置或无法解析时返回默认值 {@link #DEFAULT_MAX_INNER_UNIT_AC_PERSON_NUM} + */ + Integer getMaxInnerUnitAcPersonNum(); + /** * 分页查询行政执法检查计划-设置列表 * diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpSettingServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpSettingServiceImpl.java index 909a2d87..c00765a7 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpSettingServiceImpl.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeCpSettingServiceImpl.java @@ -76,6 +76,14 @@ public class EfcodeCpSettingServiceImpl implements IEfcodeCpSettingService { return getIntSetting(SETTING_ID_MAX_UNION_UNIT, DEFAULT_MAX_UNION_UNIT); } + /** + * 获取单位内部单次计划最多参与人数 + */ + @Override + public Integer getMaxInnerUnitAcPersonNum() { + return getIntSetting(SETTING_ID_MAX_INNER_UNIT_AC_PERSON_NUM, DEFAULT_MAX_INNER_UNIT_AC_PERSON_NUM); + } + /** * 根据设置主键获取整型配置值,不存在或解析失败时返回默认值 * diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/plan.js b/zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/plan.js index 5d80c291..2c6e3ec3 100644 --- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/plan.js +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/api/enforcement/plan.js @@ -28,6 +28,9 @@ const settingBaseUrl = "/app-enf/cpSetting"; // 下阶段计划提交最晚时间(每月几号前需提交下阶段计划<=) export const getSubmitDeadline = (success, error) => _get(settingBaseUrl + "/submitDeadline", {}, success, error); +// 单位内部单次计划最多参与人数(>=3) +export const getMaxInnerUnitAcPersonNum = (success, error) => _get(settingBaseUrl + "/maxInnerUnitAcPersonNum", {}, success, error); + // endregion // region 企业检索接口 diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/store/Common.js b/zdxt-web-client/zdxt-efcode-enforcement-app/src/store/Common.js index cf635341..5e727ed2 100644 --- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/store/Common.js +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/store/Common.js @@ -12,6 +12,10 @@ export default defineStore('useCommon', { enterpriseId:"", //当前登录用户ID userId:"", + //当前登录用户名(账号) + userName:"", + //当前登录用户昵称(姓名) + nickName:"", //部门ID deptId:"", //部门名称 @@ -63,6 +67,14 @@ export default defineStore('useCommon', { SET_USER_ID(data){ this.userId = data; }, + //设置用户名(账号) + SET_USER_NAME(data){ + this.userName = data; + }, + //设置用户昵称(姓名) + SET_NICK_NAME(data){ + this.nickName = data; + }, //设置部门ID SET_DEPT_ID(data){ this.deptId = data; @@ -145,6 +157,6 @@ export default defineStore('useCommon', { }, persist: { storage: sessionStorage, - pick: ['token', 'userId', 'enterpriseNumber', 'enterpriseName', 'enterpriseId', 'phonenumber', 'deptId', 'deptName', 'organId', 'organName', 'bureauUnitId', 'bureauUnitName', 'hasLaw'], + pick: ['token', 'userId', 'userName', 'nickName', 'enterpriseNumber', 'enterpriseName', 'enterpriseId', 'phonenumber', 'deptId', 'deptName', 'organId', 'organName', 'bureauUnitId', 'bureauUnitName', 'hasLaw'], }, }); diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/login.vue b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/login.vue index ade35062..e5e22852 100644 --- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/login.vue +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/login.vue @@ -89,6 +89,8 @@ // 执法端登录成功 → 赋值用户基本信息 useCommon.SET_USER_PHONENUMBER(response.data.phonenumber || ""); useCommon.SET_USER_ID(response.data.userId); + useCommon.SET_USER_NAME(response.data.userName || ""); + useCommon.SET_NICK_NAME(response.data.nickName || ""); useCommon.SET_TOKEN(response.data.token); useCommon.SET_DEPT_ID(response.data.deptId); useCommon.SET_DEPT_NAME(response.data.deptName || ""); diff --git a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/plan/cp_plan_edit.vue b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/plan/cp_plan_edit.vue index baa08861..840e1dcf 100644 --- a/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/plan/cp_plan_edit.vue +++ b/zdxt-web-client/zdxt-efcode-enforcement-app/src/views/enforcement/my/plan/cp_plan_edit.vue @@ -184,7 +184,7 @@