feat: 包结构调整,整合ip2region解析ip的所在区域
This commit is contained in:
9
pom.xml
9
pom.xml
@@ -47,6 +47,9 @@
|
|||||||
<!-- 自动代码生成 -->
|
<!-- 自动代码生成 -->
|
||||||
<mybatis-plus-generator.version>3.5.6</mybatis-plus-generator.version>
|
<mybatis-plus-generator.version>3.5.6</mybatis-plus-generator.version>
|
||||||
<velocity.version>2.3</velocity.version>
|
<velocity.version>2.3</velocity.version>
|
||||||
|
|
||||||
|
<!-- IP 地区转换 -->
|
||||||
|
<ip2region.version>2.7.0</ip2region.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
@@ -197,6 +200,12 @@
|
|||||||
<artifactId>velocity-engine-core</artifactId>
|
<artifactId>velocity-engine-core</artifactId>
|
||||||
<version>${velocity.version}</version>
|
<version>${velocity.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.lionsoul</groupId>
|
||||||
|
<artifactId>ip2region</artifactId>
|
||||||
|
<version>${ip2region.version}</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
package com.youlai.system.common.result;
|
package com.youlai.system.common.result;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author haoxr
|
* 响应码接口
|
||||||
|
*
|
||||||
|
* @author Ray
|
||||||
|
* @since 2022/2/18
|
||||||
**/
|
**/
|
||||||
public interface IResultCode {
|
public interface IResultCode {
|
||||||
|
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* 分页响应结构体
|
* 分页响应结构体
|
||||||
*
|
*
|
||||||
* @author haoxr
|
* @author Ray
|
||||||
* @since 2022/2/18 23:29
|
* @since 2022/2/18
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class PageResult<T> implements Serializable {
|
public class PageResult<T> implements Serializable {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import java.io.Serializable;
|
|||||||
/**
|
/**
|
||||||
* 统一响应结构体
|
* 统一响应结构体
|
||||||
*
|
*
|
||||||
* @author haoxr
|
* @author Ray
|
||||||
* @since 2022/1/30
|
* @since 2022/1/30
|
||||||
**/
|
**/
|
||||||
@Data
|
@Data
|
||||||
|
|||||||
@@ -7,9 +7,11 @@ import java.io.Serializable;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 响应码枚举
|
* 响应码枚举
|
||||||
|
* <p>
|
||||||
|
* 参考阿里巴巴开发手册响应码规范
|
||||||
*
|
*
|
||||||
* @author haoxr
|
* @author Ray
|
||||||
* @since 2020-06-23
|
* @since 2020/6/23
|
||||||
**/
|
**/
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@@ -103,7 +105,7 @@ public enum ResultCode implements IResultCode, Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static ResultCode getValue(String code){
|
public static ResultCode getValue(String code) {
|
||||||
for (ResultCode value : values()) {
|
for (ResultCode value : values()) {
|
||||||
if (value.getCode().equals(code)) {
|
if (value.getCode().equals(code)) {
|
||||||
return value;
|
return value;
|
||||||
|
|||||||
@@ -3,12 +3,20 @@ package com.youlai.system.common.util;
|
|||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.lionsoul.ip2region.xdb.Searcher;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.net.UnknownHostException;
|
import java.net.UnknownHostException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* IP工具类
|
* IP工具类
|
||||||
|
* <p>
|
||||||
|
* 获取客户端IP地址和IP地址对应的地理位置信息
|
||||||
|
* <p>
|
||||||
|
* 使用Nginx等反向代理软件, 则不能通过request.getRemoteAddr()获取IP地址
|
||||||
|
* 如果使用了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP地址,X-Forwarded-For中第一个非unknown的有效IP字符串,则为真实IP地址
|
||||||
|
* </p>
|
||||||
*
|
*
|
||||||
* @author Ray
|
* @author Ray
|
||||||
* @since 2.10.0
|
* @since 2.10.0
|
||||||
@@ -16,10 +24,13 @@ import java.net.UnknownHostException;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
public class IPUtils {
|
public class IPUtils {
|
||||||
|
|
||||||
|
private static final String DB_PATH = "src/main/resources/data/ip2region.xdb";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取IP地址
|
* 获取IP地址
|
||||||
* 使用Nginx等反向代理软件, 则不能通过request.getRemoteAddr()获取IP地址
|
*
|
||||||
* 如果使用了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP地址,X-Forwarded-For中第一个非unknown的有效IP字符串,则为真实IP地址
|
* @param request HttpServletRequest对象
|
||||||
|
* @return 客户端IP地址
|
||||||
*/
|
*/
|
||||||
public static String getIpAddr(HttpServletRequest request) {
|
public static String getIpAddr(HttpServletRequest request) {
|
||||||
String ip = null;
|
String ip = null;
|
||||||
@@ -51,7 +62,7 @@ public class IPUtils {
|
|||||||
log.error("IPUtils ERROR, {}", e.getMessage());
|
log.error("IPUtils ERROR, {}", e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
//使用代理,则获取第一个IP地址
|
// 使用代理,则获取第一个IP地址
|
||||||
if (StrUtil.isNotBlank(ip) && ip.indexOf(",") > 0) {
|
if (StrUtil.isNotBlank(ip) && ip.indexOf(",") > 0) {
|
||||||
ip = ip.substring(0, ip.indexOf(","));
|
ip = ip.substring(0, ip.indexOf(","));
|
||||||
}
|
}
|
||||||
@@ -59,14 +70,15 @@ public class IPUtils {
|
|||||||
return ip;
|
return ip;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static boolean checkIp(String ip) {
|
private static boolean checkIp(String ip) {
|
||||||
String unknown = "unknown";
|
String unknown = "unknown";
|
||||||
return StrUtil.isEmpty(ip) || ip.isEmpty() || unknown.equalsIgnoreCase(ip);
|
return StrUtil.isEmpty(ip) || unknown.equalsIgnoreCase(ip);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取本机的IP地址
|
* 获取本机的IP地址
|
||||||
|
*
|
||||||
|
* @return 本机IP地址
|
||||||
*/
|
*/
|
||||||
private static String getLocalAddr() {
|
private static String getLocalAddr() {
|
||||||
try {
|
try {
|
||||||
@@ -77,5 +89,28 @@ public class IPUtils {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据IP地址获取地理位置信息
|
||||||
|
*
|
||||||
|
* @param ip IP地址
|
||||||
|
* @return 地理位置信息
|
||||||
|
*/
|
||||||
|
public static String getRegion(String ip) {
|
||||||
|
Searcher searcher = null;
|
||||||
|
try {
|
||||||
|
searcher = Searcher.newWithFileOnly(DB_PATH);
|
||||||
|
return searcher.search(ip);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("IpRegionUtil ERROR, {}", e.getMessage());
|
||||||
|
return null;
|
||||||
|
} finally {
|
||||||
|
if (searcher != null) {
|
||||||
|
try {
|
||||||
|
searcher.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error("IpRegionUtil close ERROR, {}", e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.youlai.system.controller;
|
package com.youlai.system.controller;
|
||||||
|
|
||||||
import com.youlai.system.common.enums.LogTypeEnum;
|
import com.youlai.system.enums.LogTypeEnum;
|
||||||
import com.youlai.system.common.result.Result;
|
import com.youlai.system.common.result.Result;
|
||||||
import com.youlai.system.model.dto.CaptchaResult;
|
import com.youlai.system.model.dto.CaptchaResult;
|
||||||
import com.youlai.system.model.dto.LoginResult;
|
import com.youlai.system.model.dto.LoginResult;
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import org.mapstruct.Mappings;
|
|||||||
public interface UserConverter {
|
public interface UserConverter {
|
||||||
|
|
||||||
@Mappings({
|
@Mappings({
|
||||||
@Mapping(target = "genderLabel", expression = "java(com.youlai.system.common.base.IBaseEnum.getLabelByValue(bo.getGender(), com.youlai.system.common.enums.GenderEnum.class))")
|
@Mapping(target = "genderLabel", expression = "java(com.youlai.system.common.base.IBaseEnum.getLabelByValue(bo.getGender(), com.youlai.system.enums.GenderEnum.class))")
|
||||||
})
|
})
|
||||||
UserPageVO bo2PageVo(UserBO bo);
|
UserPageVO bo2PageVo(UserBO bo);
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.youlai.system.common.enums;
|
package com.youlai.system.enums;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* EasyCaptcha 验证码类型枚举
|
* EasyCaptcha 验证码类型枚举
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.youlai.system.common.enums;
|
package com.youlai.system.enums;
|
||||||
|
|
||||||
import com.youlai.system.common.base.IBaseEnum;
|
import com.youlai.system.common.base.IBaseEnum;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.youlai.system.common.enums;
|
package com.youlai.system.enums;
|
||||||
|
|
||||||
import com.youlai.system.common.base.IBaseEnum;
|
import com.youlai.system.common.base.IBaseEnum;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.youlai.system.common.enums;
|
package com.youlai.system.enums;
|
||||||
|
|
||||||
import com.youlai.system.common.base.IBaseEnum;
|
import com.youlai.system.common.base.IBaseEnum;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.youlai.system.common.enums;
|
package com.youlai.system.enums;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||||
import com.youlai.system.common.base.IBaseEnum;
|
import com.youlai.system.common.base.IBaseEnum;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.youlai.system.common.enums;
|
package com.youlai.system.enums;
|
||||||
|
|
||||||
import com.youlai.system.common.base.IBaseEnum;
|
import com.youlai.system.common.base.IBaseEnum;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.youlai.system.common.exception;
|
package com.youlai.system.exception;
|
||||||
|
|
||||||
import com.youlai.system.common.result.IResultCode;
|
import com.youlai.system.common.result.IResultCode;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.youlai.system.common.exception;
|
package com.youlai.system.exception;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.youlai.system.model.bo;
|
package com.youlai.system.model.bo;
|
||||||
|
|
||||||
import com.youlai.system.common.enums.MenuTypeEnum;
|
import com.youlai.system.enums.MenuTypeEnum;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ public class SysLog implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 日志类型
|
* 日志类型
|
||||||
*
|
*
|
||||||
* @see com.youlai.system.common.enums.LogTypeEnum
|
* @see com.youlai.system.enums.LogTypeEnum
|
||||||
*/
|
*/
|
||||||
private Integer type;
|
private Integer type;
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package com.youlai.system.model.entity;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
|
||||||
import com.youlai.system.common.enums.MenuTypeEnum;
|
import com.youlai.system.enums.MenuTypeEnum;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.youlai.system.model.form;
|
package com.youlai.system.model.form;
|
||||||
|
|
||||||
import com.youlai.system.common.enums.MenuTypeEnum;
|
import com.youlai.system.enums.MenuTypeEnum;
|
||||||
import com.youlai.system.common.model.KeyValue;
|
import com.youlai.system.common.model.KeyValue;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.youlai.system.model.vo;
|
package com.youlai.system.model.vo;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
import com.youlai.system.common.enums.MenuTypeEnum;
|
import com.youlai.system.enums.MenuTypeEnum;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ import com.alibaba.excel.context.AnalysisContext;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.youlai.system.common.base.IBaseEnum;
|
import com.youlai.system.common.base.IBaseEnum;
|
||||||
import com.youlai.system.common.constant.SystemConstants;
|
import com.youlai.system.common.constant.SystemConstants;
|
||||||
import com.youlai.system.common.enums.GenderEnum;
|
import com.youlai.system.enums.GenderEnum;
|
||||||
import com.youlai.system.common.enums.StatusEnum;
|
import com.youlai.system.enums.StatusEnum;
|
||||||
import com.youlai.system.converter.UserConverter;
|
import com.youlai.system.converter.UserConverter;
|
||||||
import com.youlai.system.model.dto.UserImportDTO;
|
import com.youlai.system.model.dto.UserImportDTO;
|
||||||
import com.youlai.system.model.entity.SysDept;
|
import com.youlai.system.model.entity.SysDept;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringPool;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.handler.DataPermissionHandler;
|
import com.baomidou.mybatisplus.extension.plugins.handler.DataPermissionHandler;
|
||||||
import com.youlai.system.plugin.mybatis.annotation.DataPermission;
|
import com.youlai.system.plugin.mybatis.annotation.DataPermission;
|
||||||
import com.youlai.system.common.base.IBaseEnum;
|
import com.youlai.system.common.base.IBaseEnum;
|
||||||
import com.youlai.system.common.enums.DataScopeEnum;
|
import com.youlai.system.enums.DataScopeEnum;
|
||||||
import com.youlai.system.security.util.SecurityUtils;
|
import com.youlai.system.security.util.SecurityUtils;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import cn.hutool.jwt.JWTUtil;
|
import cn.hutool.jwt.JWTUtil;
|
||||||
import cn.hutool.jwt.RegisteredPayload;
|
import cn.hutool.jwt.RegisteredPayload;
|
||||||
import com.youlai.system.common.constant.SecurityConstants;
|
import com.youlai.system.common.constant.SecurityConstants;
|
||||||
import com.youlai.system.common.exception.BusinessException;
|
import com.youlai.system.exception.BusinessException;
|
||||||
import com.youlai.system.common.result.ResultCode;
|
import com.youlai.system.common.result.ResultCode;
|
||||||
import com.youlai.system.plugin.norepeat.annotation.PreventRepeatSubmit;
|
import com.youlai.system.plugin.norepeat.annotation.PreventRepeatSubmit;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.youlai.system.plugin.syslog.annotation;
|
package com.youlai.system.plugin.syslog.annotation;
|
||||||
|
|
||||||
import com.youlai.system.common.enums.LogTypeEnum;
|
import com.youlai.system.enums.LogTypeEnum;
|
||||||
|
|
||||||
import java.lang.annotation.*;
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package com.youlai.system.plugin.syslog.aspect;
|
|||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.date.TimeInterval;
|
import cn.hutool.core.date.TimeInterval;
|
||||||
import cn.hutool.extra.servlet.ServletUtil;
|
|
||||||
import com.youlai.system.common.util.IPUtils;
|
import com.youlai.system.common.util.IPUtils;
|
||||||
import com.youlai.system.model.entity.SysLog;
|
import com.youlai.system.model.entity.SysLog;
|
||||||
import com.youlai.system.plugin.syslog.annotation.LogAnnotation;
|
import com.youlai.system.plugin.syslog.annotation.LogAnnotation;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import cn.hutool.json.JSONObject;
|
|||||||
import cn.hutool.jwt.JWTPayload;
|
import cn.hutool.jwt.JWTPayload;
|
||||||
import cn.hutool.jwt.JWTUtil;
|
import cn.hutool.jwt.JWTUtil;
|
||||||
import com.youlai.system.common.constant.SecurityConstants;
|
import com.youlai.system.common.constant.SecurityConstants;
|
||||||
import com.youlai.system.common.enums.CaptchaTypeEnum;
|
import com.youlai.system.enums.CaptchaTypeEnum;
|
||||||
import com.youlai.system.model.dto.CaptchaResult;
|
import com.youlai.system.model.dto.CaptchaResult;
|
||||||
import com.youlai.system.model.dto.LoginResult;
|
import com.youlai.system.model.dto.LoginResult;
|
||||||
import com.youlai.system.config.property.CaptchaProperties;
|
import com.youlai.system.config.property.CaptchaProperties;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.youlai.system.common.constant.SystemConstants;
|
import com.youlai.system.common.constant.SystemConstants;
|
||||||
import com.youlai.system.common.enums.StatusEnum;
|
import com.youlai.system.enums.StatusEnum;
|
||||||
import com.youlai.system.converter.DeptConverter;
|
import com.youlai.system.converter.DeptConverter;
|
||||||
import com.youlai.system.mapper.SysDeptMapper;
|
import com.youlai.system.mapper.SysDeptMapper;
|
||||||
import com.youlai.system.model.entity.SysDept;
|
import com.youlai.system.model.entity.SysDept;
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.youlai.system.common.constant.SystemConstants;
|
import com.youlai.system.common.constant.SystemConstants;
|
||||||
import com.youlai.system.common.enums.MenuTypeEnum;
|
import com.youlai.system.enums.MenuTypeEnum;
|
||||||
import com.youlai.system.common.enums.StatusEnum;
|
import com.youlai.system.enums.StatusEnum;
|
||||||
import com.youlai.system.common.model.KeyValue;
|
import com.youlai.system.common.model.KeyValue;
|
||||||
import com.youlai.system.common.model.Option;
|
import com.youlai.system.common.model.Option;
|
||||||
import com.youlai.system.converter.MenuConverter;
|
import com.youlai.system.converter.MenuConverter;
|
||||||
|
|||||||
BIN
src/main/resources/data/ip2region.xdb
Normal file
BIN
src/main/resources/data/ip2region.xdb
Normal file
Binary file not shown.
@@ -48,7 +48,7 @@
|
|||||||
LEFT JOIN sys_role_menu t2 ON t1.id = t2.menu_id
|
LEFT JOIN sys_role_menu t2 ON t1.id = t2.menu_id
|
||||||
LEFT JOIN sys_role t3 ON t2.role_id = t3.id
|
LEFT JOIN sys_role t3 ON t2.role_id = t3.id
|
||||||
WHERE
|
WHERE
|
||||||
t1.type != '${@com.youlai.system.common.enums.MenuTypeEnum@BUTTON.getValue()}'
|
t1.type != '${@com.youlai.system.enums.MenuTypeEnum@BUTTON.getValue()}'
|
||||||
ORDER BY
|
ORDER BY
|
||||||
t1.sort
|
t1.sort
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
INNER JOIN sys_role t2 ON t1.role_id = t2.id AND t2.is_deleted = 0 AND t2.`status` = 1
|
INNER JOIN sys_role t2 ON t1.role_id = t2.id AND t2.is_deleted = 0 AND t2.`status` = 1
|
||||||
INNER JOIN sys_menu t3 ON t1.menu_id = t3.id
|
INNER JOIN sys_menu t3 ON t1.menu_id = t3.id
|
||||||
WHERE
|
WHERE
|
||||||
type = '${@com.youlai.system.common.enums.MenuTypeEnum@BUTTON.getValue()}'
|
type = '${@com.youlai.system.enums.MenuTypeEnum@BUTTON.getValue()}'
|
||||||
<if test="roleCode!=null and roleCode.trim() neq ''">
|
<if test="roleCode!=null and roleCode.trim() neq ''">
|
||||||
AND t2.`code` = #{roleCode}
|
AND t2.`code` = #{roleCode}
|
||||||
</if>
|
</if>
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
INNER JOIN sys_menu t2 ON t2.id = t1.menu_id
|
INNER JOIN sys_menu t2 ON t2.id = t1.menu_id
|
||||||
INNER JOIN sys_role t3 ON t3.id = t1.role_id
|
INNER JOIN sys_role t3 ON t3.id = t1.role_id
|
||||||
WHERE
|
WHERE
|
||||||
t2.type = '${@com.youlai.system.common.enums.MenuTypeEnum@BUTTON.getValue()}'
|
t2.type = '${@com.youlai.system.enums.MenuTypeEnum@BUTTON.getValue()}'
|
||||||
AND t2.perm IS NOT NULL
|
AND t2.perm IS NOT NULL
|
||||||
AND t3.CODE IN
|
AND t3.CODE IN
|
||||||
<foreach collection="roles" item="role" separator="," open="(" close=")">
|
<foreach collection="roles" item="role" separator="," open="(" close=")">
|
||||||
|
|||||||
Reference in New Issue
Block a user