getChildren() {
+ if (this.children == null) {
+ this.children = new ArrayList<>();
+ }
+ return this.children;
+ }
+}
diff --git a/mate-platform/mate-system/pom.xml b/mate-platform/mate-system/pom.xml
index cd8cf36db..9448d5e62 100644
--- a/mate-platform/mate-system/pom.xml
+++ b/mate-platform/mate-system/pom.xml
@@ -38,4 +38,6 @@
mate-starter-auth
+
+
\ No newline at end of file
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysDepartController.java b/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysDepartController.java
index 6b80320b6..5e436beec 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysDepartController.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysDepartController.java
@@ -2,14 +2,22 @@
import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
+import oracle.jdbc.proxy.annotation.Post;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
-import org.springframework.web.bind.annotation.RestController;
import vip.mate.core.auth.annotation.EnableToken;
import vip.mate.core.common.api.Result;
import vip.mate.core.web.controller.BaseController;
+import vip.mate.core.web.tree.ForestNodeMerger;
+import vip.mate.core.web.tree.INode;
+import vip.mate.system.entity.SysDepart;
import vip.mate.system.service.ISysDepartService;
+import vip.mate.system.vo.SysDepartVO;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.stream.Collectors;
/**
*
@@ -30,7 +38,28 @@ public class SysDepartController extends BaseController {
@EnableToken
@GetMapping("/list")
public Result> list() {
- return Result.data(sysDepartService.list());
+ List sysDepartList = sysDepartService.list();
+ List sysDepartVOS = sysDepartList.stream().map(sysDepart -> {
+ SysDepartVO sysDepartVO = new SysDepartVO();
+ BeanUtils.copyProperties(sysDepart, sysDepartVO);
+ return sysDepartVO;
+ }).collect(Collectors.toList());
+ return Result.data(ForestNodeMerger.merge(sysDepartVOS));
+ }
+
+ @EnableToken
+ @GetMapping("/tree")
+ public Result> tree() {
+ return Result.data(ForestNodeMerger.merge(sysDepartService.tree()));
+ }
+
+ @EnableToken
+ @PostMapping("/saveOrUpdate")
+ public Result> saveOrUpdate(@Valid @RequestBody SysDepart sysDepart) {
+ if (sysDepartService.saveOrUpdate(sysDepart)) {
+ return Result.success("操作成功");
+ }
+ return Result.fail("操作失败");
}
}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysDepartMapper.java b/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysDepartMapper.java
index 2a620bd47..03f78e6de 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysDepartMapper.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysDepartMapper.java
@@ -2,6 +2,9 @@
import vip.mate.system.entity.SysDepart;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import vip.mate.system.vo.SysDepartVO;
+
+import java.util.List;
/**
*
@@ -13,4 +16,6 @@
*/
public interface SysDepartMapper extends BaseMapper {
+ List tree();
+
}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysDepartMapper.xml b/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysDepartMapper.xml
index f8ed5c242..c2dae72b8 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysDepartMapper.xml
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysDepartMapper.xml
@@ -2,4 +2,18 @@
+
+
+
+
+
+
+
+
+
+
+ select id, parent_id, name as "title", id as "value", id as "key" from mate_sys_depart where is_deleted = 0
+ ORDER BY sort
+
+
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysDepartService.java b/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysDepartService.java
index c6a9d80d8..7ef88c79a 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysDepartService.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysDepartService.java
@@ -2,6 +2,9 @@
import vip.mate.system.entity.SysDepart;
import com.baomidou.mybatisplus.extension.service.IService;
+import vip.mate.system.vo.SysDepartVO;
+
+import java.util.List;
/**
*
@@ -13,4 +16,6 @@
*/
public interface ISysDepartService extends IService {
+ List tree();
+
}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysDepartServiceImpl.java b/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysDepartServiceImpl.java
index aa481209a..2fc1b66b4 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysDepartServiceImpl.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysDepartServiceImpl.java
@@ -5,6 +5,9 @@
import vip.mate.system.service.ISysDepartService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
+import vip.mate.system.vo.SysDepartVO;
+
+import java.util.List;
/**
*
@@ -17,4 +20,8 @@
@Service
public class SysDepartServiceImpl extends ServiceImpl implements ISysDepartService {
+ @Override
+ public List tree() {
+ return baseMapper.tree();
+ }
}
diff --git a/mate-uaa/src/main/java/vip/mate/oauth/controller/AuthController.java b/mate-uaa/src/main/java/vip/mate/oauth/controller/AuthController.java
index ad2cd8ecc..d792a503f 100644
--- a/mate-uaa/src/main/java/vip/mate/oauth/controller/AuthController.java
+++ b/mate-uaa/src/main/java/vip/mate/oauth/controller/AuthController.java
@@ -9,8 +9,8 @@
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import vip.mate.core.common.api.Result;
-import vip.mate.core.security.util.SecurityUtil;
-import vip.mate.core.security.util.TokenUtil;
+import vip.mate.core.common.util.SecurityUtil;
+import vip.mate.core.common.util.TokenUtil;
import vip.mate.oauth.service.CaptchaService;
import javax.servlet.http.HttpServletRequest;
diff --git a/mate-uaa/src/main/java/vip/mate/oauth/translator/MateWebRespExceptionTranslator.java b/mate-uaa/src/main/java/vip/mate/oauth/translator/MateWebRespExceptionTranslator.java
index 7a8794d0d..1da752508 100644
--- a/mate-uaa/src/main/java/vip/mate/oauth/translator/MateWebRespExceptionTranslator.java
+++ b/mate-uaa/src/main/java/vip/mate/oauth/translator/MateWebRespExceptionTranslator.java
@@ -14,7 +14,7 @@
import vip.mate.core.common.api.ResultCode;
@Slf4j
-@Component
+//@Component
public class MateWebRespExceptionTranslator implements WebResponseExceptionTranslator {
@Override
diff --git a/pom.xml b/pom.xml
index 4421f1f33..650b5d08d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -118,6 +118,12 @@
true
+
+ src/main/java
+
+ **/*.xml
+
+
From 20797612a25bb75820f25582c7dd27e25cfe857b Mon Sep 17 00:00:00 2001
From: xuzhanfu <7357288@qq.com>
Date: Tue, 30 Jun 2020 22:19:52 +0800
Subject: [PATCH 055/802] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=BD=91=E5=85=B3req?=
=?UTF-8?q?uest=E6=97=A5=E5=BF=97=E6=89=93=E5=8D=B0=E6=A0=BC=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
mate-core/mate-starter-common/pom.xml | 5 ++
.../core/common/constant/MateConstant.java | 4 +-
.../vip/mate/core/common/util/LogUtil.java | 24 +++++++++
.../filter/LogRequestGlobalFilter.java | 51 ++++++++++---------
4 files changed, 60 insertions(+), 24 deletions(-)
create mode 100644 mate-core/mate-starter-common/src/main/java/vip/mate/core/common/util/LogUtil.java
diff --git a/mate-core/mate-starter-common/pom.xml b/mate-core/mate-starter-common/pom.xml
index 4e622de1f..39f067d26 100644
--- a/mate-core/mate-starter-common/pom.xml
+++ b/mate-core/mate-starter-common/pom.xml
@@ -84,6 +84,11 @@
mybatis-plus-annotation
provided
+
+ org.springframework.boot
+ spring-boot-starter-web
+ provided
+
diff --git a/mate-core/mate-starter-common/src/main/java/vip/mate/core/common/constant/MateConstant.java b/mate-core/mate-starter-common/src/main/java/vip/mate/core/common/constant/MateConstant.java
index d401da4f9..2860128a5 100644
--- a/mate-core/mate-starter-common/src/main/java/vip/mate/core/common/constant/MateConstant.java
+++ b/mate-core/mate-starter-common/src/main/java/vip/mate/core/common/constant/MateConstant.java
@@ -18,7 +18,9 @@ public class MateConstant {
/**
* request id key
*/
- public static final String REQUEST_ID_KEY = "mate_request_id";
+ public static final String REQUEST_ID_KEY = "Mate-Request-Id";
+
+ public static final String START_TIME_KEY = "Mate-ST-Id";
/**
* 默认为空消息
diff --git a/mate-core/mate-starter-common/src/main/java/vip/mate/core/common/util/LogUtil.java b/mate-core/mate-starter-common/src/main/java/vip/mate/core/common/util/LogUtil.java
new file mode 100644
index 000000000..d2e51908d
--- /dev/null
+++ b/mate-core/mate-starter-common/src/main/java/vip/mate/core/common/util/LogUtil.java
@@ -0,0 +1,24 @@
+package vip.mate.core.common.util;
+
+import javax.annotation.Nullable;
+import java.util.Objects;
+import org.springframework.http.MediaType;
+
+public class LogUtil {
+
+ /**
+ * 判断是否是上传文件
+ * @param mediaType MediaType
+ * @return Boolean
+ */
+ public static boolean isUploadFile(@Nullable MediaType mediaType) {
+ if (Objects.isNull(mediaType)) {
+ return false;
+ }
+ return mediaType.equals(MediaType.MULTIPART_FORM_DATA)
+ || mediaType.equals(MediaType.IMAGE_GIF)
+ || mediaType.equals(MediaType.IMAGE_JPEG)
+ || mediaType.equals(MediaType.IMAGE_PNG)
+ || mediaType.equals(MediaType.MULTIPART_MIXED);
+ }
+}
diff --git a/mate-gateway/src/main/java/vip/mate/gateway/filter/LogRequestGlobalFilter.java b/mate-gateway/src/main/java/vip/mate/gateway/filter/LogRequestGlobalFilter.java
index 21e47ef4d..004df75f6 100644
--- a/mate-gateway/src/main/java/vip/mate/gateway/filter/LogRequestGlobalFilter.java
+++ b/mate-gateway/src/main/java/vip/mate/gateway/filter/LogRequestGlobalFilter.java
@@ -2,7 +2,6 @@
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang.StringUtils;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.cloud.gateway.filter.factory.rewrite.CachedBodyOutputMessage;
@@ -24,6 +23,7 @@
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -33,8 +33,7 @@
public class LogRequestGlobalFilter implements GlobalFilter, Ordered {
@Override
public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) {
- //获取数据类型
- log.info("================ Gateway Request Start ================");
+
MediaType mediaType = exchange.getRequest().getHeaders().getContentType();
ServerRequest serverRequest = ServerRequest.create(exchange, HandlerStrategies.withDefaults().messageReaders());
@@ -116,41 +115,47 @@ public Flux getBody() {
* @param body 请求的body内容
*/
private void recordLog(ServerHttpRequest request, Object body) {
- // 记录要访问的url
- StringBuilder builder = new StringBuilder(" request url: ");
- builder.append(request.getURI().getRawPath());
+
+ StringBuilder builder = new StringBuilder(300);
+ // 日志参数
+ List beforeReqArgs = new ArrayList<>();
+ builder.append("\n\n================ Gateway Request Start ================\n");
+ // 打印路由
+ builder.append("===> {}: {}\n");
+ // 参数
+ String requestMethod = request.getMethodValue();
+ beforeReqArgs.add(requestMethod);
+ beforeReqArgs.add(request.getURI().getRawPath());
// 记录访问的方法
HttpMethod method = request.getMethod();
- if (null != method){
- builder.append(", method: ").append(method.name());
- }
+
// 记录头部信息
- builder.append(", header { ");
for (Map.Entry> entry : request.getHeaders().entrySet()) {
- builder.append(entry.getKey()).append(":").append(StringUtils.join(entry.getValue(), ",")).append(",");
+ builder.append("===Headers=== {}: {}\n");
+ beforeReqArgs.add(entry.getKey());
+ beforeReqArgs.add(org.apache.commons.lang3.StringUtils.join(entry.getValue()));
}
// 记录参数
- builder.append("} param {");
if (null != method && HttpMethod.GET.matches(method.name())) {
// 记录请求的参数信息 针对GET 请求
MultiValueMap queryParams = request.getQueryParams();
for (Map.Entry> entry : queryParams.entrySet()) {
- builder.append(entry.getKey()).append("=").append(StringUtils.join(entry.getValue(), ",")).append(",");
+ builder.append("===Params=== {}: {}\n");
+ beforeReqArgs.add(entry.getKey());
+ beforeReqArgs.add(org.apache.commons.lang3.StringUtils.join(entry.getValue()));
}
- builder.append("}");
- }
- else {
- builder.append(request.getURI().getQuery());
- builder.append("} body: ");
- // 从body中读取参数
- builder.append(body);
+ } else {
+ builder.append("===Params=== {}\n");
+ beforeReqArgs.add(request.getURI().getQuery());
+ builder.append("===Body=== {}\n");
+ beforeReqArgs.add(body);
}
- log.info(builder.toString());
- log.info("================ Gateway Request End =================");
-// LogUtil.info(builder.toString());
+ builder.append("================ Gateway Request End =================\n");
+ // 打印执行时间
+ log.info(builder.toString(), beforeReqArgs.toArray());
}
}
From 7a0e757a0ca9b3c1f1eb23a588451699dbba4981 Mon Sep 17 00:00:00 2001
From: xuzhanfu <7357288@qq.com>
Date: Wed, 1 Jul 2020 00:19:25 +0800
Subject: [PATCH 056/802] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=BD=91=E5=85=B3req?=
=?UTF-8?q?uest=E6=97=A5=E5=BF=97=E6=89=93=E5=8D=B0=E6=A0=BC=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../config/DateConverterConfiguration.java | 114 ++++++++++++++++++
.../core/web/datatype/MateJavaTimeModule.java | 41 +++++++
.../main/resources/META-INF/spring.factories | 3 +-
3 files changed, 157 insertions(+), 1 deletion(-)
create mode 100644 mate-core/mate-starter-web/src/main/java/vip/mate/core/web/config/DateConverterConfiguration.java
create mode 100644 mate-core/mate-starter-web/src/main/java/vip/mate/core/web/datatype/MateJavaTimeModule.java
diff --git a/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/config/DateConverterConfiguration.java b/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/config/DateConverterConfiguration.java
new file mode 100644
index 000000000..cccd287fb
--- /dev/null
+++ b/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/config/DateConverterConfiguration.java
@@ -0,0 +1,114 @@
+package vip.mate.core.web.config;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.boot.autoconfigure.AutoConfigureBefore;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.convert.converter.Converter;
+
+import java.io.IOException;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.Date;
+
+import static java.time.format.DateTimeFormatter.ofPattern;
+
+/**
+ * 日期格式全局配置
+ * @author pangu
+ * @link https://juejin.im/post/5e940626e51d4546f5790979
+ * @link https://blog.csdn.net/weixin_44600430/article/details/105512891
+ */
+@Configuration
+@ConditionalOnClass(ObjectMapper.class)
+@AutoConfigureBefore(JacksonAutoConfiguration.class)
+public class DateConverterConfiguration {
+
+ private static final String YYYY_MM_DD = "yyyy-MM-dd";
+ private static final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
+
+ @Bean
+ @Primary
+ public ObjectMapper serializingObjectMapper() {
+ ObjectMapper objectMapper = new ObjectMapper();
+ JavaTimeModule javaTimeModule = new JavaTimeModule();
+ javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer());
+ javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer());
+ objectMapper.registerModule(javaTimeModule);
+ return objectMapper;
+ }
+
+ public class LocalDateTimeSerializer extends JsonSerializer {
+ @Override
+ public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
+ gen.writeString(value.format(ofPattern(YYYY_MM_DD_HH_MM_SS)));
+ }
+ }
+
+ public class LocalDateTimeDeserializer extends JsonDeserializer {
+ @Override
+ public LocalDateTime deserialize(JsonParser p, DeserializationContext deserializationContext) throws IOException {
+ return LocalDateTime.parse(p.getValueAsString(), ofPattern(YYYY_MM_DD_HH_MM_SS));
+ }
+ }
+
+
+ /**
+ * 自定义类型转换,HTTP请求日期字符串转换日期类型,
+ * 相当于以前设置进 ConversionServiceFactoryBean
+ *
+ * @return Converter
+ */
+ @Bean
+ public Converter localDateTimeConverter() {
+ return new Converter() {
+ @Override
+ public LocalDateTime convert(String source) {
+ try {
+ return parse(source);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ throw new RuntimeException("日期解析错误");
+ }
+ };
+ }
+
+ /**
+ * 根据字符串进行解析,将Date转LocalDateTime
+ *
+ * @param source 日期字符串
+ * @return java.time.LocalDateTime
+ */
+ public LocalDateTime parse(String source) throws ParseException {
+ if (StringUtils.isBlank(source)) {
+ return null;
+ }
+ DateFormat format;
+ source = source.trim();
+ //判断是否yyyy-MM-dd格式
+ if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2}$")){
+ format = new SimpleDateFormat(YYYY_MM_DD);
+ Date date = format.parse(source);
+ return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
+ //判断是否yyyy-MM-dd HH:mm:ss格式
+ }else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$")){
+ format = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS);
+ Date date = format.parse(source);
+ return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
+ }else {
+ throw new IllegalArgumentException("Invalid false value " + source);
+ }
+ }
+
+}
diff --git a/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/datatype/MateJavaTimeModule.java b/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/datatype/MateJavaTimeModule.java
new file mode 100644
index 000000000..afc5231cc
--- /dev/null
+++ b/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/datatype/MateJavaTimeModule.java
@@ -0,0 +1,41 @@
+package vip.mate.core.web.datatype;
+
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.datatype.jsr310.PackageVersion;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
+
+public class MateJavaTimeModule extends SimpleModule {
+ public static final String PATTERN_DATETIME = "yyyy-MM-dd HH:mm:ss";
+ public static final String PATTERN_DATETIME_MINI = "yyyyMMddHHmmss";
+ public static final String PATTERN_DATE = "yyyy-MM-dd";
+ public static final String PATTERN_TIME = "HH:mm:ss";
+
+
+ /**
+ * java 8 时间格式化
+ */
+ public static final DateTimeFormatter DATETIME_FORMATTER = DateTimeFormatter.ofPattern(PATTERN_DATETIME);
+ public static final DateTimeFormatter DATETIME_MINI_FORMATTER = DateTimeFormatter.ofPattern(PATTERN_DATETIME_MINI);
+ public static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern(PATTERN_DATE);
+ public static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern(PATTERN_TIME);
+
+ public MateJavaTimeModule(){
+ super(PackageVersion.VERSION);
+ this.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DATETIME_FORMATTER));
+ this.addDeserializer(LocalDate.class, new LocalDateDeserializer(DATE_FORMATTER));
+ this.addDeserializer(LocalTime.class, new LocalTimeDeserializer(TIME_FORMATTER));
+ this.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DATETIME_FORMATTER));
+ this.addSerializer(LocalDate.class, new LocalDateSerializer(DATE_FORMATTER));
+ this.addSerializer(LocalTime.class, new LocalTimeSerializer(TIME_FORMATTER));
+ }
+}
diff --git a/mate-core/mate-starter-web/src/main/resources/META-INF/spring.factories b/mate-core/mate-starter-web/src/main/resources/META-INF/spring.factories
index 30bf569a6..99503ad02 100644
--- a/mate-core/mate-starter-web/src/main/resources/META-INF/spring.factories
+++ b/mate-core/mate-starter-web/src/main/resources/META-INF/spring.factories
@@ -1,4 +1,5 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
- vip.mate.core.web.config.ExceptionConfiguration
+ vip.mate.core.web.config.ExceptionConfiguration,\
+ vip.mate.core.web.config.DateConverterConfiguration
From 4ebbba80776b71abadba1571192ef5ae3fa0a2fc Mon Sep 17 00:00:00 2001
From: xuzhanfu <7357288@qq.com>
Date: Wed, 1 Jul 2020 00:51:02 +0800
Subject: [PATCH 057/802] =?UTF-8?q?=E5=85=A8=E5=B1=80=E6=97=A5=E6=9C=9F?=
=?UTF-8?q?=E6=A0=BC=E5=BC=8F=E4=BC=98=E5=8C=96=E5=92=8C=E5=A2=9E=E5=8A=A0?=
=?UTF-8?q?BaseEntity=E5=88=9D=E5=A7=8B=E9=AA=8C=E8=AF=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../config/MybatisPlusConfiguration.java | 9 ++++
.../mate/core/database/entity/BaseEntity.java | 54 +++++++++++++++++++
.../database/handler/MetaEntityHandler.java | 23 ++++++++
.../config/DateConverterConfiguration.java | 21 +-------
.../vip/mate/system/entity/SysDepart.java | 46 +++++++---------
5 files changed, 108 insertions(+), 45 deletions(-)
create mode 100644 mate-core/mate-starter-database/src/main/java/vip/mate/core/database/entity/BaseEntity.java
create mode 100644 mate-core/mate-starter-database/src/main/java/vip/mate/core/database/handler/MetaEntityHandler.java
diff --git a/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/config/MybatisPlusConfiguration.java b/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/config/MybatisPlusConfiguration.java
index 652d635ee..13ab6a087 100644
--- a/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/config/MybatisPlusConfiguration.java
+++ b/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/config/MybatisPlusConfiguration.java
@@ -1,6 +1,7 @@
package vip.mate.core.database.config;
import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.core.parser.ISqlParser;
import com.baomidou.mybatisplus.extension.parsers.BlockAttackSqlParser;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
@@ -11,6 +12,7 @@
import org.springframework.core.annotation.Order;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import vip.mate.core.common.factory.YamlPropertySourceFactory;
+import vip.mate.core.database.handler.MetaEntityHandler;
import java.util.ArrayList;
import java.util.List;
@@ -45,4 +47,11 @@ public PaginationInterceptor paginationInterceptor() {
paginationInterceptor.setSqlParserList(sqlParserList);
return paginationInterceptor;
}
+
+// @Bean
+// public GlobalConfig globalConfig() {
+// GlobalConfig globalConfig = new GlobalConfig();
+// globalConfig.setMetaObjectHandler(new MetaEntityHandler());
+// return globalConfig;
+// }
}
diff --git a/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/entity/BaseEntity.java b/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/entity/BaseEntity.java
new file mode 100644
index 000000000..4e9fde677
--- /dev/null
+++ b/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/entity/BaseEntity.java
@@ -0,0 +1,54 @@
+package vip.mate.core.database.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 实体类的基类
+ * @author pangu
+ */
+@Data
+public class BaseEntity implements Serializable {
+ /**
+ * 主键id
+ */
+ @JsonSerialize(using = ToStringSerializer.class)
+ @ApiModelProperty(value = "主键id")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 创建人
+ */
+ private String createBy;
+
+ /**
+ * 更新人
+ */
+ private String updateBy;
+
+ /**
+ * 创建时间
+ */
+
+ @ApiModelProperty(value = "创建时间")
+ private LocalDateTime createTime;
+
+ /**
+ * 更新时间
+ */
+ @ApiModelProperty(value = "更新时间")
+ private LocalDateTime updateTime;
+
+}
diff --git a/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/handler/MetaEntityHandler.java b/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/handler/MetaEntityHandler.java
new file mode 100644
index 000000000..fd638743d
--- /dev/null
+++ b/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/handler/MetaEntityHandler.java
@@ -0,0 +1,23 @@
+package vip.mate.core.database.handler;
+
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Component
+public class MetaEntityHandler implements MetaObjectHandler {
+
+ @Override
+ public void insertFill(MetaObject metaObject) {
+ this.setFieldValByName("createTime", new Date(), metaObject);
+ this.setFieldValByName("updateTime", new Date(), metaObject);
+
+ }
+
+ @Override
+ public void updateFill(MetaObject metaObject) {
+ this.setFieldValByName("updateTime", new Date(), metaObject);
+ }
+}
diff --git a/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/config/DateConverterConfiguration.java b/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/config/DateConverterConfiguration.java
index cccd287fb..5b74d2986 100644
--- a/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/config/DateConverterConfiguration.java
+++ b/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/config/DateConverterConfiguration.java
@@ -12,6 +12,7 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.convert.converter.Converter;
+import vip.mate.core.web.datatype.MateJavaTimeModule;
import java.io.IOException;
import java.text.DateFormat;
@@ -41,28 +42,10 @@ public class DateConverterConfiguration {
@Primary
public ObjectMapper serializingObjectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
- JavaTimeModule javaTimeModule = new JavaTimeModule();
- javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer());
- javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer());
- objectMapper.registerModule(javaTimeModule);
+ objectMapper.registerModule(new MateJavaTimeModule());
return objectMapper;
}
- public class LocalDateTimeSerializer extends JsonSerializer {
- @Override
- public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
- gen.writeString(value.format(ofPattern(YYYY_MM_DD_HH_MM_SS)));
- }
- }
-
- public class LocalDateTimeDeserializer extends JsonDeserializer {
- @Override
- public LocalDateTime deserialize(JsonParser p, DeserializationContext deserializationContext) throws IOException {
- return LocalDateTime.parse(p.getValueAsString(), ofPattern(YYYY_MM_DD_HH_MM_SS));
- }
- }
-
-
/**
* 自定义类型转换,HTTP请求日期字符串转换日期类型,
* 相当于以前设置进 ConversionServiceFactoryBean
diff --git a/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysDepart.java b/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysDepart.java
index 8de6456a0..532f80444 100644
--- a/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysDepart.java
+++ b/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysDepart.java
@@ -9,6 +9,7 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
+import vip.mate.core.database.entity.BaseEntity;
/**
*
@@ -22,17 +23,10 @@
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("mate_sys_depart")
-public class SysDepart extends MateEntity {
+public class SysDepart extends BaseEntity {
private static final long serialVersionUID=1L;
- /**
- * 主键 ID
- */
- @JsonSerialize(using = ToStringSerializer.class)
- @ApiModelProperty(value = "主键")
- private Long id;
-
/**
* 部门名称
*/
@@ -43,25 +37,25 @@ public class SysDepart extends MateEntity {
*/
private Integer sort;
- /**
- * 创建人
- */
- private String createBy;
+// /**
+// * 创建人
+// */
+// private String createBy;
+//
+// /**
+// * 更新人
+// */
+// private String updateBy;
- /**
- * 更新人
- */
- private String updateBy;
-
- /**
- * 创建时间
- */
- private LocalDateTime createTime;
-
- /**
- * 修改时间
- */
- private LocalDateTime updateTime;
+// /**
+// * 创建时间
+// */
+// private LocalDateTime createTime;
+//
+// /**
+// * 修改时间
+// */
+// private LocalDateTime updateTime;
/**
* 删除标识
From f2d021b2cd46a576ec1c6612b2395be9d4759a28 Mon Sep 17 00:00:00 2001
From: xuzhanfu <7357288@qq.com>
Date: Wed, 1 Jul 2020 15:39:52 +0800
Subject: [PATCH 058/802] =?UTF-8?q?=E5=85=A8=E5=B1=80=E6=97=A5=E6=9C=9F?=
=?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../config/MybatisPlusConfiguration.java | 30 +++----
.../mate/core/database/entity/BaseEntity.java | 5 --
.../handler/MateMetaObjectHandler.java | 23 +++++
.../database/handler/MetaEntityHandler.java | 23 -----
mate-core/mate-starter-web/pom.xml | 5 +-
.../config/DateConverterConfiguration.java | 83 ++++---------------
.../core/web/datatype/MateJavaTimeModule.java | 1 -
7 files changed, 56 insertions(+), 114 deletions(-)
create mode 100644 mate-core/mate-starter-database/src/main/java/vip/mate/core/database/handler/MateMetaObjectHandler.java
delete mode 100644 mate-core/mate-starter-database/src/main/java/vip/mate/core/database/handler/MetaEntityHandler.java
diff --git a/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/config/MybatisPlusConfiguration.java b/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/config/MybatisPlusConfiguration.java
index 13ab6a087..3270a2d52 100644
--- a/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/config/MybatisPlusConfiguration.java
+++ b/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/config/MybatisPlusConfiguration.java
@@ -1,40 +1,30 @@
package vip.mate.core.database.config;
-import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.core.parser.ISqlParser;
import com.baomidou.mybatisplus.extension.parsers.BlockAttackSqlParser;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
+import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.annotation.Order;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import vip.mate.core.common.factory.YamlPropertySourceFactory;
-import vip.mate.core.database.handler.MetaEntityHandler;
+import vip.mate.core.database.handler.MateMetaObjectHandler;
import java.util.ArrayList;
import java.util.List;
+@Slf4j
@Configuration
@EnableTransactionManagement
@PropertySource(factory = YamlPropertySourceFactory.class, value = "classpath:mate-db.yml")
@MapperScan("vip.mate.**.mapper.**")
public class MybatisPlusConfiguration {
- /**
- * SQL输出拦截器
- * 只用于开发环境
- */
-// @Bean
-// public SqlExplainInterceptor sqlExplainInterceptor(){
-// SqlExplainInterceptor sqlExplainInterceptor = new SqlExplainInterceptor();
-// List sqlParserList = new ArrayList<>();
-// sqlParserList.add(new BlockAttackSqlParser());
-// sqlExplainInterceptor.setSqlParserList(sqlParserList);
-// return sqlExplainInterceptor;
-// }
/**
*分页查询拦截器
*/
@@ -51,7 +41,17 @@ public PaginationInterceptor paginationInterceptor() {
// @Bean
// public GlobalConfig globalConfig() {
// GlobalConfig globalConfig = new GlobalConfig();
-// globalConfig.setMetaObjectHandler(new MetaEntityHandler());
+// globalConfig.setMetaObjectHandler(new MateMetaObjectHandler());
// return globalConfig;
// }
+ /**
+ * 自动填充数据
+ */
+ @Bean
+ @ConditionalOnMissingBean(MateMetaObjectHandler.class)
+ public MateMetaObjectHandler mateMetaObjectHandler(){
+ MateMetaObjectHandler metaObjectHandler = new MateMetaObjectHandler();
+ log.info("MateMetaObjectHandler [{}]", metaObjectHandler);
+ return metaObjectHandler;
+ }
}
diff --git a/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/entity/BaseEntity.java b/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/entity/BaseEntity.java
index 4e9fde677..43de1b77f 100644
--- a/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/entity/BaseEntity.java
+++ b/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/entity/BaseEntity.java
@@ -1,15 +1,11 @@
package vip.mate.core.database.entity;
-import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
-import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.time.LocalDateTime;
@@ -41,7 +37,6 @@ public class BaseEntity implements Serializable {
/**
* 创建时间
*/
-
@ApiModelProperty(value = "创建时间")
private LocalDateTime createTime;
diff --git a/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/handler/MateMetaObjectHandler.java b/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/handler/MateMetaObjectHandler.java
new file mode 100644
index 000000000..a26269334
--- /dev/null
+++ b/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/handler/MateMetaObjectHandler.java
@@ -0,0 +1,23 @@
+package vip.mate.core.database.handler;
+
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+
+@Component
+public class MateMetaObjectHandler implements MetaObjectHandler {
+
+ @Override
+ public void insertFill(MetaObject metaObject) {
+ this.strictUpdateFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now());
+ this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
+
+ }
+
+ @Override
+ public void updateFill(MetaObject metaObject) {
+ this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
+ }
+}
diff --git a/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/handler/MetaEntityHandler.java b/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/handler/MetaEntityHandler.java
deleted file mode 100644
index fd638743d..000000000
--- a/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/handler/MetaEntityHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package vip.mate.core.database.handler;
-
-import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
-import org.apache.ibatis.reflection.MetaObject;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-
-@Component
-public class MetaEntityHandler implements MetaObjectHandler {
-
- @Override
- public void insertFill(MetaObject metaObject) {
- this.setFieldValByName("createTime", new Date(), metaObject);
- this.setFieldValByName("updateTime", new Date(), metaObject);
-
- }
-
- @Override
- public void updateFill(MetaObject metaObject) {
- this.setFieldValByName("updateTime", new Date(), metaObject);
- }
-}
diff --git a/mate-core/mate-starter-web/pom.xml b/mate-core/mate-starter-web/pom.xml
index 5fdcda660..496537772 100644
--- a/mate-core/mate-starter-web/pom.xml
+++ b/mate-core/mate-starter-web/pom.xml
@@ -54,6 +54,9 @@
org.springframework.boot
spring-boot-starter-data-redis
-
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jsr310
+
\ No newline at end of file
diff --git a/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/config/DateConverterConfiguration.java b/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/config/DateConverterConfiguration.java
index 5b74d2986..50d787919 100644
--- a/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/config/DateConverterConfiguration.java
+++ b/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/config/DateConverterConfiguration.java
@@ -1,28 +1,19 @@
package vip.mate.core.web.config;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.databind.*;
-import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
-import org.apache.commons.lang3.StringUtils;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
-import org.springframework.core.convert.converter.Converter;
+import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import vip.mate.core.web.datatype.MateJavaTimeModule;
-import java.io.IOException;
-import java.text.DateFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.time.LocalDateTime;
-import java.time.ZoneId;
-import java.util.Date;
-
-import static java.time.format.DateTimeFormatter.ofPattern;
+import java.util.Locale;
+import java.util.TimeZone;
/**
* 日期格式全局配置
@@ -30,68 +21,22 @@
* @link https://juejin.im/post/5e940626e51d4546f5790979
* @link https://blog.csdn.net/weixin_44600430/article/details/105512891
*/
+@Slf4j
@Configuration
@ConditionalOnClass(ObjectMapper.class)
@AutoConfigureBefore(JacksonAutoConfiguration.class)
public class DateConverterConfiguration {
- private static final String YYYY_MM_DD = "yyyy-MM-dd";
- private static final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
-
@Bean
@Primary
public ObjectMapper serializingObjectMapper() {
- ObjectMapper objectMapper = new ObjectMapper();
- objectMapper.registerModule(new MateJavaTimeModule());
+ ObjectMapper objectMapper = null;
+ objectMapper = Jackson2ObjectMapperBuilder.json()
+ .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
+ .locale(Locale.CHINA)
+ .timeZone(TimeZone.getDefault())
+ .modules(new MateJavaTimeModule())
+ .build();
return objectMapper;
}
-
- /**
- * 自定义类型转换,HTTP请求日期字符串转换日期类型,
- * 相当于以前设置进 ConversionServiceFactoryBean
- *
- * @return Converter
- */
- @Bean
- public Converter localDateTimeConverter() {
- return new Converter() {
- @Override
- public LocalDateTime convert(String source) {
- try {
- return parse(source);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- throw new RuntimeException("日期解析错误");
- }
- };
- }
-
- /**
- * 根据字符串进行解析,将Date转LocalDateTime
- *
- * @param source 日期字符串
- * @return java.time.LocalDateTime
- */
- public LocalDateTime parse(String source) throws ParseException {
- if (StringUtils.isBlank(source)) {
- return null;
- }
- DateFormat format;
- source = source.trim();
- //判断是否yyyy-MM-dd格式
- if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2}$")){
- format = new SimpleDateFormat(YYYY_MM_DD);
- Date date = format.parse(source);
- return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
- //判断是否yyyy-MM-dd HH:mm:ss格式
- }else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$")){
- format = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS);
- Date date = format.parse(source);
- return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
- }else {
- throw new IllegalArgumentException("Invalid false value " + source);
- }
- }
-
}
diff --git a/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/datatype/MateJavaTimeModule.java b/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/datatype/MateJavaTimeModule.java
index afc5231cc..92f91836b 100644
--- a/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/datatype/MateJavaTimeModule.java
+++ b/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/datatype/MateJavaTimeModule.java
@@ -20,7 +20,6 @@ public class MateJavaTimeModule extends SimpleModule {
public static final String PATTERN_DATE = "yyyy-MM-dd";
public static final String PATTERN_TIME = "HH:mm:ss";
-
/**
* java 8 时间格式化
*/
From 2bc464bb14f5c5a477cf12946776dfae26fbe5df Mon Sep 17 00:00:00 2001
From: xuzhanfu <7357288@qq.com>
Date: Wed, 1 Jul 2020 19:57:46 +0800
Subject: [PATCH 059/802] =?UTF-8?q?=E6=B7=BB=E5=8A=A0JetCache=E4=BD=9C?=
=?UTF-8?q?=E4=B8=BA=E7=BC=93=E5=AD=98=E7=B1=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
mate-core/mate-starter-dependencies/pom.xml | 34 ++++++--
mate-core/mate-starter-jetcache/pom.xml | 37 +++++++++
.../config/JetCacheConfiguration.java | 69 ++++++++++++++++
.../vip/mate/core/jetcache/package-info.java | 1 +
.../main/resources/META-INF/spring.factories | 4 +
.../src/main/resources/mate-jetcache.yml | 14 ++++
mate-core/pom.xml | 1 +
.../java/vip/mate/system/entity/SysDict.java | 82 +++++++++++++++++++
.../java/vip/mate/system/entity/SysUser.java | 2 +-
.../mate/system/feign/ISysDictProvider.java | 20 +++++
.../java/vip/mate/system/vo/SysUserVO.java | 20 +++++
mate-platform/mate-system/pom.xml | 4 +
.../controller/SysDepartController.java | 33 ++++++--
.../mate/system/feign/SysDictProvider.java | 28 +++++++
.../mate/system/feign/SysUserProvider.java | 2 +-
.../vip/mate/system/mapper/SysDictMapper.java | 16 ++++
.../vip/mate/system/mapper/SysDictMapper.xml | 5 ++
.../system/service/ISysDepartService.java | 3 +
.../mate/system/service/ISysDictService.java | 26 ++++++
.../service/impl/SysDepartServiceImpl.java | 31 +++++++
.../service/impl/SysDictServiceImpl.java | 38 +++++++++
.../service/impl/SysMenuServiceImpl.java | 1 -
.../src/main/resources/application-local.yml | 8 +-
.../system/controller/SysDictController.java | 22 +++++
.../java/vip/mate/system/entity/SysDict.java | 82 +++++++++++++++++++
.../vip/mate/system/mapper/SysDictMapper.java | 16 ++++
.../mate/system/service/ISysDictService.java | 16 ++++
.../service/impl/SysDictServiceImpl.java | 20 +++++
src/main/resources/mapper/SysDictMapper.xml | 5 ++
29 files changed, 619 insertions(+), 21 deletions(-)
create mode 100644 mate-core/mate-starter-jetcache/pom.xml
create mode 100644 mate-core/mate-starter-jetcache/src/main/java/vip/mate/core/jetcache/config/JetCacheConfiguration.java
create mode 100644 mate-core/mate-starter-jetcache/src/main/java/vip/mate/core/jetcache/package-info.java
create mode 100644 mate-core/mate-starter-jetcache/src/main/resources/META-INF/spring.factories
create mode 100644 mate-core/mate-starter-jetcache/src/main/resources/mate-jetcache.yml
create mode 100644 mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysDict.java
create mode 100644 mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysDictProvider.java
create mode 100644 mate-platform/mate-system-api/src/main/java/vip/mate/system/vo/SysUserVO.java
create mode 100644 mate-platform/mate-system/src/main/java/vip/mate/system/feign/SysDictProvider.java
create mode 100644 mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysDictMapper.java
create mode 100644 mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysDictMapper.xml
create mode 100644 mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysDictService.java
create mode 100644 mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysDictServiceImpl.java
create mode 100644 src/main/java/vip/mate/system/controller/SysDictController.java
create mode 100644 src/main/java/vip/mate/system/entity/SysDict.java
create mode 100644 src/main/java/vip/mate/system/mapper/SysDictMapper.java
create mode 100644 src/main/java/vip/mate/system/service/ISysDictService.java
create mode 100644 src/main/java/vip/mate/system/service/impl/SysDictServiceImpl.java
create mode 100644 src/main/resources/mapper/SysDictMapper.xml
diff --git a/mate-core/mate-starter-dependencies/pom.xml b/mate-core/mate-starter-dependencies/pom.xml
index 2225814a6..8cc86da8a 100644
--- a/mate-core/mate-starter-dependencies/pom.xml
+++ b/mate-core/mate-starter-dependencies/pom.xml
@@ -45,6 +45,7 @@
0.9.1
1.6.2
2.0.2
+ 2.6.0
2.7.6
@@ -55,47 +56,52 @@
- vip.mate
+ ${project.groupId}
mate-starter-common
${matecloud.core.version}
- vip.mate
+ ${project.groupId}
mate-starter-database
${matecloud.core.version}
- vip.mate
+ ${project.groupId}
mate-starter-dubbo
${matecloud.core.version}
- vip.mate
+ ${project.groupId}
mate-starter-security
${matecloud.core.version}
- vip.mate
+ ${project.groupId}
mate-starter-feign
${matecloud.core.version}
- vip.mate
+ ${project.groupId}
mate-starter-web
${matecloud.core.version}
- vip.mate
+ ${project.groupId}
mate-starter-auth
${matecloud.core.version}
- vip.mate
+ ${project.groupId}
mate-starter-dependencies
${matecloud.core.version}
- vip.mate
+ ${project.groupId}
+ mate-starter-jetcache
+ ${matecloud.core.version}
+
+
+ ${project.groupId}
mate-system-api
${matecloud.core.version}
@@ -213,6 +219,16 @@
fastjson
${fastjson.version}
+
+ com.alicp.jetcache
+ jetcache-starter-redis
+ ${jetcache.version}
+
+
+ com.alicp.jetcache
+ jetcache-starter-redis-lettuce
+ ${jetcache.version}
+
diff --git a/mate-core/mate-starter-jetcache/pom.xml b/mate-core/mate-starter-jetcache/pom.xml
new file mode 100644
index 000000000..336c6061d
--- /dev/null
+++ b/mate-core/mate-starter-jetcache/pom.xml
@@ -0,0 +1,37 @@
+
+
+
+ mate-core
+ vip.mate
+ 0.8.8
+
+ 4.0.0
+
+ mate-starter-jetcache
+
+
+
+ com.alicp.jetcache
+ jetcache-starter-redis-lettuce
+
+
+
+
+
+
+
+
+
+
+
+
+
+ vip.mate
+ mate-starter-common
+ provided
+
+
+
+
\ No newline at end of file
diff --git a/mate-core/mate-starter-jetcache/src/main/java/vip/mate/core/jetcache/config/JetCacheConfiguration.java b/mate-core/mate-starter-jetcache/src/main/java/vip/mate/core/jetcache/config/JetCacheConfiguration.java
new file mode 100644
index 000000000..feeaa8122
--- /dev/null
+++ b/mate-core/mate-starter-jetcache/src/main/java/vip/mate/core/jetcache/config/JetCacheConfiguration.java
@@ -0,0 +1,69 @@
+package vip.mate.core.jetcache.config;
+
+import com.alicp.jetcache.anno.CacheConsts;
+import com.alicp.jetcache.anno.config.EnableCreateCacheAnnotation;
+import com.alicp.jetcache.anno.config.EnableMethodCache;
+import com.alicp.jetcache.anno.support.GlobalCacheConfig;
+import com.alicp.jetcache.anno.support.SpringConfigProvider;
+import com.alicp.jetcache.embedded.EmbeddedCacheBuilder;
+import com.alicp.jetcache.embedded.LinkedHashMapCacheBuilder;
+import com.alicp.jetcache.redis.lettuce.RedisLettuceCacheBuilder;
+import com.alicp.jetcache.support.FastjsonKeyConvertor;
+import com.alicp.jetcache.support.JavaValueDecoder;
+import com.alicp.jetcache.support.JavaValueEncoder;
+import io.lettuce.core.ClientOptions;
+import io.lettuce.core.RedisClient;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
+import vip.mate.core.common.factory.YamlPropertySourceFactory;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Configuration
+@EnableMethodCache(basePackages = "vip.mate.system")
+@EnableCreateCacheAnnotation
+@PropertySource(factory = YamlPropertySourceFactory.class, value = "classpath:mate-jetcache.yml")
+public class JetCacheConfiguration {
+ @Bean
+ public RedisClient redisClient(){
+ RedisClient client = RedisClient.create("redis://127.0.0.1");
+ client.setOptions(ClientOptions.builder().
+ disconnectedBehavior(ClientOptions.DisconnectedBehavior.REJECT_COMMANDS)
+ .build());
+ return client;
+ }
+
+ @Bean
+ public SpringConfigProvider springConfigProvider() {
+ return new SpringConfigProvider();
+ }
+
+ @Bean
+ public GlobalCacheConfig config(SpringConfigProvider configProvider, RedisClient redisClient){
+ Map localBuilders = new HashMap();
+ EmbeddedCacheBuilder localBuilder = LinkedHashMapCacheBuilder
+ .createLinkedHashMapCacheBuilder()
+ .keyConvertor(FastjsonKeyConvertor.INSTANCE);
+ localBuilders.put(CacheConsts.DEFAULT_AREA, localBuilder);
+
+ Map remoteBuilders = new HashMap();
+ RedisLettuceCacheBuilder remoteCacheBuilder = RedisLettuceCacheBuilder.createRedisLettuceCacheBuilder()
+ .keyConvertor(FastjsonKeyConvertor.INSTANCE)
+ .valueEncoder(JavaValueEncoder.INSTANCE)
+ .valueDecoder(JavaValueDecoder.INSTANCE)
+ .redisClient(redisClient);
+ remoteBuilders.put(CacheConsts.DEFAULT_AREA, remoteCacheBuilder);
+
+ GlobalCacheConfig globalCacheConfig = new GlobalCacheConfig();
+ // globalCacheConfig.setConfigProvider(configProvider);//for jetcache <=2.5
+ globalCacheConfig.setLocalCacheBuilders(localBuilders);
+ globalCacheConfig.setRemoteCacheBuilders(remoteBuilders);
+ globalCacheConfig.setStatIntervalMinutes(15);
+ globalCacheConfig.setAreaInCacheName(false);
+
+ return globalCacheConfig;
+ }
+
+}
diff --git a/mate-core/mate-starter-jetcache/src/main/java/vip/mate/core/jetcache/package-info.java b/mate-core/mate-starter-jetcache/src/main/java/vip/mate/core/jetcache/package-info.java
new file mode 100644
index 000000000..291e21dc3
--- /dev/null
+++ b/mate-core/mate-starter-jetcache/src/main/java/vip/mate/core/jetcache/package-info.java
@@ -0,0 +1 @@
+package vip.mate.core.jetcache;
\ No newline at end of file
diff --git a/mate-core/mate-starter-jetcache/src/main/resources/META-INF/spring.factories b/mate-core/mate-starter-jetcache/src/main/resources/META-INF/spring.factories
new file mode 100644
index 000000000..4c936280e
--- /dev/null
+++ b/mate-core/mate-starter-jetcache/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,4 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+ vip.mate.core.jetcache.config.JetCacheConfiguration
+
+
diff --git a/mate-core/mate-starter-jetcache/src/main/resources/mate-jetcache.yml b/mate-core/mate-starter-jetcache/src/main/resources/mate-jetcache.yml
new file mode 100644
index 000000000..9dd0c778d
--- /dev/null
+++ b/mate-core/mate-starter-jetcache/src/main/resources/mate-jetcache.yml
@@ -0,0 +1,14 @@
+jetcache:
+ statIntervalMinutes: 15
+ areaInCacheName: false
+ local:
+ default:
+ type: linkedhashmap
+ keyConvertor: fastjson
+ remote:
+ default:
+ type: redis.lettuce
+ keyConvertor: fastjson
+ uri: redis://127.0.0.1:6379/
+ #uri: redis-sentinel://127.0.0.1:26379,127.0.0.1:26380,127.0.0.1:26381/?sentinelMasterId=mymaster
+ #readFrom: slavePreferred
\ No newline at end of file
diff --git a/mate-core/pom.xml b/mate-core/pom.xml
index 992663eda..6190278a3 100644
--- a/mate-core/pom.xml
+++ b/mate-core/pom.xml
@@ -19,6 +19,7 @@
mate-starter-feign
mate-starter-auth
mate-starter-rocketmq
+ mate-starter-jetcache
diff --git a/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysDict.java b/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysDict.java
new file mode 100644
index 000000000..33933b698
--- /dev/null
+++ b/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysDict.java
@@ -0,0 +1,82 @@
+package vip.mate.system.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import vip.mate.core.common.entity.MateEntity;
+import java.time.LocalDateTime;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ *
+ * 字典表
+ *
+ *
+ * @author xuzf
+ * @since 2020-07-01
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("mate_sys_dict")
+public class SysDict extends MateEntity {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * 父主键
+ */
+ private Long parentId;
+
+ /**
+ * 字典码
+ */
+ private String code;
+
+ /**
+ * 字典值
+ */
+ private String dictKey;
+
+ /**
+ * 字典名称
+ */
+ private String dictValue;
+
+ /**
+ * 排序
+ */
+ private Integer sort;
+
+ /**
+ * 字典备注
+ */
+ private String remark;
+
+ /**
+ * 创建人
+ */
+ private String createBy;
+
+ /**
+ * 更新人
+ */
+ private String updateBy;
+
+ /**
+ * 创建时间
+ */
+ private LocalDateTime createTime;
+
+ /**
+ * 修改时间
+ */
+ private LocalDateTime updateTime;
+
+ /**
+ * 是否已删除
+ */
+ private Integer isDeleted;
+
+
+}
diff --git a/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysUser.java b/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysUser.java
index b313c2193..ddd3c3f83 100644
--- a/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysUser.java
+++ b/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysUser.java
@@ -91,7 +91,7 @@ public class SysUser extends MateEntity {
/**
* 部门id
*/
- private Long deptId;
+ private Long departId;
/**
* 状态
diff --git a/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysDictProvider.java b/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysDictProvider.java
new file mode 100644
index 000000000..5fc5058ee
--- /dev/null
+++ b/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysDictProvider.java
@@ -0,0 +1,20 @@
+package vip.mate.system.feign;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import vip.mate.core.common.api.Result;
+import vip.mate.core.feign.constant.FeignConstant;
+import vip.mate.system.entity.SysDict;
+
+import java.util.List;
+
+@FeignClient(value = FeignConstant.MATE_CLOUD_SYSTEM)
+public interface ISysDictProvider {
+
+ @GetMapping("/provider/sys-dict/get-value")
+ Result getValue(@RequestParam("code") String code, @RequestParam("dictKey") String dictKey);
+
+ @GetMapping("/provider/sys-dict/get-list")
+ Result> getList(@RequestParam("code") String code);
+}
diff --git a/mate-platform/mate-system-api/src/main/java/vip/mate/system/vo/SysUserVO.java b/mate-platform/mate-system-api/src/main/java/vip/mate/system/vo/SysUserVO.java
new file mode 100644
index 000000000..108760cd5
--- /dev/null
+++ b/mate-platform/mate-system-api/src/main/java/vip/mate/system/vo/SysUserVO.java
@@ -0,0 +1,20 @@
+package vip.mate.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.Data;
+
+@Data
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class SysUserVO {
+
+ private Long id;
+ private String account;
+ private String name;
+ private Long departId;
+ private String telephone;
+ private int status;
+
+ private String departName;
+ private String statusName;
+
+}
diff --git a/mate-platform/mate-system/pom.xml b/mate-platform/mate-system/pom.xml
index 9448d5e62..234fbc2a3 100644
--- a/mate-platform/mate-system/pom.xml
+++ b/mate-platform/mate-system/pom.xml
@@ -37,6 +37,10 @@
vip.mate
mate-starter-auth
+
+ vip.mate
+ mate-starter-jetcache
+
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysDepartController.java b/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysDepartController.java
index 5e436beec..a3afa3b22 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysDepartController.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysDepartController.java
@@ -1,22 +1,28 @@
package vip.mate.system.controller;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.AllArgsConstructor;
import oracle.jdbc.proxy.annotation.Post;
import org.springframework.beans.BeanUtils;
+import org.springframework.data.repository.cdi.Eager;
import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
import vip.mate.core.auth.annotation.EnableToken;
import vip.mate.core.common.api.Result;
import vip.mate.core.web.controller.BaseController;
import vip.mate.core.web.tree.ForestNodeMerger;
import vip.mate.core.web.tree.INode;
+import vip.mate.core.web.util.CollectionUtil;
import vip.mate.system.entity.SysDepart;
+import vip.mate.system.entity.SysMenu;
import vip.mate.system.service.ISysDepartService;
import vip.mate.system.vo.SysDepartVO;
import javax.validation.Valid;
import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -37,14 +43,8 @@ public class SysDepartController extends BaseController {
@EnableToken
@GetMapping("/list")
- public Result> list() {
- List sysDepartList = sysDepartService.list();
- List sysDepartVOS = sysDepartList.stream().map(sysDepart -> {
- SysDepartVO sysDepartVO = new SysDepartVO();
- BeanUtils.copyProperties(sysDepart, sysDepartVO);
- return sysDepartVO;
- }).collect(Collectors.toList());
- return Result.data(ForestNodeMerger.merge(sysDepartVOS));
+ public Result> list(@ApiIgnore @RequestParam Map search) {
+ return Result.data(sysDepartService.searchList(search));
}
@EnableToken
@@ -61,5 +61,22 @@ public Result> saveOrUpdate(@Valid @RequestBody SysDepart sysDepart) {
}
return Result.fail("操作失败");
}
+
+ @EnableToken
+ @GetMapping("/info")
+ public Result> info(SysDepart sysDepart) {
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.in(SysDepart::getId, sysDepart.getId());
+ return Result.data(sysDepartService.getOne(queryWrapper));
+ }
+
+ @EnableToken
+ @PostMapping("/delete")
+ public Result> delete(@RequestParam String ids) {
+ if(sysDepartService.removeByIds(CollectionUtil.stringToCollection(ids))) {
+ return Result.success("删除成功");
+ }
+ return Result.fail("删除失败");
+ }
}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/feign/SysDictProvider.java b/mate-platform/mate-system/src/main/java/vip/mate/system/feign/SysDictProvider.java
new file mode 100644
index 000000000..3bdcf2e61
--- /dev/null
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/feign/SysDictProvider.java
@@ -0,0 +1,28 @@
+package vip.mate.system.feign;
+
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.RestController;
+import vip.mate.core.common.api.Result;
+import vip.mate.system.entity.SysDict;
+import vip.mate.system.service.ISysDictService;
+
+import java.util.List;
+
+@Slf4j
+@RestController
+@AllArgsConstructor
+public class SysDictProvider implements ISysDictProvider {
+
+ private final ISysDictService sysDictService;
+
+ @Override
+ public Result getValue(String code, String dictKey) {
+ return sysDictService.getValue(code, dictKey);
+ }
+
+ @Override
+ public Result> getList(String code) {
+ return sysDictService.getList(code);
+ }
+}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/feign/SysUserProvider.java b/mate-platform/mate-system/src/main/java/vip/mate/system/feign/SysUserProvider.java
index 7c249a5c1..de130f68a 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/feign/SysUserProvider.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/feign/SysUserProvider.java
@@ -14,7 +14,7 @@
@AllArgsConstructor
public class SysUserProvider implements ISysUserProvider {
- private ISysUserService sysUserService;
+ private final ISysUserService sysUserService;
@Override
@GetMapping("/provider/user-info-by-id")
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysDictMapper.java b/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysDictMapper.java
new file mode 100644
index 000000000..2b9e77492
--- /dev/null
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysDictMapper.java
@@ -0,0 +1,16 @@
+package vip.mate.system.mapper;
+
+import vip.mate.system.entity.SysDict;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 字典表 Mapper 接口
+ *
+ *
+ * @author xuzf
+ * @since 2020-07-01
+ */
+public interface SysDictMapper extends BaseMapper {
+
+}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysDictMapper.xml b/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysDictMapper.xml
new file mode 100644
index 000000000..7765bb7a6
--- /dev/null
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysDictMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysDepartService.java b/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysDepartService.java
index 7ef88c79a..9a1751cd3 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysDepartService.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysDepartService.java
@@ -5,6 +5,7 @@
import vip.mate.system.vo.SysDepartVO;
import java.util.List;
+import java.util.Map;
/**
*
@@ -18,4 +19,6 @@ public interface ISysDepartService extends IService {
List tree();
+ List searchList(Map search);
+
}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysDictService.java b/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysDictService.java
new file mode 100644
index 000000000..040cca06f
--- /dev/null
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysDictService.java
@@ -0,0 +1,26 @@
+package vip.mate.system.service;
+
+import com.alicp.jetcache.anno.Cached;
+import vip.mate.core.common.api.Result;
+import vip.mate.system.entity.SysDict;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ *
+ * 字典表 服务类
+ *
+ *
+ * @author xuzf
+ * @since 2020-07-01
+ */
+public interface ISysDictService extends IService {
+
+ @Cached(name="sysDictService.getValue", expire = 3600)
+ Result getValue(String code, String dictKey);
+
+ @Cached(name="sysDictService.getList", expire = 3600)
+ Result> getList(String code);
+
+}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysDepartServiceImpl.java b/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysDepartServiceImpl.java
index 2fc1b66b4..4b9759129 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysDepartServiceImpl.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysDepartServiceImpl.java
@@ -1,6 +1,12 @@
package vip.mate.system.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.BeanUtils;
+import vip.mate.core.common.api.Result;
+import vip.mate.core.web.tree.ForestNodeMerger;
import vip.mate.system.entity.SysDepart;
+import vip.mate.system.entity.SysMenu;
import vip.mate.system.mapper.SysDepartMapper;
import vip.mate.system.service.ISysDepartService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -8,6 +14,8 @@
import vip.mate.system.vo.SysDepartVO;
import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
*
@@ -24,4 +32,27 @@ public class SysDepartServiceImpl extends ServiceImpl tree() {
return baseMapper.tree();
}
+
+ @Override
+ public List searchList(Map search) {
+ String keyword = String.valueOf(search.get("keyword"));
+ String startDate = String.valueOf(search.get("startDate"));
+ String endDate = String.valueOf(search.get("endDate"));
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ if (StringUtils.isNotBlank(startDate) && !startDate.equals("null")) {
+ lambdaQueryWrapper.between(SysDepart::getCreateTime, startDate, endDate);
+ }
+ if (StringUtils.isNotBlank(keyword) && !keyword.equals("null")) {
+ lambdaQueryWrapper.like(SysDepart::getName, keyword);
+ lambdaQueryWrapper.or();
+ lambdaQueryWrapper.like(SysDepart::getId, keyword);
+ }
+ List sysDeparts = this.baseMapper.selectList(lambdaQueryWrapper);
+ List sysDepartVOS = sysDeparts.stream().map(sysDepart -> {
+ SysDepartVO sysDepartVO = new SysDepartVO();
+ BeanUtils.copyProperties(sysDepart, sysDepartVO);
+ return sysDepartVO;
+ }).collect(Collectors.toList());
+ return ForestNodeMerger.merge(sysDepartVOS);
+ }
}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysDictServiceImpl.java b/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysDictServiceImpl.java
new file mode 100644
index 000000000..3b92c7b11
--- /dev/null
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysDictServiceImpl.java
@@ -0,0 +1,38 @@
+package vip.mate.system.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import vip.mate.core.common.api.Result;
+import vip.mate.system.entity.SysDict;
+import vip.mate.system.mapper.SysDictMapper;
+import vip.mate.system.service.ISysDictService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ *
+ * 字典表 服务实现类
+ *
+ *
+ * @author xuzf
+ * @since 2020-07-01
+ */
+@Service
+public class SysDictServiceImpl extends ServiceImpl implements ISysDictService {
+
+ @Override
+ public Result getValue(String code, String dictKey) {
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.eq(SysDict::getCode, code);
+ lambdaQueryWrapper.eq(SysDict::getDictKey, dictKey);
+ return Result.data(baseMapper.selectOne(lambdaQueryWrapper).getDictValue());
+ }
+
+ @Override
+ public Result> getList(String code) {
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.eq(SysDict::getCode, code);
+ return Result.data(baseMapper.selectList(lambdaQueryWrapper));
+ }
+}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysMenuServiceImpl.java b/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysMenuServiceImpl.java
index d22177ae3..ce98f354d 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysMenuServiceImpl.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysMenuServiceImpl.java
@@ -59,7 +59,6 @@ public List searchList(Map search) {
lambdaQueryWrapper.or();
lambdaQueryWrapper.like(SysMenu::getId, keyword);
}
-// lambdaQueryWrapper.eq(SysMenu::getStatus, "0");
return this.baseMapper.selectList(lambdaQueryWrapper);
}
diff --git a/mate-platform/mate-system/src/main/resources/application-local.yml b/mate-platform/mate-system/src/main/resources/application-local.yml
index 4e4638ed1..27e344fcf 100644
--- a/mate-platform/mate-system/src/main/resources/application-local.yml
+++ b/mate-platform/mate-system/src/main/resources/application-local.yml
@@ -23,4 +23,10 @@ dubbo:
# The Spring Cloud Dubbo's registry extension
address: spring-cloud://localhost
# The traditional Dubbo's registry
-# address: nacos://127.0.0.1:8848
\ No newline at end of file
+# address: nacos://127.0.0.1:8848
+jetcache:
+ remote:
+ default:
+ type: redis.lettuce
+ keyConvertor: fastjson
+ uri: redis://127.0.0.1:6379/
\ No newline at end of file
diff --git a/src/main/java/vip/mate/system/controller/SysDictController.java b/src/main/java/vip/mate/system/controller/SysDictController.java
new file mode 100644
index 000000000..a4f976ff7
--- /dev/null
+++ b/src/main/java/vip/mate/system/controller/SysDictController.java
@@ -0,0 +1,22 @@
+package vip.mate.system.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+import vip.mate.core.web.controller.BaseController;
+
+/**
+ *
+ * 字典表 前端控制器
+ *
+ *
+ * @author xuzf
+ * @since 2020-07-01
+ */
+@RestController
+@RequestMapping("/sys-dict")
+public class SysDictController extends BaseController {
+
+}
+
diff --git a/src/main/java/vip/mate/system/entity/SysDict.java b/src/main/java/vip/mate/system/entity/SysDict.java
new file mode 100644
index 000000000..33933b698
--- /dev/null
+++ b/src/main/java/vip/mate/system/entity/SysDict.java
@@ -0,0 +1,82 @@
+package vip.mate.system.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import vip.mate.core.common.entity.MateEntity;
+import java.time.LocalDateTime;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ *
+ * 字典表
+ *
+ *
+ * @author xuzf
+ * @since 2020-07-01
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("mate_sys_dict")
+public class SysDict extends MateEntity {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * 父主键
+ */
+ private Long parentId;
+
+ /**
+ * 字典码
+ */
+ private String code;
+
+ /**
+ * 字典值
+ */
+ private String dictKey;
+
+ /**
+ * 字典名称
+ */
+ private String dictValue;
+
+ /**
+ * 排序
+ */
+ private Integer sort;
+
+ /**
+ * 字典备注
+ */
+ private String remark;
+
+ /**
+ * 创建人
+ */
+ private String createBy;
+
+ /**
+ * 更新人
+ */
+ private String updateBy;
+
+ /**
+ * 创建时间
+ */
+ private LocalDateTime createTime;
+
+ /**
+ * 修改时间
+ */
+ private LocalDateTime updateTime;
+
+ /**
+ * 是否已删除
+ */
+ private Integer isDeleted;
+
+
+}
diff --git a/src/main/java/vip/mate/system/mapper/SysDictMapper.java b/src/main/java/vip/mate/system/mapper/SysDictMapper.java
new file mode 100644
index 000000000..2b9e77492
--- /dev/null
+++ b/src/main/java/vip/mate/system/mapper/SysDictMapper.java
@@ -0,0 +1,16 @@
+package vip.mate.system.mapper;
+
+import vip.mate.system.entity.SysDict;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * 字典表 Mapper 接口
+ *
+ *
+ * @author xuzf
+ * @since 2020-07-01
+ */
+public interface SysDictMapper extends BaseMapper {
+
+}
diff --git a/src/main/java/vip/mate/system/service/ISysDictService.java b/src/main/java/vip/mate/system/service/ISysDictService.java
new file mode 100644
index 000000000..2004ed360
--- /dev/null
+++ b/src/main/java/vip/mate/system/service/ISysDictService.java
@@ -0,0 +1,16 @@
+package vip.mate.system.service;
+
+import vip.mate.system.entity.SysDict;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *
+ * 字典表 服务类
+ *
+ *
+ * @author xuzf
+ * @since 2020-07-01
+ */
+public interface ISysDictService extends IService {
+
+}
diff --git a/src/main/java/vip/mate/system/service/impl/SysDictServiceImpl.java b/src/main/java/vip/mate/system/service/impl/SysDictServiceImpl.java
new file mode 100644
index 000000000..4bf4a31d8
--- /dev/null
+++ b/src/main/java/vip/mate/system/service/impl/SysDictServiceImpl.java
@@ -0,0 +1,20 @@
+package vip.mate.system.service.impl;
+
+import vip.mate.system.entity.SysDict;
+import vip.mate.system.mapper.SysDictMapper;
+import vip.mate.system.service.ISysDictService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ * 字典表 服务实现类
+ *
+ *
+ * @author xuzf
+ * @since 2020-07-01
+ */
+@Service
+public class SysDictServiceImpl extends ServiceImpl implements ISysDictService {
+
+}
diff --git a/src/main/resources/mapper/SysDictMapper.xml b/src/main/resources/mapper/SysDictMapper.xml
new file mode 100644
index 000000000..7765bb7a6
--- /dev/null
+++ b/src/main/resources/mapper/SysDictMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
From 7e327ce0193d283c71549eca3b38f1f45201a9f0 Mon Sep 17 00:00:00 2001
From: xuzhanfu <7357288@qq.com>
Date: Wed, 1 Jul 2020 19:58:58 +0800
Subject: [PATCH 060/802] =?UTF-8?q?=E5=88=A0=E9=99=A4=E7=94=9F=E6=88=90?=
=?UTF-8?q?=E7=9A=84=E5=B7=A5=E5=85=B7=E7=B1=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../system/controller/SysDictController.java | 22 -----
.../java/vip/mate/system/entity/SysDict.java | 82 -------------------
.../vip/mate/system/mapper/SysDictMapper.java | 16 ----
.../mate/system/service/ISysDictService.java | 16 ----
.../service/impl/SysDictServiceImpl.java | 20 -----
src/main/resources/mapper/SysDictMapper.xml | 5 --
6 files changed, 161 deletions(-)
delete mode 100644 src/main/java/vip/mate/system/controller/SysDictController.java
delete mode 100644 src/main/java/vip/mate/system/entity/SysDict.java
delete mode 100644 src/main/java/vip/mate/system/mapper/SysDictMapper.java
delete mode 100644 src/main/java/vip/mate/system/service/ISysDictService.java
delete mode 100644 src/main/java/vip/mate/system/service/impl/SysDictServiceImpl.java
delete mode 100644 src/main/resources/mapper/SysDictMapper.xml
diff --git a/src/main/java/vip/mate/system/controller/SysDictController.java b/src/main/java/vip/mate/system/controller/SysDictController.java
deleted file mode 100644
index a4f976ff7..000000000
--- a/src/main/java/vip/mate/system/controller/SysDictController.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package vip.mate.system.controller;
-
-
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
-import vip.mate.core.web.controller.BaseController;
-
-/**
- *
- * 字典表 前端控制器
- *
- *
- * @author xuzf
- * @since 2020-07-01
- */
-@RestController
-@RequestMapping("/sys-dict")
-public class SysDictController extends BaseController {
-
-}
-
diff --git a/src/main/java/vip/mate/system/entity/SysDict.java b/src/main/java/vip/mate/system/entity/SysDict.java
deleted file mode 100644
index 33933b698..000000000
--- a/src/main/java/vip/mate/system/entity/SysDict.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package vip.mate.system.entity;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-import vip.mate.core.common.entity.MateEntity;
-import java.time.LocalDateTime;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- *
- * 字典表
- *
- *
- * @author xuzf
- * @since 2020-07-01
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Accessors(chain = true)
-@TableName("mate_sys_dict")
-public class SysDict extends MateEntity {
-
- private static final long serialVersionUID=1L;
-
- /**
- * 父主键
- */
- private Long parentId;
-
- /**
- * 字典码
- */
- private String code;
-
- /**
- * 字典值
- */
- private String dictKey;
-
- /**
- * 字典名称
- */
- private String dictValue;
-
- /**
- * 排序
- */
- private Integer sort;
-
- /**
- * 字典备注
- */
- private String remark;
-
- /**
- * 创建人
- */
- private String createBy;
-
- /**
- * 更新人
- */
- private String updateBy;
-
- /**
- * 创建时间
- */
- private LocalDateTime createTime;
-
- /**
- * 修改时间
- */
- private LocalDateTime updateTime;
-
- /**
- * 是否已删除
- */
- private Integer isDeleted;
-
-
-}
diff --git a/src/main/java/vip/mate/system/mapper/SysDictMapper.java b/src/main/java/vip/mate/system/mapper/SysDictMapper.java
deleted file mode 100644
index 2b9e77492..000000000
--- a/src/main/java/vip/mate/system/mapper/SysDictMapper.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package vip.mate.system.mapper;
-
-import vip.mate.system.entity.SysDict;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- *
- * 字典表 Mapper 接口
- *
- *
- * @author xuzf
- * @since 2020-07-01
- */
-public interface SysDictMapper extends BaseMapper {
-
-}
diff --git a/src/main/java/vip/mate/system/service/ISysDictService.java b/src/main/java/vip/mate/system/service/ISysDictService.java
deleted file mode 100644
index 2004ed360..000000000
--- a/src/main/java/vip/mate/system/service/ISysDictService.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package vip.mate.system.service;
-
-import vip.mate.system.entity.SysDict;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- *
- * 字典表 服务类
- *
- *
- * @author xuzf
- * @since 2020-07-01
- */
-public interface ISysDictService extends IService {
-
-}
diff --git a/src/main/java/vip/mate/system/service/impl/SysDictServiceImpl.java b/src/main/java/vip/mate/system/service/impl/SysDictServiceImpl.java
deleted file mode 100644
index 4bf4a31d8..000000000
--- a/src/main/java/vip/mate/system/service/impl/SysDictServiceImpl.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package vip.mate.system.service.impl;
-
-import vip.mate.system.entity.SysDict;
-import vip.mate.system.mapper.SysDictMapper;
-import vip.mate.system.service.ISysDictService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- *
- * 字典表 服务实现类
- *
- *
- * @author xuzf
- * @since 2020-07-01
- */
-@Service
-public class SysDictServiceImpl extends ServiceImpl implements ISysDictService {
-
-}
diff --git a/src/main/resources/mapper/SysDictMapper.xml b/src/main/resources/mapper/SysDictMapper.xml
deleted file mode 100644
index 7765bb7a6..000000000
--- a/src/main/resources/mapper/SysDictMapper.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
From 188b475951bb55d48faf97a455f4d2768340e3d1 Mon Sep 17 00:00:00 2001
From: xuzhanfu <7357288@qq.com>
Date: Thu, 2 Jul 2020 08:03:19 +0800
Subject: [PATCH 061/802] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86?=
=?UTF-8?q?=E5=92=8C=E8=A7=92=E8=89=B2=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?=
=?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../core/security/userdetails/MateUser.java | 6 +--
.../java/vip/mate/system/dto/SysMenuDTO.java | 29 +++++++++--
.../java/vip/mate/system/entity/SysUser.java | 6 +++
.../system/controller/SysMenuController.java | 13 ++++-
.../system/controller/SysRoleController.java | 32 +++++++++++--
.../system/controller/SysUserController.java | 5 +-
.../mate/system/service/ISysUserService.java | 9 +++-
.../service/impl/SysUserServiceImpl.java | 48 +++++++++++++++++++
.../service/impl/UserDetailsServiceImpl.java | 2 +-
9 files changed, 134 insertions(+), 16 deletions(-)
diff --git a/mate-core/mate-starter-security/src/main/java/vip/mate/core/security/userdetails/MateUser.java b/mate-core/mate-starter-security/src/main/java/vip/mate/core/security/userdetails/MateUser.java
index 88abc4207..74d58fc26 100644
--- a/mate-core/mate-starter-security/src/main/java/vip/mate/core/security/userdetails/MateUser.java
+++ b/mate-core/mate-starter-security/src/main/java/vip/mate/core/security/userdetails/MateUser.java
@@ -19,7 +19,7 @@ public class MateUser extends User {
* 部门ID
*/
@Getter
- private Long deptId;
+ private Long departId;
/**
* 手机号
@@ -39,10 +39,10 @@ public class MateUser extends User {
@Getter
private String tenantId;
- public MateUser(Long id, Long deptId, String phone, String avatar, String tenantId, String username, String password, boolean enabled, boolean accountNonExpired, boolean credentialsNonExpired, boolean accountNonLocked, Collection extends GrantedAuthority> authorities) {
+ public MateUser(Long id, Long departId, String phone, String avatar, String tenantId, String username, String password, boolean enabled, boolean accountNonExpired, boolean credentialsNonExpired, boolean accountNonLocked, Collection extends GrantedAuthority> authorities) {
super(username, password, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities);
this.id = id;
- this.deptId = deptId;
+ this.departId = departId;
this.phone = phone;
this.avatar = avatar;
this.tenantId = tenantId;
diff --git a/mate-platform/mate-system-api/src/main/java/vip/mate/system/dto/SysMenuDTO.java b/mate-platform/mate-system-api/src/main/java/vip/mate/system/dto/SysMenuDTO.java
index 4f82405d7..dee5a388b 100644
--- a/mate-platform/mate-system-api/src/main/java/vip/mate/system/dto/SysMenuDTO.java
+++ b/mate-platform/mate-system-api/src/main/java/vip/mate/system/dto/SysMenuDTO.java
@@ -1,15 +1,38 @@
package vip.mate.system.dto;
+import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
+import vip.mate.core.web.tree.INode;
+import vip.mate.system.entity.SysMenu;
import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
@Data
-public class SysMenuDTO implements Serializable {
+public class SysMenuDTO extends SysMenu implements INode {
private static final long serialVersionUID = -7053157666510171528L;
- private Long id;
-
private String label;
+
+ /**
+ * 子孙节点
+ */
+ @JsonInclude(JsonInclude.Include.NON_EMPTY)
+ private List children;
+
+ /**
+ * 是否有子孙节点
+ */
+ @JsonInclude(JsonInclude.Include.NON_EMPTY)
+ private Boolean hasChildren;
+
+ @Override
+ public List getChildren() {
+ if (this.children == null) {
+ this.children = new ArrayList<>();
+ }
+ return this.children;
+ }
}
diff --git a/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysUser.java b/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysUser.java
index ddd3c3f83..7c19fe138 100644
--- a/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysUser.java
+++ b/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysUser.java
@@ -1,5 +1,6 @@
package vip.mate.system.entity;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
@@ -123,5 +124,10 @@ public class SysUser extends MateEntity {
*/
private String isDeleted;
+ @TableField(exist = false)
+ private String departName;
+ @TableField(exist = false)
+ private String statusName;
+
}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysMenuController.java b/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysMenuController.java
index fe8a34a09..4e51e2d6c 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysMenuController.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysMenuController.java
@@ -9,7 +9,9 @@
import vip.mate.core.common.api.Result;
import vip.mate.core.common.constant.MateConstant;
import vip.mate.core.web.controller.BaseController;
+import vip.mate.core.web.tree.ForestNodeMerger;
import vip.mate.core.web.util.CollectionUtil;
+import vip.mate.system.dto.SysMenuDTO;
import vip.mate.system.entity.SysMenu;
import vip.mate.system.service.ISysMenuService;
import vip.mate.system.util.TreeUtil;
@@ -18,6 +20,7 @@
import java.util.Collection;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
/**
*
@@ -46,7 +49,15 @@ public Result> list(@ApiIgnore @RequestParam Map search) {
@GetMapping("/asyncList")
public Result> asyncList(){
- return Result.data(TreeUtil.list2Tree(sysMenuService.list(), MateConstant.TREE_ROOT));
+ List sysMenus = sysMenuService.list();
+ List sysMenuDTOS = sysMenus.stream().map(sysMenu -> {
+ SysMenuDTO sysMenuDTO = new SysMenuDTO();
+ sysMenuDTO.setId(sysMenu.getId());
+ sysMenuDTO.setLabel(sysMenu.getName());
+ sysMenuDTO.setParentId(sysMenu.getParentId());
+ return sysMenuDTO;
+ }).collect(Collectors.toList());
+ return Result.data(ForestNodeMerger.merge(sysMenuDTOS));
}
@PostMapping("/saveOrUpdate")
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysRoleController.java b/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysRoleController.java
index df82c9edd..3e006c359 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysRoleController.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysRoleController.java
@@ -1,15 +1,19 @@
package vip.mate.system.controller;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.*;
-import org.springframework.web.bind.annotation.RestController;
import vip.mate.core.common.api.Result;
import vip.mate.core.web.controller.BaseController;
+import vip.mate.core.web.util.CollectionUtil;
+import vip.mate.system.entity.SysRole;
+import vip.mate.system.entity.SysUser;
import vip.mate.system.service.ISysRoleService;
+import javax.validation.Valid;
+
/**
*
* 角色表 前端控制器
@@ -30,5 +34,27 @@ public Result> list(){
return Result.data(sysRoleService.list());
}
+ @PostMapping("/saveOrUpdate")
+ public Result> saveOrUpdate(@Valid @RequestBody SysRole sysRole) {
+ if (sysRoleService.saveOrUpdate(sysRole)) {
+ return Result.success("操作成功");
+ }
+ return Result.fail("操作失败");
+ }
+
+ @GetMapping("/info")
+ public Result> info(SysRole sysRole) {
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.in(SysRole::getId, sysRole.getId());
+ return Result.data(sysRoleService.getOne(lambdaQueryWrapper));
+ }
+
+ @PostMapping("/delete")
+ public Result> delete(@RequestParam String ids) {
+ if (sysRoleService.removeByIds(CollectionUtil.stringToCollection(ids))){
+ return Result.success("删除成功");
+ }
+ return Result.fail("删除失败");
+ }
}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysUserController.java b/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysUserController.java
index d0253dc76..d1b0fc208 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysUserController.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysUserController.java
@@ -34,10 +34,7 @@ public class SysUserController extends BaseController {
@GetMapping("/list")
public Result> list(@RequestParam Map query) {
- long current = CollectionUtil.strToLong(query.get("current"), 0L);
- long size = CollectionUtil.strToLong(query.get("size"), 0L);
- IPage page = new Page<>(current, size);
- return Result.data(sysUserService.page(page));
+ return Result.data(sysUserService.listPage(query));
}
@PostMapping("/saveOrUpdate")
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysUserService.java b/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysUserService.java
index 296b7feae..587bedaaa 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysUserService.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysUserService.java
@@ -1,7 +1,12 @@
package vip.mate.system.service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
import vip.mate.system.entity.SysUser;
import com.baomidou.mybatisplus.extension.service.IService;
+import vip.mate.system.vo.SysUserVO;
+
+import java.util.List;
+import java.util.Map;
/**
*
@@ -13,6 +18,8 @@
*/
public interface ISysUserService extends IService {
- public boolean status(String ids, String status);
+ boolean status(String ids, String status);
+
+ IPage listPage(Map query);
}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysUserServiceImpl.java b/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysUserServiceImpl.java
index b46de8c25..2bb8d736d 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysUserServiceImpl.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysUserServiceImpl.java
@@ -1,14 +1,27 @@
package vip.mate.system.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.AllArgsConstructor;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.BeanUtils;
import vip.mate.core.web.util.CollectionUtil;
+import vip.mate.system.entity.SysMenu;
import vip.mate.system.entity.SysUser;
import vip.mate.system.mapper.SysUserMapper;
+import vip.mate.system.service.ISysDepartService;
+import vip.mate.system.service.ISysDictService;
import vip.mate.system.service.ISysUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
+import vip.mate.system.vo.SysUserVO;
import java.io.Serializable;
import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
*
@@ -19,8 +32,12 @@
* @since 2020-06-18
*/
@Service
+@AllArgsConstructor
public class SysUserServiceImpl extends ServiceImpl implements ISysUserService {
+ private final ISysDepartService sysDepartService;
+ private final ISysDictService dictService;
+
@Override
public boolean status(String ids, String status) {
Collection extends Serializable> collection = CollectionUtil.stringToCollection(ids);
@@ -32,4 +49,35 @@ public boolean status(String ids, String status) {
}
return true;
}
+
+ @Override
+ public IPage listPage(Map query) {
+ long current = CollectionUtil.strToLong(query.get("current"), 0L);
+ long size = CollectionUtil.strToLong(query.get("size"), 0L);
+ IPage page = new Page<>(current, size);
+
+ String keyword = String.valueOf(query.get("keyword"));
+ String startDate = String.valueOf(query.get("startDate"));
+ String endDate = String.valueOf(query.get("endDate"));
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ if (StringUtils.isNotBlank(startDate) && !startDate.equals("null")) {
+ lambdaQueryWrapper.between(SysUser::getCreateTime, startDate, endDate);
+ }
+ if (StringUtils.isNotBlank(keyword) && !keyword.equals("null")) {
+ lambdaQueryWrapper.like(SysUser::getName, keyword);
+ lambdaQueryWrapper.or();
+ lambdaQueryWrapper.like(SysUser::getId, keyword);
+ }
+ IPage sysUserIPage = this.baseMapper.selectPage(page, lambdaQueryWrapper);
+ List sysUserList = sysUserIPage.getRecords().stream().map(sysUser -> {
+ sysUser.setDepartName(sysDepartService.getById(sysUser.getDepartId()).getName());
+ sysUser.setStatusName(dictService.getValue("status", sysUser.getStatus()).getData());
+ return sysUser;
+ }).collect(Collectors.toList());
+ sysUserIPage.setRecords(sysUserList);
+
+ return sysUserIPage;
+ }
+
+
}
diff --git a/mate-uaa/src/main/java/vip/mate/oauth/service/impl/UserDetailsServiceImpl.java b/mate-uaa/src/main/java/vip/mate/oauth/service/impl/UserDetailsServiceImpl.java
index fc9ef40da..f657fc1b4 100644
--- a/mate-uaa/src/main/java/vip/mate/oauth/service/impl/UserDetailsServiceImpl.java
+++ b/mate-uaa/src/main/java/vip/mate/oauth/service/impl/UserDetailsServiceImpl.java
@@ -24,7 +24,7 @@ public UserDetails loadUserByUsername(String userName) throws UsernameNotFoundEx
SysUser user = sysUserProvider.loadUserByUserName(userName).getData();
log.info("用户名:{}", userName);
- return new MateUser(user.getId(), user.getDeptId(), user.getTelephone(), user.getAvatar(),
+ return new MateUser(user.getId(), user.getDepartId(), user.getTelephone(), user.getAvatar(),
user.getTenantId(), user.getAccount(), user.getPassword(), user.getStatus().equals("0")?true:false,
true, true, true,
AuthorityUtils.commaSeparatedStringToAuthorityList("admin, ROLE_USER"));
From 69d94e77d75be185b465a7a49da2011568d8b947 Mon Sep 17 00:00:00 2001
From: pangu <7333791@qq.com>
Date: Thu, 2 Jul 2020 12:32:29 +0800
Subject: [PATCH 062/802] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=A7=92=E8=89=B2?=
=?UTF-8?q?=E6=9D=83=E9=99=90=E7=AE=A1=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
mate-core/mate-starter-jetcache/pom.xml | 11 ------
.../mate/system/entity/SysRolePermission.java | 36 +++++++++++++++++++
.../system/controller/SysRoleController.java | 22 ++++++++++++
.../mapper/SysRolePermissionMapper.java | 16 +++++++++
.../system/mapper/SysRolePermissionMapper.xml | 5 +++
.../system/service/ISysDepartService.java | 2 ++
.../mate/system/service/ISysMenuService.java | 2 ++
.../service/ISysRolePermissionService.java | 16 +++++++++
.../impl/SysRolePermissionServiceImpl.java | 20 +++++++++++
9 files changed, 119 insertions(+), 11 deletions(-)
create mode 100644 mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysRolePermission.java
create mode 100644 mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysRolePermissionMapper.java
create mode 100644 mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysRolePermissionMapper.xml
create mode 100644 mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysRolePermissionService.java
create mode 100644 mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysRolePermissionServiceImpl.java
diff --git a/mate-core/mate-starter-jetcache/pom.xml b/mate-core/mate-starter-jetcache/pom.xml
index 336c6061d..82022cad1 100644
--- a/mate-core/mate-starter-jetcache/pom.xml
+++ b/mate-core/mate-starter-jetcache/pom.xml
@@ -15,18 +15,7 @@
com.alicp.jetcache
jetcache-starter-redis-lettuce
-
-
-
-
-
-
-
-
-
-
-
vip.mate
mate-starter-common
diff --git a/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysRolePermission.java b/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysRolePermission.java
new file mode 100644
index 000000000..b07ca317c
--- /dev/null
+++ b/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysRolePermission.java
@@ -0,0 +1,36 @@
+package vip.mate.system.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import vip.mate.core.common.entity.MateEntity;
+
+/**
+ *
+ * 角色权限表
+ *
+ *
+ * @author xuzf
+ * @since 2020-07-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("mate_sys_role_permission")
+public class SysRolePermission extends MateEntity {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * 菜单id
+ */
+ private Long menuId;
+
+ /**
+ * 角色id
+ */
+ private Long roleId;
+
+
+}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysRoleController.java b/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysRoleController.java
index 3e006c359..2bfe3577c 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysRoleController.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysRoleController.java
@@ -2,17 +2,26 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import io.jsonwebtoken.lang.Collections;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import vip.mate.core.common.api.Result;
import vip.mate.core.web.controller.BaseController;
import vip.mate.core.web.util.CollectionUtil;
+import vip.mate.system.dto.SysMenuDTO;
import vip.mate.system.entity.SysRole;
+import vip.mate.system.entity.SysRolePermission;
import vip.mate.system.entity.SysUser;
+import vip.mate.system.service.ISysRolePermissionService;
import vip.mate.system.service.ISysRoleService;
import javax.validation.Valid;
+import java.lang.reflect.Array;
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
/**
*
@@ -28,6 +37,7 @@
public class SysRoleController extends BaseController {
private final ISysRoleService sysRoleService;
+ private final ISysRolePermissionService sysRolePermissionService;
@GetMapping("/list")
public Result> list(){
@@ -56,5 +66,17 @@ public Result> delete(@RequestParam String ids) {
}
return Result.fail("删除失败");
}
+
+ @GetMapping("/getPermission")
+ public Result> getPermission(@RequestParam String id) {
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.eq(SysRolePermission::getRoleId, id);
+ List sysRolePermissions = sysRolePermissionService.list(lambdaQueryWrapper);
+ List list = sysRolePermissions.stream().map(sysRolePermission -> {
+ long menuId = sysRolePermission.getMenuId();
+ return menuId;
+ }).collect(Collectors.toList());
+ return Result.data(list);
+ }
}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysRolePermissionMapper.java b/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysRolePermissionMapper.java
new file mode 100644
index 000000000..3f679d3c9
--- /dev/null
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysRolePermissionMapper.java
@@ -0,0 +1,16 @@
+package vip.mate.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import vip.mate.system.entity.SysRolePermission;
+
+/**
+ *
+ * 角色权限表 Mapper 接口
+ *
+ *
+ * @author xuzf
+ * @since 2020-07-02
+ */
+public interface SysRolePermissionMapper extends BaseMapper {
+
+}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysRolePermissionMapper.xml b/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysRolePermissionMapper.xml
new file mode 100644
index 000000000..e9bf60e8b
--- /dev/null
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysRolePermissionMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysDepartService.java b/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysDepartService.java
index 9a1751cd3..5930c7320 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysDepartService.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysDepartService.java
@@ -1,5 +1,6 @@
package vip.mate.system.service;
+import com.alicp.jetcache.anno.Cached;
import vip.mate.system.entity.SysDepart;
import com.baomidou.mybatisplus.extension.service.IService;
import vip.mate.system.vo.SysDepartVO;
@@ -17,6 +18,7 @@
*/
public interface ISysDepartService extends IService {
+ @Cached(name="sysDepartService.tree", expire = 3600)
List tree();
List searchList(Map search);
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysMenuService.java b/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysMenuService.java
index 7820a47c3..ecdc13ad6 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysMenuService.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysMenuService.java
@@ -1,5 +1,6 @@
package vip.mate.system.service;
+import com.alicp.jetcache.anno.Cached;
import vip.mate.system.entity.SysMenu;
import com.baomidou.mybatisplus.extension.service.IService;
import vip.mate.system.vo.SysMenuVO;
@@ -17,6 +18,7 @@
*/
public interface ISysMenuService extends IService {
+ @Cached(name="sysMenuService.routes", expire = 3600)
List routes();
List searchList(Map search);
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysRolePermissionService.java b/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysRolePermissionService.java
new file mode 100644
index 000000000..8e0ad77af
--- /dev/null
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysRolePermissionService.java
@@ -0,0 +1,16 @@
+package vip.mate.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import vip.mate.system.entity.SysRolePermission;
+
+/**
+ *
+ * 角色权限表 服务类
+ *
+ *
+ * @author xuzf
+ * @since 2020-07-02
+ */
+public interface ISysRolePermissionService extends IService {
+
+}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysRolePermissionServiceImpl.java b/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysRolePermissionServiceImpl.java
new file mode 100644
index 000000000..77d7f0986
--- /dev/null
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysRolePermissionServiceImpl.java
@@ -0,0 +1,20 @@
+package vip.mate.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import vip.mate.system.entity.SysRolePermission;
+import vip.mate.system.mapper.SysRolePermissionMapper;
+import vip.mate.system.service.ISysRolePermissionService;
+
+/**
+ *
+ * 角色权限表 服务实现类
+ *
+ *
+ * @author xuzf
+ * @since 2020-07-02
+ */
+@Service
+public class SysRolePermissionServiceImpl extends ServiceImpl implements ISysRolePermissionService {
+
+}
From 6c2040d10b18011a597ba39065f68e695bdc76de Mon Sep 17 00:00:00 2001
From: pangu <7333791@qq.com>
Date: Thu, 2 Jul 2020 18:39:40 +0800
Subject: [PATCH 063/802] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=A7=92=E8=89=B2?=
=?UTF-8?q?=E6=9D=83=E9=99=90=E5=AD=98=E5=82=A8=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../mate/system/entity/SysRolePermission.java | 10 ++++++++++
.../system/controller/SysRoleController.java | 18 ++++++++++++++++++
2 files changed, 28 insertions(+)
diff --git a/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysRolePermission.java b/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysRolePermission.java
index b07ca317c..61e278b65 100644
--- a/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysRolePermission.java
+++ b/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysRolePermission.java
@@ -1,6 +1,9 @@
package vip.mate.system.entity;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
@@ -22,6 +25,13 @@ public class SysRolePermission extends MateEntity {
private static final long serialVersionUID=1L;
+ /**
+ * 主键 ID
+ */
+ @JsonSerialize(using = ToStringSerializer.class)
+ @ApiModelProperty(value = "主键")
+ private Long id;
+
/**
* 菜单id
*/
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysRoleController.java b/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysRoleController.java
index 2bfe3577c..a2c187f82 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysRoleController.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysRoleController.java
@@ -20,6 +20,7 @@
import javax.validation.Valid;
import java.lang.reflect.Array;
import java.util.Collection;
+import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;
@@ -78,5 +79,22 @@ public Result> getPermission(@RequestParam String id) {
}).collect(Collectors.toList());
return Result.data(list);
}
+
+ @PostMapping("/savePermission")
+ public Result> savePermission(@RequestParam String roleId, @RequestParam String ids) {
+ Collection longs = CollectionUtil.stringToCollection(ids);
+ long roleIdc = CollectionUtil.strToLong(roleId, 0L);
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.eq(SysRolePermission::getRoleId, roleIdc);
+ sysRolePermissionService.remove(lambdaQueryWrapper);
+ for (Iterator it = longs.iterator(); it.hasNext();) {
+ SysRolePermission sysRolePermission = new SysRolePermission();
+ long menuId = it.next();
+ sysRolePermission.setMenuId(menuId);
+ sysRolePermission.setRoleId(roleIdc);
+ sysRolePermissionService.saveOrUpdate(sysRolePermission);
+ }
+ return Result.data("操作成功");
+ }
}
From 1f04c39713656d5c330cceca6bc407e1d81b54f9 Mon Sep 17 00:00:00 2001
From: pangu <7333791@qq.com>
Date: Thu, 2 Jul 2020 23:32:29 +0800
Subject: [PATCH 064/802] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=9F=A5=E8=AF=A2?=
=?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=E4=B8=BAfeign=E8=B0=83?=
=?UTF-8?q?=E7=94=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../mate/core/auth/service/TokenService.java | 3 +--
.../auth/service/impl/TokenServiceImpl.java | 16 +++++++------
.../core/common/util/HttpContextUtil.java | 24 +++++++++++++++++++
.../src/main/resources/bootstrap.yml | 2 ++
.../java/vip/mate/system/entity/SysUser.java | 2 ++
.../mate/system/feign/ISysDictProvider.java | 1 +
.../mate/system/feign/ISysUserProvider.java | 6 +++++
.../java/vip/mate/system/vo/SysRoleVO.java | 16 +++++++++++++
mate-platform/mate-system/pom.xml | 8 +++----
.../system/controller/SysRoleController.java | 5 ++++
.../mate/system/feign/SysUserProvider.java | 17 +++++++++++++
.../vip/mate/system/mapper/SysRoleMapper.java | 5 ++++
.../vip/mate/system/mapper/SysRoleMapper.xml | 7 ++++++
.../mate/system/service/ISysRoleService.java | 5 ++++
.../service/impl/SysRoleServiceImpl.java | 7 ++++++
.../service/impl/SysUserServiceImpl.java | 3 +++
.../src/main/resources/application-local.yml | 10 ++++----
mate-uaa/pom.xml | 8 +++----
.../mate/oauth/controller/AuthController.java | 21 +++++++++-------
.../src/main/resources/application-local.yml | 4 ++--
20 files changed, 138 insertions(+), 32 deletions(-)
create mode 100644 mate-core/mate-starter-common/src/main/java/vip/mate/core/common/util/HttpContextUtil.java
create mode 100644 mate-platform/mate-system-api/src/main/java/vip/mate/system/vo/SysRoleVO.java
diff --git a/mate-core/mate-starter-auth/src/main/java/vip/mate/core/auth/service/TokenService.java b/mate-core/mate-starter-auth/src/main/java/vip/mate/core/auth/service/TokenService.java
index 273130b3d..f458167e9 100644
--- a/mate-core/mate-starter-auth/src/main/java/vip/mate/core/auth/service/TokenService.java
+++ b/mate-core/mate-starter-auth/src/main/java/vip/mate/core/auth/service/TokenService.java
@@ -8,8 +8,7 @@ public interface TokenService {
/**
* 检验token
- * @param request
* @return
*/
- public boolean checkToken(HttpServletRequest request) throws TokenException;
+ String checkToken(HttpServletRequest request) throws TokenException;
}
diff --git a/mate-core/mate-starter-auth/src/main/java/vip/mate/core/auth/service/impl/TokenServiceImpl.java b/mate-core/mate-starter-auth/src/main/java/vip/mate/core/auth/service/impl/TokenServiceImpl.java
index 988cb9820..cd6feeea2 100644
--- a/mate-core/mate-starter-auth/src/main/java/vip/mate/core/auth/service/impl/TokenServiceImpl.java
+++ b/mate-core/mate-starter-auth/src/main/java/vip/mate/core/auth/service/impl/TokenServiceImpl.java
@@ -1,29 +1,35 @@
package vip.mate.core.auth.service.impl;
import io.jsonwebtoken.Claims;
+import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import vip.mate.core.auth.service.TokenService;
import vip.mate.core.common.constant.Oauth2Constant;
import vip.mate.core.common.exception.TokenException;
+import vip.mate.core.common.util.HttpContextUtil;
import vip.mate.core.common.util.TokenUtil;
+import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
+import javax.xml.ws.WebServiceContext;
+import javax.xml.ws.handler.MessageContext;
@Slf4j
@Service
public class TokenServiceImpl implements TokenService {
@Override
- public boolean checkToken(HttpServletRequest request) throws TokenException {
+ public String checkToken(HttpServletRequest request) throws TokenException {
String headerToken = request.getHeader(Oauth2Constant.HEADER_TOKEN);
if (StringUtils.isBlank(headerToken)) {
throw new TokenException("没有携带Token信息!");
}
String token = StringUtils.isNotBlank(headerToken) ? TokenUtil.getToken(headerToken) : "";
+ Claims claims = null;
if (StringUtils.isNotBlank(token)) {
- Claims claims = null;
try {
claims = TokenUtil.getClaims(token);
} catch (Exception e) {
@@ -31,11 +37,7 @@ public boolean checkToken(HttpServletRequest request) throws TokenException {
log.error(e.getMessage());
throw new TokenException("Token已过期!");
}
-// if (claims == null) {
-// log.error("claims:{}", "claims值为空");
-// throw new TokenException("Token已过期!");
-// }
}
- return true;
+ return (String) claims.get("userId");
}
}
diff --git a/mate-core/mate-starter-common/src/main/java/vip/mate/core/common/util/HttpContextUtil.java b/mate-core/mate-starter-common/src/main/java/vip/mate/core/common/util/HttpContextUtil.java
new file mode 100644
index 000000000..1d0510586
--- /dev/null
+++ b/mate-core/mate-starter-common/src/main/java/vip/mate/core/common/util/HttpContextUtil.java
@@ -0,0 +1,24 @@
+package vip.mate.core.common.util;
+
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+
+
+/**
+ * http工具类
+ * @author pangu
+ */
+public class HttpContextUtil {
+
+ /**
+ * 获取request
+ * @return HttpServletRequest
+ */
+ public static HttpServletRequest getHttpServletRequest() {
+ RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
+ return (requestAttributes == null) ? null : ((ServletRequestAttributes) requestAttributes).getRequest();
+ }
+}
diff --git a/mate-core/mate-starter-common/src/main/resources/bootstrap.yml b/mate-core/mate-starter-common/src/main/resources/bootstrap.yml
index 358db33fb..5ebf58872 100644
--- a/mate-core/mate-starter-common/src/main/resources/bootstrap.yml
+++ b/mate-core/mate-starter-common/src/main/resources/bootstrap.yml
@@ -1,6 +1,8 @@
spring:
profiles:
active: @spring.active@
+ main:
+ allow-bean-definition-overriding: true
cloud:
nacos:
config:
diff --git a/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysUser.java b/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysUser.java
index 7c19fe138..e036437b1 100644
--- a/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysUser.java
+++ b/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/SysUser.java
@@ -128,6 +128,8 @@ public class SysUser extends MateEntity {
private String departName;
@TableField(exist = false)
private String statusName;
+ @TableField(exist = false)
+ private String roleName;
}
diff --git a/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysDictProvider.java b/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysDictProvider.java
index 5fc5058ee..0847ae1a1 100644
--- a/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysDictProvider.java
+++ b/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysDictProvider.java
@@ -17,4 +17,5 @@ public interface ISysDictProvider {
@GetMapping("/provider/sys-dict/get-list")
Result> getList(@RequestParam("code") String code);
+
}
diff --git a/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysUserProvider.java b/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysUserProvider.java
index 4f27a94f0..6ba7f9231 100644
--- a/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysUserProvider.java
+++ b/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysUserProvider.java
@@ -7,6 +7,8 @@
import vip.mate.core.feign.constant.FeignConstant;
import vip.mate.system.entity.SysUser;
+import javax.servlet.http.HttpServletRequest;
+
@FeignClient(
value = FeignConstant.MATE_CLOUD_SYSTEM
)
@@ -17,4 +19,8 @@ public interface ISysUserProvider {
@GetMapping("/provider/user-info")
Result loadUserByUserName(@RequestParam("userName") String userName);
+
+ @GetMapping("/provider/user-info-token")
+ Result userInfoToken();
+
}
diff --git a/mate-platform/mate-system-api/src/main/java/vip/mate/system/vo/SysRoleVO.java b/mate-platform/mate-system-api/src/main/java/vip/mate/system/vo/SysRoleVO.java
new file mode 100644
index 000000000..97ceee88c
--- /dev/null
+++ b/mate-platform/mate-system-api/src/main/java/vip/mate/system/vo/SysRoleVO.java
@@ -0,0 +1,16 @@
+package vip.mate.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class SysRoleVO implements Serializable {
+
+ private static final long serialVersionUID = -9037938910709841835L;
+
+ private Long id;
+ private String name;
+}
diff --git a/mate-platform/mate-system/pom.xml b/mate-platform/mate-system/pom.xml
index 234fbc2a3..d7d7bd1c2 100644
--- a/mate-platform/mate-system/pom.xml
+++ b/mate-platform/mate-system/pom.xml
@@ -25,10 +25,10 @@
mate-starter-web
-
- vip.mate
- mate-starter-dubbo
-
+
+
+
+
vip.mate
mate-starter-database
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysRoleController.java b/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysRoleController.java
index a2c187f82..f40ab5a60 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysRoleController.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysRoleController.java
@@ -96,5 +96,10 @@ public Result> savePermission(@RequestParam String roleId, @RequestParam Strin
}
return Result.data("操作成功");
}
+
+ @GetMapping("/tree")
+ public Result> tree() {
+ return Result.data(sysRoleService.tree());
+ }
}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/feign/SysUserProvider.java b/mate-platform/mate-system/src/main/java/vip/mate/system/feign/SysUserProvider.java
index de130f68a..69134523c 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/feign/SysUserProvider.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/feign/SysUserProvider.java
@@ -5,16 +5,23 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
+import vip.mate.core.auth.service.TokenService;
import vip.mate.core.common.api.Result;
+import vip.mate.core.common.util.HttpContextUtil;
+import vip.mate.core.web.util.CollectionUtil;
import vip.mate.system.entity.SysUser;
import vip.mate.system.service.ISysUserService;
+import javax.servlet.http.HttpServletRequest;
+import javax.xml.ws.spi.http.HttpContext;
+
@Slf4j
@RestController
@AllArgsConstructor
public class SysUserProvider implements ISysUserProvider {
private final ISysUserService sysUserService;
+ private final TokenService tokenService;
@Override
@GetMapping("/provider/user-info-by-id")
@@ -30,4 +37,14 @@ public Result loadUserByUserName(String userName) {
log.info("feign调用:user:{}", sysUser);
return Result.data(sysUser);
}
+
+ @Override
+ @GetMapping("/provider/user-info-token")
+ public Result userInfoToken() {
+ HttpServletRequest request = HttpContextUtil.getHttpServletRequest();
+ log.error(String.valueOf(request));
+ String userId = tokenService.checkToken(request);
+ log.error("feign调用:userId:{}", userId);
+ return Result.data(sysUserService.getById(CollectionUtil.strToLong(userId, 0L)));
+ }
}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysRoleMapper.java b/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysRoleMapper.java
index 53963de64..b73fd716a 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysRoleMapper.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysRoleMapper.java
@@ -2,6 +2,9 @@
import vip.mate.system.entity.SysRole;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import vip.mate.system.vo.SysRoleVO;
+
+import java.util.List;
/**
*
@@ -13,4 +16,6 @@
*/
public interface SysRoleMapper extends BaseMapper {
+ List tree();
+
}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysRoleMapper.xml b/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysRoleMapper.xml
index 6ba262557..0d6ccdcd7 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysRoleMapper.xml
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysRoleMapper.xml
@@ -2,4 +2,11 @@
+
+
+
+
+
+ select id, role_name as name from mate_sys_role where is_deleted = 0
+
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysRoleService.java b/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysRoleService.java
index 6618a5a61..a5504e07a 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysRoleService.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysRoleService.java
@@ -2,6 +2,9 @@
import vip.mate.system.entity.SysRole;
import com.baomidou.mybatisplus.extension.service.IService;
+import vip.mate.system.vo.SysRoleVO;
+
+import java.util.List;
/**
*
@@ -13,4 +16,6 @@
*/
public interface ISysRoleService extends IService {
+ List tree();
+
}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysRoleServiceImpl.java b/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysRoleServiceImpl.java
index aa1243638..240b02c41 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysRoleServiceImpl.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysRoleServiceImpl.java
@@ -5,6 +5,9 @@
import vip.mate.system.service.ISysRoleService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
+import vip.mate.system.vo.SysRoleVO;
+
+import java.util.List;
/**
*
@@ -17,4 +20,8 @@
@Service
public class SysRoleServiceImpl extends ServiceImpl implements ISysRoleService {
+ @Override
+ public List tree() {
+ return this.baseMapper.tree();
+ }
}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysUserServiceImpl.java b/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysUserServiceImpl.java
index 2bb8d736d..fece7ebd9 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysUserServiceImpl.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysUserServiceImpl.java
@@ -12,6 +12,7 @@
import vip.mate.system.mapper.SysUserMapper;
import vip.mate.system.service.ISysDepartService;
import vip.mate.system.service.ISysDictService;
+import vip.mate.system.service.ISysRoleService;
import vip.mate.system.service.ISysUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@@ -37,6 +38,7 @@ public class SysUserServiceImpl extends ServiceImpl impl
private final ISysDepartService sysDepartService;
private final ISysDictService dictService;
+ private final ISysRoleService sysRoleService;
@Override
public boolean status(String ids, String status) {
@@ -72,6 +74,7 @@ public IPage listPage(Map query) {
List sysUserList = sysUserIPage.getRecords().stream().map(sysUser -> {
sysUser.setDepartName(sysDepartService.getById(sysUser.getDepartId()).getName());
sysUser.setStatusName(dictService.getValue("status", sysUser.getStatus()).getData());
+ sysUser.setRoleName(sysRoleService.getById(sysUser.getRoleId()).getRoleName());
return sysUser;
}).collect(Collectors.toList());
sysUserIPage.setRecords(sysUserList);
diff --git a/mate-platform/mate-system/src/main/resources/application-local.yml b/mate-platform/mate-system/src/main/resources/application-local.yml
index 27e344fcf..b18a87435 100644
--- a/mate-platform/mate-system/src/main/resources/application-local.yml
+++ b/mate-platform/mate-system/src/main/resources/application-local.yml
@@ -16,12 +16,12 @@ dubbo:
dubbo:
name: dubbo
port: -1
-# registries:
-# new:
-# address: spring-cloud://localhost
- registry:
+ registries:
+ new:
+ address: spring-cloud://localhost
+# registry:
# The Spring Cloud Dubbo's registry extension
- address: spring-cloud://localhost
+# address: spring-cloud://localhost
# The traditional Dubbo's registry
# address: nacos://127.0.0.1:8848
jetcache:
diff --git a/mate-uaa/pom.xml b/mate-uaa/pom.xml
index 140a8a891..891f7efd2 100644
--- a/mate-uaa/pom.xml
+++ b/mate-uaa/pom.xml
@@ -21,10 +21,10 @@
mate-system-api
-
- vip.mate
- mate-starter-dubbo
-
+
+
+
+
vip.mate
mate-starter-web
diff --git a/mate-uaa/src/main/java/vip/mate/oauth/controller/AuthController.java b/mate-uaa/src/main/java/vip/mate/oauth/controller/AuthController.java
index d792a503f..8f1b0c23c 100644
--- a/mate-uaa/src/main/java/vip/mate/oauth/controller/AuthController.java
+++ b/mate-uaa/src/main/java/vip/mate/oauth/controller/AuthController.java
@@ -12,6 +12,7 @@
import vip.mate.core.common.util.SecurityUtil;
import vip.mate.core.common.util.TokenUtil;
import vip.mate.oauth.service.CaptchaService;
+import vip.mate.system.feign.ISysUserProvider;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
@@ -27,15 +28,19 @@ public class AuthController {
private final CaptchaService captchaService;
+ private final ISysUserProvider sysUserProvider;
+
@GetMapping("/auth/userInfo")
- public Result> getUserInfo(HttpServletRequest request) {
- Claims claims = TokenUtil.getClaims(SecurityUtil.getToken(request));
- String userName = (String)claims.get("userName");
- String avatar = (String) claims.get("avatar");
- Map data = new HashMap<>();
- data.put("userName", userName);
- data.put("avatar", avatar);
- return Result.data(data);
+ public Result> getUserInfo() {
+ return sysUserProvider.userInfoToken();
+
+// Claims claims = TokenUtil.getClaims(SecurityUtil.getToken(request));
+// String userName = (String)claims.get("userName");
+// String avatar = (String) claims.get("avatar");
+// Map data = new HashMap<>();
+// data.put("userName", userName);
+// data.put("avatar", avatar);
+// return Result.data(data);
}
@GetMapping("/auth/code")
diff --git a/mate-uaa/src/main/resources/application-local.yml b/mate-uaa/src/main/resources/application-local.yml
index 0d743de70..11d497ea4 100644
--- a/mate-uaa/src/main/resources/application-local.yml
+++ b/mate-uaa/src/main/resources/application-local.yml
@@ -3,7 +3,7 @@ server:
spring:
application:
name: @artifactId@
-#数据源配置
+ #数据源配置
datasource:
url: ${mate.datasource.url}
username: ${mate.datasource.username}
@@ -26,4 +26,4 @@ dubbo:
provider:
application:
- name: mate-system
\ No newline at end of file
+ name: mate-system
From 7593c97ea822fedd05968e51dc2519c4e1ea4db3 Mon Sep 17 00:00:00 2001
From: pangu <7333791@qq.com>
Date: Fri, 3 Jul 2020 00:16:04 +0800
Subject: [PATCH 065/802] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=8E=B7=E5=8F=96?=
=?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../auth/service/impl/TokenServiceImpl.java | 2 +-
.../java/vip/mate/system/entity/MenuMeta.java | 7 ++++-
.../mate/system/feign/ISysUserProvider.java | 3 ---
mate-platform/mate-system/pom.xml | 8 +++---
.../mate/system/feign/SysUserProvider.java | 18 ++-----------
mate-uaa/pom.xml | 12 ++++++---
.../mate/oauth/controller/AuthController.java | 26 ++++++++++---------
7 files changed, 35 insertions(+), 41 deletions(-)
diff --git a/mate-core/mate-starter-auth/src/main/java/vip/mate/core/auth/service/impl/TokenServiceImpl.java b/mate-core/mate-starter-auth/src/main/java/vip/mate/core/auth/service/impl/TokenServiceImpl.java
index cd6feeea2..e65850b1c 100644
--- a/mate-core/mate-starter-auth/src/main/java/vip/mate/core/auth/service/impl/TokenServiceImpl.java
+++ b/mate-core/mate-starter-auth/src/main/java/vip/mate/core/auth/service/impl/TokenServiceImpl.java
@@ -38,6 +38,6 @@ public String checkToken(HttpServletRequest request) throws TokenException {
throw new TokenException("Token已过期!");
}
}
- return (String) claims.get("userId");
+ return (String) claims.get("userName");
}
}
diff --git a/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/MenuMeta.java b/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/MenuMeta.java
index b7c8cccba..2726057c0 100644
--- a/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/MenuMeta.java
+++ b/mate-platform/mate-system-api/src/main/java/vip/mate/system/entity/MenuMeta.java
@@ -2,8 +2,13 @@
import lombok.Data;
+import java.io.Serializable;
+
@Data
-public class MenuMeta {
+public class MenuMeta implements Serializable {
+
+ private static final long serialVersionUID = -1918771120674335058L;
+
private String title;
private String icon;
private Boolean breadcrumb = true;
diff --git a/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysUserProvider.java b/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysUserProvider.java
index 6ba7f9231..d55f23b63 100644
--- a/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysUserProvider.java
+++ b/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysUserProvider.java
@@ -20,7 +20,4 @@ public interface ISysUserProvider {
@GetMapping("/provider/user-info")
Result loadUserByUserName(@RequestParam("userName") String userName);
- @GetMapping("/provider/user-info-token")
- Result userInfoToken();
-
}
diff --git a/mate-platform/mate-system/pom.xml b/mate-platform/mate-system/pom.xml
index d7d7bd1c2..234fbc2a3 100644
--- a/mate-platform/mate-system/pom.xml
+++ b/mate-platform/mate-system/pom.xml
@@ -25,10 +25,10 @@
mate-starter-web
-
-
-
-
+
+ vip.mate
+ mate-starter-dubbo
+
vip.mate
mate-starter-database
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/feign/SysUserProvider.java b/mate-platform/mate-system/src/main/java/vip/mate/system/feign/SysUserProvider.java
index 69134523c..550674604 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/feign/SysUserProvider.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/feign/SysUserProvider.java
@@ -1,27 +1,21 @@
package vip.mate.system.feign;
+import com.alicp.jetcache.anno.Cached;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
-import vip.mate.core.auth.service.TokenService;
import vip.mate.core.common.api.Result;
-import vip.mate.core.common.util.HttpContextUtil;
-import vip.mate.core.web.util.CollectionUtil;
import vip.mate.system.entity.SysUser;
import vip.mate.system.service.ISysUserService;
-import javax.servlet.http.HttpServletRequest;
-import javax.xml.ws.spi.http.HttpContext;
-
@Slf4j
@RestController
@AllArgsConstructor
public class SysUserProvider implements ISysUserProvider {
private final ISysUserService sysUserService;
- private final TokenService tokenService;
@Override
@GetMapping("/provider/user-info-by-id")
@@ -32,19 +26,11 @@ public Result userInfoById(Long userId) {
@Override
@GetMapping("/provider/user-info")
+ @Cached(name="sysUserProvider.loadUserByUserName", expire = 3600)
public Result loadUserByUserName(String userName) {
SysUser sysUser = sysUserService.getOne(new QueryWrapper().lambda().in(SysUser::getAccount, userName));
log.info("feign调用:user:{}", sysUser);
return Result.data(sysUser);
}
- @Override
- @GetMapping("/provider/user-info-token")
- public Result userInfoToken() {
- HttpServletRequest request = HttpContextUtil.getHttpServletRequest();
- log.error(String.valueOf(request));
- String userId = tokenService.checkToken(request);
- log.error("feign调用:userId:{}", userId);
- return Result.data(sysUserService.getById(CollectionUtil.strToLong(userId, 0L)));
- }
}
diff --git a/mate-uaa/pom.xml b/mate-uaa/pom.xml
index 891f7efd2..28a43f9c7 100644
--- a/mate-uaa/pom.xml
+++ b/mate-uaa/pom.xml
@@ -21,10 +21,10 @@
mate-system-api
-
-
-
-
+
+ vip.mate
+ mate-starter-dubbo
+
vip.mate
mate-starter-web
@@ -37,5 +37,9 @@
com.github.whvcse
easy-captcha
+
+ vip.mate
+ mate-starter-auth
+
\ No newline at end of file
diff --git a/mate-uaa/src/main/java/vip/mate/oauth/controller/AuthController.java b/mate-uaa/src/main/java/vip/mate/oauth/controller/AuthController.java
index 8f1b0c23c..068e20e77 100644
--- a/mate-uaa/src/main/java/vip/mate/oauth/controller/AuthController.java
+++ b/mate-uaa/src/main/java/vip/mate/oauth/controller/AuthController.java
@@ -1,6 +1,5 @@
package vip.mate.oauth.controller;
-import io.jsonwebtoken.Claims;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Qualifier;
@@ -8,10 +7,11 @@
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
+import vip.mate.core.auth.service.TokenService;
import vip.mate.core.common.api.Result;
import vip.mate.core.common.util.SecurityUtil;
-import vip.mate.core.common.util.TokenUtil;
import vip.mate.oauth.service.CaptchaService;
+import vip.mate.system.entity.SysUser;
import vip.mate.system.feign.ISysUserProvider;
import javax.servlet.http.HttpServletRequest;
@@ -30,17 +30,19 @@ public class AuthController {
private final ISysUserProvider sysUserProvider;
+ private final TokenService tokenService;
+
@GetMapping("/auth/userInfo")
- public Result> getUserInfo() {
- return sysUserProvider.userInfoToken();
-
-// Claims claims = TokenUtil.getClaims(SecurityUtil.getToken(request));
-// String userName = (String)claims.get("userName");
-// String avatar = (String) claims.get("avatar");
-// Map data = new HashMap<>();
-// data.put("userName", userName);
-// data.put("avatar", avatar);
-// return Result.data(data);
+ public Result> getUserInfo(HttpServletRequest request) {
+ String userName = tokenService.checkToken(request);
+
+ SysUser sysUser = sysUserProvider.loadUserByUserName(userName).getData();
+ Map data = new HashMap<>();
+ data.put("userName", userName);
+ data.put("avatar", sysUser.getAvatar());
+ data.put("roleId", sysUser.getRoleId());
+ data.put("departId", sysUser.getDepartId());
+ return Result.data(data);
}
@GetMapping("/auth/code")
From 798c50ca220493a10bea4220b5212b5c03d52514 Mon Sep 17 00:00:00 2001
From: pangu <7333791@qq.com>
Date: Fri, 3 Jul 2020 14:02:30 +0800
Subject: [PATCH 066/802] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BB=A3=E7=A0=81?=
=?UTF-8?q?=E7=94=9F=E6=88=90=E7=9A=84entity=E5=9F=BA=E7=B1=BB=E5=92=8Crea?=
=?UTF-8?q?dme?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 10 +
doc/sql/matex_20200524_0937GMT+8.sql | 122 -------
doc/sql/matex_schema.sql | 325 ++++++++++++++++++
.../config/MybatisPlusConfiguration.java | 6 -
mate-core/mate-starter-dependencies/pom.xml | 6 +-
.../vip/mate/code/manual/ManualGenerator.java | 2 +-
6 files changed, 341 insertions(+), 130 deletions(-)
delete mode 100644 doc/sql/matex_20200524_0937GMT+8.sql
create mode 100644 doc/sql/matex_schema.sql
diff --git a/README.md b/README.md
index d9ff86bb4..b142d1ad8 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,15 @@
+
+
+
+
+
+
+
+
+## 如果您觉得有帮助,请点右上角 "Star" 支持一下谢谢
MateCloud是一款基于Spring Cloud Alibaba的微服务架构。
@@ -18,3 +27,4 @@ MateCloud是一款基于Spring Cloud Alibaba的微服务架构。
6. 支持报文加密和验证机制(待开发)。
+
diff --git a/doc/sql/matex_20200524_0937GMT+8.sql b/doc/sql/matex_20200524_0937GMT+8.sql
deleted file mode 100644
index f4860e132..000000000
--- a/doc/sql/matex_20200524_0937GMT+8.sql
+++ /dev/null
@@ -1,122 +0,0 @@
-#
-# SQL Export
-# Created by Querious (201067)
-# Created: May 24, 2020 at 9:38:03 AM GMT+8
-# Encoding: Unicode (UTF-8)
-#
-
-
-SET @PREVIOUS_FOREIGN_KEY_CHECKS = @@FOREIGN_KEY_CHECKS;
-SET FOREIGN_KEY_CHECKS = 0;
-
-
-DROP TABLE IF EXISTS `mate_sys_user`;
-DROP TABLE IF EXISTS `mate_data_source`;
-DROP TABLE IF EXISTS `mate_client`;
-
-
-CREATE TABLE `mate_client` (
- `id` bigint(64) NOT NULL COMMENT '主键',
- `client_id` varchar(48) NOT NULL COMMENT '客户端id',
- `client_secret` varchar(256) NOT NULL COMMENT '客户端密钥',
- `resource_ids` varchar(256) DEFAULT NULL COMMENT '资源集合',
- `scope` varchar(256) NOT NULL COMMENT '授权范围',
- `authorized_grant_types` varchar(256) NOT NULL COMMENT '授权类型',
- `web_server_redirect_uri` varchar(256) DEFAULT NULL COMMENT '回调地址',
- `authorities` varchar(256) DEFAULT NULL COMMENT '权限',
- `access_token_validity` int(11) NOT NULL COMMENT '令牌过期秒数',
- `refresh_token_validity` int(11) NOT NULL COMMENT '刷新令牌过期秒数',
- `additional_information` varchar(4096) DEFAULT NULL COMMENT '附加说明',
- `autoapprove` varchar(256) DEFAULT NULL COMMENT '自动授权',
- `create_user` bigint(64) DEFAULT NULL COMMENT '创建人',
- `create_dept` bigint(64) DEFAULT NULL COMMENT '创建部门',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_user` bigint(64) DEFAULT NULL COMMENT '修改人',
- `update_time` datetime DEFAULT NULL COMMENT '修改时间',
- `status` int(2) NOT NULL COMMENT '状态',
- `is_deleted` int(2) NOT NULL COMMENT '是否已删除',
- PRIMARY KEY (`id`) USING BTREE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='客户端表';
-
-
-CREATE TABLE `mate_data_source` (
- `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
- `name` varchar(100) DEFAULT NULL COMMENT '名称',
- `driver_class` varchar(100) DEFAULT NULL COMMENT '驱动类',
- `url` varchar(500) DEFAULT NULL COMMENT '连接地址',
- `username` varchar(50) DEFAULT NULL COMMENT '用户名',
- `password` varchar(50) DEFAULT NULL COMMENT '密码',
- `remark` varchar(255) DEFAULT NULL COMMENT '备注',
- `status` tinyint(1) DEFAULT NULL COMMENT '状态',
- `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `updated_at` datetime DEFAULT NULL COMMENT '更新时间',
- `deleted_at` datetime DEFAULT NULL COMMENT '删除时间',
- `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除',
- PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COMMENT='数据源表';
-
-
-CREATE TABLE `mate_sys_user` (
- `id` bigint(64) NOT NULL AUTO_INCREMENT COMMENT '主键',
- `tenant_id` varchar(12) DEFAULT '100000' COMMENT '租户ID',
- `account` varchar(45) DEFAULT NULL COMMENT '账号',
- `password` varchar(100) DEFAULT NULL COMMENT '密码',
- `name` varchar(20) DEFAULT NULL COMMENT '昵称',
- `real_name` varchar(10) DEFAULT NULL COMMENT '真名',
- `avatar` varchar(200) DEFAULT NULL COMMENT '头像',
- `email` varchar(45) DEFAULT NULL COMMENT '邮箱',
- `telephone` varchar(45) DEFAULT NULL COMMENT '手机',
- `birthday` datetime DEFAULT NULL COMMENT '生日',
- `sex` smallint(6) DEFAULT NULL COMMENT '性别',
- `role_id` varchar(1000) DEFAULT NULL COMMENT '角色id',
- `dept_id` varchar(1000) DEFAULT NULL COMMENT '部门id',
- `status` tinyint(1) DEFAULT NULL COMMENT '状态',
- `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `updated_at` datetime DEFAULT NULL COMMENT '更新时间',
- `deleted_at` datetime DEFAULT NULL COMMENT '删除时间',
- `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除',
- PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
-
-
-
-
-SET FOREIGN_KEY_CHECKS = @PREVIOUS_FOREIGN_KEY_CHECKS;
-
-
-SET @PREVIOUS_FOREIGN_KEY_CHECKS = @@FOREIGN_KEY_CHECKS;
-SET FOREIGN_KEY_CHECKS = 0;
-
-
-LOCK TABLES `mate_client` WRITE;
-ALTER TABLE `mate_client` DISABLE KEYS;
-INSERT INTO `mate_client` (`id`, `client_id`, `client_secret`, `resource_ids`, `scope`, `authorized_grant_types`, `web_server_redirect_uri`, `authorities`, `access_token_validity`, `refresh_token_validity`, `additional_information`, `autoapprove`, `create_user`, `create_dept`, `create_time`, `update_user`, `update_time`, `status`, `is_deleted`) VALUES
- (1123598811738675201,'sword','sword_secret',NULL,'all','refresh_token,password,authorization_code,captcha','http://localhost:8888',NULL,3600,604800,NULL,NULL,1123598815738675201,1123598813738675201,'2019-03-24 10:40:55',1123598815738675201,'2019-03-24 10:40:59',1,0),
- (1123598811738675202,'saber','saber_secret',NULL,'all','refresh_token,password,authorization_code,captcha','http://localhost:8080',NULL,3600,604800,NULL,NULL,1123598815738675201,1123598813738675201,'2019-03-24 10:42:29',1123598815738675201,'2019-03-24 10:42:32',1,0);
-ALTER TABLE `mate_client` ENABLE KEYS;
-UNLOCK TABLES;
-
-
-LOCK TABLES `mate_data_source` WRITE;
-ALTER TABLE `mate_data_source` DISABLE KEYS;
-INSERT INTO `mate_data_source` (`id`, `name`, `driver_class`, `url`, `username`, `password`, `remark`, `status`, `created_at`, `updated_at`, `deleted_at`, `is_deleted`) VALUES
- (1,'1','1','1','1','1','1',1,'2020-04-20 02:59:22',NULL,NULL,0),
- (2,'2','2','2','2','2','2',2,'2020-04-20 03:03:34',NULL,NULL,0);
-ALTER TABLE `mate_data_source` ENABLE KEYS;
-UNLOCK TABLES;
-
-
-LOCK TABLES `mate_sys_user` WRITE;
-ALTER TABLE `mate_sys_user` DISABLE KEYS;
-INSERT INTO `mate_sys_user` (`id`, `tenant_id`, `account`, `password`, `name`, `real_name`, `avatar`, `email`, `telephone`, `birthday`, `sex`, `role_id`, `dept_id`, `status`, `created_at`, `updated_at`, `deleted_at`, `is_deleted`) VALUES
- (1,'100000','admin','{bcrypt}$2a$10$pDzXQpiSIl74Jekj9CxMWOPbEV9MHkjkZ7GXX/RomtIyXz8m6Ruia','xu','zhanfu',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2020-04-21 04:39:32',NULL,NULL,0),
- (2,'100001','test','{bcrypt}$2a$10$pDzXQpiSIl74Jekj9CxMWOPbEV9MHkjkZ7GXX/RomtIyXz8m6Ruia','test','test',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2020-04-25 22:53:09',NULL,NULL,0);
-ALTER TABLE `mate_sys_user` ENABLE KEYS;
-UNLOCK TABLES;
-
-
-
-
-SET FOREIGN_KEY_CHECKS = @PREVIOUS_FOREIGN_KEY_CHECKS;
-
-
diff --git a/doc/sql/matex_schema.sql b/doc/sql/matex_schema.sql
new file mode 100644
index 000000000..429cc8f8f
--- /dev/null
+++ b/doc/sql/matex_schema.sql
@@ -0,0 +1,325 @@
+#
+# SQL Export
+# Created by Querious (201067)
+# Created: July 3, 2020 at 1:39:35 PM GMT+8
+# Encoding: Unicode (UTF-8)
+#
+
+
+SET @PREVIOUS_FOREIGN_KEY_CHECKS = @@FOREIGN_KEY_CHECKS;
+SET FOREIGN_KEY_CHECKS = 0;
+
+
+DROP TABLE IF EXISTS `mate_sys_user`;
+DROP TABLE IF EXISTS `mate_sys_tenant`;
+DROP TABLE IF EXISTS `mate_sys_role_permission`;
+DROP TABLE IF EXISTS `mate_sys_role`;
+DROP TABLE IF EXISTS `mate_sys_menu`;
+DROP TABLE IF EXISTS `mate_sys_dict`;
+DROP TABLE IF EXISTS `mate_sys_depart`;
+DROP TABLE IF EXISTS `mate_data_source`;
+DROP TABLE IF EXISTS `mate_client`;
+
+
+CREATE TABLE `mate_client` (
+ `id` bigint(64) NOT NULL COMMENT '主键',
+ `client_id` varchar(48) NOT NULL COMMENT '客户端id',
+ `client_secret` varchar(256) NOT NULL COMMENT '客户端密钥',
+ `resource_ids` varchar(256) DEFAULT NULL COMMENT '资源集合',
+ `scope` varchar(256) NOT NULL COMMENT '授权范围',
+ `authorized_grant_types` varchar(256) NOT NULL COMMENT '授权类型',
+ `web_server_redirect_uri` varchar(256) DEFAULT NULL COMMENT '回调地址',
+ `authorities` varchar(256) DEFAULT NULL COMMENT '权限',
+ `access_token_validity` int(11) NOT NULL COMMENT '令牌过期秒数',
+ `refresh_token_validity` int(11) NOT NULL COMMENT '刷新令牌过期秒数',
+ `additional_information` varchar(4096) DEFAULT NULL COMMENT '附加说明',
+ `autoapprove` varchar(256) DEFAULT NULL COMMENT '自动授权',
+ `create_user` bigint(64) DEFAULT NULL COMMENT '创建人',
+ `create_dept` bigint(64) DEFAULT NULL COMMENT '创建部门',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `update_user` bigint(64) DEFAULT NULL COMMENT '修改人',
+ `update_time` datetime DEFAULT NULL COMMENT '修改时间',
+ `status` int(2) NOT NULL COMMENT '状态',
+ `is_deleted` int(2) NOT NULL COMMENT '是否已删除',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='客户端表';
+
+
+CREATE TABLE `mate_data_source` (
+ `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
+ `name` varchar(100) DEFAULT NULL COMMENT '名称',
+ `driver_class` varchar(100) DEFAULT NULL COMMENT '驱动类',
+ `url` varchar(500) DEFAULT NULL COMMENT '连接地址',
+ `username` varchar(50) DEFAULT NULL COMMENT '用户名',
+ `password` varchar(50) DEFAULT NULL COMMENT '密码',
+ `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+ `status` tinyint(1) DEFAULT NULL COMMENT '状态',
+ `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ `updated_at` datetime DEFAULT NULL COMMENT '更新时间',
+ `deleted_at` datetime DEFAULT NULL COMMENT '删除时间',
+ `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='数据源表';
+
+
+CREATE TABLE `mate_sys_depart` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '部门ID',
+ `name` varchar(50) DEFAULT NULL COMMENT '部门名称',
+ `sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序',
+ `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
+ `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
+ `is_deleted` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '0' COMMENT '删除标识',
+ `parent_id` bigint(20) DEFAULT '0' COMMENT '上级ID',
+ `tenant_id` bigint(20) DEFAULT '0' COMMENT '租户ID',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='组织机构表';
+
+
+CREATE TABLE `mate_sys_dict` (
+ `id` bigint(64) NOT NULL COMMENT '主键',
+ `parent_id` bigint(64) DEFAULT '0' COMMENT '父主键',
+ `code` varchar(255) DEFAULT NULL COMMENT '字典码',
+ `dict_key` varchar(255) DEFAULT NULL COMMENT '字典值',
+ `dict_value` varchar(255) DEFAULT NULL COMMENT '字典名称',
+ `sort` int(11) DEFAULT NULL COMMENT '排序',
+ `remark` varchar(255) DEFAULT NULL COMMENT '字典备注',
+ `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
+ `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
+ `is_deleted` int(2) DEFAULT '0' COMMENT '是否已删除',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='字典表';
+
+
+CREATE TABLE `mate_sys_menu` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '菜单ID',
+ `name` varchar(32) DEFAULT NULL COMMENT '菜单标题',
+ `permission` varchar(32) DEFAULT NULL COMMENT '菜单权限',
+ `path` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '路径',
+ `parent_id` bigint(20) DEFAULT '0' COMMENT '父菜单ID',
+ `icon` varchar(32) DEFAULT NULL COMMENT '菜单图标',
+ `sort` int(11) DEFAULT '1' COMMENT '排序值',
+ `keep_alive` char(1) DEFAULT '0' COMMENT '是否缓存该页面: 1:是 0:不是',
+ `type` char(1) DEFAULT '0' COMMENT '菜单类型',
+ `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
+ `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+ `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '状态',
+ `is_deleted` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '0' COMMENT '删除标识',
+ `tenant_id` bigint(20) unsigned DEFAULT '0' COMMENT '租户ID',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=2014 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='菜单权限表';
+
+
+CREATE TABLE `mate_sys_role` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+ `role_name` varchar(64) DEFAULT NULL COMMENT '角色名称',
+ `role_code` varchar(64) DEFAULT NULL COMMENT '角色编码',
+ `description` varchar(255) DEFAULT NULL COMMENT '描述',
+ `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
+ `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
+ `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+ `is_deleted` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '0' COMMENT '删除标识',
+ `tenant_id` int(11) DEFAULT NULL COMMENT '租户ID',
+ PRIMARY KEY (`id`) USING BTREE,
+ KEY `idx_role_role_code` (`role_code`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='角色表';
+
+
+CREATE TABLE `mate_sys_role_permission` (
+ `id` bigint(64) NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `menu_id` bigint(64) DEFAULT NULL COMMENT '菜单id',
+ `role_id` bigint(64) DEFAULT NULL COMMENT '角色id',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=145 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='角色权限表';
+
+
+CREATE TABLE `mate_sys_tenant` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '租户id',
+ `name` varchar(255) DEFAULT NULL COMMENT '租户名称',
+ `code` varchar(64) DEFAULT NULL COMMENT '租户编码',
+ `start_time` timestamp NULL DEFAULT NULL COMMENT '开始时间',
+ `end_time` timestamp NULL DEFAULT NULL COMMENT '结束时间',
+ `status` char(1) DEFAULT '0' COMMENT '状态',
+ `del_flag` char(1) DEFAULT '0' COMMENT '删除标识',
+ `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
+ `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
+ `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='租户表';
+
+
+CREATE TABLE `mate_sys_user` (
+ `id` bigint(64) NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `tenant_id` varchar(12) DEFAULT '100000' COMMENT '租户ID',
+ `account` varchar(45) DEFAULT NULL COMMENT '账号',
+ `password` varchar(100) DEFAULT NULL COMMENT '密码',
+ `name` varchar(20) DEFAULT NULL COMMENT '昵称',
+ `real_name` varchar(10) DEFAULT NULL COMMENT '真名',
+ `avatar` varchar(200) DEFAULT NULL COMMENT '头像',
+ `email` varchar(45) DEFAULT NULL COMMENT '邮箱',
+ `telephone` varchar(45) DEFAULT NULL COMMENT '手机',
+ `birthday` datetime DEFAULT NULL COMMENT '生日',
+ `sex` smallint(6) DEFAULT NULL COMMENT '性别',
+ `role_id` bigint(20) DEFAULT '0' COMMENT '角色id',
+ `depart_id` bigint(20) DEFAULT '0' COMMENT '部门id',
+ `status` char(1) DEFAULT NULL COMMENT '状态',
+ `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
+ `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
+ `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+ `is_deleted` char(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户表';
+
+
+
+
+SET FOREIGN_KEY_CHECKS = @PREVIOUS_FOREIGN_KEY_CHECKS;
+
+
+SET @PREVIOUS_FOREIGN_KEY_CHECKS = @@FOREIGN_KEY_CHECKS;
+SET FOREIGN_KEY_CHECKS = 0;
+
+
+LOCK TABLES `mate_client` WRITE;
+ALTER TABLE `mate_client` DISABLE KEYS;
+INSERT INTO `mate_client` (`id`, `client_id`, `client_secret`, `resource_ids`, `scope`, `authorized_grant_types`, `web_server_redirect_uri`, `authorities`, `access_token_validity`, `refresh_token_validity`, `additional_information`, `autoapprove`, `create_user`, `create_dept`, `create_time`, `update_user`, `update_time`, `status`, `is_deleted`) VALUES
+ (1123598811738675202,'mate','mate_secret',NULL,'all','refresh_token,password,authorization_code,captcha','http://localhost:8080',NULL,3600,604800,NULL,NULL,1123598815738675201,1123598813738675201,'2019-03-24 10:42:29',1123598815738675201,'2019-03-24 10:42:32',1,0);
+ALTER TABLE `mate_client` ENABLE KEYS;
+UNLOCK TABLES;
+
+
+LOCK TABLES `mate_data_source` WRITE;
+ALTER TABLE `mate_data_source` DISABLE KEYS;
+INSERT INTO `mate_data_source` (`id`, `name`, `driver_class`, `url`, `username`, `password`, `remark`, `status`, `created_at`, `updated_at`, `deleted_at`, `is_deleted`) VALUES
+ (1,'1','1','1','1','1','1',1,'2020-04-20 02:59:22',NULL,NULL,0),
+ (2,'2','2','2','2','2','2',2,'2020-04-20 03:03:34',NULL,NULL,0);
+ALTER TABLE `mate_data_source` ENABLE KEYS;
+UNLOCK TABLES;
+
+
+LOCK TABLES `mate_sys_depart` WRITE;
+ALTER TABLE `mate_sys_depart` DISABLE KEYS;
+INSERT INTO `mate_sys_depart` (`id`, `name`, `sort`, `create_by`, `update_by`, `create_time`, `update_time`, `is_deleted`, `parent_id`, `tenant_id`) VALUES
+ (1,'开发部',0,NULL,NULL,'2020-06-28 07:30:50','2020-07-02 12:49:08','0',-1,0),
+ (2,'开发分部',0,NULL,NULL,'2020-06-29 11:14:37',NULL,'0',1,0),
+ (3,'开发二部',1,NULL,NULL,'2020-06-29 15:54:27',NULL,'0',1,0),
+ (4,'产品部',1,NULL,NULL,'2020-06-29 15:58:54',NULL,'0',-1,0),
+ (5,'产品一部',1,NULL,NULL,'2020-06-29 15:59:14',NULL,'0',4,0);
+ALTER TABLE `mate_sys_depart` ENABLE KEYS;
+UNLOCK TABLES;
+
+
+LOCK TABLES `mate_sys_dict` WRITE;
+ALTER TABLE `mate_sys_dict` DISABLE KEYS;
+INSERT INTO `mate_sys_dict` (`id`, `parent_id`, `code`, `dict_key`, `dict_value`, `sort`, `remark`, `create_by`, `update_by`, `create_time`, `update_time`, `is_deleted`) VALUES
+ (1,0,'status','-1','状态',1,'',NULL,NULL,'2020-07-01 09:59:15','2020-07-01 10:02:00',0),
+ (2,1,'status','0','启用',1,NULL,NULL,NULL,'2020-07-01 10:02:23','2020-07-01 10:02:59',0),
+ (3,1,'status','1','禁用',2,NULL,NULL,NULL,'2020-07-01 10:02:34','2020-07-01 10:02:59',0);
+ALTER TABLE `mate_sys_dict` ENABLE KEYS;
+UNLOCK TABLES;
+
+
+LOCK TABLES `mate_sys_menu` WRITE;
+ALTER TABLE `mate_sys_menu` DISABLE KEYS;
+INSERT INTO `mate_sys_menu` (`id`, `name`, `permission`, `path`, `parent_id`, `icon`, `sort`, `keep_alive`, `type`, `create_by`, `update_by`, `create_time`, `update_time`, `status`, `is_deleted`, `tenant_id`) VALUES
+ (1000,'系统管理',NULL,'/system',-1,'imac',1,'0','0',NULL,NULL,'2020-06-17 14:21:45','2020-06-24 11:19:19','0','0',0),
+ (1100,'用户管理',NULL,'/system/user',1000,'user',1,'0','1',NULL,NULL,'2020-06-18 14:28:36','2020-06-25 11:19:20','0','0',0),
+ (1101,'用户新增2','sys_user_add','',1100,NULL,1,'0','2',NULL,NULL,'2020-06-17 14:32:51','2020-06-25 11:19:22','0','0',0),
+ (1102,'用户修改','sys_user_mod',NULL,1100,NULL,1,'0','2',NULL,NULL,'2020-06-20 00:27:40','2020-06-25 11:19:22','0','0',0),
+ (1103,'用户删除','sys_user_del',NULL,1100,NULL,1,'0','2',NULL,NULL,'2020-06-20 00:27:56','2020-06-25 11:19:45','0','0',0),
+ (1200,'角色管理',NULL,'/system/role',1000,'repair',1,'0','1',NULL,NULL,'2020-06-19 16:36:01','2020-06-25 03:19:23','0','0',0),
+ (1201,'角色新增','sys_role_add',NULL,1200,NULL,1,'0','2',NULL,NULL,'2020-06-20 00:37:12','2020-06-25 11:19:45','0','0',0),
+ (1202,'角色修改','sys_role_mod',NULL,1200,NULL,1,'0','2',NULL,NULL,'2020-06-20 00:38:23','2020-06-25 11:19:45','0','0',0),
+ (1203,'角色删除','sys_role_del',NULL,1200,NULL,1,'0','2',NULL,NULL,'2020-06-20 00:38:53','2020-06-25 11:19:45','0','0',0),
+ (1300,'菜单管理',NULL,'/system/menu',1000,'tree',1,'0','1',NULL,NULL,'2020-06-19 16:39:07','2020-06-25 03:19:45','0','0',0),
+ (1301,'菜单新增','sys_menu_add',NULL,1300,NULL,1,'0','2',NULL,NULL,'2020-06-20 00:39:48','2020-06-25 11:19:45','0','0',0),
+ (1302,'菜单修改','sys_menu_mod',NULL,1300,NULL,1,'0','2',NULL,NULL,'2020-06-20 00:40:21','2020-06-25 11:19:45','0','0',0),
+ (1303,'菜单删除','sys_menu_del',NULL,1300,NULL,1,'0','2',NULL,NULL,'2020-06-20 00:40:42','2020-06-25 11:19:45','0','0',0),
+ (2009,'监控管理',NULL,'/monitor',-1,'Galaxee',1,'0','0',NULL,NULL,'2020-06-26 16:00:35',NULL,'0','0',0),
+ (2010,'部门管理',NULL,'/system/depart',1000,'table2',1,'0','1',NULL,NULL,'2020-06-26 22:52:41','2020-06-27 06:53:55','0','0',0),
+ (2011,'部门新增','sys:depart:add',NULL,2010,NULL,1,'0','2',NULL,NULL,'2020-06-27 14:53:37',NULL,'0','0',0),
+ (2012,'部门修改','sys:depart:edit',NULL,2010,NULL,1,'0','2',NULL,NULL,'2020-06-27 14:54:47',NULL,'0','0',0),
+ (2013,'部门删除','sys:depart:delete',NULL,2010,NULL,1,'0','2',NULL,NULL,'2020-06-27 14:55:15',NULL,'0','0',0);
+ALTER TABLE `mate_sys_menu` ENABLE KEYS;
+UNLOCK TABLES;
+
+
+LOCK TABLES `mate_sys_role` WRITE;
+ALTER TABLE `mate_sys_role` DISABLE KEYS;
+INSERT INTO `mate_sys_role` (`id`, `role_name`, `role_code`, `description`, `create_by`, `update_by`, `create_time`, `update_time`, `is_deleted`, `tenant_id`) VALUES
+ (1,'管理员','admin','管理员组',NULL,NULL,'2020-06-28 15:02:16',NULL,'0',NULL),
+ (2,'演示会员','demo2','演示会员组',NULL,NULL,'2020-06-28 07:02:36','2020-06-28 07:02:58','0',NULL);
+ALTER TABLE `mate_sys_role` ENABLE KEYS;
+UNLOCK TABLES;
+
+
+LOCK TABLES `mate_sys_role_permission` WRITE;
+ALTER TABLE `mate_sys_role_permission` DISABLE KEYS;
+INSERT INTO `mate_sys_role_permission` (`id`, `menu_id`, `role_id`) VALUES
+ (108,1300,2),
+ (109,1301,2),
+ (110,1302,2),
+ (111,1303,2),
+ (112,2010,2),
+ (113,2011,2),
+ (114,2012,2),
+ (115,2013,2),
+ (116,2009,2),
+ (128,1000,1),
+ (129,1100,1),
+ (130,1101,1),
+ (131,1102,1),
+ (132,1103,1),
+ (133,1200,1),
+ (134,1201,1),
+ (135,1202,1),
+ (136,1203,1),
+ (137,1300,1),
+ (138,1301,1),
+ (139,1302,1),
+ (140,1303,1),
+ (141,2010,1),
+ (142,2011,1),
+ (143,2012,1),
+ (144,2013,1);
+ALTER TABLE `mate_sys_role_permission` ENABLE KEYS;
+UNLOCK TABLES;
+
+
+LOCK TABLES `mate_sys_tenant` WRITE;
+ALTER TABLE `mate_sys_tenant` DISABLE KEYS;
+ALTER TABLE `mate_sys_tenant` ENABLE KEYS;
+UNLOCK TABLES;
+
+
+LOCK TABLES `mate_sys_user` WRITE;
+ALTER TABLE `mate_sys_user` DISABLE KEYS;
+INSERT INTO `mate_sys_user` (`id`, `tenant_id`, `account`, `password`, `name`, `real_name`, `avatar`, `email`, `telephone`, `birthday`, `sex`, `role_id`, `depart_id`, `status`, `create_by`, `update_by`, `create_time`, `update_time`, `is_deleted`) VALUES
+ (2,'100000','admin','{bcrypt}$2a$10$pDzXQpiSIl74Jekj9CxMWOPbEV9MHkjkZ7GXX/RomtIyXz8m6Ruia','admin','mate','https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2084118128,2518711034&fm=26&gp=0.jpg','mate@mate.vip','18910001000',NULL,1,1,1,'0',NULL,NULL,'2020-07-02 15:29:12','2020-07-02 15:29:12','0'),
+ (3,'100000','admin2','{bcrypt}$2a$10$pDzXQpiSIl74Jekj9CxMWOPbEV9MHkjkZ7GXX/RomtIyXz8m6Ruia','admin2','mate','https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2084118128,2518711034&fm=26&gp=0.jpg','mate@mate.vip','18910001000',NULL,1,2,4,'0',NULL,NULL,'2020-06-16 20:05:43','2020-07-02 05:38:59','0'),
+ (4,'100000','admin4','{bcrypt}$2a$10$pDzXQpiSIl74Jekj9CxMWOPbEV9MHkjkZ7GXX/RomtIyXz8m6Ruia','admin4','mate','https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2084118128,2518711034&fm=26&gp=0.jpg','mate@mate.vip','18910001000',NULL,1,2,1,'0',NULL,NULL,'2020-06-17 04:05:43','2020-07-02 05:39:00','0'),
+ (5,'100000','admin5','{bcrypt}$2a$10$pDzXQpiSIl74Jekj9CxMWOPbEV9MHkjkZ7GXX/RomtIyXz8m6Ruia','admin5','mate','https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2084118128,2518711034&fm=26&gp=0.jpg','mate@mate.vip','18910001000',NULL,1,1,1,'0',NULL,NULL,'2020-06-17 12:05:43','2020-07-02 13:39:01','0'),
+ (6,'100000','admin6','{bcrypt}$2a$10$pDzXQpiSIl74Jekj9CxMWOPbEV9MHkjkZ7GXX/RomtIyXz8m6Ruia','admin6','mate','https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2084118128,2518711034&fm=26&gp=0.jpg','mate@mate.vip','18910001000',NULL,1,1,1,'0',NULL,NULL,'2020-06-17 12:05:43','2020-07-02 13:39:01','0'),
+ (7,'100000','admin7','{bcrypt}$2a$10$pDzXQpiSIl74Jekj9CxMWOPbEV9MHkjkZ7GXX/RomtIyXz8m6Ruia','admin6','mate','https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2084118128,2518711034&fm=26&gp=0.jpg','mate@mate.vip','18910001000',NULL,1,1,1,'0',NULL,NULL,'2020-06-16 12:05:43','2020-06-30 12:55:52','0'),
+ (8,'100000','admin8','{bcrypt}$2a$10$pDzXQpiSIl74Jekj9CxMWOPbEV9MHkjkZ7GXX/RomtIyXz8m6Ruia','admin6','mate','https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2084118128,2518711034&fm=26&gp=0.jpg','mate@mate.vip','18910001000',NULL,1,2,1,'0',NULL,NULL,'2020-06-17 04:05:43','2020-07-02 05:39:03','0'),
+ (9,'100000','admin9','{bcrypt}$2a$10$pDzXQpiSIl74Jekj9CxMWOPbEV9MHkjkZ7GXX/RomtIyXz8m6Ruia','admin6','mate','https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2084118128,2518711034&fm=26&gp=0.jpg','mate@mate.vip','18910001000',NULL,1,1,1,'0',NULL,NULL,'2020-06-17 12:05:43','2020-07-02 13:39:03','0'),
+ (10,'100000','admin10','{bcrypt}$2a$10$pDzXQpiSIl74Jekj9CxMWOPbEV9MHkjkZ7GXX/RomtIyXz8m6Ruia','admin6','mate','https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2084118128,2518711034&fm=26&gp=0.jpg','mate@mate.vip','18910001000',NULL,1,1,1,'1',NULL,NULL,'2020-06-16 12:05:43','2020-07-02 13:39:04','0'),
+ (15,'100000','test','t','test',NULL,NULL,NULL,'111','2020-06-30 16:00:00',0,1,1,'0',NULL,NULL,'2020-07-02 13:30:04',NULL,'0'),
+ (16,'100000','test1','11','test1',NULL,NULL,NULL,'11','2020-07-14 16:00:00',0,1,1,'0',NULL,NULL,'2020-07-02 13:31:58',NULL,'0');
+ALTER TABLE `mate_sys_user` ENABLE KEYS;
+UNLOCK TABLES;
+
+
+
+
+SET FOREIGN_KEY_CHECKS = @PREVIOUS_FOREIGN_KEY_CHECKS;
+
+
diff --git a/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/config/MybatisPlusConfiguration.java b/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/config/MybatisPlusConfiguration.java
index 3270a2d52..6c2d1ea39 100644
--- a/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/config/MybatisPlusConfiguration.java
+++ b/mate-core/mate-starter-database/src/main/java/vip/mate/core/database/config/MybatisPlusConfiguration.java
@@ -38,12 +38,6 @@ public PaginationInterceptor paginationInterceptor() {
return paginationInterceptor;
}
-// @Bean
-// public GlobalConfig globalConfig() {
-// GlobalConfig globalConfig = new GlobalConfig();
-// globalConfig.setMetaObjectHandler(new MateMetaObjectHandler());
-// return globalConfig;
-// }
/**
* 自动填充数据
*/
diff --git a/mate-core/mate-starter-dependencies/pom.xml b/mate-core/mate-starter-dependencies/pom.xml
index 8cc86da8a..9579ca21c 100644
--- a/mate-core/mate-starter-dependencies/pom.xml
+++ b/mate-core/mate-starter-dependencies/pom.xml
@@ -232,13 +232,17 @@
+
releases
Release Repository
http://nexus.mate.vip/repository/maven-releases/
+
+ nexus-snapshots
+ http://nexus.mate.vip/repository/maven-snapshots/
+
-
\ No newline at end of file
diff --git a/mate-support/mate-code/src/main/java/vip/mate/code/manual/ManualGenerator.java b/mate-support/mate-code/src/main/java/vip/mate/code/manual/ManualGenerator.java
index af9085015..a098a2060 100644
--- a/mate-support/mate-code/src/main/java/vip/mate/code/manual/ManualGenerator.java
+++ b/mate-support/mate-code/src/main/java/vip/mate/code/manual/ManualGenerator.java
@@ -117,7 +117,7 @@ public boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String f
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
- strategy.setSuperEntityClass("vip.mate.core.common.entity.MateEntity");
+ strategy.setSuperEntityClass("vip.mate.core.database.entity.BaseEntity");
strategy.setEntityLombokModel(true);
strategy.setRestControllerStyle(true);
// 公共父类
From 8e0ac6ed1efe7b2c5e0b663bc6b2e340b575fcf2 Mon Sep 17 00:00:00 2001
From: pangu <7333791@qq.com>
Date: Fri, 3 Jul 2020 21:05:52 +0800
Subject: [PATCH 067/802] =?UTF-8?q?=E9=85=8D=E5=90=88=E5=89=8D=E7=AB=AF?=
=?UTF-8?q?=E5=AE=9E=E7=8E=B0=E6=8C=89=E9=92=AE=E6=8E=A7=E5=88=B6=E5=8A=9F?=
=?UTF-8?q?=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 6 +--
.../feign/ISysRolePermissionProvider.java | 19 ++++++++
.../mate/system/feign/ISysUserProvider.java | 4 +-
.../feign/SysRolePermissionProvider.java | 45 +++++++++++++++++++
.../service/ISysRolePermissionService.java | 4 ++
.../impl/SysRolePermissionServiceImpl.java | 9 ++++
.../mate/oauth/controller/AuthController.java | 6 +++
7 files changed, 87 insertions(+), 6 deletions(-)
create mode 100644 mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysRolePermissionProvider.java
create mode 100644 mate-platform/mate-system/src/main/java/vip/mate/system/feign/SysRolePermissionProvider.java
diff --git a/README.md b/README.md
index b142d1ad8..4521fc3da 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,4 @@
-
@@ -12,7 +11,7 @@
## 如果您觉得有帮助,请点右上角 "Star" 支持一下谢谢
-MateCloud是一款基于Spring Cloud Alibaba的微服务架构。
+MateCloud是一款基于Spring Cloud Alibaba的微服务架构。旨在为大家提供技术框架的基础能力的封装,减少开发工作,让您只关注业务。
### 功能特点
1. 采用最新的Spring Cloud Alibaba封装;
@@ -27,4 +26,5 @@ MateCloud是一款基于Spring Cloud Alibaba的微服务架构。
6. 支持报文加密和验证机制(待开发)。
-
+### 技术交流
+QQ群:2003638
diff --git a/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysRolePermissionProvider.java b/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysRolePermissionProvider.java
new file mode 100644
index 000000000..54968a261
--- /dev/null
+++ b/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysRolePermissionProvider.java
@@ -0,0 +1,19 @@
+package vip.mate.system.feign;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import vip.mate.core.feign.constant.FeignConstant;
+
+import java.util.List;
+
+@FeignClient(value = FeignConstant.MATE_CLOUD_SYSTEM)
+public interface ISysRolePermissionProvider {
+
+ /**
+ * 通过roleId获取权限列表
+ * @param roleId 角色ID
+ * @return List
+ */
+ @GetMapping("/provider/sys-role-permission/get-permission")
+ List getMenuIdByRoleId(String roleId);
+}
diff --git a/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysUserProvider.java b/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysUserProvider.java
index d55f23b63..55ebf3065 100644
--- a/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysUserProvider.java
+++ b/mate-platform/mate-system-api/src/main/java/vip/mate/system/feign/ISysUserProvider.java
@@ -9,9 +9,7 @@
import javax.servlet.http.HttpServletRequest;
-@FeignClient(
- value = FeignConstant.MATE_CLOUD_SYSTEM
-)
+@FeignClient(value = FeignConstant.MATE_CLOUD_SYSTEM)
public interface ISysUserProvider {
@GetMapping("/provider/user-info-by-id")
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/feign/SysRolePermissionProvider.java b/mate-platform/mate-system/src/main/java/vip/mate/system/feign/SysRolePermissionProvider.java
new file mode 100644
index 000000000..1b57ebb64
--- /dev/null
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/feign/SysRolePermissionProvider.java
@@ -0,0 +1,45 @@
+package vip.mate.system.feign;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+import vip.mate.system.entity.SysMenu;
+import vip.mate.system.entity.SysRolePermission;
+import vip.mate.system.service.ISysMenuService;
+import vip.mate.system.service.ISysRolePermissionService;
+
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+@Slf4j
+@RestController
+@AllArgsConstructor
+public class SysRolePermissionProvider implements ISysRolePermissionProvider {
+
+ private final ISysRolePermissionService sysRolePermissionService;
+ private final ISysMenuService sysMenuService;
+
+ @Override
+ @GetMapping("/provider/sys-role-permission/get-permission")
+ public List getMenuIdByRoleId(String roleId) {
+ //1.根据角色ID,查询菜单列表
+ List sysRolePermissions = sysRolePermissionService.getMenuIdByRoleId(roleId);
+ //2.根据menuId从mate_sys_menu表中查询按钮,也就是type=2,并返回List
+ List strings = sysRolePermissions.stream().map(sysRolePermission -> {
+ Long menuId = sysRolePermission.getMenuId();
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.eq(SysMenu::getId, menuId);
+ lambdaQueryWrapper.eq(SysMenu::getType, 2);
+ SysMenu sysMenu = sysMenuService.getOne(lambdaQueryWrapper);
+ if (ObjectUtils.isEmpty(sysMenu)) {
+ return null;
+ }
+ return sysMenu.getPermission();
+ }).filter(Objects::nonNull).collect(Collectors.toList());
+ return strings;
+ }
+}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysRolePermissionService.java b/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysRolePermissionService.java
index 8e0ad77af..2fb7e3821 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysRolePermissionService.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysRolePermissionService.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.extension.service.IService;
import vip.mate.system.entity.SysRolePermission;
+import java.util.List;
+
/**
*
* 角色权限表 服务类
@@ -13,4 +15,6 @@
*/
public interface ISysRolePermissionService extends IService {
+ List getMenuIdByRoleId(String roleId);
+
}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysRolePermissionServiceImpl.java b/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysRolePermissionServiceImpl.java
index 77d7f0986..1da86b28c 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysRolePermissionServiceImpl.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysRolePermissionServiceImpl.java
@@ -1,11 +1,14 @@
package vip.mate.system.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import vip.mate.system.entity.SysRolePermission;
import vip.mate.system.mapper.SysRolePermissionMapper;
import vip.mate.system.service.ISysRolePermissionService;
+import java.util.List;
+
/**
*
* 角色权限表 服务实现类
@@ -17,4 +20,10 @@
@Service
public class SysRolePermissionServiceImpl extends ServiceImpl implements ISysRolePermissionService {
+ @Override
+ public List getMenuIdByRoleId(String roleId) {
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.eq(SysRolePermission::getRoleId, roleId);
+ return this.baseMapper.selectList(lambdaQueryWrapper);
+ }
}
diff --git a/mate-uaa/src/main/java/vip/mate/oauth/controller/AuthController.java b/mate-uaa/src/main/java/vip/mate/oauth/controller/AuthController.java
index 068e20e77..d3fb66ef4 100644
--- a/mate-uaa/src/main/java/vip/mate/oauth/controller/AuthController.java
+++ b/mate-uaa/src/main/java/vip/mate/oauth/controller/AuthController.java
@@ -12,10 +12,12 @@
import vip.mate.core.common.util.SecurityUtil;
import vip.mate.oauth.service.CaptchaService;
import vip.mate.system.entity.SysUser;
+import vip.mate.system.feign.ISysRolePermissionProvider;
import vip.mate.system.feign.ISysUserProvider;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
@Slf4j
@@ -30,6 +32,8 @@ public class AuthController {
private final ISysUserProvider sysUserProvider;
+ private final ISysRolePermissionProvider sysRolePermissionProvider;
+
private final TokenService tokenService;
@GetMapping("/auth/userInfo")
@@ -42,6 +46,8 @@ public Result> getUserInfo(HttpServletRequest request) {
data.put("avatar", sysUser.getAvatar());
data.put("roleId", sysUser.getRoleId());
data.put("departId", sysUser.getDepartId());
+ List stringList = sysRolePermissionProvider.getMenuIdByRoleId(String.valueOf(sysUser.getRoleId()));
+ data.put("permissions", stringList);
return Result.data(data);
}
From cc5e28106c0f1ae8af55ac369df3080093d3412b Mon Sep 17 00:00:00 2001
From: pangu <7333791@qq.com>
Date: Sat, 4 Jul 2020 00:07:07 +0800
Subject: [PATCH 068/802] =?UTF-8?q?=E5=9F=BA=E4=BA=8Etoken=E5=BF=AB?=
=?UTF-8?q?=E9=80=9F=E8=8E=B7=E5=8F=96=E7=94=A8=E6=88=B7=E7=99=BB=E5=BD=95?=
=?UTF-8?q?=E4=BF=A1=E6=81=AF=EF=BC=8C=E5=BA=94=E7=94=A8=E8=8C=83=E5=9B=B4?=
=?UTF-8?q?mate-system?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../mate/core/auth/service/TokenService.java | 3 +-
.../auth/service/impl/TokenServiceImpl.java | 4 +-
.../mate/core/common/context/UserContext.java | 17 ++++++
.../mate/core/common/entity/LoginUser.java | 59 +++++++++++++++++++
.../core/security/userdetails/MateUser.java | 9 ++-
.../core/web/handler/ControllerHandler.java | 13 ++++
.../vip/mate/system/config/WebConfig.java | 35 +++++++++++
.../system/controller/SysMenuController.java | 5 +-
.../system/interceptor/LoginInterceptor.java | 41 +++++++++++++
.../LoginUserArgumentResolver.java | 24 ++++++++
.../mate/oauth/config/AuthServerConfig.java | 10 +---
.../mate/oauth/controller/AuthController.java | 4 +-
.../service/impl/UserDetailsServiceImpl.java | 4 +-
13 files changed, 212 insertions(+), 16 deletions(-)
create mode 100644 mate-core/mate-starter-common/src/main/java/vip/mate/core/common/context/UserContext.java
create mode 100644 mate-core/mate-starter-common/src/main/java/vip/mate/core/common/entity/LoginUser.java
create mode 100644 mate-platform/mate-system/src/main/java/vip/mate/system/config/WebConfig.java
create mode 100644 mate-platform/mate-system/src/main/java/vip/mate/system/interceptor/LoginInterceptor.java
create mode 100644 mate-platform/mate-system/src/main/java/vip/mate/system/interceptor/LoginUserArgumentResolver.java
diff --git a/mate-core/mate-starter-auth/src/main/java/vip/mate/core/auth/service/TokenService.java b/mate-core/mate-starter-auth/src/main/java/vip/mate/core/auth/service/TokenService.java
index f458167e9..4df633306 100644
--- a/mate-core/mate-starter-auth/src/main/java/vip/mate/core/auth/service/TokenService.java
+++ b/mate-core/mate-starter-auth/src/main/java/vip/mate/core/auth/service/TokenService.java
@@ -1,6 +1,7 @@
package vip.mate.core.auth.service;
+import io.jsonwebtoken.Claims;
import vip.mate.core.common.exception.TokenException;
import javax.servlet.http.HttpServletRequest;
@@ -10,5 +11,5 @@ public interface TokenService {
* 检验token
* @return
*/
- String checkToken(HttpServletRequest request) throws TokenException;
+ Claims checkToken(HttpServletRequest request) throws TokenException;
}
diff --git a/mate-core/mate-starter-auth/src/main/java/vip/mate/core/auth/service/impl/TokenServiceImpl.java b/mate-core/mate-starter-auth/src/main/java/vip/mate/core/auth/service/impl/TokenServiceImpl.java
index e65850b1c..63d050658 100644
--- a/mate-core/mate-starter-auth/src/main/java/vip/mate/core/auth/service/impl/TokenServiceImpl.java
+++ b/mate-core/mate-starter-auth/src/main/java/vip/mate/core/auth/service/impl/TokenServiceImpl.java
@@ -22,7 +22,7 @@
public class TokenServiceImpl implements TokenService {
@Override
- public String checkToken(HttpServletRequest request) throws TokenException {
+ public Claims checkToken(HttpServletRequest request) throws TokenException {
String headerToken = request.getHeader(Oauth2Constant.HEADER_TOKEN);
if (StringUtils.isBlank(headerToken)) {
throw new TokenException("没有携带Token信息!");
@@ -38,6 +38,6 @@ public String checkToken(HttpServletRequest request) throws TokenException {
throw new TokenException("Token已过期!");
}
}
- return (String) claims.get("userName");
+ return claims;
}
}
diff --git a/mate-core/mate-starter-common/src/main/java/vip/mate/core/common/context/UserContext.java b/mate-core/mate-starter-common/src/main/java/vip/mate/core/common/context/UserContext.java
new file mode 100644
index 000000000..b9c4f2285
--- /dev/null
+++ b/mate-core/mate-starter-common/src/main/java/vip/mate/core/common/context/UserContext.java
@@ -0,0 +1,17 @@
+package vip.mate.core.common.context;
+
+
+import vip.mate.core.common.entity.LoginUser;
+
+public class UserContext {
+
+ private static ThreadLocal userHolder = new ThreadLocal();
+
+ public static void setUser(LoginUser loginUser) {
+ userHolder.set(loginUser);
+ }
+
+ public static LoginUser getUser() {
+ return userHolder.get();
+ }
+}
diff --git a/mate-core/mate-starter-common/src/main/java/vip/mate/core/common/entity/LoginUser.java b/mate-core/mate-starter-common/src/main/java/vip/mate/core/common/entity/LoginUser.java
new file mode 100644
index 000000000..d771e9be8
--- /dev/null
+++ b/mate-core/mate-starter-common/src/main/java/vip/mate/core/common/entity/LoginUser.java
@@ -0,0 +1,59 @@
+package vip.mate.core.common.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class LoginUser implements Serializable {
+
+ private static final long serialVersionUID = 1599282604110237521L;
+
+ /**
+ * 用户id
+ */
+ @ApiModelProperty(hidden = true)
+ private String userId;
+ /**
+ * 账号
+ */
+ @ApiModelProperty(hidden = true)
+ private String account;
+ /**
+ * 用户名
+ */
+ @ApiModelProperty(hidden = true)
+ private String userName;
+ /**
+ * 昵称
+ */
+ @ApiModelProperty(hidden = true)
+ private String nickName;
+ /**
+ * 租户ID
+ */
+ @ApiModelProperty(hidden = true)
+ private String tenantId;
+ /**
+ * 部门id
+ */
+ @ApiModelProperty(hidden = true)
+ private String deptId;
+ /**
+ * 岗位id
+ */
+ @ApiModelProperty(hidden = true)
+ private String postId;
+ /**
+ * 角色id
+ */
+ @ApiModelProperty(hidden = true)
+ private String roleId;
+ /**
+ * 角色名
+ */
+ @ApiModelProperty(hidden = true)
+ private String roleName;
+
+}
diff --git a/mate-core/mate-starter-security/src/main/java/vip/mate/core/security/userdetails/MateUser.java b/mate-core/mate-starter-security/src/main/java/vip/mate/core/security/userdetails/MateUser.java
index 74d58fc26..ea60150b2 100644
--- a/mate-core/mate-starter-security/src/main/java/vip/mate/core/security/userdetails/MateUser.java
+++ b/mate-core/mate-starter-security/src/main/java/vip/mate/core/security/userdetails/MateUser.java
@@ -15,6 +15,12 @@ public class MateUser extends User {
*/
@Getter
private Long id;
+
+ /**
+ * 部门ID
+ */
+ @Getter
+ private Long roleId;
/**
* 部门ID
*/
@@ -39,9 +45,10 @@ public class MateUser extends User {
@Getter
private String tenantId;
- public MateUser(Long id, Long departId, String phone, String avatar, String tenantId, String username, String password, boolean enabled, boolean accountNonExpired, boolean credentialsNonExpired, boolean accountNonLocked, Collection extends GrantedAuthority> authorities) {
+ public MateUser(Long id, Long departId, Long roleId, String phone, String avatar, String tenantId, String username, String password, boolean enabled, boolean accountNonExpired, boolean credentialsNonExpired, boolean accountNonLocked, Collection extends GrantedAuthority> authorities) {
super(username, password, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities);
this.id = id;
+ this.roleId = roleId;
this.departId = departId;
this.phone = phone;
this.avatar = avatar;
diff --git a/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/handler/ControllerHandler.java b/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/handler/ControllerHandler.java
index 289ff7baf..5370e589c 100644
--- a/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/handler/ControllerHandler.java
+++ b/mate-core/mate-starter-web/src/main/java/vip/mate/core/web/handler/ControllerHandler.java
@@ -57,4 +57,17 @@ public Result> handleException(Exception ex) {
log.error("程序异常:" + ex.toString());
return Result.fail(HttpStatus.INTERNAL_SERVER_ERROR.value(), ex.getMessage());
}
+
+ /**
+ * NullPointerException 空指针异常捕获处理
+ * @param ex 自定义NullPointerException异常类型
+ * @return Result
+ */
+ @ExceptionHandler
+ @ResponseBody
+ @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
+ public Result> handleException(NullPointerException ex) {
+ log.error("程序异常:" + ex.toString());
+ return Result.fail(HttpStatus.INTERNAL_SERVER_ERROR.value(), ex.getMessage());
+ }
}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/config/WebConfig.java b/mate-platform/mate-system/src/main/java/vip/mate/system/config/WebConfig.java
new file mode 100644
index 000000000..571184b8a
--- /dev/null
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/config/WebConfig.java
@@ -0,0 +1,35 @@
+package vip.mate.system.config;
+
+import lombok.AllArgsConstructor;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.method.support.HandlerMethodArgumentResolver;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+import vip.mate.system.interceptor.LoginInterceptor;
+import vip.mate.system.interceptor.LoginUserArgumentResolver;
+
+import java.util.List;
+
+/**
+ * 基于token快速获取用户登录信息
+ * @author pangu
+ * @link https://blog.csdn.net/lizc_lizc/article/details/99171901
+ */
+@Configuration
+@AllArgsConstructor
+public class WebConfig implements WebMvcConfigurer {
+
+ private final LoginInterceptor loginInterceptor;
+
+ private final LoginUserArgumentResolver loginUserArgumentResolver;
+
+ @Override
+ public void addArgumentResolvers(List resolvers) {
+ resolvers.add(loginUserArgumentResolver);
+ }
+
+ @Override
+ public void addInterceptors(InterceptorRegistry registry) {
+ registry.addInterceptor(loginInterceptor).addPathPatterns("/**"); //配置拦截规则
+ }
+}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysMenuController.java b/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysMenuController.java
index 4e51e2d6c..8903b8d41 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysMenuController.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysMenuController.java
@@ -3,11 +3,13 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import vip.mate.core.common.api.Result;
import vip.mate.core.common.constant.MateConstant;
+import vip.mate.core.common.entity.LoginUser;
import vip.mate.core.web.controller.BaseController;
import vip.mate.core.web.tree.ForestNodeMerger;
import vip.mate.core.web.util.CollectionUtil;
@@ -30,6 +32,7 @@
* @author xuzf
* @since 2020-06-18
*/
+@Slf4j
@RestController
@AllArgsConstructor
@RequestMapping("/sys-menu")
@@ -38,7 +41,7 @@ public class SysMenuController extends BaseController {
private final ISysMenuService sysMenuService;
@GetMapping("/routes")
- public Result> routes() {
+ public Result> routes(LoginUser loginUser) {
return Result.data(sysMenuService.routes());
}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/interceptor/LoginInterceptor.java b/mate-platform/mate-system/src/main/java/vip/mate/system/interceptor/LoginInterceptor.java
new file mode 100644
index 000000000..e28bfeb70
--- /dev/null
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/interceptor/LoginInterceptor.java
@@ -0,0 +1,41 @@
+package vip.mate.system.interceptor;
+
+import io.jsonwebtoken.Claims;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
+import vip.mate.core.auth.service.TokenService;
+import vip.mate.core.common.context.UserContext;
+import vip.mate.core.common.entity.LoginUser;
+import vip.mate.core.web.util.CollectionUtil;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+@Service
+@AllArgsConstructor
+public class LoginInterceptor extends HandlerInterceptorAdapter {
+
+ private final TokenService tokenService;
+
+ @Override
+ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+ if (handler instanceof HandlerMethod) {
+ LoginUser loginUser = getUser(request, response);
+ UserContext.setUser(loginUser);
+ }
+ return super.preHandle(request, response, handler);
+ }
+
+ private LoginUser getUser(HttpServletRequest request, HttpServletResponse response) {
+ Claims claims = tokenService.checkToken(request);
+ // 然后根据token获取用户登录信息,这里省略获取用户信息的过程
+ LoginUser loginUser = new LoginUser();
+ loginUser.setUserId(String.valueOf(claims.get("userId")));
+ loginUser.setAccount((String) claims.get("userName"));
+ loginUser.setRoleId(String.valueOf(claims.get("roleId")));
+ return loginUser;
+ }
+
+}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/interceptor/LoginUserArgumentResolver.java b/mate-platform/mate-system/src/main/java/vip/mate/system/interceptor/LoginUserArgumentResolver.java
new file mode 100644
index 000000000..69be04bae
--- /dev/null
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/interceptor/LoginUserArgumentResolver.java
@@ -0,0 +1,24 @@
+package vip.mate.system.interceptor;
+
+import org.springframework.core.MethodParameter;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.support.WebDataBinderFactory;
+import org.springframework.web.context.request.NativeWebRequest;
+import org.springframework.web.method.support.HandlerMethodArgumentResolver;
+import org.springframework.web.method.support.ModelAndViewContainer;
+import vip.mate.core.common.context.UserContext;
+import vip.mate.core.common.entity.LoginUser;
+
+@Component
+public class LoginUserArgumentResolver implements HandlerMethodArgumentResolver {
+ @Override
+ public boolean supportsParameter(MethodParameter parameter) {
+ Class> clazz = parameter.getParameterType();
+ return clazz == LoginUser.class;
+ }
+
+ @Override
+ public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
+ return UserContext.getUser();
+ }
+}
diff --git a/mate-uaa/src/main/java/vip/mate/oauth/config/AuthServerConfig.java b/mate-uaa/src/main/java/vip/mate/oauth/config/AuthServerConfig.java
index 798a19bba..5e2762cf3 100644
--- a/mate-uaa/src/main/java/vip/mate/oauth/config/AuthServerConfig.java
+++ b/mate-uaa/src/main/java/vip/mate/oauth/config/AuthServerConfig.java
@@ -30,20 +30,14 @@
import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerEndpointsConfigurer;
import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerSecurityConfigurer;
import org.springframework.security.oauth2.provider.OAuth2Authentication;
-import org.springframework.security.oauth2.provider.error.WebResponseExceptionTranslator;
import org.springframework.security.oauth2.provider.token.TokenEnhancer;
import org.springframework.security.oauth2.provider.token.TokenEnhancerChain;
import org.springframework.security.oauth2.provider.token.store.JwtAccessTokenConverter;
import org.springframework.security.oauth2.provider.token.store.redis.RedisTokenStore;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
import vip.mate.core.common.constant.Oauth2Constant;
import vip.mate.core.security.userdetails.MateUser;
import vip.mate.oauth.service.impl.ClientDetailsServiceImpl;
-import vip.mate.oauth.service.impl.UserDetailsServiceImpl;
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
@@ -133,10 +127,10 @@ public OAuth2AccessToken enhance(OAuth2AccessToken oAuth2AccessToken, OAuth2Auth
// 如果用户不为空 则把id放入jwt token中
if (user != null) {
- additionMessage.put("userId", user.getId());
+ additionMessage.put("userId", String.valueOf(user.getId()));
additionMessage.put("userName", user.getUsername());
additionMessage.put("avatar", user.getAvatar());
-
+ additionMessage.put("roleId", String.valueOf(user.getRoleId()));
}
((DefaultOAuth2AccessToken)oAuth2AccessToken).setAdditionalInformation(additionMessage);
return oAuth2AccessToken;
diff --git a/mate-uaa/src/main/java/vip/mate/oauth/controller/AuthController.java b/mate-uaa/src/main/java/vip/mate/oauth/controller/AuthController.java
index d3fb66ef4..d7cd8ca02 100644
--- a/mate-uaa/src/main/java/vip/mate/oauth/controller/AuthController.java
+++ b/mate-uaa/src/main/java/vip/mate/oauth/controller/AuthController.java
@@ -1,5 +1,6 @@
package vip.mate.oauth.controller;
+import io.jsonwebtoken.Claims;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Qualifier;
@@ -38,7 +39,8 @@ public class AuthController {
@GetMapping("/auth/userInfo")
public Result> getUserInfo(HttpServletRequest request) {
- String userName = tokenService.checkToken(request);
+ Claims claims = tokenService.checkToken(request);
+ String userName = (String)claims.get("userName");
SysUser sysUser = sysUserProvider.loadUserByUserName(userName).getData();
Map data = new HashMap<>();
diff --git a/mate-uaa/src/main/java/vip/mate/oauth/service/impl/UserDetailsServiceImpl.java b/mate-uaa/src/main/java/vip/mate/oauth/service/impl/UserDetailsServiceImpl.java
index f657fc1b4..ca43025a2 100644
--- a/mate-uaa/src/main/java/vip/mate/oauth/service/impl/UserDetailsServiceImpl.java
+++ b/mate-uaa/src/main/java/vip/mate/oauth/service/impl/UserDetailsServiceImpl.java
@@ -24,9 +24,9 @@ public UserDetails loadUserByUsername(String userName) throws UsernameNotFoundEx
SysUser user = sysUserProvider.loadUserByUserName(userName).getData();
log.info("用户名:{}", userName);
- return new MateUser(user.getId(), user.getDepartId(), user.getTelephone(), user.getAvatar(),
+ return new MateUser(user.getId(), user.getDepartId(), user.getRoleId(), user.getTelephone(), user.getAvatar(),
user.getTenantId(), user.getAccount(), user.getPassword(), user.getStatus().equals("0")?true:false,
- true, true, true,
+ true, true, user.getStatus().equals("0")?true:false,
AuthorityUtils.commaSeparatedStringToAuthorityList("admin, ROLE_USER"));
}
}
From dc8644159a2d9cf94d56801bb0397da7ee95701b Mon Sep 17 00:00:00 2001
From: pangu <7333791@qq.com>
Date: Sat, 4 Jul 2020 01:16:18 +0800
Subject: [PATCH 069/802] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=A0=B9=E6=8D=AErol?=
=?UTF-8?q?eId=E8=8E=B7=E5=8F=96=E8=8F=9C=E5=8D=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../system/controller/SysMenuController.java | 2 +-
.../vip/mate/system/mapper/SysMenuMapper.java | 4 ++++
.../vip/mate/system/mapper/SysMenuMapper.xml | 22 +++++++++++++++++++
.../mate/system/service/ISysMenuService.java | 2 +-
.../service/impl/SysMenuServiceImpl.java | 18 +++++++--------
5 files changed, 37 insertions(+), 11 deletions(-)
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysMenuController.java b/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysMenuController.java
index 8903b8d41..4e0928339 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysMenuController.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/controller/SysMenuController.java
@@ -42,7 +42,7 @@ public class SysMenuController extends BaseController {
@GetMapping("/routes")
public Result> routes(LoginUser loginUser) {
- return Result.data(sysMenuService.routes());
+ return Result.data(sysMenuService.routes(loginUser.getRoleId()));
}
@GetMapping("/list")
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysMenuMapper.java b/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysMenuMapper.java
index 2d27f39aa..8706c33b3 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysMenuMapper.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysMenuMapper.java
@@ -3,6 +3,8 @@
import vip.mate.system.entity.SysMenu;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+
/**
*
* 菜单权限表 Mapper 接口
@@ -13,4 +15,6 @@
*/
public interface SysMenuMapper extends BaseMapper {
+ List routes(String roleId);
+
}
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysMenuMapper.xml b/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysMenuMapper.xml
index 118726a8b..28acdf5b6 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysMenuMapper.xml
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/mapper/SysMenuMapper.xml
@@ -2,4 +2,26 @@
+
+
+
+
+ SELECT
+ *
+ FROM
+ mate_sys_menu
+ WHERE
+ is_deleted = 0 and type != 2
+ and id IN ( SELECT menu_id FROM mate_sys_role_permission WHERE role_id = #{param1})
+
+
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysMenuService.java b/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysMenuService.java
index ecdc13ad6..0021b4f64 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysMenuService.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/service/ISysMenuService.java
@@ -19,7 +19,7 @@
public interface ISysMenuService extends IService {
@Cached(name="sysMenuService.routes", expire = 3600)
- List routes();
+ List routes(String roleId);
List searchList(Map search);
diff --git a/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysMenuServiceImpl.java b/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysMenuServiceImpl.java
index ce98f354d..43d5cb6ba 100644
--- a/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysMenuServiceImpl.java
+++ b/mate-platform/mate-system/src/main/java/vip/mate/system/service/impl/SysMenuServiceImpl.java
@@ -32,17 +32,17 @@
public class SysMenuServiceImpl extends ServiceImpl implements ISysMenuService {
@Override
- public List routes() {
+ public List routes(String roleId) {
//1. 获取用户的菜单列表,待扩展
- List menus = list();
- //2. 去掉非菜单类型
- List sysMenuList = menus.stream()
- .filter(sysMenu -> MenuTypeEnum.MENU.getCode().equals(sysMenu.getType()) ||
- MenuTypeEnum.DIR.getCode().equals(sysMenu.getType()) )
- .sorted(Comparator.comparingInt(SysMenu::getSort))
- .collect(Collectors.toList());
+ List menus = this.baseMapper.routes(roleId);
+// //2. 去掉非菜单类型
+// List