Ver Fonte

1、增加企业邀请的逻辑

rayson há 1 ano atrás
pai
commit
ba2f6809e0
40 ficheiros alterados com 784 adições e 82 exclusões
  1. 10 0
      menduner/menduner-common/src/main/java/com/citu/module/menduner/common/util/LoginUserContext.java
  2. 12 1
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java
  3. 21 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/invite/EnterpriseInviteTypeEnum.java
  4. 8 8
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/EnterpriseUserLookController.java
  5. 8 8
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/invite/EnterpriseInviteController.java
  6. 63 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/invite/AppAdminEnterpriseInviteController.java
  7. 45 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/invite/AppAdminEnterpriseInviteRecordController.java
  8. 27 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/invite/vo/AppAdminEnterpriseInviteRecordPageReqVO.java
  9. 14 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/invite/vo/AppAdminEnterpriseInviteRecordRespVO.java
  10. 12 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/invite/vo/AppAdminEnterpriseInviteSimpleReqVO.java
  11. 10 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/user/vo/AppAdminEnterpriseUserRespVO.java
  12. 0 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/user/vo/AppAdminUserRespVO.java
  13. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/bind/EnterpriseUserBindSimpleRespVO.java
  14. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/look/EnterpriseUserLookPageReqVO.java
  15. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/look/EnterpriseUserLookRespVO.java
  16. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/look/EnterpriseUserLookSaveReqVO.java
  17. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/invite/EnterpriseInvitePageReqVO.java
  18. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/invite/EnterpriseInviteRespVO.java
  19. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/invite/EnterpriseInviteSaveReqVO.java
  20. 23 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/invite/EnterpriseInviteSimpleReqVO.java
  21. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterpriseUserLookDO.java
  22. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/invite/EnterpriseInviteDO.java
  23. 19 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseUserBindMapper.java
  24. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseUserLookMapper.java
  25. 40 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/invite/EnterpriseInviteMapper.java
  26. 41 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/invite/EnterpriseInviteRecordMapper.java
  27. 15 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/EnterpriseService.java
  28. 22 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/EnterpriseServiceImpl.java
  29. 23 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/bind/EnterpriseUserBindService.java
  30. 30 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/bind/EnterpriseUserBindServiceImpl.java
  31. 9 9
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/look/EnterpriseUserLookService.java
  32. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/look/EnterpriseUserLookServiceImpl.java
  33. 5 10
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/register/EnterpriseRegisterServiceImpl.java
  34. 20 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/invite/EnterpriseInviteRecordService.java
  35. 126 8
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/invite/EnterpriseInviteRecordServiceImpl.java
  36. 40 8
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/invite/EnterpriseInviteService.java
  37. 83 8
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/invite/EnterpriseInviteServiceImpl.java
  38. 19 0
      menduner/menduner-system-biz/src/main/resources/i18n/messages_en_US.properties
  39. 20 1
      menduner/menduner-system-biz/src/main/resources/i18n/messages_zh_CN.properties
  40. 6 6
      menduner/menduner-system-biz/src/test/resources/sql/create_tables.sql

+ 10 - 0
menduner/menduner-common/src/main/java/com/citu/module/menduner/common/util/LoginUserContext.java

@@ -80,6 +80,16 @@ public class LoginUserContext {
         return Long.valueOf(loginUser.getInfo().get(LoginUser.INFO_KEY_DATA_ID));
     }
 
+    /**
+     * 获取当前登录的用户的企业id
+     **/
+    public static Long getEnterpriseId2(LoginUser loginUser) {
+        if (!checkEnterprise(loginUser)) {
+          return null;
+        }
+        return Long.valueOf(loginUser.getInfo().get(LoginUser.INFO_KEY_DATA_ID));
+    }
+
     /**
      * 效验当前用户企业信息是否存在
      **/

+ 12 - 1
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java

@@ -355,9 +355,20 @@ public interface ErrorCodeConstants {
             new ErrorCode(1_100_041_005, "邀请用户编号不能为空");
 
     ErrorCode ENTERPRISE_INVITE_RECORD_TYPE_NOT_NULL =
-            new ErrorCode(1_100_041_006, "类型(0 邀请同事 | 1 邀请子公司)不能为空");
+            new ErrorCode(1_100_041_006, "类型不能为空");
 
     ErrorCode ENTERPRISE_INVITE_RECORD_CODE_NOT_NULL =
             new ErrorCode(1_100_041_007, "邀请码不能为空");
 
+    ErrorCode ENTERPRISE_INVITE_RECORD_NOT_ADMIN =
+            new ErrorCode(1_100_041_008, "不是企业管理员不能操作成为子公司");
+
+    ErrorCode ENTERPRISE_INVITE_RECORD_EXIST_PARENT =
+            new ErrorCode(1_100_041_009, "公司已存在所属上级,不能操作成为子公司");
+
+    ErrorCode ENTERPRISE_INVITE_RECORD_EXIST=
+            new ErrorCode(1_100_041_010, "已加入该企业不可重复操作");
+
+    ErrorCode ENTERPRISE_INVITE_RECORD_PERSON_INFO_NOT_COMPLETE =
+            new ErrorCode(1_100_041_011, "请先完善个人基本信息");
 }

+ 21 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/invite/EnterpriseInviteTypeEnum.java

@@ -0,0 +1,21 @@
+package com.citu.module.menduner.system.enums.invite;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 企业邀请 0邀请同事 1 邀请子公司
+ **/
+@Getter
+@AllArgsConstructor
+public enum  EnterpriseInviteTypeEnum {
+
+
+    COLLEAGUE("0", "邀请同事"),
+    SUBSIDIARY("1", "邀请子公司"),
+    ;
+
+    private String type;
+    private String desc;
+
+}

+ 8 - 8
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/EnterpriseUserLookController.java

@@ -27,7 +27,7 @@ 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 = "管理后台 - 门墩儿 - 企业招聘者浏览")
+@Tag(name = "管理后台 -  企业招聘者浏览")
 @RestController
 @RequestMapping("/menduner/system/enterprise-user-look")
 @Validated
