implements MethodInterceptor {
String str = StrUtil.str(content, StandardCharsets.UTF_8);
log.error("PigxFeignFallback:[{}.{}] serviceId:[{}] message:[{}]", targetType.getName(), method.getName(), targetName, str);
- return R.builder().code(CommonConstants.FAIL)
- .msg(str).build();
+ return JSONUtil.toBean(str, R.class);
}
@Override
diff --git a/pigx-common/pigx-common-swagger/pom.xml b/pigx-common/pigx-common-swagger/pom.xml
index de0de37df..6bc15b33d 100644
--- a/pigx-common/pigx-common-swagger/pom.xml
+++ b/pigx-common/pigx-common-swagger/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-common
- 2.7.0
+ 2.8.0
pigx-common-swagger
diff --git a/pigx-common/pigx-common-transaction/pom.xml b/pigx-common/pigx-common-transaction/pom.xml
index 7a4a68163..e32c6d6a7 100644
--- a/pigx-common/pigx-common-transaction/pom.xml
+++ b/pigx-common/pigx-common-transaction/pom.xml
@@ -5,7 +5,7 @@
com.pig4cloud
pigx-common
- 2.7.0
+ 2.8.0
pigx-common-transaction
diff --git a/pigx-common/pom.xml b/pigx-common/pom.xml
index d4cc03e9d..5d238a181 100644
--- a/pigx-common/pom.xml
+++ b/pigx-common/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx
- 2.7.0
+ 2.8.0
pigx-common
diff --git a/pigx-config/pom.xml b/pigx-config/pom.xml
index 13c3036be..d7481420d 100644
--- a/pigx-config/pom.xml
+++ b/pigx-config/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx
- 2.7.0
+ 2.8.0
pigx-config
diff --git a/pigx-config/src/main/resources/config/pigx-codegen-dev.yml b/pigx-config/src/main/resources/config/pigx-codegen-dev.yml
index 47d1fcfce..d8800e42a 100644
--- a/pigx-config/src/main/resources/config/pigx-codegen-dev.yml
+++ b/pigx-config/src/main/resources/config/pigx-codegen-dev.yml
@@ -12,6 +12,12 @@ spring:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
- url: jdbc:mysql://pigx-mysql:3306/pigxx?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
+ url: jdbc:mysql://pigx-mysql:3306/coffeewx?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
resources:
static-locations: classpath:/static/,classpath:/views/
+
+pigx:
+ tenant:
+ column: tenant_id
+ tables:
+ - sys_datasource_conf
\ No newline at end of file
diff --git a/pigx-config/src/main/resources/config/pigx-mp-manager-dev.yml b/pigx-config/src/main/resources/config/pigx-mp-manager-dev.yml
new file mode 100644
index 000000000..49280daac
--- /dev/null
+++ b/pigx-config/src/main/resources/config/pigx-mp-manager-dev.yml
@@ -0,0 +1,33 @@
+## spring security 配置
+security:
+ oauth2:
+ client:
+ client-id: ENC(gPFcUOmJm8WqM3k3eSqS0Q==)
+ client-secret: ENC(gPFcUOmJm8WqM3k3eSqS0Q==)
+ scope: server
+ ignore-urls:
+ - /actuator/**
+ - /v2/api-docs
+ - /*/portal
+
+# 数据源配置
+spring:
+ datasource:
+ type: com.zaxxer.hikari.HikariDataSource
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ username: root
+ password: root
+ url: jdbc:mysql://pigx-mysql:3306/coffeewx?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
+ hikari:
+ connection-init-sql: SET NAMES utf8mb4
+ resources:
+ static-locations: classpath:/static/,classpath:/views/
+
+
+# 租户表维护
+pigx:
+ tenant:
+ column: tenant_id
+ tables:
+ - t_wx_account
+ - t_wx_account_fans
\ No newline at end of file
diff --git a/pigx-eureka/pom.xml b/pigx-eureka/pom.xml
index 48b061c65..205b64354 100644
--- a/pigx-eureka/pom.xml
+++ b/pigx-eureka/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx
- 2.7.0
+ 2.8.0
pigx-eureka
diff --git a/pigx-gateway/pom.xml b/pigx-gateway/pom.xml
index cf82cd02e..75e7d739e 100644
--- a/pigx-gateway/pom.xml
+++ b/pigx-gateway/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx
- 2.7.0
+ 2.8.0
pigx-gateway
diff --git a/pigx-upms/pigx-upms-api/pom.xml b/pigx-upms/pigx-upms-api/pom.xml
index 164585399..cf377bc86 100644
--- a/pigx-upms/pigx-upms-api/pom.xml
+++ b/pigx-upms/pigx-upms-api/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-upms
- 2.7.0
+ 2.8.0
pigx-upms-api
diff --git a/pigx-upms/pigx-upms-biz/pom.xml b/pigx-upms/pigx-upms-biz/pom.xml
index e24090894..82ba9cc74 100644
--- a/pigx-upms/pigx-upms-biz/pom.xml
+++ b/pigx-upms/pigx-upms-biz/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-upms
- 2.7.0
+ 2.8.0
pigx-upms-biz
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DeptController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DeptController.java
index 28d952fc5..9570d3562 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DeptController.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/DeptController.java
@@ -68,16 +68,6 @@ public class DeptController {
return new R<>(sysDeptService.selectTree());
}
- /**
- * 返回当前用户树形菜单集合
- *
- * @return 树形菜单
- */
- @GetMapping(value = "/user-tree")
- public R getUserTree() {
- return new R<>(sysDeptService.getUserTree());
- }
-
/**
* 添加
*
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysDeptMapper.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysDeptMapper.java
index 6df92577f..aeb1e4ae5 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysDeptMapper.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/mapper/SysDeptMapper.java
@@ -22,8 +22,6 @@ package com.pig4cloud.pigx.admin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.pig4cloud.pigx.admin.api.entity.SysDept;
-import java.util.List;
-
/**
*
* 部门管理 Mapper 接口
@@ -34,10 +32,4 @@ import java.util.List;
*/
public interface SysDeptMapper extends BaseMapper {
- /**
- * 关联dept——relation
- *
- * @return 数据列表
- */
- List listDepts();
}
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysDeptService.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysDeptService.java
index d7cffea73..54417a797 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysDeptService.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysDeptService.java
@@ -42,13 +42,6 @@ public interface SysDeptService extends IService {
*/
List selectTree();
- /**
- * 查询用户部门树
- *
- * @return
- */
- List getUserTree();
-
/**
* 添加信息部门
*
diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysDeptServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysDeptServiceImpl.java
index db853a5fc..82bc07eab 100644
--- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysDeptServiceImpl.java
+++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysDeptServiceImpl.java
@@ -29,7 +29,6 @@ import com.pig4cloud.pigx.admin.api.vo.TreeUtil;
import com.pig4cloud.pigx.admin.mapper.SysDeptMapper;
import com.pig4cloud.pigx.admin.service.SysDeptRelationService;
import com.pig4cloud.pigx.admin.service.SysDeptService;
-import com.pig4cloud.pigx.common.security.util.SecurityUtils;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@@ -79,11 +78,11 @@ public class SysDeptServiceImpl extends ServiceImpl impl
public Boolean removeDeptById(Integer id) {
//级联删除部门
List idList = sysDeptRelationService
- .list(Wrappers.query().lambda()
- .eq(SysDeptRelation::getAncestor, id))
- .stream()
- .map(SysDeptRelation::getDescendant)
- .collect(Collectors.toList());
+ .list(Wrappers.query().lambda()
+ .eq(SysDeptRelation::getAncestor, id))
+ .stream()
+ .map(SysDeptRelation::getDescendant)
+ .collect(Collectors.toList());
if (CollUtil.isNotEmpty(idList)) {
this.removeByIds(idList);
@@ -123,23 +122,6 @@ public class SysDeptServiceImpl extends ServiceImpl impl
return getDeptTree(this.list(Wrappers.emptyWrapper()));
}
- /**
- * 查询用户部门树
- *
- * @return
- */
- @Override
- public List getUserTree() {
- Integer deptId = SecurityUtils.getUser().getDeptId();
- List descendantIdList = sysDeptRelationService
- .list(Wrappers.query().lambda()
- .eq(SysDeptRelation::getAncestor, deptId))
- .stream().map(SysDeptRelation::getDescendant)
- .collect(Collectors.toList());
-
- List deptList = baseMapper.selectBatchIds(descendantIdList);
- return getDeptTree(deptList);
- }
/**
* 构建部门树
@@ -149,14 +131,14 @@ public class SysDeptServiceImpl extends ServiceImpl impl
*/
private List getDeptTree(List depts) {
List treeList = depts.stream()
- .filter(dept -> !dept.getDeptId().equals(dept.getParentId()))
- .map(dept -> {
- DeptTree node = new DeptTree();
- node.setId(dept.getDeptId());
- node.setParentId(dept.getParentId());
- node.setName(dept.getName());
- return node;
- }).collect(Collectors.toList());
+ .filter(dept -> !dept.getDeptId().equals(dept.getParentId()))
+ .map(dept -> {
+ DeptTree node = new DeptTree();
+ node.setId(dept.getDeptId());
+ node.setParentId(dept.getParentId());
+ node.setName(dept.getName());
+ return node;
+ }).collect(Collectors.toList());
return TreeUtil.build(treeList, 0);
}
}
diff --git a/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysDeptMapper.xml b/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysDeptMapper.xml
index 667c55728..7f0befa96 100644
--- a/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysDeptMapper.xml
+++ b/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysDeptMapper.xml
@@ -21,28 +21,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
- dept_id AS deptId, parent_id AS parentId, name, sort, create_time AS createTime, update_time AS updateTime, del_flag AS delFlag
-
-
-
-
diff --git a/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysUserMapper.xml b/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysUserMapper.xml
index ac2822964..4a265e6f6 100644
--- a/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysUserMapper.xml
+++ b/pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysUserMapper.xml
@@ -149,7 +149,7 @@
`user`.avatar,
`user`.wx_openid,
`user`.qq_openid,
- `user`.dept_id,
+ `user`.dept_id AS deptId,
`user`.create_time AS ucreate_time,
`user`.update_time AS uupdate_time,
`user`.del_flag AS udel_flag,
diff --git a/pigx-upms/pigx-upms-biz/src/test/java/com/pig4cloud/pigx/admin/BitMapTest.java b/pigx-upms/pigx-upms-biz/src/test/java/com/pig4cloud/pigx/admin/BitMapTest.java
new file mode 100644
index 000000000..f9344df9e
--- /dev/null
+++ b/pigx-upms/pigx-upms-biz/src/test/java/com/pig4cloud/pigx/admin/BitMapTest.java
@@ -0,0 +1,86 @@
+package com.pig4cloud.pigx.admin;
+
+import java.util.BitSet;
+
+/**
+ * @author lengleng
+ * @date 2019-03-26
+ */
+public class BitMapTest {
+ private int[] bigArray;
+
+ public BitMapTest(long size) {
+ bigArray = new int[(int) (size / 32 + 1)];
+ }
+
+ public void set1(int num) {
+ //确定数组 index
+ int arrayIndex = num >> 5;
+ //确定bit index
+ int bitIndex = num & 31;
+ //设置0
+ bigArray[arrayIndex] |= 1 << bitIndex;
+
+ System.out.println(bigArray[arrayIndex]);
+ }
+
+ public void set0(int num) {
+ //确定数组 index
+ int arrayIndex = num >> 5;
+ //确定bit index
+ int bitIndex = num & 31;
+ //设置0
+ bigArray[arrayIndex] &= ~(1 << bitIndex);
+ System.out.println(get32BitBinString(bigArray[arrayIndex]));
+ }
+
+ public boolean isExist(int num) {
+ //确定数组 index
+ int arrayIndex = num >> 5;
+ //确定bit index
+ int bitIndex = num & 31;
+
+ //判断是否存在
+ return (bigArray[arrayIndex] & ((1 << bitIndex))) != 0;
+ }
+
+ /**
+ * 将整型数字转换为二进制字符串,一共32位,不舍弃前面的0
+ *
+ * @param number 整型数字
+ * @return 二进制字符串
+ */
+ private static String get32BitBinString(int number) {
+ StringBuilder sBuilder = new StringBuilder();
+ for (int i = 0; i < 32; i++) {
+ sBuilder.append(number & 1);
+ number = number >>> 1;
+ }
+ return sBuilder.reverse().toString();
+ }
+
+ public static void main(String[] args) {
+
+ int[] array = new int[]{1, 2, 3, 22, 0, 3, 63};
+ BitSet bitSet = new BitSet(1);
+ System.out.println(bitSet.size()); //64
+ bitSet = new BitSet(65);
+ System.out.println(bitSet.size()); //128
+ bitSet = new BitSet(23);
+ System.out.println(bitSet.size()); //64
+
+ //将数组内容组bitmap
+ for (int i = 0; i < array.length; i++) {
+ bitSet.set(array[i], true);
+ }
+
+ System.out.println(bitSet.get(22));
+ System.out.println(bitSet.get(60));
+
+ System.out.println("下面开始遍历BitSet:");
+ for (int i = 0; i < bitSet.size(); i++) {
+ System.out.println(bitSet.get(i));
+ }
+ }
+
+}
diff --git a/pigx-upms/pom.xml b/pigx-upms/pom.xml
index ab20d7607..27545bc74 100644
--- a/pigx-upms/pom.xml
+++ b/pigx-upms/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx
- 2.7.0
+ 2.8.0
pigx-upms
diff --git a/pigx-visual/pigx-activiti/pom.xml b/pigx-visual/pigx-activiti/pom.xml
index 45542b234..235acb84f 100644
--- a/pigx-visual/pigx-activiti/pom.xml
+++ b/pigx-visual/pigx-activiti/pom.xml
@@ -23,7 +23,7 @@
com.pig4cloud
pigx-visual
- 2.7.0
+ 2.8.0
pigx-activiti
diff --git a/pigx-visual/pigx-codegen/pom.xml b/pigx-visual/pigx-codegen/pom.xml
index af9750be0..1805d57a7 100755
--- a/pigx-visual/pigx-codegen/pom.xml
+++ b/pigx-visual/pigx-codegen/pom.xml
@@ -6,7 +6,7 @@
com.pig4cloud
pigx-visual
- 2.7.0
+ 2.8.0
pigx-codegen
@@ -49,6 +49,10 @@
com.pig4cloud
pigx-common-security
+
+ com.pig4cloud
+ pigx-common-log
+
velocity
diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/PigxCodeGenApplication.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/PigxCodeGenApplication.java
index 1939b0796..25a8ae599 100755
--- a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/PigxCodeGenApplication.java
+++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/PigxCodeGenApplication.java
@@ -17,8 +17,8 @@
package com.pig4cloud.pigx.codegen;
-import com.pig4cloud.pigx.common.security.annotation.EnablePigxResourceServer;
import com.pig4cloud.pigx.common.security.annotation.EnablePigxFeignClients;
+import com.pig4cloud.pigx.common.security.annotation.EnablePigxResourceServer;
import com.pig4cloud.pigx.common.swagger.annotation.EnablePigxSwagger2;
import org.springframework.boot.SpringApplication;
import org.springframework.cloud.client.SpringCloudApplication;
diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/config/DynamicDataSource.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/config/DynamicDataSource.java
new file mode 100644
index 000000000..252b8d87f
--- /dev/null
+++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/config/DynamicDataSource.java
@@ -0,0 +1,25 @@
+package com.pig4cloud.pigx.codegen.config;
+
+import com.pig4cloud.pigx.codegen.util.DynamicDataSourceContextHolder;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
+
+/**
+ * @author lengleng
+ * @date 2019-03-31
+ *
+ * 动态数据源类
+ */
+@Slf4j
+public class DynamicDataSource extends AbstractRoutingDataSource {
+
+ /**
+ * 指定路由Key
+ *
+ * @return
+ */
+ @Override
+ protected Object determineCurrentLookupKey() {
+ return DynamicDataSourceContextHolder.getDataSourceType();
+ }
+}
\ No newline at end of file
diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/config/DynamicDataSourceConfig.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/config/DynamicDataSourceConfig.java
new file mode 100644
index 000000000..41f175e25
--- /dev/null
+++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/config/DynamicDataSourceConfig.java
@@ -0,0 +1,102 @@
+package com.pig4cloud.pigx.codegen.config;
+
+import com.mysql.cj.jdbc.Driver;
+import com.pig4cloud.pigx.codegen.util.DataSourceConstant;
+import com.zaxxer.hikari.HikariDataSource;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.jasypt.encryption.StringEncryptor;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+import org.springframework.jdbc.datasource.DriverManagerDataSource;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.annotation.TransactionManagementConfigurer;
+
+import javax.annotation.PostConstruct;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+/**
+ * @author lengleng
+ * @date 2019-03-31
+ *
+ * 动态数据源切换配置
+ */
+@Slf4j
+@Configuration
+@AllArgsConstructor
+public class DynamicDataSourceConfig implements TransactionManagementConfigurer {
+ private final Map