diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/LoginController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/LoginController.java index 08c36951..15171cad 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/LoginController.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/LoginController.java @@ -400,27 +400,18 @@ public class LoginController { * @return */ private Result userInfo(SysUser sysUser, Result result) { - String syspassword = sysUser.getPassword(); String username = sysUser.getUsername(); + String syspassword = sysUser.getPassword(); // 获取用户部门信息 - JSONObject obj = new JSONObject(); - List departs = sysDepartService.queryUserDeparts(sysUser.getId()); - obj.put("departs", departs); - if (departs == null || departs.size() == 0) { - obj.put("multi_depart", 0); - } else if (departs.size() == 1) { - sysUserService.updateUserDepart(username, departs.get(0).getOrgCode()); - obj.put("multi_depart", 1); - } else { - //查询当前是否有登录部门 - // update-begin--Author:wangshuai Date:20200805 for:如果用戶为选择部门,数据库为存在上一次登录部门,则取一条存进去 - SysUser sysUserById = sysUserService.getById(sysUser.getId()); - if(oConvertUtils.isEmpty(sysUserById.getOrgCode())){ - sysUserService.updateUserDepart(username, departs.get(0).getOrgCode()); - } - // update-end--Author:wangshuai Date:20200805 for:如果用戶为选择部门,数据库为存在上一次登录部门,则取一条存进去 - obj.put("multi_depart", 2); - } + JSONObject obj = new JSONObject(new LinkedHashMap<>()); + + // 生成token + String token = JwtUtil.sign(username, syspassword); + // 设置token缓存有效时间 + redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token); + redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME * 2 / 1000); + obj.put("token", token); + // update-begin--Author:sunjianlei Date:20210802 for:获取用户租户信息 String tenantIds = sysUser.getRelTenantIds(); if (oConvertUtils.isNotEmpty(tenantIds)) { @@ -438,13 +429,26 @@ public class LoginController { } } // update-end--Author:sunjianlei Date:20210802 for:获取用户租户信息 - // 生成token - String token = JwtUtil.sign(username, syspassword); - // 设置token缓存有效时间 - redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token); - redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME * 2 / 1000); - obj.put("token", token); + obj.put("userInfo", sysUser); + + List departs = sysDepartService.queryUserDeparts(sysUser.getId()); + obj.put("departs", departs); + if (departs == null || departs.size() == 0) { + obj.put("multi_depart", 0); + } else if (departs.size() == 1) { + sysUserService.updateUserDepart(username, departs.get(0).getOrgCode()); + obj.put("multi_depart", 1); + } else { + //查询当前是否有登录部门 + // update-begin--Author:wangshuai Date:20200805 for:如果用戶为选择部门,数据库为存在上一次登录部门,则取一条存进去 + SysUser sysUserById = sysUserService.getById(sysUser.getId()); + if(oConvertUtils.isEmpty(sysUserById.getOrgCode())){ + sysUserService.updateUserDepart(username, departs.get(0).getOrgCode()); + } + // update-end--Author:wangshuai Date:20200805 for:如果用戶为选择部门,数据库为存在上一次登录部门,则取一条存进去 + obj.put("multi_depart", 2); + } obj.put("sysAllDictItems", sysDictService.queryAllDictItems()); result.setResult(obj); result.success("登录成功"); @@ -588,9 +592,9 @@ public class LoginController { return Result.ok(); } /** - * 登录二维码 + * 获取登录二维码 */ - @ApiOperation(value = "登录二维码", notes = "登录二维码") + @ApiOperation(value = "获取登录二维码", notes = "获取登录二维码") @GetMapping("/getLoginQrcode") public Result getLoginQrcode() { String qrcodeId = CommonConstant.LOGIN_QRCODE_PRE+IdWorker.getIdStr(); @@ -621,7 +625,7 @@ public class LoginController { /** * 获取用户扫码后保存的token */ - @ApiOperation(value = "获取用户扫码后保存的token", notes = "获取用户扫码后保存的token") + @ApiOperation(value = "获取用户扫码后Token", notes = "获取用户扫码后Token") @GetMapping("/getQrcodeToken") public Result getQrcodeToken(@RequestParam String qrcodeId) { Object token = redisUtil.get(CommonConstant.LOGIN_QRCODE_TOKEN + qrcodeId); diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/docs/config/分库分表/jeecg-sharding-multi.yaml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/docs/config/分库分表/jeecg-sharding-multi.yaml new file mode 100644 index 00000000..98584bac --- /dev/null +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/docs/config/分库分表/jeecg-sharding-multi.yaml @@ -0,0 +1,59 @@ +spring: + shardingsphere: + datasource: + names: ds0,ds1 + ds0: + driverClassName: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + type: com.alibaba.druid.pool.DruidDataSource + username: root + password: root + ds1: + driverClassName: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot2?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + type: com.alibaba.druid.pool.DruidDataSource + username: root + password: root + props: + sql-show: true + rules: + replica-query: + load-balancers: + round-robin: + type: ROUND_ROBIN + props: + default: 0 + data-sources: + prds: + primary-data-source-name: ds0 + replica-data-source-names: ds1 + load-balancer-name: round_robin + sharding: + binding-tables: + - sys_log + key-generators: + snowflake: + type: SNOWFLAKE + props: + worker-id: 123 + sharding-algorithms: + table-classbased: + props: + strategy: standard + algorithmClassName: org.jeecg.modules.test.sharding.algorithm.StandardModTableShardAlgorithm + type: CLASS_BASED + database-inline: + type: INLINE + props: + algorithm-expression: ds$->{operate_type % 2} + tables: + sys_log: + actual-data-nodes: ds$->{0..1}.sys_log$->{0..1} + database-strategy: + standard: + sharding-column: operate_type + sharding-algorithm-name: database-inline + table-strategy: + standard: + sharding-algorithm-name: table-classbased + sharding-column: log_type \ No newline at end of file diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/docs/config/分库分表/jeecg-sharding.yaml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/docs/config/分库分表/jeecg-sharding.yaml new file mode 100644 index 00000000..6c7aecfb --- /dev/null +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/docs/config/分库分表/jeecg-sharding.yaml @@ -0,0 +1,33 @@ +spring: + shardingsphere: + datasource: + names: ds0 + ds0: + driverClassName: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + username: root + password: root + type: com.alibaba.druid.pool.DruidDataSource + props: + sql-show: true + rules: + sharding: + binding-tables: sys_log + key-generators: + snowflake: + type: SNOWFLAKE + props: + worker-id: 123 + sharding-algorithms: + table-classbased: + props: + strategy: standard + algorithmClassName: org.jeecg.modules.test.sharding.algorithm.StandardModTableShardAlgorithm + type: CLASS_BASED + tables: + sys_log: + actual-data-nodes: ds0.sys_log$->{0..1} + table-strategy: + standard: + sharding-algorithm-name: table-classbased + sharding-column: log_type \ No newline at end of file diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-shardingsphere/src/main/java/org/jeecg/modules/test/sharding/controller/JeecgShardingDemoController.java b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-shardingsphere/src/main/java/org/jeecg/modules/test/sharding/controller/JeecgShardingDemoController.java index 5de357c9..0b157845 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-shardingsphere/src/main/java/org/jeecg/modules/test/sharding/controller/JeecgShardingDemoController.java +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-shardingsphere/src/main/java/org/jeecg/modules/test/sharding/controller/JeecgShardingDemoController.java @@ -35,7 +35,8 @@ public class JeecgShardingDemoController extends JeecgController add() { - int size=10; + log.info("---------------------------------单库分表插入--------------------------------"); + int size = 10; for (int i = 0; i < size; i++) { ShardingSysLog shardingSysLog = new ShardingSysLog(); shardingSysLog.setLogContent("jeecg"); @@ -43,7 +44,7 @@ public class JeecgShardingDemoController extends JeecgController test2() { int start=20; - int size=30; + int size=50; for (int i = start; i <= size; i++) { ShardingSysLog shardingSysLog = new ShardingSysLog(); - shardingSysLog.setLogContent("双库分表测试"); - shardingSysLog.setLogType(i); + shardingSysLog.setLogContent("分库分表测试"); + shardingSysLog.setLogType(0); shardingSysLog.setOperateType(i); shardingSysLogService.save(shardingSysLog); } - return Result.OK(); + return Result.OK("分库分表插入10条数据完成!"); } /** - * 双库分表 - 查询 + * 分库分表 - 查询 * @return */ @PostMapping(value = "/list2") - @ApiOperation(value = "双库分表查询", notes = "双库分表") + @ApiOperation(value = "分库分表查询", notes = "分库分表") public Result list2() { return Result.OK(shardingSysLogService.list()); } diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-shardingsphere/src/main/resources/application-sharding2.yml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-shardingsphere/src/main/resources/application-sharding-multi.yml similarity index 100% rename from jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-shardingsphere/src/main/resources/application-sharding2.yml rename to jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-shardingsphere/src/main/resources/application-sharding-multi.yml diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-system-cloud-start/src/main/resources/application.yml b/jeecg-boot/jeecg-cloud-module/jeecg-system-cloud-start/src/main/resources/application.yml index 8db4d80f..32483d41 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-system-cloud-start/src/main/resources/application.yml +++ b/jeecg-boot/jeecg-cloud-module/jeecg-system-cloud-start/src/main/resources/application.yml @@ -1,6 +1,6 @@ server: - #微服务端口 port: 7001 + spring: application: name: jeecg-system