diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/annotation/CrudRequestMapping.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/annotation/CrudRequestMapping.java index a6514529..e744de29 100644 --- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/annotation/CrudRequestMapping.java +++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/annotation/CrudRequestMapping.java @@ -78,6 +78,6 @@ public @interface CrudRequestMapping { /** * 导出 */ - EXPORT,; + EXPORT, } } diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseController.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseController.java index 79c54cd9..281c1108 100644 --- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseController.java +++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseController.java @@ -74,7 +74,7 @@ public abstract class BaseController, V, D, Q, * 分页查询条件 * @return 分页信息 */ - @Operation(summary = "分页查询列表") + @Operation(summary = "分页查询列表", description = "分页查询列表") @ResponseBody @GetMapping public R> page(Q query, @Validated PageQuery pageQuery) { @@ -92,7 +92,7 @@ public abstract class BaseController, V, D, Q, * 排序查询条件 * @return 树列表信息 */ - @Operation(summary = "查询树列表") + @Operation(summary = "查询树列表", description = "查询树列表") @ResponseBody @GetMapping("/tree") public R>> tree(Q query, SortQuery sortQuery) { @@ -110,7 +110,7 @@ public abstract class BaseController, V, D, Q, * 排序查询条件 * @return 列表信息 */ - @Operation(summary = "查询列表") + @Operation(summary = "查询列表", description = "查询列表") @ResponseBody @GetMapping("/list") public R> list(Q query, SortQuery sortQuery) { @@ -126,8 +126,8 @@ public abstract class BaseController, V, D, Q, * ID * @return 详情信息 */ - @Operation(summary = "查看详情") - @Parameter(name = "id", description = "ID", in = ParameterIn.PATH) + @Operation(summary = "查看详情", description = "查看详情") + @Parameter(name = "id", description = "ID", example = "1", in = ParameterIn.PATH) @ResponseBody @GetMapping("/{id}") public R get(@PathVariable Long id) { @@ -143,7 +143,7 @@ public abstract class BaseController, V, D, Q, * 创建信息 * @return 自增 ID */ - @Operation(summary = "新增数据") + @Operation(summary = "新增数据", description = "新增数据") @ResponseBody @PostMapping public R add(@Validated(ValidateGroup.Crud.Add.class) @RequestBody C request) { @@ -161,7 +161,8 @@ public abstract class BaseController, V, D, Q, * ID * @return / */ - @Operation(summary = "修改数据") + @Operation(summary = "修改数据", description = "修改数据") + @Parameter(name = "id", description = "ID", example = "1", in = ParameterIn.PATH) @ResponseBody @PutMapping("/{id}") public R update(@Validated(ValidateGroup.Crud.Update.class) @RequestBody C request, @PathVariable Long id) { @@ -177,8 +178,8 @@ public abstract class BaseController, V, D, Q, * ID 列表 * @return / */ - @Operation(summary = "删除数据") - @Parameter(name = "ids", description = "ID 列表", in = ParameterIn.PATH) + @Operation(summary = "删除数据", description = "删除数据") + @Parameter(name = "ids", description = "ID 列表", example = "1,2", in = ParameterIn.PATH) @ResponseBody @DeleteMapping("/{ids}") public R delete(@PathVariable List ids) { @@ -197,7 +198,7 @@ public abstract class BaseController, V, D, Q, * @param response * 响应对象 */ - @Operation(summary = "导出数据") + @Operation(summary = "导出数据", description = "导出数据") @GetMapping("/export") public void export(Q query, SortQuery sortQuery, HttpServletResponse response) { this.checkPermission(Api.EXPORT); diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseServiceImpl.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseServiceImpl.java index 55047e72..78899b73 100644 --- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseServiceImpl.java +++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseServiceImpl.java @@ -151,7 +151,9 @@ public abstract class BaseServiceImpl, T extends BaseDO, // 设置排序 Sort sort = Opt.ofNullable(sortQuery).orElseGet(SortQuery::new).getSort(); for (Sort.Order order : sort) { - queryWrapper.orderBy(null != order, order.isAscending(), StrUtil.toUnderlineCase(order.getProperty())); + if (null != order) { + queryWrapper.orderBy(true, order.isAscending(), StrUtil.toUnderlineCase(order.getProperty())); + } } List entityList = baseMapper.selectList(queryWrapper); return BeanUtil.copyToList(entityList, targetClass); diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseVO.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseVO.java index 3be5bdf6..7532d374 100644 --- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseVO.java +++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseVO.java @@ -68,6 +68,7 @@ public class BaseVO implements Serializable { /** * 是否禁用修改 */ + @Schema(description = "是否禁用修改", example = "true") @JsonInclude(JsonInclude.Include.NON_NULL) private Boolean disabled; } diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/RedisConfiguration.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/RedisConfiguration.java index ee8a9d07..a975925b 100644 --- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/RedisConfiguration.java +++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/RedisConfiguration.java @@ -68,8 +68,9 @@ public class RedisConfiguration extends CachingConfigurerSupport { */ @Bean public RedisCacheConfiguration redisCacheConfiguration(CacheProperties cacheProperties) { - ObjectMapper objectMapperCopy = - objectMapper.copy().enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); + ObjectMapper objectMapperCopy = objectMapper.copy(); + objectMapperCopy.activateDefaultTyping(objectMapperCopy.getPolymorphicTypeValidator(), + ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig() .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer())) .serializeValuesWith(RedisSerializationContext.SerializationPair diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/easyexcel/ExcelBigNumberConverter.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/easyexcel/ExcelBigNumberConverter.java index eb6b95b3..5d5814cf 100644 --- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/easyexcel/ExcelBigNumberConverter.java +++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/config/easyexcel/ExcelBigNumberConverter.java @@ -16,8 +16,6 @@ package top.charles7c.cnadmin.common.config.easyexcel; -import java.math.BigDecimal; - import com.alibaba.excel.converters.Converter; import com.alibaba.excel.enums.CellDataTypeEnum; import com.alibaba.excel.metadata.GlobalConfiguration; @@ -26,6 +24,7 @@ import com.alibaba.excel.metadata.data.WriteCellData; import com.alibaba.excel.metadata.property.ExcelContentProperty; import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.NumberUtil; /** * Easy Excel 大数值转换器(Excel 中对长度超过 15 位的数值输入是有限制的,从 16 位开始无论录入什么数字均会变为 0,因此输入时只能以文本的形式进行录入) @@ -71,7 +70,7 @@ public class ExcelBigNumberConverter implements Converter { return new WriteCellData<>(str); } } - WriteCellData writeCellData = new WriteCellData<>(BigDecimal.valueOf(value)); + WriteCellData writeCellData = new WriteCellData<>(NumberUtil.toBigDecimal(value)); writeCellData.setType(CellDataTypeEnum.NUMBER); return writeCellData; } diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/GlobalErrorHandler.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/GlobalErrorHandler.java index ab4878d0..a07b8b7c 100644 --- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/GlobalErrorHandler.java +++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/handler/GlobalErrorHandler.java @@ -74,9 +74,9 @@ public class GlobalErrorHandler extends BasicErrorController { response.setContentType(MediaType.APPLICATION_JSON_VALUE); objectMapper.writeValue(response.getWriter(), result); } catch (IOException e) { - log.error("请求地址 [{}],发生 IO 异常。", path, e); + log.error("请求地址 [{}],默认错误处理时发生 IO 异常。", path, e); } - log.error("请求地址 [{}],发生异常,错误信息:{}。", path, JSONUtil.toJsonStr(errorAttributeMap)); + log.error("请求地址 [{}],发生错误,错误信息:{}。", path, JSONUtil.toJsonStr(errorAttributeMap)); return null; } @@ -88,7 +88,7 @@ public class GlobalErrorHandler extends BasicErrorController { HttpStatus status = super.getStatus(request); R result = R.fail(status.value(), (String)errorAttributeMap.get("error")); result.setData(path); - log.error("请求地址 [{}],发生异常,错误信息:{}。", path, JSONUtil.toJsonStr(errorAttributeMap)); + log.error("请求地址 [{}],发生错误,错误信息:{}。", path, JSONUtil.toJsonStr(errorAttributeMap)); return new ResponseEntity<>(BeanUtil.beanToMap(result), status); } } diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/helper/LoginHelper.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/helper/LoginHelper.java index a038d890..1556ad5e 100644 --- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/helper/LoginHelper.java +++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/util/helper/LoginHelper.java @@ -72,7 +72,7 @@ public class LoginHelper { /** * 获取登录用户信息 * - * @return 登录用户信息 + * @return 登录用户信息(获取 TokenSession 时如未登录,会抛出异常) */ public static LoginUser getLoginUser() { LoginUser loginUser = (LoginUser)SaHolder.getStorage().get(CacheConsts.LOGIN_USER_KEY); diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/service/impl/LoginServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/service/impl/LoginServiceImpl.java index 1effbaee..4b46c7ee 100644 --- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/service/impl/LoginServiceImpl.java +++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/auth/service/impl/LoginServiceImpl.java @@ -75,15 +75,12 @@ public class LoginServiceImpl implements LoginService { CheckUtils.throwIfEqual(DisEnableStatusEnum.DISABLE, user.getStatus(), "此账号已被禁用,如有疑问,请联系管理员"); DeptDetailVO deptDetailVO = deptService.get(user.getDeptId()); CheckUtils.throwIfEqual(DisEnableStatusEnum.DISABLE, deptDetailVO.getStatus(), "此账号部门已被禁用,如有疑问,请联系管理员"); - - // 登录 + // 登录并缓存用户信息 LoginUser loginUser = BeanUtil.copyProperties(user, LoginUser.class); loginUser.setPermissions(permissionService.listPermissionByUserId(userId)); loginUser.setRoleCodes(permissionService.listRoleCodeByUserId(userId)); loginUser.setRoles(roleService.listByUserId(userId)); LoginHelper.login(loginUser); - - // 返回令牌 return StpUtil.getTokenValue(); } @@ -93,7 +90,6 @@ public class LoginServiceImpl implements LoginService { if (CollUtil.isEmpty(roleCodeSet)) { return new ArrayList<>(0); } - // 查询菜单列表 Set menuSet = new LinkedHashSet<>(); if (roleCodeSet.contains(SysConsts.ADMIN_ROLE_CODE)) { @@ -103,7 +99,6 @@ public class LoginServiceImpl implements LoginService { } List menuList = menuSet.stream().filter(m -> !MenuTypeEnum.BUTTON.equals(m.getType())).collect(Collectors.toList()); - // 构建路由树 TreeField treeField = MenuVO.class.getDeclaredAnnotation(TreeField.class); TreeNodeConfig treeNodeConfig = TreeUtils.genTreeNodeConfig(treeField); @@ -112,7 +107,6 @@ public class LoginServiceImpl implements LoginService { tree.setParentId(m.getParentId()); tree.setName(m.getTitle()); tree.setWeight(m.getSort()); - tree.putExtra("path", m.getPath()); tree.putExtra("name", m.getName()); tree.putExtra("component", m.getComponent()); diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DeptServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DeptServiceImpl.java index e29cc90b..fec0ac6c 100644 --- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DeptServiceImpl.java +++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DeptServiceImpl.java @@ -68,7 +68,6 @@ public class DeptServiceImpl extends BaseServiceImpl 0, "所选部门存在下级部门,不允许删除"); CheckUtils.throwIf(userService.countByDeptIds(ids) > 0, "所选部门存在用户关联,请解除关联后重试"); - // 删除角色和部门关联 roleDeptService.deleteByDeptIds(ids); // 删除部门 diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/MenuServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/MenuServiceImpl.java index 76aa5a2a..185e15a8 100644 --- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/MenuServiceImpl.java +++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/MenuServiceImpl.java @@ -58,7 +58,6 @@ public class MenuServiceImpl extends BaseServiceImpl 0, "所选角色存在用户关联,请解除关联后重试"); - // 删除角色和菜单关联 roleMenuService.deleteByRoleIds(ids); // 删除角色和部门关联 diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserServiceImpl.java index 7fdac624..876e0ebf 100644 --- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserServiceImpl.java +++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/UserServiceImpl.java @@ -92,7 +92,6 @@ public class UserServiceImpl extends BaseServiceImpl isSystemData = list.stream().filter(u -> DataTypeEnum.SYSTEM.equals(u.getType())).findFirst(); CheckUtils.throwIf(isSystemData::isPresent, "所选用户 [{}] 是系统内置用户,不允许删除", isSystemData.orElseGet(UserDO::new).getNickname()); - // 删除用户和角色关联 userRoleService.deleteByUserIds(ids); // 删除用户 @@ -169,18 +166,15 @@ public class UserServiceImpl extends BaseServiceImpl 0, "邮箱已绑定其他账号,请更换其他邮箱"); CheckUtils.throwIfEqual(newEmail, user.getEmail(), "新邮箱不能与当前邮箱相同"); - // 更新邮箱 baseMapper.lambdaUpdate().set(UserDO::getEmail, newEmail).eq(UserDO::getId, id).update(); } diff --git a/continew-admin-ui/src/router/routes/modules/demo/list.ts b/continew-admin-ui/src/router/routes/modules/demo/list.ts index bb3ad1f6..606ac0fb 100644 --- a/continew-admin-ui/src/router/routes/modules/demo/list.ts +++ b/continew-admin-ui/src/router/routes/modules/demo/list.ts @@ -15,8 +15,7 @@ const LIST: AppRouteRecordRaw = { { name: 'SearchTable', path: 'search-table', // The midline path complies with SEO specifications - component: () => - import('@/views/demo/list/search-table/index.vue'), + component: () => import('@/views/demo/list/search-table/index.vue'), meta: { locale: 'menu.list.searchTable', requiresAuth: true, diff --git a/continew-admin-ui/src/views/dashboard/workplace/components/docs.vue b/continew-admin-ui/src/views/dashboard/workplace/components/docs.vue index 83c32df8..0bd44abd 100644 --- a/continew-admin-ui/src/views/dashboard/workplace/components/docs.vue +++ b/continew-admin-ui/src/views/dashboard/workplace/components/docs.vue @@ -48,15 +48,6 @@ {{ $t('workplace.docs.changelog') }} - - - {{ $t('workplace.docs.authorSite') }}👋 - - + + + {{ $t('workplace.docs.authorSite') }}👋 + + diff --git a/continew-admin-ui/src/views/dashboard/workplace/locale/en-US.ts b/continew-admin-ui/src/views/dashboard/workplace/locale/en-US.ts index 096f322a..7ff9b848 100644 --- a/continew-admin-ui/src/views/dashboard/workplace/locale/en-US.ts +++ b/continew-admin-ui/src/views/dashboard/workplace/locale/en-US.ts @@ -14,8 +14,8 @@ export default { 'workplace.docs.userGuide': 'User Guide', 'workplace.docs.faq': 'FAQ', 'workplace.docs.changelog': 'Change Log', - 'workplace.docs.authorSite': 'Author Site', 'workplace.docs.require': 'Require', + 'workplace.docs.authorSite': 'Author Site', 'workplace.announcement': 'Announcement', 'workplace.recently.visited': 'Recently Visited', 'workplace.record.nodata': 'No data', diff --git a/continew-admin-ui/src/views/dashboard/workplace/locale/zh-CN.ts b/continew-admin-ui/src/views/dashboard/workplace/locale/zh-CN.ts index 596a61a8..d4ba67b3 100644 --- a/continew-admin-ui/src/views/dashboard/workplace/locale/zh-CN.ts +++ b/continew-admin-ui/src/views/dashboard/workplace/locale/zh-CN.ts @@ -14,8 +14,8 @@ export default { 'workplace.docs.userGuide': '使用指南', 'workplace.docs.faq': '常见问题', 'workplace.docs.changelog': '更新日志', - 'workplace.docs.authorSite': '作者主页', 'workplace.docs.require': '需求墙', + 'workplace.docs.authorSite': '作者主页', 'workplace.announcement': '公告', 'workplace.recently.visited': '最近访问', 'workplace.record.nodata': '暂无数据', diff --git a/continew-admin-ui/src/views/demo/visualization/data-analysis/components/popular-author.vue b/continew-admin-ui/src/views/demo/visualization/data-analysis/components/popular-author.vue index 8577777a..006214de 100644 --- a/continew-admin-ui/src/views/demo/visualization/data-analysis/components/popular-author.vue +++ b/continew-admin-ui/src/views/demo/visualization/data-analysis/components/popular-author.vue @@ -50,7 +50,10 @@