优化了很多包名、类型、以及很多包的位置,跨度好几天,有些不记得了

This commit is contained in:
zhuoda 2021-10-07 21:46:47 +08:00
parent d6e49a8b50
commit b9a76dc2d1
152 changed files with 768 additions and 685 deletions

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.common.anno;
package net.lab1024.smartadmin.service.common.annoation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.common.anno;
package net.lab1024.smartadmin.service.common.annoation;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

View File

@ -32,8 +32,6 @@ public enum UserErrorCode implements ErrorCode {
LOGIN_FAILED(30010, "用户名或密码错误!"),
VERIFICATION_CODE_INVALID(30011, "验证码错误或已过期,请输入正确的验证码"),
;
private final int code;

View File

@ -1,20 +0,0 @@
package net.lab1024.smartadmin.service.common.constant;
/**
* [ ]
*
* @author luoyi
* @date 2021/9/26 17:50
*/
public class ApiUrlPrefixConst {
/**
* 基础 api 前缀
*/
public static final String API_PREFIX_SUPPORT = "/support";
/**
* 后管 api 前缀
*/
public static final String API_PREFIX_ADMIN = "/admin";
}

View File

@ -1,78 +0,0 @@
package net.lab1024.smartadmin.service.common.constant;
import com.google.common.collect.Interner;
import com.google.common.collect.Interners;
import java.math.BigDecimal;
import java.util.*;
/**
* [ 通用常量 ]
*
* @author zhuoda
*/
public class CommonConst {
public static final int ZERO = 0;
public static final long ONE = 1;
/**
* 全局通用分隔符
*/
public static final String SEPARATOR = ",";
/**
* 全局通用分隔符 下划线
*/
public static final String UNDERLINE = "_";
/**
* 全局通用分隔符
*/
public static final Character SEPARATOR_CHAR = ',';
/**
* 全局通用分隔符 斜杠
*/
public static final String SEPARATOR_SLASH = "/";
/**
* 空字符串
*/
public static final String EMPTY_STR = "";
/**
* 全局通用 默认id
*/
public static final long DEFAULT_ID = 0L;
/**
* 100 常量
*/
public static final Integer ONE_HUNDRED = 100;
/**
* 100 常量
*/
public static final BigDecimal ONE_HUNDRED_DECIMAL = new BigDecimal(100);
/**
* 全局通用 默认父级id 最顶级
*/
public static final Long DEFAULT_PARENT_ID = 0L;
/**
* 空MaP
*/
public static final Map EMPTY_MAP = Collections.unmodifiableMap(new HashMap<>(0));
/**
* list
*/
public static final List EMPTY_LIST = Collections.unmodifiableList(new ArrayList<>(0));
public static final Interner<String> STRING_POOL = Interners.newWeakInterner();
}

View File

@ -1,39 +0,0 @@
package net.lab1024.smartadmin.service.common.constant;
/**
* [ ]
*
* @author luoyi
* @date 2021/9/26 17:45
*/
public class NumberLimitConst {
/**
* 用户昵称
*/
public static final int USER_NICKNAME = 15;
/**
* 短信验证码长度
*/
public static final int SMS_CODE = 6;
/**
* 短信发送间隔
*/
public static final int SMS_SEND_INTERVAL = 60;
/**
* 短信有效期
*/
public static final int SMS_VALID_SECOND = 300;
/**
* 验证码短信 每天的限制
*/
public static final int SMS_DAY_LIMIT = 10;
/**
* 文件名称长度
*/
public static final int FILE_NAME = 100;
}

View File

@ -8,17 +8,17 @@ package net.lab1024.smartadmin.service.common.constant;
*/
public class RedisKeyConst {
public class Base {
public static final String PROJECT = "smart:";
private static final String PROJECT = "base:";
public class Support {
public static final String FILE_URL = PROJECT + "file:";
public static final String FILE_VO = PROJECT + "fileVO:";
public static final String FILE_VO = PROJECT + "file-vo:";
public static final String LOCK = PROJECT + "lock:";
public static final String ID_GENERATOR = LOCK + "id:";
public static final String ID_GENERATOR = LOCK + "id-generator:";
public static final String CAPTCHA = PROJECT + "captcha:";

View File

@ -3,7 +3,7 @@ package net.lab1024.smartadmin.service.common.constant;
/**
* [ ]
*
* @author luoyi
* @author 罗伊
* @date 2021/9/26 17:43
*/
public class RequestHeaderConst {

View File

@ -0,0 +1,37 @@
package net.lab1024.smartadmin.service.common.constant;
/**
* [ 通用常量 ]
*
* @author 卓大
*/
public class StringConst {
/**
* 全局通用分隔符
*/
public static final String SEPARATOR = ",";
/**
* 全局通用分隔符 下划线
*/
public static final String UNDERLINE = "_";
/**
* 全局通用分隔符
*/
public static final Character SEPARATOR_CHAR = ',';
/**
* 全局通用分隔符 斜杠
*/
public static final String SEPARATOR_SLASH = "/";
/**
* 空字符串
*/
public static final String EMPTY_STR = "";
}

View File

@ -1,15 +0,0 @@
package net.lab1024.smartadmin.service.common.constant;
/**
* @author 罗伊
* @date 2021-01-31 0:00
*/
public class SystemConst {
public static final class Password {
public static final String DEFAULT = "123456";
public static final String SALT_FORMAT = "smartAdmin_%s";
}
}

View File

@ -0,0 +1,15 @@
package net.lab1024.smartadmin.service.common.constant;
/**
* redis key 常量类
*
* @author 卓大
* @date 2021/10/03 20:48
*/
public class UrlPrefixConst {
public static final String SYSTEM = "/system";
public static final String SUPPORT = "/support";
}

View File

@ -1,16 +0,0 @@
package net.lab1024.smartadmin.service.common.controller;
import lombok.extern.slf4j.Slf4j;
import net.lab1024.smartadmin.service.common.constant.ApiUrlPrefixConst;
import net.lab1024.smartadmin.service.common.constant.CommonConst;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @author: 卓大
* @create: 2020-03-31 08:54 PM from win10
*/
@Slf4j
@RequestMapping(ApiUrlPrefixConst.API_PREFIX_ADMIN)
public class AdminBaseController {
}

View File

@ -1,6 +1,6 @@
package net.lab1024.smartadmin.service.common.controller;
import net.lab1024.smartadmin.service.common.constant.ApiUrlPrefixConst;
import net.lab1024.smartadmin.service.common.constant.UrlPrefixConst;
import org.springframework.web.bind.annotation.RequestMapping;
/**
@ -9,6 +9,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
* @author 胡克
* @date 2019/10/18 11:51
*/
@RequestMapping(ApiUrlPrefixConst.API_PREFIX_SUPPORT)
@RequestMapping(UrlPrefixConst.SUPPORT)
public class SupportBaseController {
}

View File

@ -0,0 +1,16 @@
package net.lab1024.smartadmin.service.common.controller;
import lombok.extern.slf4j.Slf4j;
import net.lab1024.smartadmin.service.common.constant.UrlPrefixConst;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* 系统controller基类
*
* @author 卓大
* @date 2021/10/02 11:51
*/
@RequestMapping(UrlPrefixConst.SYSTEM)
public class SystemBaseController {
}

View File

@ -6,10 +6,7 @@ import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;
import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.validation.constraints.*;
import java.util.List;
/**
@ -19,18 +16,20 @@ import java.util.List;
* @Date Created in 2017/10/28 16:19
*/
@Data
public class PageBaseDTO {
public class PageParamDTO {
@ApiModelProperty(value = "页码(不能为空)", required = true, example = "1")
@NotNull(message = "分页参数不能为空")
@Min(value = 1, message = "分页参数最小1")
private Integer pageNum;
@ApiModelProperty(value = "每页数量(不能为空)", required = true, example = "10")
@NotNull(message = "每页数量不能为空")
@Range(min = 1, max = 200, message = "每页数量1-200")
@Max(value = 200, message = "每页最大为200")
private Integer pageSize;
@ApiModelProperty("是否查询总条数")
protected Boolean searchCount;
@ApiModelProperty("排序字段集合")
@Size(max = 10, message = "排序字段最多10")
@Valid

View File

@ -3,7 +3,7 @@ package net.lab1024.smartadmin.service.common.domain;
import lombok.AllArgsConstructor;
import lombok.Getter;
import net.lab1024.smartadmin.service.common.enumconst.SystemEnvironmentEnum;
import net.lab1024.smartadmin.service.common.enumeration.SystemEnvironmentEnum;
/**
* 系统环境
@ -13,12 +13,12 @@ import net.lab1024.smartadmin.service.common.enumconst.SystemEnvironmentEnum;
*/
@AllArgsConstructor
@Getter
public class SystemEnvironmentBO {
public class SystemEnvironment {
/**
* 是否位生产环境
*/
private Boolean isProd;
private boolean isProd;
/**
* 当前环境

View File

@ -0,0 +1,16 @@
package net.lab1024.smartadmin.service.common.domain;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author: listen
* @create: 2020/10/16
*/
@Data
public class ValidateData<T> {
@NotNull(message = "数据不能为空哦")
private T data;
}

View File

@ -0,0 +1,148 @@
package net.lab1024.smartadmin.service.common.domain;
import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import java.util.*;
/**
* @author: zhuoda
* @create: 2020-02-03 17:37 PM from win10
*/
public class ValidateList<E> implements List<E> {
@Valid
@NotEmpty(message = "数据长度不能为空哦")
private List<E> list;
public ValidateList() {
this.list = new ArrayList<>();
}
public ValidateList(List<E> list) {
this.list = list;
}
public List<E> getList() {
return list;
}
public void setList(List<E> list) {
this.list = list;
}
@Override
public int size() {
return list.size();
}
@Override
public boolean isEmpty() {
return list.isEmpty();
}
@Override
public boolean contains(Object o) {
return list.contains(o);
}
@Override
public Iterator<E> iterator() {
return list.iterator();
}
@Override
public Object[] toArray() {
return list.toArray();
}
@Override
public <T> T[] toArray(T[] a) {
return list.toArray(a);
}
@Override
public boolean add(E e) {
return list.add(e);
}
@Override
public boolean remove(Object o) {
return list.remove(o);
}
@Override
public boolean containsAll(Collection<?> c) {
return list.containsAll(c);
}
@Override
public boolean addAll(Collection<? extends E> c) {
return list.addAll(c);
}
@Override
public boolean addAll(int index, Collection<? extends E> c) {
return list.addAll(index, c);
}
@Override
public boolean removeAll(Collection<?> c) {
return list.removeAll(c);
}
@Override
public boolean retainAll(Collection<?> c) {
return list.retainAll(c);
}
@Override
public void clear() {
list.clear();
}
@Override
public E get(int index) {
return list.get(index);
}
@Override
public E set(int index, E element) {
return list.set(index, element);
}
@Override
public void add(int index, E element) {
list.add(index, element);
}
@Override
public E remove(int index) {
return list.remove(index);
}
@Override
public int indexOf(Object o) {
return list.indexOf(o);
}
@Override
public int lastIndexOf(Object o) {
return list.lastIndexOf(o);
}
@Override
public ListIterator<E> listIterator() {
return list.listIterator();
}
@Override
public ListIterator<E> listIterator(int index) {
return list.listIterator(index);
}
@Override
public List<E> subList(int fromIndex, int toIndex) {
return list.subList(fromIndex, toIndex);
}
}

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.common.enumconst;
package net.lab1024.smartadmin.service.common.enumeration;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONAware;

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.common.enumconst;
package net.lab1024.smartadmin.service.common.enumeration;
import lombok.AllArgsConstructor;
import lombok.Getter;

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.common.enumconst;
package net.lab1024.smartadmin.service.common.enumeration;
import lombok.AllArgsConstructor;

View File

@ -8,28 +8,28 @@ import net.lab1024.smartadmin.service.common.code.ErrorCode;
* @author 罗伊
* @date 2020/8/25 11:57
*/
public class SmartBusinessException extends RuntimeException {
public class BusinessException extends RuntimeException {
public SmartBusinessException() {
public BusinessException() {
}
public SmartBusinessException(ErrorCode errorCode) {
public BusinessException(ErrorCode errorCode) {
super(errorCode.getMsg());
}
public SmartBusinessException(String message) {
public BusinessException(String message) {
super(message);
}
public SmartBusinessException(String message, Throwable cause) {
public BusinessException(String message, Throwable cause) {
super(message, cause);
}
public SmartBusinessException(Throwable cause) {
public BusinessException(Throwable cause) {
super(cause);
}
public SmartBusinessException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
public BusinessException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
super(message, cause, enableSuppression, writableStackTrace);
}
}

View File

@ -18,7 +18,7 @@ import java.io.IOException;
* @author
* @date
*/
public class SmartSecurityAuthenticationFailHandler implements AuthenticationEntryPoint {
public class SecurityAuthenticationFailHandler implements AuthenticationEntryPoint {
@Override
public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) throws IOException {

View File

@ -1,6 +1,6 @@
package net.lab1024.smartadmin.service.common.security;
import net.lab1024.smartadmin.service.common.anno.NoValidPrivilege;
import net.lab1024.smartadmin.service.common.annoation.NoValidPrivilege;
import org.apache.commons.lang3.StringUtils;
import org.springframework.security.access.ConfigAttribute;
import org.springframework.security.access.prepost.*;
@ -22,7 +22,7 @@ import java.util.*;
* @author 罗伊
* @date 2021-08-30 23:08
*/
public class SmartSecurityMetadataSource extends PrePostAnnotationSecurityMetadataSource {
public class SecurityMetadataSource extends PrePostAnnotationSecurityMetadataSource {
public static final String PRIVILEGE_CHECK_NAME = "privilegeCheck";
@ -30,12 +30,12 @@ public class SmartSecurityMetadataSource extends PrePostAnnotationSecurityMetada
private final PrePostInvocationAttributeFactory attributeFactory;
private SmartSecurityUrlMatchers smartSecurityUrlMatchers;
private SecurityUrlMatchers securityUrlMatchers;
public SmartSecurityMetadataSource(PrePostInvocationAttributeFactory attributeFactory, SmartSecurityUrlMatchers smartSecurityUrlMatchers) {
public SecurityMetadataSource(PrePostInvocationAttributeFactory attributeFactory, SecurityUrlMatchers securityUrlMatchers) {
super(attributeFactory);
this.attributeFactory = attributeFactory;
this.smartSecurityUrlMatchers = smartSecurityUrlMatchers;
this.securityUrlMatchers = securityUrlMatchers;
}
@ -43,7 +43,7 @@ public class SmartSecurityMetadataSource extends PrePostAnnotationSecurityMetada
public Collection<ConfigAttribute> getAttributes(Method method, Class<?> targetClass) {
//只对固定的包的所有接口进行控制
if (!targetClass.getName().startsWith(smartSecurityUrlMatchers.getValidPackage())) {
if (!targetClass.getName().startsWith(securityUrlMatchers.getValidPackage())) {
return super.getAttributes(method, targetClass);
}
//自己的控制
@ -77,9 +77,9 @@ public class SmartSecurityMetadataSource extends PrePostAnnotationSecurityMetada
antPathMatcher.setCaseSensitive(false);
antPathMatcher.setTrimTokens(true);
//无需验证的URL集合
List<String> noValidUrlList = smartSecurityUrlMatchers.getNoValidUrl();
List<String> noValidUrlList = securityUrlMatchers.getNoValidUrl();
//获取方法的请求路径
Set<String> methodUrl = smartSecurityUrlMatchers.getMethodUrl(method);
Set<String> methodUrl = securityUrlMatchers.getMethodUrl(method);
if (this.contain(antPathMatcher, noValidUrlList, methodUrl)) {
return super.getAttributes(method, targetClass);
}

View File

@ -2,9 +2,7 @@ package net.lab1024.smartadmin.service.common.security;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import net.lab1024.smartadmin.service.common.anno.NoNeedLogin;
import net.lab1024.smartadmin.service.common.constant.ApiUrlPrefixConst;
import net.lab1024.smartadmin.service.common.constant.CommonConst;
import net.lab1024.smartadmin.service.common.annoation.NoNeedLogin;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -30,7 +28,7 @@ import java.util.Set;
*/
@Slf4j
@Component
public class SmartSecurityUrlMatchers {
public class SecurityUrlMatchers {
@Value("${project.module}")
private String scanPackage;
@ -70,7 +68,6 @@ public class SmartSecurityUrlMatchers {
ignoreUrl.add("/swagger-resources/**");
ignoreUrl.add("/webjars/**");
ignoreUrl.add("/*/api-docs");
ignoreUrl.add(ApiUrlPrefixConst.API_PREFIX_SUPPORT + "/**");
log.info("忽略URL{}", ignoreUrl);
return ignoreUrl;
}

View File

@ -19,7 +19,7 @@ import java.util.List;
* @author 罗伊
* @date 2020/8/15 15:06
*/
public class FileKeyVoSerializer extends JsonSerializer<String> {
public class FileKeyVOSerializer extends JsonSerializer<String> {
@Autowired
private FileService fileService;

View File

@ -1,6 +1,6 @@
package net.lab1024.smartadmin.service.common.swagger;
import net.lab1024.smartadmin.service.common.enumconst.BaseEnum;
import net.lab1024.smartadmin.service.common.enumeration.BaseEnum;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;

View File

@ -2,7 +2,7 @@ package net.lab1024.smartadmin.service.common.swagger;
import com.google.common.base.Function;
import com.google.common.base.Optional;
import net.lab1024.smartadmin.service.common.enumconst.BaseEnum;
import net.lab1024.smartadmin.service.common.enumeration.BaseEnum;
import org.apache.commons.lang3.StringUtils;
import org.springframework.core.annotation.AnnotationUtils;
import org.springframework.core.annotation.Order;

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.util;
package net.lab1024.smartadmin.service.common.util;
import lombok.extern.slf4j.Slf4j;

View File

@ -1,6 +1,6 @@
package net.lab1024.smartadmin.service.util;
package net.lab1024.smartadmin.service.common.util;
import net.lab1024.smartadmin.service.common.enumconst.BaseEnum;
import net.lab1024.smartadmin.service.common.enumeration.BaseEnum;
import java.util.List;
import java.util.Objects;

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.util;
package net.lab1024.smartadmin.service.common.util;
import org.springframework.beans.BeanUtils;

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.util;
package net.lab1024.smartadmin.service.common.util;
import java.math.BigDecimal;
import java.math.RoundingMode;

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.util;
package net.lab1024.smartadmin.service.common.util;
import org.apache.commons.collections4.CollectionUtils;

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.util;
package net.lab1024.smartadmin.service.common.util;
import org.apache.commons.codec.digest.DigestUtils;

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.util;
package net.lab1024.smartadmin.service.common.util;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.ExcelImportUtil;

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.util;
package net.lab1024.smartadmin.service.common.util;
import lombok.extern.slf4j.Slf4j;
import net.lab1024.smartadmin.service.module.system.login.domain.EmployeeLoginInfoDTO;

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.util;
package net.lab1024.smartadmin.service.common.util;
import java.io.*;
import java.nio.charset.Charset;

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.util;
package net.lab1024.smartadmin.service.common.util;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.util;
package net.lab1024.smartadmin.service.common.util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

View File

@ -1,8 +1,8 @@
package net.lab1024.smartadmin.service.util;
package net.lab1024.smartadmin.service.common.util;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.lab1024.smartadmin.service.common.domain.PageBaseDTO;
import net.lab1024.smartadmin.service.common.domain.PageParamDTO;
import net.lab1024.smartadmin.service.common.domain.PageResultDTO;
import org.apache.commons.collections4.CollectionUtils;
@ -23,10 +23,10 @@ public class SmartPageUtil {
* @param baseDTO
* @return
*/
public static Page<?> convert2PageQuery(PageBaseDTO baseDTO) {
public static Page<?> convert2PageQuery(PageParamDTO baseDTO) {
Page<?> page = new Page<>(baseDTO.getPageNum(), baseDTO.getPageSize());
// 设置排序字段
List<PageBaseDTO.SortItemDTO> sortItemList = baseDTO.getSortItemList();
List<PageParamDTO.SortItemDTO> sortItemList = baseDTO.getSortItemList();
if (CollectionUtils.isNotEmpty(sortItemList)) {
List<OrderItem> orderItemList = sortItemList.stream().map(e -> new OrderItem(e.getColumn(), e.getIsAsc())).collect(Collectors.toList());
page.setOrders(orderItemList);

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.util;
package net.lab1024.smartadmin.service.common.util;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.RandomUtils;

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.util;
package net.lab1024.smartadmin.service.common.util;
import org.apache.commons.lang3.StringUtils;

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.util;
package net.lab1024.smartadmin.service.common.util;
import java.util.regex.Pattern;

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.util.date;
package net.lab1024.smartadmin.service.common.util.date;
import java.time.format.DateTimeFormatter;

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.util;
package net.lab1024.smartadmin.service.common.util.date;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.util.date;
package net.lab1024.smartadmin.service.common.util.date;
import java.time.*;
import java.time.format.TextStyle;

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.util.excel;
package net.lab1024.smartadmin.service.common.util.excel;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.util.excel;
package net.lab1024.smartadmin.service.common.util.excel;
/**
* @author 卓大

View File

@ -1,11 +1,11 @@
package net.lab1024.smartadmin.service.util.excel;
package net.lab1024.smartadmin.service.common.util.excel;
/**
* @author 卓大
* @Date 2020/8/10
*/
import net.lab1024.smartadmin.service.util.SmartFileUtil;
import net.lab1024.smartadmin.service.common.util.SmartFileUtil;
import java.io.File;
import java.io.FileInputStream;

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.util.excel;
package net.lab1024.smartadmin.service.common.util.excel;
import org.apache.poi.ss.usermodel.Cell;

View File

@ -1,7 +1,7 @@
package net.lab1024.smartadmin.service.common.validator.en;
package net.lab1024.smartadmin.service.common.validator.enumeration;
import net.lab1024.smartadmin.service.common.enumconst.BaseEnum;
import net.lab1024.smartadmin.service.common.enumeration.BaseEnum;
import javax.validation.Constraint;
import javax.validation.Payload;

View File

@ -1,7 +1,7 @@
package net.lab1024.smartadmin.service.common.validator.en;
package net.lab1024.smartadmin.service.common.validator.enumeration;
import net.lab1024.smartadmin.service.common.enumconst.BaseEnum;
import net.lab1024.smartadmin.service.common.enumeration.BaseEnum;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

View File

@ -4,8 +4,8 @@ import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import net.lab1024.smartadmin.service.util.date.SmartDateFormatterEnum;
import net.lab1024.smartadmin.service.util.date.SmartLocalDateUtil;
import net.lab1024.smartadmin.service.common.util.date.SmartDateFormatterEnum;
import net.lab1024.smartadmin.service.common.util.date.SmartLocalDateUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean;

View File

@ -1,8 +1,8 @@
package net.lab1024.smartadmin.service.config;
import net.lab1024.smartadmin.service.common.security.SmartSecurityUrlMatchers;
import net.lab1024.smartadmin.service.filter.SmartSecurityTokenFilter;
import net.lab1024.smartadmin.service.common.security.SmartSecurityAuthenticationFailHandler;
import net.lab1024.smartadmin.service.common.security.SecurityUrlMatchers;
import net.lab1024.smartadmin.service.filter.SecurityTokenFilter;
import net.lab1024.smartadmin.service.common.security.SecurityAuthenticationFailHandler;
import net.lab1024.smartadmin.service.module.system.login.EmployeeLoginTokenService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@ -35,7 +35,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
* url
*/
@Autowired
private SmartSecurityUrlMatchers smartSecurityUrlMatchers;
private SecurityUrlMatchers securityUrlMatchers;
/**
* 获取TOKEN 解析类
@ -70,27 +70,27 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
// CSRF禁用因为不使用session
.csrf().disable()
// 认证失败处理类
.exceptionHandling().authenticationEntryPoint(new SmartSecurityAuthenticationFailHandler()).and()
.exceptionHandling().authenticationEntryPoint(new SecurityAuthenticationFailHandler()).and()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()
// 过滤请求
.authorizeRequests();
//可以匿名登录的URL
String [] anonymousUrlArray = smartSecurityUrlMatchers.getAnonymousUrlArray();
String [] anonymousUrlArray = securityUrlMatchers.getAnonymousUrlArray();
interceptUrlRegistry.antMatchers(anonymousUrlArray).permitAll();
//登录的URL
String [] authenticatedUrlArray = smartSecurityUrlMatchers.getAuthenticatedUrlArray();
String [] authenticatedUrlArray = securityUrlMatchers.getAuthenticatedUrlArray();
interceptUrlRegistry.antMatchers(authenticatedUrlArray).authenticated();
httpSecurity.addFilterBefore(new SmartSecurityTokenFilter(loginTokenService), UsernamePasswordAuthenticationFilter.class);
httpSecurity.addFilterBefore(corsFilter(), SmartSecurityTokenFilter.class);
httpSecurity.addFilterBefore(new SecurityTokenFilter(loginTokenService), UsernamePasswordAuthenticationFilter.class);
httpSecurity.addFilterBefore(corsFilter(), SecurityTokenFilter.class);
}
@Override
public void configure(WebSecurity web) {
// 忽略url
WebSecurity.IgnoredRequestConfigurer ignoring = web.ignoring();
List<String> ignoreUrlListList = smartSecurityUrlMatchers.getIgnoreUrl();
List<String> ignoreUrlListList = securityUrlMatchers.getIgnoreUrl();
for (String url : ignoreUrlListList) {
ignoring.antMatchers(url);
}

View File

@ -1,10 +1,8 @@
package net.lab1024.smartadmin.service.config;
import net.lab1024.smartadmin.service.common.security.SmartSecurityMetadataSource;
import net.lab1024.smartadmin.service.common.security.SmartSecurityUrlMatchers;
import net.lab1024.smartadmin.service.common.security.SecurityMetadataSource;
import net.lab1024.smartadmin.service.common.security.SecurityUrlMatchers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.annotation.Order;
import org.springframework.security.access.expression.method.ExpressionBasedAnnotationAttributeFactory;
import org.springframework.security.access.method.MethodSecurityMetadataSource;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
@ -20,11 +18,11 @@ import org.springframework.security.config.annotation.method.configuration.Globa
public class SecurityMethodConfig extends GlobalMethodSecurityConfiguration {
@Autowired
private SmartSecurityUrlMatchers smartSecurityUrlMatchers;
private SecurityUrlMatchers securityUrlMatchers;
@Override
public MethodSecurityMetadataSource customMethodSecurityMetadataSource(){
ExpressionBasedAnnotationAttributeFactory attributeFactory = new ExpressionBasedAnnotationAttributeFactory(this.getExpressionHandler());
return new SmartSecurityMetadataSource(attributeFactory, smartSecurityUrlMatchers);
return new SecurityMetadataSource(attributeFactory, securityUrlMatchers);
}
}

View File

@ -9,7 +9,7 @@ import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import net.lab1024.smartadmin.service.common.constant.RequestHeaderConst;
import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst;
import net.lab1024.smartadmin.service.common.enumconst.SystemEnvironmentEnum;
import net.lab1024.smartadmin.service.common.enumeration.SystemEnvironmentEnum;
import net.lab1024.smartadmin.service.common.swagger.SwaggerApiModelPropertyEnumPlugin;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeansException;

View File

@ -1,8 +1,8 @@
package net.lab1024.smartadmin.service.config;
import net.lab1024.smartadmin.service.common.enumconst.SystemEnvironmentEnum;
import net.lab1024.smartadmin.service.common.domain.SystemEnvironmentBO;
import net.lab1024.smartadmin.service.util.SmartBaseEnumUtil;
import net.lab1024.smartadmin.service.common.enumeration.SystemEnvironmentEnum;
import net.lab1024.smartadmin.service.common.domain.SystemEnvironment;
import net.lab1024.smartadmin.service.common.util.SmartBaseEnumUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
@ -30,12 +30,12 @@ public class SystemEnvironmentConfig implements Condition {
}
@Bean
public SystemEnvironmentBO initEnvironment() {
public SystemEnvironment initEnvironment() {
SystemEnvironmentEnum currentEnvironment = SmartBaseEnumUtil.getEnumByValue(systemEnvironment, SystemEnvironmentEnum.class);
if (currentEnvironment == null) {
throw new ExceptionInInitializerError("无法获取当前环境!请在 application.properties 或者 application.yaml 配置好参数spring.profiles.active");
}
return new SystemEnvironmentBO(currentEnvironment == SystemEnvironmentEnum.PROD, currentEnvironment);
return new SystemEnvironment(currentEnvironment == SystemEnvironmentEnum.PROD, currentEnvironment);
}
}

View File

@ -1,6 +1,6 @@
package net.lab1024.smartadmin.service.filter;
import net.lab1024.smartadmin.service.common.constant.CommonConst;
import net.lab1024.smartadmin.service.common.constant.RequestHeaderConst;
import net.lab1024.smartadmin.service.module.system.login.EmployeeLoginTokenService;
import net.lab1024.smartadmin.service.module.system.login.domain.EmployeeLoginBO;
import org.apache.commons.lang3.StringUtils;
@ -24,13 +24,11 @@ import java.io.IOException;
* @date
*/
public class SmartSecurityTokenFilter extends OncePerRequestFilter {
private static final String TOKEN_NAME = "x-access-token";
public class SecurityTokenFilter extends OncePerRequestFilter {
private EmployeeLoginTokenService loginTokenService;
public SmartSecurityTokenFilter(EmployeeLoginTokenService loginTokenService) {
public SecurityTokenFilter(EmployeeLoginTokenService loginTokenService) {
this.loginTokenService = loginTokenService;
}
@ -38,8 +36,8 @@ public class SmartSecurityTokenFilter extends OncePerRequestFilter {
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
throws ServletException, IOException {
//需要做token校验, 消息头的token优先于请求query参数的token
String xHeaderToken = request.getHeader(TOKEN_NAME);
String xRequestToken = request.getParameter(TOKEN_NAME);
String xHeaderToken = request.getHeader(RequestHeaderConst.TOKEN);
String xRequestToken = request.getParameter(RequestHeaderConst.TOKEN);
String xAccessToken = null != xHeaderToken ? xHeaderToken : xRequestToken;
if (StringUtils.isBlank(xAccessToken)) {
chain.doFilter(request, response);

View File

@ -0,0 +1,129 @@
package net.lab1024.smartadmin.service.handler;
import lombok.extern.slf4j.Slf4j;
import net.lab1024.smartadmin.service.common.code.SystemErrorCode;
import net.lab1024.smartadmin.service.common.code.UserErrorCode;
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
import net.lab1024.smartadmin.service.common.domain.SystemEnvironment;
import net.lab1024.smartadmin.service.common.enumeration.SystemEnvironmentEnum;
import net.lab1024.smartadmin.service.common.exception.BusinessException;
import org.springframework.beans.TypeMismatchException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.validation.BindException;
import org.springframework.validation.FieldError;
import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import java.util.List;
import java.util.stream.Collectors;
/**
* [ 全局异常拦截 ]
*
* @author 罗伊
* @date 2020/8/25 11:57
*/
@Slf4j
@ControllerAdvice
public class GlobalExceptionHandler {
@Autowired
private SystemEnvironment systemEnvironment;
/**
* json 格式错误 缺少请求体
*/
@ResponseBody
@ExceptionHandler({HttpMessageNotReadableException.class})
public ResponseDTO<?> jsonFormatExceptionHandler(Exception e) {
if (!systemEnvironment.isProd()) {
log.error("全局JSON格式错误异常,URL:{}", getCurrentRequestUrl(), e);
}
return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "参数JSON格式错误");
}
/**
* json 格式错误 缺少请求体
*/
@ResponseBody
@ExceptionHandler({TypeMismatchException.class, BindException.class})
public ResponseDTO<?> paramExceptionHandler(Exception e) {
if (!systemEnvironment.isProd()) {
log.error("全局参数异常,URL:{}", getCurrentRequestUrl(), e);
}
if (e instanceof BindException) {
if (e instanceof MethodArgumentNotValidException) {
List<FieldError> fieldErrors = ((MethodArgumentNotValidException) e).getBindingResult().getFieldErrors();
List<String> msgList = fieldErrors.stream().map(FieldError::getDefaultMessage).collect(Collectors.toList());
return ResponseDTO.error(UserErrorCode.PARAM_ERROR, String.join(",", msgList));
}
List<FieldError> fieldErrors = ((BindException) e).getFieldErrors();
List<String> error = fieldErrors.stream().map(field -> field.getField() + ":" + field.getRejectedValue()).collect(Collectors.toList());
String errorMsg = UserErrorCode.PARAM_ERROR.getMsg() + ":" + error.toString();
return ResponseDTO.error(UserErrorCode.PARAM_ERROR, errorMsg);
}
return ResponseDTO.error(UserErrorCode.PARAM_ERROR);
}
/**
* 权限异常
*/
@ResponseBody
@ExceptionHandler({AccessDeniedException.class})
public ResponseDTO<?> permissionExceptionHandler(AccessDeniedException e) {
if (!systemEnvironment.isProd()) {
log.error("全局参数异常,URL:{}", getCurrentRequestUrl(), e);
}
return ResponseDTO.error(UserErrorCode.NO_PERMISSION);
}
/**
* 业务异常
*/
@ResponseBody
@ExceptionHandler(BusinessException.class)
public ResponseDTO<?> businessExceptionHandler(BusinessException e) {
if (!systemEnvironment.isProd()) {
log.error("全局业务异常,URL:{}", getCurrentRequestUrl(), e);
}
return ResponseDTO.error(SystemErrorCode.SYSTEM_ERROR, e.getMessage());
}
/**
* 其他全部异常
*
* @param e
* @return
*/
@ResponseBody
@ExceptionHandler(Throwable.class)
public ResponseDTO<?> errorHandler(Throwable e) {
log.error("捕获全局异常,URL:{}", getCurrentRequestUrl(), e);
return ResponseDTO.error(SystemErrorCode.SYSTEM_ERROR, systemEnvironment.isProd() ? null : e.toString());
}
/**
* 获取当前请求url
*/
private String getCurrentRequestUrl() {
RequestAttributes request = RequestContextHolder.getRequestAttributes();
if (null == request) {
return null;
}
ServletRequestAttributes servletRequest = (ServletRequestAttributes) request;
return servletRequest.getRequest().getRequestURI();
}
}

View File

@ -1,106 +0,0 @@
package net.lab1024.smartadmin.service.handler;
import lombok.extern.slf4j.Slf4j;
import net.lab1024.smartadmin.service.common.code.SystemErrorCode;
import net.lab1024.smartadmin.service.common.code.UserErrorCode;
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
import net.lab1024.smartadmin.service.common.domain.SystemEnvironmentBO;
import net.lab1024.smartadmin.service.common.enumconst.SystemEnvironmentEnum;
import net.lab1024.smartadmin.service.common.exception.SmartBusinessException;
import org.springframework.beans.TypeMismatchException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.validation.BindException;
import org.springframework.validation.FieldError;
import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import java.util.List;
import java.util.stream.Collectors;
/**
* [ 全局异常拦截 ]
*
* @author 罗伊
* @date 2020/8/25 11:57
*/
@Slf4j
@ControllerAdvice
public class SmartGlobalExceptionHandler {
@Autowired
private SystemEnvironmentBO systemEnvironmentBO;
/**
* 添加全局异常处理流程
*
* @param e
* @return
* @throws Exception
*/
@ResponseBody
@ExceptionHandler(Exception.class)
public ResponseDTO exceptionHandler(Exception e) {
// json 格式错误
if (e instanceof HttpMessageNotReadableException) {
return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "请求参数JSON格式错误");
}
String uri = null;
RequestAttributes request = RequestContextHolder.getRequestAttributes();
if (null != request) {
ServletRequestAttributes servletRequest = (ServletRequestAttributes) request;
uri = servletRequest.getRequest().getRequestURI();
}
// http 请求方式错误
if (e instanceof HttpRequestMethodNotSupportedException) {
return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "请求方式错误");
}
// 参数类型错误
if (e instanceof TypeMismatchException) {
return ResponseDTO.error(UserErrorCode.PARAM_ERROR);
}
// 参数校验未通过
if (e instanceof MethodArgumentNotValidException) {
List<FieldError> fieldErrors = ((MethodArgumentNotValidException) e).getBindingResult().getFieldErrors();
List<String> msgList = fieldErrors.stream().map(FieldError::getDefaultMessage).collect(Collectors.toList());
return ResponseDTO.error(UserErrorCode.PARAM_ERROR, String.join(",", msgList));
}
// 参数绑定错误
if (e instanceof BindException) {
List<FieldError> fieldErrors = ((BindException) e).getFieldErrors();
List<String> error = fieldErrors.stream().map(field -> field.getField() + ":" + field.getRejectedValue()).collect(Collectors.toList());
String errorMsg = UserErrorCode.PARAM_ERROR.getMsg() + ":" + error.toString();
return ResponseDTO.error(UserErrorCode.PARAM_ERROR, errorMsg);
}
if (e instanceof SmartBusinessException) {
return ResponseDTO.error(SystemErrorCode.SYSTEM_ERROR, e.getMessage());
}
if (e instanceof AccessDeniedException) {
return ResponseDTO.error(SystemErrorCode.SYSTEM_ERROR, "您暂无权限");
}
log.error("捕获全局异常,URL:{}", uri, e);
// 正式环境 不返回错误信息
if (SystemEnvironmentEnum.PROD == systemEnvironmentBO.getCurrentEnvironment()) {
return ResponseDTO.error(SystemErrorCode.SYSTEM_ERROR);
}
return ResponseDTO.error(SystemErrorCode.SYSTEM_ERROR, e.toString());
}
}

View File

@ -3,7 +3,7 @@ package net.lab1024.smartadmin.service.module.business.category;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst;
import net.lab1024.smartadmin.service.common.controller.AdminBaseController;
import net.lab1024.smartadmin.service.common.controller.SystemBaseController;
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
import net.lab1024.smartadmin.service.module.business.category.domain.*;
import org.springframework.beans.factory.annotation.Autowired;
@ -20,7 +20,7 @@ import java.util.List;
*/
@Api(tags = SwaggerTagConst.Admin.MANAGER_CATEGORY)
@RestController
public class CategoryController extends AdminBaseController {
public class CategoryController extends SystemBaseController {
@Autowired
private CategoryService categoryService;

View File

@ -3,7 +3,7 @@ package net.lab1024.smartadmin.service.module.business.category;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import net.lab1024.smartadmin.service.common.constant.CacheModuleConst;
import net.lab1024.smartadmin.service.common.constant.CommonConst;
import net.lab1024.smartadmin.service.common.constant.StringConst;
import net.lab1024.smartadmin.service.module.business.category.domain.CategoryEntity;
import net.lab1024.smartadmin.service.module.business.category.domain.CategorySimpleDTO;
import net.lab1024.smartadmin.service.module.business.category.domain.CategoryTreeQueryDTO;
@ -11,8 +11,8 @@ import net.lab1024.smartadmin.service.module.business.category.domain.CategoryTr
import net.lab1024.smartadmin.service.module.support.beancache.cache.IBeanCache;
import net.lab1024.smartadmin.service.module.support.beancache.key.CacheKey;
import net.lab1024.smartadmin.service.module.support.beancache.anno.CacheLoad;
import net.lab1024.smartadmin.service.util.SmartBeanUtil;
import net.lab1024.smartadmin.service.util.SmartStringUtil;
import net.lab1024.smartadmin.service.common.util.SmartBeanUtil;
import net.lab1024.smartadmin.service.common.util.SmartStringUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -63,7 +63,7 @@ public class CategoryQueryService {
* 左边 categoryId 右边 type
*/
String businessId = CacheKey.getBusinessIdByCacheKey(cacheKey);
String[] split = businessId.split(CommonConst.UNDERLINE);
String[] split = businessId.split(StringConst.UNDERLINE);
Integer categoryType = split.length > 1 ? Integer.valueOf(split[1]) : null;
return categoryDao.queryByParentId(Lists.newArrayList(Long.valueOf(split[0])), categoryType, false);
}
@ -76,7 +76,7 @@ public class CategoryQueryService {
* @return
*/
private static String getCacheId(Long categoryId, Integer categoryType) {
return categoryId + CommonConst.UNDERLINE + categoryType;
return categoryId + StringConst.UNDERLINE + categoryType;
}
/**
@ -118,7 +118,7 @@ public class CategoryQueryService {
*/
public List<CategoryEntity> queryCategoryByParent(Long categoryId, Integer categoryType) {
if (null == categoryId) {
return CommonConst.EMPTY_LIST;
return StringConst.EMPTY_LIST;
}
String cacheKey = CacheKey.cacheKey(CacheModuleConst.Category.CATEGORY_SUB, getCacheId(categoryId, categoryType));
return cache.get(cacheKey);
@ -132,7 +132,7 @@ public class CategoryQueryService {
*/
public Map<Long, CategoryEntity> queryCategoryList(List<Long> categoryIdList) {
if (CollectionUtils.isEmpty(categoryIdList)) {
return CommonConst.EMPTY_MAP;
return StringConst.EMPTY_MAP;
}
categoryIdList = categoryIdList.stream().distinct().collect(Collectors.toList());
@ -161,7 +161,7 @@ public class CategoryQueryService {
*/
public List<Long> queryCategorySubId(List<Long> categoryIdList) {
if (CollectionUtils.isEmpty(categoryIdList)) {
return CommonConst.EMPTY_LIST;
return StringConst.EMPTY_LIST;
}
// 查询所有子类
Map<Long, List<CategoryEntity>> subTypeMap = this.querySubCategoryFromCache(categoryIdList);
@ -236,7 +236,7 @@ public class CategoryQueryService {
childrenVOList.forEach(item -> {
item.setLabel(item.getCategoryName());
item.setValue(item.getCategoryId());
item.setCategoryFullName(e.getCategoryFullName() + CommonConst.SEPARATOR_SLASH + item.getCategoryName());
item.setCategoryFullName(e.getCategoryFullName() + StringConst.SEPARATOR_SLASH + item.getCategoryName());
});
// 递归查询
this.queryAndSetSubCategory(childrenVOList);
@ -266,7 +266,7 @@ public class CategoryQueryService {
CategorySimpleDTO categoryDTO = new CategorySimpleDTO();
categoryDTO.setCategoryId(categoryId);
categoryDTO.setCategoryName(categoryEntity.getCategoryName());
categoryDTO.setCategoryFullName(SmartStringUtil.join(nameList, CommonConst.SEPARATOR_SLASH));
categoryDTO.setCategoryFullName(SmartStringUtil.join(nameList, StringConst.SEPARATOR_SLASH));
categoryDTO.setParentId(categoryEntity.getParentId());
return categoryDTO;
}
@ -288,7 +288,7 @@ public class CategoryQueryService {
// 父级始终放在第一位
parentCategoryList.add(0, categoryEntity);
Long parentId = categoryEntity.getParentId();
if (Objects.equals(CommonConst.DEFAULT_PARENT_ID, parentId)) {
if (Objects.equals(StringConst.DEFAULT_PARENT_ID, parentId)) {
return parentCategoryList;
}
parentCategoryList.addAll(0, this.queryCategoryAndParent(parentId));

View File

@ -2,10 +2,10 @@ package net.lab1024.smartadmin.service.module.business.category;
import com.google.common.collect.Lists;
import net.lab1024.smartadmin.service.common.code.UserErrorCode;
import net.lab1024.smartadmin.service.common.constant.CommonConst;
import net.lab1024.smartadmin.service.common.constant.StringConst;
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
import net.lab1024.smartadmin.service.module.business.category.domain.*;
import net.lab1024.smartadmin.service.util.SmartBeanUtil;
import net.lab1024.smartadmin.service.common.util.SmartBeanUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -43,9 +43,9 @@ public class CategoryService {
return res;
}
// 没有父类则使用默认父类
Long parentId = null == addDTO.getParentId() ? CommonConst.DEFAULT_PARENT_ID : addDTO.getParentId();
Long parentId = null == addDTO.getParentId() ? StringConst.DEFAULT_PARENT_ID : addDTO.getParentId();
categoryEntity.setParentId(parentId);
categoryEntity.setSort(null == addDTO.getSort() ? CommonConst.ZERO : addDTO.getSort());
categoryEntity.setSort(null == addDTO.getSort() ? StringConst.ZERO : addDTO.getSort());
categoryEntity.setDeletedFlag(false);
// 保存数据
@ -106,7 +106,7 @@ public class CategoryService {
if (Objects.equals(categoryEntity.getCategoryId(), parentId)) {
return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "父级类目怎么和自己相同了");
}
if (!Objects.equals(parentId, CommonConst.DEFAULT_PARENT_ID)) {
if (!Objects.equals(parentId, StringConst.DEFAULT_PARENT_ID)) {
Optional<CategoryEntity> optional = categoryQueryService.queryCategory(parentId);
if (!optional.isPresent()) {
return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST, "父级类目不存在~");
@ -120,7 +120,7 @@ public class CategoryService {
} else {
// 如果没有父类 使用默认父类
parentId = CommonConst.DEFAULT_PARENT_ID;
parentId = StringConst.DEFAULT_PARENT_ID;
}
// 校验同父类下 名称是否重复
@ -169,7 +169,7 @@ public class CategoryService {
if (null == queryDTO.getCategoryType()) {
return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "类目类型不能为空");
}
queryDTO.setParentId(CommonConst.DEFAULT_PARENT_ID);
queryDTO.setParentId(StringConst.DEFAULT_PARENT_ID);
}
List<CategoryTreeVO> treeList = categoryQueryService.queryCategoryTree(queryDTO);
return ResponseDTO.ok(treeList);

View File

@ -3,7 +3,7 @@ package net.lab1024.smartadmin.service.module.business.category.constant;
import lombok.AllArgsConstructor;
import lombok.Getter;
import net.lab1024.smartadmin.service.common.enumconst.BaseEnum;
import net.lab1024.smartadmin.service.common.enumeration.BaseEnum;
/**
* 分类类型 枚举

View File

@ -2,13 +2,13 @@ package net.lab1024.smartadmin.service.module.business.goods;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import net.lab1024.smartadmin.service.common.controller.AdminBaseController;
import net.lab1024.smartadmin.service.common.controller.SystemBaseController;
import net.lab1024.smartadmin.service.common.domain.PageResultDTO;
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst;
import net.lab1024.smartadmin.service.module.business.goods.domain.*;
import net.lab1024.smartadmin.service.module.system.login.domain.EmployeeLoginInfoDTO;
import net.lab1024.smartadmin.service.util.SmartEmployeeTokenUtil;
import net.lab1024.smartadmin.service.common.util.SmartEmployeeTokenUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -24,7 +24,7 @@ import javax.validation.Valid;
*/
@Api(tags = SwaggerTagConst.Admin.MANAGER_GOODS)
@RestController
public class GoodsController extends AdminBaseController {
public class GoodsController extends SystemBaseController {
@Autowired
private GoodsService goodsService;

View File

@ -8,8 +8,8 @@ import net.lab1024.smartadmin.service.module.business.category.CategoryQueryServ
import net.lab1024.smartadmin.service.module.business.category.constant.CategoryTypeEnum;
import net.lab1024.smartadmin.service.module.business.category.domain.CategoryEntity;
import net.lab1024.smartadmin.service.module.business.goods.domain.*;
import net.lab1024.smartadmin.service.util.SmartBeanUtil;
import net.lab1024.smartadmin.service.util.SmartPageUtil;
import net.lab1024.smartadmin.service.common.util.SmartBeanUtil;
import net.lab1024.smartadmin.service.common.util.SmartPageUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

View File

@ -3,7 +3,7 @@ package net.lab1024.smartadmin.service.module.business.goods.constant;
import lombok.AllArgsConstructor;
import lombok.Getter;
import net.lab1024.smartadmin.service.common.enumconst.BaseEnum;
import net.lab1024.smartadmin.service.common.enumeration.BaseEnum;
/**
* 商品类型 枚举

View File

@ -2,7 +2,7 @@ package net.lab1024.smartadmin.service.module.business.goods.domain;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import net.lab1024.smartadmin.service.common.domain.PageBaseDTO;
import net.lab1024.smartadmin.service.common.domain.PageParamDTO;
import net.lab1024.smartadmin.service.common.swagger.ApiModelPropertyEnum;
import net.lab1024.smartadmin.service.module.business.goods.constant.GoodsTypeEnum;
import org.hibernate.validator.constraints.Length;
@ -14,7 +14,7 @@ import org.hibernate.validator.constraints.Length;
* @date 2021/8/5 14:42
*/
@Data
public class GoodsQueryDTO extends PageBaseDTO {
public class GoodsQueryDTO extends PageParamDTO {
@ApiModelPropertyEnum(desc = "商品类型|可选", value = GoodsTypeEnum.class)
private Integer goodsType;

View File

@ -3,14 +3,14 @@ package net.lab1024.smartadmin.service.module.business.notice;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst;
import net.lab1024.smartadmin.service.common.controller.AdminBaseController;
import net.lab1024.smartadmin.service.common.domain.PageBaseDTO;
import net.lab1024.smartadmin.service.common.controller.SystemBaseController;
import net.lab1024.smartadmin.service.common.domain.PageParamDTO;
import net.lab1024.smartadmin.service.common.domain.PageResultDTO;
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
import net.lab1024.smartadmin.service.module.business.notice.domain.dto.*;
import net.lab1024.smartadmin.service.module.business.notice.domain.vo.NoticeDetailVO;
import net.lab1024.smartadmin.service.module.business.notice.domain.vo.NoticeVO;
import net.lab1024.smartadmin.service.util.SmartEmployeeTokenUtil;
import net.lab1024.smartadmin.service.common.util.SmartEmployeeTokenUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -24,7 +24,7 @@ import javax.validation.Valid;
*/
@RestController
@Api(tags = {SwaggerTagConst.Admin.MANAGER_NOTICE})
public class NoticeController extends AdminBaseController {
public class NoticeController extends SystemBaseController {
@Autowired
private NoticeService noticeService;
@ -44,7 +44,7 @@ public class NoticeController extends AdminBaseController {
@ApiOperation(value = "分页查询未读消息", notes = "@author 罗伊")
@PostMapping("/notice/unread/page/query")
public ResponseDTO<PageResultDTO<NoticeVO>> queryUnreadByPage(@RequestBody PageBaseDTO queryDTO) {
public ResponseDTO<PageResultDTO<NoticeVO>> queryUnreadByPage(@RequestBody PageParamDTO queryDTO) {
return noticeService.queryUnreadByPage(queryDTO, SmartEmployeeTokenUtil.getRequestEmployeeId());
}

View File

@ -2,7 +2,7 @@ package net.lab1024.smartadmin.service.module.business.notice;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.lab1024.smartadmin.service.common.code.UserErrorCode;
import net.lab1024.smartadmin.service.common.domain.PageBaseDTO;
import net.lab1024.smartadmin.service.common.domain.PageParamDTO;
import net.lab1024.smartadmin.service.common.domain.PageResultDTO;
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
import net.lab1024.smartadmin.service.module.business.notice.dao.NoticeDao;
@ -12,8 +12,8 @@ import net.lab1024.smartadmin.service.module.business.notice.domain.entity.Notic
import net.lab1024.smartadmin.service.module.business.notice.domain.entity.NoticeReceiveRecordEntity;
import net.lab1024.smartadmin.service.module.business.notice.domain.vo.NoticeDetailVO;
import net.lab1024.smartadmin.service.module.business.notice.domain.vo.NoticeVO;
import net.lab1024.smartadmin.service.util.SmartBeanUtil;
import net.lab1024.smartadmin.service.util.SmartPageUtil;
import net.lab1024.smartadmin.service.common.util.SmartBeanUtil;
import net.lab1024.smartadmin.service.common.util.SmartPageUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -74,7 +74,7 @@ public class NoticeService {
* @param queryDTO
* @return
*/
public ResponseDTO<PageResultDTO<NoticeVO>> queryUnreadByPage(PageBaseDTO queryDTO, Long employeeId) {
public ResponseDTO<PageResultDTO<NoticeVO>> queryUnreadByPage(PageParamDTO queryDTO, Long employeeId) {
Page page = SmartPageUtil.convert2PageQuery(queryDTO);
List<NoticeVO> dtoList = noticeDao.queryUnreadByPage(page, employeeId, true);
PageResultDTO<NoticeVO> pageResultDTO = SmartPageUtil.convert2PageResult(page, dtoList);

View File

@ -2,7 +2,7 @@ package net.lab1024.smartadmin.service.module.business.notice.domain.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import net.lab1024.smartadmin.service.common.domain.PageBaseDTO;
import net.lab1024.smartadmin.service.common.domain.PageParamDTO;
/**
* [ ]
@ -10,7 +10,7 @@ import net.lab1024.smartadmin.service.common.domain.PageBaseDTO;
* @author 罗伊
*/
@Data
public class NoticeQueryDTO extends PageBaseDTO {
public class NoticeQueryDTO extends PageParamDTO {
@ApiModelProperty("开始日期")

View File

@ -10,10 +10,10 @@ import net.lab1024.smartadmin.service.module.support.beanrecord.annotation.Field
import net.lab1024.smartadmin.service.module.support.beanrecord.annotation.FieldEnumValue;
import net.lab1024.smartadmin.service.module.support.beanrecord.annotation.FieldSqlValue;
import net.lab1024.smartadmin.service.third.SmartApplicationContext;
import net.lab1024.smartadmin.service.util.SmartBaseEnumUtil;
import net.lab1024.smartadmin.service.util.SmartBigDecimalUtil;
import net.lab1024.smartadmin.service.util.date.SmartDateFormatterEnum;
import net.lab1024.smartadmin.service.util.date.SmartLocalDateUtil;
import net.lab1024.smartadmin.service.common.util.SmartBaseEnumUtil;
import net.lab1024.smartadmin.service.common.util.SmartBigDecimalUtil;
import net.lab1024.smartadmin.service.common.util.date.SmartDateFormatterEnum;
import net.lab1024.smartadmin.service.common.util.date.SmartLocalDateUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;

View File

@ -1,6 +1,6 @@
package net.lab1024.smartadmin.service.module.support.beanrecord.annotation;
import net.lab1024.smartadmin.service.common.enumconst.BaseEnum;
import net.lab1024.smartadmin.service.common.enumeration.BaseEnum;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;

View File

@ -3,7 +3,7 @@ package net.lab1024.smartadmin.service.module.support.captcha;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import net.lab1024.smartadmin.service.common.anno.NoNeedLogin;
import net.lab1024.smartadmin.service.common.annoation.NoNeedLogin;
import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst;
import net.lab1024.smartadmin.service.common.controller.SupportBaseController;
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;

View File

@ -4,7 +4,7 @@ import com.google.code.kaptcha.impl.DefaultKaptcha;
import lombok.extern.slf4j.Slf4j;
import net.lab1024.smartadmin.service.common.code.SystemErrorCode;
import net.lab1024.smartadmin.service.common.code.UserErrorCode;
import net.lab1024.smartadmin.service.common.constant.CommonConst;
import net.lab1024.smartadmin.service.common.constant.StringConst;
import net.lab1024.smartadmin.service.common.constant.RedisKeyConst;
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
import net.lab1024.smartadmin.service.module.support.captcha.domain.CaptchaVO;
@ -54,7 +54,7 @@ public class CaptchaService {
return ResponseDTO.error(SystemErrorCode.SYSTEM_ERROR, "generate captcha error" );
}
// uuid 唯一标识
String uuid = UUID.randomUUID().toString().replace("-", CommonConst.EMPTY_STR);
String uuid = UUID.randomUUID().toString().replace("-", StringConst.EMPTY_STR);
/**
* 返回验证码对象
@ -82,10 +82,10 @@ public class CaptchaService {
String redisKey = buildCaptchaRedisKey(captchaId);
String redisCode = redisService.get(redisKey);
if (StringUtils.isBlank(redisCode)) {
return ResponseDTO.error(UserErrorCode.VERIFICATION_CODE_INVALID, "验证码错误或已过期,请刷新重试" );
return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "验证码错误或已过期,请刷新重试" );
}
if (!Objects.equals(redisCode, captcha)) {
return ResponseDTO.error(UserErrorCode.VERIFICATION_CODE_INVALID, "验证码错误或已过期,请刷新重试" );
return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "验证码错误或已过期,请刷新重试" );
}
// 校验通过 移除
redisService.del(redisKey);
@ -93,6 +93,6 @@ public class CaptchaService {
}
private String buildCaptchaRedisKey(String codeId) {
return RedisKeyConst.Base.CAPTCHA + codeId;
return RedisKeyConst.Support.CAPTCHA + codeId;
}
}

View File

@ -12,7 +12,7 @@ import javax.validation.constraints.NotBlank;
* @date 2021/8/31 20:52
*/
@Data
public class CaptchaDTO {
public class CaptchaForm {
@ApiModelProperty
@NotBlank(message = "验证码标识不能为空" )

View File

@ -3,7 +3,7 @@ package net.lab1024.smartadmin.service.module.support.datatracer;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst;
import net.lab1024.smartadmin.service.common.controller.AdminBaseController;
import net.lab1024.smartadmin.service.common.controller.SystemBaseController;
import net.lab1024.smartadmin.service.common.domain.PageResultDTO;
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
import net.lab1024.smartadmin.service.module.support.datatracer.domain.DataTracerQueryForm;
@ -24,7 +24,7 @@ import javax.validation.Valid;
@Api(tags = {SwaggerTagConst.Admin.MANAGER_DATA_TRACER})
@RestController
public class DataTracerController extends AdminBaseController {
public class DataTracerController extends SystemBaseController {
@Autowired
private DataTracerService dataTracerService;

View File

@ -11,7 +11,7 @@ import net.lab1024.smartadmin.service.module.support.datatracer.domain.DataTrace
import net.lab1024.smartadmin.service.module.support.datatracer.domain.DataTracerEntity;
import net.lab1024.smartadmin.service.module.support.datatracer.domain.DataTracerQueryForm;
import net.lab1024.smartadmin.service.module.support.datatracer.domain.DataTracerVO;
import net.lab1024.smartadmin.service.util.SmartPageUtil;
import net.lab1024.smartadmin.service.common.util.SmartPageUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

View File

@ -3,7 +3,7 @@ package net.lab1024.smartadmin.service.module.support.datatracer.constant;
import lombok.AllArgsConstructor;
import lombok.Getter;
import net.lab1024.smartadmin.service.common.enumconst.BaseEnum;
import net.lab1024.smartadmin.service.common.enumeration.BaseEnum;
/**
* [ 数据业务类型 ]

View File

@ -3,7 +3,7 @@ package net.lab1024.smartadmin.service.module.support.datatracer.constant;
import lombok.AllArgsConstructor;
import lombok.Getter;
import net.lab1024.smartadmin.service.common.enumconst.BaseEnum;
import net.lab1024.smartadmin.service.common.enumeration.BaseEnum;
/**
* [ ]

View File

@ -1,7 +1,7 @@
package net.lab1024.smartadmin.service.module.support.datatracer.domain;
import lombok.Data;
import net.lab1024.smartadmin.service.common.enumconst.BaseEnum;
import net.lab1024.smartadmin.service.common.enumeration.BaseEnum;
import net.lab1024.smartadmin.service.module.support.datatracer.constant.DataTracerBusinessTypeEnum;
import java.time.LocalDateTime;

View File

@ -2,7 +2,7 @@ package net.lab1024.smartadmin.service.module.support.datatracer.domain;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import net.lab1024.smartadmin.service.common.domain.PageBaseDTO;
import net.lab1024.smartadmin.service.common.domain.PageParamDTO;
import net.lab1024.smartadmin.service.common.swagger.ApiModelPropertyEnum;
import net.lab1024.smartadmin.service.module.support.datatracer.constant.DataTracerBusinessTypeEnum;
@ -15,7 +15,7 @@ import javax.validation.constraints.NotNull;
* @date 2021/8/17 8:47
*/
@Data
public class DataTracerQueryForm extends PageBaseDTO {
public class DataTracerQueryForm extends PageParamDTO {
@ApiModelPropertyEnum(DataTracerBusinessTypeEnum.class)
private Integer businessType;

View File

@ -2,7 +2,7 @@ package net.lab1024.smartadmin.service.module.support.file.domain;
import lombok.AllArgsConstructor;
import lombok.Getter;
import net.lab1024.smartadmin.service.common.enumconst.BaseEnum;
import net.lab1024.smartadmin.service.common.enumeration.BaseEnum;
/**
* 文件服务 文件夹位置类型枚举类

View File

@ -1,6 +1,6 @@
package net.lab1024.smartadmin.service.module.support.file.domain.dto;
import net.lab1024.smartadmin.service.common.domain.PageBaseDTO;
import net.lab1024.smartadmin.service.common.domain.PageParamDTO;
import net.lab1024.smartadmin.service.common.swagger.ApiModelPropertyEnum;
import net.lab1024.smartadmin.service.module.support.file.domain.FileFolderTypeEnum;
import io.swagger.annotations.ApiModelProperty;
@ -13,7 +13,7 @@ import lombok.Data;
* @Version: 1.0
*/
@Data
public class FileQueryDTO extends PageBaseDTO {
public class FileQueryDTO extends PageParamDTO {
@ApiModelProperty(value = "文件名称")
private String fileName;

View File

@ -5,8 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import net.lab1024.smartadmin.service.common.code.SystemErrorCode;
import net.lab1024.smartadmin.service.common.code.UserErrorCode;
import net.lab1024.smartadmin.service.common.constant.CommonConst;
import net.lab1024.smartadmin.service.common.constant.NumberLimitConst;
import net.lab1024.smartadmin.service.common.constant.StringConst;
import net.lab1024.smartadmin.service.common.constant.RedisKeyConst;
import net.lab1024.smartadmin.service.common.domain.PageResultDTO;
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
@ -17,9 +16,9 @@ import net.lab1024.smartadmin.service.module.support.file.domain.dto.*;
import net.lab1024.smartadmin.service.module.support.file.domain.vo.FileUploadVO;
import net.lab1024.smartadmin.service.module.support.file.domain.vo.FileVO;
import net.lab1024.smartadmin.service.third.SmartRedisService;
import net.lab1024.smartadmin.service.util.SmartBaseEnumUtil;
import net.lab1024.smartadmin.service.util.SmartBeanUtil;
import net.lab1024.smartadmin.service.util.SmartPageUtil;
import net.lab1024.smartadmin.service.common.util.SmartBaseEnumUtil;
import net.lab1024.smartadmin.service.common.util.SmartBeanUtil;
import net.lab1024.smartadmin.service.common.util.SmartPageUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -48,6 +47,11 @@ import java.util.stream.Collectors;
@Service
public class FileService {
/**
* 文件名最大长度
*/
private static final int FILE_NAME_MAX_LENGTH = 100;
@Resource
private IFileStorageService fileStorageService;
@ -99,7 +103,7 @@ public class FileService {
}
// 校验文件名称
String originalFilename = file.getOriginalFilename();
if (StringUtils.isBlank(originalFilename) || originalFilename.length() > NumberLimitConst.FILE_NAME) {
if (StringUtils.isBlank(originalFilename) || originalFilename.length() > FILE_NAME_MAX_LENGTH) {
return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "上传文件名称不能为空");
}
// 校验文件大小
@ -126,10 +130,10 @@ public class FileService {
fileDao.insert(fileEntity);
uploadVO.setFileId(fileEntity.getId());
//添加缓存
String redisKey = RedisKeyConst.Base.FILE_URL + uploadVO.getFileKey();
String redisKey = RedisKeyConst.Support.FILE_URL + uploadVO.getFileKey();
redisService.set(redisKey, uploadVO.getFileUrl(), fileStorageService.cacheExpireSecond());
String fileRedisKey = RedisKeyConst.Base.FILE_VO + uploadVO.getFileKey();
String fileRedisKey = RedisKeyConst.Support.FILE_VO + uploadVO.getFileKey();
FileVO fileVO = SmartBeanUtil.copy(fileEntity, FileVO.class);
redisService.set(fileRedisKey, fileVO, fileStorageService.cacheExpireSecond());
}
@ -152,7 +156,7 @@ public class FileService {
}
private FileVO getCacheFileVO(String fileKey) {
String redisKey = RedisKeyConst.Base.FILE_VO + fileKey;
String redisKey = RedisKeyConst.Support.FILE_VO + fileKey;
FileVO fileVO = redisService.getObject(redisKey, FileVO.class);
if (fileVO == null) {
fileVO = fileDao.getByFileKey(fileKey);
@ -177,15 +181,15 @@ public class FileService {
return ResponseDTO.error(UserErrorCode.PARAM_ERROR);
}
// 处理逗号分隔的字符串
List<String> stringList = Arrays.asList(fileKey.split(CommonConst.SEPARATOR));
List<String> stringList = Arrays.asList(fileKey.split(StringConst.SEPARATOR));
stringList = stringList.stream().map(e -> this.getCacheUrl(e)).collect(Collectors.toList());
String result = StringUtils.join(stringList, CommonConst.SEPARATOR_CHAR);
String result = StringUtils.join(stringList, StringConst.SEPARATOR_CHAR);
return ResponseDTO.ok(result);
}
private String getCacheUrl(String fileKey) {
String redisKey = RedisKeyConst.Base.FILE_URL + fileKey;
String redisKey = RedisKeyConst.Support.FILE_URL + fileKey;
String fileUrl = redisService.get(redisKey);
if (null != fileUrl) {
return fileUrl;
@ -212,9 +216,9 @@ public class FileService {
List<String> fileKeyList = queryDTO.getFileKeyList();
List<FileUrlResultDTO> resultDTOList = fileKeyList.stream().map(fileKey -> {
// 处理逗号分隔的字符串
List<String> stringList = Arrays.asList(fileKey.split(CommonConst.SEPARATOR));
List<String> stringList = Arrays.asList(fileKey.split(StringConst.SEPARATOR));
stringList = stringList.stream().map(e -> fileStorageService.getFileUrl(e).getData()).collect(Collectors.toList());
String result = StringUtils.join(stringList, CommonConst.SEPARATOR_CHAR);
String result = StringUtils.join(stringList, StringConst.SEPARATOR_CHAR);
return new FileUrlResultDTO(fileKey, result);
}).collect(Collectors.toList());

View File

@ -3,8 +3,8 @@ package net.lab1024.smartadmin.service.module.support.file.service;
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
import net.lab1024.smartadmin.service.module.support.file.domain.dto.FileDownloadDTO;
import net.lab1024.smartadmin.service.module.support.file.domain.vo.FileUploadVO;
import net.lab1024.smartadmin.service.util.date.SmartDateFormatterEnum;
import net.lab1024.smartadmin.service.util.date.SmartLocalDateUtil;
import net.lab1024.smartadmin.service.common.util.date.SmartDateFormatterEnum;
import net.lab1024.smartadmin.service.common.util.date.SmartLocalDateUtil;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.multipart.MultipartFile;

View File

@ -3,7 +3,7 @@ package net.lab1024.smartadmin.service.module.support.heartbeat;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst;
import net.lab1024.smartadmin.service.common.domain.PageBaseDTO;
import net.lab1024.smartadmin.service.common.domain.PageParamDTO;
import net.lab1024.smartadmin.service.common.domain.PageResultDTO;
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
import net.lab1024.smartadmin.service.common.controller.SupportBaseController;
@ -24,8 +24,8 @@ public class HeartBeatController extends SupportBaseController {
@PostMapping("/heartBeat/query")
@ApiOperation("查询心跳记录 @author 卓大")
public ResponseDTO<PageResultDTO<HeartBeatRecordVO>> query(@RequestBody @Valid PageBaseDTO pageBaseDTO) {
return heartBeatService.pageQuery(pageBaseDTO);
public ResponseDTO<PageResultDTO<HeartBeatRecordVO>> query(@RequestBody @Valid PageParamDTO pageParamDTO) {
return heartBeatService.pageQuery(pageParamDTO);
}
}

View File

@ -3,7 +3,7 @@ package net.lab1024.smartadmin.service.module.support.heartbeat;
import lombok.extern.slf4j.Slf4j;
import net.lab1024.smartadmin.service.module.support.heartbeat.core.HeartBeatRecord;
import net.lab1024.smartadmin.service.module.support.heartbeat.core.IHeartBeatRecordHandler;
import net.lab1024.smartadmin.service.util.SmartBeanUtil;
import net.lab1024.smartadmin.service.common.util.SmartBeanUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

View File

@ -2,10 +2,10 @@ package net.lab1024.smartadmin.service.module.support.heartbeat;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import net.lab1024.smartadmin.service.common.domain.PageBaseDTO;
import net.lab1024.smartadmin.service.common.domain.PageParamDTO;
import net.lab1024.smartadmin.service.common.domain.PageResultDTO;
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
import net.lab1024.smartadmin.service.util.SmartPageUtil;
import net.lab1024.smartadmin.service.common.util.SmartPageUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -24,8 +24,8 @@ public class HeartBeatService {
private HeartBeatRecordDao heartBeatRecordDao;
public ResponseDTO<PageResultDTO<HeartBeatRecordVO>> pageQuery(PageBaseDTO pageBaseDTO) {
Page pageQueryInfo = SmartPageUtil.convert2PageQuery(pageBaseDTO);
public ResponseDTO<PageResultDTO<HeartBeatRecordVO>> pageQuery(PageParamDTO pageParamDTO) {
Page pageQueryInfo = SmartPageUtil.convert2PageQuery(pageParamDTO);
List<HeartBeatRecordVO> recordVOList = heartBeatRecordDao.pageQuery(pageQueryInfo);
PageResultDTO<HeartBeatRecordVO> pageResultDTO = SmartPageUtil.convert2PageResult(pageQueryInfo, recordVOList);
return ResponseDTO.ok(pageResultDTO);

View File

@ -1,6 +1,6 @@
package net.lab1024.smartadmin.service.module.support.heartbeat.core;
import net.lab1024.smartadmin.service.util.SmartIPUtil;
import net.lab1024.smartadmin.service.common.util.SmartIPUtil;
import org.apache.commons.lang3.StringUtils;
import java.lang.management.ManagementFactory;

View File

@ -7,7 +7,8 @@ import net.lab1024.smartadmin.service.common.controller.SupportBaseController;
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst;
import net.lab1024.smartadmin.service.module.support.idgenerator.constant.IdGeneratorEnum;
import net.lab1024.smartadmin.service.util.SmartBaseEnumUtil;
import net.lab1024.smartadmin.service.common.util.SmartBaseEnumUtil;
import net.lab1024.smartadmin.service.module.support.idgenerator.service.IdGeneratorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@ -33,7 +34,7 @@ public class IdGeneratorController extends SupportBaseController {
if (null == idGeneratorEnum) {
return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "IdGenerator不存在" + generatorId);
}
return idGeneratorService.generate(idGeneratorEnum);
return ResponseDTO.ok(idGeneratorService.generate(idGeneratorEnum));
}
}

View File

@ -2,7 +2,7 @@ package net.lab1024.smartadmin.service.module.support.idgenerator.constant;
import lombok.AllArgsConstructor;
import lombok.Getter;
import net.lab1024.smartadmin.service.common.enumconst.BaseEnum;
import net.lab1024.smartadmin.service.common.enumeration.BaseEnum;
/**
* id生成枚举类

View File

@ -2,7 +2,7 @@ package net.lab1024.smartadmin.service.module.support.idgenerator.constant;
import lombok.AllArgsConstructor;
import lombok.Getter;
import net.lab1024.smartadmin.service.common.enumconst.BaseEnum;
import net.lab1024.smartadmin.service.common.enumeration.BaseEnum;
/**
* [ ]

View File

@ -1,16 +1,18 @@
package net.lab1024.smartadmin.service.module.support.idgenerator;
package net.lab1024.smartadmin.service.module.support.idgenerator.service;
import lombok.extern.slf4j.Slf4j;
import net.lab1024.smartadmin.service.common.code.UnexpectedErrorCode;
import net.lab1024.smartadmin.service.common.code.UserErrorCode;
import net.lab1024.smartadmin.service.common.constant.RedisKeyConst;
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
import net.lab1024.smartadmin.service.common.exception.BusinessException;
import net.lab1024.smartadmin.service.common.util.SmartRandomUtil;
import net.lab1024.smartadmin.service.module.support.idgenerator.IdGeneratorDao;
import net.lab1024.smartadmin.service.module.support.idgenerator.constant.IdGeneratorEnum;
import net.lab1024.smartadmin.service.module.support.idgenerator.constant.IdGeneratorRuleTypeEnum;
import net.lab1024.smartadmin.service.module.support.idgenerator.domain.IdGeneratorEntity;
import net.lab1024.smartadmin.service.module.support.idgenerator.domain.IdGeneratorRecordDTO;
import net.lab1024.smartadmin.service.third.SmartRedisService;
import net.lab1024.smartadmin.service.util.SmartRandomUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -55,44 +57,41 @@ public class IdGeneratorService {
/**
* id 生成器
*
* @param idGeneratorEnum
* @param idGeneratorEnum 类型
* @return
*/
public ResponseDTO<String> generate(IdGeneratorEnum idGeneratorEnum) {
public String generate(IdGeneratorEnum idGeneratorEnum) {
int generatorId = idGeneratorEnum.getValue();
IdGeneratorEntity idGeneratorEntity = this.idGeneratorMap.get(generatorId);
if (null == idGeneratorEntity) {
return ResponseDTO.error(UserErrorCode.PARAM_ERROR, "IdGenerator 生成器 不存在" + generatorId);
throw new BusinessException("IdGenerator 生成器 不存在 " + idGeneratorEnum.getDesc());
}
LocalDateTime now = LocalDateTime.now();
int year = now.getYear();
int monthValue = now.getMonthValue();
int dayOfMonth = now.getDayOfMonth();
String lockKey = RedisKeyConst.Base.ID_GENERATOR + idGeneratorEnum.getDesc();
// 获取全局唯一锁
String lockKey = RedisKeyConst.Support.ID_GENERATOR + idGeneratorEnum.getDesc();
boolean lock = false;
for (int i = 0; i < MAX_GET_LOCK_COUNT; i++) {
try {
//60秒
lock = redisService.getLock(lockKey, 60 * 1000L);
if (lock) {
break;
}
Thread.sleep(Math.max(SLEEP_MILLISECONDS, lastSleepMilliSeconds));
} catch (Throwable e) {
log.error(e.getMessage(), e);
}
}
if (!lock) {
throw new BusinessException("IdGenerator 生成器繁忙,无法处理: " + idGeneratorEnum.getDesc());
}
try {
boolean lock = false;
for (int i = 0; i < MAX_GET_LOCK_COUNT; i++) {
try {
//60秒
lock = redisService.getLock(lockKey, 60 * 1000L);
if (lock) {
break;
}
Thread.sleep(Math.max(SLEEP_MILLISECONDS, lastSleepMilliSeconds));
} catch (Throwable e) {
log.error(e.getMessage(), e);
}
}
if (!lock) {
return ResponseDTO.error(UnexpectedErrorCode.BUSINESS_HANDING);
}
long beginTime = System.currentTimeMillis();
LocalDateTime now = LocalDateTime.now();
int year = now.getYear();
int monthValue = now.getMonthValue();
int dayOfMonth = now.getDayOfMonth();
IdGeneratorRecordDTO generatorRecordDTO = idGeneratorDao.selectHistoryLastNumber(generatorId, year, monthValue, dayOfMonth);
if (generatorRecordDTO == null) {
@ -128,7 +127,7 @@ public class IdGeneratorService {
String prefix = StringUtils.isBlank(idGeneratorEntity.getPrefix()) ? StringUtils.EMPTY : idGeneratorEntity.getPrefix();
lastSleepMilliSeconds = System.currentTimeMillis() - beginTime + 100;
return ResponseDTO.ok(prefix + nowFormat + finalId);
return prefix + nowFormat + finalId;
} catch (Throwable e) {
log.error(e.getMessage(), e);
throw e;

View File

@ -2,14 +2,16 @@ package net.lab1024.smartadmin.service.module.support.operatelog;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst;
import net.lab1024.smartadmin.service.common.controller.SupportBaseController;
import net.lab1024.smartadmin.service.common.domain.PageResultDTO;
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst;
import net.lab1024.smartadmin.service.module.support.operatelog.domain.dto.OperateLogDTO;
import net.lab1024.smartadmin.service.module.support.operatelog.domain.dto.OperateLogQueryDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
/**
* [ ]
@ -29,16 +31,4 @@ public class OperateLogController extends SupportBaseController {
return operateLogService.queryByPage(queryDTO);
}
@ApiOperation(value = "删除 @author 罗伊")
@GetMapping("/userOperateLog/delete/{id}")
public ResponseDTO<String> delete(@PathVariable("id") Long id) {
return operateLogService.delete(id);
}
@ApiOperation(value = "详情 @author 罗伊")
@GetMapping("/userOperateLog/detail/{id}")
public ResponseDTO<OperateLogDTO> detail(@PathVariable("id") Long id) {
return operateLogService.detail(id);
}
}

View File

@ -6,8 +6,8 @@ import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
import net.lab1024.smartadmin.service.module.support.operatelog.domain.OperateLogEntity;
import net.lab1024.smartadmin.service.module.support.operatelog.domain.dto.OperateLogDTO;
import net.lab1024.smartadmin.service.module.support.operatelog.domain.dto.OperateLogQueryDTO;
import net.lab1024.smartadmin.service.util.SmartBeanUtil;
import net.lab1024.smartadmin.service.util.SmartPageUtil;
import net.lab1024.smartadmin.service.common.util.SmartBeanUtil;
import net.lab1024.smartadmin.service.common.util.SmartPageUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -53,7 +53,6 @@ public class OperateLogService {
* @description 编辑
* @date 2019-05-15 11:32:14
*/
@Transactional(rollbackFor = Exception.class)
public ResponseDTO<String> update(OperateLogDTO updateDTO) {
OperateLogEntity entity = SmartBeanUtil.copy(updateDTO, OperateLogEntity.class);
operateLogDao.updateById(entity);
@ -65,7 +64,6 @@ public class OperateLogService {
* @description 删除
* @date 2019-05-15 11:32:14
*/
@Transactional(rollbackFor = Exception.class)
public ResponseDTO<String> delete(Long id) {
operateLogDao.deleteById(id);
return ResponseDTO.ok();

View File

@ -1,4 +1,4 @@
package net.lab1024.smartadmin.service.module.support.operatelog;
package net.lab1024.smartadmin.service.module.support.operatelog.annoation;
import java.lang.annotation.*;

View File

@ -1,12 +1,13 @@
package net.lab1024.smartadmin.service.module.support.operatelog;
package net.lab1024.smartadmin.service.module.support.operatelog.annoation;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.lab1024.smartadmin.service.module.support.operatelog.domain.dto.SmartOperateLogConfigDTO;
import net.lab1024.smartadmin.service.module.support.operatelog.domain.dto.SmartOperateLogUserDTO;
import net.lab1024.smartadmin.service.module.support.operatelog.OperateLogDao;
import net.lab1024.smartadmin.service.module.support.operatelog.domain.dto.OperateLogConfigDTO;
import net.lab1024.smartadmin.service.module.support.operatelog.domain.dto.OperateLogUserDTO;
import net.lab1024.smartadmin.service.module.support.operatelog.domain.OperateLogEntity;
import net.lab1024.smartadmin.service.third.SmartApplicationContext;
import net.lab1024.smartadmin.service.util.SmartStringUtil;
import net.lab1024.smartadmin.service.common.util.SmartStringUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@ -35,11 +36,11 @@ import java.util.concurrent.ThreadPoolExecutor;
*/
@Slf4j
@Aspect
public class SmartOperateLogAspect {
public class OperateLogAspect {
private static final String pointCut = "@within(org.springframework.web.bind.annotation.RestController) || @within(org.springframework.stereotype.Controller)";
private SmartOperateLogConfigDTO smartLogConfig;
private OperateLogConfigDTO smartLogConfig;
/**
* 线程池
@ -49,8 +50,8 @@ public class SmartOperateLogAspect {
/**
* 构造方法
*/
public SmartOperateLogAspect(SmartOperateLogConfigDTO smartOperateLogConfigDTO) {
smartLogConfig = smartOperateLogConfigDTO;
public OperateLogAspect(OperateLogConfigDTO operateLogConfigDTO) {
smartLogConfig = operateLogConfigDTO;
this.initThread(smartLogConfig);
}
@ -71,7 +72,7 @@ public class SmartOperateLogAspect {
/**
* 初始化线程池
*/
private void initThread(SmartOperateLogConfigDTO configDTO) {
private void initThread(OperateLogConfigDTO configDTO) {
int corePoolSize = Runtime.getRuntime().availableProcessors();
if (null != configDTO.getCorePoolSize()) {
corePoolSize = configDTO.getCorePoolSize();
@ -175,7 +176,7 @@ public class SmartOperateLogAspect {
return;
}
//设置用户信息
SmartOperateLogUserDTO user = smartLogConfig.getUserFunction().apply(request);
OperateLogUserDTO user = smartLogConfig.getUserFunction().apply(request);
if (user == null) {
return;
}

View File

@ -16,12 +16,12 @@ import java.util.function.Supplier;
*/
@Data
@Builder
public class SmartOperateLogConfigDTO {
public class OperateLogConfigDTO {
/**
* 用户信息
*/
private Function<HttpServletRequest, SmartOperateLogUserDTO> userFunction;
private Function<HttpServletRequest, OperateLogUserDTO> userFunction;
/**
* 是否启用
*/

View File

@ -1,6 +1,6 @@
package net.lab1024.smartadmin.service.module.support.operatelog.domain.dto;
import net.lab1024.smartadmin.service.common.domain.PageBaseDTO;
import net.lab1024.smartadmin.service.common.domain.PageParamDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -10,7 +10,7 @@ import lombok.Data;
* @author 罗伊
*/
@Data
public class OperateLogQueryDTO extends PageBaseDTO {
public class OperateLogQueryDTO extends PageParamDTO {
@ApiModelProperty("开始日期")

Some files were not shown because too many files have changed in this diff Show More