feat: v4.5.0 包结构迁移、MyBatis-Plus 自动填充、Jackson 3.x 适配
- common.annotation -> framework.annotation(DataPermission/Log/RateLimit/RepeatSubmit/ValidField) - common.base.BaseEntity -> framework.base.BaseEntity(含 createTime/updateTime 自动填充注解) - BaseQuery/IBaseEnum 保留在 common.base(无框架依赖) - AutoFillMetaObjectHandler 实现 createTime/updateTime/createBy/updateBy 自动填充 - 实体类(Dept/Role/Config/DictItem/Notice/SysUser)添加 createBy/updateBy @TableField(fill=...) - Jackson 注解使用 com.fasterxml.jackson.annotation(2.x 兼容层),databind/core 使用 tools.jackson(3.x) - 代码生成模板 entity.java.vm/form.java.vm 包路径同步更新 - 删除冗余 UserService default 方法、DataPermissionException、DictChangeEvent event 包 - 版本号 4.4.0 -> 4.5.0
This commit is contained in:
8
pom.xml
8
pom.xml
@@ -6,7 +6,7 @@
|
||||
|
||||
<groupId>com.youlai</groupId>
|
||||
<artifactId>youlai-boot</artifactId>
|
||||
<version>4.4.0</version>
|
||||
<version>4.5.0</version>
|
||||
<description>基于 Java 17 + SpringBoot 4 + Spring Security 构建的权限管理系统。</description>
|
||||
|
||||
<parent>
|
||||
@@ -39,7 +39,7 @@
|
||||
|
||||
<!-- 对象存储 -->
|
||||
<minio.version>8.5.10</minio.version>
|
||||
<okhttp3.version>4.8.1</okhttp3.version>
|
||||
<okhttp3.version>4.12.0</okhttp3.version>
|
||||
|
||||
<aliyun-sdk-oss.version>3.16.3</aliyun-sdk-oss.version>
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
<redisson.version>4.1.0</redisson.version>
|
||||
|
||||
<!-- 自动代码生成 -->
|
||||
<mybatis-plus-generator.version>3.5.6</mybatis-plus-generator.version>
|
||||
<mybatis-plus-generator.version>3.5.15</mybatis-plus-generator.version>
|
||||
<velocity.version>2.3</velocity.version>
|
||||
|
||||
<!-- IP 地区转换 -->
|
||||
@@ -57,7 +57,7 @@
|
||||
<aliyun-sdk-core.version>4.7.6</aliyun-sdk-core.version>
|
||||
<aliyun-sdk-dysmsapi.version>2.2.1</aliyun-sdk-dysmsapi.version>
|
||||
|
||||
<caffeine.version>2.9.3</caffeine.version>
|
||||
<caffeine.version>3.2.0</caffeine.version>
|
||||
|
||||
<!-- 阿里 TransmittableThreadLocal (支持异步场景的ThreadLocal传递) -->
|
||||
<transmittable-thread-local.version>2.14.5</transmittable-thread-local.version>
|
||||
|
||||
@@ -5,8 +5,8 @@ import com.youlai.boot.common.enums.ActionTypeEnum;
|
||||
import com.youlai.boot.common.enums.LogModuleEnum;
|
||||
import com.youlai.boot.common.result.Result;
|
||||
import com.youlai.boot.auth.service.AuthService;
|
||||
import com.youlai.boot.common.annotation.Log;
|
||||
import com.youlai.boot.common.annotation.RateLimit;
|
||||
import com.youlai.boot.framework.annotation.Log;
|
||||
import com.youlai.boot.framework.annotation.RateLimit;
|
||||
import com.youlai.boot.framework.captcha.model.CaptchaInfo;
|
||||
import com.youlai.boot.framework.security.model.AuthenticationToken;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
@@ -4,8 +4,8 @@ import com.youlai.boot.auth.model.form.WxMaBindMobileForm;
|
||||
import com.youlai.boot.auth.model.form.WxMaPhoneLoginForm;
|
||||
import com.youlai.boot.auth.model.vo.WxMaLoginVO;
|
||||
import com.youlai.boot.auth.service.WxMaAuthService;
|
||||
import com.youlai.boot.common.annotation.Log;
|
||||
import com.youlai.boot.common.annotation.RateLimit;
|
||||
import com.youlai.boot.framework.annotation.Log;
|
||||
import com.youlai.boot.framework.annotation.RateLimit;
|
||||
import com.youlai.boot.common.enums.ActionTypeEnum;
|
||||
import com.youlai.boot.common.enums.LogModuleEnum;
|
||||
import com.youlai.boot.common.result.Result;
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.youlai.boot.auth.qrcode.model.form.QrCodeTicketForm;
|
||||
import com.youlai.boot.auth.qrcode.model.vo.QrCodeGenerateVO;
|
||||
import com.youlai.boot.auth.qrcode.model.vo.QrCodeStatusVO;
|
||||
import com.youlai.boot.auth.qrcode.service.QrCodeLoginService;
|
||||
import com.youlai.boot.common.annotation.RateLimit;
|
||||
import com.youlai.boot.framework.annotation.RateLimit;
|
||||
import com.youlai.boot.common.result.Result;
|
||||
import com.youlai.boot.framework.security.model.AuthenticationToken;
|
||||
import com.youlai.boot.framework.security.util.SecurityUtils;
|
||||
|
||||
@@ -11,7 +11,7 @@ import com.youlai.boot.codegen.model.form.GenConfigForm;
|
||||
import com.youlai.boot.codegen.model.query.TableQuery;
|
||||
import com.youlai.boot.codegen.model.vo.CodegenPreviewVO;
|
||||
import com.youlai.boot.codegen.model.vo.TablePageVO;
|
||||
import com.youlai.boot.common.annotation.Log;
|
||||
import com.youlai.boot.framework.annotation.Log;
|
||||
import com.youlai.boot.codegen.service.GenTableService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.youlai.boot.codegen.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
|
||||
import com.youlai.boot.common.base.BaseEntity;
|
||||
import com.youlai.boot.framework.base.BaseEntity;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.youlai.boot.common.base.BaseEntity;
|
||||
import com.youlai.boot.framework.base.BaseEntity;
|
||||
import com.youlai.boot.codegen.enums.FormTypeEnum;
|
||||
import com.youlai.boot.codegen.enums.QueryTypeEnum;
|
||||
import lombok.Getter;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.youlai.boot.common.base;
|
||||
|
||||
import com.youlai.boot.common.annotation.ValidField;
|
||||
import com.youlai.boot.framework.annotation.ValidField;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.youlai.boot.common.validator;
|
||||
|
||||
import com.youlai.boot.common.annotation.ValidField;
|
||||
import com.youlai.boot.framework.annotation.ValidField;
|
||||
import jakarta.validation.ConstraintValidator;
|
||||
import jakarta.validation.ConstraintValidatorContext;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.common.annotation;
|
||||
package com.youlai.boot.framework.annotation;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
||||
@@ -25,4 +25,3 @@ public @interface DataPermission {
|
||||
String userIdColumnName() default "create_by";
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.common.annotation;
|
||||
package com.youlai.boot.framework.annotation;
|
||||
|
||||
import com.youlai.boot.common.enums.ActionTypeEnum;
|
||||
import com.youlai.boot.common.enums.LogModuleEnum;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.common.annotation;
|
||||
package com.youlai.boot.framework.annotation;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.common.annotation;
|
||||
package com.youlai.boot.framework.annotation;
|
||||
|
||||
|
||||
import java.lang.annotation.*;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.common.annotation;
|
||||
package com.youlai.boot.framework.annotation;
|
||||
|
||||
import com.youlai.boot.common.validator.FieldValidator;
|
||||
import jakarta.validation.Constraint;
|
||||
@@ -1,12 +1,11 @@
|
||||
package com.youlai.boot.common.base;
|
||||
package com.youlai.boot.framework.base;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import lombok.Data;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
@@ -15,7 +14,8 @@ import java.time.LocalDateTime;
|
||||
/**
|
||||
* 基础实体类
|
||||
*
|
||||
* <p>实体类的基类,包含了实体类的公共属性,如创建时间、更新时间、逻辑删除标识等</p>
|
||||
* <p>包含主键和创建/更新时间,适用于所有实体(含关联表)</p>
|
||||
* <p>审计字段(createBy/updateBy)和逻辑删除字段(isDeleted)由需要的实体自行声明</p>
|
||||
*
|
||||
* @author Ray.Hao
|
||||
* @since 4.3.1
|
||||
@@ -37,7 +37,6 @@ public class BaseEntity implements Serializable {
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
@JsonInclude(value = JsonInclude.Include.NON_NULL)
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
@@ -45,7 +44,6 @@ public class BaseEntity implements Serializable {
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
@JsonInclude(value = JsonInclude.Include.NON_NULL)
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.youlai.boot.framework.mybatis.handler;
|
||||
|
||||
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
|
||||
import com.youlai.boot.framework.security.util.SecurityUtils;
|
||||
import org.apache.ibatis.reflection.MetaObject;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@@ -9,6 +10,9 @@ import java.time.LocalDateTime;
|
||||
/**
|
||||
* MyBatis-Plus 字段自动填充
|
||||
*
|
||||
* <p>自动填充 createTime/updateTime(时间戳)和 createBy/updateBy(操作人ID)</p>
|
||||
* <p>实体字段需标注 {@code @TableField(fill = FieldFill.INSERT)} 或 {@code FieldFill.INSERT_UPDATE} 才会触发</p>
|
||||
*
|
||||
* @author Ray.Hao
|
||||
* @since 3.0.0
|
||||
*/
|
||||
@@ -18,11 +22,14 @@ public class AutoFillMetaObjectHandler implements MetaObjectHandler {
|
||||
@Override
|
||||
public void insertFill(MetaObject metaObject) {
|
||||
this.strictInsertFill(metaObject, "createTime", LocalDateTime::now, LocalDateTime.class);
|
||||
this.strictInsertFill(metaObject, "createBy", SecurityUtils::getUserId, Long.class);
|
||||
this.strictUpdateFill(metaObject, "updateTime", LocalDateTime::now, LocalDateTime.class);
|
||||
this.strictUpdateFill(metaObject, "updateBy", SecurityUtils::getUserId, Long.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateFill(MetaObject metaObject) {
|
||||
this.strictUpdateFill(metaObject, "updateTime", LocalDateTime::now, LocalDateTime.class);
|
||||
this.strictUpdateFill(metaObject, "updateBy", SecurityUtils::getUserId, Long.class);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringPool;
|
||||
import com.baomidou.mybatisplus.extension.plugins.handler.DataPermissionHandler;
|
||||
import com.youlai.boot.common.annotation.DataPermission;
|
||||
import com.youlai.boot.framework.annotation.DataPermission;
|
||||
import com.youlai.boot.common.enums.DataScopeEnum;
|
||||
import com.youlai.boot.framework.security.model.RoleDataScope;
|
||||
import com.youlai.boot.framework.security.model.SecurityUserDetails;
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.youlai.boot.framework.web.aspect;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.useragent.UserAgent;
|
||||
import cn.hutool.http.useragent.UserAgentUtil;
|
||||
import com.youlai.boot.common.annotation.Log;
|
||||
import com.youlai.boot.framework.annotation.Log;
|
||||
import com.youlai.boot.common.enums.ActionTypeEnum;
|
||||
import com.youlai.boot.common.enums.LogModuleEnum;
|
||||
import com.youlai.boot.common.util.IPUtils;
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.youlai.boot.framework.web.aspect;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.crypto.digest.DigestUtil;
|
||||
import com.youlai.boot.common.annotation.RateLimit;
|
||||
import com.youlai.boot.framework.annotation.RateLimit;
|
||||
import com.youlai.boot.common.constant.RedisConstants;
|
||||
import com.youlai.boot.common.constant.SecurityConstants;
|
||||
import com.youlai.boot.common.result.ResultCode;
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.youlai.boot.common.constant.RedisConstants;
|
||||
import com.youlai.boot.common.constant.SecurityConstants;
|
||||
import com.youlai.boot.common.result.ResultCode;
|
||||
import com.youlai.boot.common.exception.BusinessException;
|
||||
import com.youlai.boot.common.annotation.RepeatSubmit;
|
||||
import com.youlai.boot.framework.annotation.RepeatSubmit;
|
||||
import com.youlai.boot.common.util.IPUtils;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.youlai.boot.common.enums.ActionTypeEnum;
|
||||
import com.youlai.boot.common.enums.LogModuleEnum;
|
||||
import com.youlai.boot.common.result.PageResult;
|
||||
import com.youlai.boot.common.result.Result;
|
||||
import com.youlai.boot.common.annotation.Log;
|
||||
import com.youlai.boot.framework.annotation.Log;
|
||||
import com.youlai.boot.system.model.form.ConfigForm;
|
||||
import com.youlai.boot.system.model.query.ConfigQuery;
|
||||
import com.youlai.boot.system.model.vo.ConfigVO;
|
||||
@@ -53,11 +53,11 @@ public class ConfigController {
|
||||
}
|
||||
|
||||
@Operation(summary = "获取系统配置表单数据")
|
||||
@GetMapping("/{id}/form")
|
||||
@GetMapping("/{configId}/form")
|
||||
public Result<ConfigForm> getConfigForm(
|
||||
@Parameter(description = "系统配置ID") @PathVariable Long id
|
||||
@Parameter(description = "系统配置ID") @PathVariable Long configId
|
||||
) {
|
||||
ConfigForm formData = configService.getConfigFormData(id);
|
||||
ConfigForm formData = configService.getConfigFormData(configId);
|
||||
return Result.success(formData);
|
||||
}
|
||||
|
||||
@@ -70,19 +70,19 @@ public class ConfigController {
|
||||
}
|
||||
|
||||
@Operation(summary = "修改系统配置")
|
||||
@PutMapping(value = "/{id}")
|
||||
@PutMapping(value = "/{configId}")
|
||||
@PreAuthorize("@ss.hasPerm('sys:config:update')")
|
||||
@Log(module = LogModuleEnum.CONFIG, value = ActionTypeEnum.UPDATE)
|
||||
public Result<?> update(@Valid @PathVariable Long id, @RequestBody ConfigForm configForm) {
|
||||
return Result.judge(configService.edit(id, configForm));
|
||||
public Result<?> update(@Valid @PathVariable Long configId, @RequestBody ConfigForm configForm) {
|
||||
return Result.judge(configService.edit(configId, configForm));
|
||||
}
|
||||
|
||||
@Operation(summary = "删除系统配置")
|
||||
@DeleteMapping("/{id}")
|
||||
@DeleteMapping("/{configId}")
|
||||
@PreAuthorize("@ss.hasPerm('sys:config:delete')")
|
||||
@Log(module = LogModuleEnum.CONFIG, value = ActionTypeEnum.DELETE)
|
||||
public Result<?> delete(@PathVariable Long id) {
|
||||
return Result.judge(configService.delete(id));
|
||||
public Result<?> delete(@PathVariable Long configId) {
|
||||
return Result.judge(configService.delete(configId));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,13 +2,13 @@ package com.youlai.boot.system.controller;
|
||||
|
||||
import com.youlai.boot.common.enums.ActionTypeEnum;
|
||||
import com.youlai.boot.common.enums.LogModuleEnum;
|
||||
import com.youlai.boot.common.annotation.RepeatSubmit;
|
||||
import com.youlai.boot.framework.annotation.RepeatSubmit;
|
||||
import com.youlai.boot.common.model.Option;
|
||||
import com.youlai.boot.common.result.Result;
|
||||
import com.youlai.boot.system.model.form.DeptForm;
|
||||
import com.youlai.boot.system.model.query.DeptQuery;
|
||||
import com.youlai.boot.system.model.vo.DeptVO;
|
||||
import com.youlai.boot.common.annotation.Log;
|
||||
import com.youlai.boot.framework.annotation.Log;
|
||||
import com.youlai.boot.system.service.DeptService;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
|
||||
@@ -12,9 +12,9 @@ import com.youlai.boot.system.model.query.DictQuery;
|
||||
import com.youlai.boot.system.model.vo.DictItemOptionVO;
|
||||
import com.youlai.boot.system.model.vo.DictItemPageVO;
|
||||
import com.youlai.boot.system.model.vo.DictPageVO;
|
||||
import com.youlai.boot.common.annotation.RepeatSubmit;
|
||||
import com.youlai.boot.framework.annotation.RepeatSubmit;
|
||||
import com.youlai.boot.system.model.form.DictForm;
|
||||
import com.youlai.boot.common.annotation.Log;
|
||||
import com.youlai.boot.framework.annotation.Log;
|
||||
import com.youlai.boot.system.service.DictItemService;
|
||||
import com.youlai.boot.system.service.DictService;
|
||||
import com.youlai.boot.message.service.SseService;
|
||||
@@ -67,11 +67,11 @@ public class DictController {
|
||||
}
|
||||
|
||||
@Operation(summary = "获取字典表单数据")
|
||||
@GetMapping("/{id}/form")
|
||||
@GetMapping("/{dictId}/form")
|
||||
public Result<DictForm> getDictForm(
|
||||
@Parameter(description = "字典ID") @PathVariable Long id
|
||||
@Parameter(description = "字典ID") @PathVariable Long dictId
|
||||
) {
|
||||
DictForm formData = dictService.getDictForm(id);
|
||||
DictForm formData = dictService.getDictForm(dictId);
|
||||
return Result.success(formData);
|
||||
}
|
||||
|
||||
@@ -90,14 +90,14 @@ public class DictController {
|
||||
}
|
||||
|
||||
@Operation(summary = "修改字典")
|
||||
@PutMapping("/{id}")
|
||||
@PutMapping("/{dictId}")
|
||||
@PreAuthorize("@ss.hasPerm('sys:dict:update')")
|
||||
@Log(module = LogModuleEnum.DICT, value = ActionTypeEnum.UPDATE)
|
||||
public Result<?> updateDict(
|
||||
@PathVariable Long id,
|
||||
@PathVariable Long dictId,
|
||||
@RequestBody DictForm dictForm
|
||||
) {
|
||||
boolean status = dictService.updateDict(id, dictForm);
|
||||
boolean status = dictService.updateDict(dictId, dictForm);
|
||||
// 发送字典更新通知
|
||||
if (status && dictForm.getDictCode() != null) {
|
||||
sseService.sendDictChange(dictForm.getDictCode());
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.boot.system.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.youlai.boot.common.annotation.Log;
|
||||
import com.youlai.boot.framework.annotation.Log;
|
||||
import com.youlai.boot.common.enums.ActionTypeEnum;
|
||||
import com.youlai.boot.common.enums.LogModuleEnum;
|
||||
import com.youlai.boot.common.result.PageResult;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.boot.system.controller;
|
||||
|
||||
import com.youlai.boot.common.annotation.Log;
|
||||
import com.youlai.boot.common.annotation.RepeatSubmit;
|
||||
import com.youlai.boot.framework.annotation.Log;
|
||||
import com.youlai.boot.framework.annotation.RepeatSubmit;
|
||||
import com.youlai.boot.common.enums.ActionTypeEnum;
|
||||
import com.youlai.boot.common.enums.LogModuleEnum;
|
||||
import com.youlai.boot.common.model.Option;
|
||||
@@ -62,12 +62,12 @@ public class MenuController {
|
||||
}
|
||||
|
||||
@Operation(summary = "菜单表单数据")
|
||||
@GetMapping("/{id}/form")
|
||||
@GetMapping("/{menuId}/form")
|
||||
@PreAuthorize("@ss.hasPerm('sys:menu:update')")
|
||||
public Result<MenuForm> getMenuForm(
|
||||
@Parameter(description = "菜单ID") @PathVariable Long id
|
||||
@Parameter(description = "菜单ID") @PathVariable Long menuId
|
||||
) {
|
||||
MenuForm menu = menuService.getMenuForm(id);
|
||||
MenuForm menu = menuService.getMenuForm(menuId);
|
||||
return Result.success(menu);
|
||||
}
|
||||
|
||||
@@ -82,10 +82,11 @@ public class MenuController {
|
||||
}
|
||||
|
||||
@Operation(summary = "修改菜单")
|
||||
@PutMapping(value = "/{id}")
|
||||
@PutMapping(value = "/{menuId}")
|
||||
@PreAuthorize("@ss.hasPerm('sys:menu:update')")
|
||||
@Log(module = LogModuleEnum.MENU, value = ActionTypeEnum.UPDATE)
|
||||
public Result<?> updateMenu(
|
||||
@Parameter(description = "菜单ID") @PathVariable Long menuId,
|
||||
@RequestBody MenuForm menuForm
|
||||
) {
|
||||
boolean result = menuService.saveMenu(menuForm);
|
||||
@@ -93,13 +94,13 @@ public class MenuController {
|
||||
}
|
||||
|
||||
@Operation(summary = "删除菜单")
|
||||
@DeleteMapping("/{id}")
|
||||
@DeleteMapping("/{menuId}")
|
||||
@PreAuthorize("@ss.hasPerm('sys:menu:delete')")
|
||||
@Log(module = LogModuleEnum.MENU, value = ActionTypeEnum.DELETE)
|
||||
public Result<?> deleteMenu(
|
||||
@Parameter(description = "菜单ID,多个以英文(,)分割") @PathVariable("id") Long id
|
||||
@Parameter(description = "菜单ID,多个以英文(,)分割") @PathVariable Long menuId
|
||||
) {
|
||||
boolean result = menuService.deleteMenu(id);
|
||||
boolean result = menuService.deleteMenu(menuId);
|
||||
return Result.judge(result);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.boot.system.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.youlai.boot.common.annotation.Log;
|
||||
import com.youlai.boot.framework.annotation.Log;
|
||||
import com.youlai.boot.common.enums.ActionTypeEnum;
|
||||
import com.youlai.boot.common.enums.LogModuleEnum;
|
||||
import com.youlai.boot.common.result.PageResult;
|
||||
@@ -57,55 +57,55 @@ public class NoticeController {
|
||||
}
|
||||
|
||||
@Operation(summary = "获取通知公告表单数据")
|
||||
@GetMapping("/{id}/form")
|
||||
@GetMapping("/{noticeId}/form")
|
||||
@PreAuthorize("@ss.hasPerm('sys:notice:update')")
|
||||
public Result<NoticeForm> getNoticeForm(
|
||||
@Parameter(description = "通知公告ID") @PathVariable Long id
|
||||
@Parameter(description = "通知公告ID") @PathVariable Long noticeId
|
||||
) {
|
||||
NoticeForm formData = noticeService.getNoticeFormData(id);
|
||||
NoticeForm formData = noticeService.getNoticeFormData(noticeId);
|
||||
return Result.success(formData);
|
||||
}
|
||||
|
||||
@Operation(summary = "阅读获取通知公告详情")
|
||||
@GetMapping("/{id}/detail")
|
||||
@GetMapping("/{noticeId}/detail")
|
||||
public Result<NoticeDetailVO> getNoticeDetail(
|
||||
@Parameter(description = "通知公告ID") @PathVariable Long id
|
||||
@Parameter(description = "通知公告ID") @PathVariable Long noticeId
|
||||
) {
|
||||
NoticeDetailVO detailVo = noticeService.getNoticeDetail(id);
|
||||
NoticeDetailVO detailVo = noticeService.getNoticeDetail(noticeId);
|
||||
return Result.success(detailVo);
|
||||
}
|
||||
|
||||
@Operation(summary = "修改通知公告")
|
||||
@PutMapping(value = "/{id}")
|
||||
@PutMapping(value = "/{noticeId}")
|
||||
@PreAuthorize("@ss.hasPerm('sys:notice:update')")
|
||||
@Log(module = LogModuleEnum.NOTICE, value = ActionTypeEnum.UPDATE)
|
||||
public Result<Void> updateNotice(
|
||||
@Parameter(description = "通知公告ID") @PathVariable Long id,
|
||||
@Parameter(description = "通知公告ID") @PathVariable Long noticeId,
|
||||
@RequestBody @Validated NoticeForm formData
|
||||
) {
|
||||
boolean result = noticeService.updateNotice(id, formData);
|
||||
boolean result = noticeService.updateNotice(noticeId, formData);
|
||||
return Result.judge(result);
|
||||
}
|
||||
|
||||
@Operation(summary = "发布通知公告")
|
||||
@PutMapping("/{id}/publish")
|
||||
@PutMapping("/{noticeId}/publish")
|
||||
@PreAuthorize("@ss.hasPerm('sys:notice:publish')")
|
||||
@Log(module = LogModuleEnum.NOTICE, value = ActionTypeEnum.UPDATE)
|
||||
public Result<Void> publishNotice(
|
||||
@Parameter(description = "通知公告ID") @PathVariable Long id
|
||||
@Parameter(description = "通知公告ID") @PathVariable Long noticeId
|
||||
) {
|
||||
boolean result = noticeService.publishNotice(id);
|
||||
boolean result = noticeService.publishNotice(noticeId);
|
||||
return Result.judge(result);
|
||||
}
|
||||
|
||||
@Operation(summary = "撤回通知公告")
|
||||
@PutMapping("/{id}/revoke")
|
||||
@PutMapping("/{noticeId}/revoke")
|
||||
@PreAuthorize("@ss.hasPerm('sys:notice:revoke')")
|
||||
@Log(module = LogModuleEnum.NOTICE, value = ActionTypeEnum.UPDATE)
|
||||
public Result<Void> revokeNotice(
|
||||
@Parameter(description = "通知公告ID") @PathVariable Long id
|
||||
@Parameter(description = "通知公告ID") @PathVariable Long noticeId
|
||||
) {
|
||||
boolean result = noticeService.revokeNotice(id);
|
||||
boolean result = noticeService.revokeNotice(noticeId);
|
||||
return Result.judge(result);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,14 +3,14 @@ package com.youlai.boot.system.controller;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.youlai.boot.common.enums.ActionTypeEnum;
|
||||
import com.youlai.boot.common.enums.LogModuleEnum;
|
||||
import com.youlai.boot.common.annotation.RepeatSubmit;
|
||||
import com.youlai.boot.framework.annotation.RepeatSubmit;
|
||||
import com.youlai.boot.common.model.Option;
|
||||
import com.youlai.boot.common.result.PageResult;
|
||||
import com.youlai.boot.common.result.Result;
|
||||
import com.youlai.boot.system.model.form.RoleForm;
|
||||
import com.youlai.boot.system.model.query.RoleQuery;
|
||||
import com.youlai.boot.system.model.vo.RolePageVO;
|
||||
import com.youlai.boot.common.annotation.Log;
|
||||
import com.youlai.boot.framework.annotation.Log;
|
||||
import com.youlai.boot.system.service.RoleService;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@@ -75,10 +75,12 @@ public class RoleController {
|
||||
}
|
||||
|
||||
@Operation(summary = "修改角色")
|
||||
@PutMapping(value = "/{id}")
|
||||
@PutMapping(value = "/{roleId}")
|
||||
@PreAuthorize("@ss.hasPerm('sys:role:update')")
|
||||
@Log(module = LogModuleEnum.ROLE, value = ActionTypeEnum.UPDATE)
|
||||
public Result<?> updateRole(@Valid @RequestBody RoleForm roleForm) {
|
||||
public Result<?> updateRole(
|
||||
@Parameter(description = "角色ID") @PathVariable Long roleId,
|
||||
@Valid @RequestBody RoleForm roleForm) {
|
||||
boolean result = roleService.saveRole(roleForm);
|
||||
return Result.judge(result);
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@ package com.youlai.boot.system.controller;
|
||||
|
||||
import cn.idev.excel.EasyExcel;
|
||||
import cn.idev.excel.ExcelWriter;
|
||||
import com.youlai.boot.common.annotation.Log;
|
||||
import com.youlai.boot.common.annotation.RepeatSubmit;
|
||||
import com.youlai.boot.framework.annotation.Log;
|
||||
import com.youlai.boot.framework.annotation.RepeatSubmit;
|
||||
import com.youlai.boot.common.enums.ActionTypeEnum;
|
||||
import com.youlai.boot.common.enums.LogModuleEnum;
|
||||
import com.youlai.boot.common.enums.StatusEnum;
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.youlai.boot.system.mapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.youlai.boot.common.annotation.DataPermission;
|
||||
import com.youlai.boot.framework.annotation.DataPermission;
|
||||
import com.youlai.boot.system.model.entity.Dept;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.youlai.boot.system.model.entity.SysUser;
|
||||
import com.youlai.boot.system.model.query.UserQuery;
|
||||
import com.youlai.boot.system.model.form.UserForm;
|
||||
import com.youlai.boot.common.annotation.DataPermission;
|
||||
import com.youlai.boot.framework.annotation.DataPermission;
|
||||
import com.youlai.boot.framework.security.model.SecurityUser;
|
||||
import com.youlai.boot.system.model.vo.UserExportVO;
|
||||
import com.youlai.boot.system.model.vo.UserPageVO;
|
||||
@@ -50,10 +50,6 @@ public interface UserMapper extends BaseMapper<SysUser> {
|
||||
*/
|
||||
SecurityUser getAuthInfoByUsername(String username);
|
||||
|
||||
default SecurityUser getAuthCredentialsByUsername(String username) {
|
||||
return getAuthInfoByUsername(username);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据手机号获取用户认证信息
|
||||
*
|
||||
@@ -62,10 +58,6 @@ public interface UserMapper extends BaseMapper<SysUser> {
|
||||
*/
|
||||
SecurityUser getAuthInfoByMobile(String mobile);
|
||||
|
||||
default SecurityUser getAuthCredentialsByMobile(String mobile) {
|
||||
return getAuthInfoByMobile(mobile);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取导出用户列表
|
||||
*
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.boot.system.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.youlai.boot.common.base.BaseEntity;
|
||||
import com.youlai.boot.framework.base.BaseEntity;
|
||||
import lombok.Data;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -42,11 +42,13 @@ public class Config extends BaseEntity {
|
||||
/**
|
||||
* 创建人ID
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 更新人ID
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private Long updateBy;
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.youlai.boot.system.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.youlai.boot.common.base.BaseEntity;
|
||||
import com.youlai.boot.framework.base.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@@ -51,11 +51,13 @@ public class Dept extends BaseEntity {
|
||||
/**
|
||||
* 创建人 ID
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 更新人 ID
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private Long updateBy;
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.boot.system.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.youlai.boot.common.base.BaseEntity;
|
||||
import com.youlai.boot.framework.base.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.boot.system.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.youlai.boot.common.base.BaseEntity;
|
||||
import com.youlai.boot.framework.base.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@@ -56,10 +56,12 @@ public class DictItem extends BaseEntity {
|
||||
/**
|
||||
* 创建人 ID
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 更新人 ID
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private Long updateBy;
|
||||
}
|
||||
@@ -2,7 +2,7 @@ package com.youlai.boot.system.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||||
import com.youlai.boot.common.base.BaseEntity;
|
||||
import com.youlai.boot.framework.base.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
package com.youlai.boot.system.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.youlai.boot.common.base.BaseEntity;
|
||||
import com.youlai.boot.framework.base.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@@ -75,11 +74,13 @@ public class Notice extends BaseEntity {
|
||||
/**
|
||||
* 创建人ID
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 更新人ID
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private Long updateBy;
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.youlai.boot.system.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.youlai.boot.common.base.BaseEntity;
|
||||
import com.youlai.boot.framework.base.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@@ -46,11 +46,13 @@ public class Role extends BaseEntity {
|
||||
/**
|
||||
* 创建人 ID
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 更新人 ID
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private Long updateBy;
|
||||
|
||||
/**
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.youlai.boot.system.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.boot.system.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.youlai.boot.common.base.BaseEntity;
|
||||
import com.youlai.boot.framework.base.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@@ -64,11 +64,13 @@ public class SysUser extends BaseEntity {
|
||||
/**
|
||||
* 创建人 ID
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 更新人 ID
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private Long updateBy;
|
||||
|
||||
/**
|
||||
|
||||
@@ -3,8 +3,7 @@ package com.youlai.boot.system.model.entity;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.youlai.boot.common.base.BaseEntity;
|
||||
import com.youlai.boot.framework.base.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.boot.system.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.youlai.boot.common.base.BaseEntity;
|
||||
import com.youlai.boot.framework.base.BaseEntity;
|
||||
import com.youlai.boot.common.enums.SocialPlatformEnum;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.youlai.boot.system.model.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.youlai.boot.system.model.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.youlai.boot.common.enums.ActionTypeEnum;
|
||||
import com.youlai.boot.common.enums.LogModuleEnum;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -70,7 +69,6 @@ public class LogPageVO implements Serializable {
|
||||
@Schema(description = "错误信息")
|
||||
private String errorMsg;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.youlai.boot.system.model.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -31,9 +30,7 @@ public class RolePageVO {
|
||||
@Schema(description="数据权限名称")
|
||||
private String dataScopeLabel;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime updateTime;
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.youlai.boot.system.model.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.youlai.boot.system.model.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
@@ -82,11 +82,6 @@ public interface UserService extends IService<SysUser> {
|
||||
*/
|
||||
SecurityUser getAuthInfoByUsername(String username);
|
||||
|
||||
default SecurityUser getAuthCredentialsByUsername(String username) {
|
||||
return getAuthInfoByUsername(username);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取导出用户列表
|
||||
*
|
||||
@@ -198,8 +193,4 @@ public interface UserService extends IService<SysUser> {
|
||||
*/
|
||||
SecurityUser getAuthInfoByMobile(String mobile);
|
||||
|
||||
default SecurityUser getAuthCredentialsByMobile(String mobile) {
|
||||
return getAuthInfoByMobile(mobile);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@ import com.youlai.boot.system.model.form.ConfigForm;
|
||||
import com.youlai.boot.system.model.query.ConfigQuery;
|
||||
import com.youlai.boot.system.model.vo.ConfigVO;
|
||||
import com.youlai.boot.system.service.ConfigService;
|
||||
import com.youlai.boot.framework.security.util.SecurityUtils;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -78,7 +77,6 @@ public class ConfigServiceImpl extends ServiceImpl<ConfigMapper, Config> impleme
|
||||
super.count(new LambdaQueryWrapper<Config>().eq(Config::getConfigKey, configForm.getConfigKey())) == 0,
|
||||
"配置键已存在");
|
||||
Config config = configConverter.toEntity(configForm);
|
||||
config.setCreateBy(SecurityUtils.getUserId());
|
||||
return this.save(config);
|
||||
}
|
||||
|
||||
@@ -107,7 +105,6 @@ public class ConfigServiceImpl extends ServiceImpl<ConfigMapper, Config> impleme
|
||||
super.count(new LambdaQueryWrapper<Config>().eq(Config::getConfigKey, configForm.getConfigKey()).ne(Config::getId, id)) == 0,
|
||||
"配置键已存在");
|
||||
Config config = configConverter.toEntity(configForm);
|
||||
config.setUpdateBy(SecurityUtils.getUserId());
|
||||
return this.updateById(config);
|
||||
}
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements De
|
||||
* @param deptList 部门列表
|
||||
* @return 部门树形列表
|
||||
*/
|
||||
public List<DeptVO> recurDeptList(Long parentId, List<Dept> deptList) {
|
||||
private List<DeptVO> recurDeptList(Long parentId, List<Dept> deptList) {
|
||||
return deptList.stream()
|
||||
.filter(dept -> dept.getParentId().equals(parentId))
|
||||
.map(dept -> {
|
||||
@@ -150,7 +150,6 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements De
|
||||
String treePath = generateDeptTreePath(formData.getParentId());
|
||||
entity.setTreePath(treePath);
|
||||
|
||||
entity.setCreateBy(SecurityUtils.getUserId());
|
||||
// 保存部门并返回部门ID
|
||||
boolean result = this.save(entity);
|
||||
Assert.isTrue(result, "部门保存失败");
|
||||
@@ -236,7 +235,7 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements De
|
||||
* @param deptList 部门列表
|
||||
* @return 部门表格层级列表
|
||||
*/
|
||||
public static List<Option<Long>> recurDeptTreeOptions(long parentId, List<Dept> deptList) {
|
||||
private static List<Option<Long>> recurDeptTreeOptions(long parentId, List<Dept> deptList) {
|
||||
return CollectionUtil.emptyIfNull(deptList).stream()
|
||||
.filter(dept -> dept.getParentId().equals(parentId))
|
||||
.map(dept -> {
|
||||
|
||||
@@ -95,7 +95,6 @@ public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> impleme
|
||||
}
|
||||
}
|
||||
Notice entity = noticeConverter.toEntity(formData);
|
||||
entity.setCreateBy(SecurityUtils.getUserId());
|
||||
return this.save(entity);
|
||||
}
|
||||
|
||||
@@ -250,7 +249,6 @@ public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> impleme
|
||||
|
||||
notice.setPublishStatus(NoticePublishStatusEnum.REVOKED.getValue());
|
||||
notice.setRevokeTime(LocalDateTime.now());
|
||||
notice.setUpdateBy(SecurityUtils.getUserId());
|
||||
|
||||
boolean revokeResult = this.updateById(notice);
|
||||
|
||||
|
||||
@@ -133,7 +133,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, SysUser> implements
|
||||
// 设置默认加密密码
|
||||
String defaultEncryptPwd = passwordEncoder.encode(SystemConstants.DEFAULT_PASSWORD);
|
||||
entity.setPassword(defaultEncryptPwd);
|
||||
entity.setCreateBy(SecurityUtils.getUserId());
|
||||
|
||||
// 新增用户
|
||||
boolean result = this.save(entity);
|
||||
@@ -171,7 +170,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, SysUser> implements
|
||||
|
||||
// form -> entity
|
||||
SysUser entity = userConverter.toEntity(userForm);
|
||||
entity.setUpdateBy(SecurityUtils.getUserId());
|
||||
|
||||
// 修改用户
|
||||
boolean result = this.updateById(entity);
|
||||
|
||||
@@ -170,8 +170,9 @@ springdoc:
|
||||
packages-to-scan: # 扫描的 Controller 包,限制只生成指定包的接口文档
|
||||
- com.youlai.boot.auth.controller
|
||||
- com.youlai.boot.system.controller
|
||||
- com.youlai.boot.module.file.controller
|
||||
- com.youlai.boot.module.codegen.controller
|
||||
- com.youlai.boot.file.controller
|
||||
- com.youlai.boot.codegen.controller
|
||||
- com.youlai.boot.message.controller
|
||||
default-flat-param-object: true # 将对象参数扁平化显示在文档中
|
||||
|
||||
# knife4j 配置
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.youlai.boot.platform.codegen.mapper.GenTableColumnMapper">
|
||||
<mapper namespace="com.youlai.boot.codegen.mapper.GenTableColumnMapper">
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.youlai.boot.platform.codegen.mapper.GenTableMapper">
|
||||
<mapper namespace="com.youlai.boot.codegen.mapper.GenTableMapper">
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.youlai.boot.system.mapper.ConfigMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.youlai.boot.system.mapper.DeptMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -9,7 +9,7 @@ import java.time.LocalDateTime;
|
||||
import java.math.BigDecimal;
|
||||
#end
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import ${packageName}.common.base.BaseEntity;
|
||||
import ${packageName}.framework.base.BaseEntity;
|
||||
|
||||
/**
|
||||
* $!{businessName}实体对象
|
||||
|
||||
Reference in New Issue
Block a user