Преглед на файлове

1、增加标签管理模块

rayson преди 11 месеца
родител
ревизия
78412c011a
променени са 40 файла, в които са добавени 667 реда и са изтрити 51 реда
  1. 2 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java
  2. 93 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/tag/TagController.java
  3. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/enterprise/vo/AppEnterpriseSearchPageReqVO.java
  4. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/vo/AppAdminEnterpriseAlbumReqVO.java
  5. 8 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/vo/AppAdminEnterpriseRespVO.java
  6. 1 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/vo/AppAdminEnterpriseSaveReqVO.java
  7. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/vo/AppAdminEnterpriseWelfareReqVO.java
  8. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/invite/vo/AppAdminEnterpriseInviteRecordPageReqVO.java
  9. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/address/EnterpriseAddressPageReqVO.java
  10. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/address/EnterpriseAddressRespVO.java
  11. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/address/EnterpriseAddressSaveReqVO.java
  12. 5 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/vo/EnterpriseBaseSimpleRespVO.java
  13. 10 6
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/vo/EnterpriseRespVO.java
  14. 7 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/vo/EnterpriseSaveReqVO.java
  15. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/invite/EnterpriseInvitePageReqVO.java
  16. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/invite/EnterpriseInviteRecordPageReqVO.java
  17. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/invite/EnterpriseInviteRecordRespVO.java
  18. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/invite/EnterpriseInviteRecordSaveReqVO.java
  19. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/invite/EnterpriseInviteRespVO.java
  20. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/invite/EnterpriseInviteSaveReqVO.java
  21. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/invite/EnterpriseInviteSimpleReqVO.java
  22. 40 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/tag/TagPageReqVO.java
  23. 43 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/tag/TagRespVO.java
  24. 34 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/tag/TagSaveReqVO.java
  25. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterpriseAddressDO.java
  26. 8 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterpriseDO.java
  27. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/invite/EnterpriseInviteDO.java
  28. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/invite/EnterpriseInviteRecordDO.java
  29. 52 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/tag/TagDO.java
  30. 10 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/es/job/ESJobAdvertisedMergeDO.java
  31. 31 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/tag/TagMapper.java
  32. 1 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/mq/consumer/ESConsumer.java
  33. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/invite/EnterpriseInviteRecordServiceImpl.java
  34. 56 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/tag/TagService.java
  35. 75 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/tag/TagServiceImpl.java
  36. 2 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/util/ESQueryBuildUtils.java
  37. 3 3
      menduner/menduner-system-biz/src/main/resources/i18n/messages_zh_CN.properties
  38. 144 0
      menduner/menduner-system-biz/src/test/java/com/citu/module/menduner/system/service/tag/TagServiceImplTest.java
  39. 2 1
      menduner/menduner-system-biz/src/test/resources/sql/clean.sql
  40. 17 1
      menduner/menduner-system-biz/src/test/resources/sql/create_tables.sql

+ 2 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java

@@ -410,4 +410,6 @@ public interface ErrorCodeConstants {
     ErrorCode ENTERPRISE_AUTH_FRONT_URL_NOT_NULL = new ErrorCode(1_100_043_005, "身份证正面未上传");
     ErrorCode ENTERPRISE_AUTH_BACK_URL_NOT_NULL = new ErrorCode(1_100_043_006, "身份证反面未上传");
 
+    // ========== 标签管理 1_100_044_000 ==========
+    ErrorCode TAG_NOT_EXISTS = new ErrorCode(1_100_044_001, "标签管理不存在");
 }

+ 93 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/tag/TagController.java

