From e22a91be4e71cf0cdcefe30593bcdc967682b680 Mon Sep 17 00:00:00 2001 From: Kang_Yang <591616450@qq.com> Date: Thu, 17 Oct 2024 10:56:48 +0800 Subject: [PATCH 01/14] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E5=A2=9E?= =?UTF-8?q?=E5=88=A0=E6=94=B9=E6=9F=A5=E7=BB=84=E4=BB=B6=E4=B8=8B=E8=A7=92?= =?UTF-8?q?=E8=89=B2=E7=AD=9B=E9=80=89=E6=9C=AA=E7=94=9F=E6=95=88=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/youlai/boot/system/model/query/UserPageQuery.java | 3 +++ src/main/resources/mapper/system/UserMapper.xml | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/src/main/java/com/youlai/boot/system/model/query/UserPageQuery.java b/src/main/java/com/youlai/boot/system/model/query/UserPageQuery.java index 3e2e7f74..6604f657 100644 --- a/src/main/java/com/youlai/boot/system/model/query/UserPageQuery.java +++ b/src/main/java/com/youlai/boot/system/model/query/UserPageQuery.java @@ -27,6 +27,9 @@ public class UserPageQuery extends BasePageQuery { @Schema(description="部门ID") private Long deptId; + @Schema(description = "角色ID") + private List roleIds; + @Schema(description="创建时间范围") private List createTime; diff --git a/src/main/resources/mapper/system/UserMapper.xml b/src/main/resources/mapper/system/UserMapper.xml index 988b7f07..a9a7feef 100644 --- a/src/main/resources/mapper/system/UserMapper.xml +++ b/src/main/resources/mapper/system/UserMapper.xml @@ -47,6 +47,12 @@ AND u.create_time <= #{endDate} + + AND sur.role_id IN + + #{roleId} + + GROUP BY u.id From 3868e0e5625321b5dfd14b48f436ed69bf3488f5 Mon Sep 17 00:00:00 2001 From: Kylin Date: Mon, 28 Oct 2024 17:42:43 +0800 Subject: [PATCH 02/14] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=94=9F=E6=88=90=E6=A8=A1=E6=9D=BF=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E5=90=8D=E7=A7=B0=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 API、控制器、转换器、实体、表单、Mapper 等文件中 - 将业务名称的显示使用 trim() 方法去除前后空格 - 优化代码注释和接口文档中的业务名称显示效果 --- .../resources/templates/codegen/api.ts.vm | 18 ++++++------- .../templates/codegen/controller.java.vm | 20 +++++++------- .../templates/codegen/converter.java.vm | 2 +- .../templates/codegen/entity.java.vm | 4 +-- .../resources/templates/codegen/form.java.vm | 4 +-- .../resources/templates/codegen/index.vue.vm | 24 ++++++++--------- .../templates/codegen/mapper.java.vm | 4 +-- .../resources/templates/codegen/mapper.xml.vm | 2 +- .../resources/templates/codegen/query.java.vm | 4 +-- .../templates/codegen/service.java.vm | 22 ++++++++-------- .../templates/codegen/serviceImpl.java.vm | 26 +++++++++---------- .../resources/templates/codegen/vo.java.vm | 4 +-- 12 files changed, 67 insertions(+), 67 deletions(-) diff --git a/src/main/resources/templates/codegen/api.ts.vm b/src/main/resources/templates/codegen/api.ts.vm index 1e2e6c97..daaf4a99 100644 --- a/src/main/resources/templates/codegen/api.ts.vm +++ b/src/main/resources/templates/codegen/api.ts.vm @@ -3,7 +3,7 @@ import request from "@/utils/request"; const ${entityName.toUpperCase()}_BASE_URL = "/api/v1/${lowerFirstEntityName}s"; const ${entityName}API = { - /** 获取${businessName}分页数据 */ + /** 获取${businessName.trim()}分页数据 */ getPage(queryParams?: ${entityName}PageQuery) { return request>({ url: `${${entityName.toUpperCase()}_BASE_URL}/page`, @@ -12,7 +12,7 @@ const ${entityName}API = { }); }, /** - * 获取${businessName}表单数据 + * 获取${businessName.trim()}表单数据 * * @param id ${entityName}ID * @returns ${entityName}表单数据 @@ -24,7 +24,7 @@ const ${entityName}API = { }); }, - /** 添加${businessName}*/ + /** 添加${businessName.trim()}*/ add(data: ${entityName}Form) { return request({ url: `${${entityName.toUpperCase()}_BASE_URL}`, @@ -34,7 +34,7 @@ const ${entityName}API = { }, /** - * 更新${businessName} + * 更新${businessName.trim()} * * @param id ${entityName}ID * @param data ${entityName}表单数据 @@ -48,9 +48,9 @@ const ${entityName}API = { }, /** - * 批量删除${businessName},多个以英文逗号(,)分割 + * 批量删除${businessName.trim()},多个以英文逗号(,)分割 * - * @param ids ${businessName}ID字符串,多个以英文逗号(,)分割 + * @param ids ${businessName.trim()}ID字符串,多个以英文逗号(,)分割 */ deleteByIds(ids: string) { return request({ @@ -62,7 +62,7 @@ const ${entityName}API = { export default ${entityName}API; -/** ${businessName}分页查询参数 */ +/** ${businessName.trim()}分页查询参数 */ export interface ${entityName}PageQuery extends PageQuery { #foreach($fieldConfig in $fieldConfigs) #if($fieldConfig.isShowInQuery) @@ -82,7 +82,7 @@ export interface ${entityName}PageQuery extends PageQuery { #end } -/** ${businessName}表单对象 */ +/** ${businessName.trim()}表单对象 */ export interface ${entityName}Form { #foreach($fieldConfig in $fieldConfigs) #if($fieldConfig.isShowInForm) @@ -94,7 +94,7 @@ export interface ${entityName}Form { #end } -/** ${businessName}分页对象 */ +/** ${businessName.trim()}分页对象 */ export interface ${entityName}PageVO { #foreach($fieldConfig in $fieldConfigs) #if($fieldConfig.isShowInList) diff --git a/src/main/resources/templates/codegen/controller.java.vm b/src/main/resources/templates/codegen/controller.java.vm index 792db37a..c19b6bed 100644 --- a/src/main/resources/templates/codegen/controller.java.vm +++ b/src/main/resources/templates/codegen/controller.java.vm @@ -19,12 +19,12 @@ import org.springframework.web.bind.annotation.*; import jakarta.validation.Valid; /** - * $!{businessName}前端控制层 + * $!{businessName.trim()}前端控制层 * * @author ${author} * @since ${date} */ -@Tag(name = "${businessName}接口") +@Tag(name = "${businessName.trim()}接口") @RestController @RequestMapping("/api/v1/${lowerFirstEntityName}s") @RequiredArgsConstructor @@ -32,7 +32,7 @@ public class ${entityName}Controller { private final ${entityName}Service ${lowerFirstEntityName}Service; - @Operation(summary = "$!{businessName}分页列表") + @Operation(summary = "$!{businessName.trim()}分页列表") @GetMapping("/page") @PreAuthorize("@ss.hasPerm('${moduleName}:${lowerFirstEntityName}:query')") public PageResult<${entityName}VO> get${entityName}Page(${entityName}Query queryParams ) { @@ -40,7 +40,7 @@ public class ${entityName}Controller { return PageResult.success(result); } - @Operation(summary = "新增${businessName}") + @Operation(summary = "新增${businessName.trim()}") @PostMapping @PreAuthorize("@ss.hasPerm('${moduleName}:${lowerFirstEntityName}:add')") public Result save${entityName}(@RequestBody @Valid ${entityName}Form formData ) { @@ -48,32 +48,32 @@ public class ${entityName}Controller { return Result.judge(result); } - @Operation(summary = "获取${businessName}表单数据") + @Operation(summary = "获取${businessName.trim()}表单数据") @GetMapping("/{id}/form") @PreAuthorize("@ss.hasPerm('${moduleName}:${lowerFirstEntityName}:edit')") public Result<${entityName}Form> get${entityName}Form( - @Parameter(description = "$!{businessName}ID") @PathVariable Long id + @Parameter(description = "$!{businessName.trim()}ID") @PathVariable Long id ) { ${entityName}Form formData = ${lowerFirstEntityName}Service.get${entityName}FormData(id); return Result.success(formData); } - @Operation(summary = "修改${businessName}") + @Operation(summary = "修改${businessName.trim()}") @PutMapping(value = "/{id}") @PreAuthorize("@ss.hasPerm('${moduleName}:${lowerFirstEntityName}:edit')") public Result update${entityName}( - @Parameter(description = "$!{businessName}ID") @PathVariable Long id, + @Parameter(description = "$!{businessName.trim()}ID") @PathVariable Long id, @RequestBody @Validated ${entityName}Form formData ) { boolean result = ${lowerFirstEntityName}Service.update${entityName}(id, formData); return Result.judge(result); } - @Operation(summary = "删除${businessName}") + @Operation(summary = "删除${businessName.trim()}") @DeleteMapping("/{ids}") @PreAuthorize("@ss.hasPerm('${moduleName}:${lowerFirstEntityName}:delete')") public Result delete${entityName}s( - @Parameter(description = "$!{businessName}ID,多个以英文逗号(,)分割") @PathVariable String ids + @Parameter(description = "$!{businessName.trim()}ID,多个以英文逗号(,)分割") @PathVariable String ids ) { boolean result = ${lowerFirstEntityName}Service.delete${entityName}s(ids); return Result.judge(result); diff --git a/src/main/resources/templates/codegen/converter.java.vm b/src/main/resources/templates/codegen/converter.java.vm index b56f6234..92430c0d 100644 --- a/src/main/resources/templates/codegen/converter.java.vm +++ b/src/main/resources/templates/codegen/converter.java.vm @@ -6,7 +6,7 @@ import ${packageName}.${moduleName}.model.entity.${entityName}; import ${packageName}.${moduleName}.model.form.${entityName}Form; /** - * $!{businessName}对象转换器 + * $!{businessName.trim()}对象转换器 * * @author ${author} * @since ${date} diff --git a/src/main/resources/templates/codegen/entity.java.vm b/src/main/resources/templates/codegen/entity.java.vm index 2f6b2cbf..c5faa81f 100644 --- a/src/main/resources/templates/codegen/entity.java.vm +++ b/src/main/resources/templates/codegen/entity.java.vm @@ -12,14 +12,14 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.youlai.boot.common.base.BaseEntity; /** - * $!{businessName}实体对象 + * $!{businessName.trim()}实体对象 * * @author ${author} * @since ${date} */ @Getter @Setter -@TableName("${tableName}") +@TableName("${tableName.trim()}") public class ${entityName} extends BaseEntity { private static final long serialVersionUID = 1L; diff --git a/src/main/resources/templates/codegen/form.java.vm b/src/main/resources/templates/codegen/form.java.vm index e2c07377..54a6cdb8 100644 --- a/src/main/resources/templates/codegen/form.java.vm +++ b/src/main/resources/templates/codegen/form.java.vm @@ -16,14 +16,14 @@ import jakarta.validation.constraints.*; #end /** - * $!{businessName}表单对象 + * $!{businessName.trim()}表单对象 * * @author ${author} * @since ${date} */ @Getter @Setter -@Schema(description = "$!{businessName}表单对象") +@Schema(description = "$!{businessName.trim()}表单对象") public class ${entityName}Form implements Serializable { @Serial diff --git a/src/main/resources/templates/codegen/index.vue.vm b/src/main/resources/templates/codegen/index.vue.vm index 8a486510..7bdb64b8 100644 --- a/src/main/resources/templates/codegen/index.vue.vm +++ b/src/main/resources/templates/codegen/index.vue.vm @@ -169,7 +169,7 @@ /> - + ([]); // 弹窗 @@ -279,10 +279,10 @@ visible: false, }); - // $!{businessName}表单数据 + // $!{businessName.trim()}表单数据 const formData = reactive<${entityName}Form>({}); - // $!{businessName}表单校验规则 + // $!{businessName.trim()}表单校验规则 const rules = reactive({ #if($fieldConfigs) #foreach($fieldConfig in ${fieldConfigs}) @@ -293,7 +293,7 @@ #end }); - /** 查询$!{businessName} */ + /** 查询$!{businessName.trim()} */ function handleQuery() { loading.value = true; ${entityName}API.getPage(queryParams) @@ -306,7 +306,7 @@ }); } - /** 重置$!{businessName}查询 */ + /** 重置$!{businessName.trim()}查询 */ function handleResetQuery() { queryFormRef.value!.resetFields(); queryParams.pageNum = 1; @@ -318,20 +318,20 @@ removeIds.value = selection.map((item: any) => item.id); } - /** 打开$!{businessName}弹窗 */ + /** 打开$!{businessName.trim()}弹窗 */ function handleOpenDialog(id?: number) { dialog.visible = true; if (id) { - dialog.title = "修改$!{businessName}"; + dialog.title = "修改$!{businessName.trim()}"; ${entityName}API.getFormData(id).then((data) => { Object.assign(formData, data); }); } else { - dialog.title = "新增$!{businessName}"; + dialog.title = "新增$!{businessName.trim()}"; } } - /** 提交$!{businessName}表单 */ + /** 提交$!{businessName.trim()}表单 */ function handleSubmit() { dataFormRef.value.validate((valid: any) => { if (valid) { @@ -358,7 +358,7 @@ }); } - /** 关闭$!{businessName}弹窗 */ + /** 关闭$!{businessName.trim()}弹窗 */ function handleCloseDialog() { dialog.visible = false; dataFormRef.value.resetFields(); @@ -366,7 +366,7 @@ formData.id = undefined; } - /** 删除$!{businessName} */ + /** 删除$!{businessName.trim()} */ function handleDelete(id?: number) { const ids = [id || removeIds.value].join(","); if (!ids) { diff --git a/src/main/resources/templates/codegen/mapper.java.vm b/src/main/resources/templates/codegen/mapper.java.vm index ca4eedd8..ef330027 100644 --- a/src/main/resources/templates/codegen/mapper.java.vm +++ b/src/main/resources/templates/codegen/mapper.java.vm @@ -8,7 +8,7 @@ import ${packageName}.${moduleName}.model.vo.${entityName}VO; import org.apache.ibatis.annotations.Mapper; /** - * $!{businessName}Mapper接口 + * $!{businessName.trim()}Mapper接口 * * @author ${author} * @since ${date} @@ -17,7 +17,7 @@ import org.apache.ibatis.annotations.Mapper; public interface ${entityName}Mapper extends BaseMapper<${entityName}> { /** - * 获取${businessName}分页数据 + * 获取${businessName.trim()}分页数据 * * @param page 分页对象 * @param queryParams 查询参数 diff --git a/src/main/resources/templates/codegen/mapper.xml.vm b/src/main/resources/templates/codegen/mapper.xml.vm index f690e0ee..63e3254a 100644 --- a/src/main/resources/templates/codegen/mapper.xml.vm +++ b/src/main/resources/templates/codegen/mapper.xml.vm @@ -2,7 +2,7 @@ - + SELECT #if($fieldConfigs) diff --git a/src/main/resources/templates/codegen/query.java.vm b/src/main/resources/templates/codegen/query.java.vm index 48b7bfdf..d9716036 100644 --- a/src/main/resources/templates/codegen/query.java.vm +++ b/src/main/resources/templates/codegen/query.java.vm @@ -13,12 +13,12 @@ import java.math.BigDecimal; #end /** - * $!{businessName.trim()}分页查询对象 + * $!{businessName}分页查询对象 * * @author ${author} * @since ${date} */ -@Schema(description ="$!{businessName.trim()}查询对象") +@Schema(description ="$!{businessName}查询对象") @Getter @Setter public class ${entityName}Query extends BasePageQuery { diff --git a/src/main/resources/templates/codegen/service.java.vm b/src/main/resources/templates/codegen/service.java.vm index 44538bec..08dec1b7 100644 --- a/src/main/resources/templates/codegen/service.java.vm +++ b/src/main/resources/templates/codegen/service.java.vm @@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; /** - * $!{businessName.trim()}服务类 + * $!{businessName}服务类 * * @author ${author} * @since ${date} @@ -16,41 +16,41 @@ import com.baomidou.mybatisplus.extension.service.IService; public interface ${entityName}Service extends IService<${entityName}> { /** - *$!{businessName.trim()}分页列表 + *$!{businessName}分页列表 * * @return */ IPage<${entityName}VO> get${entityName}Page(${entityName}Query queryParams); /** - * 获取${businessName.trim()}表单数据 + * 获取${businessName}表单数据 * - * @param id $!{businessName.trim()}ID + * @param id $!{businessName}ID * @return */ ${entityName}Form get${entityName}FormData(Long id); /** - * 新增${businessName.trim()} + * 新增${businessName} * - * @param formData $!{businessName.trim()}表单对象 + * @param formData $!{businessName}表单对象 * @return */ boolean save${entityName}(${entityName}Form formData); /** - * 修改${businessName.trim()} + * 修改${businessName} * - * @param id $!{businessName.trim()}ID - * @param formData $!{businessName.trim()}表单对象 + * @param id $!{businessName}ID + * @param formData $!{businessName}表单对象 * @return */ boolean update${entityName}(Long id, ${entityName}Form formData); /** - * 删除${businessName.trim()} + * 删除${businessName} * - * @param ids $!{businessName.trim()}ID,多个以英文逗号(,)分割 + * @param ids $!{businessName}ID,多个以英文逗号(,)分割 * @return */ boolean delete${entityName}s(String ids); diff --git a/src/main/resources/templates/codegen/serviceImpl.java.vm b/src/main/resources/templates/codegen/serviceImpl.java.vm index 6a304514..6d74c712 100644 --- a/src/main/resources/templates/codegen/serviceImpl.java.vm +++ b/src/main/resources/templates/codegen/serviceImpl.java.vm @@ -21,7 +21,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; /** - * $!{businessName.trim()}服务实现类 + * $!{businessName}服务实现类 * * @author ${author} * @since ${date} @@ -33,10 +33,10 @@ public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, $ private final ${entityName}Converter ${lowerFirstEntityName}Converter; /** - * 获取${businessName.trim()}分页列表 + * 获取${businessName}分页列表 * * @param queryParams 查询参数 - * @return {@link IPage<${entityName}VO>} $!{businessName.trim()}分页列表 + * @return {@link IPage<${entityName}VO>} $!{businessName}分页列表 */ @Override public IPage<${entityName}VO> get${entityName}Page(${entityName}Query queryParams) { @@ -48,9 +48,9 @@ public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, $ } /** - * 获取${businessName.trim()}表单数据 + * 获取${businessName}表单数据 * - * @param id $!{businessName.trim()}ID + * @param id $!{businessName}ID * @return */ @Override @@ -60,9 +60,9 @@ public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, $ } /** - * 新增${businessName.trim()} + * 新增${businessName} * - * @param formData $!{businessName.trim()}表单对象 + * @param formData $!{businessName}表单对象 * @return */ @Override @@ -72,10 +72,10 @@ public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, $ } /** - * 更新${businessName.trim()} + * 更新${businessName} * - * @param id $!{businessName.trim()}ID - * @param formData $!{businessName.trim()}表单对象 + * @param id $!{businessName}ID + * @param formData $!{businessName}表单对象 * @return */ @Override @@ -85,14 +85,14 @@ public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, $ } /** - * 删除${businessName.trim()} + * 删除${businessName} * - * @param ids $!{businessName.trim()}ID,多个以英文逗号(,)分割 + * @param ids $!{businessName}ID,多个以英文逗号(,)分割 * @return */ @Override public boolean delete${entityName}s(String ids) { - Assert.isTrue(StrUtil.isNotBlank(ids), "删除的${businessName.trim()}数据为空"); + Assert.isTrue(StrUtil.isNotBlank(ids), "删除的${businessName}数据为空"); // 逻辑删除 List idList = Arrays.stream(ids.split(",")) .map(Long::parseLong) diff --git a/src/main/resources/templates/codegen/vo.java.vm b/src/main/resources/templates/codegen/vo.java.vm index ad0f5ad5..b08ae47c 100644 --- a/src/main/resources/templates/codegen/vo.java.vm +++ b/src/main/resources/templates/codegen/vo.java.vm @@ -14,14 +14,14 @@ import java.math.BigDecimal; #end /** - * $!{businessName.trim()}视图对象 + * $!{businessName}视图对象 * * @author ${author} * @since ${date} */ @Getter @Setter -@Schema( description = "$!{businessName.trim()}视图对象") +@Schema( description = "$!{businessName}视图对象") public class ${entityName}VO implements Serializable { @Serial From 864006aec3c81b8f265ecf960b89e41a4a18a76d Mon Sep 17 00:00:00 2001 From: Ky10 <7703482+ky10_code@user.noreply.gitee.com> Date: Mon, 28 Oct 2024 19:14:59 +0800 Subject: [PATCH 04/14] =?UTF-8?q?fix:=E4=BC=98=E5=8C=96=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E7=94=9F=E6=88=90=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在移除表注释中的"表"字后,增加 trim 操作去除前后空格- 提高了代码生成的准确性和美观性 --- .../boot/shared/codegen/service/impl/GenConfigServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/youlai/boot/shared/codegen/service/impl/GenConfigServiceImpl.java b/src/main/java/com/youlai/boot/shared/codegen/service/impl/GenConfigServiceImpl.java index deb5cc31..bb6601f4 100644 --- a/src/main/java/com/youlai/boot/shared/codegen/service/impl/GenConfigServiceImpl.java +++ b/src/main/java/com/youlai/boot/shared/codegen/service/impl/GenConfigServiceImpl.java @@ -80,7 +80,7 @@ public class GenConfigServiceImpl extends ServiceImpl Date: Mon, 28 Oct 2024 19:48:56 +0800 Subject: [PATCH 05/14] =?UTF-8?q?refactor(module):=20=E4=BF=AE=E6=94=B9=20?= =?UTF-8?q?API=20=E5=AF=BC=E5=85=A5=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 API导入路径从 "@/api/${kebabCaseEntityName}" 修改为 "@/api/${moduleName}/${kebabCaseEntityName}" - 此修改提高了项目结构的可维护性和可扩展性 --- src/main/resources/templates/codegen/index.vue.vm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/templates/codegen/index.vue.vm b/src/main/resources/templates/codegen/index.vue.vm index 8a486510..3cfdce5b 100644 --- a/src/main/resources/templates/codegen/index.vue.vm +++ b/src/main/resources/templates/codegen/index.vue.vm @@ -256,7 +256,7 @@ inheritAttrs: false, }); - import ${entityName}API, { ${entityName}PageVO, ${entityName}Form, ${entityName}PageQuery } from "@/api/${kebabCaseEntityName}"; + import ${entityName}API, { ${entityName}PageVO, ${entityName}Form, ${entityName}PageQuery } from "@/api/${moduleName}/${kebabCaseEntityName}"; const queryFormRef = ref(ElForm); const dataFormRef = ref(ElForm); From a682ca725c82f5688deb3c9bc1b71cef7da96073 Mon Sep 17 00:00:00 2001 From: Ky10 <7703482+ky10_code@user.noreply.gitee.com> Date: Mon, 28 Oct 2024 19:59:39 +0800 Subject: [PATCH 06/14] =?UTF-8?q?refactor:=20=E5=B0=86=20dictionary=20?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E9=87=8D=E5=91=BD=E5=90=8D=E4=B8=BA=20dict?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在查询表单和数据表单中,将 标签替换为 - 该改动统一了字典组件的使用,提高了代码的一致性和可维护性 --- src/main/resources/templates/codegen/index.vue.vm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/templates/codegen/index.vue.vm b/src/main/resources/templates/codegen/index.vue.vm index 3cfdce5b..9b3ed967 100644 --- a/src/main/resources/templates/codegen/index.vue.vm +++ b/src/main/resources/templates/codegen/index.vue.vm @@ -14,7 +14,7 @@ /> #elseif($fieldConfig.formType == "SELECT") #if($fieldConfig.dictType != "") - + #else @@ -187,7 +187,7 @@ /> #elseif($fieldConfig.formType == "SELECT") #if($fieldConfig.dictType != "") - + #else From e1f61e2d228944744fd42cc85c7fc318ae46caf7 Mon Sep 17 00:00:00 2001 From: "Ray.Hao" <1490493387@qq.com> Date: Wed, 30 Oct 2024 15:16:25 +0800 Subject: [PATCH 07/14] =?UTF-8?q?refactor:=20banner.txt=20=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=9A=84=E7=89=88=E6=9C=AC=E5=8F=B7=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E8=AF=BB=E5=8F=96=20pom.xml=20=E7=9A=84=20project.version?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application.yml | 2 ++ src/main/resources/banner.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 27ddf31e..979258be 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -3,6 +3,8 @@ spring: name: youlai-boot profiles: active: dev +project: + version: @project.version@ # 代码生成器配置 codegen: diff --git a/src/main/resources/banner.txt b/src/main/resources/banner.txt index c8ffd395..c3c28124 100644 --- a/src/main/resources/banner.txt +++ b/src/main/resources/banner.txt @@ -7,7 +7,7 @@ ${AnsiColor.BRIGHT_BLUE} |_|\___/ \__,_| |______\__,_|_| ${AnsiColor.BRIGHT_GREEN} -YouLai Boot Version: 2.8.1 +YouLai Boot Version: ${project.version} Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version} 有来官网: https://www.youlai.tech/ 版权所属: 有来开源组织 From 308ae7d147cba554ed1d679e969eae5b0b202b57 Mon Sep 17 00:00:00 2001 From: "Ray.Hao" <1490493387@qq.com> Date: Thu, 31 Oct 2024 01:23:39 +0800 Subject: [PATCH 08/14] =?UTF-8?q?refactor:=20=E9=87=8D=E6=9E=84=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增字典编码枚举 DictCodeEnum -移除 GenderEnum 枚举- 更新 NoticePublishStatusEnum 枚举 - 修改 UserConverter 接口 - 重构 UserImportListener 类 - 更新 UserPageVO 数据结构 --- .../boot/system/converter/UserConverter.java | 3 -- .../boot/system/enums/DictCodeEnum.java | 28 +++++++++++++++++++ .../youlai/boot/system/enums/GenderEnum.java | 28 ------------------- .../system/enums/NoticePublishStatusEnum.java | 2 +- .../system/listener/UserImportListener.java | 27 ++++++++++-------- .../boot/system/model/vo/UserPageVO.java | 2 +- 6 files changed, 45 insertions(+), 45 deletions(-) create mode 100644 src/main/java/com/youlai/boot/system/enums/DictCodeEnum.java delete mode 100644 src/main/java/com/youlai/boot/system/enums/GenderEnum.java diff --git a/src/main/java/com/youlai/boot/system/converter/UserConverter.java b/src/main/java/com/youlai/boot/system/converter/UserConverter.java index 9379954e..96840c8a 100644 --- a/src/main/java/com/youlai/boot/system/converter/UserConverter.java +++ b/src/main/java/com/youlai/boot/system/converter/UserConverter.java @@ -23,9 +23,6 @@ import org.mapstruct.Mappings; @Mapper(componentModel = "spring") public interface UserConverter { - @Mappings({ - @Mapping(target = "genderLabel", expression = "java(com.youlai.boot.common.base.IBaseEnum.getLabelByValue(bo.getGender(), com.youlai.boot.system.enums.GenderEnum.class))") - }) UserPageVO toPageVo(UserBO bo); Page toPageVo(Page bo); diff --git a/src/main/java/com/youlai/boot/system/enums/DictCodeEnum.java b/src/main/java/com/youlai/boot/system/enums/DictCodeEnum.java new file mode 100644 index 00000000..add33329 --- /dev/null +++ b/src/main/java/com/youlai/boot/system/enums/DictCodeEnum.java @@ -0,0 +1,28 @@ +package com.youlai.boot.system.enums; + +import com.youlai.boot.common.base.IBaseEnum; +import lombok.Getter; + +/** + * 字典编码枚举 + * + * @author Ray + * @since 2024/10/30 + */ +@Getter +public enum DictCodeEnum implements IBaseEnum { + + GENDER("gender", "性别"), + NOTICE_TYPE("notice_type", "通知类型"), + NOTICE_LEVEL("notice_level", "通知级别"); + + private final String value; + + private final String label; + + DictCodeEnum(String value, String label) { + this.value = value; + this.label = label; + } + +} diff --git a/src/main/java/com/youlai/boot/system/enums/GenderEnum.java b/src/main/java/com/youlai/boot/system/enums/GenderEnum.java deleted file mode 100644 index 114fd543..00000000 --- a/src/main/java/com/youlai/boot/system/enums/GenderEnum.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.youlai.boot.system.enums; - -import com.youlai.boot.common.base.IBaseEnum; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Getter; - -/** - * 性别枚举 - * - * @author haoxr - * @since 2022/10/14 - */ -@Getter -@Schema(enumAsRef = true) -public enum GenderEnum implements IBaseEnum { - - MALE(1, "男"), - FEMALE (2, "女"); - - private final Integer value; - - private final String label; - - GenderEnum(Integer value, String label) { - this.value = value; - this.label = label; - } -} diff --git a/src/main/java/com/youlai/boot/system/enums/NoticePublishStatusEnum.java b/src/main/java/com/youlai/boot/system/enums/NoticePublishStatusEnum.java index f7f5d007..cd5e718e 100644 --- a/src/main/java/com/youlai/boot/system/enums/NoticePublishStatusEnum.java +++ b/src/main/java/com/youlai/boot/system/enums/NoticePublishStatusEnum.java @@ -8,7 +8,7 @@ import lombok.Getter; * 通告发布状态枚举 * * @author haoxr - * @since 2022/10/14 + * @since 2024/10/14 */ @Getter @Schema(enumAsRef = true) diff --git a/src/main/java/com/youlai/boot/system/listener/UserImportListener.java b/src/main/java/com/youlai/boot/system/listener/UserImportListener.java index 65c470df..4d5cc56f 100644 --- a/src/main/java/com/youlai/boot/system/listener/UserImportListener.java +++ b/src/main/java/com/youlai/boot/system/listener/UserImportListener.java @@ -8,20 +8,14 @@ import cn.hutool.json.JSONUtil; import com.alibaba.excel.context.AnalysisContext; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.youlai.boot.common.base.BaseAnalysisEventListener; -import com.youlai.boot.system.enums.GenderEnum; -import com.youlai.boot.system.model.entity.Dept; -import com.youlai.boot.system.model.entity.Role; -import com.youlai.boot.system.model.entity.User; -import com.youlai.boot.system.model.entity.UserRole; +import com.youlai.boot.system.enums.DictCodeEnum; +import com.youlai.boot.system.model.entity.*; import com.youlai.boot.common.base.IBaseEnum; import com.youlai.boot.common.constant.SystemConstants; import com.youlai.boot.common.enums.StatusEnum; import com.youlai.boot.system.converter.UserConverter; import com.youlai.boot.system.model.dto.UserImportDTO; -import com.youlai.boot.system.service.DeptService; -import com.youlai.boot.system.service.RoleService; -import com.youlai.boot.system.service.UserRoleService; -import com.youlai.boot.system.service.UserService; +import com.youlai.boot.system.service.*; import lombok.extern.slf4j.Slf4j; import org.springframework.security.crypto.password.PasswordEncoder; @@ -55,6 +49,7 @@ public class UserImportListener extends BaseAnalysisEventListener private final RoleService roleService; private final UserRoleService userRoleService; private final DeptService deptService; + private final DictDataService dictDataService; public UserImportListener() { this.userService = SpringUtil.getBean(UserService.class); @@ -62,6 +57,7 @@ public class UserImportListener extends BaseAnalysisEventListener this.roleService = SpringUtil.getBean(RoleService.class); this.userRoleService = SpringUtil.getBean(UserRoleService.class); this.deptService = SpringUtil.getBean(DeptService.class); + this.dictDataService = SpringUtil.getBean(DictDataService.class); this.userConverter = SpringUtil.getBean(UserConverter.class); } @@ -107,11 +103,18 @@ public class UserImportListener extends BaseAnalysisEventListener // 校验通过,持久化至数据库 User entity = userConverter.toEntity(userImportDTO); entity.setPassword(passwordEncoder.encode(SystemConstants.DEFAULT_PASSWORD)); // 默认密码 - // 性别逆向解析 + // 性别逆向翻译 根据字典标签得到字典值 String genderLabel = userImportDTO.getGenderLabel(); if (StrUtil.isNotBlank(genderLabel)) { - Integer genderValue = (Integer) IBaseEnum.getValueByLabel(genderLabel, GenderEnum.class); - entity.setGender(genderValue); + DictData dictData = dictDataService.getOne(new LambdaQueryWrapper() + .eq(DictData::getDictCode, DictCodeEnum.GENDER.getValue()) + .eq(DictData::getLabel, genderLabel) + .last("limit 1") + ); + if (dictData != null) { + Integer genderValue = Integer.parseInt(dictData.getValue()); + entity.setGender(genderValue); + } } // 角色解析 String roleCodes = userImportDTO.getRoleCodes(); diff --git a/src/main/java/com/youlai/boot/system/model/vo/UserPageVO.java b/src/main/java/com/youlai/boot/system/model/vo/UserPageVO.java index 770a9424..abd2ddbe 100644 --- a/src/main/java/com/youlai/boot/system/model/vo/UserPageVO.java +++ b/src/main/java/com/youlai/boot/system/model/vo/UserPageVO.java @@ -29,7 +29,7 @@ public class UserPageVO { private String mobile; @Schema(description="性别") - private String genderLabel; + private Integer gender; @Schema(description="用户头像地址") private String avatar; From 138b7005d2cdcd074c1f6ab955c6f2f77a46a225 Mon Sep 17 00:00:00 2001 From: Time Lord <2393686479@qq.com> Date: Sun, 3 Nov 2024 20:54:59 +0800 Subject: [PATCH 09/14] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=99=90?= =?UTF-8?q?=E6=B5=81=E6=96=B9=E6=B3=95doFilterInternal=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/youlai/boot/core/filter/RateLimiterFilter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/youlai/boot/core/filter/RateLimiterFilter.java b/src/main/java/com/youlai/boot/core/filter/RateLimiterFilter.java index 62de5609..eba72de6 100644 --- a/src/main/java/com/youlai/boot/core/filter/RateLimiterFilter.java +++ b/src/main/java/com/youlai/boot/core/filter/RateLimiterFilter.java @@ -61,7 +61,7 @@ public class RateLimiterFilter extends OncePerRequestFilter { /** * IP限流过滤器 - * 默认情况下:限制同一个IP在一分钟内只能访问10次,可以通过修改系统配置进行调整 + * 默认情况下:限制同一个IP在一秒内只能访问10次,可以通过修改系统配置进行调整 * * @param request 请求体 * @param response 响应体 From 021954617e9152896c407a11c573be7c8899d4f4 Mon Sep 17 00:00:00 2001 From: Kang_Yang <591616450@qq.com> Date: Thu, 7 Nov 2024 13:39:59 +0800 Subject: [PATCH 10/14] =?UTF-8?q?feat:=20=E4=BF=AE=E5=A4=8D=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E5=AD=97=E5=85=B8code=E4=B8=8D=E5=87=86=E7=A1=AE?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/youlai/boot/system/mapper/DictMapper.java | 9 +++++++++ .../boot/system/service/impl/DictServiceImpl.java | 5 ++--- src/main/resources/mapper/system/DictMapper.xml | 10 ++++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/youlai/boot/system/mapper/DictMapper.java b/src/main/java/com/youlai/boot/system/mapper/DictMapper.java index 3188d823..180446ef 100644 --- a/src/main/java/com/youlai/boot/system/mapper/DictMapper.java +++ b/src/main/java/com/youlai/boot/system/mapper/DictMapper.java @@ -35,6 +35,15 @@ public interface DictMapper extends BaseMapper { * @return */ List getAllDictWithData(); + + /** + * 获取指定字典编码对应的的数量 + * + * @param dictCode 字典编码 + * @return + */ + long getDictCodeCount(String dictCode); + } diff --git a/src/main/java/com/youlai/boot/system/service/impl/DictServiceImpl.java b/src/main/java/com/youlai/boot/system/service/impl/DictServiceImpl.java index 996b2ab4..a7d11f00 100644 --- a/src/main/java/com/youlai/boot/system/service/impl/DictServiceImpl.java +++ b/src/main/java/com/youlai/boot/system/service/impl/DictServiceImpl.java @@ -67,9 +67,8 @@ public class DictServiceImpl extends ServiceImpl implements Di // 校验 code 是否唯一 String dictCode = entity.getDictCode(); - long count = this.count(new LambdaQueryWrapper() - .eq(Dict::getDictCode, dictCode) - ); + long count = this.baseMapper.getDictCodeCount(dictCode); + Assert.isTrue(count == 0, "字典编码已存在"); return this.save(entity); diff --git a/src/main/resources/mapper/system/DictMapper.xml b/src/main/resources/mapper/system/DictMapper.xml index 4f717cb4..201a5561 100644 --- a/src/main/resources/mapper/system/DictMapper.xml +++ b/src/main/resources/mapper/system/DictMapper.xml @@ -47,4 +47,14 @@ ORDER BY t1.create_time DESC + + + From dfd5d70de691a944470eb20e64f5d3b4d71765a4 Mon Sep 17 00:00:00 2001 From: Kang_Yang <591616450@qq.com> Date: Thu, 7 Nov 2024 14:16:09 +0800 Subject: [PATCH 11/14] =?UTF-8?q?chore:=20=E5=AD=97=E5=85=B8=E7=BC=96?= =?UTF-8?q?=E7=A0=81=E4=BF=AE=E6=94=B9=E4=B8=BA=E6=99=AE=E9=80=9A=E7=B4=A2?= =?UTF-8?q?=E5=BC=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/mysql8/youlai_boot.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/mysql8/youlai_boot.sql b/sql/mysql8/youlai_boot.sql index fcb85230..a992c4cb 100644 --- a/sql/mysql8/youlai_boot.sql +++ b/sql/mysql8/youlai_boot.sql @@ -65,7 +65,7 @@ `update_by` bigint DEFAULT NULL COMMENT '修改人ID', `is_deleted` tinyint DEFAULT '0' COMMENT '是否删除(1-删除,0-未删除)', PRIMARY KEY (`id`) USING BTREE, - UNIQUE KEY `uk_code` (`dict_code`) USING BTREE + KEY `idx_dictcode` (`dict_code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='字典表'; -- ---------------------------- -- Records of sys_dict From 8b4fcfe4cacfe3f876c480dc19002f60f58a4f20 Mon Sep 17 00:00:00 2001 From: Kang_Yang <591616450@qq.com> Date: Thu, 7 Nov 2024 14:18:16 +0800 Subject: [PATCH 12/14] =?UTF-8?q?chore:=20=E8=B0=83=E6=95=B4=E5=AD=97?= =?UTF-8?q?=E5=85=B8=E7=BC=96=E7=A0=81=E7=B4=A2=E5=BC=95=E5=91=BD=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/mysql8/youlai_boot.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/mysql8/youlai_boot.sql b/sql/mysql8/youlai_boot.sql index a992c4cb..1af40990 100644 --- a/sql/mysql8/youlai_boot.sql +++ b/sql/mysql8/youlai_boot.sql @@ -65,7 +65,7 @@ `update_by` bigint DEFAULT NULL COMMENT '修改人ID', `is_deleted` tinyint DEFAULT '0' COMMENT '是否删除(1-删除,0-未删除)', PRIMARY KEY (`id`) USING BTREE, - KEY `idx_dictcode` (`dict_code`) + KEY `idx_dict_code` (`dict_code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='字典表'; -- ---------------------------- -- Records of sys_dict From 5639c8b8007cf0fe4a696ac993dff0d213dc72c6 Mon Sep 17 00:00:00 2001 From: Kang_Yang <591616450@qq.com> Date: Thu, 7 Nov 2024 14:19:31 +0800 Subject: [PATCH 13/14] =?UTF-8?q?revert:=20=E5=9B=9E=E6=BB=9A=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E5=AD=97=E5=85=B8code=E4=BB=A3=E7=A0=81=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/youlai/boot/system/mapper/DictMapper.java | 8 -------- .../boot/system/service/impl/DictServiceImpl.java | 4 +++- src/main/resources/mapper/system/DictMapper.xml | 10 ---------- 3 files changed, 3 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/youlai/boot/system/mapper/DictMapper.java b/src/main/java/com/youlai/boot/system/mapper/DictMapper.java index 180446ef..5b3e1624 100644 --- a/src/main/java/com/youlai/boot/system/mapper/DictMapper.java +++ b/src/main/java/com/youlai/boot/system/mapper/DictMapper.java @@ -36,14 +36,6 @@ public interface DictMapper extends BaseMapper { */ List getAllDictWithData(); - /** - * 获取指定字典编码对应的的数量 - * - * @param dictCode 字典编码 - * @return - */ - long getDictCodeCount(String dictCode); - } diff --git a/src/main/java/com/youlai/boot/system/service/impl/DictServiceImpl.java b/src/main/java/com/youlai/boot/system/service/impl/DictServiceImpl.java index a7d11f00..e2090dd9 100644 --- a/src/main/java/com/youlai/boot/system/service/impl/DictServiceImpl.java +++ b/src/main/java/com/youlai/boot/system/service/impl/DictServiceImpl.java @@ -67,7 +67,9 @@ public class DictServiceImpl extends ServiceImpl implements Di // 校验 code 是否唯一 String dictCode = entity.getDictCode(); - long count = this.baseMapper.getDictCodeCount(dictCode); + long count = this.count(new LambdaQueryWrapper() + .eq(Dict::getDictCode, dictCode) + ); Assert.isTrue(count == 0, "字典编码已存在"); diff --git a/src/main/resources/mapper/system/DictMapper.xml b/src/main/resources/mapper/system/DictMapper.xml index 201a5561..4f717cb4 100644 --- a/src/main/resources/mapper/system/DictMapper.xml +++ b/src/main/resources/mapper/system/DictMapper.xml @@ -47,14 +47,4 @@ ORDER BY t1.create_time DESC - - - From e4343b0f49a82e52e14a51edb2802f8cc8bce32b Mon Sep 17 00:00:00 2001 From: "Ray.Hao" <1490493387@qq.com> Date: Fri, 8 Nov 2024 07:10:47 +0800 Subject: [PATCH 14/14] =?UTF-8?q?chore:=20vue=20=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E7=94=9F=E6=88=90=E6=A8=A1=E6=9D=BF=E5=90=8C=E6=AD=A5=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E9=A1=B5=E9=9D=A2=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/templates/codegen/index.vue.vm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/resources/templates/codegen/index.vue.vm b/src/main/resources/templates/codegen/index.vue.vm index 9b3ed967..faedf21c 100644 --- a/src/main/resources/templates/codegen/index.vue.vm +++ b/src/main/resources/templates/codegen/index.vue.vm @@ -1,6 +1,6 @@ +