Browse Source

1、增加标签管理逻辑

rayson 11 tháng trước cách đây
mục cha
commit
4f825e3aa1
14 tập tin đã thay đổi với 190 bổ sung21 xóa
  1. 9 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/tag/TagController.java
  2. 13 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/AppAdminEnterpriseController.java
  3. 15 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/vo/AppAdminEnterpriseTagReqVO.java
  4. 38 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/tag/TagChildrenRespVO.java
  5. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/tag/TagPageReqVO.java
  6. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/tag/TagRespVO.java
  7. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/tag/TagSaveReqVO.java
  8. 17 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/TagConvert.java
  9. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/tag/TagDO.java
  10. 8 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/tag/TagMapper.java
  11. 9 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/EnterpriseService.java
  12. 11 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/EnterpriseServiceImpl.java
  13. 10 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/tag/TagService.java
  14. 56 9
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/tag/TagServiceImpl.java

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

@@ -6,6 +6,7 @@ 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.TagChildrenRespVO;
 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;
@@ -19,6 +20,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import javax.annotation.security.PermitAll;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.io.IOException;
@@ -90,4 +92,11 @@ public class TagController {
                 BeanUtils.toBean(list, TagRespVO.class));
     }
 
+    @PermitAll
+    @GetMapping("/get/by/type")
+    @Operation(summary = "根据类型获取标签信息")
+    public CommonResult<List<TagChildrenRespVO>> get(@RequestParam("type") String type) {
+        return success(tagService.getTagByType(type));
+    }
+
 }

+ 13 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/AppAdminEnterpriseController.java

