Przeglądaj źródła

1、增加导出职位模板
2、增加导入职位数据
3、增加职位续期接口
4、移除企业岗位管理

rayson 9 miesięcy temu
rodzic
commit
df1f639e70
45 zmienionych plików z 326 dodań i 895 usunięć
  1. 8 1
      citu-framework/citu-spring-boot-starter-web/src/main/java/com/citu/framework/web/core/handler/GlobalExceptionHandler.java
  2. 17 4
      menduner/menduner-common/src/main/java/com/citu/module/menduner/common/util/LoginUserContext.java
  3. 3 5
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java
  4. 11 4
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/job/JobTypeEnum.java
  5. 2 2
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/job/PayTypeEnum.java
  6. 0 93
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/EnterprisePostController.java
  7. 0 34
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/enterprise/AppEnterprisePostController.java
  8. 0 71
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/enterprise/AppRecruitEnterprisePostController.java
  9. 54 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/AppRecruitJobAdvertisedController.java
  10. 17 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/vo/AppRecruitJobRenewalReqVO.java
  11. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/vo/AppRecruitJobSaveReqVO.java
  12. 7 14
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/user/AppRecruitUserController.java
  13. 0 10
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/user/vo/AppRecruitEnterprisePostSimpleRespVO.java
  14. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/user/vo/AppRecruitUserPageReqVO.java
  15. 0 6
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/user/vo/AppRecruitUserRespVO.java
  16. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/user/vo/AppRecruitUserSaveReqVO.java
  17. 0 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/bind/EnterpriseUserBindDetailRespVO.java
  18. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/bind/EnterpriseUserBindPageReqVO.java
  19. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/bind/EnterpriseUserBindReqVO.java
  20. 4 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/bind/EnterpriseUserBindRespVO.java
  21. 3 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/bind/EnterpriseUserBindSaveReqVO.java
  22. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/bind/EnterpriseUserBindSimpleRespVO.java
  23. 9 10
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobAdvertisedImportExcelVO.java
  24. 0 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/EnterpriseConvert.java
  25. 0 18
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/EnterprisePostConvert.java
  26. 6 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/JobAdvertisedConvert.java
  27. 0 59
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterprisePostDO.java
  28. 6 8
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterpriseUserBindDO.java
  29. 5 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/area/AreaMapper.java
  30. 0 54
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterprisePostMapper.java
  31. 1 24
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseUserBindMapper.java
  32. 13 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobAdvertisedMapper.java
  33. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/position/PositionMapper.java
  34. 0 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/apply/EnterpriseUserApplyServiceImpl.java
  35. 8 11
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/bind/EnterpriseUserBindService.java
  36. 45 52
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/bind/EnterpriseUserBindServiceImpl.java
  37. 0 107
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/post/EnterprisePostService.java
  38. 0 132
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/post/EnterprisePostServiceImpl.java
  39. 9 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedService.java
  40. 28 7
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedServiceImpl.java
  41. 6 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobIntegrationService.java
  42. 41 7
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobIntegrationServiceImpl.java
  43. 2 0
      menduner/menduner-system-biz/src/main/resources/i18n/messages_en_US.properties
  44. 2 0
      menduner/menduner-system-biz/src/main/resources/i18n/messages_zh_CN.properties
  45. 0 144
      menduner/menduner-system-biz/src/test/java/com/citu/module/menduner/system/service/enterprise/EnterprisePostServiceImplTest.java

+ 8 - 1
citu-framework/citu-spring-boot-starter-web/src/main/java/com/citu/framework/web/core/handler/GlobalExceptionHandler.java

@@ -138,7 +138,14 @@ public class GlobalExceptionHandler {
             // 找不到国际化信息,则使用默认的错误提示
             return CommonResult.error(code, msg);
         } else {
-            return CommonResult.error(code, i18nMsg);
+            if (LocaleContextHolder.getLocale().equals(Locale.CHINA)) {
+                return CommonResult.error(code, msg);
+            } else {
+                // TODO 其他语句有一个问题,如果是  throw exception({},{}, 参数,参数2); 会有问题;
+                // TODO 因为是 先替换{} —> 抛出异常 -> 判断是否国际化 -> 到对应国际化配置里面找内容抛出,所以{}暂时做不到其他语言
+                // TODO 中文可以是英文,代码里面使用的是ErrorCodeConstants的常量值
+                return CommonResult.error(code, i18nMsg);
+            }
         }
     }
 

+ 17 - 4
menduner/menduner-common/src/main/java/com/citu/module/menduner/common/util/LoginUserContext.java

@@ -1,7 +1,6 @@
 package com.citu.module.menduner.common.util;
 
 import cn.hutool.core.collection.CollUtil;
-import com.citu.framework.common.enums.UserTypeEnum;
 import com.citu.framework.security.core.LoginUser;
 import com.citu.framework.security.core.util.SecurityFrameworkUtils;
 
