diff --git a/Readme.md b/Readme.md
index e16dc20..47cba93 100644
--- a/Readme.md
+++ b/Readme.md
@@ -38,6 +38,13 @@ sanyicloud -->
大区 项目(银行) 区域 人员 商户, 人员分为员工和管理等
```
+mysql 授权
+```sql
+CREATE USER 'nacos'@'%' IDENTIFIED BY 'nacos';
+grant ALL on nacos_config.* to 'nacos'@'%';
+flush privileges;
+```
+
hadoop 安装教程 https://www.cnblogs.com/jhno1/p/15218656.html
mongo 单节点开启事务 https://www.jianshu.com/p/5a03b956ce1c
diff --git a/chushang-common/chushang-common-core/pom.xml b/chushang-common/chushang-common-core/pom.xml
index 14a7909..636ac6e 100644
--- a/chushang-common/chushang-common-core/pom.xml
+++ b/chushang-common/chushang-common-core/pom.xml
@@ -60,6 +60,18 @@
com.alibaba.fastjson2
fastjson2
+
+ org.lionsoul
+ ip2region
+
+
+
+
+ src/main/resources
+ false
+
+
+
diff --git a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/exception/ResultException.java b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/exception/ResultException.java
index 8336f82..3f6a3de 100644
--- a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/exception/ResultException.java
+++ b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/exception/ResultException.java
@@ -16,7 +16,7 @@ public class ResultException extends RuntimeException {
private static final long serialVersionUID = 1L;
private String msg;
- private String code = "500";
+ private Integer code = 500;
private String detailMsg;
public ResultException(String msg) {
@@ -29,7 +29,7 @@ public class ResultException extends RuntimeException {
this.msg = msg;
}
- public ResultException(String msg, String code) {
+ public ResultException(String msg, Integer code) {
super(msg);
this.msg = msg;
this.code = code;
@@ -38,20 +38,20 @@ public class ResultException extends RuntimeException {
/**
* 内部 展示, 应当仅用于 调试 todo 怎么做没想好
*/
- public ResultException(String msg,String detailMsg, String code) {
+ public ResultException(String msg,String detailMsg, Integer code) {
super(msg);
this.msg = msg;
this.detailMsg = detailMsg;
this.code = code;
}
- public ResultException(EnumUtils.CodeEnum codeEnum){
+ public ResultException(EnumUtils.CodeEnum codeEnum){
super(codeEnum.getMsg());
this.msg = codeEnum.getMsg();
this.code = codeEnum.getCode();
}
- public ResultException(String msg, String code, Throwable e) {
+ public ResultException(String msg, Integer code, Throwable e) {
super(msg, e);
this.msg = msg;
this.code = code;
diff --git a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/exception/enums/ExceptionEnum.java b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/exception/enums/ExceptionEnum.java
index a7afb35..213eca8 100644
--- a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/exception/enums/ExceptionEnum.java
+++ b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/exception/enums/ExceptionEnum.java
@@ -9,7 +9,7 @@ import lombok.Getter;
*/
@Getter
@AllArgsConstructor
-public enum ExceptionEnum implements EnumUtils.CodeEnum{
+public enum ExceptionEnum implements EnumUtils.CodeEnum{
RESOURCE_EXIST(3404,"资源不存在"),
APP_RESOURCE_EXIST(3404,"产品资源不存在"),
PLATFORM_RESOURCE_EXIST(3404,"平台资源不存在"),
diff --git a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/exception/utils/AssertUtil.java b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/exception/utils/AssertUtil.java
index 4a25bb1..84ef343 100644
--- a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/exception/utils/AssertUtil.java
+++ b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/exception/utils/AssertUtil.java
@@ -12,7 +12,7 @@ public class AssertUtil {
public AssertUtil() {
}
- public static void invalidate(boolean condition, EnumUtils.CodeEnum msg) {
+ public static void invalidate(boolean condition, EnumUtils.CodeEnum msg) {
if (condition) {
throw new ResultException(msg);
}
diff --git a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/util/IPUtils.java b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/util/IPUtils.java
index 012c1a0..d3032a4 100644
--- a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/util/IPUtils.java
+++ b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/util/IPUtils.java
@@ -10,19 +10,185 @@ import java.util.Objects;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import cn.hutool.core.io.resource.ResourceUtil;
+import cn.hutool.core.net.Ipv4Util;
+import cn.hutool.core.net.NetUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.extra.servlet.ServletUtil;
+import cn.hutool.http.useragent.UserAgent;
+import cn.hutool.http.useragent.UserAgentUtil;
+import cn.hutool.system.OsInfo;
+import cn.hutool.system.SystemUtil;
import com.alibaba.fastjson2.JSON;
+import org.lionsoul.ip2region.xdb.Searcher;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpHeaders;
import org.springframework.http.server.reactive.ServerHttpRequest;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
public class IPUtils {
private static final Logger log = LoggerFactory.getLogger(IPUtils.class);
+ /**
+ * 文件地址
+ */
+ private static final String DB_PATE = "ip2region.xdb";
+ /**
+ * 查询对象
+ */
+ private static final Searcher SEARCHER;
+
+ static {
+ // 创建一个完全基于内存的查询对象
+ try {
+ SEARCHER = Searcher.newWithBuffer(ResourceUtil.readBytes(DB_PATE));
+ log.info("-------------------- ip2region初始化完成 --------------------");
+ } catch (Exception e) {
+ log.error("ip2region.xdb初始化失败,地址:[{}]", DB_PATE, e);
+ throw new RuntimeException();
+ }
+ }
+
+
public IPUtils() {
}
+
+ /**
+ * 获取ip地址详细信息
+ *
+ * @param ip ip地址
+ * @return ip所在城市
+ * @author 单傲
+ * @date 2023/1/12 14:02
+ */
+ public static String getLocalCityInfo(String ip) {
+ try {
+ if (!ip.contains(":")) {
+ return NetUtil.isInnerIP(ip) ? "内网IP" : SEARCHER.search(ip).replace("|", "-").replace("-0", StrUtil.EMPTY);
+ } else {
+ return "未知IP";
+ }
+ } catch (Exception e) {
+ log.error("ip地址解析失败,【{}】", ip, e);
+ }
+ return null;
+ }
+
+ /**
+ * 获取ip地址详细信息
+ *
+ * @return ip所在城市
+ * @author 单傲
+ * @date 2023/1/12 14:02
+ */
+ public static String getLocalCityInfo() {
+ return getLocalCityInfo(clientIp(getRequest()));
+ }
+
+
+ /**
+ * 获取ip地址详细信息
+ *
+ * @return ip所在城市
+ * @author 单傲
+ * @date 2023/1/12 14:02
+ */
+ public static String getLocalCityInfo(HttpServletRequest request) {
+ return getLocalCityInfo(clientIp(request));
+ }
+
+ /**
+ * 获取浏览器类型
+ *
+ * @param request 请求
+ * @return 类型
+ * @author 单傲
+ * @date 2023/1/12 14:02
+ */
+ public static String getBrowser(HttpServletRequest request) {
+ if (ObjectUtil.isEmpty(request) && StrUtil.isBlank(request.getHeader("User-Agent"))) {
+ return StrUtil.EMPTY;
+ }
+ UserAgent parse = UserAgentUtil.parse(request.getHeader("User-Agent"));
+ return parse.isMobile() ? parse.getOs().toString() : parse.getBrowser().toString();
+ }
+
+ public static String osName(){
+ UserAgent parse = UserAgentUtil.parse(Objects.requireNonNull(getRequest()).getHeader("User-Agent"));
+ return parse.getOs().getName();
+ }
+
+ /**
+ * 是否为app
+ *
+ * @author 单傲
+ * @date 2023/1/12 14:02
+ */
+ public static boolean isMobile() {
+ UserAgent parse = UserAgentUtil.parse(Objects.requireNonNull(getRequest()).getHeader("User-Agent"));
+ return parse.isMobile();
+ }
+
+ /**
+ * 获取浏览器类型
+ *
+ * @return 类型
+ * @author 单傲
+ * @date 2023/1/12 14:02
+ */
+ public static String getBrowser() {
+ return getBrowser(getRequest());
+ }
+
+ /**
+ * Servlet 请求属性
+ *
+ * @author 单傲
+ * @date 2023/3/15 10:41
+ */
+ public static ServletRequestAttributes getRequestAttributes() {
+ try {
+ return (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+
+ /**
+ * 获取request
+ *
+ * @author 单傲
+ * @date 2023/3/15 10:41
+ */
+ public static HttpServletRequest getRequest() {
+ try {
+ return getRequestAttributes().getRequest();
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ /**
+ * 获取response
+ *
+ * @author 单傲
+ * @date 2023/3/15 10:41
+ */
+ public static HttpServletResponse getResponse() {
+ try {
+ return getRequestAttributes().getResponse();
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
public static String clientIp(HttpServletRequest request) {
String realIps = clientIps(request);
return realIps.contains(",") ? realIps.split(",")[0] : realIps;
diff --git a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/web/EnumUtils.java b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/web/EnumUtils.java
index 370d77e..5552826 100644
--- a/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/web/EnumUtils.java
+++ b/chushang-common/chushang-common-core/src/main/java/com/chushang/common/core/web/EnumUtils.java
@@ -10,7 +10,7 @@ import java.io.Serializable;
*/
@UtilityClass
public class EnumUtils {
- public static > T getByCode(Serializable code, Class tClass) {
+ public static > T getByCode(Serializable code, Class tClass) {
if (null == code){
return null;
}
@@ -22,8 +22,8 @@ public class EnumUtils {
return null;
}
- public interface CodeEnum {
- C getCode();
+ public interface CodeEnum {
+ Integer getCode();
S getMsg();
}
}
diff --git a/chushang-common/chushang-common-core/src/main/resources/ip2region.xdb b/chushang-common/chushang-common-core/src/main/resources/ip2region.xdb
new file mode 100644
index 0000000..c78b792
Binary files /dev/null and b/chushang-common/chushang-common-core/src/main/resources/ip2region.xdb differ
diff --git a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/annotation/SysLog.java b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/annotation/SysLog.java
index 17e8267..f9d81a5 100644
--- a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/annotation/SysLog.java
+++ b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/annotation/SysLog.java
@@ -24,12 +24,6 @@ public @interface SysLog {
String value() default "";
- /**
- * 请求参数
- * 判断参数下标 -- 需要与 参数下标一一对应
- * 0 - Integer.MAX_VALUE 代表 参数下标
- */
- int index() default -1;
/**
* 操作类型
*/
@@ -37,4 +31,9 @@ public @interface SysLog {
boolean export() default false;
+ /**
+ * 是否 入库
+ */
+ boolean isDatabase() default true;
+
}
diff --git a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/aspect/SysLogAspect.java b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/aspect/SysLogAspect.java
index aa70e7a..dc20fc2 100644
--- a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/aspect/SysLogAspect.java
+++ b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/aspect/SysLogAspect.java
@@ -9,6 +9,7 @@
package com.chushang.common.log.aspect;
import cn.hutool.core.util.URLUtil;
+import com.alibaba.fastjson2.JSONObject;
import com.chushang.common.core.exception.ResultException;
import com.chushang.common.core.jackson.JacksonUtils;
import com.chushang.common.core.util.IPUtils;
@@ -106,7 +107,7 @@ public class SysLogAspect {
String value = syslog.value();
BusinessType businessType = syslog.businessType();
if (null != businessType){
- value += businessType.getDesc();
+ value = businessType.getDesc() + value;
sysLogEntity.setOperationType(businessType.getCode());
}
sysLogEntity.setOperation(value);
@@ -155,7 +156,11 @@ public class SysLogAspect {
// 日志类型
sysLogEntity.setType(type);
sysLogEntity.setException(ex);
- sysLogService.save(sysLogEntity);
+ if (syslog.isDatabase()){
+ sysLogService.save(sysLogEntity);
+ }else {
+ log.info("log {}", JSONObject.toJSONString(sysLogEntity));
+ }
} catch (Exception e) {
HttpServletRequest request = ServletUtils.getRequest();
// 保存日志失败 不应当影响 正常的操作
diff --git a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/controller/SysLogController.java b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/controller/SysLogController.java
index e9419ed..d288bba 100644
--- a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/controller/SysLogController.java
+++ b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/controller/SysLogController.java
@@ -36,7 +36,7 @@ public class SysLogController {
*/
@ResponseBody
@GetMapping("/list")
- @RequiresPermissions("sys:log:list")
+ @RequiresPermissions("system:log:list")
public AjaxResult list(ListLogDTO params){
PageResult page = sysLogService.queryPage(params);
return AjaxResult.success(page);
diff --git a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/enums/LogTypeEnum.java b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/enums/LogTypeEnum.java
index 01a0fe7..7191a86 100644
--- a/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/enums/LogTypeEnum.java
+++ b/chushang-common/chushang-common-log/src/main/java/com/chushang/common/log/enums/LogTypeEnum.java
@@ -9,7 +9,7 @@ import lombok.Getter;
*/
@Getter
@AllArgsConstructor
-public enum LogTypeEnum implements EnumUtils.CodeEnum, IEnum {
+public enum LogTypeEnum implements EnumUtils.CodeEnum, IEnum {
NORMAL(0,"正常日志"),
ERROR(9,"错误日志")
;
diff --git a/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/page/CommonParam.java b/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/page/CommonParam.java
index 973fbf6..9e31bf5 100644
--- a/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/page/CommonParam.java
+++ b/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/page/CommonParam.java
@@ -111,9 +111,12 @@ public class CommonParam implements Serializable {
CommonParam pageDomain = new CommonParam();
pageDomain.setPage(Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1));
pageDomain.setLimit(Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10));
- pageDomain.setOrderBy(ServletUtils.getParameter(ORDER_BY_COLUMN));
- pageDomain.setIsAsc(ServletUtils.getParameter(IS_ASC));
- pageDomain.setGroupStr(ServletUtils.getParameter(GROUP_STR));
+ if (StringUtils.isNotEmpty(ServletUtils.getParameter(ORDER_BY_COLUMN)))
+ pageDomain.setOrderBy(ServletUtils.getParameter(ORDER_BY_COLUMN));
+ if (StringUtils.isNotEmpty(ServletUtils.getParameter(IS_ASC)))
+ pageDomain.setIsAsc(ServletUtils.getParameter(IS_ASC));
+ if (StringUtils.isNotEmpty(ServletUtils.getParameter(GROUP_STR)))
+ pageDomain.setGroupStr(ServletUtils.getParameter(GROUP_STR));
return pageDomain;
}
diff --git a/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/utils/PageResult.java b/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/utils/PageResult.java
index 250dbf3..d56c58a 100644
--- a/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/utils/PageResult.java
+++ b/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/utils/PageResult.java
@@ -26,7 +26,7 @@ public class PageResult implements Serializable {
/**
* 总记录数
*/
- private int totalCount;
+ private int total;
/**
* 每页记录数
*/
@@ -42,29 +42,29 @@ public class PageResult implements Serializable {
/**
* 列表数据
*/
- private List> list;
+ private List> rows;
/**
* 分页
- * @param list 列表数据
- * @param totalCount 总记录数
+ * @param rows 列表数据
+ * @param total 总记录数
* @param pageSize 每页记录数
* @param currPage 当前页数
*/
- public PageResult(List> list, long totalCount, long pageSize, long currPage) {
- this.list = list;
- this.totalCount = (int)totalCount;
+ public PageResult(List> rows, long total, long pageSize, long currPage) {
+ this.rows = rows;
+ this.total = (int)total;
this.pageSize = (int)pageSize;
this.currPage = (int)currPage;
- this.totalPage = (int)Math.ceil((double)totalCount/pageSize);
+ this.totalPage = (int)Math.ceil((double)total/pageSize);
}
- public PageResult(List> list, IPage> page) {
- this.list = list;
+ public PageResult(List> rows, IPage> page) {
+ this.rows = rows;
if (null != page){
- this.totalCount = (int)page.getTotal();
+ this.total = (int)page.getTotal();
this.pageSize = (int)page.getSize();
this.currPage = (int)page.getCurrent();
- this.totalPage = (int)Math.ceil((double)totalCount/pageSize);
+ this.totalPage = (int)Math.ceil((double)total/pageSize);
}
}
@@ -72,8 +72,8 @@ public class PageResult implements Serializable {
* 分页
*/
public PageResult(IPage> page) {
- this.list = page.getRecords();
- this.totalCount = (int)page.getTotal();
+ this.rows = page.getRecords();
+ this.total = (int)page.getTotal();
this.pageSize = (int)page.getSize();
this.currPage = (int)page.getCurrent();
this.totalPage = (int)page.getPages();
diff --git a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/auth/AuthLogic.java b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/auth/AuthLogic.java
index cf37458..3898871 100644
--- a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/auth/AuthLogic.java
+++ b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/auth/AuthLogic.java
@@ -38,7 +38,6 @@ public class AuthLogic
{
tokenService.delLoginUser(token);
}
-
/**
* 检验用户是否已经登录,如未登录,则抛出异常
*/
diff --git a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/service/TokenService.java b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/service/TokenService.java
index adbed13..a872f6c 100644
--- a/chushang-common/chushang-common-security/src/main/java/com/chushang/security/service/TokenService.java
+++ b/chushang-common/chushang-common-security/src/main/java/com/chushang/security/service/TokenService.java
@@ -193,4 +193,12 @@ public class TokenService
log.debug("强退 {} 个用户, userId : {}.",l, userId );
}
}
+
+ public void forcedRetreatByTokenKey(String tokenKey){
+ RKeys rKeys = redissonClient.getKeys();
+ long l = rKeys.deleteByPattern(CacheConstants.LOGIN_TOKEN_KEY + tokenKey);
+ if (log.isDebugEnabled()){
+ log.debug("强退 {} 个用户, userId : {}.",l, tokenKey.split("#")[1] );
+ }
+ }
}
diff --git a/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/config/properties/CaptchaProperties.java b/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/config/properties/CaptchaProperties.java
index ad80492..65bb69e 100644
--- a/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/config/properties/CaptchaProperties.java
+++ b/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/config/properties/CaptchaProperties.java
@@ -1,5 +1,7 @@
package com.chushang.gateway.config.properties;
+import lombok.Getter;
+import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.Configuration;
@@ -9,6 +11,8 @@ import org.springframework.context.annotation.Configuration;
*
* @author ruoyi
*/
+@Setter
+@Getter
@Configuration
@RefreshScope
@ConfigurationProperties(prefix = "security.captcha")
@@ -24,23 +28,4 @@ public class CaptchaProperties
*/
private String type;
- public Boolean getEnabled()
- {
- return enabled;
- }
-
- public void setEnabled(Boolean enabled)
- {
- this.enabled = enabled;
- }
-
- public String getType()
- {
- return type;
- }
-
- public void setType(String type)
- {
- this.type = type;
- }
}
diff --git a/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/AuthFilter.java b/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/AuthFilter.java
index 142ebbb..44c9cfe 100644
--- a/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/AuthFilter.java
+++ b/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/filter/AuthFilter.java
@@ -150,7 +150,7 @@ public class AuthFilter implements GlobalFilter, Ordered
}else {
token = null;
// 如果为 sanyi/job 时, 通过cookie 获取token
- if (StringUtils.matches(newPath, List.of("/sanyi/job/**"))){
+ if (StringUtils.matches(newPath, List.of("/chushang/job/**"))){
HttpCookie cookie = request.getCookies().getFirst("Admin-Token");
if (ObjectUtil.isNotEmpty(cookie)){
assert cookie != null;
diff --git a/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/service/impl/ValidateCodeServiceImpl.java b/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/service/impl/ValidateCodeServiceImpl.java
index 2116a50..2827e50 100644
--- a/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/service/impl/ValidateCodeServiceImpl.java
+++ b/chushang-modules/chushang-module-gateway/src/main/java/com/chushang/gateway/service/impl/ValidateCodeServiceImpl.java
@@ -21,6 +21,8 @@ import javax.annotation.Resource;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
@@ -47,44 +49,42 @@ public class ValidateCodeServiceImpl implements ValidateCodeService {
*/
@Override
public AjaxResult createCaptcha() throws ResultException {
- AjaxResult ajax = AjaxResult.success();
boolean captchaOnOff = captchaProperties.getEnabled();
- ajax.put("captchaOnOff", captchaOnOff);
- if (!captchaOnOff) {
- return ajax;
- }
+ Map resultMap = new HashMap<>();
+ resultMap.put("captchaEnabled", captchaOnOff);
+ if (captchaOnOff) {
+ // 保存验证码信息
+ String uuid = IdUtils.getId(32);
+ String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid;
- // 保存验证码信息
- String uuid = IdUtils.getId(32);
- String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid;
+ String capStr, code = null;
+ BufferedImage image = null;
- String capStr, code = null;
- BufferedImage image = null;
-
- String captchaType = captchaProperties.getType();
- // 生成验证码
- if ("math".equals(captchaType)) {
- String capText = captchaProducerMath.createText();
- capStr = capText.substring(0, capText.lastIndexOf("@"));
- code = capText.substring(capText.lastIndexOf("@") + 1);
- image = captchaProducerMath.createImage(capStr);
- } else if ("char".equals(captchaType)) {
- code = capStr = captchaProducer.createText();
- image = captchaProducer.createImage(capStr);
+ String captchaType = captchaProperties.getType();
+ // 生成验证码
+ if ("math".equals(captchaType)) {
+ String capText = captchaProducerMath.createText();
+ capStr = capText.substring(0, capText.lastIndexOf("@"));
+ code = capText.substring(capText.lastIndexOf("@") + 1);
+ image = captchaProducerMath.createImage(capStr);
+ } else if ("char".equals(captchaType)) {
+ code = capStr = captchaProducer.createText();
+ image = captchaProducer.createImage(capStr);
+ }
+ redissonClient.getBucket(verifyKey)
+ .set(code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
+ // 转换流信息写出
+ FastByteArrayOutputStream os = new FastByteArrayOutputStream();
+ try {
+ assert image != null;
+ ImageIO.write(image, "jpg", os);
+ } catch (IOException e) {
+ return AjaxResult.error(e.getMessage());
+ }
+ resultMap.put("uuid", uuid);
+ resultMap.put("img", Base64.encode(os.toByteArray()));
}
- redissonClient.getBucket(verifyKey)
- .set(code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
- // 转换流信息写出
- FastByteArrayOutputStream os = new FastByteArrayOutputStream();
- try {
- assert image != null;
- ImageIO.write(image, "jpg", os);
- } catch (IOException e) {
- return AjaxResult.error(e.getMessage());
- }
- ajax.put("uuid", uuid);
- ajax.put("img", Base64.encode(os.toByteArray()));
- return ajax;
+ return AjaxResult.success(resultMap);
}
/**
diff --git a/chushang-modules/chushang-module-gateway/src/main/resources/logback-nacos.xml b/chushang-modules/chushang-module-gateway/src/main/resources/logback-nacos.xml
index 6495d04..a51d9a9 100644
--- a/chushang-modules/chushang-module-gateway/src/main/resources/logback-nacos.xml
+++ b/chushang-modules/chushang-module-gateway/src/main/resources/logback-nacos.xml
@@ -100,7 +100,7 @@
-
+
diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/dto/ListDictDTO.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/dto/ListDictDTO.java
index 20bbea1..4064d0a 100644
--- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/dto/ListDictDTO.java
+++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/dto/ListDictDTO.java
@@ -35,7 +35,7 @@ public class ListDictDTO {
private String isDefault;
/**
- * 状态(0正常 1停用)
+ * 状态(1正常 0停用)
*/
- private String status;
+ private Boolean status;
}
diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/dto/ListLoginLogDTO.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/dto/ListLoginLogDTO.java
new file mode 100644
index 0000000..9369d50
--- /dev/null
+++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/dto/ListLoginLogDTO.java
@@ -0,0 +1,15 @@
+package com.chushang.system.entity.dto;
+
+import lombok.Data;
+
+@Data
+public class ListLoginLogDTO {
+
+ private String userName;
+ private String ipaddr;
+ /**
+ * 登录状态
+ */
+ private String status;
+
+}
diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/dto/ListUserDTO.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/dto/ListUserDTO.java
index c1d8b05..f400c22 100644
--- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/dto/ListUserDTO.java
+++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/dto/ListUserDTO.java
@@ -17,4 +17,7 @@ public class ListUserDTO extends CommonParam {
* 部门id
*/
private Integer deptId;
+
+ private Integer status;
+ private String phone;
}
diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/enums/AuthTypeEnum.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/enums/AuthTypeEnum.java
index 7dcab2a..015f408 100644
--- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/enums/AuthTypeEnum.java
+++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/enums/AuthTypeEnum.java
@@ -12,7 +12,7 @@ import lombok.Getter;
*/
@Getter
@AllArgsConstructor
-public enum AuthTypeEnum implements EnumUtils.CodeEnum, IEnum {
+public enum AuthTypeEnum implements EnumUtils.CodeEnum, IEnum {
APP(1, "appData","项目授权", " select id from sanyi_app "),
PLATFORM(2, "platformData","平台授权", " select id from sanyi_platform "),
/**
diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/enums/DataTypeEnum.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/enums/DataTypeEnum.java
deleted file mode 100644
index b318ad1..0000000
--- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/enums/DataTypeEnum.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.chushang.system.entity.enums;
-
-import com.baomidou.mybatisplus.annotation.EnumValue;
-import com.baomidou.mybatisplus.annotation.IEnum;
-import com.fasterxml.jackson.annotation.JsonValue;
-import com.chushang.common.core.web.EnumUtils;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * @author by zhaowenyuan create 2022/8/18 18:25
- */
-@AllArgsConstructor
-@Getter
-public enum DataTypeEnum implements EnumUtils.CodeEnum, IEnum {
- BI(1, "bi 平台"),
- ;
- @EnumValue
- @JsonValue
- private final Integer code;
- private final String desc;
-
- @Override
- public Integer getValue() {
- return this.code;
- }
-
- @Override
- public String getMsg() {
- return this.desc;
- }
-}
diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/enums/LoginStatusEnum.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/enums/LoginStatusEnum.java
index 2e6d668..432be0a 100644
--- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/enums/LoginStatusEnum.java
+++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/enums/LoginStatusEnum.java
@@ -12,11 +12,11 @@ import lombok.Getter;
*/
@Getter
@AllArgsConstructor
-public enum LoginStatusEnum implements EnumUtils.CodeEnum, IEnum {
+public enum LoginStatusEnum implements IEnum {
LOGIN_SUCCESS(0, "登录成功"),
- LOGOUT_SUCCESS(1, "注销成功"),
- REGISTER_SUCCESS(2, "注册成功成功"),
- LOGIN_FAIL_STATUS(3, "登录失败"),
+ LOGOUT_SUCCESS(1, "登录失败"),
+ REGISTER_SUCCESS(2, "注册成功"),
+ LOGIN_FAIL_STATUS(3, "注销成功"),
;
@JsonValue
@@ -28,9 +28,4 @@ public enum LoginStatusEnum implements EnumUtils.CodeEnum, IEnu
public Integer getValue() {
return this.code;
}
-
- @Override
- public String getMsg() {
- return this.desc;
- }
}
diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/enums/PermTypeEnum.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/enums/PermTypeEnum.java
index cd19cdd..bcdf00c 100644
--- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/enums/PermTypeEnum.java
+++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/entity/enums/PermTypeEnum.java
@@ -16,7 +16,7 @@ import lombok.Getter;
*/
@AllArgsConstructor
@Getter
-public enum PermTypeEnum implements EnumUtils.CodeEnum, IEnum {
+public enum PermTypeEnum implements IEnum {
ALL(0,"超级管理员 -> 查看全部"),
DEPT_AND_CHILD(1,"部门及以下数据权限"),
DEPT(2,"部门"),
@@ -32,9 +32,4 @@ public enum PermTypeEnum implements EnumUtils.CodeEnum, IEnum deptList = sysDeptService.selectDeptList(new ListDeptDTO());
@@ -89,8 +90,8 @@ public class DeptController {
/**
* 新增部门
*/
- @RequiresPermissions("sys:dept:add")
- @SysLog("新增部门")
+ @RequiresPermissions("system:dept:add")
+ @SysLog(value = "部门", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Valid @RequestBody SysDept dept)
{
@@ -107,8 +108,8 @@ public class DeptController {
/**
* 修改部门
*/
- @RequiresPermissions("sys:dept:edit")
- @SysLog("修改部门")
+ @RequiresPermissions("system:dept:edit")
+ @SysLog(value = "部门", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Valid @RequestBody SysDept dept)
{
@@ -138,8 +139,8 @@ public class DeptController {
/**
* 删除部门
*/
- @RequiresPermissions("sys:dept:remove")
- @SysLog("删除部门")
+ @RequiresPermissions("system:dept:remove")
+ @SysLog(value = "部门", businessType = BusinessType.DELETE)
@DeleteMapping("/{deptId}")
public AjaxResult remove(@PathVariable Integer deptId)
{
diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/DictController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/DictController.java
index e07518c..c12ef09 100644
--- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/DictController.java
+++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/DictController.java
@@ -51,7 +51,7 @@ public class DictController {
return AjaxResult.success(dictDataService.pageDictDataList(dictData, pageParam));
}
- @SysLog(value = "导出字典数据")
+ @SysLog(value = "字典数据", businessType = BusinessType.EXPORT)
@RequiresPermissions("system:dict:export")
@PostMapping("/export")
public void export(HttpServletResponse response, ListDictDTO dictData)
diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/DictTypeController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/DictTypeController.java
index 9da6eb1..162b816 100644
--- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/DictTypeController.java
+++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/DictTypeController.java
@@ -24,6 +24,7 @@ import java.util.List;
/**
* @auther: zhao
* @date: 2024/5/9 15:54
+ * todo 加入缓存
*/
@RestController
@RequestMapping(value = "/dict/type")
@@ -107,9 +108,9 @@ public class DictTypeController {
}
/**
- * 刷新字典缓存 TODO
+ * TODO 刷新字典缓存
*/
- @RequiresPermissions("system:dict:remove")
+ @RequiresPermissions("system:dict:refresh")
@SysLog(value = "字典类型", businessType = BusinessType.CLEAN)
@DeleteMapping("/refreshCache")
public AjaxResult refreshCache()
diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/MenuController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/MenuController.java
index cce8e74..173847b 100644
--- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/MenuController.java
+++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/MenuController.java
@@ -4,6 +4,7 @@ import com.chushang.common.core.constant.Constants;
import com.chushang.common.core.util.StringUtils;
import com.chushang.common.core.web.AjaxResult;
import com.chushang.common.log.annotation.SysLog;
+import com.chushang.common.log.enums.BusinessType;
import com.chushang.security.annotation.RequiresPermissions;
import com.chushang.security.utils.SecurityUtils;
import com.chushang.system.entity.dto.ListMenuDTO;
@@ -30,7 +31,7 @@ public class MenuController {
/**
* 获取菜单列表
*/
- @RequiresPermissions("sys:menu:list")
+ @RequiresPermissions("system:menu:list")
@GetMapping("/list")
public AjaxResult list(ListMenuDTO listMenu)
{
@@ -42,7 +43,7 @@ public class MenuController {
/**
* 根据菜单编号获取详细信息
*/
- @RequiresPermissions("sys:menu:query")
+ @RequiresPermissions("system:menu:query")
@GetMapping(value = "/{menuId}")
public AjaxResult getInfo(@PathVariable Integer menuId)
{
@@ -77,8 +78,8 @@ public class MenuController {
/**
* 新增菜单
*/
- @RequiresPermissions("sys:menu:add")
- @SysLog("新增菜单")
+ @RequiresPermissions("system:menu:add")
+ @SysLog(value = "菜单", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody SysMenu menu)
{
@@ -87,7 +88,7 @@ public class MenuController {
return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
}
// 外链
- else if ("0".equals(menu.getFrame()) && ! StringUtils.startsWithAny(menu.getPath(), Constants.HTTP, Constants.HTTPS))
+ else if (!menu.getFrame() && ! StringUtils.startsWithAny(menu.getPath(), Constants.HTTP, Constants.HTTPS))
{
return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头");
}
@@ -101,8 +102,8 @@ public class MenuController {
/**
* 修改菜单
*/
- @RequiresPermissions("sys:menu:edit")
- @SysLog("修改菜单")
+ @RequiresPermissions("system:menu:edit")
+ @SysLog(value = "修改菜单", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody SysMenu menu)
{
@@ -111,7 +112,7 @@ public class MenuController {
return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
}
// 外链
- else if ("0".equals(menu.getFrame()) && !StringUtils.startsWithAny(menu.getPath(), Constants.HTTP, Constants.HTTPS))
+ else if (!menu.getFrame() && !StringUtils.startsWithAny(menu.getPath(), Constants.HTTP, Constants.HTTPS))
{
return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头");
}
@@ -129,7 +130,7 @@ public class MenuController {
/**
* 删除菜单
*/
- @RequiresPermissions("sys:menu:remove")
+ @RequiresPermissions("system:menu:remove")
@SysLog("删除菜单")
@DeleteMapping("/{menuId}")
public AjaxResult remove(@PathVariable("menuId") Integer menuId)
diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/PostController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/PostController.java
index 1014ef4..0562409 100644
--- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/PostController.java
+++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/PostController.java
@@ -11,7 +11,6 @@ import com.chushang.security.annotation.RequiresPermissions;
import com.chushang.security.utils.SecurityUtils;
import com.chushang.system.entity.po.SysPost;
import com.chushang.system.service.ISysPostService;
-import lombok.extern.java.Log;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -43,7 +42,7 @@ public class PostController {
return AjaxResult.success(pageResult);
}
- @SysLog(value = "岗位管理", businessType = BusinessType.EXPORT)
+ @SysLog(value = "岗位", businessType = BusinessType.EXPORT)
@RequiresPermissions("system:post:export")
@PostMapping("/export")
public void export(HttpServletResponse response, SysPost post)
@@ -67,18 +66,17 @@ public class PostController {
* 新增岗位
*/
@RequiresPermissions("system:post:add")
- @SysLog(value = "岗位管理", businessType = BusinessType.INSERT)
+ @SysLog(value = "岗位", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody SysPost post)
{
- CommonParam commonParam = CommonParam.buildAllRequest();
SysPost postName = new SysPost();
postName.setPostName(post.getPostName());
postName.setPostCode(null);
- AssertUtil.invalidate(postService.checkPostCodeUnique(postName, commonParam), "新增岗位'" + post.getPostName() + "'失败,岗位名称已存在");
+ AssertUtil.invalidate(postService.checkPostUnique(postName), "新增岗位'" + post.getPostName() + "'失败,岗位名称已存在");
postName.setPostCode(post.getPostCode());
postName.setPostName(null);
- AssertUtil.invalidate(postService.checkPostCodeUnique(postName, commonParam), "新增岗位'" + post.getPostName() + "'失败,岗位编码已存在");
+ AssertUtil.invalidate(postService.checkPostUnique(postName), "新增岗位'" + post.getPostName() + "'失败,岗位编码已存在");
post.setCreateBy(SecurityUtils.getUsername());
postService.saveOrUpdate(post);
return AjaxResult.success();
@@ -88,18 +86,18 @@ public class PostController {
* 修改岗位
*/
@RequiresPermissions("system:post:edit")
- @SysLog(value = "岗位管理", businessType = BusinessType.UPDATE)
+ @SysLog(value = "岗位", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody SysPost post)
{
- CommonParam commonParam = CommonParam.buildAllRequest();
SysPost postName = new SysPost();
postName.setPostName(post.getPostName());
+ postName.setPostId(post.getPostId());
postName.setPostCode(null);
- AssertUtil.invalidate(postService.checkPostCodeUnique(postName, commonParam), "修改岗位'" + post.getPostName() + "'失败,岗位名称已存在");
+ AssertUtil.invalidate(postService.checkPostUnique(postName), "修改岗位'" + post.getPostName() + "'失败,岗位名称已存在");
postName.setPostCode(post.getPostCode());
postName.setPostName(null);
- AssertUtil.invalidate(postService.checkPostCodeUnique(postName, commonParam), "修改岗位'" + post.getPostName() + "'失败,岗位编码已存在");
+ AssertUtil.invalidate(postService.checkPostUnique(postName), "修改岗位'" + post.getPostName() + "'失败,岗位编码已存在");
post.setCreateBy(SecurityUtils.getUsername());
postService.saveOrUpdate(post);
return AjaxResult.success();
@@ -109,7 +107,7 @@ public class PostController {
* 删除岗位
*/
@RequiresPermissions("system:post:remove")
- @SysLog(value = "岗位管理", businessType = BusinessType.DELETE)
+ @SysLog(value = "岗位", businessType = BusinessType.DELETE)
@DeleteMapping("/{postIds}")
public AjaxResult remove(@PathVariable Long[] postIds)
{
@@ -121,7 +119,7 @@ public class PostController {
* 获取岗位选择框列表
*/
@GetMapping("/option/select")
- public AjaxResult optionselect()
+ public AjaxResult optionSelect()
{
CommonParam commonParam = CommonParam.buildAllRequest();
List list = postService.allPostList(new SysPost(), commonParam);
diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/RoleController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/RoleController.java
index 25145f8..d8791e5 100644
--- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/RoleController.java
+++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/RoleController.java
@@ -2,6 +2,7 @@ package com.chushang.system.controller;
import com.chushang.common.core.web.AjaxResult;
import com.chushang.common.log.annotation.SysLog;
+import com.chushang.common.log.enums.BusinessType;
import com.chushang.security.annotation.RequiresPermissions;
import com.chushang.security.utils.SecurityUtils;
import com.chushang.system.entity.bo.CancelUserRole;
@@ -29,7 +30,7 @@ public class RoleController {
@Autowired
ISysUserService userService;
- @RequiresPermissions("sys:role:list")
+ @RequiresPermissions("system:role:list")
@GetMapping("/list")
public AjaxResult list(ListRoleDTO listRole)
{
@@ -39,7 +40,7 @@ public class RoleController {
/**
* 根据角色编号获取详细信息
*/
- @RequiresPermissions("sys:role:query")
+ @RequiresPermissions("system:role:query")
@GetMapping(value = "/{roleId}")
public AjaxResult getInfo(@PathVariable Integer roleId)
{
@@ -51,8 +52,8 @@ public class RoleController {
/**
* 新增角色
*/
- @RequiresPermissions("sys:role:add")
- @SysLog("新增角色")
+ @RequiresPermissions("system:role:add")
+ @SysLog(value = "新增角色",businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody SysRole role)
{
@@ -75,12 +76,13 @@ public class RoleController {
/**
* 修改保存角色
*/
- @RequiresPermissions("sys:role:edit")
- @SysLog("修改角色")
+ @RequiresPermissions("system:role:edit")
+ @SysLog(value = "修改角色",businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody SysRole role)
{
- if (2 == role.getRoleId()){
+ // 1 为超管
+ if (1 == role.getRoleId()){
return AjaxResult.success();
}
roleService.checkRoleAllowed(role);
@@ -103,8 +105,8 @@ public class RoleController {
/**
* 修改保存数据权限
*/
- @RequiresPermissions("sys:role:edit")
- @SysLog("修改角色权限")
+ @RequiresPermissions("system:role:edit")
+ @SysLog(value = "修改角色权限",businessType = BusinessType.GRANT)
@PutMapping("/dataScope")
public AjaxResult dataScope(@RequestBody SysRole role)
{
@@ -119,8 +121,8 @@ public class RoleController {
/**
* 状态修改
*/
- @RequiresPermissions("sys:role:edit")
- @SysLog("修改角色状态")
+ @RequiresPermissions("system:role:edit")
+ @SysLog(value = "修改角色状态",businessType = BusinessType.UPDATE)
@PutMapping("/changeStatus")
public AjaxResult changeStatus(@RequestBody SysRole role)
{
@@ -137,8 +139,8 @@ public class RoleController {
/**
* 删除角色
*/
- @RequiresPermissions("sys:role:remove")
- @SysLog("删除角色")
+ @RequiresPermissions("system:role:remove")
+ @SysLog(value = "删除角色",businessType = BusinessType.DELETE)
@DeleteMapping("/{roleIds}")
public AjaxResult remove(@PathVariable Integer[] roleIds)
{
@@ -150,7 +152,7 @@ public class RoleController {
/**
* 获取角色选择框列表
*/
- @RequiresPermissions("sys:role:query")
+ @RequiresPermissions("system:role:query")
@GetMapping("/option/select")
public AjaxResult optionSelect()
{
@@ -160,7 +162,7 @@ public class RoleController {
* 查询已分配用户角色列表
* 可以根据用户名称查询
*/
- @RequiresPermissions("sys:role:list")
+ @RequiresPermissions("system:role:list")
@GetMapping("/authUser/allocatedList")
public AjaxResult allocatedList(@Valid ListUserDTO listUser)
{
@@ -170,7 +172,7 @@ public class RoleController {
/**
* 查询未分配用户角色列表
*/
- @RequiresPermissions("sys:role:list")
+ @RequiresPermissions("system:role:list")
@GetMapping("/authUser/unallocatedList")
public AjaxResult unallocatedList(@Valid ListUserDTO listUser)
{
@@ -180,8 +182,8 @@ public class RoleController {
/**
* 取消授权用户
*/
- @RequiresPermissions("sys:role:edit")
- @SysLog("取消授权用户")
+ @RequiresPermissions("system:role:edit")
+ @SysLog(value = "取消授权用户", businessType = BusinessType.GRANT)
@PutMapping("/authUser/cancel")
public AjaxResult cancelAuthUser(@RequestBody @Valid CancelUserRole cancelUserRole)
{
@@ -193,8 +195,8 @@ public class RoleController {
/**
* 批量选择用户授权
*/
- @RequiresPermissions("sys:role:edit")
- @SysLog("用户授权")
+ @RequiresPermissions("system:role:edit")
+ @SysLog(value = "用户授权", businessType = BusinessType.GRANT)
@PutMapping("/authUser")
public AjaxResult selectAuthUserAll(@RequestBody @Valid RoleUser roleUser)
{
@@ -208,4 +210,25 @@ public class RoleController {
return AjaxResult.success();
}
+ /**
+ * todo 角色导出
+ * @return
+ */
+ @SysLog(value = "角色", businessType = BusinessType.EXPORT)
+ @GetMapping("/export")
+ @RequiresPermissions("system:role:export")
+ public AjaxResult exportRole(){
+ return AjaxResult.error("暂未开放");
+ }
+
+ /**
+ * todo 角色导入
+ */
+ @GetMapping("/import")
+ @RequiresPermissions("system:role:import")
+ @SysLog(value = "角色", businessType = BusinessType.IMPORT)
+ public AjaxResult importRole(){
+ return AjaxResult.error("暂未开放");
+ }
+
}
diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysLoginInfoController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysLoginInfoController.java
index 84e05f4..1822921 100644
--- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysLoginInfoController.java
+++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysLoginInfoController.java
@@ -1,15 +1,22 @@
package com.chushang.system.controller;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.chushang.common.core.web.AjaxResult;
import com.chushang.common.core.web.Result;
+import com.chushang.common.log.annotation.SysLog;
+import com.chushang.common.log.enums.BusinessType;
+import com.chushang.common.mybatis.page.CommonParam;
import com.chushang.security.annotation.InnerAuth;
+import com.chushang.security.annotation.RequiresPermissions;
+import com.chushang.system.entity.dto.ListLoginLogDTO;
import com.chushang.system.entity.po.SysLoginInfo;
import com.chushang.system.feign.RemoteLoginInfoService;
import com.chushang.system.service.SysLoginInfoService;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.Arrays;
@RestController
@RequestMapping(value = "/log/login/info")
@@ -24,4 +31,30 @@ public class SysLoginInfoController implements RemoteLoginInfoService {
public Result saveLoginInfo(@RequestBody SysLoginInfo sysLogininfo, String source) {
return Result.ok(sysLoginInfoService.saveLoginInfo(sysLogininfo).isSuccess());
}
+
+ @GetMapping(value = "/list")
+ @RequiresPermissions("system:log:list")
+ public AjaxResult listLoginInfo(SysLoginInfo loginInfo){
+ CommonParam commonParam = CommonParam.buildPageRequest();
+ return AjaxResult.success(sysLoginInfoService.pagePostList(loginInfo, commonParam));
+ }
+
+ @DeleteMapping(value = "/{infoId}")
+ @SysLog(value = "登录日志", businessType = BusinessType.DELETE)
+ @RequiresPermissions("system:log:del")
+ public AjaxResult delLoginInfo(@PathVariable String infoId){
+ sysLoginInfoService.removeBatchByIds(Arrays.stream(infoId.split(",")).toList());
+ return AjaxResult.success();
+ }
+
+ /**
+ * 清除登录日志
+ */
+ @DeleteMapping(value = "clean")
+ @SysLog(value = "登录日志", businessType = BusinessType.DELETE)
+ @RequiresPermissions("system:log:del")
+ public AjaxResult cleanLoginInfo(){
+ sysLoginInfoService.remove(new LambdaQueryWrapper<>());
+ return AjaxResult.success();
+ }
}
diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysUserDataController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysUserDataController.java
index 9147295..24368f2 100644
--- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysUserDataController.java
+++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysUserDataController.java
@@ -27,11 +27,12 @@ public class SysUserDataController {
ISysUserDataService userDataService;
/**
- * 针对用户进行授权
+ * todo 针对用户进行授权
+ * 数据权限授权
*/
@SysLog(value = "用户数据授权")
@PostMapping(value = "/{userId}/{dataType}")
- @RequiresPermissions(value = {"sys:app:auth","sys:platform:auth"}, logical = Logical.OR)
+ @RequiresPermissions(value = {"system:app:auth","system:platform:auth"}, logical = Logical.OR)
public AjaxResult authData(@RequestBody Map authDataMap,
@PathVariable Integer dataType,
@PathVariable Integer userId)
@@ -53,8 +54,11 @@ public class SysUserDataController {
return AjaxResult.success();
}
+ /**
+ * todo 数据权限授权查看
+ */
@GetMapping(value = "/{userId}/{authType}")
- @RequiresPermissions(value = {"sys:app:auth","sys:platform:auth"}, logical = Logical.OR)
+ @RequiresPermissions(value = {"system:app:auth","system:platform:auth"}, logical = Logical.OR)
public AjaxResult getAuthData(@PathVariable Integer userId,
@PathVariable Integer authType)
{
diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysUserOnlineController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysUserOnlineController.java
index a6e659f..8880ce6 100644
--- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysUserOnlineController.java
+++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/SysUserOnlineController.java
@@ -1,53 +1,59 @@
-//package com.chushang.system.controller;
-//
-//import java.util.ArrayList;
-//import java.util.Collection;
-//import java.util.Collections;
-//import java.util.List;
-//
-//import com.chushang.common.core.constant.CacheConstants;
-//import com.chushang.common.core.web.AjaxResult;
-//import com.chushang.security.annotation.RequiresPermissions;
-//import com.chushang.security.entity.vo.LoginUser;
-//import com.chushang.system.entity.vo.SysUserOnline;
-//import com.chushang.system.service.ISysUserOnlineService;
-//import lombok.extern.java.Log;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.web.bind.annotation.DeleteMapping;
-//import org.springframework.web.bind.annotation.GetMapping;
-//import org.springframework.web.bind.annotation.PathVariable;
-//import org.springframework.web.bind.annotation.RequestMapping;
-//import org.springframework.web.bind.annotation.RestController;
-//
-///**
-// * 在线用户监控
-// *
-// * @author ruoyi
-// */
-//@RestController
-//@RequestMapping("/online")
-//public class SysUserOnlineController
-//{
-// @Autowired
-// private ISysUserOnlineService userOnlineService;
-//
-// @RequiresPermissions("monitor:online:list")
-// @GetMapping("/list")
-// public TableDataInfo list(String ipaddr, String userName)
-// {
-//
-// return getDataTable(userOnlineList);
-// }
-//
-// /**
-// * 强退用户
-// */
-// @RequiresPermissions("monitor:online:forceLogout")
-// @Log(title = "在线用户", businessType = BusinessType.FORCE)
-// @DeleteMapping("/{tokenId}")
-// public AjaxResult forceLogout(@PathVariable String tokenId)
-// {
-// redisService.deleteObject(CacheConstants.LOGIN_TOKEN_KEY + tokenId);
-// return success();
-// }
-//}
+package com.chushang.system.controller;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import com.chushang.common.core.constant.CacheConstants;
+import com.chushang.common.core.web.AjaxResult;
+import com.chushang.common.log.annotation.SysLog;
+import com.chushang.common.log.enums.BusinessType;
+import com.chushang.common.mybatis.page.CommonParam;
+import com.chushang.common.mybatis.utils.PageResult;
+import com.chushang.security.annotation.RequiresPermissions;
+import com.chushang.security.auth.AuthUtil;
+import com.chushang.security.entity.vo.LoginUser;
+import com.chushang.system.entity.vo.SysUserOnline;
+import com.chushang.system.service.ISysUserOnlineService;
+import lombok.extern.java.Log;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 在线用户监控
+ *
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/online")
+public class SysUserOnlineController
+{
+ @Autowired
+ private ISysUserOnlineService userOnlineService;
+
+ @RequiresPermissions("monitor:online:list")
+ @GetMapping("/list")
+ public AjaxResult list(String ipaddr, String userName)
+ {
+ CommonParam commonParam = CommonParam.buildPageRequest();
+ PageResult pageResult = userOnlineService.selectOnlineByIpaddr(ipaddr, userName, commonParam);
+ return AjaxResult.success(pageResult);
+ }
+
+ /**
+ * 强退用户
+ */
+ @RequiresPermissions("monitor:online:forceLogout")
+ @SysLog(value = "在线用户", businessType = BusinessType.FORCE)
+ @DeleteMapping("/{tokenId}")
+ public AjaxResult forceLogout(@PathVariable String tokenId)
+ {
+ userOnlineService.forceLogout(tokenId);
+ return AjaxResult.success();
+ }
+}
diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/UserController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/UserController.java
index 402e061..fe69ffa 100644
--- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/UserController.java
+++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/controller/UserController.java
@@ -7,24 +7,24 @@ import com.chushang.common.core.util.StringUtils;
import com.chushang.common.core.web.AjaxResult;
import com.chushang.common.core.web.Result;
import com.chushang.common.log.annotation.SysLog;
+import com.chushang.common.mybatis.page.CommonParam;
import com.chushang.security.annotation.InnerAuth;
import com.chushang.security.annotation.RequiresPermissions;
import com.chushang.security.service.TokenService;
import com.chushang.security.utils.SecurityUtils;
import com.chushang.system.entity.bo.PasswordForm;
import com.chushang.system.entity.dto.ListUserDTO;
+import com.chushang.system.entity.po.SysPost;
import com.chushang.system.entity.po.SysRole;
import com.chushang.system.entity.po.SysUser;
import com.chushang.system.entity.po.SysUserData;
import com.chushang.security.entity.vo.LoginUser;
import com.chushang.system.feign.RemoteUserService;
-import com.chushang.system.service.ISysPermissionService;
-import com.chushang.system.service.ISysRoleService;
-import com.chushang.system.service.ISysUserDataService;
-import com.chushang.system.service.ISysUserService;
+import com.chushang.system.service.*;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
import javax.validation.Valid;
import java.util.*;
@@ -42,6 +42,8 @@ public class UserController implements RemoteUserService {
@Autowired
ISysRoleService sysRoleService;
@Autowired
+ ISysPostService sysPostService;
+ @Autowired
ISysPermissionService permissionService;
@Autowired
ISysUserDataService userDataService;
@@ -53,7 +55,7 @@ public class UserController implements RemoteUserService {
*/
@GetMapping(value = "/list")
// 权限校验 -- 菜单权限
- @RequiresPermissions("sys:user:list")
+ @RequiresPermissions("system:user:list")
public AjaxResult listUser(ListUserDTO listUserDTO) {
return sysUserService.listUser(listUserDTO);
}
@@ -120,27 +122,33 @@ public class UserController implements RemoteUserService {
/**
* 根据用户编号获取详细信息
*/
- @RequiresPermissions("sys:user:query")
+ @RequiresPermissions("system:user:query")
@GetMapping(value = {"/", "/{userId}"})
public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Integer userId) {
sysUserService.checkUserDataScope(new SysUser(userId));
AjaxResult ajax = AjaxResult.success();
List roles = sysRoleService.selectRoleAll(new SysRole());
+
+ List posts = sysPostService.allPostList();
// 角色
ajax.put("roles", SysUser.isAdmin(userId) || SecurityUtils.isAdmin() ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
+ // 岗位
+ ajax.put("posts", posts);
if (StringUtils.isNotNull(userId)) {
SysUser sysUser = sysUserService.selectUserById(userId);
sysUser.setPassword("");
sysUser.setSalt("");
ajax.put(AjaxResult.DATA_TAG, sysUser);
+ ajax.put("postIds", sysPostService.selectPostListByUserId(userId));
ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList()));
+
}
return ajax;
}
@SysLog("保存用户")
@PostMapping("/save")
- @RequiresPermissions(value = "sys:user:save")
+ @RequiresPermissions(value = "system:user:save")
public AjaxResult save(@RequestBody SysUser user) {
user.setCreateBy(SecurityUtils.getUsername());
@@ -156,7 +164,7 @@ public class UserController implements RemoteUserService {
*/
@SysLog("修改用户")
@PostMapping("/update")
- @RequiresPermissions("sys:user:update")
+ @RequiresPermissions("system:user:update")
public AjaxResult update(@RequestBody SysUser user) {
sysUserService.checkUserAllowed(user);
@@ -173,7 +181,7 @@ public class UserController implements RemoteUserService {
*/
@SysLog("删除用户")
@DeleteMapping("/{userIds}")
- @RequiresPermissions("sys:user:delete")
+ @RequiresPermissions("system:user:delete")
public AjaxResult delete(@PathVariable Integer[] userIds) {
if (ArrayUtils.contains(userIds, 1)) {
return AjaxResult.error("系统管理员不能删除");
@@ -191,7 +199,7 @@ public class UserController implements RemoteUserService {
/**
* 修改自己的
*/
- @RequiresPermissions("sys:user:updatePwd")
+ @RequiresPermissions("system:user:updatePwd")
@SysLog("修改密码")
@PutMapping("/updatePwd")
public AjaxResult updatePwd(@RequestBody @Valid PasswordForm form)
@@ -219,7 +227,7 @@ public class UserController implements RemoteUserService {
/**
* 重置密码 别人的
*/
- @RequiresPermissions("sys:user:resetPwd")
+ @RequiresPermissions("system:user:resetPwd")
@SysLog("重置密码")
@PutMapping("/resetPwd/{userId}")
public AjaxResult resetPwd(@RequestBody @Valid PasswordForm form,
@@ -238,7 +246,7 @@ public class UserController implements RemoteUserService {
/**
* 状态修改
*/
- @RequiresPermissions("sys:user:changeStatus")
+ @RequiresPermissions("system:user:changeStatus")
@SysLog("修改用户状态")
@PutMapping("/changeStatus")
public AjaxResult changeStatus(@RequestBody SysUser user)
@@ -253,7 +261,7 @@ public class UserController implements RemoteUserService {
/**
* 根据用户编号获取授权角色
*/
- @RequiresPermissions("sys:user:query")
+ @RequiresPermissions("system:user:query")
@GetMapping("/authRole/{userId}")
public AjaxResult authRole(@PathVariable Integer userId)
{
@@ -271,7 +279,7 @@ public class UserController implements RemoteUserService {
/**
* 用户授权角色
*/
- @RequiresPermissions("sys:user:auth")
+ @RequiresPermissions("system:user:auth")
@SysLog("用户授权")
@PutMapping("/authRole")
public AjaxResult insertAuthRole(Integer userId, Integer[] roleIds)
@@ -301,19 +309,46 @@ public class UserController implements RemoteUserService {
sysUserVo.setSysUser(sysUser);
sysUserVo.setRoles(roles);
sysUserVo.setPermissions(permissions);
-
+ // todo 用户拥有的数据权限
List userDataList = userDataService.listUserData(sysUser);
// 默认传递一个空Map --> 拥有管理员
sysUserVo.setAuthDataMap(new HashMap<>());
- if (CollectionUtil.isNotEmpty(userDataList)){
- Map> authDataMap = new HashMap<>();
- // 对应的数据权限
- for (SysUserData sysUserData : userDataList) {
- authDataMap.put(sysUserData.getDataType().getCodeType(),
- new HashSet<>(JSONUtil.toList(sysUserData.getDataValue(), String.class)));
- }
- sysUserVo.setAuthDataMap(authDataMap);
- }
+// if (CollectionUtil.isNotEmpty(userDataList)){
+// Map> authDataMap = new HashMap<>();
+// // 对应的数据权限
+// for (SysUserData sysUserData : userDataList) {
+// authDataMap.put(sysUserData.getDataType().getCodeType(),
+// new HashSet<>(JSONUtil.toList(sysUserData.getDataValue(), String.class)));
+// }
+// sysUserVo.setAuthDataMap(authDataMap);
+// }
return Result.ok(sysUserVo);
}
+
+ /**
+ * todo 导入用户
+ */
+ @PostMapping(value = "/import")
+ @RequiresPermissions("system:user:import")
+ public AjaxResult importUser(MultipartFile file){
+ return AjaxResult.error("暂未开放");
+ }
+
+ /**
+ * todo 导出用户
+ */
+ @GetMapping(value = "/export")
+ @RequiresPermissions("system:user:export")
+ public AjaxResult exportUser(){
+ return AjaxResult.error("暂未开放");
+ }
+
+ /**
+ * todo 下载导入模版
+ */
+ @GetMapping(value = "/import/template")
+ @RequiresPermissions("system:user:import")
+ public AjaxResult importTemplate(){
+ return AjaxResult.error("暂未开放");
+ }
}
diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysPostMapper.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysPostMapper.java
index 9e0a778..f97022a 100644
--- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysPostMapper.java
+++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/mapper/SysPostMapper.java
@@ -2,10 +2,17 @@ package com.chushang.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.chushang.system.entity.po.SysPost;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
/**
* @auther: zhao
* @date: 2024/5/9 15:49
*/
public interface SysPostMapper extends BaseMapper {
+ @Select("select p.post_id from sys_post p left join sys_user_post up on up.post_id = p.post_id " +
+ "left join sys_user u on u.user_id = up.user_id where u.user_id = #{userId}")
+ List selectPostListByUserId(@Param("userId") Integer userId);
}
diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysPostService.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysPostService.java
index f8daca7..30b0bd4 100644
--- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysPostService.java
+++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysPostService.java
@@ -1,14 +1,20 @@
package com.chushang.system.service;
+import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.chushang.common.core.util.StringUtils;
+import com.chushang.common.mybatis.enums.Operator;
import com.chushang.common.mybatis.page.CommonParam;
import com.chushang.common.mybatis.utils.PageResult;
import com.chushang.system.entity.po.SysPost;
+import com.chushang.system.entity.po.SysRole;
import java.util.List;
+import static net.sf.jsqlparser.util.validation.metadata.NamedObject.role;
+
/**
* @auther: zhao
* @date: 2024/5/9 15:53
@@ -27,8 +33,21 @@ public interface ISysPostService extends IService {
return this.list(buildWrapper(post, commonParam));
}
-
- default boolean checkPostCodeUnique(SysPost sysPost, CommonParam commonParam){
- return this.count(buildWrapper(sysPost, commonParam)) > 0;
+ default List allPostList(){
+ SysPost sysPost = new SysPost();
+ sysPost.setStatus(true);
+ return allPostList(sysPost, CommonParam.buildAllRequest());
}
+
+
+ default boolean checkPostUnique(SysPost post){
+ int postId = ObjectUtil.isNull(post.getPostId()) ? -1 : post.getPostId();
+ SysPost info = getOne(new LambdaQueryWrapper()
+ .eq(StringUtils.isNotEmpty(post.getPostName()),SysPost::getPostName, post.getPostName())
+ .eq(StringUtils.isNotEmpty(post.getPostCode()),SysPost::getPostCode, post.getPostCode())
+ .last(Operator.LIMIT_ONE.getCharacter()));
+ return ObjectUtil.isNotNull(info) && info.getPostId() != postId;
+ }
+
+ List selectPostListByUserId(Integer userId);
}
diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserOnlineService.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserOnlineService.java
index cd0fd84..5c14d77 100644
--- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserOnlineService.java
+++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserOnlineService.java
@@ -1,132 +1,157 @@
-//package com.chushang.system.service;
-//
-//import com.chushang.common.core.constant.CacheConstants;
-//import com.chushang.common.core.util.StringUtils;
-//import com.chushang.security.entity.vo.LoginUser;
-//import com.chushang.system.entity.vo.SysUserOnline;
-//import lombok.extern.slf4j.Slf4j;
-//import org.redisson.api.RKeys;
-//import org.redisson.api.RedissonClient;
-//import org.springframework.stereotype.Service;
-//
-//import javax.annotation.Resource;
-//import java.util.ArrayList;
-//import java.util.Collection;
-//import java.util.Collections;
-//import java.util.List;
-//
-///**
-// * 在线用户 服务层
-// *
-// * @author ruoyi
-// */
-//@Slf4j
-//@Service
-//public class ISysUserOnlineService
-//{
-//
-// @Resource
-// RedissonClient redissonClient;
-//
-// public SysUserOnline selectOnlineByIpaddr(){
-//
-// Collection keys = new ArrayList<>();
-// redissonClient.getKeys().getKeys().forEach(key-> {
-// if (key.startsWith(CacheConstants.LOGIN_TOKEN_KEY)){
-// keys.add(key);
-// }
-// });
-// List userOnlineList = new ArrayList();
-// for (String key : keys)
-// {
-// LoginUser user = redisService.getCacheObject(key);
-// if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName))
-// {
-// userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, user));
-// }
-// else if (StringUtils.isNotEmpty(ipaddr))
-// {
-// userOnlineList.add(userOnlineService.selectOnlineByIpaddr(ipaddr, user));
-// }
-// else if (StringUtils.isNotEmpty(userName))
-// {
-// userOnlineList.add(userOnlineService.selectOnlineByUserName(userName, user));
-// }
-// else
-// {
-// userOnlineList.add(userOnlineService.loginUserToUserOnline(user));
-// }
-// }
-// Collections.reverse(userOnlineList);
-// userOnlineList.removeAll(Collections.singleton(null));
-// }
-//
-// /**
-// * 通过登录地址查询信息
-// *
-// * @param ipaddr 登录地址
-// * @param user 用户信息
-// * @return 在线用户信息
-// */
-// public SysUserOnline selectOnlineByIpaddr(String ipaddr, LoginUser user)
-// {
-// if (StringUtils.equals(ipaddr, user.getIpaddr()))
-// {
-// return loginUserToUserOnline(user);
-// }
-// return null;
-// }
-//
-// /**
-// * 通过用户名称查询信息
-// *
-// * @param userName 用户名称
-// * @param user 用户信息
-// * @return 在线用户信息
-// */
-// public SysUserOnline selectOnlineByUserName(String userName, LoginUser user)
-// {
-// if (StringUtils.equals(userName, user.getUsername()))
-// {
-// return loginUserToUserOnline(user);
-// }
-// return null;
-// }
-//
-// /**
-// * 通过登录地址/用户名称查询信息
-// *
-// * @param ipaddr 登录地址
-// * @param userName 用户名称
-// * @param user 用户信息
-// * @return 在线用户信息
-// */
-// public SysUserOnline selectOnlineByInfo(String ipaddr, String userName, LoginUser user)
-// {
-// if (StringUtils.equals(ipaddr, user.getIpaddr()) && StringUtils.equals(userName, user.getUsername()))
-// {
-// return loginUserToUserOnline(user);
-// }
-// return null;
-// }
-//
-// /**
-// * 设置在线用户信息
-// *
-// * @param user 用户信息
-// * @return 在线用户
-// */
-// public SysUserOnline loginUserToUserOnline(LoginUser user)
-// {
-// if (StringUtils.isNull(user))
-// {
-// return null;
-// }
-// SysUserOnline sysUserOnline = new SysUserOnline();
-// sysUserOnline.setTokenId(user.getToken());
-// sysUserOnline.setUserName(user.getUsername());
-// sysUserOnline.setIpaddr(user.getIpaddr());
-// sysUserOnline.setLoginTime(user.getLoginTime());
-// return sysUserOnline;
-// }
-//}
+package com.chushang.system.service;
+
+import cn.hutool.core.net.Ipv4Util;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.extra.servlet.ServletUtil;
+import cn.hutool.system.SystemUtil;
+import com.chushang.common.core.constant.CacheConstants;
+import com.chushang.common.core.util.IPUtils;
+import com.chushang.common.core.util.StringUtils;
+import com.chushang.common.mybatis.page.CommonParam;
+import com.chushang.common.mybatis.utils.PageClass;
+import com.chushang.common.mybatis.utils.PageResult;
+import com.chushang.security.auth.AuthUtil;
+import com.chushang.security.entity.vo.LoginUser;
+import com.chushang.security.service.TokenService;
+import com.chushang.system.entity.vo.SysUserOnline;
+import lombok.extern.slf4j.Slf4j;
+import org.redisson.api.RBucket;
+import org.redisson.api.RedissonClient;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * 在线用户 服务层
+ *
+ * @author ruoyi
+ */
+@Slf4j
+@Service
+public class ISysUserOnlineService
+{
+
+ @Resource
+ RedissonClient redissonClient;
+ @Resource
+ TokenService tokenService;
+
+ public PageResult selectOnlineByIpaddr(String ipaddr, String userName, CommonParam commonParam){
+ Collection keys = new ArrayList<>();
+ redissonClient.getKeys().getKeys().forEach(key-> {
+ if (key.startsWith(CacheConstants.LOGIN_TOKEN_KEY)){
+ keys.add(key);
+ }
+ });
+ List userOnlineList = new ArrayList<>();
+ for (String key : keys)
+ {
+ RBucket bucket = redissonClient.getBucket(key);
+ if (!bucket.isExists()){
+ continue;
+ }
+ LoginUser user = bucket.get();
+ if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName))
+ {
+ userOnlineList.add(selectOnlineByInfo(ipaddr, userName, user));
+ }
+ else if (StringUtils.isNotEmpty(ipaddr))
+ {
+ userOnlineList.add(selectOnlineByIpaddr(ipaddr, user));
+ }
+ else if (StringUtils.isNotEmpty(userName))
+ {
+ userOnlineList.add(selectOnlineByUserName(userName, user));
+ }
+ else
+ {
+ userOnlineList.add(loginUserToUserOnline(user));
+ }
+ }
+ Collections.reverse(userOnlineList);
+ userOnlineList.removeAll(Collections.singleton(null));
+ List userOnlines = new PageClass()
+ .page(commonParam.getPage(), commonParam.getLimit(), userOnlineList);
+ return new PageResult(userOnlines, userOnlineList.size(), commonParam.getLimit(), commonParam.getPage());
+ }
+
+ /**
+ * 通过登录地址查询信息
+ *
+ * @param ipaddr 登录地址
+ * @param user 用户信息
+ * @return 在线用户信息
+ */
+ public SysUserOnline selectOnlineByIpaddr(String ipaddr, LoginUser user)
+ {
+ if (StringUtils.equals(ipaddr, user.getIpaddr()))
+ {
+ return loginUserToUserOnline(user);
+ }
+ return null;
+ }
+
+ /**
+ * 通过用户名称查询信息
+ *
+ * @param userName 用户名称
+ * @param user 用户信息
+ * @return 在线用户信息
+ */
+ public SysUserOnline selectOnlineByUserName(String userName, LoginUser user)
+ {
+ if (StringUtils.equals(userName, user.getUsername()))
+ {
+ return loginUserToUserOnline(user);
+ }
+ return null;
+ }
+
+ /**
+ * 通过登录地址/用户名称查询信息
+ *
+ * @param ipaddr 登录地址
+ * @param userName 用户名称
+ * @param user 用户信息
+ * @return 在线用户信息
+ */
+ public SysUserOnline selectOnlineByInfo(String ipaddr, String userName, LoginUser user)
+ {
+ if (StringUtils.equals(ipaddr, user.getIpaddr()) && StringUtils.equals(userName, user.getUsername()))
+ {
+ return loginUserToUserOnline(user);
+ }
+ return null;
+ }
+
+ /**
+ * 设置在线用户信息
+ *
+ * @param user 用户信息
+ * @return 在线用户
+ */
+ public SysUserOnline loginUserToUserOnline(LoginUser user)
+ {
+ if (StringUtils.isNull(user))
+ {
+ return null;
+ }
+ SysUserOnline sysUserOnline = new SysUserOnline();
+ sysUserOnline.setTokenId(user.getToken());
+ sysUserOnline.setUserName(user.getUsername());
+ sysUserOnline.setIpaddr(user.getIpaddr());
+ sysUserOnline.setLoginTime(user.getLoginTime());
+ sysUserOnline.setLoginLocation(IPUtils.getLocalCityInfo(user.getIpaddr()));
+ sysUserOnline.setBrowser(IPUtils.getBrowser());
+ sysUserOnline.setOs(IPUtils.osName());
+ return sysUserOnline;
+ }
+
+ public void forceLogout(String tokenId) {
+ tokenService.forcedRetreatByTokenKey(tokenId);
+ }
+}
diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserService.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserService.java
index 2d83ff6..11105e7 100644
--- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserService.java
+++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/ISysUserService.java
@@ -1,7 +1,9 @@
package com.chushang.system.service;
+import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.chushang.common.core.exception.ResultException;
import com.chushang.common.core.web.AjaxResult;
import com.chushang.security.utils.SecurityUtils;
import com.chushang.system.entity.dto.ListUserDTO;
@@ -31,7 +33,15 @@ public interface ISysUserService extends IService {
void deleteBatch(Integer[] userIds);
- void checkUserAllowed(SysUser sysUser);
+ /**
+ * 判断是否为超级管理员 账号
+ */
+ default void checkUserAllowed(SysUser sysUser){
+ // 不为空, 不允许修改时, 应该是判断, 当前用户是否为超级管理员
+ if (ObjectUtil.isNotNull(sysUser.getUserId()) && SysUser.isAdmin(sysUser.getUserId())){
+ throw new ResultException("不允许操作超级管理员用户");
+ }
+ }
default boolean updatePassword(Integer userId, String oldPassword, String newPassword){
return this.update(SysUser.builder()
diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/SysLoginInfoService.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/SysLoginInfoService.java
index 44e1b08..a754952 100644
--- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/SysLoginInfoService.java
+++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/SysLoginInfoService.java
@@ -1,13 +1,29 @@
package com.chushang.system.service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.chushang.common.core.web.AjaxResult;
+import com.chushang.common.mybatis.page.CommonParam;
+import com.chushang.common.mybatis.utils.PageResult;
+import com.chushang.system.entity.dto.ListLoginLogDTO;
+import com.chushang.system.entity.po.SysDictType;
import com.chushang.system.entity.po.SysLoginInfo;
+import com.chushang.system.entity.po.SysPost;
public interface SysLoginInfoService extends IService {
- default AjaxResult saveLoginInfo(SysLoginInfo sysLogininfo){
+ default AjaxResult saveLoginInfo(SysLoginInfo sysLogininfo) {
return save(sysLogininfo) ? AjaxResult.success() : AjaxResult.error();
}
+ LambdaQueryWrapper buildWrapper(SysLoginInfo loginInfo, CommonParam commonParam);
+
+ default PageResult pagePostList(SysLoginInfo loginInfo, CommonParam commonParam) {
+ IPage page = this.page(
+ new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(commonParam.getPage(), commonParam.getLimit()),
+ buildWrapper(loginInfo, commonParam)
+ );
+ return new PageResult(page);
+ }
}
diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysDictDataServiceImpl.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysDictDataServiceImpl.java
index 398c844..6c5645d 100644
--- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysDictDataServiceImpl.java
+++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysDictDataServiceImpl.java
@@ -43,7 +43,7 @@ public class SysDictDataServiceImpl extends ServiceImpl list = list(new LambdaQueryWrapper()
.eq(SysDictData::getDictType, dictType)
- .eq(SysDictData::getStatus, "0")
+ .eq(SysDictData::getStatus, true)
.orderByAsc(SysDictData::getDictSort)
);
if (CollectionUtil.isNotEmpty(list)) {
@@ -80,7 +80,7 @@ public class SysDictDataServiceImpl extends ServiceImpl implements SysLoginInfoService {
+ @Override
+ public LambdaQueryWrapper buildWrapper(SysLoginInfo loginInfo, CommonParam commonParam) {
+ return new QueryWrapper()
+ .orderBy(true, "asc".equals(commonParam.getIsAsc()), commonParam.getOrderBy())
+ .lambda()
+ .eq(null != loginInfo.getInfoId(), SysLoginInfo::getInfoId, loginInfo.getInfoId())
+ .eq(StringUtils.isNotEmpty(loginInfo.getUserName()), SysLoginInfo::getUserName, loginInfo.getUserName())
+ .eq(StringUtils.isNotEmpty(loginInfo.getIpaddr()), SysLoginInfo::getIpaddr, loginInfo.getIpaddr())
+ .eq(null != loginInfo.getStatus(), SysLoginInfo::getStatus, loginInfo.getStatus());
+ }
}
diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysMenuServiceImpl.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysMenuServiceImpl.java
index 86f64bd..4eec104 100644
--- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysMenuServiceImpl.java
+++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysMenuServiceImpl.java
@@ -106,12 +106,12 @@ public class SysMenuServiceImpl extends ServiceImpl impl
{
RouterVo router = new RouterVo();
// visible 为1 代表显示路由
- router.setHidden("0".equals(menu.getVisible()));
+ router.setHidden(!menu.getVisible());
router.setName(getRouteName(menu));
router.setPath(getRouterPath(menu));
router.setComponent(getComponent(menu));
router.setQuery(menu.getQuery());
- router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), "0".equals(menu.getCache()), menu.getPath()));
+ router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), !menu.getCache(), menu.getPath()));
List cMenus = menu.getChildren();
if (!cMenus.isEmpty() && MenuTypeEnum.CATALOG.equals(menu.getMenuType()))
{
@@ -127,7 +127,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl
children.setPath(menu.getPath());
children.setComponent(menu.getComponent());
children.setName(StringUtils.capitalize(menu.getPath()));
- children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), "0".equals(menu.getCache()), menu.getPath()));
+ children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), !menu.getCache(), menu.getPath()));
children.setQuery(menu.getQuery());
childrenList.add(children);
router.setChildren(childrenList);
@@ -176,7 +176,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl
*/
public boolean isMenuFrame(SysMenu menu)
{
- return menu.getParentId() == 0 && MenuTypeEnum.MENU.equals(menu.getMenuType()) && "1".equals(menu.getFrame());
+ return menu.getParentId() == 0 && MenuTypeEnum.MENU.equals(menu.getMenuType()) && menu.getFrame();
}
/**
@@ -195,7 +195,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl
}
// 非外链并且是一级目录(类型为目录)
if (0 == menu.getParentId() && MenuTypeEnum.CATALOG.equals(menu.getMenuType())
- && "1".equals(menu.getFrame()))
+ && menu.getFrame())
{
routerPath = "/" + menu.getPath();
}
@@ -214,10 +214,10 @@ public class SysMenuServiceImpl extends ServiceImpl impl
menu.setMenuName("系统管理");
menu.setPath("system");
menu.setMenuType(MenuTypeEnum.CATALOG);
- menu.setFrame("1");
- menu.setCache("1");
- menu.setVisible("1");
- menu.setStatus("1");
+ menu.setFrame(true);
+ menu.setCache(true);
+ menu.setVisible(true);
+ menu.setStatus(true);
String routerPath = sysMenuService.getRouterPath(menu);
System.out.println(routerPath);
}
@@ -230,7 +230,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl
*/
public boolean isInnerLink(SysMenu menu)
{
- return "1".equals(menu.getFrame()) && StringUtils.startsWithAny(menu.getPath(), Constants.HTTP, Constants.HTTPS);
+ return menu.getFrame() && StringUtils.startsWithAny(menu.getPath(), Constants.HTTP, Constants.HTTPS);
}
/**
@@ -295,7 +295,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl
private List buildMenuTree(List menus) {
List returnList = new ArrayList<>();
- List tempList = menus.stream().map(SysMenu::getMenuId).collect(Collectors.toList());
+ List tempList = menus.stream().map(SysMenu::getMenuId).toList();
for (SysMenu menu : menus) {
// 如果是顶级节点, 遍历该父节点的所有子节点
if (!tempList.contains(menu.getParentId())) {
@@ -341,7 +341,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl
private boolean hasChild(List list, SysMenu t)
{
- return getChildList(list, t).size() > 0;
+ return !getChildList(list, t).isEmpty();
}
/**
diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysPostServiceImpl.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysPostServiceImpl.java
index af789c2..12a1f76 100644
--- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysPostServiceImpl.java
+++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysPostServiceImpl.java
@@ -13,6 +13,8 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
+import java.util.List;
+
/**
* @auther: zhao
* @date: 2024/5/9 18:33
@@ -28,6 +30,11 @@ public class SysPostServiceImpl extends ServiceImpl impl
.eq(null != sysPost.getPostId(), SysPost::getPostId, sysPost.getPostId())
.eq(StringUtils.isNotEmpty(sysPost.getPostCode()), SysPost::getPostCode, sysPost.getPostCode())
.eq(StringUtils.isNotEmpty(sysPost.getPostName()), SysPost::getPostName, sysPost.getPostName())
- .eq(StringUtils.isNotEmpty(sysPost.getStatus()), SysPost::getStatus, sysPost.getStatus());
+ .eq(null != sysPost.getStatus(), SysPost::getStatus, sysPost.getStatus());
+ }
+
+ @Override
+ public List selectPostListByUserId(Integer userId) {
+ return baseMapper.selectPostListByUserId(userId);
}
}
diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysUserServiceImpl.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysUserServiceImpl.java
index 65e37a9..6c5f9bf 100644
--- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysUserServiceImpl.java
+++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/service/impl/SysUserServiceImpl.java
@@ -144,15 +144,6 @@ public class SysUserServiceImpl extends ServiceImpl impl
}
- /**
- * 校验用户是否允许操作
- */
- @Override
- public void checkUserAllowed(SysUser sysUser) {
- if (ObjectUtil.isNotNull(sysUser.getUserId()) && sysUser.isAdmin()){
- throw new ResultException("不允许操作超级管理员用户");
- }
- }
@Override
@Transactional
diff --git a/chushang-modules/chushang-module-system/system-service/src/main/resources/application.yml b/chushang-modules/chushang-module-system/system-service/src/main/resources/application.yml
index 74ce3f8..bcc09a7 100644
--- a/chushang-modules/chushang-module-system/system-service/src/main/resources/application.yml
+++ b/chushang-modules/chushang-module-system/system-service/src/main/resources/application.yml
@@ -55,7 +55,7 @@ mybatis-plus:
call-setters-on-nulls: true
jdbc-type-for-null: 'null'
default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler
- #log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# feign 配置
feign:
sentinel:
@@ -87,5 +87,6 @@ management:
# 日志监听配置 -- 如果启用的话,需要配置 kafka 的路径
logging:
config: classpath:logback-nacos.xml
-
-
+pagehelper:
+ async-count:
+ banner: false
diff --git a/chushang-modules/chushang-module-system/system-service/src/main/resources/mapper/SysUserMapper.xml b/chushang-modules/chushang-module-system/system-service/src/main/resources/mapper/SysUserMapper.xml
index b2b6b26..9c7f117 100644
--- a/chushang-modules/chushang-module-system/system-service/src/main/resources/mapper/SysUserMapper.xml
+++ b/chushang-modules/chushang-module-system/system-service/src/main/resources/mapper/SysUserMapper.xml
@@ -12,6 +12,11 @@
+
+
+
+
+
@@ -36,6 +41,7 @@
select u.user_id, u.dept_id, u.username, u.password, u.status, u.del_state, u.create_by, u.create_time,u.update_time,u.salt,
+ u.phone,u.nick_name,u.gender,u.avatar,u.email,
d.parent_dept_id, d.ancestors, d.dept_name, d.order_num as dept_order_num,d.status as dept_status,
r.role_id, r.role_name, r.role_key,r.order_num as role_order_num, r.data_scope, r.status as role_status
from sys_user u
@@ -76,7 +82,7 @@
diff --git a/pom.xml b/pom.xml
index 23d7282..f686a0e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,7 +33,7 @@
local
local
- 192.168.116.115:8848
+ 127.0.0.1:8848
ece94e7d-4792-48d2-b1f8-06334b530944
DEFAULT_GROUP
nacos
@@ -99,7 +99,7 @@
3.10.0
0.1.55
2.0.43
-
+ 2.7.0
3.11.0
3.1.0
@@ -555,6 +555,12 @@
fastjson2
${fastjson2.version}
+
+
+ org.lionsoul
+ ip2region
+ ${ip2region.version}
+