@@ -0,0 +1,93 @@
+package com.citu.module.menduner.system.controller.admin.tag;
+
+import com.citu.framework.apilog.core.annotation.ApiAccessLog;
+import com.citu.framework.common.pojo.CommonResult;
+import com.citu.framework.common.pojo.PageParam;
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.framework.common.util.object.BeanUtils;
+import com.citu.framework.excel.core.util.ExcelUtils;
+import com.citu.module.menduner.system.controller.base.tag.TagPageReqVO;
+import com.citu.module.menduner.system.controller.base.tag.TagRespVO;
+import com.citu.module.menduner.system.controller.base.tag.TagSaveReqVO;
+import com.citu.module.menduner.system.dal.dataobject.tag.TagDO;
+import com.citu.module.menduner.system.service.tag.TagService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.io.IOException;
+import java.util.List;
+
+import static com.citu.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
+import static com.citu.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "管理后台 - 标签管理")
+@RestController
+@RequestMapping("/menduner/system/tag")
+@Validated
+public class TagController {
+
+    @Resource
+    private TagService tagService;
+
+    @PostMapping("/create")
+    @Operation(summary = "创建标签管理")
+    @PreAuthorize("@ss.hasPermission('menduner:system:tag:create')")
+    public CommonResult<Long> createTag(@Valid @RequestBody TagSaveReqVO createReqVO) {
+        return success(tagService.createTag(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "更新标签管理")
+    @PreAuthorize("@ss.hasPermission('menduner:system:tag:update')")
+    public CommonResult<Boolean> updateTag(@Valid @RequestBody TagSaveReqVO updateReqVO) {
+        tagService.updateTag(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除标签管理")
+    @Parameter(name = "id", description = "编号", required = true)
+    @PreAuthorize("@ss.hasPermission('menduner:system:tag:delete')")
+    public CommonResult<Boolean> deleteTag(@RequestParam("id") Long id) {
+        tagService.deleteTag(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得标签管理")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('menduner:system:tag:query')")
+    public CommonResult<TagRespVO> getTag(@RequestParam("id") Long id) {
+        TagDO tag = tagService.getTag(id);
+        return success(BeanUtils.toBean(tag, TagRespVO.class));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得标签管理分页")
+    @PreAuthorize("@ss.hasPermission('menduner:system:tag:query')")
+    public CommonResult<PageResult<TagRespVO>> getTagPage(@Valid TagPageReqVO pageReqVO) {
+        PageResult<TagDO> pageResult = tagService.getTagPage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, TagRespVO.class));
+    }
+
+    @GetMapping("/export-excel")
+    @Operation(summary = "导出标签管理 Excel")
+    @PreAuthorize("@ss.hasPermission('menduner:system:tag:export')")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportTagExcel(@Valid TagPageReqVO pageReqVO,
+                               HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<TagDO> list = tagService.getTagPage(pageReqVO).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "标签管理.xls", "数据", TagRespVO.class,
+                BeanUtils.toBean(list, TagRespVO.class));
+    }
+
+}

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/enterprise/vo/AppEnterpriseSearchPageReqVO.java

@@ -14,10 +14,10 @@ import java.util.List;
 @Schema(description = "menduner - 首页-企业分页搜索 Request VO")
 public class AppEnterpriseSearchPageReqVO extends PageParam {
 
-    @Schema(description = "企业名称", example = "xx科技有限公司")
+    @Schema(description = "企业名称", example = "xx科技有限企业")
     private String name;
 
-    @Schema(description = "公司地点", example = "[]")
+    @Schema(description = "企业地点", example = "[]")
     private List<Long> areaIds;
 
     @Deprecated

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/vo/AppAdminEnterpriseAlbumReqVO.java

@@ -9,7 +9,7 @@ import java.util.List;
 @Data
 public class AppAdminEnterpriseAlbumReqVO {
 
-    @Schema(description = "公司相册")
+    @Schema(description = "企业相册")
     private List<String> albumList;
 
 }

+ 8 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/vo/AppAdminEnterpriseRespVO.java

@@ -1,5 +1,7 @@
 package com.citu.module.menduner.system.controller.appadmin.enterprise.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -22,7 +24,7 @@ public class AppAdminEnterpriseRespVO {
     @Schema(description = "企业官网")
     private String website;
 
-    @Schema(description = "公司简介")
+    @Schema(description = "企业简介")
     private String introduce;
 
     @Schema(description = "联系人")
@@ -43,10 +45,13 @@ public class AppAdminEnterpriseRespVO {
     @Schema(description = "人员规模(0-20人,20-99人,100-499人,500-999人,1000-9999人,9999人以上)")
     private String scale;
 
-    @Schema(description = "公司福利")
+    @Schema(description = "企业福利")
     private List<String> welfareList;
 
-    @Schema(description = "公司相册")
+    @Schema(description = "企业标签")
+    private List<String> tagList;
+
+    @Schema(description = "企业相册")
     private List<String> albumList;
 
     @Schema(description = "上班时间")

+ 1 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/vo/AppAdminEnterpriseSaveReqVO.java

@@ -27,7 +27,7 @@ public class AppAdminEnterpriseSaveReqVO {
     private String website;
 
     @NotBlank(message = "{1_100_019_005}")
-    @Schema(description = "公司简介")
+    @Schema(description = "企业简介")
     private String introduce;
 
     @Schema(description = "联系人")
@@ -48,7 +48,6 @@ public class AppAdminEnterpriseSaveReqVO {
     @Schema(description = "人员规模(0-20人,20-99人,100-499人,500-999人,1000-9999人,9999人以上)")
     private String scale;
 
-    @NotBlank(message = "{1_100_019_009}")
     @Schema(description = "上班时间")
     private String workTime;
 

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/vo/AppAdminEnterpriseWelfareReqVO.java

@@ -9,7 +9,7 @@ import java.util.List;
 @Data
 public class AppAdminEnterpriseWelfareReqVO {
 
-    @Schema(description = "公司福利")
+    @Schema(description = "企业福利")
     private List<String> welfareList;
 
 }

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/invite/vo/AppAdminEnterpriseInviteRecordPageReqVO.java

@@ -18,7 +18,7 @@ public class AppAdminEnterpriseInviteRecordPageReqVO extends PageParam {
     @Schema(description = "受邀用户编号", example = "25133")
     private Long userId;
 
-    @Schema(description = "类型(0 邀请同事 | 1 邀请子公司)", example = "1")
+    @Schema(description = "类型(0 邀请同事 | 1 邀请子企业)", example = "1")
     private String type;
 
     @Schema(description = "邀请码")

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/address/EnterpriseAddressPageReqVO.java

@@ -24,7 +24,7 @@ public class EnterpriseAddressPageReqVO extends PageParam {
     @Schema(description = "地区id", example = "3577")
     private Long areaId;
 
-    @Schema(description = "公司地址")
+    @Schema(description = "企业地址")
     private String address;
 
     @Schema(description = "创建时间")

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/address/EnterpriseAddressRespVO.java

@@ -23,8 +23,8 @@ public class EnterpriseAddressRespVO {
     @Schema(description = "地区id", example = "3577")
     private Long areaId;
 
-    @Schema(description = "公司地址")
-    @ExcelProperty("公司地址")
+    @Schema(description = "企业地址")
+    @ExcelProperty("企业地址")
     private String address;
 
     @Schema(description = "经度")

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/address/EnterpriseAddressSaveReqVO.java

@@ -17,7 +17,7 @@ public class EnterpriseAddressSaveReqVO {
     @Schema(description = "地区id", example = "3577")
     private Long areaId;
 
-    @Schema(description = "公司地址")
+    @Schema(description = "企业地址")
     private String address;
 
     @Schema(description = "经度")

+ 5 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/vo/EnterpriseBaseSimpleRespVO.java

@@ -13,7 +13,7 @@ public class EnterpriseBaseSimpleRespVO {
     @Schema(description = "企业id", example = "123")
     private Long id;
 
-    @Schema(description = "企业全称", example = "xx科技有限公司")
+    @Schema(description = "企业全称", example = "xx科技有限企业")
     private String name;
 
     @Schema(description = "企业别称", example = "xx科技")
@@ -31,9 +31,12 @@ public class EnterpriseBaseSimpleRespVO {
     @Schema(description = "企业logo地址", example = "https://www.menduner.com/static/img/loginlogo2.7924c12.png")
     private String logoUrl;
 
-    @Schema(description = "公司福利", example = "[]")
+    @Schema(description = "企业福利", example = "[]")
     private List<String> welfareList;
 
+    @Schema(description = "企业标签")
+    private List<String> tagList;
+
     @Schema(description = "更新时间")
     private LocalDateTime updateTime;
 

+ 10 - 6
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/vo/EnterpriseRespVO.java

@@ -38,8 +38,8 @@ public class EnterpriseRespVO {
     @ExcelProperty("企业官网")
     private String website;
 
-    @Schema(description = "公司简介")
-    @ExcelProperty("公司简介")
+    @Schema(description = "企业简介")
+    @ExcelProperty("企业简介")
     private String introduce;
 
     @Schema(description = "联系人")
@@ -68,12 +68,16 @@ public class EnterpriseRespVO {
     @DictFormat(MENDUNER_SCALE)
     private String scale;
 
-    @Schema(description = "公司福利")
-    @ExcelProperty("公司福利")
+    @Schema(description = "企业福利")
+    @ExcelProperty("企业福利")
     private List<String> welfareList;
 
-    @Schema(description = "公司相册")
-    @ExcelProperty("公司相册")
+    @Schema(description = "企业标签")
+    @ExcelProperty("企业标签")
+    private List<String> tagList;
+
+    @Schema(description = "企业相册")
+    @ExcelProperty("企业相册")
     private List<String> albumList;
 
     @Schema(description = "上班时间")

+ 7 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/vo/EnterpriseSaveReqVO.java

@@ -1,5 +1,6 @@
 package com.citu.module.menduner.system.controller.base.enterprise.vo;
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -25,7 +26,7 @@ public class EnterpriseSaveReqVO {
     @Schema(description = "企业官网")
     private String website;
 
-    @Schema(description = "公司简介")
+    @Schema(description = "企业简介")
     private String introduce;
 
     @Schema(description = "联系人")
@@ -46,10 +47,13 @@ public class EnterpriseSaveReqVO {
     @Schema(description = "人员规模(0-20人,20-99人,100-499人,500-999人,1000-9999人,9999人以上)")
     private String scale;
 
-    @Schema(description = "公司福利")
+    @Schema(description = "企业福利")
     private List<String> welfareList;
 
-    @Schema(description = "公司相册")
+    @Schema(description = "企业标签")
+    private List<String> tagList;
+
+    @Schema(description = "企业相册")
     private List<String> albumList;
 
     @Schema(description = "上班时间")

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/invite/EnterpriseInvitePageReqVO.java

@@ -24,7 +24,7 @@ public class EnterpriseInvitePageReqVO extends PageParam {
     @Schema(description = "用户编号", example = "16089")
     private Long userId;
 
-    @Schema(description = "类型(0 邀请同事 | 1 邀请子公司)", example = "2")
+    @Schema(description = "类型(0 邀请同事 | 1 邀请子企业)", example = "2")
     private String type;
 
     @Schema(description = "唯一标识")

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/invite/EnterpriseInviteRecordPageReqVO.java

@@ -30,7 +30,7 @@ public class EnterpriseInviteRecordPageReqVO extends PageParam {
     @Schema(description = "邀请用户编号", example = "22337")
     private Long inviteUserId;
 
-    @Schema(description = "类型(0 邀请同事 | 1 邀请子公司)", example = "1")
+    @Schema(description = "类型(0 邀请同事 | 1 邀请子企业)", example = "1")
     private String type;
 
     @Schema(description = "邀请码")

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/invite/EnterpriseInviteRecordRespVO.java

@@ -33,8 +33,8 @@ public class EnterpriseInviteRecordRespVO {
     @ExcelProperty("邀请用户编号")
     private Long inviteUserId;
 
-    @Schema(description = "类型(0 邀请同事 | 1 邀请子公司)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
-    @ExcelProperty("类型(0 邀请同事 | 1 邀请子公司)")
+    @Schema(description = "类型(0 邀请同事 | 1 邀请子企业)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    @ExcelProperty("类型(0 邀请同事 | 1 邀请子企业)")
     private String type;
 
     @Schema(description = "邀请码", requiredMode = Schema.RequiredMode.REQUIRED)

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/invite/EnterpriseInviteRecordSaveReqVO.java

@@ -29,7 +29,7 @@ public class EnterpriseInviteRecordSaveReqVO {
     @NotNull(message = "{1_100_041_005}")
     private Long inviteUserId;
 
-    @Schema(description = "类型(0 邀请同事 | 1 邀请子公司)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    @Schema(description = "类型(0 邀请同事 | 1 邀请子企业)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
     @NotEmpty(message = "{1_100_041_006}")
     private String type;
 

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/invite/EnterpriseInviteRespVO.java

@@ -25,8 +25,8 @@ public class EnterpriseInviteRespVO {
     @ExcelProperty("用户编号")
     private Long userId;
 
-    @Schema(description = "类型(0 邀请同事 | 1 邀请子公司)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
-    @ExcelProperty("类型(0 邀请同事 | 1 邀请子公司)")
+    @Schema(description = "类型(0 邀请同事 | 1 邀请子企业)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    @ExcelProperty("类型(0 邀请同事 | 1 邀请子企业)")
     private String type;
 
     @Schema(description = "唯一标识", requiredMode = Schema.RequiredMode.REQUIRED)

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/invite/EnterpriseInviteSaveReqVO.java

@@ -22,7 +22,7 @@ public class EnterpriseInviteSaveReqVO {
     @NotNull(message = "{1_100_040_003}")
     private Long userId;
 
-    @Schema(description = "类型(0 邀请同事 | 1 邀请子公司)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    @Schema(description = "类型(0 邀请同事 | 1 邀请子企业)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
     @NotEmpty(message = "{1_100_040_004}")
     private String type;
 

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/invite/EnterpriseInviteSimpleReqVO.java

@@ -12,7 +12,7 @@ import javax.validation.constraints.NotNull;
 public class EnterpriseInviteSimpleReqVO {
 
 
-    @Schema(description = "类型(0 邀请同事 | 1 邀请子公司)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    @Schema(description = "类型(0 邀请同事 | 1 邀请子企业)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
     @NotEmpty(message = "{1_100_040_004}")
     private String type;
 

+ 40 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/tag/TagPageReqVO.java

@@ -0,0 +1,40 @@
+package com.citu.module.menduner.system.controller.base.tag;
+
+
+import com.citu.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+
+import static com.citu.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 标签管理分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class TagPageReqVO extends PageParam {
+
+    @Schema(description = "中文名称")
+    private String nameCn;
+
+    @Schema(description = "英文名称")
+    private String nameEn;
+
+    @Schema(description = "标签类型(0人员画像标签|1职位标签|2招聘职位标签|3企业福利标签|4企业标签)", example = "1")
+    private String type;
+
+    @Schema(description = "上级id", example = "29684")
+    private Long parentId;
+
+    @Schema(description = "层级")
+    private Boolean level;
+
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
+}

+ 43 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/tag/TagRespVO.java

@@ -0,0 +1,43 @@
+package com.citu.module.menduner.system.controller.base.tag;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 标签管理 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class TagRespVO {
+
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "25820")
+    @ExcelProperty("id")
+    private Long id;
+
+    @Schema(description = "中文名称", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("中文名称")
+    private String nameCn;
+
+    @Schema(description = "英文名称", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("英文名称")
+    private String nameEn;
+
+    @Schema(description = "标签类型(0人员画像标签|1职位标签|2招聘职位标签|3企业福利标签|4企业标签)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    @ExcelProperty("标签类型(0人员画像标签|1职位标签|2招聘职位标签|3企业福利标签|4企业标签)")
+    private String type;
+
+    @Schema(description = "上级id", example = "29684")
+    @ExcelProperty("上级id")
+    private Long parentId;
+
+    @Schema(description = "层级")
+    @ExcelProperty("层级")
+    private Boolean level;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
+}

+ 34 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/tag/TagSaveReqVO.java

@@ -0,0 +1,34 @@
+package com.citu.module.menduner.system.controller.base.tag;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+
+@Schema(description = "管理后台 - 标签管理新增/修改 Request VO")
+@Data
+public class TagSaveReqVO {
+
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "25820")
+    private Long id;
+
+    @Schema(description = "中文名称", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotEmpty(message = "中文名称不能为空")
+    private String nameCn;
+
+    @Schema(description = "英文名称", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotEmpty(message = "英文名称不能为空")
+    private String nameEn;
+
+    @Schema(description = "标签类型(0人员画像标签|1职位标签|2招聘职位标签|3企业福利标签|4企业标签)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    @NotEmpty(message = "标签类型(0人员画像标签|1职位标签|2招聘职位标签|3企业福利标签|4企业标签)不能为空")
+    private String type;
+
+    @Schema(description = "上级id", example = "29684")
+    private Long parentId;
+
+    @Schema(description = "层级")
+    private Boolean level;
+
+}

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterpriseAddressDO.java

@@ -36,7 +36,7 @@ public class EnterpriseAddressDO extends TenantBaseDO {
      */
     private Long areaId;
     /**
-     * 公司地址
+     * 企业地址
      */
     private String address;
     /**

+ 8 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterpriseDO.java

@@ -49,7 +49,7 @@ public class EnterpriseDO extends TenantBaseDO {
      */
     private String website;
     /**
-     * 公司简介
+     * 企业简介
      */
     private String introduce;
     /**
@@ -81,15 +81,20 @@ public class EnterpriseDO extends TenantBaseDO {
      */
     private String scale;
     /**
-     * 公司福利
+     * 企业福利
      */
     @TableField(typeHandler = JacksonTypeHandler.class)
     private List<String> welfareList;
     /**
-     * 公司相册
+     * 企业相册
      */
     @TableField(typeHandler = JacksonTypeHandler.class)
     private List<String> albumList;
+    /**
+     * 企业标签
+     */
+    @TableField(typeHandler = JacksonTypeHandler.class)
+    private List<String> tagList;
     /**
      * 上班时间
      */

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/invite/EnterpriseInviteDO.java

@@ -36,7 +36,7 @@ public class EnterpriseInviteDO extends BaseDO {
      */
     private Long userId;
     /**
-     * 类型(0 邀请同事 | 1 邀请子公司)
+     * 类型(0 邀请同事 | 1 邀请子企业)
      */
     private String type;
     /**

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/invite/EnterpriseInviteRecordDO.java

@@ -44,7 +44,7 @@ public class EnterpriseInviteRecordDO extends BaseDO {
      */
     private Long inviteUserId;
     /**
-     * 类型(0 邀请同事 | 1 邀请子公司)
+     * 类型(0 邀请同事 | 1 邀请子企业)
      */
     private String type;
     /**

+ 52 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/tag/TagDO.java

@@ -0,0 +1,52 @@
+package com.citu.module.menduner.system.dal.dataobject.tag;
+
+
+import lombok.*;
+import java.util.*;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import com.citu.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 标签管理 DO
+ *
+ * @author Rayson
+ */
+@TableName("mde_tag")
+@KeySequence("mde_tag_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class TagDO extends BaseDO {
+
+    /**
+     * id
+     */
+    @TableId
+    private Long id;
+    /**
+     * 中文名称
+     */
+    private String nameCn;
+    /**
+     * 英文名称
+     */
+    private String nameEn;
+    /**
+     * 标签类型(0人员画像标签|1职位标签|2招聘职位标签|3企业福利标签|4企业标签)
+     */
+    private String type;
+    /**
+     * 上级id
+     */
+    private Long parentId;
+    /**
+     * 层级
+     */
+    private Boolean level;
+
+}

+ 10 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/es/job/ESJobAdvertisedMergeDO.java

@@ -165,7 +165,7 @@ public class ESJobAdvertisedMergeDO extends ESBaseDO {
      */
     private String website;
     /**
-     * 公司简介
+     * 企业简介
      */
     @Field(analyzer = FieldAnalyzer.IK_MAX_WORD, type = FieldType.Text)
     private String introduce;
@@ -203,12 +203,19 @@ public class ESJobAdvertisedMergeDO extends ESBaseDO {
     @Field(type = FieldType.Auto)
     private String scale;
     /**
-     * 公司福利
+     * 企业福利
      */
     @Field(type = FieldType.Auto)
     private List<String> welfareList;
+
+    /**
+     * 企业标签
+     */
+    @Field(type = FieldType.Auto)
+    private List<String> enterpriseTagList;
+
     /**
-     * 公司相册
+     * 企业相册
      */
     @Field(type = FieldType.Auto)
     private List<String> albumList;

+ 31 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/tag/TagMapper.java

@@ -0,0 +1,31 @@
+package com.citu.module.menduner.system.dal.mysql.tag;
+
+
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.framework.mybatis.core.mapper.BaseMapperX;
+import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.citu.module.menduner.system.controller.base.tag.TagPageReqVO;
+import com.citu.module.menduner.system.dal.dataobject.tag.TagDO;
+import org.apache.ibatis.annotations.Mapper;
+
+
+/**
+ * 标签管理 Mapper
+ *
+ * @author Rayson
+ */
+@Mapper
+public interface TagMapper extends BaseMapperX<TagDO> {
+
+    default PageResult<TagDO> selectPage(TagPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<TagDO>()
+                .likeIfPresent(TagDO::getNameCn, reqVO.getNameCn())
+                .likeIfPresent(TagDO::getNameEn, reqVO.getNameEn())
+                .eqIfPresent(TagDO::getType, reqVO.getType())
+                .eqIfPresent(TagDO::getParentId, reqVO.getParentId())
+                .eqIfPresent(TagDO::getLevel, reqVO.getLevel())
+                .betweenIfPresent(TagDO::getCreateTime, reqVO.getCreateTime())
+                .orderByDesc(TagDO::getId));
+    }
+
+}

+ 1 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/mq/consumer/ESConsumer.java

@@ -274,6 +274,7 @@ public class ESConsumer implements RocketMQListener<ESJobAdvertisedMergeSendMess
         mergeDO.setDevelopHistory(enterpriseDO.getDevelopHistory());
         mergeDO.setContact(enterpriseDO.getContact());
         mergeDO.setWelfareList(enterpriseDO.getWelfareList());
+        mergeDO.setEnterpriseTagList(enterpriseDO.getTagList());
         mergeDO.setAlbumList(enterpriseDO.getAlbumList());
         mergeDO.setWorkTime(enterpriseDO.getWorkTime());
         mergeDO.setReceivedHonors(enterpriseDO.getReceivedHonors());

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/invite/EnterpriseInviteRecordServiceImpl.java

@@ -162,7 +162,7 @@ public class EnterpriseInviteRecordServiceImpl implements EnterpriseInviteRecord
             EnterpriseUserBindDO userBind = userBindService
                     .selectByEnterpriseIdAndUserId(enterpriseId, userId);
 
-            // 邀请子公司
+            // 邀请子企业
             if (!userBindService.checkIsAdmin(userBind)) {
                 // 不是管理员 不能操作加入
                 throw exception(ENTERPRISE_INVITE_RECORD_NOT_ADMIN);
@@ -173,7 +173,7 @@ public class EnterpriseInviteRecordServiceImpl implements EnterpriseInviteRecord
                 throw exception(ENTERPRISE_INVITE_RECORD_EXIST_ENTERPRISE);
             }
             if (enterpriseService.checkHasParent(enterpriseId)) {
-                // 自己的公司已有所属上级
+                // 自己的企业已有所属上级
                 throw exception(ENTERPRISE_INVITE_RECORD_EXIST_PARENT);
             }
             // 更改企业的上级

+ 56 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/tag/TagService.java

@@ -0,0 +1,56 @@
+package com.citu.module.menduner.system.service.tag;
+
+
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.module.menduner.system.controller.base.tag.TagPageReqVO;
+import com.citu.module.menduner.system.controller.base.tag.TagSaveReqVO;
+import com.citu.module.menduner.system.dal.dataobject.tag.TagDO;
+
+import javax.validation.Valid;
+
+/**
+ * 标签管理 Service 接口
+ *
+ * @author Rayson
+ */
+public interface TagService {
+
+    /**
+     * 创建标签管理
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    Long createTag(@Valid TagSaveReqVO createReqVO);
+
+    /**
+     * 更新标签管理
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updateTag(@Valid TagSaveReqVO updateReqVO);
+
+    /**
+     * 删除标签管理
+     *
+     * @param id 编号
+     */
+    void deleteTag(Long id);
+
+    /**
+     * 获得标签管理
+     *
+     * @param id 编号
+     * @return 标签管理
+     */
+    TagDO getTag(Long id);
+
+    /**
+     * 获得标签管理分页
+     *
+     * @param pageReqVO 分页查询
+     * @return 标签管理分页
+     */
+    PageResult<TagDO> getTagPage(TagPageReqVO pageReqVO);
+
+}

+ 75 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/tag/TagServiceImpl.java

@@ -0,0 +1,75 @@
+package com.citu.module.menduner.system.service.tag;
+
+
+import com.citu.module.menduner.system.controller.base.tag.TagPageReqVO;
+import com.citu.module.menduner.system.controller.base.tag.TagSaveReqVO;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.citu.module.menduner.system.dal.dataobject.tag.TagDO;
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.framework.common.pojo.PageParam;
+import com.citu.framework.common.util.object.BeanUtils;
+
+import com.citu.module.menduner.system.dal.mysql.tag.TagMapper;
+
+import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.citu.module.menduner.system.enums.ErrorCodeConstants.*;
+
+/**
+ * 标签管理 Service 实现类
+ *
+ * @author Rayson
+ */
+@Service
+@Validated
+public class TagServiceImpl implements TagService {
+
+    @Resource
+    private TagMapper tagMapper;
+
+    @Override
+    public Long createTag(TagSaveReqVO createReqVO) {
+        // 插入
+        TagDO tag = BeanUtils.toBean(createReqVO, TagDO.class);
+        tagMapper.insert(tag);
+        // 返回
+        return tag.getId();
+    }
+
+    @Override
+    public void updateTag(TagSaveReqVO updateReqVO) {
+        // 校验存在
+        validateTagExists(updateReqVO.getId());
+        // 更新
+        TagDO updateObj = BeanUtils.toBean(updateReqVO, TagDO.class);
+        tagMapper.updateById(updateObj);
+    }
+
+    @Override
+    public void deleteTag(Long id) {
+        // 校验存在
+        validateTagExists(id);
+        // 删除
+        tagMapper.deleteById(id);
+    }
+
+    private void validateTagExists(Long id) {
+        if (tagMapper.selectById(id) == null) {
+            throw exception(TAG_NOT_EXISTS);
+        }
+    }
+
+    @Override
+    public TagDO getTag(Long id) {
+        return tagMapper.selectById(id);
+    }
+
+    @Override
+    public PageResult<TagDO> getTagPage(TagPageReqVO pageReqVO) {
+        return tagMapper.selectPage(pageReqVO);
+    }
+
+}

+ 2 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/util/ESQueryBuildUtils.java

@@ -37,7 +37,8 @@ public class ESQueryBuildUtils {
                             "content",
                             "enterpriseAnotherName",
                             "enterpriseName",
-                            "welfareList",
+                            "enterpriseTagList",
+                            "tagList",
                             "developHistory",
                             "receivedHonors"
                     )

+ 3 - 3
menduner/menduner-system-biz/src/main/resources/i18n/messages_zh_CN.properties

@@ -148,7 +148,7 @@
 1_100_019_002=企业编码不能为空
 1_100_019_003=未填写企业名称
 1_100_019_004=未填写企业别称
-1_100_019_005=未填写公司简介
+1_100_019_005=未填写企业简介
 1_100_019_006=未选择所在行业
 1_100_019_007=未选择融资阶段
 1_100_019_008=未选择人员规模
@@ -286,8 +286,8 @@
 1_100_041_005=邀请用户编号不能为空
 1_100_041_006=类型不能为空
 1_100_041_007=邀请码不能为空
-1_100_041_008=不是企业管理员不能操作成为子公司
-1_100_041_009=公司已存在所属上级,不能操作成为子公司
+1_100_041_008=不是企业管理员不能操作成为子企业
+1_100_041_009=企业已存在所属上级,不能操作成为子企业
 1_100_041_010=已加入该企业不可重复操作
 1_100_041_011=请先完善个人基本信息
 1_100_041_012=无法加入相同的企业

+ 144 - 0
menduner/menduner-system-biz/src/test/java/com/citu/module/menduner/system/service/tag/TagServiceImplTest.java

@@ -0,0 +1,144 @@
+package com.citu.module.menduner.system.service.tag;
+
+
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.framework.test.core.ut.BaseDbUnitTest;
+import com.citu.module.menduner.system.controller.base.tag.TagPageReqVO;
+import com.citu.module.menduner.system.controller.base.tag.TagSaveReqVO;
+import com.citu.module.menduner.system.dal.dataobject.tag.TagDO;
+import com.citu.module.menduner.system.dal.mysql.tag.TagMapper;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+import org.springframework.context.annotation.Import;
+
+import javax.annotation.Resource;
+
+import static com.citu.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime;
+import static com.citu.framework.common.util.object.ObjectUtils.cloneIgnoreId;
+import static com.citu.framework.test.core.util.AssertUtils.assertPojoEquals;
+import static com.citu.framework.test.core.util.AssertUtils.assertServiceException;
+import static com.citu.framework.test.core.util.RandomUtils.randomLongId;
+import static com.citu.framework.test.core.util.RandomUtils.randomPojo;
+import static com.citu.module.menduner.system.enums.ErrorCodeConstants.TAG_NOT_EXISTS;
+import static org.junit.jupiter.api.Assertions.*;
+
+/**
+ * {@link TagServiceImpl} 的单元测试类
+ *
+ * @author Rayson
+ */
+@Import(TagServiceImpl.class)
+public class TagServiceImplTest extends BaseDbUnitTest {
+
+    @Resource
+    private TagServiceImpl tagService;
+
+    @Resource
+    private TagMapper tagMapper;
+
+    @Test
+    public void testCreateTag_success() {
+        // 准备参数
+        TagSaveReqVO createReqVO = randomPojo(TagSaveReqVO.class).setId(null);
+
+        // 调用
+        Long tagId = tagService.createTag(createReqVO);
+        // 断言
+        assertNotNull(tagId);
+        // 校验记录的属性是否正确
+        TagDO tag = tagMapper.selectById(tagId);
+        assertPojoEquals(createReqVO, tag, "id");
+    }
+
+    @Test
+    public void testUpdateTag_success() {
+        // mock 数据
+        TagDO dbTag = randomPojo(TagDO.class);
+        tagMapper.insert(dbTag);// @Sql: 先插入出一条存在的数据
+        // 准备参数
+        TagSaveReqVO updateReqVO = randomPojo(TagSaveReqVO.class, o -> {
+            o.setId(dbTag.getId()); // 设置更新的 ID
+        });
+
+        // 调用
+        tagService.updateTag(updateReqVO);
+        // 校验是否更新正确
+        TagDO tag = tagMapper.selectById(updateReqVO.getId()); // 获取最新的
+        assertPojoEquals(updateReqVO, tag);
+    }
+
+    @Test
+    public void testUpdateTag_notExists() {
+        // 准备参数
+        TagSaveReqVO updateReqVO = randomPojo(TagSaveReqVO.class);
+
+        // 调用, 并断言异常
+        assertServiceException(() -> tagService.updateTag(updateReqVO), TAG_NOT_EXISTS);
+    }
+
+    @Test
+    public void testDeleteTag_success() {
+        // mock 数据
+        TagDO dbTag = randomPojo(TagDO.class);
+        tagMapper.insert(dbTag);// @Sql: 先插入出一条存在的数据
+        // 准备参数
+        Long id = dbTag.getId();
+
+        // 调用
+        tagService.deleteTag(id);
+        // 校验数据不存在了
+        assertNull(tagMapper.selectById(id));
+    }
+
+    @Test
+    public void testDeleteTag_notExists() {
+        // 准备参数
+        Long id = randomLongId();
+
+        // 调用, 并断言异常
+        assertServiceException(() -> tagService.deleteTag(id), TAG_NOT_EXISTS);
+    }
+
+    @Test
+    @Disabled  // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
+    public void testGetTagPage() {
+        // mock 数据
+        TagDO dbTag = randomPojo(TagDO.class, o -> { // 等会查询到
+            o.setNameCn(null);
+            o.setNameEn(null);
+            o.setType(null);
+            o.setParentId(null);
+            o.setLevel(null);
+            o.setCreateTime(null);
+        });
+        tagMapper.insert(dbTag);
+        // 测试 nameCn 不匹配
+        tagMapper.insert(cloneIgnoreId(dbTag, o -> o.setNameCn(null)));
+        // 测试 nameEn 不匹配
+        tagMapper.insert(cloneIgnoreId(dbTag, o -> o.setNameEn(null)));
+        // 测试 type 不匹配
+        tagMapper.insert(cloneIgnoreId(dbTag, o -> o.setType(null)));
+        // 测试 parentId 不匹配
+        tagMapper.insert(cloneIgnoreId(dbTag, o -> o.setParentId(null)));
+        // 测试 level 不匹配
+        tagMapper.insert(cloneIgnoreId(dbTag, o -> o.setLevel(null)));
+        // 测试 createTime 不匹配
+        tagMapper.insert(cloneIgnoreId(dbTag, o -> o.setCreateTime(null)));
+        // 准备参数
+        TagPageReqVO reqVO = new TagPageReqVO();
+        reqVO.setNameCn(null);
+        reqVO.setNameEn(null);
+        reqVO.setType(null);
+        reqVO.setParentId(null);
+        reqVO.setLevel(null);
+        reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
+
+        // 调用
+        PageResult<TagDO> pageResult = tagService.getTagPage(reqVO);
+        // 断言
+        assertEquals(1, pageResult.getTotal());
+        assertEquals(1, pageResult.getList().size());
+        assertPojoEquals(dbTag, pageResult.getList().get(0));
+    }
+
+}

+ 2 - 1
menduner/menduner-system-biz/src/test/resources/sql/clean.sql

@@ -35,4 +35,5 @@ DELETE FROM "mde_enterprise_invite_record";
 
 DELETE FROM "mde_interview_invite";
 
-DELETE FROM "mde_enterprise_auth";
+DELETE FROM "mde_enterprise_auth";
+DELETE FROM "mde_tag";

+ 17 - 1
menduner/menduner-system-biz/src/test/resources/sql/create_tables.sql

@@ -623,4 +623,20 @@ CREATE TABLE IF NOT EXISTS "mde_enterprise_auth" (
     "deleted" bit NOT NULL DEFAULT FALSE,
     "tenant_id" bigint NOT NULL,
     PRIMARY KEY ("id")
-) COMMENT '企业实名认证';
+) COMMENT '企业实名认证';
+
+CREATE TABLE IF NOT EXISTS "mde_tag" (
+    "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
+    "name_cn" varchar NOT NULL,
+    "name_en" varchar NOT NULL,
+    "type" varchar NOT NULL,
+    "parent_id" bigint,
+    "level" bit,
+    "creator" varchar DEFAULT '',
+    "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    "updater" varchar DEFAULT '',
+    "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+    "deleted" bit NOT NULL DEFAULT FALSE,
+    "tenant_id" bigint NOT NULL,
+    PRIMARY KEY ("id")
+) COMMENT '标签管理';