@@ -37,14 +37,14 @@ public class EnterpriseUserLookController {
     private EnterpriseUserLookService enterpriseUserLookService;
 
     @PostMapping("/create")
-    @Operation(summary = "创建门墩儿 - 企业招聘者浏览")
+    @Operation(summary = "创建 企业招聘者浏览")
     @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-user-look:create')")
     public CommonResult<Long> createEnterpriseUserLook(@Valid @RequestBody EnterpriseUserLookSaveReqVO createReqVO) {
         return success(enterpriseUserLookService.createEnterpriseUserLook(createReqVO));
     }
 
     @PutMapping("/update")
-    @Operation(summary = "更新门墩儿 - 企业招聘者浏览")
+    @Operation(summary = "更新 企业招聘者浏览")
     @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-user-look:update')")
     public CommonResult<Boolean> updateEnterpriseUserLook(@Valid @RequestBody EnterpriseUserLookSaveReqVO updateReqVO) {
         enterpriseUserLookService.updateEnterpriseUserLook(updateReqVO);
@@ -52,7 +52,7 @@ public class EnterpriseUserLookController {
     }
 
     @DeleteMapping("/delete")
-    @Operation(summary = "删除门墩儿 - 企业招聘者浏览")
+    @Operation(summary = "删除 企业招聘者浏览")
     @Parameter(name = "id", description = "编号", required = true)
     @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-user-look:delete')")
     public CommonResult<Boolean> deleteEnterpriseUserLook(@RequestParam("id") Long id) {
@@ -61,7 +61,7 @@ public class EnterpriseUserLookController {
     }
 
     @GetMapping("/get")
-    @Operation(summary = "获得门墩儿 - 企业招聘者浏览")
+    @Operation(summary = "获得 企业招聘者浏览")
     @Parameter(name = "id", description = "编号", required = true, example = "1024")
     @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-user-look:query')")
     public CommonResult<EnterpriseUserLookRespVO> getEnterpriseUserLook(@RequestParam("id") Long id) {
@@ -70,7 +70,7 @@ public class EnterpriseUserLookController {
     }
 
     @GetMapping("/page")
-    @Operation(summary = "获得门墩儿 - 企业招聘者浏览分页")
+    @Operation(summary = "获得 企业招聘者浏览分页")
     @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-user-look:query')")
     public CommonResult<PageResult<EnterpriseUserLookRespVO>> getEnterpriseUserLookPage(@Valid EnterpriseUserLookPageReqVO pageReqVO) {
         PageResult<EnterpriseUserLookDO> pageResult = enterpriseUserLookService.getEnterpriseUserLookPage(pageReqVO);
@@ -78,7 +78,7 @@ public class EnterpriseUserLookController {
     }
 
     @GetMapping("/export-excel")
-    @Operation(summary = "导出门墩儿 - 企业招聘者浏览 Excel")
+    @Operation(summary = "导出 企业招聘者浏览 Excel")
     @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-user-look:export')")
     @ApiAccessLog(operateType = EXPORT)
     public void exportEnterpriseUserLookExcel(@Valid EnterpriseUserLookPageReqVO pageReqVO,
@@ -86,7 +86,7 @@ public class EnterpriseUserLookController {
         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
         List<EnterpriseUserLookDO> list = enterpriseUserLookService.getEnterpriseUserLookPage(pageReqVO).getList();
         // 导出 Excel
-        ExcelUtils.write(response, "门墩儿 - 企业招聘者浏览.xls", "数据", EnterpriseUserLookRespVO.class,
+        ExcelUtils.write(response, " 企业招聘者浏览.xls", "数据", EnterpriseUserLookRespVO.class,
                 BeanUtils.toBean(list, EnterpriseUserLookRespVO.class));
     }
 

+ 8 - 8
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/invite/EnterpriseInviteController.java

@@ -28,7 +28,7 @@ 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 = "管理后台 - 门墩儿-企业邀请码")
+@Tag(name = "管理后台 - 企业邀请码")
 @RestController
 @RequestMapping("/menduner/system/enterprise-invite")
 @Validated
@@ -38,14 +38,14 @@ public class EnterpriseInviteController {
     private EnterpriseInviteService enterpriseInviteService;
 
     @PostMapping("/create")
-    @Operation(summary = "创建门墩儿-企业邀请码")
+    @Operation(summary = "创建企业邀请码")
     @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-invite:create')")
     public CommonResult<Long> createEnterpriseInvite(@Valid @RequestBody EnterpriseInviteSaveReqVO createReqVO) {
         return success(enterpriseInviteService.createEnterpriseInvite(createReqVO));
     }
 
     @PutMapping("/update")
-    @Operation(summary = "更新门墩儿-企业邀请码")
+    @Operation(summary = "更新企业邀请码")
     @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-invite:update')")
     public CommonResult<Boolean> updateEnterpriseInvite(@Valid @RequestBody EnterpriseInviteSaveReqVO updateReqVO) {
         enterpriseInviteService.updateEnterpriseInvite(updateReqVO);
@@ -53,7 +53,7 @@ public class EnterpriseInviteController {
     }
 
     @DeleteMapping("/delete")
-    @Operation(summary = "删除门墩儿-企业邀请码")
+    @Operation(summary = "删除企业邀请码")
     @Parameter(name = "id", description = "编号", required = true)
     @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-invite:delete')")
     public CommonResult<Boolean> deleteEnterpriseInvite(@RequestParam("id") Long id) {
@@ -62,7 +62,7 @@ public class EnterpriseInviteController {
     }
 
     @GetMapping("/get")
-    @Operation(summary = "获得门墩儿-企业邀请码")
+    @Operation(summary = "获得企业邀请码")
     @Parameter(name = "id", description = "编号", required = true, example = "1024")
     @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-invite:query')")
     public CommonResult<EnterpriseInviteRespVO> getEnterpriseInvite(@RequestParam("id") Long id) {
@@ -71,7 +71,7 @@ public class EnterpriseInviteController {
     }
 
     @GetMapping("/page")
-    @Operation(summary = "获得门墩儿-企业邀请码分页")
+    @Operation(summary = "获得企业邀请码分页")
     @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-invite:query')")
     public CommonResult<PageResult<EnterpriseInviteRespVO>> getEnterpriseInvitePage(@Valid EnterpriseInvitePageReqVO pageReqVO) {
         PageResult<EnterpriseInviteDO> pageResult = enterpriseInviteService.getEnterpriseInvitePage(pageReqVO);
@@ -79,7 +79,7 @@ public class EnterpriseInviteController {
     }
 
     @GetMapping("/export-excel")
-    @Operation(summary = "导出门墩儿-企业邀请码 Excel")
+    @Operation(summary = "导出企业邀请码 Excel")
     @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-invite:export')")
     @ApiAccessLog(operateType = EXPORT)
     public void exportEnterpriseInviteExcel(@Valid EnterpriseInvitePageReqVO pageReqVO,
@@ -87,7 +87,7 @@ public class EnterpriseInviteController {
         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
         List<EnterpriseInviteDO> list = enterpriseInviteService.getEnterpriseInvitePage(pageReqVO).getList();
         // 导出 Excel
-        ExcelUtils.write(response, "门墩儿-企业邀请码.xls", "数据", EnterpriseInviteRespVO.class,
+        ExcelUtils.write(response, "企业邀请码.xls", "数据", EnterpriseInviteRespVO.class,
                 BeanUtils.toBean(list, EnterpriseInviteRespVO.class));
     }
 

+ 63 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/invite/AppAdminEnterpriseInviteController.java

@@ -0,0 +1,63 @@
+package com.citu.module.menduner.system.controller.appadmin.invite;
+
+import com.citu.framework.common.pojo.CommonResult;
+import com.citu.framework.security.core.annotations.PreAuthenticated;
+import com.citu.module.menduner.system.controller.appadmin.invite.vo.AppAdminEnterpriseInviteSimpleReqVO;
+import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminEnterpriseUserRespVO;
+import com.citu.module.menduner.system.dal.dataobject.invite.EnterpriseInviteDO;
+import com.citu.module.menduner.system.service.enterprise.bind.EnterpriseUserBindService;
+import com.citu.module.menduner.system.service.invite.EnterpriseInviteService;
+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 javax.annotation.Resource;
+import javax.validation.Valid;
+
+import static com.citu.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "招聘端 - 企业邀请码")
+@RestController
+@RequestMapping("/menduner/system/enterprise-invite")
+@Validated
+public class AppAdminEnterpriseInviteController {
+
+    @Resource
+    private EnterpriseInviteService service;
+
+    @Resource
+    private EnterpriseUserBindService userBindService;
+
+    @PreAuthenticated
+    @GetMapping("/get/code")
+    @Operation(summary = "获取邀请码")
+    public CommonResult<String> getCode(@RequestParam("type") String type) {
+        return success(service.getCode(type));
+    }
+
+    @PreAuthenticated
+    @PostMapping("/refresh")
+    @Operation(summary = "刷新邀请码")
+    public CommonResult<Boolean> refresh(@RequestParam("code") String code) {
+        service.refresh(code);
+        return success(true);
+    }
+
+    @PreAuthenticated
+    @PostMapping("/generate/code")
+    @Operation(summary = "生成邀请码标识")
+    public CommonResult<String> generateCode(@RequestBody @Valid AppAdminEnterpriseInviteSimpleReqVO reqVO) {
+        return success(service.generateCode(reqVO));
+    }
+
+
+    @PreAuthenticated
+    @GetMapping("/get/info/by/code")
+    @Operation(summary = "根据邀请码获取邀请用户信息")
+    public CommonResult<AppAdminEnterpriseUserRespVO> getInviteEnterpriseUser(@RequestParam("code") String code) {
+        EnterpriseInviteDO invite = service.getByCode(code);
+        return success(userBindService.getEnterpriseUser(invite.getEnterpriseId(), invite.getUserId()));
+    }
+
+}

+ 45 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/invite/AppAdminEnterpriseInviteRecordController.java

@@ -0,0 +1,45 @@
+package com.citu.module.menduner.system.controller.appadmin.invite;
+
+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.appadmin.invite.vo.AppAdminEnterpriseInviteRecordPageReqVO;
+import com.citu.module.menduner.system.controller.appadmin.invite.vo.AppAdminEnterpriseInviteRecordRespVO;
+import com.citu.module.menduner.system.service.invite.EnterpriseInviteRecordService;
+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 javax.annotation.Resource;
+import javax.validation.Valid;
+
+import static com.citu.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "招聘端 - 企业邀请记录")
+@RestController
+@RequestMapping("/menduner/system/enterprise-invite-record")
+@Validated
+public class AppAdminEnterpriseInviteRecordController {
+
+
+    @Resource
+    private EnterpriseInviteRecordService service;
+
+    @PreAuthenticated
+    @GetMapping("/page")
+    @Operation(summary = "获得企业邀请记录分页")
+    public CommonResult<PageResult<AppAdminEnterpriseInviteRecordRespVO>> page(
+            @Valid AppAdminEnterpriseInviteRecordPageReqVO reqVO) {
+        return success(service.page(reqVO));
+    }
+
+    @PreAuthenticated
+    @PostMapping("/consent")
+    @Operation(summary = "同意加入")
+    public CommonResult<Boolean> consent(@RequestParam("code") String code) {
+        service.consent(code);
+        return success(true);
+    }
+
+}

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

@@ -0,0 +1,27 @@
+package com.citu.module.menduner.system.controller.appadmin.invite.vo;
+
+import com.citu.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+@Schema(description = "menduner - 企业邀请记录分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class AppAdminEnterpriseInviteRecordPageReqVO extends PageParam {
+
+    @Schema(description = "受邀企业id", example = "7577")
+    private Long enterpriseId;
+
+    @Schema(description = "受邀用户编号", example = "25133")
+    private Long userId;
+
+    @Schema(description = "类型(0 邀请同事 | 1 邀请子公司)", example = "1")
+    private String type;
+
+    @Schema(description = "邀请码")
+    private String code;
+
+}

+ 14 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/invite/vo/AppAdminEnterpriseInviteRecordRespVO.java

@@ -0,0 +1,14 @@
+package com.citu.module.menduner.system.controller.appadmin.invite.vo;
+
+import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminEnterpriseUserRespVO;
+import com.citu.module.menduner.system.controller.base.invite.EnterpriseInviteRecordRespVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "menduner - 企业邀请记录 Response VO")
+@Data
+public class AppAdminEnterpriseInviteRecordRespVO extends EnterpriseInviteRecordRespVO {
+
+    @Schema(description = "受邀企业用户信息")
+    private AppAdminEnterpriseUserRespVO enterpriseUser;
+}

+ 12 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/invite/vo/AppAdminEnterpriseInviteSimpleReqVO.java

@@ -0,0 +1,12 @@
+package com.citu.module.menduner.system.controller.appadmin.invite.vo;
+
+
+import com.citu.module.menduner.system.controller.base.invite.EnterpriseInviteSimpleReqVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "menduner - 企业邀请码简易 Request VO")
+@Data
+public class AppAdminEnterpriseInviteSimpleReqVO extends EnterpriseInviteSimpleReqVO {
+
+}

+ 10 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/user/vo/AppAdminEnterpriseUserRespVO.java

@@ -0,0 +1,10 @@
+package com.citu.module.menduner.system.controller.appadmin.user.vo;
+
+import com.citu.module.menduner.system.controller.base.enterprise.bind.EnterpriseUserBindSimpleRespVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "企业用户简易信息 Response VO")
+@Data
+public class AppAdminEnterpriseUserRespVO extends EnterpriseUserBindSimpleRespVO {
+}

+ 0 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/user/vo/AppAdminUserRespVO.java

@@ -19,9 +19,6 @@ public class AppAdminUserRespVO extends EnterpriseUserBindSimpleRespVO {
     @Schema(description = "用户邮箱")
     private String email;
 
-    @Schema(description = "企业logo地址", example = "https://www.menduner.com/static/img/loginlogo2.7924c12.png")
-    private String logoUrl;
-
     @Schema(description = "用户类型(0普通企业用户 1 企业管理员)", example = "2")
     private String userType;
 

+ 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 = "企业logo地址")
+    private String logoUrl;
+
     @Schema(description = "名称", example = "x女士")
     private String name;
 

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

@@ -11,7 +11,7 @@ import java.time.LocalDateTime;
 
 import static com.citu.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
 
-@Schema(description = "门墩儿 - 企业招聘者浏览分页 Request VO")
+@Schema(description = " 企业招聘者浏览分页 Request VO")
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

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

@@ -7,7 +7,7 @@ import lombok.Data;
 
 import java.time.LocalDateTime;
 
-@Schema(description = "门墩儿 - 企业招聘者浏览 Response VO")
+@Schema(description = " 企业招聘者浏览 Response VO")
 @Data
 @ExcelIgnoreUnannotated
 public class EnterpriseUserLookRespVO {

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

@@ -5,7 +5,7 @@ import lombok.Data;
 
 import javax.validation.constraints.NotNull;
 
-@Schema(description = "门墩儿 - 企业招聘者浏览新增/修改 Request VO")
+@Schema(description = " 企业招聘者浏览新增/修改 Request VO")
 @Data
 public class EnterpriseUserLookSaveReqVO {
 

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

@@ -12,7 +12,7 @@ import java.time.LocalDateTime;
 
 import static com.citu.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
 
-@Schema(description = "管理后台 - 门墩儿-企业邀请码分页 Request VO")
+@Schema(description = "管理后台 - 企业邀请码分页 Request VO")
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

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

@@ -8,7 +8,7 @@ import lombok.Data;
 
 import java.time.LocalDateTime;
 
-@Schema(description = "管理后台 - 门墩儿-企业邀请码 Response VO")
+@Schema(description = "管理后台 - 企业邀请码 Response VO")
 @Data
 @ExcelIgnoreUnannotated
 public class EnterpriseInviteRespVO {

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

@@ -7,7 +7,7 @@ import lombok.Data;
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 
-@Schema(description = "管理后台 - 门墩儿-企业邀请码新增/修改 Request VO")
+@Schema(description = "管理后台 - 企业邀请码新增/修改 Request VO")
 @Data
 public class EnterpriseInviteSaveReqVO {
 

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

@@ -0,0 +1,23 @@
+package com.citu.module.menduner.system.controller.base.invite;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+@Schema(description = "管理后台 - 企业邀请码简易 Request VO")
+@Data
+public class EnterpriseInviteSimpleReqVO {
+
+
+    @Schema(description = "类型(0 邀请同事 | 1 邀请子公司)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    @NotEmpty(message = "{1_100_040_004}")
+    private String type;
+
+    @Schema(description = "失效天数", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "{1_100_040_006}")
+    private Integer expireDay;
+
+}

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

@@ -8,7 +8,7 @@ import com.citu.framework.tenant.core.db.TenantBaseDO;
 import lombok.*;
 
 /**
- * 门墩儿 - 企业招聘者浏览 DO
+ *  企业招聘者浏览 DO
  *
  * @author Rayson
  */

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

@@ -8,7 +8,7 @@ import com.citu.framework.mybatis.core.dataobject.BaseDO;
 import lombok.*;
 
 /**
- * 门墩儿-企业邀请码 DO
+ * 企业邀请码 DO
  *
  * @author Rayson
  */

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

@@ -6,6 +6,7 @@ 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.appadmin.user.vo.AppAdminEnterprisePostSimpleRespVO;
+import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminEnterpriseUserRespVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserRespVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserPageReqVO;
 import com.citu.module.menduner.system.controller.base.enterprise.bind.EnterpriseUserBindPageReqVO;
@@ -97,4 +98,22 @@ public interface EnterpriseUserBindMapper extends BaseMapperX<EnterpriseUserBind
         return selectJoinPage(reqVO, AppAdminUserRespVO.class, wrapper);
     }
 
+
+    default AppAdminEnterpriseUserRespVO selectEnterpriseUser(Long enterpriseId, Long userId) {
+        MPJLambdaWrapperX<EnterpriseUserBindDO> wrapper = new MPJLambdaWrapperX<>();
+        wrapper.selectAll(EnterpriseUserBindDO.class);
+        wrapper.selectAsClass(EnterprisePostDO.class,AppAdminEnterpriseUserRespVO.class);
+        wrapper.selectAs(EnterpriseDO::getName, AppAdminUserRespVO::getEnterpriseName);
+        wrapper.selectAs(EnterpriseDO::getAnotherName, AppAdminUserRespVO::getEnterpriseAnotherName);
+        wrapper.selectAs(EnterpriseDO::getLogoUrl, AppAdminUserRespVO::getLogoUrl);
+
+        wrapper.innerJoin(EnterpriseDO.class, on->
+                on.eq(EnterpriseDO::getId, EnterpriseUserBindDO::getEnterpriseId));
+
+        wrapper.eq(EnterpriseUserBindDO::getEnterpriseId, enterpriseId);
+        wrapper.eq(EnterpriseUserBindDO::getUserId, userId);
+
+        return selectJoinOne(AppAdminEnterpriseUserRespVO.class, wrapper);
+    }
+
 }

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

@@ -9,7 +9,7 @@ import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserL
 import org.apache.ibatis.annotations.Mapper;
 
 /**
- * 门墩儿 - 企业招聘者浏览 Mapper
+ *  企业招聘者浏览 Mapper
  *
  * @author Rayson
  */

+ 40 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/invite/EnterpriseInviteMapper.java

@@ -4,12 +4,19 @@ package com.citu.module.menduner.system.dal.mysql.invite;
 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.appadmin.invite.vo.AppAdminEnterpriseInviteRecordRespVO;
+import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminEnterpriseUserRespVO;
 import com.citu.module.menduner.system.controller.base.invite.EnterpriseInvitePageReqVO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
 import com.citu.module.menduner.system.dal.dataobject.invite.EnterpriseInviteDO;
+import com.citu.module.menduner.system.dal.dataobject.invite.EnterpriseInviteRecordDO;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
- * 门墩儿-企业邀请码 Mapper
+ * 企业邀请码 Mapper
  *
  * @author Rayson
  */
@@ -26,4 +33,36 @@ public interface EnterpriseInviteMapper extends BaseMapperX<EnterpriseInviteDO>
                 .orderByDesc(EnterpriseInviteDO::getId));
     }
 
+    /**
+     * 根据企业id、用户id、类型查询
+     * @param enterpriseId 企业id
+     * @param userId 用户id
+     * @param type 类型
+     **/
+    default EnterpriseInviteDO selectByType(Long enterpriseId,Long userId,String type) {
+        return selectOne(new LambdaQueryWrapperX<EnterpriseInviteDO>()
+                .eq(EnterpriseInviteDO::getEnterpriseId, enterpriseId)
+                .eq(EnterpriseInviteDO::getUserId, userId)
+                .eq(EnterpriseInviteDO::getType, type));
+    }
+
+    /**
+     * 根据邀请码查询
+     * @param code 邀请码
+     **/
+    default EnterpriseInviteDO selectByCode(String code) {
+        return selectOne(new LambdaQueryWrapperX<EnterpriseInviteDO>()
+                .eq(EnterpriseInviteDO::getCode, code));
+    }
+
+    /**
+     * 根据类型查询
+     * @param type 类型
+     **/
+    default List<EnterpriseInviteDO> selectList(String type) {
+        return selectList(new LambdaQueryWrapperX<EnterpriseInviteDO>()
+                .eq(EnterpriseInviteDO::getType, type));
+    }
+
+
 }

+ 41 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/invite/EnterpriseInviteRecordMapper.java

@@ -4,7 +4,13 @@ package com.citu.module.menduner.system.dal.mysql.invite;
 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.appadmin.invite.vo.AppAdminEnterpriseInviteRecordPageReqVO;
+import com.citu.module.menduner.system.controller.appadmin.invite.vo.AppAdminEnterpriseInviteRecordRespVO;
+import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminEnterpriseUserRespVO;
 import com.citu.module.menduner.system.controller.base.invite.EnterpriseInviteRecordPageReqVO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
 import com.citu.module.menduner.system.dal.dataobject.invite.EnterpriseInviteRecordDO;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -28,4 +34,39 @@ public interface EnterpriseInviteRecordMapper extends BaseMapperX<EnterpriseInvi
                 .orderByDesc(EnterpriseInviteRecordDO::getId));
     }
 
+
+    /**
+     * 企业邀请记录分页查询
+     */
+    default PageResult<AppAdminEnterpriseInviteRecordRespVO> page(
+            AppAdminEnterpriseInviteRecordPageReqVO reqVO,
+            Long enterpriseId,
+            Long userId) {
+        MPJLambdaWrapperX<EnterpriseInviteRecordDO> wrapper = new MPJLambdaWrapperX<>();
+        wrapper.selectAll(EnterpriseInviteRecordDO.class);
+        wrapper.selectAssociation(EnterpriseUserBindDO.class, AppAdminEnterpriseInviteRecordRespVO::getEnterpriseUser);
+
+        wrapper.selectAs(EnterpriseDO::getName, AppAdminEnterpriseUserRespVO::getEnterpriseName);
+        wrapper.selectAs(EnterpriseDO::getAnotherName, AppAdminEnterpriseUserRespVO::getEnterpriseAnotherName);
+        wrapper.selectAs(EnterpriseDO::getLogoUrl, AppAdminEnterpriseUserRespVO::getLogoUrl);
+
+        wrapper.innerJoin(EnterpriseUserBindDO.class, on ->
+                on.eq(EnterpriseUserBindDO::getEnterpriseId, EnterpriseInviteRecordDO::getInviteEnterpriseId)
+                        .eq(EnterpriseUserBindDO::getUserId, EnterpriseInviteRecordDO::getInviteUserId)
+        );
+
+
+        wrapper.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, EnterpriseUserBindDO::getEnterpriseId);
+
+        wrapper.eqIfPresent(EnterpriseInviteRecordDO::getEnterpriseId, reqVO.getEnterpriseId());
+        wrapper.eqIfPresent(EnterpriseInviteRecordDO::getUserId, reqVO.getUserId());
+        wrapper.eqIfPresent(EnterpriseInviteRecordDO::getType, reqVO.getType());
+        wrapper.eqIfPresent(EnterpriseInviteRecordDO::getCode, reqVO.getCode());
+
+        wrapper.eq(EnterpriseInviteRecordDO::getInviteEnterpriseId, enterpriseId);
+        wrapper.eq(EnterpriseInviteRecordDO::getInviteUserId, userId);
+
+        return selectJoinPage(reqVO, AppAdminEnterpriseInviteRecordRespVO.class, wrapper);
+    }
+
 }

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

@@ -89,6 +89,21 @@ public interface EnterpriseService {
      */
     List<EnterpriseDO> getEnterpriseList(EnterpriseListReqVO reqVO);
 
+    /**
+     * 判断是否有父企业
+     *
+     * @param id 企业id
+     * @return true 有 | false 没有
+     */
+    boolean checkHasParent(Long id);
+
+    /**
+     * 更新企业父企业
+     *
+     * @param id       企业id
+     * @param parentId 父企业id
+     */
+    void updateParent(Long id, Long parentId);
     // ========== 求职端 ==========
     /**
      * 点击执行埋点

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

@@ -145,6 +145,27 @@ public class EnterpriseServiceImpl implements EnterpriseService {
         return list;
     }
 
+    @Override
+    public boolean checkHasParent(Long id) {
+        EnterpriseDO enterprise = getEnterprise(id);
+        if (null == enterprise) {
+            return false;
+        }
+        return null != enterprise.getParentId()
+                && enterprise.getParentId() > 0;
+    }
+
+    @Override
+    public void updateParent(Long id, Long parentId) {
+        EnterpriseDO enterprise = getEnterprise(id);
+        if(null ==enterprise) {
+            throw exception(MDE_ENTERPRISE_NOT_EXISTS);
+        }
+
+        enterprise.setParentId(parentId);
+        enterpriseMapper.updateById(enterprise);
+    }
+
     @Override
     public void click(AppEnterpriseClickReqVO reqVO) {
         producer.sendVisitsSendMessage(MdeVisitsEnum.ENTERPRISE_CLICK.getType(), reqVO.getId());
@@ -246,7 +267,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
     }
 
     @Override
-    @Cacheable(cacheNames = RedisKeyConstants.MDE_ENTERPRISE_TREE+"#5h", key = "#id",
+    @Cacheable(cacheNames = RedisKeyConstants.MDE_ENTERPRISE_TREE + "#5h", key = "#id",
             unless = "#result == null")
     public AppAdminEnterpriseTreeRespVO getTree(Long id) {
         EnterpriseDO parent = enterpriseMapper.selectListById(id);

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

@@ -2,6 +2,7 @@ package com.citu.module.menduner.system.service.enterprise.bind;
 
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseUserBindRespVO;
+import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminEnterpriseUserRespVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserRespVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserPageReqVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserSaveReqVO;
@@ -84,6 +85,19 @@ public interface EnterpriseUserBindService {
      **/
     EnterpriseUserBindDO selectByEnterpriseIdAndUserId(Long enterpriseId, Long userId);
 
+    /**
+     * 判断是否是管理员
+     *
+     * @param userBindDO
+     */
+    boolean checkIsAdmin(EnterpriseUserBindDO userBindDO);
+
+    /**
+     * 创建用户
+     * @param userBindDO
+     **/
+    void createUser(EnterpriseUserBindDO userBindDO);
+
     // ========== 求职端 ==========
     /**
      * 根据联系人id,获取联系人基本信息
@@ -103,6 +117,7 @@ public interface EnterpriseUserBindService {
      **/
     List<AppEnterpriseUserBindRespVO> getBindListByPhone(String phone);
 
+
     // ========== 招聘端 ==========
 
     /**
@@ -143,4 +158,12 @@ public interface EnterpriseUserBindService {
      * 效验是否有该岗位的用户
      **/
     Boolean checkPost(Long postId);
+
+    /**
+     * 根据企业id和用户id查询用户信息
+     * @param enterpriseId
+     * @param userId
+     * @return
+     **/
+    AppAdminEnterpriseUserRespVO getEnterpriseUser(Long enterpriseId, Long userId);
 }

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

@@ -2,11 +2,13 @@ package com.citu.module.menduner.system.service.enterprise.bind;
 
 
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.citu.framework.common.enums.UserTypeEnum;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.security.core.LoginUser;
 import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseUserBindRespVO;
+import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminEnterpriseUserRespVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserPageReqVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserRespVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserSaveReqVO;
@@ -21,7 +23,10 @@ import com.citu.module.menduner.system.dal.dataobject.user.MdeUserDO;
 import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseMapper;
 import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseUserBindMapper;
 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 org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
@@ -51,6 +56,9 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
     @Resource
     private EnterprisePostService enterprisePostService;
 
+    @Resource
+    private MdePermissionService mdePermissionService;
+
     @Resource
     private EnterpriseMapper enterpriseMapper;
 
@@ -116,6 +124,23 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
         return enterpriseUserBindMapper.selectByEnterpriseIdAndUserId(enterpriseId, userId);
     }
 
+    @Override
+    public boolean checkIsAdmin(EnterpriseUserBindDO userBindDO) {
+        if(null == userBindDO) {
+            throw exception(MDE_ENTERPRISE_USER_BIND_NOT_EXISTS);
+        }
+        return UserTypeEnum.MEMBER_ADMIN.getValue().toString()
+                .equals(userBindDO.getUserType());
+    }
+
+    @Override
+    @DSTransactional
+    public void createUser(EnterpriseUserBindDO userBindDO) {
+        enterpriseUserBindMapper.insert(userBindDO);
+        // 设置用户绑定企业角色
+        mdePermissionService.assignUserRoleByDefault(userBindDO.getUserId(), MdeDefaultRoleEnum.MENDUNER_ENTERPRISE_ROLE);
+    }
+
     @Override
     public AppEnterpriseUserContactRespVO getContact(Long enterpriseId, Long userId) {
         EnterpriseUserBindDO userBindDO = enterpriseUserBindMapper.selectByEnterpriseIdAndUserId(enterpriseId, userId);
@@ -304,4 +329,9 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
                 .selectByEnterpriseIdAndPostId(
                         LoginUserContext.getEnterpriseId(loginUser), postId).isEmpty();
     }
+
+    @Override
+    public AppAdminEnterpriseUserRespVO getEnterpriseUser(Long enterpriseId, Long userId) {
+        return enterpriseUserBindMapper.selectEnterpriseUser(enterpriseId, userId);
+    }
 }

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

@@ -9,14 +9,14 @@ import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserL
 import javax.validation.Valid;
 
 /**
- * 门墩儿 - 企业招聘者浏览 Service 接口
+ *  企业招聘者浏览 Service 接口
  *
  * @author Rayson
  */
 public interface EnterpriseUserLookService {
 
     /**
-     * 创建门墩儿 - 企业招聘者浏览
+     * 创建 企业招聘者浏览
      *
      * @param createReqVO 创建信息
      * @return 编号
@@ -24,32 +24,32 @@ public interface EnterpriseUserLookService {
     Long createEnterpriseUserLook(@Valid EnterpriseUserLookSaveReqVO createReqVO);
 
     /**
-     * 更新门墩儿 - 企业招聘者浏览
+     * 更新 企业招聘者浏览
      *
      * @param updateReqVO 更新信息
      */
     void updateEnterpriseUserLook(@Valid EnterpriseUserLookSaveReqVO updateReqVO);
 
     /**
-     * 删除门墩儿 - 企业招聘者浏览
+     * 删除 企业招聘者浏览
      *
      * @param id 编号
      */
     void deleteEnterpriseUserLook(Long id);
 
     /**
-     * 获得门墩儿 - 企业招聘者浏览
+     * 获得 企业招聘者浏览
      *
      * @param id 编号
-     * @return 门墩儿 - 企业招聘者浏览
+     * @return  企业招聘者浏览
      */
     EnterpriseUserLookDO getEnterpriseUserLook(Long id);
 
     /**
-     * 获得门墩儿 - 企业招聘者浏览分页
+     * 获得 企业招聘者浏览分页
      *
      * @param pageReqVO 分页查询
-     * @return 门墩儿 - 企业招聘者浏览分页
+     * @return  企业招聘者浏览分页
      */
     PageResult<EnterpriseUserLookDO> getEnterpriseUserLookPage(EnterpriseUserLookPageReqVO pageReqVO);
 
@@ -58,7 +58,7 @@ public interface EnterpriseUserLookService {
      *
      * @param page   分页信息
      * @param userId 用户id
-     * @return 门墩儿 - 企业招聘者浏览
+     * @return  企业招聘者浏览
      */
     PageResult<EnterpriseUserLookDO> getLookByUserId(PageParam page, Long userId);
 

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/look/EnterpriseUserLookServiceImpl.java

@@ -16,7 +16,7 @@ import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exce
 import static com.citu.module.menduner.system.enums.ErrorCodeConstants.ENTERPRISE_USER_LOOK_NOT_EXISTS;
 
 /**
- * 门墩儿 - 企业招聘者浏览 Service 实现类
+ *  企业招聘者浏览 Service 实现类
  *
  * @author Rayson
  */

+ 5 - 10
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/register/EnterpriseRegisterServiceImpl.java

@@ -22,6 +22,7 @@ import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import com.citu.module.menduner.system.enums.enterprise.EnterpriseRegisterAuditStatusEnum;
 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.bind.EnterpriseUserBindService;
 import com.citu.module.menduner.system.service.permission.MdePermissionService;
 import com.citu.module.menduner.common.util.LoginUserContext;
 import org.springframework.stereotype.Service;
@@ -51,10 +52,7 @@ public class EnterpriseRegisterServiceImpl implements EnterpriseRegisterService
     private EnterpriseMapper enterpriseMapper;
 
     @Resource
-    private MdePermissionService mdePermissionService;
-
-    @Resource
-    private EnterpriseUserBindMapper userBindMapper;
+    private EnterpriseUserBindService userBindService;
 
     @Override
     public Long createEnterpriseRegister(EnterpriseRegisterSaveReqVO createReqVO) {
@@ -134,20 +132,17 @@ public class EnterpriseRegisterServiceImpl implements EnterpriseRegisterService
 
         enterpriseBusinessMapper.insert(business);
 
-        // 增加企业管理员用户
+        // 增加企业用户
         EnterpriseUserBindDO userBindDO = new EnterpriseUserBindDO();
         userBindDO.setEnterpriseId(enterprise.getId());
         userBindDO.setUserId(enterpriseRegister.getUserId());
-        userBindDO.setName("企业招聘者-新用户");
+        userBindDO.setName(enterpriseRegister.getName()+"-"+"BOSS");
         userBindDO.setStatus(MendunerStatusEnum.ENABLE.getStatus());
         userBindDO.setUserType(EnterpriseUserTypeEnum.ADMIN.getType());
         userBindDO.setPhone(enterpriseRegister.getPhone());
         userBindDO.setEmail(enterpriseRegister.getEmail());
-        userBindMapper.insert(userBindDO);
 
-        // 设置用户绑定企业管理员角色
-        // 谁申请的,谁就是企业管理员
-        mdePermissionService.assignUserRoleByDefault(enterpriseRegister.getUserId(), MdeDefaultRoleEnum.MENDUNER_ENTERPRISE_ROLE);
+        userBindService.createUser(userBindDO);
     }
 
     @Override

+ 20 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/invite/EnterpriseInviteRecordService.java

@@ -2,6 +2,8 @@ package com.citu.module.menduner.system.service.invite;
 
 
 import com.citu.framework.common.pojo.PageResult;
+import com.citu.module.menduner.system.controller.appadmin.invite.vo.AppAdminEnterpriseInviteRecordPageReqVO;
+import com.citu.module.menduner.system.controller.appadmin.invite.vo.AppAdminEnterpriseInviteRecordRespVO;
 import com.citu.module.menduner.system.controller.base.invite.EnterpriseInviteRecordPageReqVO;
 import com.citu.module.menduner.system.controller.base.invite.EnterpriseInviteRecordSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.invite.EnterpriseInviteRecordDO;
@@ -53,4 +55,22 @@ public interface EnterpriseInviteRecordService {
      */
     PageResult<EnterpriseInviteRecordDO> getEnterpriseInviteRecordPage(EnterpriseInviteRecordPageReqVO pageReqVO);
 
+    // ========== 招聘端 ==========
+
+    /**
+     * 同意加入
+     *
+     * @param code 邀请码
+     */
+    void consent(String code);
+
+    /**
+     * 获得企业邀请记录分页
+     *
+     * @param reqVO 分页查询
+     * @return 企业邀请记录分页
+     */
+    PageResult<AppAdminEnterpriseInviteRecordRespVO> page(AppAdminEnterpriseInviteRecordPageReqVO reqVO);
+
+
 }

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

@@ -1,19 +1,36 @@
 package com.citu.module.menduner.system.service.invite;
 
 
+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.framework.security.core.LoginUser;
+import com.citu.module.menduner.common.util.LoginUserContext;
+import com.citu.module.menduner.system.controller.appadmin.invite.vo.AppAdminEnterpriseInviteRecordPageReqVO;
+import com.citu.module.menduner.system.controller.appadmin.invite.vo.AppAdminEnterpriseInviteRecordRespVO;
 import com.citu.module.menduner.system.controller.base.invite.EnterpriseInviteRecordPageReqVO;
 import com.citu.module.menduner.system.controller.base.invite.EnterpriseInviteRecordSaveReqVO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
+import com.citu.module.menduner.system.dal.dataobject.invite.EnterpriseInviteDO;
 import com.citu.module.menduner.system.dal.dataobject.invite.EnterpriseInviteRecordDO;
+import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
+import com.citu.module.menduner.system.dal.dataobject.user.MdeUserDO;
 import com.citu.module.menduner.system.dal.mysql.invite.EnterpriseInviteRecordMapper;
+import com.citu.module.menduner.system.enums.MendunerStatusEnum;
+import com.citu.module.menduner.system.enums.enterprise.EnterpriseUserTypeEnum;
+import com.citu.module.menduner.system.enums.invite.EnterpriseInviteTypeEnum;
+import com.citu.module.menduner.system.service.enterprise.EnterpriseService;
+import com.citu.module.menduner.system.service.enterprise.bind.EnterpriseUserBindService;
+import com.citu.module.menduner.system.service.person.info.PersonInfoService;
+import com.citu.module.menduner.system.service.user.MdeUserService;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
 
 import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static com.citu.module.menduner.system.enums.ErrorCodeConstants.ENTERPRISE_INVITE_RECORD_NOT_EXISTS;
+import static com.citu.module.menduner.system.enums.ErrorCodeConstants.*;
 
 /**
  * 企业邀请记录 Service 实现类
@@ -25,13 +42,25 @@ import static com.citu.module.menduner.system.enums.ErrorCodeConstants.ENTERPRIS
 public class EnterpriseInviteRecordServiceImpl implements EnterpriseInviteRecordService {
 
     @Resource
-    private EnterpriseInviteRecordMapper enterpriseInviteRecordMapper;
+    private EnterpriseInviteRecordMapper mapper;
+
+    @Resource
+    private EnterpriseInviteService inviteService;
+
+    @Resource
+    private EnterpriseUserBindService userBindService;
+
+    @Resource
+    private EnterpriseService enterpriseService;
+
+    @Resource
+    private PersonInfoService personInfoService;
 
     @Override
     public Long createEnterpriseInviteRecord(EnterpriseInviteRecordSaveReqVO createReqVO) {
         // 插入
         EnterpriseInviteRecordDO enterpriseInviteRecord = BeanUtils.toBean(createReqVO, EnterpriseInviteRecordDO.class);
-        enterpriseInviteRecordMapper.insert(enterpriseInviteRecord);
+        mapper.insert(enterpriseInviteRecord);
         // 返回
         return enterpriseInviteRecord.getId();
     }
@@ -42,7 +71,7 @@ public class EnterpriseInviteRecordServiceImpl implements EnterpriseInviteRecord
         validateEnterpriseInviteRecordExists(updateReqVO.getId());
         // 更新
         EnterpriseInviteRecordDO updateObj = BeanUtils.toBean(updateReqVO, EnterpriseInviteRecordDO.class);
-        enterpriseInviteRecordMapper.updateById(updateObj);
+        mapper.updateById(updateObj);
     }
 
     @Override
@@ -50,23 +79,112 @@ public class EnterpriseInviteRecordServiceImpl implements EnterpriseInviteRecord
         // 校验存在
         validateEnterpriseInviteRecordExists(id);
         // 删除
-        enterpriseInviteRecordMapper.deleteById(id);
+        mapper.deleteById(id);
     }
 
     private void validateEnterpriseInviteRecordExists(Long id) {
-        if (enterpriseInviteRecordMapper.selectById(id) == null) {
+        if (mapper.selectById(id) == null) {
             throw exception(ENTERPRISE_INVITE_RECORD_NOT_EXISTS);
         }
     }
 
     @Override
     public EnterpriseInviteRecordDO getEnterpriseInviteRecord(Long id) {
-        return enterpriseInviteRecordMapper.selectById(id);
+        return mapper.selectById(id);
     }
 
     @Override
     public PageResult<EnterpriseInviteRecordDO> getEnterpriseInviteRecordPage(EnterpriseInviteRecordPageReqVO pageReqVO) {
-        return enterpriseInviteRecordMapper.selectPage(pageReqVO);
+        return mapper.selectPage(pageReqVO);
     }
 
+    @Override
+    public PageResult<AppAdminEnterpriseInviteRecordRespVO> page(AppAdminEnterpriseInviteRecordPageReqVO reqVO) {
+        LoginUser loginUser = LoginUserContext.get();
+        return mapper.page(
+                reqVO,
+                LoginUserContext.getEnterpriseId(loginUser),
+                LoginUserContext.getUserId(loginUser)
+        );
+    }
+
+    @Override
+    @DSTransactional
+    public void consent(String code) {
+        LoginUser loginUser = LoginUserContext.get();
+        Long enterpriseId = LoginUserContext.getEnterpriseId2(loginUser);
+        Long userId = LoginUserContext.getUserId(loginUser);
+
+        EnterpriseInviteDO invite = inviteService.getByCode(code);
+
+        if(EnterpriseInviteTypeEnum.COLLEAGUE.getType()
+                .equals(invite.getType())) {
+            // 邀请同事
+
+            EnterpriseUserBindDO userBind = userBindService
+                    .selectByEnterpriseIdAndUserId(invite.getEnterpriseId(), userId);
+
+            if(null != userBind) {
+                // 已加入该企业
+                throw exception(ENTERPRISE_INVITE_RECORD_EXIST);
+            }
+
+            // 获取用户信息
+            PersonInfoDO person =  personInfoService.getUserInfoByUserId(userId);
+            if(null == person) {
+                // 用户信息不存在
+                throw exception(ENTERPRISE_INVITE_RECORD_PERSON_INFO_NOT_COMPLETE);
+            }
+
+            // 获取邀请的企业信息
+            EnterpriseDO enterprise = enterpriseService.getEnterprise(invite.getEnterpriseId());
+
+            // 增加企业用户
+            EnterpriseUserBindDO userBindDO = new EnterpriseUserBindDO();
+            userBindDO.setEnterpriseId(enterprise.getId());
+            userBindDO.setUserId(userId);
+            userBindDO.setName(person.getName());
+            userBindDO.setAvatar(person.getAvatar());
+            userBindDO.setSex(person.getSex());
+            userBindDO.setStatus(MendunerStatusEnum.ENABLE.getStatus());
+            userBindDO.setUserType(EnterpriseUserTypeEnum.NORMAL.getType());
+            userBindDO.setPhone(person.getPhone());
+            userBindDO.setEmail(person.getEmail());
+
+            userBindService.createUser(userBindDO);
+
+
+        }else {
+
+            EnterpriseUserBindDO userBind = userBindService
+                    .selectByEnterpriseIdAndUserId(enterpriseId, userId);
+
+            // 邀请子公司
+            if (!userBindService.checkIsAdmin(userBind)) {
+                // 不是管理员 不能操作加入
+                throw exception(ENTERPRISE_INVITE_RECORD_NOT_ADMIN);
+            }
+            if (enterpriseService.checkHasParent(enterpriseId)) {
+                // 自己的公司已有所属上级
+                throw exception(ENTERPRISE_INVITE_RECORD_EXIST_PARENT);
+            }
+            // 更改企业的上级
+            enterpriseService.updateParent(enterpriseId, invite.getEnterpriseId());
+        }
+
+        // 增加邀请记录
+        mapper.insert(
+                EnterpriseInviteRecordDO.builder()
+                        .enterpriseId(enterpriseId)
+                        .userId(userId)
+                        .inviteEnterpriseId(invite.getEnterpriseId())
+                        .inviteUserId(invite.getUserId())
+                        .type(invite.getType())
+                        .code(invite.getCode())
+                        .build()
+        );
+
+
+
+    }
 }

+ 40 - 8
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/invite/EnterpriseInviteService.java

@@ -2,6 +2,8 @@ package com.citu.module.menduner.system.service.invite;
 
 
 import com.citu.framework.common.pojo.PageResult;
+import com.citu.module.menduner.system.controller.appadmin.invite.vo.AppAdminEnterpriseInviteSimpleReqVO;
+import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminEnterpriseUserRespVO;
 import com.citu.module.menduner.system.controller.base.invite.EnterpriseInvitePageReqVO;
 import com.citu.module.menduner.system.controller.base.invite.EnterpriseInviteSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.invite.EnterpriseInviteDO;
@@ -9,14 +11,14 @@ import com.citu.module.menduner.system.dal.dataobject.invite.EnterpriseInviteDO;
 import javax.validation.Valid;
 
 /**
- * 门墩儿-企业邀请码 Service 接口
+ * 企业邀请码 Service 接口
  *
  * @author Rayson
  */
 public interface EnterpriseInviteService {
 
     /**
-     * 创建门墩儿-企业邀请码
+     * 创建企业邀请码
      *
      * @param createReqVO 创建信息
      * @return 编号
@@ -24,33 +26,63 @@ public interface EnterpriseInviteService {
     Long createEnterpriseInvite(@Valid EnterpriseInviteSaveReqVO createReqVO);
 
     /**
-     * 更新门墩儿-企业邀请码
+     * 更新企业邀请码
      *
      * @param updateReqVO 更新信息
      */
     void updateEnterpriseInvite(@Valid EnterpriseInviteSaveReqVO updateReqVO);
 
     /**
-     * 删除门墩儿-企业邀请码
+     * 删除企业邀请码
      *
      * @param id 编号
      */
     void deleteEnterpriseInvite(Long id);
 
     /**
-     * 获得门墩儿-企业邀请码
+     * 获得企业邀请码
      *
      * @param id 编号
-     * @return 门墩儿-企业邀请码
+     * @return 企业邀请码
      */
     EnterpriseInviteDO getEnterpriseInvite(Long id);
 
     /**
-     * 获得门墩儿-企业邀请码分页
+     * 获得企业邀请码分页
      *
      * @param pageReqVO 分页查询
-     * @return 门墩儿-企业邀请码分页
+     * @return 企业邀请码分页
      */
     PageResult<EnterpriseInviteDO> getEnterpriseInvitePage(EnterpriseInvitePageReqVO pageReqVO);
 
+
+    /**
+     * 根据邀请码获取邀请码信息
+     * @param code 邀请码
+     * @return 企业id
+     **/
+    EnterpriseInviteDO getByCode(String code);
+
+    // ========== 招聘端 ==========
+
+    /**
+     * 生成邀请码标识
+     * @param reqVO 企业邀请码简易对象
+     **/
+    String generateCode(AppAdminEnterpriseInviteSimpleReqVO reqVO);
+
+    /**
+     * 刷新邀请码
+     * @param code 邀请码标识
+     **/
+    void refresh(String code);
+
+    /**
+     * 获取邀请码
+     * @param type 类型
+     * @return 邀请码
+     **/
+    String getCode(String type);
+
+
 }

+ 83 - 8
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/invite/EnterpriseInviteServiceImpl.java

@@ -1,8 +1,13 @@
 package com.citu.module.menduner.system.service.invite;
 
 
+import cn.hutool.core.util.IdUtil;
+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.framework.security.core.LoginUser;
+import com.citu.module.menduner.common.util.LoginUserContext;
+import com.citu.module.menduner.system.controller.appadmin.invite.vo.AppAdminEnterpriseInviteSimpleReqVO;
 import com.citu.module.menduner.system.controller.base.invite.EnterpriseInvitePageReqVO;
 import com.citu.module.menduner.system.controller.base.invite.EnterpriseInviteSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.invite.EnterpriseInviteDO;
@@ -16,7 +21,7 @@ import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exce
 import static com.citu.module.menduner.system.enums.ErrorCodeConstants.ENTERPRISE_INVITE_NOT_EXISTS;
 
 /**
- * 门墩儿-企业邀请码 Service 实现类
+ * 企业邀请码 Service 实现类
  *
  * @author Rayson
  */
@@ -25,13 +30,13 @@ import static com.citu.module.menduner.system.enums.ErrorCodeConstants.ENTERPRIS
 public class EnterpriseInviteServiceImpl implements EnterpriseInviteService {
 
     @Resource
-    private EnterpriseInviteMapper enterpriseInviteMapper;
+    private EnterpriseInviteMapper mapper;
 
     @Override
     public Long createEnterpriseInvite(EnterpriseInviteSaveReqVO createReqVO) {
         // 插入
         EnterpriseInviteDO enterpriseInvite = BeanUtils.toBean(createReqVO, EnterpriseInviteDO.class);
-        enterpriseInviteMapper.insert(enterpriseInvite);
+        mapper.insert(enterpriseInvite);
         // 返回
         return enterpriseInvite.getId();
     }
@@ -42,7 +47,7 @@ public class EnterpriseInviteServiceImpl implements EnterpriseInviteService {
         validateEnterpriseInviteExists(updateReqVO.getId());
         // 更新
         EnterpriseInviteDO updateObj = BeanUtils.toBean(updateReqVO, EnterpriseInviteDO.class);
-        enterpriseInviteMapper.updateById(updateObj);
+        mapper.updateById(updateObj);
     }
 
     @Override
@@ -50,23 +55,93 @@ public class EnterpriseInviteServiceImpl implements EnterpriseInviteService {
         // 校验存在
         validateEnterpriseInviteExists(id);
         // 删除
-        enterpriseInviteMapper.deleteById(id);
+        mapper.deleteById(id);
     }
 
     private void validateEnterpriseInviteExists(Long id) {
-        if (enterpriseInviteMapper.selectById(id) == null) {
+        if (mapper.selectById(id) == null) {
             throw exception(ENTERPRISE_INVITE_NOT_EXISTS);
         }
     }
 
     @Override
     public EnterpriseInviteDO getEnterpriseInvite(Long id) {
-        return enterpriseInviteMapper.selectById(id);
+        return mapper.selectById(id);
     }
 
     @Override
     public PageResult<EnterpriseInviteDO> getEnterpriseInvitePage(EnterpriseInvitePageReqVO pageReqVO) {
-        return enterpriseInviteMapper.selectPage(pageReqVO);
+        return mapper.selectPage(pageReqVO);
+    }
+
+    @Override
+    public EnterpriseInviteDO getByCode(String code) {
+        EnterpriseInviteDO invite =
+                mapper.selectByCode(code);
+        if (null == invite) {
+            throw exception(ENTERPRISE_INVITE_NOT_EXISTS);
+        }
+        return invite;
+    }
+
+    @Override
+    public String generateCode(AppAdminEnterpriseInviteSimpleReqVO reqVO) {
+        LoginUser loginUser = LoginUserContext.get();
+        Long enterpriseId = LoginUserContext.getEnterpriseId(loginUser);
+        Long uerId = LoginUserContext.getUserId(loginUser);
+        EnterpriseInviteDO invite = mapper.selectByType(enterpriseId, uerId, reqVO.getType());
+        if (null != invite) {
+            return invite.getCode();
+        }
+        String code = IdUtil.simpleUUID();
+        mapper.insert(
+                EnterpriseInviteDO.builder()
+                        .enterpriseId(LoginUserContext.getEnterpriseId(loginUser))
+                        .userId(loginUser.getId())
+                        .type(reqVO.getType())
+                        .code(code)
+                        .expireDay(reqVO.getExpireDay())
+                        .build()
+        );
+        return code;
+    }
+
+
+    @Override
+    @DSTransactional
+    public void refresh(String code) {
+        EnterpriseInviteDO invite =
+                mapper.selectByCode(code);
+        if (null == invite) {
+            throw exception(ENTERPRISE_INVITE_NOT_EXISTS);
+        }
+
+        // 删除旧的
+        deleteEnterpriseInvite(invite.getId());
+
+        // 增加新的
+        String newCode = IdUtil.simpleUUID();
+        mapper.insert(
+                EnterpriseInviteDO.builder()
+                        .enterpriseId(invite.getEnterpriseId())
+                        .userId(invite.getId())
+                        .type(invite.getType())
+                        .code(newCode)
+                        .expireDay(invite.getExpireDay())
+                        .build()
+        );
+
+    }
+
+    @Override
+    public String getCode(String type) {
+        LoginUser loginUser = LoginUserContext.get();
+        EnterpriseInviteDO invite =
+                mapper.selectByType(LoginUserContext.getEnterpriseId(loginUser), loginUser.getId(), type);
+        if (null == invite) {
+            return null;
+        }
+        return invite.getCode();
     }
 
 }

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

@@ -253,3 +253,22 @@
 1_100_039_003=Variable integral cannot be empty
 1_100_039_004=User balance insufficient
 1_100_039_005=Variable balance cannot be empty
+# ========== 企业邀请码 1_100_040_000 ==========
+1_100_040_001=Enterprise invitation code does not exist
+1_100_040_002=Enterprise ID cannot be empty
+1_100_040_003=User ID cannot be empty
+1_100_040_004=Type cannot be empty
+1_100_040_005=Invitation code cannot be empty
+1_100_040_006=Failure days cannot be empty
+# ========== 企业邀请记录 1_100_041_000 ==========
+1_100_041_001=Enterprise invitation record does not exist
+1_100_041_002=Invited enterprise ID cannot be empty
+1_100_041_003=Invited user ID cannot be empty
+1_100_041_004=Invitation enterprise ID cannot be empty
+1_100_041_005=Invited user ID cannot be empty
+1_100_041_006=Type cannot be empty
+1_100_041_007=Invitation code cannot be empty
+1_100_041_008=Not an enterprise administrator cannot operate to become a subsidiary
+1_100_041_009=The company already has a superior and cannot be operated as a subsidiary
+1_100_041_010=Already joined the enterprise and cannot be operated repeatedly
+1_100_041_011=Please complete personal basic information first

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

@@ -255,4 +255,23 @@
 1_100_039_002=用户积分余额不足
 1_100_039_003=变动积分不能为空
 1_100_039_004=用户余额不足
-1_100_039_005=变动余额不能为空
+1_100_039_005=变动余额不能为空
+# ========== 企业邀请码 1_100_040_000 ==========
+1_100_040_001=企业邀请码不存在
+1_100_040_002=企业id不能为空
+1_100_040_003=用户编号不能为空
+1_100_040_004=类型不能为空
+1_100_040_005=邀请码不能为空
+1_100_040_006=失效天数不能为空
+# ========== 企业邀请记录 1_100_041_000 ==========
+1_100_041_001=企业邀请记录不存在
+1_100_041_002=受邀企业id不能为空
+1_100_041_003=受邀用户编号不能为空
+1_100_041_004=邀请企业id不能为空
+1_100_041_005=邀请用户编号不能为空
+1_100_041_006=类型不能为空
+1_100_041_007=邀请码不能为空
+1_100_041_008=不是企业管理员不能操作成为子公司
+1_100_041_009=公司已存在所属上级,不能操作成为子公司
+1_100_041_010=已加入该企业不可重复操作
+1_100_041_011=请先完善个人基本信息

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

@@ -365,7 +365,7 @@ CREATE TABLE IF NOT EXISTS "mde_enterprise_user_look" (
     "deleted" bit NOT NULL DEFAULT FALSE,
     "tenant_id" bigint NOT NULL,
     PRIMARY KEY ("id")
-) COMMENT '门墩儿 - 企业招聘者浏览表';
+) COMMENT ' 企业招聘者浏览表';
 
 CREATE TABLE IF NOT EXISTS "mde_person_enterprise_attention" (
     "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
@@ -526,7 +526,7 @@ CREATE TABLE IF NOT EXISTS "mde_hire_job_cv_rel" (
     "deleted" bit NOT NULL DEFAULT FALSE,
     "tenant_id" bigint NOT NULL,
     PRIMARY KEY ("id")
-) COMMENT '门墩儿-众聘-简历投递表';
+) COMMENT '众聘-简历投递表';
 
 CREATE TABLE IF NOT EXISTS "mde_hire_commission_ratio" (
     "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
@@ -540,7 +540,7 @@ CREATE TABLE IF NOT EXISTS "mde_hire_commission_ratio" (
     "deleted" bit NOT NULL DEFAULT FALSE,
     "tenant_id" bigint NOT NULL,
     PRIMARY KEY ("id")
-) COMMENT '门墩儿-众聘-佣金比例表';
+) COMMENT '众聘-佣金比例表';
 
 CREATE TABLE IF NOT EXISTS "mde_user_account" (
     "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
@@ -553,7 +553,7 @@ CREATE TABLE IF NOT EXISTS "mde_user_account" (
     "deleted" bit NOT NULL DEFAULT FALSE,
     "tenant_id" bigint NOT NULL,
     PRIMARY KEY ("id")
-) COMMENT '门墩儿-用户账户表';
+) COMMENT '用户账户表';
 
 -- 将该建表 SQL 语句,添加到 citu-module-menduner.system-biz 模块的 test/resources/sql/create_tables.sql 文件里
 CREATE TABLE IF NOT EXISTS "mde_enterprise_invite" (
@@ -570,7 +570,7 @@ CREATE TABLE IF NOT EXISTS "mde_enterprise_invite" (
     "deleted" bit NOT NULL DEFAULT FALSE,
     "tenant_id" bigint NOT NULL,
     PRIMARY KEY ("id")
-) COMMENT '门墩儿-企业邀请码表';
+) COMMENT '企业邀请码表';
 
 CREATE TABLE IF NOT EXISTS "mde_enterprise_invite_record" (
     "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
@@ -587,4 +587,4 @@ CREATE TABLE IF NOT EXISTS "mde_enterprise_invite_record" (
     "deleted" bit NOT NULL DEFAULT FALSE,
     "tenant_id" bigint NOT NULL,
     PRIMARY KEY ("id")
-) COMMENT '门墩儿-企业邀请记录表';
+) COMMENT '企业邀请记录表';