From 09614a023949c9a8a21486ae3a41eef80a569228 Mon Sep 17 00:00:00 2001 From: zhangdaiscott Date: Sun, 7 Jan 2024 20:28:41 +0800 Subject: [PATCH 01/34] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=87=A0=E4=B8=AAbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jeecg-boot-base-core/pom.xml | 2 +- .../jeecg/common/system/vo/SysFilesModel.java | 10 +++++ .../jeecg/common/system/api/ISysBaseAPI.java | 6 +-- .../api/fallback/SysBaseAPIFallback.java | 4 +- .../api/controller/SystemApiController.java | 28 +++++------- .../system/controller/LoginController.java | 27 +++++++---- .../system/controller/SysUserController.java | 2 +- .../system/controller/ThirdAppController.java | 45 +++++++++++++++++++ .../src/main/resources/application-prod.yml | 1 + .../src/main/resources/application-test.yml | 4 +- .../main/resources/flyway/sql/mysql/README.md | 4 ++ 11 files changed, 97 insertions(+), 36 deletions(-) create mode 100644 jeecg-module-system/jeecg-system-start/src/main/resources/flyway/sql/mysql/README.md diff --git a/jeecg-boot-base-core/pom.xml b/jeecg-boot-base-core/pom.xml index 53518c499..354f8dd88 100644 --- a/jeecg-boot-base-core/pom.xml +++ b/jeecg-boot-base-core/pom.xml @@ -145,7 +145,7 @@ ${postgresql.version} runtime - + org.springframework.boot diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/vo/SysFilesModel.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/vo/SysFilesModel.java index ecc316d90..e26a19ed5 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/vo/SysFilesModel.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/vo/SysFilesModel.java @@ -19,6 +19,8 @@ public class SysFilesModel { private String storeType; /**文件大小(kb)*/ private Double fileSize; + /**租户id*/ + private String tenantId; public String getId() { return id; @@ -67,4 +69,12 @@ public class SysFilesModel { public void setFileSize(Double fileSize) { this.fileSize = fileSize; } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } } \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-api/jeecg-system-cloud-api/src/main/java/org/jeecg/common/system/api/ISysBaseAPI.java b/jeecg-module-system/jeecg-system-api/jeecg-system-cloud-api/src/main/java/org/jeecg/common/system/api/ISysBaseAPI.java index 2e84043e4..a4e669f14 100644 --- a/jeecg-module-system/jeecg-system-api/jeecg-system-cloud-api/src/main/java/org/jeecg/common/system/api/ISysBaseAPI.java +++ b/jeecg-module-system/jeecg-system-api/jeecg-system-cloud-api/src/main/java/org/jeecg/common/system/api/ISysBaseAPI.java @@ -108,7 +108,7 @@ public interface ISysBaseAPI extends CommonAPI { * @return 部门 parentIds */ @GetMapping("/sys/api/getDepartParentIdsByDepIds") - Set getDepartParentIdsByDepIds(@RequestParam("depIds") Set depIds); + Set getDepartParentIdsByDepIds(@RequestParam("depIds") Set depIds); /** * 9通过用户账号查询部门 name @@ -213,7 +213,7 @@ public interface ISysBaseAPI extends CommonAPI { * @return */ @GetMapping("/sys/api/queryAllUser") - public JSONObject queryAllUser(@RequestParam(name="userIds",required=false)String userIds, @RequestParam(name="pageNo",required=false) Integer pageNo,@RequestParam(name="pageSize",required=false) int pageSize); + public JSONObject queryAllUser(@RequestParam(name="userIds",required=false)String userIds, @RequestParam(name="pageNo",required=false) Integer pageNo,@RequestParam(name="pageSize",required=false) Integer pageSize); /** @@ -761,7 +761,7 @@ public interface ISysBaseAPI extends CommonAPI { @GetMapping("/sys/api/dictTableWhiteListCheckByDict") boolean dictTableWhiteListCheckByDict( @RequestParam("tableOrDictCode") String tableOrDictCode, - @RequestParam(value = "fields", required = false) String[] fields + @RequestParam(value = "fields", required = false) String... fields ); } diff --git a/jeecg-module-system/jeecg-system-api/jeecg-system-cloud-api/src/main/java/org/jeecg/common/system/api/fallback/SysBaseAPIFallback.java b/jeecg-module-system/jeecg-system-api/jeecg-system-cloud-api/src/main/java/org/jeecg/common/system/api/fallback/SysBaseAPIFallback.java index 2a22be11a..90b616898 100644 --- a/jeecg-module-system/jeecg-system-api/jeecg-system-cloud-api/src/main/java/org/jeecg/common/system/api/fallback/SysBaseAPIFallback.java +++ b/jeecg-module-system/jeecg-system-api/jeecg-system-cloud-api/src/main/java/org/jeecg/common/system/api/fallback/SysBaseAPIFallback.java @@ -133,7 +133,7 @@ public class SysBaseAPIFallback implements ISysBaseAPI { } @Override - public JSONObject queryAllUser(String userIds, Integer pageNo, int pageSize) { + public JSONObject queryAllUser(String userIds, Integer pageNo, Integer pageSize) { return null; } @@ -446,7 +446,7 @@ public class SysBaseAPIFallback implements ISysBaseAPI { } @Override - public boolean dictTableWhiteListCheckByDict(String tableOrDictCode, String[] fields) { + public boolean dictTableWhiteListCheckByDict(String tableOrDictCode, String... fields) { return false; } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/api/controller/SystemApiController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/api/controller/SystemApiController.java index 9ca8dc32b..b155b04ee 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/api/controller/SystemApiController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/api/controller/SystemApiController.java @@ -347,7 +347,7 @@ public class SystemApiController { * @return */ @GetMapping("/queryAllUser") - public JSONObject queryAllUser(@RequestParam(name="userIds",required=false)String userIds, @RequestParam(name="pageNo",required=false) Integer pageNo,@RequestParam(name="pageSize",required=false) int pageSize){ + public JSONObject queryAllUser(@RequestParam(name="userIds",required=false)String userIds, @RequestParam(name="pageNo",required=false) Integer pageNo,@RequestParam(name="pageSize",required=false) Integer pageSize){ return sysBaseApi.queryAllUser(userIds, pageNo, pageSize); } @@ -578,7 +578,7 @@ public class SystemApiController { * @param tenantId 新的租户ID * @return Map Map<原字典编码, 新字典编码> */ - @GetMapping("/sys/api/copyLowAppDict") + @GetMapping("/copyLowAppDict") Map copyLowAppDict(@RequestParam("originalAppId") String originalAppId, @RequestParam("appId") String appId, @RequestParam("tenantId") String tenantId) { return sysBaseApi.copyLowAppDict(originalAppId, appId, tenantId); } @@ -732,14 +732,6 @@ public class SystemApiController { this.sysBaseApi.saveDataLog(dataLogDto); } - @PostMapping("/addSysFiles") - public void addSysFiles(@RequestBody SysFilesModel sysFilesModel){this.sysBaseApi.addSysFiles(sysFilesModel);} - - @GetMapping("/getFileUrl") - public String getFileUrl(@RequestParam(name="fileId") String fileId){ - return this.sysBaseApi.getFileUrl(fileId); - } - /** * 更新头像 * @param loginUser @@ -858,7 +850,7 @@ public class SystemApiController { * @param deptIds * @return */ - @GetMapping("/sys/api/queryUserIdsByDeptIds") + @GetMapping("/queryUserIdsByDeptIds") public List queryUserIdsByDeptIds(@RequestParam("deptIds") List deptIds){ return sysBaseApi.queryUserIdsByDeptIds(deptIds); } @@ -868,7 +860,7 @@ public class SystemApiController { * @param deptIds * @return */ - @GetMapping("/sys/api/queryUserAccountsByDeptIds") + @GetMapping("/queryUserAccountsByDeptIds") public List queryUserAccountsByDeptIds(@RequestParam("deptIds") List deptIds){ return sysBaseApi.queryUserAccountsByDeptIds(deptIds); } @@ -878,7 +870,7 @@ public class SystemApiController { * @param roleCodes * @return */ - @GetMapping("/sys/api/queryUserIdsByRoleds") + @GetMapping("/queryUserIdsByRoleds") public List queryUserIdsByRoleds(@RequestParam("roleCodes") List roleCodes){ return sysBaseApi.queryUserIdsByRoleds(roleCodes); } @@ -888,7 +880,7 @@ public class SystemApiController { * @param positionIds * @return */ - @GetMapping("/sys/api/queryUserIdsByPositionIds") + @GetMapping("/queryUserIdsByPositionIds") public List queryUserIdsByPositionIds(@RequestParam("positionIds") List positionIds){ return sysBaseApi.queryUserIdsByPositionIds(positionIds); } @@ -900,7 +892,7 @@ public class SystemApiController { * @param orgCode 部门编码 * @return */ - @GetMapping("/sys/api/getUserAccountsByDepCode") + @GetMapping("/getUserAccountsByDepCode") public List getUserAccountsByDepCode(String orgCode){ return sysBaseApi.getUserAccountsByDepCode(orgCode); } @@ -911,7 +903,7 @@ public class SystemApiController { * @param selectSql * @return */ - @GetMapping("/sys/api/dictTableWhiteListCheckBySql") + @GetMapping("/dictTableWhiteListCheckBySql") public boolean dictTableWhiteListCheckBySql(@RequestParam("selectSql") String selectSql) { return sysBaseApi.dictTableWhiteListCheckBySql(selectSql); } @@ -923,10 +915,10 @@ public class SystemApiController { * @param fields 如果传的是dictCode,则该参数必须传null * @return */ - @GetMapping("/sys/api/dictTableWhiteListCheckByDict") + @GetMapping("/dictTableWhiteListCheckByDict") public boolean dictTableWhiteListCheckByDict( @RequestParam("tableOrDictCode") String tableOrDictCode, - @RequestParam(value = "fields", required = false) String[] fields + @RequestParam(value = "fields", required = false) String... fields ) { return sysBaseApi.dictTableWhiteListCheckByDict(tableOrDictCode, fields); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java index 48fc31079..ff4f6c130 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java @@ -72,7 +72,7 @@ public class LoginController { @ApiOperation("登录接口") @RequestMapping(value = "/login", method = RequestMethod.POST) - public Result login(@RequestBody SysLoginModel sysLoginModel){ + public Result login(@RequestBody SysLoginModel sysLoginModel, HttpServletRequest request){ Result result = new Result(); String username = sysLoginModel.getUsername(); String password = sysLoginModel.getPassword(); @@ -132,7 +132,7 @@ public class LoginController { } //用户登录信息 - userInfo(sysUser, result); + userInfo(sysUser, result, request); //update-begin--Author:liusq Date:20210126 for:登录成功,删除redis中的验证码 redisUtil.del(realKey); //update-begin--Author:liusq Date:20210126 for:登录成功,删除redis中的验证码 @@ -158,10 +158,10 @@ public class LoginController { JSONObject obj=new JSONObject(); //update-begin---author:scott ---date:2022-06-20 for:vue3前端,支持自定义首页----------- - String version = request.getHeader(CommonConstant.VERSION); + String vue3Version = request.getHeader(CommonConstant.VERSION); //update-begin---author:liusq ---date:2022-06-29 for:接口返回值修改,同步修改这里的判断逻辑----------- - SysRoleIndex roleIndex = sysUserService.getDynamicIndexByUserRole(username, version); - if (oConvertUtils.isNotEmpty(version) && roleIndex != null && oConvertUtils.isNotEmpty(roleIndex.getUrl())) { + SysRoleIndex roleIndex = sysUserService.getDynamicIndexByUserRole(username, vue3Version); + if (oConvertUtils.isNotEmpty(vue3Version) && roleIndex != null && oConvertUtils.isNotEmpty(roleIndex.getUrl())) { String homePath = roleIndex.getUrl(); if (!homePath.startsWith(SymbolConstant.SINGLE_SLASH)) { homePath = SymbolConstant.SINGLE_SLASH + homePath; @@ -173,6 +173,7 @@ public class LoginController { obj.put("userInfo",sysUser); obj.put("sysAllDictItems", sysDictService.queryAllDictItems()); + result.setResult(obj); result.success(""); } @@ -397,7 +398,7 @@ public class LoginController { */ @ApiOperation("手机号登录接口") @PostMapping("/phoneLogin") - public Result phoneLogin(@RequestBody JSONObject jsonObject) { + public Result phoneLogin(@RequestBody JSONObject jsonObject, HttpServletRequest request) { Result result = new Result(); String phone = jsonObject.getString("mobile"); //update-begin-author:taoyan date:2022-11-7 for: issues/4109 平台用户登录失败锁定用户 @@ -427,7 +428,7 @@ public class LoginController { return result; } //用户信息 - userInfo(sysUser, result); + userInfo(sysUser, result, request); //添加日志 baseCommonService.addLog("用户名: " + sysUser.getUsername() + ",登录成功!", CommonConstant.LOG_TYPE_1, null); @@ -442,7 +443,7 @@ public class LoginController { * @param result * @return */ - private Result userInfo(SysUser sysUser, Result result) { + private Result userInfo(SysUser sysUser, Result result, HttpServletRequest request) { String username = sysUser.getUsername(); String syspassword = sysUser.getPassword(); // 获取用户部门信息 @@ -482,7 +483,15 @@ public class LoginController { // update-end--Author:wangshuai Date:20200805 for:如果用戶为选择部门,数据库为存在上一次登录部门,则取一条存进去 obj.put("multi_depart", 2); } - obj.put("sysAllDictItems", sysDictService.queryAllDictItems()); + + //update-begin---author:scott ---date:2024-01-05 for:【QQYUN-7802】前端在登录时加载了两次数据字典,建议优化下,避免数据字典太多时可能产生的性能问题 #956--- + // login接口,在vue3前端下不加载字典数据,vue2下加载字典 + String vue3Version = request.getHeader(CommonConstant.VERSION); + if(oConvertUtils.isEmpty(vue3Version)){ + obj.put("sysAllDictItems", sysDictService.queryAllDictItems()); + } + //end-begin---author:scott ---date:2024-01-05 for:【QQYUN-7802】前端在登录时加载了两次数据字典,建议优化下,避免数据字典太多时可能产生的性能问题 #956--- + result.setResult(obj); result.success("登录成功"); return result; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java index 29c5a9e26..c9e2b8138 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java @@ -1428,7 +1428,7 @@ public class SysUserController { //------------------------------------------------------------------------------------------------ //是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】 if (MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL) { - String tenantId = TokenUtils.getTenantIdByRequest(request); + String tenantId = oConvertUtils.getString(TokenUtils.getTenantIdByRequest(request),"-1"); //update-begin---author:wangshuai ---date:20221223 for:[QQYUN-3371]租户逻辑改造,改成关系表------------ List userIds = userTenantService.getUserIdsByTenantId(Integer.valueOf(tenantId)); if (oConvertUtils.listIsNotEmpty(userIds)) { diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdAppController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdAppController.java index 9079338c8..416c36a2f 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdAppController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdAppController.java @@ -14,6 +14,7 @@ import org.jeecg.common.constant.SymbolConstant; import org.jeecg.common.constant.enums.MessageTypeEnum; import org.jeecg.common.system.util.JwtUtil; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.TokenUtils; import org.jeecg.common.util.oConvertUtils; import org.jeecg.config.mybatis.MybatisPlusSaasConfig; import org.jeecg.modules.system.entity.SysThirdAccount; @@ -22,6 +23,8 @@ import org.jeecg.modules.system.service.ISysThirdAccountService; import org.jeecg.modules.system.service.ISysThirdAppConfigService; import org.jeecg.modules.system.service.impl.ThirdAppDingtalkServiceImpl; import org.jeecg.modules.system.service.impl.ThirdAppWechatEnterpriseServiceImpl; +import org.jeecg.modules.system.vo.thirdapp.JwSysUserDepartVo; +import org.jeecg.modules.system.vo.thirdapp.JwUserDepartVo; import org.jeecg.modules.system.vo.thirdapp.SyncInfoVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -518,4 +521,46 @@ public class ThirdAppController { return Result.ok("解绑成功"); } //========================end 应用低代码账号设置第三方账号绑定 ================================ + + /** + * 获取企业微信绑定的用户信息 + * @param request + * @return + */ + @GetMapping("/getThirdUserByWechat") + public Result getThirdUserByWechat(HttpServletRequest request){ + //获取企业微信配置 + Integer tenantId = oConvertUtils.getInt(TokenUtils.getTenantIdByRequest(request),0); + SysThirdAppConfig config = appConfigService.getThirdConfigByThirdType(tenantId, MessageTypeEnum.QYWX.getType()); + if (null != config) { + JwSysUserDepartVo list = wechatEnterpriseService.getThirdUserByWechat(tenantId); + return Result.ok(list); + } + return Result.error("企业微信尚未配置,请配置企业微信"); + } + + /** + * 同步企业微信部门和用户到本地 + * @param jwUserDepartJson + * @param request + * @return + */ + @GetMapping("/sync/wechatEnterprise/departAndUser/toLocal") + public Result syncWechatEnterpriseDepartAndUserToLocal(@RequestParam(name = "jwUserDepartJson") String jwUserDepartJson,HttpServletRequest request){ + int tenantId = oConvertUtils.getInt(TokenUtils.getTenantIdByRequest(request), 0); + SyncInfoVo syncInfoVo = wechatEnterpriseService.syncWechatEnterpriseDepartAndUserToLocal(jwUserDepartJson,tenantId); + return Result.ok(syncInfoVo); + } + + /** + * 查询被绑定的企业微信用户 + * @param request + * @return + */ + @GetMapping("/getThirdUserBindByWechat") + public Result> getThirdUserBindByWechat(HttpServletRequest request){ + int tenantId = oConvertUtils.getInt(TokenUtils.getTenantIdByRequest(request), 0); + List jwSysUserDepartVos = wechatEnterpriseService.getThirdUserBindByWechat(tenantId); + return Result.ok(jwSysUserDepartVos); + } } diff --git a/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml b/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml index 4f7595f63..720c4437c 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml +++ b/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml @@ -268,6 +268,7 @@ cas: #Mybatis输出sql日志 logging: level: + org.flywaydb: debug org.jeecg.modules.system.mapper: info #swagger knife4j: diff --git a/jeecg-module-system/jeecg-system-start/src/main/resources/application-test.yml b/jeecg-module-system/jeecg-system-start/src/main/resources/application-test.yml index 530144bce..9aa6f4e1b 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/resources/application-test.yml +++ b/jeecg-module-system/jeecg-system-start/src/main/resources/application-test.yml @@ -23,7 +23,7 @@ spring: # flyway配置 flyway: # 是否启用flyway - enabled: true + enabled: false # 编码格式,默认UTF-8 encoding: UTF-8 # 迁移sql脚本文件存放路径,官方默认db/migration @@ -134,7 +134,7 @@ spring: # 初始化大小,最小,最大 initial-size: 5 min-idle: 5 - maxActive: 20 + maxActive: 1000 # 配置获取连接等待超时的时间 maxWait: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 diff --git a/jeecg-module-system/jeecg-system-start/src/main/resources/flyway/sql/mysql/README.md b/jeecg-module-system/jeecg-system-start/src/main/resources/flyway/sql/mysql/README.md new file mode 100644 index 000000000..910356828 --- /dev/null +++ b/jeecg-module-system/jeecg-system-start/src/main/resources/flyway/sql/mysql/README.md @@ -0,0 +1,4 @@ +# 命名规范 +V[年月日]_[序号]__[模块名缩写]_[操作类型]_[业务描述].sql +例如: +V20240104_1__easyoa_add_field_attendance.sql From fd8c848c9ef2654a46b9fa07f4064b6e58b83d70 Mon Sep 17 00:00:00 2001 From: zhangdaiscott Date: Sun, 7 Jan 2024 20:30:49 +0800 Subject: [PATCH 02/34] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B0=8Fbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/modules/system/mapper/xml/SysUserTenantMapper.xml | 2 +- .../jeecg-system-start/src/main/resources/application-dev.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserTenantMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserTenantMapper.xml index 9dfa27961..f43b7d14f 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserTenantMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserTenantMapper.xml @@ -169,7 +169,7 @@ diff --git a/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml b/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml index f0bf73adb..ffa0fa21c 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml +++ b/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml @@ -134,7 +134,7 @@ spring: # 初始化大小,最小,最大 initial-size: 5 min-idle: 5 - maxActive: 20 + maxActive: 1000 # 配置获取连接等待超时的时间 maxWait: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 From 3618842f441145de5ed15d3d246bd8603448c18f Mon Sep 17 00:00:00 2001 From: zhangdaiscott Date: Tue, 9 Jan 2024 19:12:16 +0800 Subject: [PATCH 03/34] =?UTF-8?q?[issue/5787]=E5=A2=9E=E5=8A=A0=E9=9D=9E?= =?UTF-8?q?=E7=A9=BA=E5=88=A4=E6=96=AD=E9=98=B2=E6=AD=A2=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E7=94=9F=E6=88=90=E6=97=B6=E7=A9=BA=E6=8C=87=E9=92=88=E5=BC=82?= =?UTF-8?q?=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/code-template-online/common/utils.ftl | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/common/utils.ftl b/jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/common/utils.ftl index 44724746c..b7cc7da0f 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/common/utils.ftl +++ b/jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/common/utils.ftl @@ -153,7 +153,9 @@ <#assign extAttrs="${dictCode},"> <#elseif po.classType=='cat_tree'> <#-- 分类字典树 --> - <#assign extAttrs="pcode: '${po.dictField}',"> + <#-- update-begin---author:chenrui ---date:20240109 for:[issue/5787]增加非空判断防止代码生成时空指针异常---------- --> + <#assign extAttrs="pcode: '${po.dictField?default('')}',"> + <#-- update-end---author:chenrui ---date:20240109 for:[issue/5787]增加非空判断防止代码生成时空指针异常---------- --> <#elseif po.classType=='sel_tree'> <#-- 自定义树 --> <#if po.dictText??> @@ -166,10 +168,14 @@ <#assign extAttrs="hasChildField: '${po.dictText?split(',')[3]}'"> - <#assign extAttrs="${extAttrs}, pidValue: '${po.dictField}',"> + <#-- update-begin---author:chenrui ---date:20240109 for:[issue/5787]增加非空判断防止代码生成时空指针异常---------- --> + <#assign extAttrs="${extAttrs}, pidValue: '${po.dictField?default('')}',"> + <#-- update-end---author:chenrui ---date:20240109 for:[issue/5787]增加非空判断防止代码生成时空指针异常---------- --> <#elseif po.classType=='popup'> <#-- popup --> - <#if po.dictText?default("")?trim?length gt 1 && po.dictText?index_of(',') gt 0> + <#-- update-begin---author:chenrui ---date:20240109 for:[issue/5787]增加非空判断防止代码生成时空指针异常---------- --> + <#if po.dictText?default("")?trim?length gt 1 && po.dictText?index_of(',') gt 0 && po.dictField?default("")?trim?length gt 1> + <#-- update-begin---author:chenrui ---date:20240109 for:[issue/5787]增加非空判断防止代码生成时空指针异常---------- --> <#-- 如果有多个回填字段,找到popup字段对应的来源字段 --> <#assign orgFieldIx=po.dictText?split(',')?seq_index_of(po.fieldDbName)> <#assign orgField=po.dictField?split(',')[orgFieldIx]> From e333b126b6f4fd4b2a4dec489f1bd9d80b73eb40 Mon Sep 17 00:00:00 2001 From: zhangdaiscott Date: Wed, 10 Jan 2024 14:58:01 +0800 Subject: [PATCH 04/34] =?UTF-8?q?=E5=BE=AE=E6=9C=8D=E5=8A=A1=E4=B8=8B?= =?UTF-8?q?=E5=AD=97=E5=85=B8=E6=8B=A6=E6=88=AA=E5=99=A8=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/jeecg/common/aspect/DictAspect.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java index cc3d8b2a6..5a736bda2 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java @@ -293,6 +293,13 @@ public class DictAspect { log.debug("translateDictFromTableByKeys.dictCode:" + dictCode); log.debug("translateDictFromTableByKeys.values:" + values); //update-begin---author:chenrui ---date:20231221 for:[issues/#5643]解决分布式下表字典跨库无法查询问题------------ + + //update-begin---author:wangshuai---date:2024-01-09---for:微服务下为空报错没有参数需要传递空字符串--- + if(null == dataSource){ + dataSource = ""; + } + //update-end---author:wangshuai---date:2024-01-09---for:微服务下为空报错没有参数需要传递空字符串--- + List texts = commonApi.translateDictFromTableByKeys(table, text, code, values, dataSource); //update-end---author:chenrui ---date:20231221 for:[issues/#5643]解决分布式下表字典跨库无法查询问题------------ log.debug("translateDictFromTableByKeys.result:" + texts); From a47d0984dc6f105b7a3aa87c6f8802102d643d5f Mon Sep 17 00:00:00 2001 From: zhangdaiscott Date: Mon, 19 Feb 2024 16:40:33 +0800 Subject: [PATCH 05/34] =?UTF-8?q?[issues/5755]vue=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E4=B8=8D=E5=8A=A0=E5=85=A5=E9=80=BB=E8=BE=91=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=20[issue/#5711]=E4=BF=AE=E5=A4=8D=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E9=80=89=E6=8B=A9=E7=BB=84=E4=BB=B6=E5=9C=A8=E7=94=9F?= =?UTF-8?q?=E6=88=90=E4=BB=A3=E7=A0=81=E5=90=8E=E5=8F=98=E6=88=90=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E7=94=A8=E6=88=B7=E9=80=89=E6=8B=A9=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=20[issues/1022]=E6=88=91=E8=BF=99=E4=B8=AA=E6=8E=A7=E4=BB=B6?= =?UTF-8?q?=E6=98=AF=E5=93=AA=E9=87=8C=E8=AE=BE=E7=BD=AE=E6=B2=A1=E5=AF=B9?= =?UTF-8?q?=E5=90=97=EF=BC=8C=E4=B8=BA=E4=BB=80=E4=B9=88=E6=89=93=E5=BC=80?= =?UTF-8?q?=E5=B7=B2=E6=9C=89=E7=9A=84=E8=AE=B0=E5=BD=95=EF=BC=8C=E4=BC=9A?= =?UTF-8?q?=E8=A7=A6=E5=8F=91=E6=8F=90=E7=A4=BA=E2=80=9C=E8=AF=B7=E8=BE=93?= =?UTF-8?q?=E5=85=A5=E2=80=9D=E9=AA=8C=E8=AF=81=EF=BC=9F=20#1022=20fix=20?= =?UTF-8?q?=E5=B8=A6=E6=9D=A1=E4=BB=B6=E5=AD=97=E5=85=B8=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E5=8D=95=E5=BC=95=E5=8F=B7=E5=AF=BC=E8=87=B4js=E7=BC=96?= =?UTF-8?q?=E8=AF=91=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/native/vue3NativeComponents.ftl | 4 +- .../common/form/native/vue3NativeForm.ftl | 8 +++- .../common/form/native/vue3NativeImport.ftl | 4 +- .../common/form/native/vue3NativeSearch.ftl | 8 +++- .../code-template-online/common/utils.ftl | 4 +- .../vue3/${entityName}__data.tsi | 24 ++++++++--- .../vue3Native/${entityName}__data.tsi | 24 ++++++++--- .../components/${entityName}Form.vuei | 2 +- .../vue3/${entityName}__data.tsi | 24 ++++++++--- .../vue3Native/${entityName}__data.tsi | 24 ++++++++--- .../components/${entityName}Form.vuei | 2 +- .../vue3/${entityName}__data.tsi | 36 ++++++++++++----- .../vue3Native/${entityName}__data.tsi | 36 ++++++++++++----- .../components/${entityName}Form.vuei | 2 +- .../vue3Native/components/[1-n]Form.vuei | 2 +- .../vue3/${entityName}__data.tsi | 40 ++++++++++++++----- .../vue3/${entityName}__data.tsi | 40 ++++++++++++++----- .../vue3Native/${entityName}__data.tsi | 40 ++++++++++++++----- .../components/${entityName}Form.vuei | 2 +- .../vue3Native/components/[1-n]Form.vuei | 2 +- .../vue3/${entityName}__data.tsi | 40 ++++++++++++++----- 21 files changed, 273 insertions(+), 95 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/common/form/native/vue3NativeComponents.ftl b/jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/common/form/native/vue3NativeComponents.ftl index 60ad68246..d38ed3694 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/common/form/native/vue3NativeComponents.ftl +++ b/jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/common/form/native/vue3NativeComponents.ftl @@ -20,7 +20,9 @@ JSelectDept, <#if need_dept_user> - JSelectUserByDept, +<#-- update-begin---author:chenrui ---date:20240102 for:[issue/#5711]修复用户选择组件在生成代码后变成部门用户选择组件---------- --> + JSelectUser, +<#-- update-end---author:chenrui ---date:20240102 for:[issue/#5711]修复用户选择组件在生成代码后变成部门用户选择组件---------- --> <#if need_select_tree> JTreeSelect, diff --git a/jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/common/form/native/vue3NativeForm.ftl b/jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/common/form/native/vue3NativeForm.ftl index 53ae58483..0371ea0af 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/common/form/native/vue3NativeForm.ftl +++ b/jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/common/form/native/vue3NativeForm.ftl @@ -1,5 +1,7 @@ <#include "/common/utils.ftl"> -<#if po.isShow =='Y' && po.fieldName != 'id' && isNotPidField(tableVo, po.fieldDbName)> +<#-- update-begin---author:chenrui ---date:20240108 for:[issues/5755]vue代码不加入逻辑删除字段---------- --> +<#if po.isShow =='Y' && po.fieldName != 'id' && po.fieldName !='delFlag' && isNotPidField(tableVo, po.fieldDbName)> +<#-- update-end---author:chenrui ---date:20240108 for:[issues/5755]vue代码不加入逻辑删除字段---------- --> <#assign form_field_dictCode=""> <#if po.dictTable?default("")?trim?length gt 1 && po.dictText?default("")?trim?length gt 1 && po.dictField?default("")?trim?length gt 1> <#assign form_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}"> @@ -48,7 +50,9 @@ disabled<#else>:disabled="disabled"/> <#elseif po.classType =='sel_user'> <#assign need_dept_user = true> - disabled<#else>:disabled="disabled"/> + <#-- update-begin---author:chenrui ---date:20240102 for:[issue/#5711]修复用户选择组件在生成代码后变成部门用户选择组件---------- --> + disabled<#else>:disabled="disabled"/> + <#-- update-end---author:chenrui ---date:20240102 for:[issue/#5711]修复用户选择组件在生成代码后变成部门用户选择组件---------- --> <#elseif po.classType =='textarea'> disabled<#else>:disabled="disabled"/> <#elseif po.classType=='radio'> diff --git a/jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/common/form/native/vue3NativeImport.ftl b/jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/common/form/native/vue3NativeImport.ftl index 1a3591547..caa2e6d65 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/common/form/native/vue3NativeImport.ftl +++ b/jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/common/form/native/vue3NativeImport.ftl @@ -20,7 +20,9 @@ import JSelectDept from '/@/components/Form/src/jeecg/components/JSelectDept.vue'; <#if need_dept_user> - import JSelectUserByDept from '/@/components/Form/src/jeecg/components/JSelectUserByDept.vue'; +<#-- update-begin---author:chenrui ---date:20240102 for:[issue/#5711]修复用户选择组件在生成代码后变成部门用户选择组件---------- --> + import JSelectUser from '/@/components/Form/src/jeecg/components/JSelectUser.vue'; +<#-- update-end---author:chenrui ---date:20240102 for:[issue/#5711]修复用户选择组件在生成代码后变成部门用户选择组件---------- --> <#if need_select_tree> import JTreeSelect from '/@/components/Form/src/jeecg/components/JTreeSelect.vue'; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/common/form/native/vue3NativeSearch.ftl b/jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/common/form/native/vue3NativeSearch.ftl index 577798a50..5a5903ed8 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/common/form/native/vue3NativeSearch.ftl +++ b/jeecg-module-system/jeecg-system-biz/src/main/resources/jeecg/code-template-online/common/form/native/vue3NativeSearch.ftl @@ -1,5 +1,7 @@ <#include "/common/utils.ftl"> -<#if po.isQuery=='Y'> +<#-- update-begin---author:chenrui ---date:20240108 for:[issues/5755]vue代码不加入逻辑删除字段---------- --> +<#if po.isQuery=='Y' && po.fieldName !='delFlag'> +<#-- update-end---author:chenrui ---date:20240108 for:[issues/5755]vue代码不加入逻辑删除字段---------- --> <#assign query_flag=true> <#if query_field_no==2>