From f9bb8cf241e55a42ddd5a9b4942cae616a7d2e8e Mon Sep 17 00:00:00 2001 From: dqjdda <201507802@qq.com> Date: Thu, 26 Sep 2019 16:57:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AE=9A=E6=97=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=89=A7=E8=A1=8C=E5=A4=B1=E8=B4=A5=E5=90=8E=E8=BF=98?= =?UTF-8?q?=E7=BB=A7=E7=BB=AD=E6=89=A7=E8=A1=8C=E7=9A=84bug=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96Redis=E5=8F=91=E7=94=9F=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E7=A8=8B=E5=BA=8F=E6=AD=A3=E5=B8=B8=E6=89=A7?= =?UTF-8?q?=E8=A1=8C,=E4=BC=98=E5=8C=96Excel=E5=A4=A7=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=EF=BC=8C=E4=BC=98=E5=8C=96QueryHelp=EF=BC=8C?= =?UTF-8?q?=E5=85=B6=E4=BB=96=E7=BB=86=E8=8A=82=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/me/zhengjie/redis/RedisConfig.java | 38 +++++++++++++++++-- .../main/java/me/zhengjie/utils/FileUtil.java | 23 +++++------ .../main/java/me/zhengjie/utils/PageUtil.java | 12 ++---- .../java/me/zhengjie/utils/QueryHelp.java | 27 +++++++++---- .../quartz/service/QuartzJobService.java | 2 +- .../modules/quartz/task/TestTask.java | 1 + .../modules/quartz/utils/ExecutionJob.java | 4 +- .../modules/quartz/utils/QuartzRunnable.java | 22 +++++------ .../modules/system/rest/UserController.java | 3 +- .../modules/system/service/DeptService.java | 6 +-- .../system/service/DictDetailService.java | 2 +- .../modules/system/service/DictService.java | 2 +- .../modules/system/service/MenuService.java | 2 +- .../system/service/PermissionService.java | 4 +- .../modules/system/service/RoleService.java | 8 ++-- .../modules/system/service/UserService.java | 7 ++-- .../system/service/impl/UserServiceImpl.java | 2 +- .../main/resources/log4jdbc.log4j2.properties | 4 +- .../template/generator/admin/Service.ftl | 28 +++++++------- .../template/generator/admin/ServiceImpl.ftl | 6 ++- .../me/zhengjie/rest/PictureController.java | 2 +- .../zhengjie/service/LocalStorageService.java | 4 +- .../me/zhengjie/service/PictureService.java | 2 +- .../me/zhengjie/service/QiNiuService.java | 2 +- pom.xml | 11 ++++++ 25 files changed, 137 insertions(+), 87 deletions(-) diff --git a/eladmin-common/src/main/java/me/zhengjie/redis/RedisConfig.java b/eladmin-common/src/main/java/me/zhengjie/redis/RedisConfig.java index e72ae435..beb0170a 100644 --- a/eladmin-common/src/main/java/me/zhengjie/redis/RedisConfig.java +++ b/eladmin-common/src/main/java/me/zhengjie/redis/RedisConfig.java @@ -3,14 +3,14 @@ package me.zhengjie.redis; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.parser.ParserConfig; import lombok.extern.slf4j.Slf4j; -import me.zhengjie.utils.StringUtils; -import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.data.redis.RedisProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.cache.Cache; import org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.cache.annotation.EnableCaching; +import org.springframework.cache.interceptor.CacheErrorHandler; import org.springframework.cache.interceptor.KeyGenerator; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -74,8 +74,8 @@ public class RedisConfig extends CachingConfigurerSupport { } /** - * 自定义缓存key生成策略 - * 使用方法 @Cacheable(keyGenerator="keyGenerator") + * 自定义缓存key生成策略,默认将使用该策略 + * 使用方法 @Cacheable * @return */ @Bean @@ -91,4 +91,34 @@ public class RedisConfig extends CachingConfigurerSupport { return sb.toString(); }; } + + @Bean + @Override + public CacheErrorHandler errorHandler() { + // 异常处理,当Redis发生异常时,打印日志,但是程序正常走 + log.info("初始化 -> [{}]", "Redis CacheErrorHandler"); + CacheErrorHandler cacheErrorHandler = new CacheErrorHandler() { + @Override + public void handleCacheGetError(RuntimeException e, Cache cache, Object key) { + log.error("Redis occur handleCacheGetError:key -> [{}]", key, e); + } + + @Override + public void handleCachePutError(RuntimeException e, Cache cache, Object key, Object value) { + log.error("Redis occur handleCachePutError:key -> [{}];value -> [{}]", key, value, e); + } + + @Override + public void handleCacheEvictError(RuntimeException e, Cache cache, Object key) { + log.error("Redis occur handleCacheEvictError:key -> [{}]", key, e); + } + + @Override + public void handleCacheClearError(RuntimeException e, Cache cache) { + log.error("Redis occur handleCacheClearError:", e); + } + }; + return cacheErrorHandler; + } + } 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 34a488a9..0bd59edd 100644 --- a/eladmin-common/src/main/java/me/zhengjie/utils/FileUtil.java +++ b/eladmin-common/src/main/java/me/zhengjie/utils/FileUtil.java @@ -3,6 +3,7 @@ package me.zhengjie.utils; import cn.hutool.core.codec.Base64; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.poi.excel.BigExcelWriter; import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.ExcelWriter; import me.zhengjie.exception.BadRequestException; @@ -197,24 +198,20 @@ public class FileUtil extends cn.hutool.core.io.FileUtil { * @return * @throws Exception */ - public static void downloadExcel(List> list, HttpServletResponse response){ - // 通过工具类创建writer - ExcelWriter writer = ExcelUtil.getWriter(); + public static void downloadExcel(List> list, HttpServletResponse response) throws IOException { + String tempPath =System.getProperty("java.io.tmpdir") + IdUtil.fastSimpleUUID() + ".xlsx"; + File file = new File(tempPath); + BigExcelWriter writer= ExcelUtil.getBigWriter(file); // 一次性写出内容,使用默认样式,强制输出标题 writer.write(list, true); //response为HttpServletResponse对象 - response.setContentType("application/vnd.ms-excel;charset=utf-8"); + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"); //test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码 - response.setHeader("Content-Disposition","attachment;filename=file.xls"); - ServletOutputStream out= null; - try { - out = response.getOutputStream(); - } catch (IOException e) { - e.printStackTrace(); - } + response.setHeader("Content-Disposition","attachment;filename=file.xlsx"); + ServletOutputStream out=response.getOutputStream(); + // 终止后删除临时文件 + file.deleteOnExit(); writer.flush(out, true); - // 关闭writer,释放内存 - writer.close(); //此处记得关闭输出Servlet流 IoUtil.close(out); } diff --git a/eladmin-common/src/main/java/me/zhengjie/utils/PageUtil.java b/eladmin-common/src/main/java/me/zhengjie/utils/PageUtil.java index 7c4c7e70..8ca67b0a 100644 --- a/eladmin-common/src/main/java/me/zhengjie/utils/PageUtil.java +++ b/eladmin-common/src/main/java/me/zhengjie/utils/PageUtil.java @@ -1,10 +1,7 @@ package me.zhengjie.utils; import org.springframework.data.domain.Page; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 分页工具 @@ -39,11 +36,9 @@ public class PageUtil extends cn.hutool.core.util.PageUtil { * @return */ public static Map toPage(Page page) { - Map map = new HashMap(); - + Map map = new LinkedHashMap<>(2); map.put("content",page.getContent()); map.put("totalElements",page.getTotalElements()); - return map; } @@ -53,8 +48,7 @@ public class PageUtil extends cn.hutool.core.util.PageUtil { * @return */ public static Map toPage(Object object, Object totalElements) { - Map map = new HashMap(); - + Map map = new LinkedHashMap<>(2); map.put("content",object); map.put("totalElements",totalElements); 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 c1ad8ab8..0ea14822 100644 --- a/eladmin-common/src/main/java/me/zhengjie/utils/QueryHelp.java +++ b/eladmin-common/src/main/java/me/zhengjie/utils/QueryHelp.java @@ -41,7 +41,7 @@ public class QueryHelp { String attributeName = isBlank(propName) ? field.getName() : propName; Class fieldType = field.getType(); Object val = field.get(query); - if (ObjectUtil.isNull(val)) { + if (ObjectUtil.isNull(val) || "".equals(val)) { continue; } Join join = null; @@ -58,13 +58,24 @@ public class QueryHelp { continue; } if (ObjectUtil.isNotEmpty(joinName)) { - switch (q.join()) { - case LEFT: - join = root.join(joinName, JoinType.LEFT); - break; - case RIGHT: - join = root.join(joinName, JoinType.RIGHT); - break; + String[] joinNames = joinName.split(">"); + for (String name : joinNames) { + switch (q.join()) { + case LEFT: + if(ObjectUtil.isNotEmpty(join)){ + join = join.join(name, JoinType.LEFT); + } else { + join = root.join(name, JoinType.LEFT); + } + break; + case RIGHT: + if(ObjectUtil.isNotEmpty(join)){ + join = join.join(name, JoinType.RIGHT); + } else { + join = root.join(name, JoinType.RIGHT); + } + break; + } } } switch (q.type()) { diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/quartz/service/QuartzJobService.java b/eladmin-system/src/main/java/me/zhengjie/modules/quartz/service/QuartzJobService.java index 4acd76fb..a5ade06d 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/quartz/service/QuartzJobService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/quartz/service/QuartzJobService.java @@ -21,7 +21,7 @@ public interface QuartzJobService { * @param pageable * @return */ - @Cacheable(keyGenerator = "keyGenerator") + @Cacheable Object queryAll(JobQueryCriteria criteria, Pageable pageable); /** diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/quartz/task/TestTask.java b/eladmin-system/src/main/java/me/zhengjie/modules/quartz/task/TestTask.java index 757703bb..680e9f1d 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/quartz/task/TestTask.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/quartz/task/TestTask.java @@ -1,6 +1,7 @@ package me.zhengjie.modules.quartz.task; import lombok.extern.slf4j.Slf4j; +import me.zhengjie.exception.BadRequestException; import org.springframework.stereotype.Component; /** diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/quartz/utils/ExecutionJob.java b/eladmin-system/src/main/java/me/zhengjie/modules/quartz/utils/ExecutionJob.java index 756c0fe2..221d665d 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/quartz/utils/ExecutionJob.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/quartz/utils/ExecutionJob.java @@ -25,6 +25,7 @@ public class ExecutionJob extends QuartzJobBean { private Logger logger = LoggerFactory.getLogger(this.getClass()); + // 建议自定义线程池实现方式,该处仅供参考 private ExecutorService executorService = Executors.newSingleThreadExecutor(); @Override @@ -61,8 +62,7 @@ public class ExecutionJob extends QuartzJobBean { // 任务状态 0:成功 1:失败 log.setIsSuccess(false); log.setExceptionDetail(ThrowableUtil.getStackTrace(e)); - //出错就暂停任务 - quartzManage.pauseJob(quartzJob); + quartzJob.setIsPause(false); //更新状态 quartzJobService.updateIsPause(quartzJob); } finally { diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/quartz/utils/QuartzRunnable.java b/eladmin-system/src/main/java/me/zhengjie/modules/quartz/utils/QuartzRunnable.java index 810cc8f2..d9407291 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/quartz/utils/QuartzRunnable.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/quartz/utils/QuartzRunnable.java @@ -1,17 +1,19 @@ package me.zhengjie.modules.quartz.utils; import lombok.extern.slf4j.Slf4j; +import me.zhengjie.exception.BadRequestException; import me.zhengjie.utils.SpringContextHolder; import org.apache.commons.lang3.StringUtils; import org.springframework.util.ReflectionUtils; import java.lang.reflect.Method; +import java.util.concurrent.Callable; /** * 执行定时任务 * @author */ @Slf4j -public class QuartzRunnable implements Runnable { +public class QuartzRunnable implements Callable { private Object target; private Method method; @@ -30,17 +32,13 @@ public class QuartzRunnable implements Runnable { } @Override - public void run() { - try { - ReflectionUtils.makeAccessible(method); - if (StringUtils.isNotBlank(params)) { - method.invoke(target, params); - } else { - method.invoke(target); - } - } catch (Exception e) { - log.error("定时任务执行失败",e); + public Object call() throws Exception { + ReflectionUtils.makeAccessible(method); + if (StringUtils.isNotBlank(params)) { + method.invoke(target, params); + } else { + method.invoke(target); } + return null; } - } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java index 35706f73..96bf7657 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/UserController.java @@ -27,6 +27,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.*; import java.util.stream.Collectors; @@ -59,7 +60,7 @@ public class UserController { @Log("导出用户数据") @GetMapping(value = "/users/download") @PreAuthorize("hasAnyRole('ADMIN','USER_ALL','USER_SELECT')") - public void update(HttpServletResponse response, UserQueryCriteria criteria){ + public void update(HttpServletResponse response, UserQueryCriteria criteria) throws IOException { userService.download(userService.queryAll(criteria), response); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DeptService.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DeptService.java index 4ed093fb..792ea137 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DeptService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DeptService.java @@ -22,7 +22,7 @@ public interface DeptService { * @param criteria * @return */ - @Cacheable(keyGenerator = "keyGenerator") + @Cacheable List queryAll(DeptQueryCriteria criteria); /** @@ -60,7 +60,7 @@ public interface DeptService { * @param deptDTOS * @return */ - @Cacheable(keyGenerator = "keyGenerator") + @Cacheable Object buildTree(List deptDTOS); /** @@ -68,7 +68,7 @@ public interface DeptService { * @param pid * @return */ - @Cacheable(keyGenerator = "keyGenerator") + @Cacheable List findByPid(long pid); Set findByRoleIds(Long id); diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DictDetailService.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DictDetailService.java index 2566984b..fe89a027 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DictDetailService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/DictDetailService.java @@ -47,6 +47,6 @@ public interface DictDetailService { @CacheEvict(allEntries = true) void delete(Long id); - @Cacheable(keyGenerator = "keyGenerator") + @Cacheable Map queryAll(DictDetailQueryCriteria criteria, Pageable pageable); } \ No newline at end of file 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 6b4f595a..e6f10538 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 @@ -21,7 +21,7 @@ public interface DictService { * @param pageable * @return */ - @Cacheable(keyGenerator = "keyGenerator") + @Cacheable Object queryAll(DictQueryCriteria dict, Pageable pageable); /** 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 17eb8205..3958c05f 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 @@ -23,7 +23,7 @@ public interface MenuService { * @param criteria * @return */ - @Cacheable(keyGenerator = "keyGenerator") + @Cacheable List queryAll(MenuQueryCriteria criteria); /** 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 7873c11a..ec6ebc23 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 @@ -67,7 +67,7 @@ public interface PermissionService { * @param permissionDTOS * @return */ - @Cacheable(keyGenerator = "keyGenerator") + @Cacheable Object buildTree(List permissionDTOS); /** @@ -75,7 +75,7 @@ public interface PermissionService { * @param criteria * @return */ - @Cacheable(keyGenerator = "keyGenerator") + @Cacheable List queryAll(PermissionQueryCriteria criteria); Set getDeletePermission(List permissions, Set permissionSet); 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 d147417d..39973fce 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 @@ -58,7 +58,7 @@ public interface RoleService { @Cacheable(key = "'findByUsers_Id:' + #p0") List findByUsers_Id(Long id); - @Cacheable(keyGenerator = "keyGenerator") + @Cacheable Integer findByRoles(Set roles); /** @@ -85,7 +85,7 @@ public interface RoleService { * @param pageable * @return */ - @Cacheable(keyGenerator = "keyGenerator") + @Cacheable Object queryAll(Pageable pageable); /** @@ -94,7 +94,7 @@ public interface RoleService { * @param criteria * @return */ - @Cacheable(keyGenerator = "keyGenerator") + @Cacheable Object queryAll(RoleQueryCriteria criteria, Pageable pageable); /** @@ -102,7 +102,7 @@ public interface RoleService { * @param criteria * @return */ - @Cacheable(keyGenerator = "keyGenerator") + @Cacheable List queryAll(RoleQueryCriteria criteria); @CacheEvict(allEntries = true) diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/UserService.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/UserService.java index 1414e1f8..bedae91a 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/UserService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/UserService.java @@ -11,6 +11,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.List; /** @@ -81,11 +82,11 @@ public interface UserService { @CacheEvict(allEntries = true) void updateEmail(String username, String email); - @Cacheable(keyGenerator = "keyGenerator") + @Cacheable Object queryAll(UserQueryCriteria criteria, Pageable pageable); - @Cacheable(keyGenerator = "keyGenerator") + @Cacheable List queryAll(UserQueryCriteria criteria); - void download(List queryAll, HttpServletResponse response); + void download(List queryAll, HttpServletResponse response) throws IOException; } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java index 32921765..2685d743 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/UserServiceImpl.java @@ -180,7 +180,7 @@ public class UserServiceImpl implements UserService { } @Override - public void download(List queryAll, HttpServletResponse response) { + public void download(List queryAll, HttpServletResponse response) throws IOException { List> list = new ArrayList<>(); for (UserDTO userDTO : queryAll) { List roles = userDTO.getRoles().stream().map(RoleSmallDTO::getName).collect(Collectors.toList()); diff --git a/eladmin-system/src/main/resources/log4jdbc.log4j2.properties b/eladmin-system/src/main/resources/log4jdbc.log4j2.properties index 5cb6f991..302525ff 100644 --- a/eladmin-system/src/main/resources/log4jdbc.log4j2.properties +++ b/eladmin-system/src/main/resources/log4jdbc.log4j2.properties @@ -1,2 +1,4 @@ # If you use SLF4J. First, you need to tell log4jdbc-log4j2 that you want to use the SLF4J logger -log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator \ No newline at end of file +log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator +log4jdbc.auto.load.popular.drivers=false +log4jdbc.drivers=com.mysql.cj.jdbc.Driver \ No newline at end of file diff --git a/eladmin-system/src/main/resources/template/generator/admin/Service.ftl b/eladmin-system/src/main/resources/template/generator/admin/Service.ftl index e6aa6b9e..ba236c16 100644 --- a/eladmin-system/src/main/resources/template/generator/admin/Service.ftl +++ b/eladmin-system/src/main/resources/template/generator/admin/Service.ftl @@ -3,10 +3,12 @@ package ${package}.service; import ${package}.domain.${className}; import ${package}.service.dto.${className}DTO; import ${package}.service.dto.${className}QueryCriteria; -//import org.springframework.cache.annotation.CacheConfig; -//import org.springframework.cache.annotation.CacheEvict; -//import org.springframework.cache.annotation.Cacheable; +import org.springframework.cache.annotation.CacheConfig; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; import org.springframework.data.domain.Pageable; +import java.util.Map; +import java.util.List; /** * @author ${author} @@ -16,24 +18,24 @@ import org.springframework.data.domain.Pageable; public interface ${className}Service { /** - * queryAll 分页 + * 查询数据分页 * @param criteria * @param pageable * @return */ - //@Cacheable(keyGenerator = "keyGenerator") - Object queryAll(${className}QueryCriteria criteria, Pageable pageable); + //@Cacheable + Map queryAll(${className}QueryCriteria criteria, Pageable pageable); /** - * queryAll 不分页 + * 查询所有数据不分页 * @param criteria * @return */ - //@Cacheable(keyGenerator = "keyGenerator") - public Object queryAll(${className}QueryCriteria criteria); + //@Cacheable + List<${className}DTO> queryAll(${className}QueryCriteria criteria); /** - * findById + * 根据ID查询 * @param ${pkChangeColName} * @return */ @@ -41,7 +43,7 @@ public interface ${className}Service { ${className}DTO findById(${pkColumnType} ${pkChangeColName}); /** - * create + * 创建 * @param resources * @return */ @@ -49,14 +51,14 @@ public interface ${className}Service { ${className}DTO create(${className} resources); /** - * update + * 编辑 * @param resources */ //@CacheEvict(allEntries = true) void update(${className} resources); /** - * delete + * 删除 * @param ${pkChangeColName} */ //@CacheEvict(allEntries = true) diff --git a/eladmin-system/src/main/resources/template/generator/admin/ServiceImpl.ftl b/eladmin-system/src/main/resources/template/generator/admin/ServiceImpl.ftl index efa5e89b..d22a9536 100644 --- a/eladmin-system/src/main/resources/template/generator/admin/ServiceImpl.ftl +++ b/eladmin-system/src/main/resources/template/generator/admin/ServiceImpl.ftl @@ -32,6 +32,8 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import me.zhengjie.utils.PageUtil; import me.zhengjie.utils.QueryHelp; +import java.util.List; +import java.util.Map; /** * @author ${author} @@ -48,13 +50,13 @@ public class ${className}ServiceImpl implements ${className}Service { private ${className}Mapper ${changeClassName}Mapper; @Override - public Object queryAll(${className}QueryCriteria criteria, Pageable pageable){ + public Map queryAll(${className}QueryCriteria criteria, Pageable pageable){ Page<${className}> page = ${changeClassName}Repository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); return PageUtil.toPage(page.map(${changeClassName}Mapper::toDto)); } @Override - public Object queryAll(${className}QueryCriteria criteria){ + public List<${className}DTO> queryAll(${className}QueryCriteria criteria){ return ${changeClassName}Mapper.toDto(${changeClassName}Repository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder))); } diff --git a/eladmin-tools/src/main/java/me/zhengjie/rest/PictureController.java b/eladmin-tools/src/main/java/me/zhengjie/rest/PictureController.java index 7e63a9ab..543ee3a2 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/rest/PictureController.java +++ b/eladmin-tools/src/main/java/me/zhengjie/rest/PictureController.java @@ -45,7 +45,7 @@ public class PictureController { public ResponseEntity upload(@RequestParam MultipartFile file){ String userName = SecurityUtils.getUsername(); Picture picture = pictureService.upload(file,userName); - Map map = new HashMap(3); + Map map = new HashMap<>(3); map.put("errno",0); map.put("id",picture.getId()); map.put("data",new String[]{picture.getUrl()}); diff --git a/eladmin-tools/src/main/java/me/zhengjie/service/LocalStorageService.java b/eladmin-tools/src/main/java/me/zhengjie/service/LocalStorageService.java index b9f00fe9..6636cd0f 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/service/LocalStorageService.java +++ b/eladmin-tools/src/main/java/me/zhengjie/service/LocalStorageService.java @@ -22,7 +22,7 @@ public interface LocalStorageService { * @param pageable * @return */ - @Cacheable(keyGenerator = "keyGenerator") + @Cacheable Object queryAll(LocalStorageQueryCriteria criteria, Pageable pageable); /** @@ -30,7 +30,7 @@ public interface LocalStorageService { * @param criteria * @return */ - @Cacheable(keyGenerator = "keyGenerator") + @Cacheable public Object queryAll(LocalStorageQueryCriteria criteria); /** diff --git a/eladmin-tools/src/main/java/me/zhengjie/service/PictureService.java b/eladmin-tools/src/main/java/me/zhengjie/service/PictureService.java index 27091829..8d299ea5 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/service/PictureService.java +++ b/eladmin-tools/src/main/java/me/zhengjie/service/PictureService.java @@ -20,7 +20,7 @@ public interface PictureService { * @param pageable * @return */ - @Cacheable(keyGenerator = "keyGenerator") + @Cacheable Object queryAll(PictureQueryCriteria criteria, Pageable pageable); /** diff --git a/eladmin-tools/src/main/java/me/zhengjie/service/QiNiuService.java b/eladmin-tools/src/main/java/me/zhengjie/service/QiNiuService.java index 4c48ec2c..a161640e 100644 --- a/eladmin-tools/src/main/java/me/zhengjie/service/QiNiuService.java +++ b/eladmin-tools/src/main/java/me/zhengjie/service/QiNiuService.java @@ -24,7 +24,7 @@ public interface QiNiuService { * @param pageable * @return */ - @Cacheable(keyGenerator = "keyGenerator") + @Cacheable Object queryAll(QiniuQueryCriteria criteria, Pageable pageable); /** diff --git a/pom.xml b/pom.xml index 85b798a9..4c6eb547 100644 --- a/pom.xml +++ b/pom.xml @@ -160,6 +160,17 @@ poi 3.17 + + org.apache.poi + poi-ooxml + 3.17 + + + + xerces + xercesImpl + 2.11.0 +