@@ -85,7 +84,7 @@ public class LoginUserContext {
      **/
     public static Long getEnterpriseId2(LoginUser loginUser) {
         if (!checkEnterprise(loginUser)) {
-          return null;
+            return null;
         }
         return Long.valueOf(loginUser.getInfo().get(LoginUser.INFO_KEY_DATA_ID));
     }
@@ -107,9 +106,9 @@ public class LoginUserContext {
     }
 
     /**
-     * 效验当前用户企业信息是否为UserTypeEnum.MEMBER_ADMIN
+     * 效验当前是不是用户企业信息,不是就抛出异常
      **/
-    public static LoginUser checkUserTypeIsAdmin() {
+    public static LoginUser checkIsEnterpriseUser() {
         LoginUser loginUser = LoginUserContext.get();
         // 判断操作者是否有权限操作
         if (!checkEnterprise(loginUser)) {
@@ -117,4 +116,18 @@ public class LoginUserContext {
         }
         return loginUser;
     }
+
+
+    /**
+     * 效验当前是不是用户企业信息,不是就抛出异常
+     **/
+    public static boolean checkIsEnterpriseUserRetBool() {
+        LoginUser loginUser = LoginUserContext.get();
+        // 判断操作者是否有权限操作
+        if (!checkEnterprise(loginUser)) {
+            return false;
+        }
+        return true;
+    }
+
 }

+ 3 - 5
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java

@@ -28,7 +28,6 @@ public interface ErrorCodeConstants {
     ErrorCode MDE_COMMON_USER_TYPE_NOT_NULL = new ErrorCode(1_099_000_008, "用户类型不能为空");
 
 
-
     // ========== 人员信息-个人档案 1_100_001_000 ==========
     ErrorCode MDE_USER_INFO_NOT_EXISTS = new ErrorCode(1_100_001_001, "个人档案不存在");
     ErrorCode MDE_PERSON_ADVANTAGE_NOT_EXISTS = new ErrorCode(1_100_001_002, "个人优势不能为空");
@@ -172,7 +171,6 @@ public interface ErrorCodeConstants {
     ErrorCode MDE_USER_EMAIL_NOT_REGISTERED = new ErrorCode(1_100_017_019, "邮箱号未注册");
 
 
-
     // ========== 角色模块 1_100_018_000 ==========
     ErrorCode MDE_ROLE_NOT_EXISTS = new ErrorCode(1_100_018_001, "角色不存在");
     ErrorCode MDE_ROLE_NAME_DUPLICATE = new ErrorCode(1_100_018_002, "已经存在名为【{}】的角色");
@@ -239,7 +237,6 @@ public interface ErrorCodeConstants {
             = new ErrorCode(1_100_021_012, "统一社会信用代码已被注册");
 
 
-
     ErrorCode MDE_ENTERPRISE_REGISTER_CONTACT_NAME_NOT_NULL = new ErrorCode(1_100_021_013, "联系人名称不能为空");
 
     ErrorCode MDE_ENTERPRISE_REGISTER_PASSWORD_NOT_NULL = new ErrorCode(1_100_021_014, "密码不能为空");
@@ -262,7 +259,6 @@ public interface ErrorCodeConstants {
     ErrorCode MDE_ENTERPRISE_USER_BIND_PASSWORD_LENGTH = new ErrorCode(1_100_023_006, "新密码长度为 8-16 位");
 
 
-
     // ========== 企业岗位信息 1_100_024_000 ==========
     ErrorCode ENTERPRISE_POST_NOT_EXISTS = new ErrorCode(1_100_024_001, "企业岗位信息不存在");
     ErrorCode ENTERPRISE_POST_NAME_CN_NOT_NULL = new ErrorCode(1_100_024_002, "岗位中文名称不能为空");
@@ -282,6 +278,8 @@ public interface ErrorCodeConstants {
     ErrorCode MDE_JOB_ADVERTISED_BALANCE_UPDATE = new ErrorCode(1_100_025_010, "不能修改已发布职位赏金余额");
     ErrorCode MDE_JOB_ADVERTISED_POINT_UPDATE = new ErrorCode(1_100_025_011, "不能修改已发布职位赏金积分");
 
+    ErrorCode MDE_JOB_ADVERTISED_NAME_DUPLICATE = new ErrorCode(1_100_025_012, "职位名称({})已存在,请修改后重新保存");
+    ErrorCode MDE_JOB_ADVERTISED_TIME_ERROR = new ErrorCode(1_100_025_013, "到期时间不能小于当前时间");
 
     // ========== 企业招聘者浏览 1_100_026_000 ==========
     ErrorCode ENTERPRISE_USER_LOOK_NOT_EXISTS = new ErrorCode(1_100_026_001, "企业招聘者浏览不存在");
@@ -425,7 +423,7 @@ public interface ErrorCodeConstants {
     ErrorCode ENTERPRISE_INVITE_RECORD_EXIST_PARENT =
             new ErrorCode(1_100_041_009, "公司已存在所属上级,不能操作成为子公司");
 
-    ErrorCode ENTERPRISE_INVITE_RECORD_EXIST=
+    ErrorCode ENTERPRISE_INVITE_RECORD_EXIST =
             new ErrorCode(1_100_041_010, "已加入该企业不可重复操作");
 
     ErrorCode ENTERPRISE_INVITE_RECORD_PERSON_INFO_NOT_COMPLETE =

+ 11 - 4
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/job/JobTypeEnum.java

@@ -10,13 +10,20 @@ import lombok.Getter;
 @AllArgsConstructor
 public enum JobTypeEnum {
 
-    FULL_TIME("0"),
-    PART_TIME("1"),
-    TEMPORARY("2"),
-    INTERNSHIP("3");
+    FULL_TIME("0","全职"),
+    PART_TIME("1","兼职"),
+    TEMPORARY("2","临时"),
+    INTERNSHIP("3","实习");
 
     /**
      * 类型
      */
     private final String type;
+
+
+    /**
+     * 标题
+     */
+    private final String name;
+
 }

+ 2 - 2
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/job/PayTypeEnum.java

@@ -12,8 +12,8 @@ public enum PayTypeEnum {
 
     HOUR_WAGE("0","时"),
     DAY_WAGE("1","天"),
-    MONTH_WAGE("2","月"),
-    YEAR_WAGE("3","年");
+    MONTH_WAGE("2","月"),
+    YEAR_WAGE("3","年");
 
     /**
      * 类型

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

@@ -1,93 +0,0 @@
-package com.citu.module.menduner.system.controller.admin.enterprise;
-
-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.enterprise.post.EnterprisePostPageReqVO;
-import com.citu.module.menduner.system.controller.base.enterprise.post.EnterprisePostRespVO;
-import com.citu.module.menduner.system.controller.base.enterprise.post.EnterprisePostSaveReqVO;
-import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterprisePostDO;
-import com.citu.module.menduner.system.service.enterprise.post.EnterprisePostService;
-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/enterprise-post")
-@Validated
-public class EnterprisePostController {
-
-    @Resource
-    private EnterprisePostService enterprisePostService;
-
-    @PostMapping("/create")
-    @Operation(summary = "创建企业岗位信息")
-    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-post:create')")
-    public CommonResult<Long> createEnterprisePost(@Valid @RequestBody EnterprisePostSaveReqVO createReqVO) {
-        return success(enterprisePostService.createEnterprisePost(createReqVO));
-    }
-
-    @PutMapping("/update")
-    @Operation(summary = "更新企业岗位信息")
-    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-post:update')")
-    public CommonResult<Boolean> updateEnterprisePost(@Valid @RequestBody EnterprisePostSaveReqVO updateReqVO) {
-        enterprisePostService.updateEnterprisePost(updateReqVO);
-        return success(true);
-    }
-
-    @DeleteMapping("/delete")
-    @Operation(summary = "删除企业岗位信息")
-    @Parameter(name = "id", description = "编号", required = true)
-    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-post:delete')")
-    public CommonResult<Boolean> deleteEnterprisePost(@RequestParam("id") Long id) {
-        enterprisePostService.deleteEnterprisePost(id);
-        return success(true);
-    }
-
-    @GetMapping("/get")
-    @Operation(summary = "获得企业岗位信息")
-    @Parameter(name = "id", description = "编号", required = true, example = "1024")
-    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-post:query')")
-    public CommonResult<EnterprisePostRespVO> getEnterprisePost(@RequestParam("id") Long id) {
-        EnterprisePostDO enterprisePost = enterprisePostService.getEnterprisePost(id);
-        return success(BeanUtils.toBean(enterprisePost, EnterprisePostRespVO.class));
-    }
-
-    @GetMapping("/page")
-    @Operation(summary = "获得企业岗位信息分页")
-    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-post:query')")
-    public CommonResult<PageResult<EnterprisePostRespVO>> getEnterprisePostPage(@Valid EnterprisePostPageReqVO pageReqVO) {
-        PageResult<EnterprisePostDO> pageResult = enterprisePostService.getEnterprisePostPage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, EnterprisePostRespVO.class));
-    }
-
-    @GetMapping("/export-excel")
-    @Operation(summary = "导出企业岗位信息 Excel")
-    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-post:export')")
-    @ApiAccessLog(operateType = EXPORT)
-    public void exportEnterprisePostExcel(@Valid EnterprisePostPageReqVO pageReqVO,
-                                          HttpServletResponse response) throws IOException {
-        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<EnterprisePostDO> list = enterprisePostService.getEnterprisePostPage(pageReqVO).getList();
-        // 导出 Excel
-        ExcelUtils.write(response, "企业岗位信息.xls", "数据", EnterprisePostRespVO.class,
-                BeanUtils.toBean(list, EnterprisePostRespVO.class));
-    }
-
-}

+ 0 - 34
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/enterprise/AppEnterprisePostController.java

@@ -1,34 +0,0 @@
-package com.citu.module.menduner.system.controller.app.jobhunt.enterprise;
-
-import com.citu.framework.common.pojo.CommonResult;
-import com.citu.module.menduner.system.controller.app.jobhunt.enterprise.vo.AppEnterprisePostRespVO;
-import com.citu.module.menduner.system.service.enterprise.post.EnterprisePostService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import java.util.List;
-
-import static com.citu.framework.common.pojo.CommonResult.success;
-
-@Tag(name = "求职端 - 企业岗位信息")
-@RestController
-@RequestMapping("/menduner/system/enterprise-post")
-@Validated
-public class AppEnterprisePostController {
-
-    @Resource
-    private EnterprisePostService enterprisePostService;
-
-    @GetMapping("/by/enterprise")
-    @Operation(summary = "根据企业id搜索企业的岗位")
-    public CommonResult<List<AppEnterprisePostRespVO>> selectListByEnterpriseId(@RequestParam("enterpriseId") Long enterpriseId) {
-        return success(enterprisePostService.selectListByEnterpriseId(enterpriseId));
-    }
-
-}

+ 0 - 71
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/enterprise/AppRecruitEnterprisePostController.java

@@ -1,71 +0,0 @@
-package com.citu.module.menduner.system.controller.app.recruit.enterprise;
-
-import com.citu.framework.common.pojo.CommonResult;
-import com.citu.framework.common.pojo.PageResult;
-import com.citu.framework.security.core.annotations.PreAuthenticated;
-import com.citu.module.menduner.system.controller.app.recruit.enterprise.post.AppRecruitEnterprisePostPageReqVO;
-import com.citu.module.menduner.system.controller.app.recruit.enterprise.post.AppRecruitEnterprisePostRespVO;
-import com.citu.module.menduner.system.controller.app.recruit.enterprise.post.AppRecruitEnterprisePostSaveReqVO;
-import com.citu.module.menduner.system.service.enterprise.post.EnterprisePostService;
-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.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.Resource;
-import javax.validation.Valid;
-
-import static com.citu.framework.common.pojo.CommonResult.success;
-
-@Tag(name = "招聘端 - 企业岗位信息")
-@RestController
-@RequestMapping("/menduner/system/recruit/enterprise-post")
-@Validated
-public class AppRecruitEnterprisePostController {
-
-    @Resource
-    private EnterprisePostService enterprisePostService;
-
-    @PostMapping("/create")
-    @Operation(summary = "新增")
-    @PreAuthenticated
-    public CommonResult<Long> create(
-            @Valid @RequestBody AppRecruitEnterprisePostSaveReqVO createReqVO) {
-        return success(enterprisePostService.create(createReqVO));
-    }
-
-    @PutMapping("/update")
-    @Operation(summary = "更新")
-    @PreAuthenticated
-    public CommonResult<Boolean> update(
-            @Valid @RequestBody AppRecruitEnterprisePostSaveReqVO updateReqVO) {
-        enterprisePostService.update(updateReqVO);
-        return success(true);
-    }
-
-    @DeleteMapping("/delete")
-    @Operation(summary = "删除")
-    @Parameter(name = "id", description = "编号", required = true)
-    @PreAuthenticated
-    public CommonResult<Boolean> delete(@RequestParam("id") Long id) {
-        enterprisePostService.delete(id);
-        return success(true);
-    }
-
-    @GetMapping("/get")
-    @Operation(summary = "获得")
-    @Parameter(name = "id", description = "编号", required = true, example = "1024")
-    @PreAuthenticated
-    public CommonResult<AppRecruitEnterprisePostRespVO> get(@RequestParam("id") Long id) {
-        return success(enterprisePostService.get(id));
-    }
-
-    @GetMapping("/page")
-    @Operation(summary = "获得分页")
-    @PreAuthenticated
-    public CommonResult<PageResult<AppRecruitEnterprisePostRespVO>> page(
-            @Valid AppRecruitEnterprisePostPageReqVO pageReqVO) {
-        return success(enterprisePostService.page(pageReqVO));
-    }
-}

+ 54 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/AppRecruitJobAdvertisedController.java

@@ -5,12 +5,19 @@ 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.date.LocalDateTimeUtils;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.common.util.string.StrUtils;
 import com.citu.framework.excel.core.util.ExcelUtils;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.*;
+import com.citu.module.menduner.system.controller.base.job.JobAdvertisedImportExcelVO;
 import com.citu.module.menduner.system.convert.JobAdvertisedConvert;
+import com.citu.module.menduner.system.enums.eduexp.EducationTypeEnum;
+import com.citu.module.menduner.system.enums.job.JobStatusEnum;
+import com.citu.module.menduner.system.enums.job.JobTypeEnum;
+import com.citu.module.menduner.system.enums.job.PayTypeEnum;
+import com.citu.module.menduner.system.enums.workexp.ExpTypeEnum;
 import com.citu.module.menduner.system.service.enterprisejob.EnterpriseJobService;
 import com.citu.module.menduner.system.service.job.JobAdvertisedService;
 import com.citu.module.menduner.system.service.job.JobIntegrationService;
@@ -18,11 +25,15 @@ import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.io.IOException;
+import java.math.BigDecimal;
+import java.time.Duration;
+import java.util.Arrays;
 import java.util.List;
 
 import static com.citu.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
@@ -49,6 +60,7 @@ public class AppRecruitJobAdvertisedController {
         return success(jobIntegrationService.page(pageReqVO));
     }
 
+    @PreAuthenticated
     @GetMapping("/export")
     @Operation(summary = "导出招聘职位 Excel")
     @ApiAccessLog(operateType = EXPORT)
@@ -61,6 +73,40 @@ public class AppRecruitJobAdvertisedController {
                 BeanUtils.toBean(list, AppRecruitJobExportRespVO.class));
     }
 
+    @GetMapping("/import-template")
+    @Operation(summary = "导入招聘职位模板")
+    @ApiAccessLog(operateType = EXPORT)
+    public void importTemplate(HttpServletResponse response) throws IOException {
+        // 手动创建导出 demo
+        List<JobAdvertisedImportExcelVO> list = Arrays.asList(
+                JobAdvertisedImportExcelVO.builder().name("人力资源经理").position("人力资源经理").type(JobTypeEnum.FULL_TIME.getType())
+                        .expType(ExpTypeEnum.THREE_TO_FIVE_YEARS.getType()).eduType(EducationTypeEnum.COLLEGE.getType())
+                        .payFrom(BigDecimal.valueOf(10000)).payTo(BigDecimal.valueOf(15000))
+                        .payUnit(PayTypeEnum.MONTH_WAGE.getType()).content("岗位职责内容").requirement("岗位要求")
+                        .expireTime(LocalDateTimeUtils.addTime(Duration.ofDays(7))).area("广州市").address("天河区")
+                        .status(JobStatusEnum.ENABLE.getStatus()).build(),
+
+                JobAdvertisedImportExcelVO.builder().name("企业副总裁").position("副总裁").type(JobTypeEnum.TEMPORARY.getType())
+                        .expType(ExpTypeEnum.MORE_THAN_TWENTY_YEARS.getType()).eduType(EducationTypeEnum.DOCTOR.getType())
+                        .payFrom(BigDecimal.valueOf(10000)).payTo(BigDecimal.valueOf(15000))
+                        .payUnit(PayTypeEnum.DAY_WAGE.getType()).content("岗位职责内容").requirement("岗位要求")
+                        .expireTime(LocalDateTimeUtils.addTime(Duration.ofDays(7))).area("北京市").address("海定区")
+                        .status(JobStatusEnum.DISABLE.getStatus()).build()
+        );
+        // 输出
+        ExcelUtils.write(response, "职位导入模板.xls", "职位列表", JobAdvertisedImportExcelVO.class, list);
+    }
+
+    @PreAuthenticated
+    @PostMapping("/import")
+    @Operation(summary = "导入招聘职位")
+    public CommonResult<Boolean> importExcel(@RequestPart @RequestParam MultipartFile multipartFile)
+            throws Exception {
+        List<JobAdvertisedImportExcelVO> list = ExcelUtils.read(multipartFile, JobAdvertisedImportExcelVO.class);
+        jobIntegrationService.importData(list);
+        return success(true);
+    }
+
     @PreAuthenticated
     @GetMapping("/detail")
     @Operation(summary = "获得招聘职位详情")
@@ -115,5 +161,13 @@ public class AppRecruitJobAdvertisedController {
         return success(true);
     }
 
+    @PreAuthenticated
+    @PostMapping("/renewal")
+    @Operation(summary = "职位续期")
+    public CommonResult<Boolean> renewal(@RequestBody @Valid AppRecruitJobRenewalReqVO reqVO) {
+        jobAdvertisedService.renewal(reqVO);
+        return success(true);
+    }
+
 
 }

+ 17 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/vo/AppRecruitJobRenewalReqVO.java

@@ -0,0 +1,17 @@
+package com.citu.module.menduner.system.controller.app.recruit.job.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "招聘端 - 职位续期 Request VO")
+@Data
+public class AppRecruitJobRenewalReqVO {
+
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "4770")
+    private Long id;
+
+    @Schema(description = "续期后的时间")
+    private LocalDateTime time;
+}

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/vo/AppRecruitJobSaveReqVO.java

@@ -77,5 +77,8 @@ public class AppRecruitJobSaveReqVO {
     @Schema(description = "雇佣金额")
     private Long hirePrice;
 
+    @Schema(description = "职位状态")
+    private String status;
+
 
 }

+ 7 - 14
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/user/AppRecruitUserController.java

@@ -53,6 +53,13 @@ public class AppRecruitUserController {
         return success(service.save(reqVO));
     }
 
+    @PreAuthenticated
+    @PostMapping("/update")
+    @Operation(summary = "管理员-修改用户信息")
+    public CommonResult<Boolean> update(@Valid @RequestBody AppRecruitUserSaveReqVO reqVO) {
+        return success(service.update(reqVO));
+    }
+
     @PreAuthenticated
     @PostMapping("/disable")
     @Operation(summary = "禁用账户")
@@ -76,20 +83,6 @@ public class AppRecruitUserController {
         return success(service.selectPage(reqVO));
     }
 
-    @PreAuthenticated
-    @PostMapping("/bind/post")
-    @Operation(summary = "绑定用户的岗位")
-    public CommonResult<Boolean> bindPost(
-            @RequestParam("id") Long id, @RequestParam("postId") Long postId) {
-        return success(service.bindPost(id, postId));
-    }
-
-    @PreAuthenticated
-    @GetMapping("/check/post")
-    @Operation(summary = "效验该岗位下是否绑定用户")
-    public CommonResult<Boolean> checkPost(@RequestParam("postId") Long postId) {
-        return success(service.checkPost(postId));
-    }
 
     @PutMapping("/update-email")
     @Operation(summary = "绑定/修改用户邮箱")

+ 0 - 10
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/user/vo/AppRecruitEnterprisePostSimpleRespVO.java

@@ -1,10 +0,0 @@
-package com.citu.module.menduner.system.controller.app.recruit.user.vo;
-
-import com.citu.module.menduner.system.controller.base.enterprise.post.EnterprisePostSimpleRespVO;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-@Schema(description = "企业岗位简易信息 Response VO")
-@Data
-public class AppRecruitEnterprisePostSimpleRespVO extends EnterprisePostSimpleRespVO {
-}

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/user/vo/AppRecruitUserPageReqVO.java

@@ -11,8 +11,8 @@ public class AppRecruitUserPageReqVO extends PageParam {
     @Schema(description = "下级企业id", example = "23317")
     private Long enterpriseId;
 
-    @Schema(description = "岗位id", example = "23317")
-    private Long postId;
+    @Schema(description = "岗位")
+    private String postName;
 
     @Schema(description = "名称", example = "x女士")
     private String name;

+ 0 - 6
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/user/vo/AppRecruitUserRespVO.java

@@ -10,9 +10,6 @@ import java.time.LocalDateTime;
 @Data
 public class AppRecruitUserRespVO extends EnterpriseUserBindSimpleRespVO {
 
-    @Schema(description = "企业岗位id", example = "25968")
-    private Long postId;
-
     @Schema(description = "联系手机号")
     private String phone;
 
@@ -25,8 +22,5 @@ public class AppRecruitUserRespVO extends EnterpriseUserBindSimpleRespVO {
     @Schema(description = "更新时间")
     private LocalDateTime updateTime;
 
-    @Schema(description = "岗位信息")
-    private AppRecruitEnterprisePostSimpleRespVO post;
-
 
 }

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/user/vo/AppRecruitUserSaveReqVO.java

@@ -19,6 +19,9 @@ public class AppRecruitUserSaveReqVO {
     @NotEmpty(message = "{1_100_023_002}")
     private String name;
 
+    @Schema(description = "岗位")
+    private String postName;
+
     @Schema(description = "用户性别")
     private String sex;
 

+ 0 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/bind/EnterpriseUserBindDetailRespVO.java

@@ -20,7 +20,5 @@ public class EnterpriseUserBindDetailRespVO extends EnterpriseUserBindRespVO{
     @Schema(description = "企业姓名", example = "616")
     private String enterpriseName;
 
-    @Schema(description = "岗位名称", example = "23317")
-    private String postName;
 
 }

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/bind/EnterpriseUserBindPageReqVO.java

@@ -30,6 +30,9 @@ public class EnterpriseUserBindPageReqVO extends PageParam {
     @Schema(description = "联系手机号")
     private String phone;
 
+    @Schema(description = "岗位名称", example = "23317")
+    private String postName;
+
     @Schema(description = "用户邮箱")
     private String email;
 

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

@@ -26,8 +26,8 @@ public class EnterpriseUserBindReqVO {
     @Schema(description = "用户邮箱")
     private String email;
 
-    @Schema(description = "岗位id", example = "23317")
-    private Long postId;
+    @Schema(description = "岗位名称", example = "23317")
+    private String postName;
 
     @Schema(description = "帐号状态(0正常 1停用 2 等待审核 3不通过)", example = "2")
     private String status;

+ 4 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/bind/EnterpriseUserBindRespVO.java

@@ -26,10 +26,6 @@ public class EnterpriseUserBindRespVO {
     @ExcelProperty("企业id")
     private Long enterpriseId;
 
-    @Schema(description = "岗位id", example = "23317")
-    @ExcelProperty("岗位id")
-    private Long postId;
-
     @Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "23317")
     @ExcelProperty("用户id")
     private Long userId;
@@ -46,6 +42,10 @@ public class EnterpriseUserBindRespVO {
     @ExcelProperty("头像地址")
     private String avatar;
 
+    @ExcelProperty("岗位名称")
+    @Schema(description = "岗位名称", example = "23317")
+    private String postName;
+
     @Schema(description = "联系手机号")
     @ExcelProperty("联系手机号")
     private String phone;

+ 3 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/bind/EnterpriseUserBindSaveReqVO.java

@@ -19,9 +19,6 @@ public class EnterpriseUserBindSaveReqVO {
     @NotNull(message = "{1_100_019_002}")
     private Long enterpriseId;
 
-    @Schema(description = "岗位id", example = "23317")
-    private Long postId;
-
     @Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "23317")
     @NotEmpty(message = "{1_100_016_018}")
     private Long userId;
@@ -36,6 +33,9 @@ public class EnterpriseUserBindSaveReqVO {
     @Schema(description = "头像地址")
     private String avatar;
 
+    @Schema(description = "岗位名称", example = "23317")
+    private String postName;
+
     @Schema(description = "联系手机号")
     private String phone;
 

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/bind/EnterpriseUserBindSimpleRespVO.java

@@ -21,6 +21,9 @@ public class EnterpriseUserBindSimpleRespVO {
     @Schema(description = "企业简称", requiredMode = Schema.RequiredMode.REQUIRED, example = "616")
     private String enterpriseAnotherName;
 
+    @Schema(description = "岗位名称", example = "23317")
+    private String postName;
+
     @Schema(description = "企业logo地址")
     private String logoUrl;
 

+ 9 - 10
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobAdvertisedImportExcelVO.java

@@ -15,7 +15,6 @@ import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
 import static com.citu.module.menduner.system.enums.DictTypeConstants.*;
-import static com.citu.module.menduner.system.enums.DictTypeConstants.MENDUNER_PAY_UNIT;
 
 /**
  * 职位 Excel 导入 VO
@@ -27,15 +26,15 @@ import static com.citu.module.menduner.system.enums.DictTypeConstants.MENDUNER_P
 @Accessors(chain = false)
 public class JobAdvertisedImportExcelVO {
 
-    @Schema(description = "职位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
+    @Schema(description = "职位名称")
     @ExcelProperty("职位名称")
     private String name;
 
-    @Schema(description = "职位类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "31707")
+    @Schema(description = "职位类型")
     @ExcelProperty("职位类型")
     private String position;
 
-    @Schema(description = "招聘类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    @Schema(description = "招聘类型")
     @ExcelProperty(value = "招聘类型", converter = DictConvert.class)
     @DictFormat(MENDUNER_JOB_TYPE)
     @ExcelColumnSelect(dictType = MENDUNER_JOB_TYPE)
@@ -54,11 +53,11 @@ public class JobAdvertisedImportExcelVO {
     private String eduType;
 
     @Schema(description = "薪酬from")
-    @ExcelProperty("薪酬from")
+    @ExcelProperty("最低薪酬")
     private BigDecimal payFrom;
 
     @Schema(description = "薪酬to")
-    @ExcelProperty("薪酬to")
+    @ExcelProperty("最高薪酬")
     private BigDecimal payTo;
 
     @Schema(description = "薪酬单位")
@@ -67,6 +66,10 @@ public class JobAdvertisedImportExcelVO {
     @ExcelColumnSelect(dictType = MENDUNER_PAY_UNIT)
     private String payUnit;
 
+    @Schema(description = "工作区域")
+    @ExcelProperty("工作区域")
+    private String area;
+
     @Schema(description = "职位内容")
     @ExcelProperty("职位内容")
     private String content;
@@ -79,10 +82,6 @@ public class JobAdvertisedImportExcelVO {
     @ExcelProperty("过期时间")
     private LocalDateTime expireTime;
 
-    @Schema(description = "是否置顶")
-    @ExcelProperty("是否置顶")
-    private Boolean top;
-
     @Schema(description = "工作地址")
     @ExcelProperty("工作地址")
     private String address;

+ 0 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/EnterpriseConvert.java

@@ -43,8 +43,6 @@ public interface EnterpriseConvert {
 
     AppEnterpriseRegisterRespVO convert8(EnterpriseRegisterDO bean);
 
-    List<AppEnterprisePostRespVO> convertList2(List<EnterprisePostDO> list);
-
     AppEnterpriseUserApplyRespVO convert9(EnterpriseUserApplyDO bean);
 
     EnterpriseUserApplyDO convert10(AppEnterpriseUserApplyReqVO reqVO);

+ 0 - 18
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/EnterprisePostConvert.java

@@ -1,18 +0,0 @@
-package com.citu.module.menduner.system.convert;
-
-import com.citu.module.menduner.system.controller.app.recruit.enterprise.post.AppRecruitEnterprisePostRespVO;
-import com.citu.module.menduner.system.controller.app.recruit.enterprise.post.AppRecruitEnterprisePostSaveReqVO;
-import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterprisePostDO;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-@Mapper
-public interface EnterprisePostConvert {
-
-
-    EnterprisePostConvert INSTANCE = Mappers.getMapper(EnterprisePostConvert.class);
-
-    EnterprisePostDO convert(AppRecruitEnterprisePostSaveReqVO bean);
-
-    AppRecruitEnterprisePostRespVO convert2(EnterprisePostDO bean);
-}

+ 6 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/JobAdvertisedConvert.java

@@ -3,14 +3,18 @@ package com.citu.module.menduner.system.convert;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedDetailRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedSimpleRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobDetailRespVO;
+import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobExportRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobSaveReqVO;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobRespVO;
 import com.citu.module.menduner.system.controller.base.analysis.RecruitJobAnalysisRespVO;
 import com.citu.module.menduner.system.controller.base.analysis.excel.RecruitJobAnalysisExcelRespVO;
+import com.citu.module.menduner.system.controller.base.job.JobAdvertisedImportExcelVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedRespVO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.dal.es.job.ESJobAdvertisedMergeDO;
 import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.Mappings;
 import org.mapstruct.Named;
 import org.mapstruct.factory.Mappers;
 
@@ -51,4 +55,6 @@ public interface JobAdvertisedConvert {
 
     @Named("convertList7")
     List<JobAdvertisedRespVO> convertList7(List<JobAdvertisedDO> list);
+
+    AppRecruitJobSaveReqVO convert8(JobAdvertisedImportExcelVO resp);
 }

+ 0 - 59
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterprisePostDO.java

@@ -1,59 +0,0 @@
-package com.citu.module.menduner.system.dal.dataobject.enterprise;
-
-import com.baomidou.mybatisplus.annotation.KeySequence;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.citu.framework.mybatis.core.dataobject.BaseDO;
-import com.citu.framework.tenant.core.db.TenantBaseDO;
-import lombok.*;
-
-/**
- * 企业岗位信息 DO
- *
- * @author Rayson
- */
-@TableName("mde_enterprise_post")
-@KeySequence("mde_enterprise_post_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class EnterprisePostDO extends TenantBaseDO {
-
-    /**
-     * 岗位ID
-     */
-    @TableId
-    private Long id;
-    /**
-     * 所属企业id
-     */
-    private Long enterpriseId;
-    /**
-     * 岗位缩写
-     */
-    private String code;
-    /**
-     * 岗位中文名称
-     */
-    private String nameCn;
-    /**
-     * 岗位英文
-     */
-    private String nameEn;
-    /**
-     * 显示顺序
-     */
-    private Integer sort;
-    /**
-     * 状态(0正常 1停用)
-     */
-    private String status;
-    /**
-     * 备注
-     */
-    private String remark;
-
-}

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

@@ -1,10 +1,7 @@
 package com.citu.module.menduner.system.dal.dataobject.enterprise;
 
 
-import com.baomidou.mybatisplus.annotation.KeySequence;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.citu.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.*;
 import com.citu.framework.tenant.core.db.TenantBaseDO;
 import lombok.*;
 
@@ -34,10 +31,6 @@ public class EnterpriseUserBindDO extends TenantBaseDO {
      * 企业id
      */
     private Long enterpriseId;
-    /**
-     * 岗位id
-     */
-    private Long postId;
     /**
      * 用户id
      */
@@ -54,6 +47,11 @@ public class EnterpriseUserBindDO extends TenantBaseDO {
      * 头像地址
      */
     private String avatar;
+    /**
+     * 岗位名称
+     */
+    @TableField(updateStrategy = FieldStrategy.ALWAYS)
+    private String postName;
     /**
      * 联系手机号
      */

+ 5 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/area/AreaMapper.java

@@ -7,6 +7,7 @@ import com.citu.module.menduner.system.controller.base.area.AreaListReqVO;
 import com.citu.module.menduner.system.controller.base.area.AreaPageReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.area.vo.AppAreaListReqVO;
 import com.citu.module.menduner.system.dal.dataobject.area.AreaDO;
+import com.citu.module.menduner.system.dal.dataobject.position.PositionDO;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.Collection;
@@ -56,4 +57,8 @@ public interface AreaMapper extends BaseMapperX<AreaDO> {
     default List<AreaDO> selectListByIdList(List<Long> ids) {
         return selectList(AreaDO::getId, ids);
     }
+
+    default List<AreaDO> selectListByNameList(String name) {
+        return selectList(AreaDO::getName, name);
+    }
 }

+ 0 - 54
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterprisePostMapper.java

@@ -1,54 +0,0 @@
-package com.citu.module.menduner.system.dal.mysql.enterprise;
-
-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.framework.mybatis.core.query.MPJLambdaWrapperX;
-import com.citu.module.menduner.system.controller.app.recruit.enterprise.post.AppRecruitEnterprisePostRespVO;
-import com.citu.module.menduner.system.controller.base.enterprise.post.EnterprisePostPageReqVO;
-import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterprisePostDO;
-import com.citu.module.menduner.system.enums.MendunerStatusEnum;
-import org.apache.ibatis.annotations.Mapper;
-
-import java.util.List;
-
-/**
- * 企业岗位信息 Mapper
- *
- * @author Rayson
- */
-@Mapper
-public interface EnterprisePostMapper extends BaseMapperX<EnterprisePostDO> {
-
-    default PageResult<EnterprisePostDO> selectPage(EnterprisePostPageReqVO reqVO) {
-        return selectPage(reqVO, new LambdaQueryWrapperX<EnterprisePostDO>()
-                .eqIfPresent(EnterprisePostDO::getEnterpriseId, reqVO.getEnterpriseId())
-                .eqIfPresent(EnterprisePostDO::getCode, reqVO.getCode())
-                .likeIfPresent(EnterprisePostDO::getNameCn, reqVO.getNameCn())
-                .likeIfPresent(EnterprisePostDO::getNameEn, reqVO.getNameEn())
-                .eqIfPresent(EnterprisePostDO::getStatus, reqVO.getStatus())
-                .betweenIfPresent(EnterprisePostDO::getCreateTime, reqVO.getCreateTime())
-                .orderByDesc(EnterprisePostDO::getSort));
-    }
-
-    /** 根据企业id查询企业岗位,返回企业岗位信息 **/
-    default List<EnterprisePostDO> selectListByEnterpriseId(Long enterpriseId) {
-        return selectList(new LambdaQueryWrapperX<EnterprisePostDO>()
-                .eqIfPresent(EnterprisePostDO::getEnterpriseId, enterpriseId)
-                .eqIfPresent(EnterprisePostDO::getStatus, MendunerStatusEnum.ENABLE.getStatus())
-        );
-    }
-    /** 根据企业id和查询条件查询企业岗位,返回企业岗位信息 **/
-    default PageResult<AppRecruitEnterprisePostRespVO> page(EnterprisePostPageReqVO reqVO, Long enterpriseId) {
-        return selectJoinPage(reqVO, AppRecruitEnterprisePostRespVO.class,
-                new MPJLambdaWrapperX<EnterprisePostDO>()
-                        .selectAll(EnterprisePostDO.class)
-                        .eq(EnterprisePostDO::getEnterpriseId, enterpriseId)
-                        .eqIfPresent(EnterprisePostDO::getCode, reqVO.getCode())
-                        .likeIfPresent(EnterprisePostDO::getNameCn, reqVO.getNameCn())
-                        .likeIfPresent(EnterprisePostDO::getNameEn, reqVO.getNameEn())
-                        .eqIfPresent(EnterprisePostDO::getStatus, reqVO.getStatus())
-                        .betweenIfPresent(EnterprisePostDO::getCreateTime, reqVO.getCreateTime())
-                        .orderByDesc(EnterprisePostDO::getSort, EnterprisePostDO::getUpdateTime));
-    }
-}

+ 1 - 24
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseUserBindMapper.java

@@ -15,7 +15,6 @@ import com.citu.module.menduner.system.controller.base.enterprise.bind.Enterpris
 import com.citu.module.menduner.system.controller.base.enterprise.bind.EnterpriseUserBindPageReqVO;
 import com.citu.module.menduner.system.controller.base.enterprise.bind.EnterpriseUserBindReqVO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
-import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterprisePostDO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
 import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import org.apache.ibatis.annotations.Mapper;
@@ -40,7 +39,6 @@ public interface EnterpriseUserBindMapper extends BaseMapperX<EnterpriseUserBind
                 .likeIfPresent(EnterpriseUserBindDO::getPhone, reqVO.getPhone())
                 .likeIfPresent(EnterpriseUserBindDO::getEmail, reqVO.getEmail())
                 .likeIfPresent(EnterpriseUserBindDO::getName, reqVO.getName())
-                .eqIfPresent(EnterpriseUserBindDO::getPostId, reqVO.getPostId())
                 .orderByDesc(EnterpriseUserBindDO::getId));
     }
 
@@ -59,7 +57,6 @@ public interface EnterpriseUserBindMapper extends BaseMapperX<EnterpriseUserBind
                 .likeIfPresent(EnterpriseUserBindDO::getPhone, reqVO.getPhone())
                 .likeIfPresent(EnterpriseUserBindDO::getEmail, reqVO.getEmail())
                 .likeIfPresent(EnterpriseUserBindDO::getName, reqVO.getName())
-                .eqIfPresent(EnterpriseUserBindDO::getPostId, reqVO.getPostId())
                 .orderByDesc(EnterpriseUserBindDO::getId));
 
     }
@@ -69,9 +66,7 @@ public interface EnterpriseUserBindMapper extends BaseMapperX<EnterpriseUserBind
         MPJLambdaWrapperX<EnterpriseUserBindDO> wrapper = new MPJLambdaWrapperX<>();
         wrapper.selectAll(EnterpriseUserBindDO.class);
         wrapper.selectAs(EnterpriseDO::getName, EnterpriseUserBindDetailRespVO::getEnterpriseName);
-        wrapper.selectAs(EnterprisePostDO::getNameCn, EnterpriseUserBindDetailRespVO::getPostName);
         wrapper.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, EnterpriseUserBindDO::getEnterpriseId);
-        wrapper.leftJoin(EnterprisePostDO.class, EnterprisePostDO::getId, EnterpriseUserBindDO::getPostId);
         wrapper.eqIfPresent(EnterpriseUserBindDO::getEnterpriseId, reqVO.getEnterpriseId());
         wrapper.eqIfPresent(EnterpriseUserBindDO::getUserId, reqVO.getUserId());
         wrapper.eqIfPresent(EnterpriseUserBindDO::getStatus, reqVO.getStatus());
@@ -87,9 +82,7 @@ public interface EnterpriseUserBindMapper extends BaseMapperX<EnterpriseUserBind
         MPJLambdaWrapperX<EnterpriseUserBindDO> wrapper = new MPJLambdaWrapperX<>();
         wrapper.selectAll(EnterpriseUserBindDO.class);
         wrapper.selectAs(EnterpriseDO::getName, EnterpriseUserBindDetailRespVO::getEnterpriseName);
-        wrapper.selectAs(EnterprisePostDO::getNameCn, EnterpriseUserBindDetailRespVO::getPostName);
         wrapper.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, EnterpriseUserBindDO::getEnterpriseId);
-        wrapper.leftJoin(EnterprisePostDO.class, EnterprisePostDO::getId, EnterpriseUserBindDO::getPostId);
         wrapper.eq(EnterpriseUserBindDO::getId, id);
         return selectJoinOne(EnterpriseUserBindDetailRespVO.class, wrapper);
 
@@ -124,7 +117,7 @@ public interface EnterpriseUserBindMapper extends BaseMapperX<EnterpriseUserBind
     default List<EnterpriseUserBindDO> selectByEnterpriseIdAndPostId(Long enterpriseId, Long postId) {
         return selectList(new LambdaQueryWrapperX<EnterpriseUserBindDO>()
                 .eqIfPresent(EnterpriseUserBindDO::getEnterpriseId, enterpriseId)
-                .eqIfPresent(EnterpriseUserBindDO::getPostId, postId)
+                .eqIfPresent(EnterpriseUserBindDO::getName, postId)
         );
     }
 
@@ -133,23 +126,18 @@ public interface EnterpriseUserBindMapper extends BaseMapperX<EnterpriseUserBind
     default PageResult<AppRecruitUserRespVO> selectPage(AppRecruitUserPageReqVO reqVO, Long enterpriseId) {
         MPJLambdaWrapperX<EnterpriseUserBindDO> wrapper = new MPJLambdaWrapperX<>();
         wrapper.selectAll(EnterpriseUserBindDO.class);
-        wrapper.selectAssociation(EnterprisePostDO.class, AppRecruitUserRespVO::getPost);
-
         wrapper.selectAs(EnterpriseDO::getId, AppRecruitUserRespVO::getEnterpriseId);
         wrapper.selectAs(EnterpriseDO::getName, AppRecruitUserRespVO::getEnterpriseName);
         wrapper.selectAs(EnterpriseDO::getAnotherName, AppRecruitUserRespVO::getEnterpriseAnotherName);
         wrapper.selectAs(EnterpriseDO::getLogoUrl, AppRecruitUserRespVO::getLogoUrl);
 
         wrapper.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, EnterpriseUserBindDO::getEnterpriseId);
-        wrapper.leftJoin(EnterprisePostDO.class, EnterprisePostDO::getId, EnterpriseUserBindDO::getPostId);
-
         wrapper.eq(EnterpriseDO::getId, enterpriseId);
         wrapper.eq(EnterpriseUserBindDO::getEnterpriseId, enterpriseId);
         wrapper.likeIfPresent(EnterpriseUserBindDO::getName, reqVO.getName());
         wrapper.likeIfPresent(EnterpriseUserBindDO::getPhone, reqVO.getPhone());
         wrapper.likeIfPresent(EnterpriseUserBindDO::getEmail, reqVO.getEmail());
         wrapper.eqIfPresent(EnterpriseUserBindDO::getSex, reqVO.getSex());
-        wrapper.eqIfPresent(EnterpriseUserBindDO::getPostId, reqVO.getPostId());
         wrapper.eqIfPresent(EnterpriseUserBindDO::getStatus, reqVO.getStatus());
 
         wrapper.orderByDesc(EnterpriseUserBindDO::getUserType, EnterpriseUserBindDO::getUpdateTime);
@@ -160,7 +148,6 @@ public interface EnterpriseUserBindMapper extends BaseMapperX<EnterpriseUserBind
     default AppRecruitEnterpriseUserRespVO selectEnterpriseUser(Long enterpriseId, Long userId) {
         MPJLambdaWrapperX<EnterpriseUserBindDO> wrapper = new MPJLambdaWrapperX<>();
         wrapper.selectAll(EnterpriseUserBindDO.class);
-        wrapper.selectAsClass(EnterprisePostDO.class, AppRecruitEnterpriseUserRespVO.class);
         wrapper.selectAs(EnterpriseDO::getName, AppRecruitEnterpriseUserRespVO::getEnterpriseName);
         wrapper.selectAs(EnterpriseDO::getAnotherName, AppRecruitEnterpriseUserRespVO::getEnterpriseAnotherName);
         wrapper.selectAs(EnterpriseDO::getLogoUrl, AppRecruitEnterpriseUserRespVO::getLogoUrl);
@@ -181,11 +168,6 @@ public interface EnterpriseUserBindMapper extends BaseMapperX<EnterpriseUserBind
         MPJLambdaWrapperX<EnterpriseUserBindDO> wrapper = new MPJLambdaWrapperX<>();
         wrapper.selectAssociation(EnterpriseUserBindDO.class, EnterpriseUserSummaryRespVO::getContact);
         wrapper.selectAssociation(EnterpriseDO.class, EnterpriseUserSummaryRespVO::getEnterprise);
-        wrapper.selectAssociation(EnterprisePostDO.class, EnterpriseUserSummaryRespVO::getPost);
-
-
-        // 企业用户 inner 企业岗位
-        wrapper.leftJoin(EnterprisePostDO.class, EnterprisePostDO::getId, EnterpriseUserBindDO::getPostId);
 
         // 企业用户 inner 企业信息
         wrapper.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, EnterpriseUserBindDO::getEnterpriseId);
@@ -207,12 +189,7 @@ public interface EnterpriseUserBindMapper extends BaseMapperX<EnterpriseUserBind
         wrapper.selectAs(EnterpriseDO::getAnotherName, UserInfoRespDTO::getEnterpriseAnotherName);
         wrapper.selectAs(EnterpriseDO::getLogoUrl, UserInfoRespDTO::getLogoUrl);
 
-        wrapper.selectAs(EnterprisePostDO::getCode, UserInfoRespDTO::getPostCode);
-        wrapper.selectAs(EnterprisePostDO::getNameCn, UserInfoRespDTO::getPostNameCn);
-        wrapper.selectAs(EnterprisePostDO::getNameEn, UserInfoRespDTO::getPostNameEn);
-
         wrapper.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, EnterpriseUserBindDO::getEnterpriseId);
-        wrapper.leftJoin(EnterprisePostDO.class, EnterprisePostDO::getId, EnterpriseUserBindDO::getPostId);
 
         wrapper.eq(EnterpriseUserBindDO::getEnterpriseId, enterpriseId);
         wrapper.eq(EnterpriseUserBindDO::getUserId, userId);

+ 13 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobAdvertisedMapper.java

@@ -456,4 +456,17 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
                 .lt(JobAdvertisedDO::getExpireTime, LocalDateTime.now())
         );
     }
+
+    /**
+     * 根据企业id、用户id、职位名称查询是否存在
+     **/
+    default boolean existByName(Long enterpriseId,Long userId,Long id,String name) {
+        return selectCount(new LambdaQueryWrapperX<JobAdvertisedDO>()
+                .eq(JobAdvertisedDO::getEnterpriseId, enterpriseId)
+                .eq(JobAdvertisedDO::getUserId, userId)
+                // 不等于某个id,兼容修改操作
+                .neIfPresent(JobAdvertisedDO::getId, id)
+                .eq(JobAdvertisedDO::getName, name)
+        ) > 0;
+    }
 }

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/position/PositionMapper.java

@@ -78,4 +78,7 @@ public interface PositionMapper extends BaseMapperX<PositionDO> {
     @Select("SELECT * FROM mde_position Where level =#{level}  ORDER BY RAND() LIMIT 10")
     List<PositionDO> getRandomTenByLevel(Integer level);
 
+    default List<PositionDO> selectListByNameList(String name) {
+        return selectList(PositionDO::getNameCn, name);
+    }
 }

+ 0 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/apply/EnterpriseUserApplyServiceImpl.java

@@ -135,7 +135,6 @@ public class EnterpriseUserApplyServiceImpl implements EnterpriseUserApplyServic
         userBindDO.setEnterpriseId(userApplyDO.getEnterpriseId());
         userBindDO.setUserId(userApplyDO.getUserId());
         userBindDO.setName(userApplyDO.getName());
-        userBindDO.setPostId(userApplyDO.getPostId());
         userBindDO.setStatus(MendunerStatusEnum.ENABLE.getStatus());
         userBindDO.setUserType(EnterpriseUserTypeEnum.NORMAL.getType());
         userBindMapper.insert(userBindDO);

+ 8 - 11
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/bind/EnterpriseUserBindService.java

@@ -183,12 +183,19 @@ public interface EnterpriseUserBindService {
     AppRecruitUserRespVO getBindEnterprise();
 
     /**
-     * 保存企业用户信息
+     * 保存企业用户信息-用于保存自己
      *
      * @return reqVO 保存对象
      **/
     boolean save(AppRecruitUserSaveReqVO reqVO);
 
+    /**
+     * 保存企业用户信息-企业管理员修改旗下用户
+     *
+     * @return reqVO 保存对象
+     **/
+    boolean update(AppRecruitUserSaveReqVO reqVO);
+
     /**
      * 禁用账号
      *
@@ -210,16 +217,6 @@ public interface EnterpriseUserBindService {
      **/
     PageResult<AppRecruitUserRespVO> selectPage(AppRecruitUserPageReqVO reqVO);
 
-    /**
-     * 绑定用户的岗位
-     **/
-    Boolean bindPost(Long id, Long postId);
-
-    /**
-     * 效验是否有该岗位的用户
-     **/
-    Boolean checkPost(Long postId);
-
     /**
      * 根据企业id和用户id查询用户信息
      *

+ 45 - 52
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/bind/EnterpriseUserBindServiceImpl.java

@@ -16,7 +16,6 @@ import com.citu.module.menduner.system.controller.base.enterprise.bind.Enterpris
 import com.citu.module.menduner.system.controller.base.enterprise.bind.EnterpriseUserBindSaveReqVO;
 import com.citu.module.menduner.system.convert.EnterpriseConvert;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
-import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterprisePostDO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
 import com.citu.module.menduner.system.dal.dataobject.user.MdeUserDO;
 import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseMapper;
@@ -24,10 +23,8 @@ import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseUserBindMa
 import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import com.citu.module.menduner.system.enums.enterprise.EnterpriseUserTypeEnum;
 import com.citu.module.menduner.system.enums.permission.MdeDefaultRoleEnum;
-import com.citu.module.menduner.system.service.enterprise.post.EnterprisePostService;
 import com.citu.module.menduner.system.service.permission.MdePermissionService;
 import com.citu.module.menduner.system.service.user.MdeUserService;
-import com.citu.module.system.enums.logger.LoginResultEnum;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Service;
@@ -40,8 +37,9 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
+import static com.citu.framework.common.exception.enums.GlobalErrorCodeConstants.FORBIDDEN;
 import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static com.citu.module.menduner.common.util.LoginUserContext.checkUserTypeIsAdmin;
+import static com.citu.module.menduner.common.util.LoginUserContext.checkIsEnterpriseUser;
 import static com.citu.module.menduner.system.enums.ErrorCodeConstants.*;
 
 /**
@@ -56,9 +54,6 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
     @Resource
     private EnterpriseUserBindMapper mapper;
 
-    @Resource
-    @Lazy
-    private EnterprisePostService enterprisePostService;
 
     @Resource
     @Lazy
@@ -139,11 +134,12 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
     @Override
     @DSTransactional
     public void updateUserEmail(AppRecruitEnterpriseUserUpdateEmailReqVO reqVO) {
-        // 效验是否管理员
-        LoginUserContext.checkUserTypeIsAdmin();
+        // 效验是否为企业用户
+        checkIsEnterpriseUser();
 
         // 检测用户是否存在
         EnterpriseUserBindDO user = mapper.selectById(reqVO.getId());
+        checkIsAdmin2(user);
         if (!StringUtils.hasText(user.getEmail())) {
             throw exception(MDE_USER_EMAIL_EXISTS);
         }
@@ -169,6 +165,17 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
                 .equals(userBindDO.getUserType());
     }
 
+    public void checkIsAdmin2(EnterpriseUserBindDO userBindDO) {
+        if (null == userBindDO) {
+            throw exception(MDE_ENTERPRISE_USER_BIND_NOT_EXISTS);
+        }
+        if (EnterpriseUserTypeEnum.ADMIN.getType().toString()
+               .equals(userBindDO.getUserType())) {
+            throw exception(FORBIDDEN);
+        }
+    }
+
+
     @Override
     @DSTransactional
     public void createUser(EnterpriseUserBindDO userBindDO) {
@@ -221,16 +228,6 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
         }
         EnterpriseUserContactRespVO resp = EnterpriseConvert.INSTANCE.convert2(userBindDO);
 
-        // 获取企业岗位信息
-        if (null != userBindDO.getPostId()) {
-            EnterprisePostDO postDO = enterprisePostService.getEnterprisePost(userBindDO.getPostId());
-            if (null != postDO) {
-                resp.setPostNameCn(postDO.getNameCn());
-                resp.setPostNameEn(postDO.getNameEn());
-                resp.setPostCode(postDO.getCode());
-            }
-        }
-
         //TODO 缓存获取在线状态
         resp.setStatus("0");
         return resp;
@@ -292,7 +289,7 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
 
     @Override
     public AppRecruitUserRespVO getBindEnterprise() {
-        LoginUser loginUser = checkUserTypeIsAdmin();
+        LoginUser loginUser = checkIsEnterpriseUser();
 
         EnterpriseUserBindDO userBindDO = mapper
                 .selectByEnterpriseIdAndUserId(
@@ -316,16 +313,41 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
     @Override
     @DSTransactional
     public boolean save(AppRecruitUserSaveReqVO reqVO) {
+        LoginUserContext.checkIsEnterpriseUser();
+        EnterpriseUserBindDO userBindDO = mapper.selectById(reqVO.getId());
+        if (null == userBindDO) {
+            throw exception(MDE_ENTERPRISE_USER_BIND_NOT_EXISTS);
+        }
+        Long userId = LoginUserContext.getUserId();
+        Long enterpriseId = LoginUserContext.getEnterpriseId();
+        if (!userBindDO.getUserId().equals(userId) && !userBindDO.getEnterpriseId().equals(enterpriseId)) {
+            // 不是自己的数据
+            throw exception(FORBIDDEN);
+        }
+        userBindDO.setName(reqVO.getName());
+        userBindDO.setSex(reqVO.getSex());
+        userBindDO.setPostName(reqVO.getPostName());
+        userBindDO.setPhone(reqVO.getPhone());
+        userBindDO.setAvatar(reqVO.getAvatar());
+        userBindDO.setEmail(reqVO.getEmail());
+        return mapper.updateById(userBindDO) == 1;
+    }
+
+    @Override
+    public boolean update(AppRecruitUserSaveReqVO reqVO) {
+        LoginUserContext.checkIsEnterpriseUser();
         EnterpriseUserBindDO userBindDO = mapper.selectById(reqVO.getId());
         if (null == userBindDO) {
             throw exception(MDE_ENTERPRISE_USER_BIND_NOT_EXISTS);
         }
+        checkIsAdmin2(userBindDO);
         userBindDO.setName(reqVO.getName());
         userBindDO.setSex(reqVO.getSex());
+        userBindDO.setPostName(reqVO.getPostName());
         userBindDO.setPhone(reqVO.getPhone());
         userBindDO.setAvatar(reqVO.getAvatar());
         userBindDO.setEmail(reqVO.getEmail());
-        return mapper.updateById(userBindDO) > 1;
+        return mapper.updateById(userBindDO) == 1;
     }
 
     @Override
@@ -357,7 +379,7 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
     }
 
     private EnterpriseUserBindDO valid(Long id) {
-        LoginUser loginUser = checkUserTypeIsAdmin();
+        LoginUser loginUser = checkIsEnterpriseUser();
 
         // 查找操作的目标用户
         EnterpriseUserBindDO userBindDO = mapper
@@ -376,7 +398,7 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
 
     @Override
     public PageResult<AppRecruitUserRespVO> selectPage(AppRecruitUserPageReqVO reqVO) {
-        LoginUser loginUser = checkUserTypeIsAdmin();
+        LoginUser loginUser = checkIsEnterpriseUser();
         Long enterpriseId = LoginUserContext.getEnterpriseId(loginUser);
         if (null != reqVO.getEnterpriseId()) {
             enterpriseId = reqVO.getEnterpriseId();
@@ -384,35 +406,6 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
         return mapper.selectPage(reqVO, enterpriseId);
     }
 
-    @Override
-    @DSTransactional
-    public Boolean bindPost(Long id, Long postId) {
-        LoginUser loginUser = checkUserTypeIsAdmin();
-
-        // 查找操作的目标用户
-        EnterpriseUserBindDO userBindDO = mapper
-                .selectByEnterpriseIdAndId(
-                        LoginUserContext.getEnterpriseId(loginUser), id);
-
-        if (null == userBindDO) {
-            throw exception(MDE_ENTERPRISE_USER_BIND_NOT_EXISTS);
-        }
-        if (null != userBindDO.getPostId() &&
-                userBindDO.getPostId().equals(postId)) {
-            return true;
-        }
-        userBindDO.setPostId(postId);
-        return mapper.updateById(userBindDO) == 1;
-    }
-
-    @Override
-    public Boolean checkPost(Long postId) {
-        LoginUser loginUser = checkUserTypeIsAdmin();
-        return !mapper
-                .selectByEnterpriseIdAndPostId(
-                        LoginUserContext.getEnterpriseId(loginUser), postId).isEmpty();
-    }
-
     @Override
     public AppRecruitEnterpriseUserRespVO getEnterpriseUser(Long enterpriseId, Long userId) {
         return mapper.selectEnterpriseUser(enterpriseId, userId);

+ 0 - 107
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/post/EnterprisePostService.java

@@ -1,107 +0,0 @@
-package com.citu.module.menduner.system.service.enterprise.post;
-
-import com.citu.framework.common.pojo.PageResult;
-import com.citu.module.menduner.system.controller.app.recruit.enterprise.post.AppRecruitEnterprisePostPageReqVO;
-import com.citu.module.menduner.system.controller.app.recruit.enterprise.post.AppRecruitEnterprisePostRespVO;
-import com.citu.module.menduner.system.controller.app.recruit.enterprise.post.AppRecruitEnterprisePostSaveReqVO;
-import com.citu.module.menduner.system.controller.base.enterprise.post.EnterprisePostPageReqVO;
-import com.citu.module.menduner.system.controller.base.enterprise.post.EnterprisePostSaveReqVO;
-import com.citu.module.menduner.system.controller.app.jobhunt.enterprise.vo.AppEnterprisePostRespVO;
-import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterprisePostDO;
-
-import javax.validation.Valid;
-import java.util.List;
-
-/**
- * 企业岗位信息 Service 接口
- *
- * @author Rayson
- */
-public interface EnterprisePostService {
-
-    /**
-     * 创建企业岗位信息
-     *
-     * @param createReqVO 创建信息
-     * @return 编号
-     */
-    Long createEnterprisePost(@Valid EnterprisePostSaveReqVO createReqVO);
-
-    /**
-     * 更新企业岗位信息
-     *
-     * @param updateReqVO 更新信息
-     */
-    void updateEnterprisePost(@Valid EnterprisePostSaveReqVO updateReqVO);
-
-    /**
-     * 删除企业岗位信息
-     *
-     * @param id 编号
-     */
-    void deleteEnterprisePost(Long id);
-
-    /**
-     * 获得企业岗位信息
-     *
-     * @param id 编号
-     * @return 企业岗位信息
-     */
-    EnterprisePostDO getEnterprisePost(Long id);
-
-    /**
-     * 获得企业岗位信息分页
-     *
-     * @param pageReqVO 分页查询
-     * @return 企业岗位信息分页
-     */
-    PageResult<EnterprisePostDO> getEnterprisePostPage(EnterprisePostPageReqVO pageReqVO);
-
-    // ========= 求职端 ==========
-
-    /**
-     * 根据企业id查询岗位信息
-     * @return 岗位信息
-     */
-    List<AppEnterprisePostRespVO> selectListByEnterpriseId(Long enterpriseId);
-
-    // ========== 招聘端 ==========
-
-    /**
-     * 新增企业岗位信息
-     *
-     * @param createReqVO 创建信息
-     * @return 编号
-     */
-    Long create(@Valid AppRecruitEnterprisePostSaveReqVO createReqVO);
-
-    /**
-     * 更新企业岗位信息
-     *
-     * @param updateReqVO 更新信息
-     */
-    void update(@Valid AppRecruitEnterprisePostSaveReqVO updateReqVO);
-
-    /**
-     * 删除企业岗位信息
-     *
-     * @param id 编号
-     */
-    void delete(Long id);
-
-    /**
-     * 获得企业岗位信息
-     *
-     * @param id 编号
-     * @return 企业岗位信息
-     */
-    AppRecruitEnterprisePostRespVO get(Long id);
-
-    /**
-     * 获得企业岗位信息分页
-     *
-     * @param pageReqVO 分页查询
-     * @return 企业岗位信息分页
-     */
-    PageResult<AppRecruitEnterprisePostRespVO> page(AppRecruitEnterprisePostPageReqVO pageReqVO);
-}

+ 0 - 132
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/post/EnterprisePostServiceImpl.java

@@ -1,132 +0,0 @@
-package com.citu.module.menduner.system.service.enterprise.post;
-
-import com.baomidou.dynamic.datasource.annotation.DSTransactional;
-import com.citu.framework.common.pojo.PageResult;
-import com.citu.framework.common.util.object.BeanUtils;
-import com.citu.module.menduner.system.controller.app.recruit.enterprise.post.AppRecruitEnterprisePostPageReqVO;
-import com.citu.module.menduner.system.controller.app.recruit.enterprise.post.AppRecruitEnterprisePostRespVO;
-import com.citu.module.menduner.system.controller.app.recruit.enterprise.post.AppRecruitEnterprisePostSaveReqVO;
-import com.citu.module.menduner.system.controller.base.enterprise.post.EnterprisePostPageReqVO;
-import com.citu.module.menduner.system.controller.base.enterprise.post.EnterprisePostSaveReqVO;
-import com.citu.module.menduner.system.controller.app.jobhunt.enterprise.vo.AppEnterprisePostRespVO;
-import com.citu.module.menduner.system.convert.EnterpriseConvert;
-import com.citu.module.menduner.system.convert.EnterprisePostConvert;
-import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterprisePostDO;
-import com.citu.module.menduner.system.dal.mysql.enterprise.EnterprisePostMapper;
-import com.citu.module.menduner.common.util.LoginUserContext;
-import org.springframework.stereotype.Service;
-import org.springframework.validation.annotation.Validated;
-
-import javax.annotation.Resource;
-
-import java.util.List;
-
-import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static com.citu.module.menduner.system.enums.ErrorCodeConstants.ENTERPRISE_POST_NOT_EXISTS;
-
-/**
- * 企业岗位信息 Service 实现类
- *
- * @author Rayson
- */
-@Service
-@Validated
-public class EnterprisePostServiceImpl implements EnterprisePostService {
-
-    @Resource
-    private EnterprisePostMapper enterprisePostMapper;
-
-    @Override
-    public Long createEnterprisePost(EnterprisePostSaveReqVO createReqVO) {
-        // 插入
-        EnterprisePostDO enterprisePost = BeanUtils.toBean(createReqVO, EnterprisePostDO.class);
-        enterprisePostMapper.insert(enterprisePost);
-        // 返回
-        return enterprisePost.getId();
-    }
-
-    @Override
-    public void updateEnterprisePost(EnterprisePostSaveReqVO updateReqVO) {
-        // 校验存在
-        validateEnterprisePostExists(updateReqVO.getId());
-        // 更新
-        EnterprisePostDO updateObj = BeanUtils.toBean(updateReqVO, EnterprisePostDO.class);
-        enterprisePostMapper.updateById(updateObj);
-    }
-
-    @Override
-    public void deleteEnterprisePost(Long id) {
-        // 校验存在
-        validateEnterprisePostExists(id);
-        // 删除
-        enterprisePostMapper.deleteById(id);
-    }
-
-    private void validateEnterprisePostExists(Long id) {
-        if (enterprisePostMapper.selectById(id) == null) {
-            throw exception(ENTERPRISE_POST_NOT_EXISTS);
-        }
-    }
-
-    @Override
-    public EnterprisePostDO getEnterprisePost(Long id) {
-        EnterprisePostDO postDO = enterprisePostMapper.selectById(id);
-        if (null == postDO) {
-            throw exception(ENTERPRISE_POST_NOT_EXISTS);
-        }
-        return postDO;
-    }
-
-    @Override
-    public PageResult<EnterprisePostDO> getEnterprisePostPage(EnterprisePostPageReqVO pageReqVO) {
-        return enterprisePostMapper.selectPage(pageReqVO);
-    }
-
-    @Override
-    public List<AppEnterprisePostRespVO> selectListByEnterpriseId(Long enterpriseId) {
-        List<EnterprisePostDO> list = enterprisePostMapper.selectListByEnterpriseId(enterpriseId);
-        return EnterpriseConvert.INSTANCE.convertList2(list);
-    }
-
-
-    @Override
-    @DSTransactional
-    public Long create(AppRecruitEnterprisePostSaveReqVO createReqVO) {
-        // 插入
-        EnterprisePostDO enterprisePost = EnterprisePostConvert.INSTANCE.convert(createReqVO);
-        enterprisePost.setEnterpriseId(LoginUserContext.getEnterpriseId());
-        enterprisePostMapper.insert(enterprisePost);
-        // 返回
-        return enterprisePost.getId();
-    }
-
-    @Override
-    @DSTransactional
-    public void update(AppRecruitEnterprisePostSaveReqVO updateReqVO) {
-        // 校验存在
-        validateEnterprisePostExists(updateReqVO.getId());
-        // 更新
-        EnterprisePostDO updateObj =  EnterprisePostConvert.INSTANCE.convert(updateReqVO);
-        enterprisePostMapper.updateById(updateObj);
-    }
-
-    @Override
-    @DSTransactional
-    public void delete(Long id) {
-      deleteEnterprisePost(id);
-    }
-
-    @Override
-    public AppRecruitEnterprisePostRespVO get(Long id) {
-        EnterprisePostDO postDO = enterprisePostMapper.selectById(id);
-        if (null == postDO) {
-            throw exception(ENTERPRISE_POST_NOT_EXISTS);
-        }
-        return  EnterprisePostConvert.INSTANCE.convert2(postDO);
-    }
-
-    @Override
-    public PageResult<AppRecruitEnterprisePostRespVO> page(AppRecruitEnterprisePostPageReqVO pageReqVO) {
-        return enterprisePostMapper.page(pageReqVO,LoginUserContext.getEnterpriseId());
-    }
-}

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

@@ -5,6 +5,7 @@ import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedHomeRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedPageReqVO;
+import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobRenewalReqVO;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobSaveReqVO;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobSimpleRespVO;
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
@@ -153,13 +154,19 @@ public interface JobAdvertisedService {
      **/
     List<AppRecruitJobSimpleRespVO> getList();
 
-    // ========== 统计分析 ==========
-
     /**
      * 置顶职位
      **/
     void top(List<Long> ids);
 
+    /**
+     * 续期职位
+     **/
+    void renewal(AppRecruitJobRenewalReqVO reqVO);
+
+
+    // ========== 统计分析 ==========
+
     /** 获取发布职位浏览量明细 */
     PageResult<RecruitJobAnalysisRespVO> getBrowseNum(RecruitAnalysisReqVO reqVO);
 

+ 28 - 7
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedServiceImpl.java

@@ -8,13 +8,13 @@ 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.dict.core.DictFrameworkUtils;
-import com.citu.framework.security.core.LoginUser;
 import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.system.api.python.GraphApi;
 import com.citu.module.menduner.system.api.python.GraphQueryPageDTO;
 import com.citu.module.menduner.system.api.python.GraphSendDTO;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedHomeRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedPageReqVO;
+import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobRenewalReqVO;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobSaveReqVO;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobSimpleRespVO;
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
@@ -34,6 +34,7 @@ import com.citu.module.menduner.system.mq.producer.GraphProducer;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
@@ -45,8 +46,7 @@ import java.util.stream.Collectors;
 
 import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static com.citu.module.menduner.system.enums.DictTypeConstants.*;
-import static com.citu.module.menduner.system.enums.ErrorCodeConstants.MDE_JOB_ADVERTISED_BALANCE_UPDATE;
-import static com.citu.module.menduner.system.enums.ErrorCodeConstants.MDE_JOB_ADVERTISED_NOT_EXISTS;
+import static com.citu.module.menduner.system.enums.ErrorCodeConstants.*;
 import static com.citu.module.menduner.system.util.RecruitAnalysisUtils.generateDateTimeRange;
 
 /**
@@ -325,18 +325,28 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
     @Override
     @DSTransactional
     public Long save(AppRecruitJobSaveReqVO reqVO) {
-        LoginUser loginUser = LoginUserContext.get();
         JobAdvertisedDO job = JobAdvertisedConvert.INSTANCE.convert3(reqVO);
-        Long enterpriseId = LoginUserContext.getEnterpriseId(loginUser);
+        Long userId = LoginUserContext.getUserId();
+        Long enterpriseId = LoginUserContext.getEnterpriseId();
+        boolean exists = mapper.existByName(enterpriseId, userId, null == reqVO.getId() ? null : reqVO.getId(), reqVO.getName());
+        if (exists) {
+            throw exception(MDE_JOB_ADVERTISED_NAME_DUPLICATE, reqVO.getName());
+        }
         if (null == reqVO.getId()) {
             // 新增
-            job.setUserId(loginUser.getId());
+            job.setUserId(userId);
             job.setEnterpriseId(enterpriseId);
-            job.setStatus(JobStatusEnum.WAIT_ENABLE.getStatus());
             job.setTop(false);
             if (!job.getHire()) {
+                // 不是众聘职位
                 job.setHirePrice(0L);
                 job.setStatus(JobStatusEnum.ENABLE.getStatus());
+            } else {
+                job.setStatus(JobStatusEnum.WAIT_ENABLE.getStatus());
+            }
+            if (StringUtils.hasText(reqVO.getStatus())) {
+                // 有保存状态则写入保存的状态
+                job.setStatus(reqVO.getStatus());
             }
             // 后置处理
             jobOperateAfter(job, SyncConstants.ADD);
@@ -455,6 +465,17 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         }
     }
 
+    @Override
+    public void renewal(AppRecruitJobRenewalReqVO reqVO) {
+        JobAdvertisedDO job = get(reqVO.getId());
+        if(null == reqVO.getTime() || reqVO.getTime().isAfter(LocalDateTime.now())) {
+            // 时间不能小于当前时间
+            throw exception(MDE_JOB_ADVERTISED_TIME_ERROR);
+        }
+        job.setExpireTime(reqVO.getTime());
+        mapper.updateById(job);
+    }
+
     /**
      * 职位操作最后的操作
      *

+ 6 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobIntegrationService.java

@@ -14,6 +14,7 @@ import com.citu.module.menduner.system.controller.app.recruit.unfit.AppRecruitUn
 import com.citu.module.menduner.system.controller.app.recruit.unfit.AppRecruitUnfitCandidateRespVO;
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
+import com.citu.module.menduner.system.controller.base.job.JobAdvertisedImportExcelVO;
 
 import java.util.List;
 
@@ -93,4 +94,9 @@ public interface JobIntegrationService {
      **/
     PageResult<AppRecruitJobExportRespVO> export(AppRecruitJobPageReqVO reqVO);
 
+    /**
+     * 导入招聘职位数据
+     **/
+    void importData(List<JobAdvertisedImportExcelVO> list);
+
 }

+ 41 - 7
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobIntegrationServiceImpl.java

@@ -1,6 +1,7 @@
 package com.citu.module.menduner.system.service.job;
 
 import cn.hutool.core.collection.CollUtil;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.module.menduner.common.util.LoginUserContext;
@@ -10,6 +11,7 @@ import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobCvLoo
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobExportRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobPageReqVO;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobRespVO;
+import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobSaveReqVO;
 import com.citu.module.menduner.system.controller.app.recruit.person.cv.AppRecruitJobCvRelPageReqVO;
 import com.citu.module.menduner.system.controller.app.recruit.person.cv.AppRecruitJobCvRelRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.unfit.AppRecruitUnfitCandidatePageReqVO;
@@ -18,25 +20,27 @@ import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserContactRespVO;
 import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserSummaryRespVO;
 import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
+import com.citu.module.menduner.system.controller.base.job.JobAdvertisedImportExcelVO;
 import com.citu.module.menduner.system.convert.EnterpriseConvert;
 import com.citu.module.menduner.system.convert.JobAdvertisedConvert;
+import com.citu.module.menduner.system.dal.dataobject.area.AreaDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
+import com.citu.module.menduner.system.dal.dataobject.position.PositionDO;
 import com.citu.module.menduner.system.dal.es.job.ESJobAdvertisedMergeDO;
+import com.citu.module.menduner.system.dal.mysql.area.AreaMapper;
 import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseMapper;
 import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
 import com.citu.module.menduner.system.dal.mysql.job.JobCvRelMapper;
+import com.citu.module.menduner.system.dal.mysql.position.PositionMapper;
 import com.citu.module.menduner.system.dal.mysql.unfit.UnfitCandidateMapper;
 import com.citu.module.menduner.system.service.area.AreaService;
 import com.citu.module.menduner.system.service.enterprise.bind.EnterpriseUserBindService;
 import com.citu.module.menduner.system.service.interview.InterviewInviteService;
-import com.citu.module.menduner.system.service.person.favorite.PersonJobFavoriteService;
-import com.citu.module.menduner.system.service.person.subscribe.PersonEnterpriseSubscribeService;
 import com.citu.module.menduner.system.util.ESQueryBuildUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.elasticsearch.index.query.BoolQueryBuilder;
 import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
-import org.elasticsearch.search.sort.SortBuilder;
 import org.elasticsearch.search.sort.SortBuilders;
 import org.elasticsearch.search.sort.SortOrder;
 import org.springframework.data.domain.PageRequest;
@@ -65,6 +69,9 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
     @Resource
     private JobAdvertisedMapper jobAdvertisedMapper;
 
+    @Resource
+    private JobAdvertisedService jobAdvertisedService;
+
     @Resource
     private EnterpriseUserBindService userBindService;
 
@@ -77,6 +84,12 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
     @Resource
     private AreaService areaService;
 
+    @Resource
+    private AreaMapper areaMapper;
+
+    @Resource
+    private PositionMapper positionMapper;
+
     @Resource
     private UnfitCandidateMapper unfitCandidateMapper;
 
@@ -84,7 +97,9 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
     private ElasticsearchRestTemplate elasticsearchTemplate;
 
 
-    /** 包装职位发布联系人 **/
+    /**
+     * 包装职位发布联系人
+     **/
     public PageResult<AppJobAdvertisedRespVO> packContact(PageResult<AppJobAdvertisedRespVO> result) {
         for (AppJobAdvertisedRespVO respVO : result.getList()) {
             // 获取职位发布人
@@ -101,7 +116,7 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
         // 获取已投递的职位
         Long userId = LoginUserContext.getUserId();
         PageResult<AppJobAdvertisedRespVO> result = jobAdvertisedMapper.selectCvRelJobPage(page, userId);
-        return packContact( result);
+        return packContact(result);
     }
 
     @Override
@@ -114,7 +129,7 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
     @Override
     public PageResult<EnterpriseBaseSimpleRespVO> getEnterpriseSubscribePage(PageParam page) {
         Long userId = LoginUserContext.getUserId();
-        return enterpriseMapper.selectSubscribePage(page,userId);
+        return enterpriseMapper.selectSubscribePage(page, userId);
     }
 
     @Override
@@ -322,6 +337,25 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
 
     @Override
     public PageResult<AppRecruitJobExportRespVO> export(AppRecruitJobPageReqVO reqVO) {
-        return jobAdvertisedMapper.page(reqVO,LoginUserContext.getEnterpriseId(), LoginUserContext.getUserId());
+        return jobAdvertisedMapper.page(reqVO, LoginUserContext.getEnterpriseId(), LoginUserContext.getUserId());
+    }
+
+    @Override
+    @DSTransactional
+    public void importData(List<JobAdvertisedImportExcelVO> list) {
+        list.forEach(item -> {
+            AppRecruitJobSaveReqVO job = JobAdvertisedConvert.INSTANCE.convert8(item);
+            List<PositionDO> positionList = positionMapper.selectListByNameList(item.getPosition());
+            if (CollUtil.isNotEmpty(positionList)) {
+                // 重复名字就取第一条
+                job.setPositionId(positionList.get(0).getId());
+            }
+            List<AreaDO> areaList =  areaMapper.selectListByNameList(item.getArea());
+            if (CollUtil.isNotEmpty(areaList)) {
+                // 重复名字就取第一条
+                job.setAreaId(areaList.get(0).getId());
+            }
+            jobAdvertisedService.save(job);
+        });
     }
 }

+ 2 - 0
menduner/menduner-system-biz/src/main/resources/i18n/messages_en_US.properties

@@ -210,6 +210,8 @@
 1_100_025_009=Insufficient account points
 1_100_025_010=Unable to modify the reward balance for published positions
 1_100_025_011=Cannot modify reward points for published positions
+1_100_025_012=Position name ({}) already exists, please modify and save again
+1_100_025_013=The expiration time cannot be less than the current time
 # ========== 企业招聘者浏览 1_100_026_000 ==========
 1_100_026_001=Enterprise recruiter browsing does not exist
 # ========== 人才-企业关注订阅 1_100_027_000 ==========

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

@@ -210,6 +210,8 @@
 1_100_025_009=账户积分不足
 1_100_025_010=不能修改已发布职位赏金余额
 1_100_025_011=不能修改已发布职位赏金积分
+1_100_025_012=职位名称({})已存在,请修改后重新保存
+1_100_025_013=到期时间不能小于当前时间
 # ========== 企业招聘者浏览 1_100_026_000 ==========
 1_100_026_001=企业招聘者浏览不存在
 # ========== 人才-企业关注订阅 1_100_027_000 ==========

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

@@ -1,144 +0,0 @@
-package com.citu.module.menduner.system.service.enterprise;
-
-import com.citu.framework.common.pojo.PageResult;
-import com.citu.framework.test.core.ut.BaseDbUnitTest;
-import com.citu.module.menduner.system.controller.base.enterprise.post.EnterprisePostPageReqVO;
-import com.citu.module.menduner.system.controller.base.enterprise.post.EnterprisePostSaveReqVO;
-import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterprisePostDO;
-import com.citu.module.menduner.system.dal.mysql.enterprise.EnterprisePostMapper;
-import com.citu.module.menduner.system.service.enterprise.post.EnterprisePostServiceImpl;
-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.ENTERPRISE_POST_NOT_EXISTS;
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * {@link EnterprisePostServiceImpl} 的单元测试类
- *
- * @author Rayson
- */
-@Import(EnterprisePostServiceImpl.class)
-public class EnterprisePostServiceImplTest extends BaseDbUnitTest {
-
-    @Resource
-    private EnterprisePostServiceImpl enterprisePostService;
-
-    @Resource
-    private EnterprisePostMapper enterprisePostMapper;
-
-    @Test
-    public void testCreateEnterprisePost_success() {
-        // 准备参数
-        EnterprisePostSaveReqVO createReqVO = randomPojo(EnterprisePostSaveReqVO.class).setId(null);
-
-        // 调用
-        Long enterprisePostId = enterprisePostService.createEnterprisePost(createReqVO);
-        // 断言
-        assertNotNull(enterprisePostId);
-        // 校验记录的属性是否正确
-        EnterprisePostDO enterprisePost = enterprisePostMapper.selectById(enterprisePostId);
-        assertPojoEquals(createReqVO, enterprisePost, "id");
-    }
-
-    @Test
-    public void testUpdateEnterprisePost_success() {
-        // mock 数据
-        EnterprisePostDO dbEnterprisePost = randomPojo(EnterprisePostDO.class);
-        enterprisePostMapper.insert(dbEnterprisePost);// @Sql: 先插入出一条存在的数据
-        // 准备参数
-        EnterprisePostSaveReqVO updateReqVO = randomPojo(EnterprisePostSaveReqVO.class, o -> {
-            o.setId(dbEnterprisePost.getId()); // 设置更新的 ID
-        });
-
-        // 调用
-        enterprisePostService.updateEnterprisePost(updateReqVO);
-        // 校验是否更新正确
-        EnterprisePostDO enterprisePost = enterprisePostMapper.selectById(updateReqVO.getId()); // 获取最新的
-        assertPojoEquals(updateReqVO, enterprisePost);
-    }
-
-    @Test
-    public void testUpdateEnterprisePost_notExists() {
-        // 准备参数
-        EnterprisePostSaveReqVO updateReqVO = randomPojo(EnterprisePostSaveReqVO.class);
-
-        // 调用, 并断言异常
-        assertServiceException(() -> enterprisePostService.updateEnterprisePost(updateReqVO), ENTERPRISE_POST_NOT_EXISTS);
-    }
-
-    @Test
-    public void testDeleteEnterprisePost_success() {
-        // mock 数据
-        EnterprisePostDO dbEnterprisePost = randomPojo(EnterprisePostDO.class);
-        enterprisePostMapper.insert(dbEnterprisePost);// @Sql: 先插入出一条存在的数据
-        // 准备参数
-        Long id = dbEnterprisePost.getId();
-
-        // 调用
-        enterprisePostService.deleteEnterprisePost(id);
-        // 校验数据不存在了
-        assertNull(enterprisePostMapper.selectById(id));
-    }
-
-    @Test
-    public void testDeleteEnterprisePost_notExists() {
-        // 准备参数
-        Long id = randomLongId();
-
-        // 调用, 并断言异常
-        assertServiceException(() -> enterprisePostService.deleteEnterprisePost(id), ENTERPRISE_POST_NOT_EXISTS);
-    }
-
-    @Test
-    @Disabled  // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
-    public void testGetEnterprisePostPage() {
-        // mock 数据
-        EnterprisePostDO dbEnterprisePost = randomPojo(EnterprisePostDO.class, o -> { // 等会查询到
-            o.setEnterpriseId(null);
-            o.setCode(null);
-            o.setNameCn(null);
-            o.setNameEn(null);
-            o.setStatus(null);
-            o.setCreateTime(null);
-        });
-        enterprisePostMapper.insert(dbEnterprisePost);
-        // 测试 enterpriseId 不匹配
-        enterprisePostMapper.insert(cloneIgnoreId(dbEnterprisePost, o -> o.setEnterpriseId(null)));
-        // 测试 code 不匹配
-        enterprisePostMapper.insert(cloneIgnoreId(dbEnterprisePost, o -> o.setCode(null)));
-        // 测试 nameCn 不匹配
-        enterprisePostMapper.insert(cloneIgnoreId(dbEnterprisePost, o -> o.setNameCn(null)));
-        // 测试 nameEn 不匹配
-        enterprisePostMapper.insert(cloneIgnoreId(dbEnterprisePost, o -> o.setNameEn(null)));
-        // 测试 status 不匹配
-        enterprisePostMapper.insert(cloneIgnoreId(dbEnterprisePost, o -> o.setStatus(null)));
-        // 测试 createTime 不匹配
-        enterprisePostMapper.insert(cloneIgnoreId(dbEnterprisePost, o -> o.setCreateTime(null)));
-        // 准备参数
-        EnterprisePostPageReqVO reqVO = new EnterprisePostPageReqVO();
-        reqVO.setEnterpriseId(null);
-        reqVO.setCode(null);
-        reqVO.setNameCn(null);
-        reqVO.setNameEn(null);
-        reqVO.setStatus(null);
-        reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
-
-        // 调用
-        PageResult<EnterprisePostDO> pageResult = enterprisePostService.getEnterprisePostPage(reqVO);
-        // 断言
-        assertEquals(1, pageResult.getTotal());
-        assertEquals(1, pageResult.getList().size());
-        assertPojoEquals(dbEnterprisePost, pageResult.getList().get(0));
-    }
-
-}