diff --git a/cutejava/README.md b/cutejava/README.md index 02ed0d93..1c3718ad 100644 --- a/cutejava/README.md +++ b/cutejava/README.md @@ -13,20 +13,17 @@ https://github.com/odboy-tianjun/cutejava #### 编码规范 - 和数据库表一一对应的类, 以`Tb`结尾 -- 前端请求参数类名, 以`Args`结尾 -- 返回给前端的数据类名, 以`Vo`结尾 +- API请求参数类名, 以`Args`结尾 +- API响应参数类名, 以`Vo`结尾 - 事件驱动类名,以`Event`结尾 - 消息队列/Socket传输类名,以`Message`结尾 -- 原框架以外的所有辅助类的类名, 以`Cs`开头 +- 常用的辅助类的类名, 以`Cs`开头 - 查询分页、查询列表的方法,一律为同一个方法名 - - 查询分页:queryUserListByArgs(args, page) - - 查询列表:queryUserListByArgs(args) - - MapperXml:这样mapper.xml文件中的实现方法只需要写一个queryUserListByArgs -- Mapper层查询方法,统一使用以下命名规则 - - 分页、列表:query{TableName}ListByArgs - - 精确查询:get{TableName}{By FieldName} - - 统计数量:get{具体语义}Count{By FieldName} + - 查询分页:queryUser(args, page) + - 查询列表:queryUser(args) + - MapperXml:这样mapper.xml文件中的实现方法只需要写一个queryUser - 枚举类名,以`Enum`结尾 +- 拒绝过度包装 #### 主要特性 diff --git a/cutejava/cutejava-system/src/main/java/cn/odboy/core/controller/system/SystemDeptController.java b/cutejava/cutejava-system/src/main/java/cn/odboy/core/controller/system/SystemDeptController.java index a37dd3c4..47dc902c 100644 --- a/cutejava/cutejava-system/src/main/java/cn/odboy/core/controller/system/SystemDeptController.java +++ b/cutejava/cutejava-system/src/main/java/cn/odboy/core/controller/system/SystemDeptController.java @@ -5,7 +5,7 @@ import cn.odboy.core.dal.dataobject.system.SystemDeptTb; import cn.odboy.core.dal.model.system.CreateSystemDeptArgs; import cn.odboy.core.dal.model.system.QuerySystemDeptArgs; import cn.odboy.core.service.system.SystemDeptService; -import cn.odboy.util.PageUtil; +import cn.odboy.util.CsPageUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; @@ -33,15 +33,15 @@ public class SystemDeptController { @GetMapping(value = "/download") @PreAuthorize("@el.check('dept:list')") public void exportDept(HttpServletResponse response, QuerySystemDeptArgs criteria) throws Exception { - systemDeptService.downloadDeptExcel(systemDeptService.queryDeptList(criteria, false), response); + systemDeptService.exportDeptExcel(systemDeptService.queryAllDept(criteria, false), response); } @ApiOperation("查询部门") @GetMapping @PreAuthorize("@el.check('user:list','dept:list')") public ResponseEntity>> queryDeptPage(QuerySystemDeptArgs criteria) throws Exception { - List depts = systemDeptService.queryDeptList(criteria, true); - return new ResponseEntity<>(PageUtil.toPage(depts), HttpStatus.OK); + List depts = systemDeptService.queryAllDept(criteria, true); + return new ResponseEntity<>(CsPageUtil.toPage(depts), HttpStatus.OK); } @ApiOperation("查询部门:根据ID获取同级与上级数据") diff --git a/cutejava/cutejava-system/src/main/java/cn/odboy/core/controller/system/SystemDictController.java b/cutejava/cutejava-system/src/main/java/cn/odboy/core/controller/system/SystemDictController.java index 3375fc16..1e0763cc 100644 --- a/cutejava/cutejava-system/src/main/java/cn/odboy/core/controller/system/SystemDictController.java +++ b/cutejava/cutejava-system/src/main/java/cn/odboy/core/controller/system/SystemDictController.java @@ -31,14 +31,14 @@ public class SystemDictController { @GetMapping(value = "/download") @PreAuthorize("@el.check('dict:list')") public void exportDict(HttpServletResponse response, QuerySystemDictArgs criteria) throws IOException { - systemDictService.downloadDictExcel(systemDictService.queryDictList(criteria), response); + systemDictService.exportDictExcel(systemDictService.queryDictByArgs(criteria), response); } @ApiOperation("查询字典") @PostMapping(value = "/queryAllDict") @PreAuthorize("@el.check('dict:list')") public ResponseEntity> queryAllDict() { - return new ResponseEntity<>(systemDictService.queryDictList(new QuerySystemDictArgs()), HttpStatus.OK); + return new ResponseEntity<>(systemDictService.queryDictByArgs(new QuerySystemDictArgs()), HttpStatus.OK); } @ApiOperation("查询字典") @@ -46,7 +46,7 @@ public class SystemDictController { @PreAuthorize("@el.check('dict:list')") public ResponseEntity>> queryDict(QuerySystemDictArgs criteria) { Page page = new Page<>(criteria.getPage(), criteria.getSize()); - return new ResponseEntity<>(systemDictService.queryDictPage(criteria, page), HttpStatus.OK); + return new ResponseEntity<>(systemDictService.queryDictByArgs(criteria, page), HttpStatus.OK); } @ApiOperation("新增字典") diff --git a/cutejava/cutejava-system/src/main/java/cn/odboy/core/controller/system/SystemMenuController.java b/cutejava/cutejava-system/src/main/java/cn/odboy/core/controller/system/SystemMenuController.java index 6782ce81..655e608e 100644 --- a/cutejava/cutejava-system/src/main/java/cn/odboy/core/controller/system/SystemMenuController.java +++ b/cutejava/cutejava-system/src/main/java/cn/odboy/core/controller/system/SystemMenuController.java @@ -8,7 +8,7 @@ import cn.odboy.core.dal.model.system.SystemMenuVo; import cn.odboy.core.framework.permission.core.SecurityHelper; import cn.odboy.core.service.system.SystemMenuService; import cn.odboy.exception.BadRequestException; -import cn.odboy.util.PageUtil; +import cn.odboy.util.CsPageUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; @@ -28,14 +28,13 @@ import java.util.stream.Collectors; @Api(tags = "系统:菜单管理") @RequestMapping("/api/menus") public class SystemMenuController { - private static final String ENTITY_NAME = "menu"; private final SystemMenuService systemMenuService; @ApiOperation("导出菜单数据") @GetMapping(value = "/download") @PreAuthorize("@el.check('menu:list')") public void exportMenu(HttpServletResponse response, QuerySystemMenuArgs criteria) throws Exception { - systemMenuService.downloadMenuExcel(systemMenuService.queryMenuList(criteria, false), response); + systemMenuService.exportMenuExcel(systemMenuService.queryAllMenu(criteria, false), response); } @PostMapping(value = "/buildMenus") @@ -50,7 +49,7 @@ public class SystemMenuController { @PostMapping(value = "/queryMenuListByPid") @PreAuthorize("@el.check('menu:list','roles:list')") public ResponseEntity> queryMenuListByPid(@RequestParam Long pid) { - return new ResponseEntity<>(systemMenuService.queryMenuListByPid(pid), HttpStatus.OK); + return new ResponseEntity<>(systemMenuService.queryMenuByPid(pid), HttpStatus.OK); } @ApiOperation("根据菜单ID返回所有子节点ID,包含自身ID") @@ -58,9 +57,9 @@ public class SystemMenuController { @PreAuthorize("@el.check('menu:list','roles:list')") public ResponseEntity> queryChildMenuSet(@RequestParam Long id) { Set menuSet = new HashSet<>(); - List menuList = systemMenuService.queryMenuListByPid(id); - menuSet.add(systemMenuService.queryMenuById(id)); - menuSet = systemMenuService.queryChildMenuSet(menuList, menuSet); + List menuList = systemMenuService.queryMenuByPid(id); + menuSet.add(systemMenuService.getMenuById(id)); + menuSet = systemMenuService.queryChildMenu(menuList, menuSet); Set ids = menuSet.stream().map(SystemMenuTb::getId).collect(Collectors.toSet()); return new ResponseEntity<>(ids, HttpStatus.OK); } @@ -69,8 +68,8 @@ public class SystemMenuController { @ApiOperation("查询菜单") @PreAuthorize("@el.check('menu:list')") public ResponseEntity>> queryMenu(QuerySystemMenuArgs criteria) throws Exception { - List menuList = systemMenuService.queryMenuList(criteria, true); - return new ResponseEntity<>(PageUtil.toPage(menuList), HttpStatus.OK); + List menuList = systemMenuService.queryAllMenu(criteria, true); + return new ResponseEntity<>(CsPageUtil.toPage(menuList), HttpStatus.OK); } @ApiOperation("查询菜单:根据ID获取同级与上级数据") @@ -80,7 +79,7 @@ public class SystemMenuController { Set menus = new LinkedHashSet<>(); if (CollectionUtil.isNotEmpty(ids)) { for (Long id : ids) { - SystemMenuTb menu = systemMenuService.queryMenuById(id); + SystemMenuTb menu = systemMenuService.getMenuById(id); List menuList = systemMenuService.querySuperiorMenuList(menu, new ArrayList<>()); for (SystemMenuTb data : menuList) { if (data.getId().equals(menu.getPid())) { @@ -93,7 +92,7 @@ public class SystemMenuController { menus = menus.stream().filter(i -> !ids.contains(i.getId())).collect(Collectors.toSet()); return new ResponseEntity<>(systemMenuService.buildMenuTree(new ArrayList<>(menus)), HttpStatus.OK); } - return new ResponseEntity<>(systemMenuService.queryMenuListByPid(null), HttpStatus.OK); + return new ResponseEntity<>(systemMenuService.queryMenuByPid(null), HttpStatus.OK); } @ApiOperation("新增菜单") @@ -101,7 +100,7 @@ public class SystemMenuController { @PreAuthorize("@el.check('menu:add')") public ResponseEntity saveMenu(@Validated @RequestBody SystemMenuTb resources) { if (resources.getId() != null) { - throw new BadRequestException("A new " + ENTITY_NAME + " cannot already have an ID"); + throw new BadRequestException("无效参数id"); } systemMenuService.saveMenu(resources); return new ResponseEntity<>(HttpStatus.CREATED); @@ -121,9 +120,9 @@ public class SystemMenuController { public ResponseEntity removeMenuByIds(@RequestBody Set ids) { Set menuSet = new HashSet<>(); for (Long id : ids) { - List menuList = systemMenuService.queryMenuListByPid(id); - menuSet.add(systemMenuService.queryMenuById(id)); - menuSet = systemMenuService.queryChildMenuSet(menuList, menuSet); + List menuList = systemMenuService.queryMenuByPid(id); + menuSet.add(systemMenuService.getMenuById(id)); + menuSet = systemMenuService.queryChildMenu(menuList, menuSet); } systemMenuService.removeMenuByIds(menuSet); return new ResponseEntity<>(HttpStatus.OK); diff --git a/cutejava/cutejava-system/src/main/java/cn/odboy/core/controller/system/SystemUserController.java b/cutejava/cutejava-system/src/main/java/cn/odboy/core/controller/system/SystemUserController.java index 11b3ff97..11215c29 100644 --- a/cutejava/cutejava-system/src/main/java/cn/odboy/core/controller/system/SystemUserController.java +++ b/cutejava/cutejava-system/src/main/java/cn/odboy/core/controller/system/SystemUserController.java @@ -13,7 +13,7 @@ import cn.odboy.core.framework.permission.core.SecurityHelper; import cn.odboy.core.framework.properties.AppProperties; import cn.odboy.core.service.system.*; import cn.odboy.exception.BadRequestException; -import cn.odboy.util.PageUtil; +import cn.odboy.util.CsPageUtil; import cn.odboy.util.RsaEncryptUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -51,8 +51,8 @@ public class SystemUserController { @ApiOperation("导出用户数据") @GetMapping(value = "/download") @PreAuthorize("@el.check('user:list')") - public void downloadUserExcel(HttpServletResponse response, QuerySystemUserArgs criteria) throws IOException { - systemUserService.downloadUserExcel(systemUserService.queryUserList(criteria), response); + public void exportUserExcel(HttpServletResponse response, QuerySystemUserArgs criteria) throws IOException { + systemUserService.exportUserExcel(systemUserService.queryUserByArgs(criteria), response); } @ApiOperation("查询用户") @@ -63,25 +63,25 @@ public class SystemUserController { if (!ObjectUtils.isEmpty(criteria.getDeptId())) { criteria.getDeptIds().add(criteria.getDeptId()); // 先查找是否存在子节点 - List data = systemDeptService.queryDeptListByPid(criteria.getDeptId()); + List data = systemDeptService.queryDeptByPid(criteria.getDeptId()); // 然后把子节点的ID都加入到集合中 criteria.getDeptIds().addAll(systemDeptService.queryChildDeptIdListByDeptIds(data)); } // 数据权限 - List dataScopes = systemDataService.queryDeptIdListByArgs(systemUserService.queryUserByUsername(SecurityHelper.getCurrentUsername())); + List dataScopes = systemDataService.queryDeptIdListByArgs(systemUserService.getUserByUsername(SecurityHelper.getCurrentUsername())); // criteria.getDeptIds() 不为空并且数据权限不为空则取交集 if (!CollectionUtils.isEmpty(criteria.getDeptIds()) && !CollectionUtils.isEmpty(dataScopes)) { // 取交集 criteria.getDeptIds().retainAll(dataScopes); if (!CollectionUtil.isEmpty(criteria.getDeptIds())) { - return new ResponseEntity<>(systemUserService.queryUserPage(criteria, page), HttpStatus.OK); + return new ResponseEntity<>(systemUserService.queryUserByArgs(criteria, page), HttpStatus.OK); } } else { // 否则取并集 criteria.getDeptIds().addAll(dataScopes); - return new ResponseEntity<>(systemUserService.queryUserPage(criteria, page), HttpStatus.OK); + return new ResponseEntity<>(systemUserService.queryUserByArgs(criteria, page), HttpStatus.OK); } - return new ResponseEntity<>(PageUtil.emptyData(), HttpStatus.OK); + return new ResponseEntity<>(CsPageUtil.emptyData(), HttpStatus.OK); } @ApiOperation("新增用户") @@ -119,10 +119,10 @@ public class SystemUserController { @PreAuthorize("@el.check('user:del')") public ResponseEntity removeUserByIds(@RequestBody Set ids) { for (Long id : ids) { - Integer currentLevel = Collections.min(systemRoleService.queryRoleListByUsersId(SecurityHelper.getCurrentUserId()).stream().map(SystemRoleTb::getLevel).collect(Collectors.toList())); - Integer optLevel = Collections.min(systemRoleService.queryRoleListByUsersId(id).stream().map(SystemRoleTb::getLevel).collect(Collectors.toList())); + Integer currentLevel = Collections.min(systemRoleService.queryRoleByUsersId(SecurityHelper.getCurrentUserId()).stream().map(SystemRoleTb::getLevel).collect(Collectors.toList())); + Integer optLevel = Collections.min(systemRoleService.queryRoleByUsersId(id).stream().map(SystemRoleTb::getLevel).collect(Collectors.toList())); if (currentLevel > optLevel) { - throw new BadRequestException("角色权限不足,不能删除:" + systemUserService.queryUserById(id).getUsername()); + throw new BadRequestException("角色权限不足,不能删除:" + systemUserService.getUserById(id).getUsername()); } } systemUserService.removeUserByIds(ids); @@ -134,7 +134,7 @@ public class SystemUserController { public ResponseEntity modifyUserPasswordByUsername(@RequestBody UpdateSystemUserPasswordArgs passVo) throws Exception { String oldPass = RsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), passVo.getOldPass()); String newPass = RsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), passVo.getNewPass()); - SystemUserTb user = systemUserService.queryUserByUsername(SecurityHelper.getCurrentUsername()); + SystemUserTb user = systemUserService.getUserByUsername(SecurityHelper.getCurrentUsername()); if (!passwordEncoder.matches(oldPass, user.getPassword())) { throw new BadRequestException("修改失败,旧密码错误"); } @@ -163,7 +163,7 @@ public class SystemUserController { @PostMapping(value = "/modifyUserEmailByUsername/{code}") public ResponseEntity modifyUserEmailByUsername(@PathVariable String code, @RequestBody SystemUserTb resources) throws Exception { String password = RsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), resources.getPassword()); - SystemUserTb user = systemUserService.queryUserByUsername(SecurityHelper.getCurrentUsername()); + SystemUserTb user = systemUserService.getUserByUsername(SecurityHelper.getCurrentUsername()); if (!passwordEncoder.matches(password, user.getPassword())) { throw new BadRequestException("密码错误"); } @@ -178,8 +178,8 @@ public class SystemUserController { * @param resources / */ private void checkLevel(SystemUserTb resources) { - Integer currentLevel = Collections.min(systemRoleService.queryRoleListByUsersId(SecurityHelper.getCurrentUserId()).stream().map(SystemRoleTb::getLevel).collect(Collectors.toList())); - Integer optLevel = systemRoleService.queryDeptLevelByRoles(resources.getRoles()); + Integer currentLevel = Collections.min(systemRoleService.queryRoleByUsersId(SecurityHelper.getCurrentUserId()).stream().map(SystemRoleTb::getLevel).collect(Collectors.toList())); + Integer optLevel = systemRoleService.getDeptLevelByRoles(resources.getRoles()); if (currentLevel > optLevel) { throw new BadRequestException("角色权限不足"); } @@ -190,16 +190,17 @@ public class SystemUserController { @PreAuthorize("@el.check('user:list')") public ResponseEntity> queryUserMetadataOptions(@Validated @RequestBody QuerySystemUserArgs criteria) { int maxPageSize = 50; - return new ResponseEntity<>(systemUserService.page(new Page<>(criteria.getPage(), maxPageSize), new LambdaQueryWrapper() - .and(c -> { - c.eq(SystemUserTb::getPhone, criteria.getBlurry()); - c.or(); - c.eq(SystemUserTb::getEmail, criteria.getBlurry()); - c.or(); - c.like(SystemUserTb::getUsername, criteria.getBlurry()); - c.or(); - c.like(SystemUserTb::getNickName, criteria.getBlurry()); - }) + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.and(c -> { + c.eq(SystemUserTb::getPhone, criteria.getBlurry()); + c.or(); + c.eq(SystemUserTb::getEmail, criteria.getBlurry()); + c.or(); + c.like(SystemUserTb::getUsername, criteria.getBlurry()); + c.or(); + c.like(SystemUserTb::getNickName, criteria.getBlurry()); + }); + return new ResponseEntity<>(systemUserService.queryUserByBlurry(wrapper, new Page<>(criteria.getPage(), maxPageSize) ).getRecords().stream().map(m -> { Map ext = new HashMap<>(1); ext.put("id", m.getId()); diff --git a/cutejava/cutejava-system/src/main/java/cn/odboy/core/dal/mysql/system/SystemDictDetailMapper.java b/cutejava/cutejava-system/src/main/java/cn/odboy/core/dal/mysql/system/SystemDictDetailMapper.java index 131f03f0..92a625e7 100644 --- a/cutejava/cutejava-system/src/main/java/cn/odboy/core/dal/mysql/system/SystemDictDetailMapper.java +++ b/cutejava/cutejava-system/src/main/java/cn/odboy/core/dal/mysql/system/SystemDictDetailMapper.java @@ -12,11 +12,16 @@ import java.util.List; import java.util.Set; +/** + * 字典明细 Mapper + * + * @author odboy + */ @Mapper public interface SystemDictDetailMapper extends BaseMapper { - List queryDictDetailListByDictName(@Param("name") String name); + IPage selectDictDetailByArgs(@Param("criteria") QuerySystemDictDetailArgs criteria, Page page); - IPage queryDictDetailListByArgs(@Param("criteria") QuerySystemDictDetailArgs criteria, Page page); + List selectDictDetailByArgs(@Param("criteria") QuerySystemDictDetailArgs criteria); void deleteDictDetailByDictIds(@Param("dictIds") Set dictIds); } diff --git a/cutejava/cutejava-system/src/main/java/cn/odboy/core/dal/mysql/system/SystemDictMapper.java b/cutejava/cutejava-system/src/main/java/cn/odboy/core/dal/mysql/system/SystemDictMapper.java index b95e8162..d0749393 100644 --- a/cutejava/cutejava-system/src/main/java/cn/odboy/core/dal/mysql/system/SystemDictMapper.java +++ b/cutejava/cutejava-system/src/main/java/cn/odboy/core/dal/mysql/system/SystemDictMapper.java @@ -8,7 +8,17 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + + +/** + * 字典 Mapper + * + * @author odboy + */ @Mapper public interface SystemDictMapper extends BaseMapper { - IPage queryDictPageByArgs(@Param("criteria") QuerySystemDictArgs criteria, Page page); + IPage selectDictByArgs(@Param("criteria") QuerySystemDictArgs criteria, Page page); + + List selectDictByArgs(@Param("criteria") QuerySystemDictArgs criteria); } diff --git a/cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/mybatisplus/core/interfaces/CsMpMapper.java b/cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/mybatisplus/core/interfaces/CsMpMapper.java index 9ca9843b..6a4117d0 100644 --- a/cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/mybatisplus/core/interfaces/CsMpMapper.java +++ b/cutejava/cutejava-system/src/main/java/cn/odboy/core/framework/mybatisplus/core/interfaces/CsMpMapper.java @@ -19,7 +19,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ReflectUtil; import cn.odboy.base.CsResultVo; -import cn.odboy.util.PageUtil; +import cn.odboy.util.CsPageUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -163,7 +163,7 @@ public interface CsMpMapper extends BaseMapper { pageSize = pageSize <= 0 ? 10 : pageSize; IPage pageInfo = wrapper.page(new Page<>(pageNumber, pageSize)); if (CollUtil.isEmpty(pageInfo.getRecords())) { - return PageUtil.emptyListData(); + return CsPageUtil.emptyListData(); } return new CsResultVo<>(BeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal()); } diff --git a/cutejava/cutejava-system/src/main/resources/mapper/system/SystemDictDetailMapper.xml b/cutejava/cutejava-system/src/main/resources/mapper/system/SystemDictDetailMapper.xml index a5d5633d..37c59987 100644 --- a/cutejava/cutejava-system/src/main/resources/mapper/system/SystemDictDetailMapper.xml +++ b/cutejava/cutejava-system/src/main/resources/mapper/system/SystemDictDetailMapper.xml @@ -16,18 +16,7 @@ - - select dd.id, dd.label, dd.`value`, dd.`dict_sort`, dd.create_by, dd.update_by, dd.create_time, dd.update_time, d.id as dict_id, d.name @@ -39,7 +28,7 @@ and dd.label = #{criteria.label} - order by dd.dict_sort, dd.dict_id desc + order by dd.dict_sort delete from system_dict_detail diff --git a/cutejava/cutejava-system/src/main/resources/mapper/system/SystemDictMapper.xml b/cutejava/cutejava-system/src/main/resources/mapper/system/SystemDictMapper.xml index bc59096b..3c8026fb 100644 --- a/cutejava/cutejava-system/src/main/resources/mapper/system/SystemDictMapper.xml +++ b/cutejava/cutejava-system/src/main/resources/mapper/system/SystemDictMapper.xml @@ -1,7 +1,7 @@ - SELECT * from system_dict d diff --git a/cutejava/cutejava-system/src/main/resources/template/system/email.ftl b/cutejava/cutejava-system/src/main/resources/template/system/email.ftl new file mode 100644 index 00000000..224d371f --- /dev/null +++ b/cutejava/cutejava-system/src/main/resources/template/system/email.ftl @@ -0,0 +1,50 @@ + + + + + + + +
+
+

尊敬的用户,您好:

+

您正在申请邮箱验证,您的验证码为:

+

${code}

+
+
+
+ Copyright ©${.now?string("yyyy")} CuteJava + 后台管理系统 All Rights Reserved. +
+ +
+
+ + diff --git a/cutejava/cutejava-system/src/main/resources/template/system/taskAlarm.ftl b/cutejava/cutejava-system/src/main/resources/template/system/taskAlarm.ftl new file mode 100644 index 00000000..2a83165c --- /dev/null +++ b/cutejava/cutejava-system/src/main/resources/template/system/taskAlarm.ftl @@ -0,0 +1,71 @@ + + + + + + + +
+
+

任务信息:

+ + + + + + + + + + + + + + + + + +
任务名称Bean名称执行方法参数内容Cron表达式描述内容
${task.jobName}${task.beanName}${task.methodName}${(task.params)!""}${task.cronExpression}${(task.description)!""}
+
+
+

异常信息:

+
+                ${msg}
+            
+
+
+
+
+ Copyright ©${.now?string("yyyy")} CuteJava + 后台管理系统 All Rights Reserved. +
+ +
+ + +