From d0482b405853c288d6cb98c11dd87dcb7f9f0ea1 Mon Sep 17 00:00:00 2001 From: thinkgem Date: Sat, 19 Jun 2021 00:18:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AF=BB=E5=86=99=E5=88=86?= =?UTF-8?q?=E7=A6=BB=E9=85=8D=E7=BD=AE(=E4=B8=8D=E4=BE=9D=E8=B5=96sharding?= =?UTF-8?q?sphere)=E3=80=81=E9=AB=98=E6=80=A7=E8=83=BD=E3=80=81=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=A4=8D=E6=9D=82SQL=E3=80=81=E4=B8=A4=E7=A7=8D?= =?UTF-8?q?=E8=AF=BB=E5=BA=93=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=A1=E7=AE=97?= =?UTF-8?q?=E6=B3=95=E3=80=81=E5=B9=B6=E6=94=AF=E6=8C=81=E9=99=84=E5=8A=A0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=BA=90=E8=AF=BB=E5=86=99=E5=88=86=E7=A6=BB?= =?UTF-8?q?=E3=80=81=E6=94=AF=E6=8C=81=E8=AF=BB=E5=86=99=E5=88=86=E7=A6=BB?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=BA=90=E4=BA=8B=E5=8A=A1=EF=BC=9B=E6=96=B0?= =?UTF-8?q?=E5=A2=9EMyBatisDao=E4=B8=8E=E6=95=B0=E6=8D=AE=E6=BA=90?= =?UTF-8?q?=E6=98=A0=E5=B0=84=E9=85=8D=E7=BD=AE=EF=BC=8C=E5=8F=AF=E4=B8=8D?= =?UTF-8?q?=E7=94=A8=E4=BF=AE=E6=94=B9=E4=BB=A3=E7=A0=81=EF=BC=8C=E9=80=9A?= =?UTF-8?q?=E8=BF=87=E6=98=A0=E5=B0=84=E5=8D=B3=E5=8F=AF=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E6=95=B0=E6=8D=AE=E6=BA=90=EF=BC=9BThreadLoc?= =?UTF-8?q?al=E4=BC=98=E5=8C=96=EF=BC=9B=E6=96=B0=E5=A2=9ERoleListType?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../utils/excel/fieldtype/RoleListType.java | 55 +++++++++++++++++ .../main/resources/config/jeesite-core.yml | 8 +-- web/src/main/resources/config/application.yml | 60 +++++++++++++++++-- 3 files changed, 113 insertions(+), 10 deletions(-) create mode 100644 modules/core/src/main/java/com/jeesite/common/utils/excel/fieldtype/RoleListType.java diff --git a/modules/core/src/main/java/com/jeesite/common/utils/excel/fieldtype/RoleListType.java b/modules/core/src/main/java/com/jeesite/common/utils/excel/fieldtype/RoleListType.java new file mode 100644 index 00000000..e2a2b1f1 --- /dev/null +++ b/modules/core/src/main/java/com/jeesite/common/utils/excel/fieldtype/RoleListType.java @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + */ +package com.jeesite.common.utils.excel.fieldtype; + +import java.util.List; + +import com.jeesite.common.collect.ListUtils; +import com.jeesite.common.lang.StringUtils; +import com.jeesite.common.utils.SpringUtils; +import com.jeesite.modules.sys.entity.Role; +import com.jeesite.modules.sys.service.RoleService; + +/** + * 字段类型转换 + * @author ThinkGem + * @version 2018-08-11 + * @example fieldType = RoleListType.class + */ +public class RoleListType implements FieldType { + + private List roleList; + + public RoleListType() { + RoleService roleService = SpringUtils.getBean(RoleService.class); + roleList = roleService.findList(new Role()); + } + + /** + * 获取对象值(导入) + */ + public Object getValue(String val) { + for (String s : StringUtils.split(val, ",")) { + for (Role e : roleList) { + if (StringUtils.trimToEmpty(s).equals(e.getRoleName())) { + roleList.add(e); + } + } + } + return roleList.size() > 0 ? roleList : null; + } + + /** + * 设置对象值(导出) + */ + public String setValue(Object val) { + if (val != null) { + @SuppressWarnings("unchecked") + List roleList = (List) val; + return ListUtils.extractToString(roleList, "roleName", ", "); + } + return ""; + } + +} diff --git a/modules/core/src/main/resources/config/jeesite-core.yml b/modules/core/src/main/resources/config/jeesite-core.yml index 93124798..3a5af8c3 100644 --- a/modules/core/src/main/resources/config/jeesite-core.yml +++ b/modules/core/src/main/resources/config/jeesite-core.yml @@ -142,10 +142,10 @@ user: # {"用户类型":{"beanName":"Service或Dao的Bean名称","loginView":"登录页面视图","indexView":"主框架页面视图,支持 redirect: 前缀"}} userTypeMap: > { - "employee":{"beanName":"employeeService","loginView":"","indexView":"modules/sys/sysIndex"}, - "member":{"beanName":"memberService","loginView":"","indexView":"modules/sys/sysIndexMember"}, - "btype":{"beanName":"btypeInfoService","loginView":"","indexView":"modules/sys/sysIndexBtype"}, - "expert":{"beanName":"expertService","loginView":"","indexView":"modules/sys/sysIndexExpert"} + employee: {beanName: "employeeService", loginView: "", indexView: "modules/sys/sysIndex"}, + member: {beanName: "memberService", loginView: "", indexView: "modules/sys/sysIndexMember"}, + btype: {beanName: "btypeInfoService", loginView: "", indexView: "modules/sys/sysIndexBtype"}, + expert: {beanName: "expertService", loginView: "", indexView: "modules/sys/sysIndexExpert"} } # 数据权限设置参数,可新增自定义数据权限,moduleCode: 针对模块, ctrlPermi: 权限类型(0全部 1拥有权限 2管理权限) diff --git a/web/src/main/resources/config/application.yml b/web/src/main/resources/config/application.yml index 75a4ce17..44af8d2f 100644 --- a/web/src/main/resources/config/application.yml +++ b/web/src/main/resources/config/application.yml @@ -131,8 +131,41 @@ jdbc: # # 设置连接属性,可获取到表的 remark (备注) # remarksReporting: false +# # 读写分离配置(专业版)v4.3.0 +# readwriteSplitting: +# # 读库的数据源名称列表(默认数据源) +# readDataSourceNames: ds_read_01, ds_read_02 +# # 负载均衡算法(ROUND_ROBIN轮询、RANDOM随机、自定义类名) +# loadBalancerAlgorithm: RANDOM + # # 多数据源名称列表,多个用逗号隔开,使用方法:@MyBatisDao(dataSourceName="ds2") -# dataSourceNames: ds2 +# dataSourceNames: ds_read_01, ds_read_02, ds2 +# +# # 默认数据源的从库01 +# ds_read_01: +# type: mysql +# driver: com.mysql.cj.jdbc.Driver +# url: jdbc:mysql://127.0.0.1:3306/jeesite_test?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=Asia/Shanghai +# username: root +# password: 123456 +# testSql: SELECT 1 +# pool: +# init: 1 +# minIdle: 3 +# maxActive: 20 +# +# # 默认数据源的从库02 +# ds_read_02: +# type: mysql +# driver: com.mysql.cj.jdbc.Driver +# url: jdbc:mysql://127.0.0.1:3306/jeesite_test2?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=Asia/Shanghai +# username: root +# password: 123456 +# testSql: SELECT 1 +# pool: +# init: 1 +# minIdle: 3 +# maxActive: 20 # # # 多数据源配置:ds2 # ds2: @@ -142,14 +175,29 @@ jdbc: # username: root # password: 123456 # testSql: SELECT 1 +# # 其它数据源支持密码加密 # encrypt: # username: false # password: true +# # 其它数据源支持连接池设置 # pool: # init: 1 # minIdle: 3 # maxActive: 20 -# +# # 其它数据源支持读写分离 +# readwriteSplitting: +# readDataSourceNames: ~ +# loadBalancerAlgorithm: RANDOM + +# # 数据源映射(Dao类名 = 数据源名称),优先于 @MyBatisDao(dataSourceName="ds2") 设置 v4.3.0 +# # Dao类名,不仅支持某个具体 Dao类名,还支持 Dao 里的某个方法指定数据源名称,还支持包路径指定数据源等 +# # 从上到下,先匹配先受用规则,默认数据源名为 default 扩展数据源为 dataSourceNames 列表里自定义的名字 +# mybatisDaoAndDataSourceMappings: | +# OfficeDao = ds2 +# EmpUserDao.findList = ds2 +# com.jeesite.modules.sys = default +# com.jeesite.modules.filemanager = ds2 + # # JTA 分布式事务,建议启用多数据源的时候开启(v4.0.4+) # jta: # enabled: false @@ -257,10 +305,10 @@ logging: # # {"用户类型":{"beanName":"Service或Dao的Bean名称","loginView":"登录页面视图","indexView":"主框架页面视图,支持 redirect: 前缀"}} # userTypeMap: > # { -# "employee":{"beanName":"employeeService","loginView":"","indexView":"modules/sys/sysIndex"}, -# "member":{"beanName":"memberService","loginView":"","indexView":"modules/sys/sysIndexMember"}, -# "btype":{"beanName":"btypeInfoService","loginView":"","indexView":"modules/sys/sysIndexBtype"}, -# "expert":{"beanName":"expertService","loginView":"","indexView":"modules/sys/sysIndexExpert"} +# employee: {beanName: "employeeService", loginView: "", indexView: "modules/sys/sysIndex"}, +# member: {beanName: "memberService", loginView: "", indexView: "modules/sys/sysIndexMember"}, +# btype: {beanName: "btypeInfoService", loginView: "", indexView: "modules/sys/sysIndexBtype"}, +# expert: {beanName: "expertService", loginView: "", indexView: "modules/sys/sysIndexExpert"} # } # # # 数据权限设置参数,可新增自定义数据权限,moduleCode: 针对模块, ctrlPermi: 权限类型, 0全部 1拥有权限 2管理权限