@@ -71,18 +71,27 @@ public class AppAdminEnterpriseController {
     @PreAuthenticated
     @PostMapping("/album/update")
     @Operation(summary = "修改企业相册")
-    public CommonResult<Boolean> uploadAlbum(
+    public CommonResult<Boolean> updateAlbum(
             @Valid @RequestBody AppAdminEnterpriseAlbumReqVO reqVO) {
-        enterpriseService.uploadAlbum(reqVO);
+        enterpriseService.updateAlbum(reqVO);
         return success(true);
     }
 
     @PreAuthenticated
     @PostMapping("/welfare/update")
     @Operation(summary = "修改企业福利标签")
-    public CommonResult<Boolean> uploadWelfare(
+    public CommonResult<Boolean> updateWelfare(
             @Valid @RequestBody AppAdminEnterpriseWelfareReqVO reqVO) {
-        enterpriseService.uploadWelfare(reqVO);
+        enterpriseService.updateWelfare(reqVO);
+        return success(true);
+    }
+
+    @PreAuthenticated
+    @PostMapping("/tag/update")
+    @Operation(summary = "修改企业标签")
+    public CommonResult<Boolean> updateTag(
+            @Valid @RequestBody AppAdminEnterpriseTagReqVO reqVO) {
+        enterpriseService.updateTag(reqVO);
         return success(true);
     }
 

+ 15 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/vo/AppAdminEnterpriseTagReqVO.java

@@ -0,0 +1,15 @@
+package com.citu.module.menduner.system.controller.appadmin.enterprise.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Schema(description = "menduner - 企业标签 Request VO")
+@Data
+public class AppAdminEnterpriseTagReqVO {
+
+    @Schema(description = "企业标签")
+    private List<String> tagList;
+
+}

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

@@ -0,0 +1,38 @@
+package com.citu.module.menduner.system.controller.base.tag;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Schema(description = "管理后台 - 标签管理 Response VO")
+@Data
+public class TagChildrenRespVO {
+
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "25820")
+    private Long id;
+
+    @Schema(description = "中文名称", requiredMode = Schema.RequiredMode.REQUIRED)
+    private String nameCn;
+
+    @Schema(description = "英文名称", requiredMode = Schema.RequiredMode.REQUIRED)
+    private String nameEn;
+
+    @Schema(description = "标签类型(0人员画像标签|1职位标签|2招聘职位标签|3企业福利标签|4企业标签)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    private String type;
+
+    @Schema(description = "上级id", example = "29684")
+    private Long parentId;
+
+    @Schema(description = "层级")
+    private Integer level;
+
+    @Schema(description = "路径")
+    private String path;
+
+    /**
+     * 子节点
+     */
+    private List<TagChildrenRespVO> children;
+
+}

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

@@ -31,7 +31,7 @@ public class TagPageReqVO extends PageParam {
     private Long parentId;
 
     @Schema(description = "层级")
-    private Boolean level;
+    private Integer level;
 
     @Schema(description = "创建时间")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)

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

@@ -34,7 +34,7 @@ public class TagRespVO {
 
     @Schema(description = "层级")
     @ExcelProperty("层级")
-    private Boolean level;
+    private Integer level;
 
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("创建时间")

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

@@ -29,6 +29,6 @@ public class TagSaveReqVO {
     private Long parentId;
 
     @Schema(description = "层级")
-    private Boolean level;
+    private Integer level;
 
 }

+ 17 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/TagConvert.java

@@ -0,0 +1,17 @@
+package com.citu.module.menduner.system.convert;
+
+import com.citu.module.menduner.system.controller.base.tag.TagChildrenRespVO;
+import com.citu.module.menduner.system.dal.dataobject.tag.TagDO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+@Mapper
+public interface TagConvert {
+
+    TagConvert INSTANCE = Mappers.getMapper(TagConvert.class);
+
+    List<TagChildrenRespVO> convertList(List<TagDO> list);
+
+}

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

@@ -47,6 +47,6 @@ public class TagDO extends BaseDO {
     /**
      * 层级
      */
-    private Boolean level;
+    private Integer level;
 
 }

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

@@ -8,6 +8,8 @@ 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;
 
+import java.util.List;
+
 
 /**
  * 标签管理 Mapper
@@ -28,4 +30,10 @@ public interface TagMapper extends BaseMapperX<TagDO> {
                 .orderByDesc(TagDO::getId));
     }
 
+    default List<TagDO> selectListByType(String type) {
+        return selectList( new LambdaQueryWrapperX<TagDO>()
+                .eqIfPresent(TagDO::getType, type)
+        );
+    }
+
 }

+ 9 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/EnterpriseService.java

@@ -12,6 +12,7 @@ import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpris
 import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseSearchPageReqVO;
 import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import javax.validation.Valid;
 import java.util.List;
@@ -159,13 +160,19 @@ public interface EnterpriseService {
      * 修改企业相册
      * @param reqVO
      **/
-    void uploadAlbum(AppAdminEnterpriseAlbumReqVO reqVO);
+    void updateAlbum(AppAdminEnterpriseAlbumReqVO reqVO);
 
     /**
      * 修改企业福利标签
      * @param reqVO
      **/
-    void uploadWelfare(AppAdminEnterpriseWelfareReqVO reqVO);
+    void updateWelfare(AppAdminEnterpriseWelfareReqVO reqVO);
+
+    /**
+     * 修改企业标签
+     * @param reqVO
+     **/
+    void updateTag(AppAdminEnterpriseTagReqVO reqVO);
 
     /**
      * 修改企业基本信息

+ 11 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/EnterpriseServiceImpl.java

@@ -247,7 +247,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
 
     @Override
     @DSTransactional
-    public void uploadAlbum(AppAdminEnterpriseAlbumReqVO reqVO) {
+    public void updateAlbum(AppAdminEnterpriseAlbumReqVO reqVO) {
         EnterpriseDO enterprise = selectEnterprise();
         enterprise.setAlbumList(reqVO.getAlbumList());
         enterpriseMapper.updateById(enterprise);
@@ -256,13 +256,22 @@ public class EnterpriseServiceImpl implements EnterpriseService {
 
     @Override
     @DSTransactional
-    public void uploadWelfare(AppAdminEnterpriseWelfareReqVO reqVO) {
+    public void updateWelfare(AppAdminEnterpriseWelfareReqVO reqVO) {
         EnterpriseDO enterprise = selectEnterprise();
         enterprise.setWelfareList(reqVO.getWelfareList());
         enterpriseMapper.updateById(enterprise);
         noticeES(enterprise.getId(), ESOperateEnum.ENTERPRISE_UPDATE);
     }
 
+    @Override
+    @DSTransactional
+    public void updateTag(AppAdminEnterpriseTagReqVO reqVO) {
+        EnterpriseDO enterprise = selectEnterprise();
+        enterprise.setTagList(reqVO.getTagList());
+        enterpriseMapper.updateById(enterprise);
+        noticeES(enterprise.getId(), ESOperateEnum.ENTERPRISE_UPDATE);
+    }
+
     @Override
     @DSTransactional
     public void update(AppAdminEnterpriseSaveReqVO reqVO) {

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

@@ -2,11 +2,13 @@ package com.citu.module.menduner.system.service.tag;
 
 
 import com.citu.framework.common.pojo.PageResult;
+import com.citu.module.menduner.system.controller.base.tag.TagChildrenRespVO;
 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;
+import java.util.List;
 
 /**
  * 标签管理 Service 接口
@@ -53,4 +55,12 @@ public interface TagService {
      */
     PageResult<TagDO> getTagPage(TagPageReqVO pageReqVO);
 
+    /**
+     * 获得标签管理列表
+     *
+     * @param type 标签类型
+     * @return 标签管理列表
+     */
+    List<TagChildrenRespVO> getTagByType(String type);
+
 }

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

@@ -1,22 +1,29 @@
 package com.citu.module.menduner.system.service.tag;
 
 
+import cn.hutool.core.collection.CollUtil;
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.framework.common.util.object.BeanUtils;
+import com.citu.module.menduner.system.controller.app.industry.vo.AppIndustryChildrenRespVO;
+import com.citu.module.menduner.system.controller.base.tag.TagChildrenRespVO;
 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.convert.IndustryConvert;
+import com.citu.module.menduner.system.convert.TagConvert;
+import com.citu.module.menduner.system.dal.dataobject.tag.TagDO;
+import com.citu.module.menduner.system.dal.mysql.tag.TagMapper;
 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 javax.annotation.Resource;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static com.citu.module.menduner.system.enums.ErrorCodeConstants.*;
+import static com.citu.module.menduner.system.enums.ErrorCodeConstants.TAG_NOT_EXISTS;
 
 /**
  * 标签管理 Service 实现类
@@ -72,4 +79,44 @@ public class TagServiceImpl implements TagService {
         return tagMapper.selectPage(pageReqVO);
     }
 
+    @Override
+    public List<TagChildrenRespVO> getTagByType(String type) {
+        List<TagDO> list = tagMapper.selectListByType(type);
+        if (CollUtil.isEmpty(list)) {
+            return null;
+        }
+
+        List<TagChildrenRespVO> convertList = TagConvert.INSTANCE.convertList(list);
+        List<TagChildrenRespVO> convertListSort = convertList.stream()
+                .sorted(Comparator.comparing(TagChildrenRespVO::getLevel))
+                .collect(Collectors.toList());
+
+        List<TagChildrenRespVO> rootList = convertListSort.stream()
+                .filter(root -> root.getParentId() == 0)
+                .collect(Collectors.toList());
+
+        return rootList.stream().peek(root -> {
+            root.setPath(String.valueOf(root.getId()));
+            root.setChildren(getChildren(root, convertListSort));
+        }).collect(Collectors.toList());
+
+    }
+
+    /**
+     * 递归查询子节点
+     *
+     * @param root 根节点
+     * @param all  所有节点
+     * @return 根节点信息
+     */
+    private List<TagChildrenRespVO> getChildren(TagChildrenRespVO root, List<TagChildrenRespVO> all) {
+        return all.stream()
+                .filter(child -> Objects.equals(child.getParentId(), root.getId()))
+                .map(child -> {
+                    child.setPath(root.getPath() + "," + child.getId());
+                    child.setChildren(getChildren(child, all));
+                    return child;
+                })
+                .collect(Collectors.toList());
+    }
 }