diff --git a/eladmin-common/src/main/java/me/zhengjie/annotation/Query.java b/eladmin-common/src/main/java/me/zhengjie/annotation/Query.java index ac38cd62..dc394b82 100644 --- a/eladmin-common/src/main/java/me/zhengjie/annotation/Query.java +++ b/eladmin-common/src/main/java/me/zhengjie/annotation/Query.java @@ -30,6 +30,12 @@ public @interface Query { */ Join join() default Join.LEFT; + /** + * 多字段模糊搜索,仅支持String类型字段,多个用逗号隔开, 如@Query(blurry = "email,username") + * @return + */ + String blurry() default ""; + enum Type { /** jie 2019/6/4 相等 */ EQUAL diff --git a/eladmin-common/src/main/java/me/zhengjie/utils/ElAdminConstant.java b/eladmin-common/src/main/java/me/zhengjie/utils/ElAdminConstant.java index 21357221..89bfeaae 100644 --- a/eladmin-common/src/main/java/me/zhengjie/utils/ElAdminConstant.java +++ b/eladmin-common/src/main/java/me/zhengjie/utils/ElAdminConstant.java @@ -11,6 +11,11 @@ public class ElAdminConstant { public static final String RESET_MAIL = "重置邮箱"; + /** + * 用于IP定位转换 + */ + public static final String REGION = "内网IP|内网IP"; + /** * 常用接口 */ diff --git a/eladmin-common/src/main/java/me/zhengjie/utils/FileUtil.java b/eladmin-common/src/main/java/me/zhengjie/utils/FileUtil.java index 5d217e11..5549b814 100644 --- a/eladmin-common/src/main/java/me/zhengjie/utils/FileUtil.java +++ b/eladmin-common/src/main/java/me/zhengjie/utils/FileUtil.java @@ -2,8 +2,8 @@ package me.zhengjie.utils; import cn.hutool.core.util.IdUtil; import org.springframework.web.multipart.MultipartFile; -import java.io.File; -import java.io.IOException; + +import java.io.*; import java.text.DecimalFormat; /** @@ -116,4 +116,27 @@ public class FileUtil extends cn.hutool.core.io.FileUtil { } return resultSize; } + + /** + * inputStream 转 File + * @param ins + * @param name + * @return + * @throws Exception + */ + public static File inputStreamToFile(InputStream ins, String name) throws Exception{ + File file = new File(System.getProperty("java.io.tmpdir") + name); + if (file.exists()) { + return file; + } + OutputStream os = new FileOutputStream(file); + int bytesRead = 0; + byte[] buffer = new byte[8192]; + while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) { + os.write(buffer, 0, bytesRead); + } + os.close(); + ins.close(); + return file; + } } diff --git a/eladmin-common/src/main/java/me/zhengjie/utils/QueryHelp.java b/eladmin-common/src/main/java/me/zhengjie/utils/QueryHelp.java index c0c945ea..c1ad8ab8 100644 --- a/eladmin-common/src/main/java/me/zhengjie/utils/QueryHelp.java +++ b/eladmin-common/src/main/java/me/zhengjie/utils/QueryHelp.java @@ -37,6 +37,7 @@ public class QueryHelp { if (q != null) { String propName = q.propName(); String joinName = q.joinName(); + String blurry = q.blurry(); String attributeName = isBlank(propName) ? field.getName() : propName; Class fieldType = field.getType(); Object val = field.get(query); @@ -44,6 +45,18 @@ public class QueryHelp { continue; } Join join = null; + // 模糊多字段 + if (ObjectUtil.isNotEmpty(blurry)) { + String[] blurrys = blurry.split(","); + List orPredicate = new ArrayList<>(); + for (String s : blurrys) { + orPredicate.add(cb.like(root.get(s) + .as(String.class), "%" + val.toString() + "%")); + } + Predicate[] p = new Predicate[orPredicate.size()]; + list.add(cb.or(orPredicate.toArray(p))); + continue; + } if (ObjectUtil.isNotEmpty(joinName)) { switch (q.join()) { case LEFT: diff --git a/eladmin-common/src/main/java/me/zhengjie/utils/StringUtils.java b/eladmin-common/src/main/java/me/zhengjie/utils/StringUtils.java index b77cef92..fd2647d0 100644 --- a/eladmin-common/src/main/java/me/zhengjie/utils/StringUtils.java +++ b/eladmin-common/src/main/java/me/zhengjie/utils/StringUtils.java @@ -1,7 +1,14 @@ package me.zhengjie.utils; +import cn.hutool.core.io.resource.ClassPathResource; +import org.lionsoul.ip2region.DataBlock; +import org.lionsoul.ip2region.DbConfig; +import org.lionsoul.ip2region.DbSearcher; + import javax.servlet.http.HttpServletRequest; +import java.io.File; import java.io.UnsupportedEncodingException; +import java.lang.reflect.Method; import java.util.Calendar; import java.util.Date; @@ -132,7 +139,49 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils { if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } - return "0:0:0:0:0:0:0:1".equals(ip)?"127.0.0.1":ip; + String[] ips = ip.split(","); + return "0:0:0:0:0:0:0:1".equals(ips[0])?"127.0.0.1":ips[0]; + } + + /** + * 根据ip获取详细地址 + * @param ip + * @return + */ + public static String getCityInfo(String ip) { + try { + String path = "ip2region/ip2region.db"; + String name = "ip2region.db"; + int algorithm = DbSearcher.BTREE_ALGORITHM; + DbConfig config = new DbConfig(); + File file = FileUtil.inputStreamToFile(new ClassPathResource(path).getStream(), name); + DbSearcher searcher = new DbSearcher(config, file.getPath()); + Method method = null; + switch (algorithm) { + case DbSearcher.BTREE_ALGORITHM: + method = searcher.getClass().getMethod("btreeSearch", String.class); + break; + case DbSearcher.BINARY_ALGORITHM: + method = searcher.getClass().getMethod("binarySearch", String.class); + break; + case DbSearcher.MEMORY_ALGORITYM: + method = searcher.getClass().getMethod("memorySearch", String.class); + break; + default: + method = searcher.getClass().getMethod("memorySearch", String.class); + break; + } + DataBlock dataBlock = null; + dataBlock = (DataBlock) method.invoke(searcher, ip); + String address = dataBlock.getRegion().replace("0|",""); + if(address.charAt(address.length()-1) == '|'){ + address = address.substring(0,address.length() - 1); + } + return address.equals(ElAdminConstant.REGION)?"内网IP":address; + } catch (Exception e) { + e.printStackTrace(); + } + return ""; } /** diff --git a/eladmin-logging/src/main/java/me/zhengjie/domain/Log.java b/eladmin-logging/src/main/java/me/zhengjie/domain/Log.java index 33ed3cf1..a7146c01 100644 --- a/eladmin-logging/src/main/java/me/zhengjie/domain/Log.java +++ b/eladmin-logging/src/main/java/me/zhengjie/domain/Log.java @@ -54,6 +54,9 @@ public class Log implements Serializable { @Column(name = "request_ip") private String requestIp; + @Column(name = "address") + private String address; + /** * 请求耗时 */ diff --git a/eladmin-logging/src/main/java/me/zhengjie/rest/LogController.java b/eladmin-logging/src/main/java/me/zhengjie/rest/LogController.java index 2b2f0876..051c071d 100644 --- a/eladmin-logging/src/main/java/me/zhengjie/rest/LogController.java +++ b/eladmin-logging/src/main/java/me/zhengjie/rest/LogController.java @@ -34,7 +34,7 @@ public class LogController { @GetMapping(value = "/logs/user") public ResponseEntity getUserLogs(LogQueryCriteria criteria, Pageable pageable){ criteria.setLogType("INFO"); - criteria.setUsername(SecurityUtils.getUsername()); + criteria.setBlurry(SecurityUtils.getUsername()); return new ResponseEntity(logService.queryAllByUser(criteria,pageable), HttpStatus.OK); } diff --git a/eladmin-logging/src/main/java/me/zhengjie/service/dto/LogErrorDTO.java b/eladmin-logging/src/main/java/me/zhengjie/service/dto/LogErrorDTO.java index 10711c5b..f23ae95f 100644 --- a/eladmin-logging/src/main/java/me/zhengjie/service/dto/LogErrorDTO.java +++ b/eladmin-logging/src/main/java/me/zhengjie/service/dto/LogErrorDTO.java @@ -38,6 +38,8 @@ public class LogErrorDTO implements Serializable { */ private String requestIp; + private String address; + /** * 创建日期 diff --git a/eladmin-logging/src/main/java/me/zhengjie/service/dto/LogQueryCriteria.java b/eladmin-logging/src/main/java/me/zhengjie/service/dto/LogQueryCriteria.java index e4f0b64a..6b52cc77 100644 --- a/eladmin-logging/src/main/java/me/zhengjie/service/dto/LogQueryCriteria.java +++ b/eladmin-logging/src/main/java/me/zhengjie/service/dto/LogQueryCriteria.java @@ -11,12 +11,10 @@ import me.zhengjie.annotation.Query; @Data public class LogQueryCriteria { - @Query(type = Query.Type.INNER_LIKE) - private String username; + // 多字段模糊 + @Query(blurry = "username,description,address,requestIp,method,params") + private String blurry; @Query private String logType; - - @Query(type = Query.Type.INNER_LIKE) - private String description; } diff --git a/eladmin-logging/src/main/java/me/zhengjie/service/dto/LogSmallDTO.java b/eladmin-logging/src/main/java/me/zhengjie/service/dto/LogSmallDTO.java index 7c92180b..33b6abfd 100644 --- a/eladmin-logging/src/main/java/me/zhengjie/service/dto/LogSmallDTO.java +++ b/eladmin-logging/src/main/java/me/zhengjie/service/dto/LogSmallDTO.java @@ -27,6 +27,8 @@ public class LogSmallDTO implements Serializable { */ private Long time; + private String address; + /** * 创建日期 */ diff --git a/eladmin-logging/src/main/java/me/zhengjie/service/impl/LogServiceImpl.java b/eladmin-logging/src/main/java/me/zhengjie/service/impl/LogServiceImpl.java index 208e1a02..4d39206f 100644 --- a/eladmin-logging/src/main/java/me/zhengjie/service/impl/LogServiceImpl.java +++ b/eladmin-logging/src/main/java/me/zhengjie/service/impl/LogServiceImpl.java @@ -10,6 +10,7 @@ import me.zhengjie.service.mapper.LogErrorMapper; import me.zhengjie.service.mapper.LogSmallMapper; import me.zhengjie.utils.PageUtil; import me.zhengjie.utils.QueryHelp; +import me.zhengjie.utils.StringUtils; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.reflect.MethodSignature; import org.springframework.beans.factory.annotation.Autowired; @@ -92,6 +93,7 @@ public class LogServiceImpl implements LogService { e.printStackTrace(); } } + log.setAddress(StringUtils.getCityInfo(log.getRequestIp())); log.setMethod(methodName); log.setUsername(username); log.setParams(params + " }"); diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DictController.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DictController.java index 437392e7..372bfe09 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DictController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DictController.java @@ -5,6 +5,7 @@ import me.zhengjie.exception.BadRequestException; import me.zhengjie.modules.system.domain.Dict; import me.zhengjie.modules.system.service.DictService; import me.zhengjie.modules.system.service.dto.DictDTO; +import me.zhengjie.modules.system.service.dto.DictQueryCriteria; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; @@ -29,7 +30,7 @@ public class DictController { @Log("查询字典") @GetMapping(value = "/dict") @PreAuthorize("hasAnyRole('ADMIN','DICT_ALL','DICT_SELECT')") - public ResponseEntity getDicts(DictDTO resources, Pageable pageable){ + public ResponseEntity getDicts(DictQueryCriteria resources, Pageable pageable){ return new ResponseEntity(dictService.queryAll(resources,pageable),HttpStatus.OK); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/MenuController.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/MenuController.java index dca2c700..6d3f06c1 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/MenuController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/MenuController.java @@ -6,8 +6,8 @@ import me.zhengjie.exception.BadRequestException; import me.zhengjie.modules.system.service.MenuService; import me.zhengjie.modules.system.service.RoleService; import me.zhengjie.modules.system.service.UserService; -import me.zhengjie.modules.system.service.dto.CommonQueryCriteria; import me.zhengjie.modules.system.service.dto.MenuDTO; +import me.zhengjie.modules.system.service.dto.MenuQueryCriteria; import me.zhengjie.modules.system.service.dto.UserDTO; import me.zhengjie.utils.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -62,7 +62,7 @@ public class MenuController { @Log("查询菜单") @GetMapping(value = "/menus") @PreAuthorize("hasAnyRole('ADMIN','MENU_ALL','MENU_SELECT')") - public ResponseEntity getMenus(CommonQueryCriteria criteria){ + public ResponseEntity getMenus(MenuQueryCriteria criteria){ List menuDTOList = menuService.queryAll(criteria); return new ResponseEntity(menuService.buildTree(menuDTOList),HttpStatus.OK); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/PermissionController.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/PermissionController.java index 3cb805a3..b27ea7c3 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/PermissionController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/PermissionController.java @@ -4,8 +4,8 @@ import me.zhengjie.aop.log.Log; import me.zhengjie.modules.system.domain.Permission; import me.zhengjie.exception.BadRequestException; import me.zhengjie.modules.system.service.PermissionService; -import me.zhengjie.modules.system.service.dto.CommonQueryCriteria; import me.zhengjie.modules.system.service.dto.PermissionDTO; +import me.zhengjie.modules.system.service.dto.PermissionQueryCriteria; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -41,7 +41,7 @@ public class PermissionController { @Log("查询权限") @GetMapping(value = "/permissions") @PreAuthorize("hasAnyRole('ADMIN','PERMISSION_ALL','PERMISSION_SELECT')") - public ResponseEntity getPermissions(CommonQueryCriteria criteria){ + public ResponseEntity getPermissions(PermissionQueryCriteria criteria){ List permissionDTOS = permissionService.queryAll(criteria); return new ResponseEntity(permissionService.buildTree(permissionDTOS),HttpStatus.OK); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/RoleController.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/RoleController.java index 8c1d2793..ce28bca3 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/RoleController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/RoleController.java @@ -5,7 +5,8 @@ import me.zhengjie.aop.log.Log; import me.zhengjie.modules.system.domain.Role; import me.zhengjie.exception.BadRequestException; import me.zhengjie.modules.system.service.RoleService; -import me.zhengjie.modules.system.service.dto.CommonQueryCriteria; +import me.zhengjie.modules.system.service.dto.MenuQueryCriteria; +import me.zhengjie.modules.system.service.dto.RoleQueryCriteria; import me.zhengjie.modules.system.service.dto.RoleSmallDTO; import me.zhengjie.utils.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -58,7 +59,7 @@ public class RoleController { @Log("查询角色") @GetMapping(value = "/roles") @PreAuthorize("hasAnyRole('ADMIN','ROLES_ALL','ROLES_SELECT')") - public ResponseEntity getRoles(CommonQueryCriteria criteria, Pageable pageable){ + public ResponseEntity getRoles(RoleQueryCriteria criteria, Pageable pageable){ return new ResponseEntity(roleService.queryAll(criteria,pageable),HttpStatus.OK); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DictService.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DictService.java index 32557370..6b4f595a 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DictService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DictService.java @@ -2,6 +2,7 @@ package me.zhengjie.modules.system.service; import me.zhengjie.modules.system.domain.Dict; import me.zhengjie.modules.system.service.dto.DictDTO; +import me.zhengjie.modules.system.service.dto.DictQueryCriteria; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; @@ -21,7 +22,7 @@ public interface DictService { * @return */ @Cacheable(keyGenerator = "keyGenerator") - Object queryAll(DictDTO dict, Pageable pageable); + Object queryAll(DictQueryCriteria dict, Pageable pageable); /** * findById diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/MenuService.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/MenuService.java index b4d4f8b1..057b3755 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/MenuService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/MenuService.java @@ -1,16 +1,14 @@ package me.zhengjie.modules.system.service; import me.zhengjie.modules.system.domain.Menu; -import me.zhengjie.modules.system.domain.Role; -import me.zhengjie.modules.system.service.dto.CommonQueryCriteria; import me.zhengjie.modules.system.service.dto.MenuDTO; +import me.zhengjie.modules.system.service.dto.MenuQueryCriteria; import me.zhengjie.modules.system.service.dto.RoleSmallDTO; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import java.util.List; import java.util.Map; -import java.util.Set; /** * @author Zheng Jie @@ -25,7 +23,7 @@ public interface MenuService { * @return */ @Cacheable(keyGenerator = "keyGenerator") - List queryAll(CommonQueryCriteria criteria); + List queryAll(MenuQueryCriteria criteria); /** * get diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/PermissionService.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/PermissionService.java index d01e6691..eb424e5c 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/PermissionService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/PermissionService.java @@ -1,13 +1,12 @@ package me.zhengjie.modules.system.service; import me.zhengjie.modules.system.domain.Permission; -import me.zhengjie.modules.system.service.dto.CommonQueryCriteria; import me.zhengjie.modules.system.service.dto.PermissionDTO; +import me.zhengjie.modules.system.service.dto.PermissionQueryCriteria; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; -import java.util.Collection; import java.util.List; /** @@ -76,5 +75,5 @@ public interface PermissionService { * @return */ @Cacheable(keyGenerator = "keyGenerator") - List queryAll(CommonQueryCriteria criteria); + List queryAll(PermissionQueryCriteria criteria); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/RoleService.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/RoleService.java index 36722e8b..eccb2459 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/RoleService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/RoleService.java @@ -2,8 +2,8 @@ package me.zhengjie.modules.system.service; import me.zhengjie.modules.system.domain.Menu; import me.zhengjie.modules.system.domain.Role; -import me.zhengjie.modules.system.service.dto.CommonQueryCriteria; import me.zhengjie.modules.system.service.dto.RoleDTO; +import me.zhengjie.modules.system.service.dto.RoleQueryCriteria; import me.zhengjie.modules.system.service.dto.RoleSmallDTO; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; @@ -94,5 +94,5 @@ public interface RoleService { * @param criteria * @return */ - Object queryAll(CommonQueryCriteria criteria, Pageable pageable); + Object queryAll(RoleQueryCriteria criteria, Pageable pageable); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/DictDTO.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/DictDTO.java index ce30039d..a96a4895 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/DictDTO.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/DictDTO.java @@ -1,8 +1,6 @@ package me.zhengjie.modules.system.service.dto; import lombok.Data; -import me.zhengjie.annotation.Query; - import java.io.Serializable; /** @@ -17,12 +15,10 @@ public class DictDTO implements Serializable { /** * 字典名称 */ - @Query(type = Query.Type.INNER_LIKE) private String name; /** * 描述 */ - @Query(type = Query.Type.INNER_LIKE) private String remark; } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/CommonQueryCriteria.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/DictQueryCriteria.java similarity index 54% rename from eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/CommonQueryCriteria.java rename to eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/DictQueryCriteria.java index 09d7b643..fe2e2193 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/CommonQueryCriteria.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/DictQueryCriteria.java @@ -7,8 +7,9 @@ import me.zhengjie.annotation.Query; * 公共查询类 */ @Data -public class CommonQueryCriteria { +public class DictQueryCriteria { - @Query(type = Query.Type.INNER_LIKE) - private String name; + // 多字段模糊 + @Query(blurry = "name,remark") + private String blurry; } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/MenuQueryCriteria.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/MenuQueryCriteria.java new file mode 100644 index 00000000..ccde232d --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/MenuQueryCriteria.java @@ -0,0 +1,15 @@ +package me.zhengjie.modules.system.service.dto; + +import lombok.Data; +import me.zhengjie.annotation.Query; + +/** + * 公共查询类 + */ +@Data +public class MenuQueryCriteria { + + // 多字段模糊 + @Query(blurry = "name,path,component") + private String blurry; +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/PermissionQueryCriteria.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/PermissionQueryCriteria.java new file mode 100644 index 00000000..055b0ec4 --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/PermissionQueryCriteria.java @@ -0,0 +1,15 @@ +package me.zhengjie.modules.system.service.dto; + +import lombok.Data; +import me.zhengjie.annotation.Query; + +/** + * 公共查询类 + */ +@Data +public class PermissionQueryCriteria { + + // 多字段模糊 + @Query(blurry = "name,alias") + private String blurry; +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/RoleQueryCriteria.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/RoleQueryCriteria.java new file mode 100644 index 00000000..3c935889 --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/RoleQueryCriteria.java @@ -0,0 +1,15 @@ +package me.zhengjie.modules.system.service.dto; + +import lombok.Data; +import me.zhengjie.annotation.Query; + +/** + * 公共查询类 + */ +@Data +public class RoleQueryCriteria { + + // 多字段模糊 + @Query(blurry = "name,remark") + private String blurry; +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/UserQueryCriteria.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/UserQueryCriteria.java index a0b6c168..a69467c9 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/UserQueryCriteria.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/UserQueryCriteria.java @@ -18,11 +18,9 @@ public class UserQueryCriteria implements Serializable { @Query(propName = "id", type = Query.Type.IN, joinName = "dept") private Set deptIds; - @Query(type = Query.Type.INNER_LIKE) - private String username; - - @Query(type = Query.Type.INNER_LIKE) - private String email; + // 多字段模糊 + @Query(blurry = "email,username") + private String blurry; @Query private Boolean enabled; diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DictServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DictServiceImpl.java index 4d13e66d..12ad1da0 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DictServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/DictServiceImpl.java @@ -1,6 +1,7 @@ package me.zhengjie.modules.system.service.impl; import me.zhengjie.modules.system.domain.Dict; +import me.zhengjie.modules.system.service.dto.DictQueryCriteria; import me.zhengjie.utils.PageUtil; import me.zhengjie.utils.QueryHelp; import me.zhengjie.utils.ValidationUtil; @@ -31,7 +32,7 @@ public class DictServiceImpl implements DictService { private DictMapper dictMapper; @Override - public Object queryAll(DictDTO dict, Pageable pageable){ + public Object queryAll(DictQueryCriteria dict, Pageable pageable){ Page page = dictRepository.findAll((root, query, cb) -> QueryHelp.getPredicate(root, dict, cb), pageable); return PageUtil.toPage(page.map(dictMapper::toDto)); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java index ad6a0ba7..7d081559 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/MenuServiceImpl.java @@ -8,8 +8,8 @@ import me.zhengjie.exception.BadRequestException; import me.zhengjie.exception.EntityExistException; import me.zhengjie.modules.system.repository.MenuRepository; import me.zhengjie.modules.system.service.MenuService; -import me.zhengjie.modules.system.service.dto.CommonQueryCriteria; import me.zhengjie.modules.system.service.dto.MenuDTO; +import me.zhengjie.modules.system.service.dto.MenuQueryCriteria; import me.zhengjie.modules.system.service.dto.RoleSmallDTO; import me.zhengjie.modules.system.service.mapper.MenuMapper; import me.zhengjie.utils.QueryHelp; @@ -32,7 +32,7 @@ public class MenuServiceImpl implements MenuService { private MenuMapper menuMapper; @Override - public List queryAll(CommonQueryCriteria criteria){ + public List queryAll(MenuQueryCriteria criteria){ return menuMapper.toDto(menuRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder))); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/PermissionServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/PermissionServiceImpl.java index e0097941..ea521a79 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/PermissionServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/PermissionServiceImpl.java @@ -5,8 +5,8 @@ import me.zhengjie.exception.BadRequestException; import me.zhengjie.exception.EntityExistException; import me.zhengjie.modules.system.repository.PermissionRepository; import me.zhengjie.modules.system.service.PermissionService; -import me.zhengjie.modules.system.service.dto.CommonQueryCriteria; import me.zhengjie.modules.system.service.dto.PermissionDTO; +import me.zhengjie.modules.system.service.dto.PermissionQueryCriteria; import me.zhengjie.modules.system.service.mapper.PermissionMapper; import me.zhengjie.utils.QueryHelp; import me.zhengjie.utils.ValidationUtil; @@ -31,7 +31,7 @@ public class PermissionServiceImpl implements PermissionService { private PermissionMapper permissionMapper; @Override - public List queryAll(CommonQueryCriteria criteria) { + public List queryAll(PermissionQueryCriteria criteria) { return permissionMapper.toDto(permissionRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder))); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java index 1b5bbbb0..cc68febb 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/RoleServiceImpl.java @@ -5,8 +5,8 @@ import me.zhengjie.modules.system.domain.Role; import me.zhengjie.exception.EntityExistException; import me.zhengjie.modules.system.repository.RoleRepository; import me.zhengjie.modules.system.service.RoleService; -import me.zhengjie.modules.system.service.dto.CommonQueryCriteria; import me.zhengjie.modules.system.service.dto.RoleDTO; +import me.zhengjie.modules.system.service.dto.RoleQueryCriteria; import me.zhengjie.modules.system.service.dto.RoleSmallDTO; import me.zhengjie.modules.system.service.mapper.RoleMapper; import me.zhengjie.modules.system.service.mapper.RoleSmallMapper; @@ -45,7 +45,7 @@ public class RoleServiceImpl implements RoleService { } @Override - public Object queryAll(CommonQueryCriteria criteria, Pageable pageable) { + public Object queryAll(RoleQueryCriteria criteria, Pageable pageable) { Page page = roleRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); return PageUtil.toPage(page.map(roleMapper::toDto)); } diff --git a/eladmin-system/src/main/resources/ip2region/ip2region.db b/eladmin-system/src/main/resources/ip2region/ip2region.db new file mode 100644 index 00000000..43e1daf5 Binary files /dev/null and b/eladmin-system/src/main/resources/ip2region/ip2region.db differ diff --git a/eladmin-tools/src/main/java/me/zhengjie/service/impl/QiNiuServiceImpl.java b/eladmin-tools/src/main/java/me/zhengjie/service/impl/QiNiuServiceImpl.java index a66711de..bebb5b8e 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/service/impl/QiNiuServiceImpl.java +++ b/eladmin-tools/src/main/java/me/zhengjie/service/impl/QiNiuServiceImpl.java @@ -84,7 +84,7 @@ public class QiNiuServiceImpl implements QiNiuService { /** * 构造一个带指定Zone对象的配置类 */ - Configuration cfg = QiNiuUtil.getConfiguration(qiniuConfig.getZone()); + Configuration cfg = new Configuration(QiNiuUtil.getRegion(qiniuConfig.getZone())); UploadManager uploadManager = new UploadManager(cfg); Auth auth = Auth.create(qiniuConfig.getAccessKey(), qiniuConfig.getSecretKey()); String upToken = auth.uploadToken(qiniuConfig.getBucket()); @@ -136,7 +136,7 @@ public class QiNiuServiceImpl implements QiNiuService { @Transactional(rollbackFor = Exception.class) public void delete(QiniuContent content, QiniuConfig config) { //构造一个带指定Zone对象的配置类 - Configuration cfg = QiNiuUtil.getConfiguration(config.getZone()); + Configuration cfg = new Configuration(QiNiuUtil.getRegion(config.getZone())); Auth auth = Auth.create(config.getAccessKey(), config.getSecretKey()); BucketManager bucketManager = new BucketManager(auth, cfg); try { @@ -154,7 +154,7 @@ public class QiNiuServiceImpl implements QiNiuService { throw new BadRequestException("请先添加相应配置,再操作"); } //构造一个带指定Zone对象的配置类 - Configuration cfg = QiNiuUtil.getConfiguration(config.getZone()); + Configuration cfg = new Configuration(QiNiuUtil.getRegion(config.getZone())); Auth auth = Auth.create(config.getAccessKey(), config.getSecretKey()); BucketManager bucketManager = new BucketManager(auth, cfg); //文件名前缀 @@ -181,7 +181,6 @@ public class QiNiuServiceImpl implements QiNiuService { } } } - } @Override diff --git a/eladmin-tools/src/main/java/me/zhengjie/utils/QiNiuUtil.java b/eladmin-tools/src/main/java/me/zhengjie/utils/QiNiuUtil.java index 92b8d062..4ff7dc83 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/utils/QiNiuUtil.java +++ b/eladmin-tools/src/main/java/me/zhengjie/utils/QiNiuUtil.java @@ -1,8 +1,6 @@ package me.zhengjie.utils; -import com.qiniu.common.Zone; -import com.qiniu.storage.Configuration; - +import com.qiniu.storage.Region; import java.text.SimpleDateFormat; import java.util.Date; @@ -26,20 +24,19 @@ public class QiNiuUtil { * @param zone * @return */ - public static Configuration getConfiguration(String zone){ + public static Region getRegion(String zone){ if(HUAD.equals(zone)){ - return new Configuration(Zone.zone0()); + return Region.huadong(); } else if(HUAB.equals(zone)){ - return new Configuration(Zone.zone1()); + return Region.huabei(); } else if(HUAN.equals(zone)){ - return new Configuration(Zone.zone2()); + return Region.huanan(); } else if (BEIM.equals(zone)){ - return new Configuration(Zone.zoneNa0()); - + return Region.beimei(); // 否则就是东南亚 } else { - return new Configuration(Zone.zoneAs0()); + return Region.qvmHuadong(); } } diff --git a/pom.xml b/pom.xml index c28a16a5..0127ac16 100644 --- a/pom.xml +++ b/pom.xml @@ -149,6 +149,12 @@ hutool-all ${hutool.version} + + + org.lionsoul + ip2region + 1.7.2 +