Explorar o código

1、增加企业注册审批接口
2、增加用户加入企业接口

rayson hai 1 ano
pai
achega
8b80a3f3f7
Modificáronse 50 ficheiros con 1135 adicións e 102 borrados
  1. 1 0
      menduner/menduner-common/src/main/java/com/citu/module/menduner/common/db/TransformDataSourceInterceptor.java
  2. 10 5
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java
  3. 19 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/enterprise/EnterpriseUserApplyAuditStatusEnum.java
  4. 93 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/EnterpriseUserApplyController.java
  5. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/bind/EnterpriseUserBindPageReqVO.java
  6. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/bind/EnterpriseUserBindRespVO.java
  7. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/bind/EnterpriseUserBindSaveReqVO.java
  8. 18 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/user/EnterpriseUserApplyAuditReqVO.java
  9. 39 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/user/EnterpriseUserApplyPageReqVO.java
  10. 52 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/user/EnterpriseUserApplyRespVO.java
  11. 34 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/user/EnterpriseUserApplySaveReqVO.java
  12. 34 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/enterprise/AppEnterprisePostController.java
  13. 10 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/enterprise/AppEnterpriseRegisterController.java
  14. 42 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/enterprise/AppEnterpriseUserApplyController.java
  15. 39 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/enterprise/vo/AppEnterprisePostRespVO.java
  16. 45 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/enterprise/vo/AppEnterpriseRegisterRespVO.java
  17. 33 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/enterprise/vo/AppEnterpriseUserApplyReqVO.java
  18. 43 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/enterprise/vo/AppEnterpriseUserApplyRespVO.java
  19. 0 38
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/post/AppEnterprisePostRespVO.java
  20. 6 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/EnterpriseConvert.java
  21. 58 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterpriseUserApplyDO.java
  22. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterpriseUserBindDO.java
  23. 4 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/eduexp/EduExpMapper.java
  24. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseBusinessMapper.java
  25. 9 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterprisePostMapper.java
  26. 8 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseRegisterMapper.java
  27. 36 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseUserApplyMapper.java
  28. 5 5
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseUserBindMapper.java
  29. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseUserLookMapper.java
  30. 4 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobInterestedMapper.java
  31. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/person/PersonEnterpriseSubscribeMapper.java
  32. 4 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/person/PersonJobFavoriteMapper.java
  33. 6 6
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/person/PersonSkillMapper.java
  34. 4 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/projectexp/ProjectExpMapper.java
  35. 4 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/trainexp/TrainExpMapper.java
  36. 4 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/visits/MdeVisitsMapper.java
  37. 5 5
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/workexp/WorkExpMapper.java
  38. 9 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/post/EnterprisePostService.java
  39. 10 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/post/EnterprisePostServiceImpl.java
  40. 6 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/register/EnterpriseRegisterService.java
  41. 9 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/register/EnterpriseRegisterServiceImpl.java
  42. 86 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/user/EnterpriseUserApplyService.java
  43. 153 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/user/EnterpriseUserApplyServiceImpl.java
  44. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/record/PersonBrowseRecordServiceImpl.java
  45. 1 1
      menduner/menduner-system-biz/src/main/resources/application.yaml
  46. 9 1
      menduner/menduner-system-biz/src/main/resources/i18n/messages_en_US.properties
  47. 9 1
      menduner/menduner-system-biz/src/main/resources/i18n/messages_zh_CN.properties
  48. 144 0
      menduner/menduner-system-biz/src/test/java/com/citu/module/menduner/system/service/enterprise/EnterpriseUserApplyServiceImplTest.java
  49. 1 0
      menduner/menduner-system-biz/src/test/resources/sql/clean.sql
  50. 18 0
      menduner/menduner-system-biz/src/test/resources/sql/create_tables.sql

+ 1 - 0
menduner/menduner-common/src/main/java/com/citu/module/menduner/common/db/TransformDataSourceInterceptor.java

@@ -41,6 +41,7 @@ public class TransformDataSourceInterceptor implements Interceptor {
                 dataSource = DdConstants.SLAVE;
             }
             DynamicDataSourceContextHolder.push(dataSource);
+            log.info(" ----- use datasource ["+DynamicDataSourceContextHolder.peek()+"]  ----- ");
             return invocation.proceed();
         } finally {
             if (null != pushedDataSource) {

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

@@ -136,7 +136,6 @@ public interface ErrorCodeConstants {
     ErrorCode MDE_AUTH_CAPTCHA_CODE_NOT_NULL = new ErrorCode(1_002_000_014, "验证码不能为空");
 
 
-
     // ========== 角色模块 1_200_003_000 ==========
     ErrorCode MDE_ROLE_NOT_EXISTS = new ErrorCode(1_200_003_001, "角色不存在");
     ErrorCode MDE_ROLE_NAME_DUPLICATE = new ErrorCode(1_200_003_002, "已经存在名为【{}】的角色");
@@ -178,9 +177,7 @@ public interface ErrorCodeConstants {
 
     ErrorCode MDE_ENTERPRISE_REGISTER_DUPLICATE = new ErrorCode(1_200_006_009, "企业已注册");
 
-
-
-
+    ErrorCode MDE_ENTERPRISE_REGISTER_APPLY_DUPLICATE = new ErrorCode(1_200_006_010, "企业已申请审核中,请勿重复提交");
 
     // ========== 企业地址 1_200_007_001 ==========
     ErrorCode MDE_ENTERPRISE_ADDRESS_NOT_EXISTS = new ErrorCode(1_200_007_001, "企业地址不存在");
@@ -235,7 +232,7 @@ public interface ErrorCodeConstants {
     // ========== 职业技能 1_200_017_000 ==========
     ErrorCode SKILL_NOT_EXISTS = new ErrorCode(1_200_017_001, "职业技能不存在");
     ErrorCode SKILL_EXITS_CHILDREN = new ErrorCode(1_200_017_002, "存在存在子职业技能,无法删除");
-    ErrorCode SKILL_PARENT_NOT_EXITS = new ErrorCode(1_200_017_003,"父级职业技能不存在");
+    ErrorCode SKILL_PARENT_NOT_EXITS = new ErrorCode(1_200_017_003, "父级职业技能不存在");
     ErrorCode SKILL_PARENT_ERROR = new ErrorCode(1_200_017_004, "不能设置自己为父职业技能");
     ErrorCode SKILL_NAME_CN_DUPLICATE = new ErrorCode(1_200_017_005, "已经存在该技能中文名称的职业技能");
     ErrorCode SKILL_PARENT_IS_CHILD = new ErrorCode(1_200_017_006, "不能设置自己的子Skill为父Skill");
@@ -246,4 +243,12 @@ public interface ErrorCodeConstants {
     ErrorCode MDE_ACCOUNT_SORT_NOT_NULL = new ErrorCode(1_200_018_003, "显示顺序不能为空");
     ErrorCode MDE_ACCOUNT_PARENT_ID_NOT_NULL = new ErrorCode(1_200_018_004, "上级id不能为空");
     ErrorCode MDE_ACCOUNT_ID_NOT_NULL = new ErrorCode(1_200_018_005, "id不能为空");
+    ErrorCode MDE_ACCOUNT_USER_ID_NOT_NULL = new ErrorCode(1_200_018_006, "用户id不能为空");
+
+    // ========== 门墩儿-企业用户申请 1_200_019_000 ==========
+    ErrorCode ENTERPRISE_USER_APPLY_NOT_EXISTS = new ErrorCode(1_200_019_001, "企业用户申请不存在");
+    ErrorCode ENTERPRISE_USER_APPLY_APPROVED = new ErrorCode(1_200_019_002, "用户申请已审批");
+    ErrorCode ENTERPRISE_USER_APPLY_APPROVED_SUCCESS = new ErrorCode(1_200_019_003, "用户申请申请已审批通过,无法拒绝");
+    ErrorCode ENTERPRISE_USER_APPLY_ENTERPRISE_ID_NOT_NULL = new ErrorCode(1_200_019_004, "企业id不能为空");
+    ErrorCode ENTERPRISE_USER_APPLY_APPLYING = new ErrorCode(1_200_019_005, "已申请审核中,请勿重复提交");
 }

+ 19 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/enterprise/EnterpriseUserApplyAuditStatusEnum.java

@@ -0,0 +1,19 @@
+package com.citu.module.menduner.system.enums.enterprise;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 企业注册信息审核状态 0审核中 1审核通过 2审核不通过
+ **/
+@Getter
+@AllArgsConstructor
+public enum EnterpriseUserApplyAuditStatusEnum {
+
+    AUDITING("0", "审核中"),
+    APPROVED("1", "审核通过"),
+    REJECT("2", "审核不通过");
+
+    private final String status;
+    private final String name;
+}

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

@@ -0,0 +1,93 @@
+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.admin.enterprise.user.EnterpriseUserApplyPageReqVO;
+import com.citu.module.menduner.system.controller.admin.enterprise.user.EnterpriseUserApplyRespVO;
+import com.citu.module.menduner.system.controller.admin.enterprise.vo.EnterpriseUserApplySaveReqVO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserApplyDO;
+import com.citu.module.menduner.system.service.enterprise.EnterpriseUserApplyService;
+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-user-apply")
+@Validated
+public class EnterpriseUserApplyController {
+
+    @Resource
+    private EnterpriseUserApplyService enterpriseUserApplyService;
+
+    @PostMapping("/create")
+    @Operation(summary = "创建门墩儿-企业用户申请")
+    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-user-apply:create')")
+    public CommonResult<Long> createEnterpriseUserApply(@Valid @RequestBody EnterpriseUserApplySaveReqVO createReqVO) {
+        return success(enterpriseUserApplyService.createEnterpriseUserApply(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "更新门墩儿-企业用户申请")
+    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-user-apply:update')")
+    public CommonResult<Boolean> updateEnterpriseUserApply(@Valid @RequestBody EnterpriseUserApplySaveReqVO updateReqVO) {
+        enterpriseUserApplyService.updateEnterpriseUserApply(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除门墩儿-企业用户申请")
+    @Parameter(name = "id", description = "编号", required = true)
+    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-user-apply:delete')")
+    public CommonResult<Boolean> deleteEnterpriseUserApply(@RequestParam("id") Long id) {
+        enterpriseUserApplyService.deleteEnterpriseUserApply(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得门墩儿-企业用户申请")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-user-apply:query')")
+    public CommonResult<EnterpriseUserApplyRespVO> getEnterpriseUserApply(@RequestParam("id") Long id) {
+        EnterpriseUserApplyDO enterpriseUserApply = enterpriseUserApplyService.getEnterpriseUserApply(id);
+        return success(BeanUtils.toBean(enterpriseUserApply, EnterpriseUserApplyRespVO.class));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得门墩儿-企业用户申请分页")
+    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-user-apply:query')")
+    public CommonResult<PageResult<EnterpriseUserApplyRespVO>> getEnterpriseUserApplyPage(@Valid EnterpriseUserApplyPageReqVO pageReqVO) {
+        PageResult<EnterpriseUserApplyDO> pageResult = enterpriseUserApplyService.getEnterpriseUserApplyPage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, EnterpriseUserApplyRespVO.class));
+    }
+
+    @GetMapping("/export-excel")
+    @Operation(summary = "导出门墩儿-企业用户申请 Excel")
+    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-user-apply:export')")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportEnterpriseUserApplyExcel(@Valid EnterpriseUserApplyPageReqVO pageReqVO,
+                                               HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<EnterpriseUserApplyDO> list = enterpriseUserApplyService.getEnterpriseUserApplyPage(pageReqVO).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "门墩儿-企业用户申请.xls", "数据", EnterpriseUserApplyRespVO.class,
+                BeanUtils.toBean(list, EnterpriseUserApplyRespVO.class));
+    }
+
+}

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/bind/EnterpriseUserBindPageReqVO.java

@@ -19,7 +19,7 @@ public class EnterpriseUserBindPageReqVO extends PageParam {
     private Long enterpriseId;
 
     @Schema(description = "用户id", example = "23317")
-    private String userId;
+    private Long userId;
 
     @Schema(description = "名称", example = "x女士")
     private String name;

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

@@ -32,7 +32,7 @@ public class EnterpriseUserBindRespVO {
 
     @Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "23317")
     @ExcelProperty("用户id")
-    private String userId;
+    private Long userId;
 
     @Schema(description = "名称", example = "x女士")
     @ExcelProperty("名称")

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

@@ -24,7 +24,7 @@ public class EnterpriseUserBindSaveReqVO {
 
     @Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "23317")
     @NotEmpty(message = "{1_200_001_018}")
-    private String userId;
+    private Long userId;
 
     @Schema(description = "名称", example = "x女士")
     @NotEmpty(message = "{1_200_008_002}")

+ 18 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/user/EnterpriseUserApplyAuditReqVO.java

@@ -0,0 +1,18 @@
+package com.citu.module.menduner.system.controller.admin.enterprise.user;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Schema(description = "管理后台 - 加入企业申请审核 Request VO")
+@Data
+public class EnterpriseUserApplyAuditReqVO {
+
+    @NotNull(message = "{1_200_018_005}" )
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9045")
+    private Long id;
+
+    @Schema(description = "原因")
+    private String reason;
+}

+ 39 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/user/EnterpriseUserApplyPageReqVO.java

@@ -0,0 +1,39 @@
+package com.citu.module.menduner.system.controller.admin.enterprise.user;
+
+import com.citu.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+
+import static com.citu.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 门墩儿-企业用户申请分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class EnterpriseUserApplyPageReqVO extends PageParam {
+
+    @Schema(description = "用户id", example = "15124")
+    private Long userId;
+
+    @Schema(description = "所属企业id", example = "1420")
+    private Long enterpriseId;
+
+    @Schema(description = "企业岗位id", example = "25968")
+    private Long postId;
+
+    @Schema(description = "申请人姓名", example = "李四")
+    private String name;
+
+    @Schema(description = "审核状态(0审核中 1审核通过 2审核不通过)", example = "2")
+    private String status;
+
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
+}

+ 52 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/user/EnterpriseUserApplyRespVO.java

@@ -0,0 +1,52 @@
+package com.citu.module.menduner.system.controller.admin.enterprise.user;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 门墩儿-企业用户申请 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class EnterpriseUserApplyRespVO {
+
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "32173")
+    @ExcelProperty("id")
+    private Long id;
+
+    @Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15124")
+    @ExcelProperty("用户id")
+    private Long userId;
+
+    @Schema(description = "所属企业id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1420")
+    @ExcelProperty("所属企业id")
+    private Long enterpriseId;
+
+    @Schema(description = "企业岗位id", example = "25968")
+    @ExcelProperty("企业岗位id")
+    private Long postId;
+
+    @Schema(description = "申请人姓名", example = "李四")
+    @ExcelProperty("申请人姓名")
+    private String name;
+
+    @Schema(description = "审核状态(0审核中 1审核通过 2审核不通过)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    @ExcelProperty("审核状态(0审核中 1审核通过 2审核不通过)")
+    private String status;
+
+    @Schema(description = "审核原因", example = "不香")
+    @ExcelProperty("审核原因")
+    private String reason;
+
+    @Schema(description = "备注", example = "你猜")
+    @ExcelProperty("备注")
+    private String remark;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
+}

+ 34 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/user/EnterpriseUserApplySaveReqVO.java

@@ -0,0 +1,34 @@
+package com.citu.module.menduner.system.controller.admin.enterprise.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Schema(description = "管理后台 - 门墩儿-企业用户申请新增/修改 Request VO")
+@Data
+public class EnterpriseUserApplySaveReqVO {
+
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "32173")
+    private Long id;
+
+    @Schema(description = "所属企业id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1420")
+    @NotNull(message = "{1_200_019_004}")
+    private Long enterpriseId;
+
+    @Schema(description = "企业岗位id", example = "25968")
+    private Long postId;
+
+    @Schema(description = "申请人姓名", example = "李四")
+    private String name;
+
+    @Schema(description = "审核状态(0审核中 1审核通过 2审核不通过)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    private String status;
+
+    @Schema(description = "审核原因", example = "不香")
+    private String reason;
+
+    @Schema(description = "备注", example = "你猜")
+    private String remark;
+
+}

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

@@ -0,0 +1,34 @@
+package com.citu.module.menduner.system.controller.app.enterprise;
+
+import com.citu.framework.common.pojo.CommonResult;
+import com.citu.module.menduner.system.controller.app.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));
+    }
+
+}

+ 10 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/enterprise/AppEnterpriseRegisterController.java

@@ -3,14 +3,12 @@ package com.citu.module.menduner.system.controller.app.enterprise;
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseClickReqVO;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseRegisterReqVO;
+import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseRegisterRespVO;
 import com.citu.module.menduner.system.service.enterprise.register.EnterpriseRegisterService;
 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.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
@@ -34,4 +32,12 @@ public class AppEnterpriseRegisterController {
         return success(true);
     }
 
+    @GetMapping("/by/user")
+    @Operation(summary = "获取当前用户提交的企业申请")
+    public CommonResult<AppEnterpriseRegisterRespVO> getApplyByUserId() {
+        return success(enterpriseRegisterService.getApplyByUserId());
+    }
+
+
+
 }

+ 42 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/enterprise/AppEnterpriseUserApplyController.java

@@ -0,0 +1,42 @@
+package com.citu.module.menduner.system.controller.app.enterprise;
+
+import com.citu.framework.common.pojo.CommonResult;
+import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseRegisterReqVO;
+import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseRegisterRespVO;
+import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseUserApplyReqVO;
+import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseUserApplyRespVO;
+import com.citu.module.menduner.system.service.enterprise.EnterpriseUserApplyService;
+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-user-apply")
+@Validated
+public class AppEnterpriseUserApplyController {
+
+    @Resource
+    private EnterpriseUserApplyService enterpriseUserApplyService;
+
+    @PostMapping("/apply")
+    @Operation(summary = "加入企业申请")
+    public CommonResult<Boolean> apply(@RequestBody @Valid AppEnterpriseUserApplyReqVO reqVO) {
+        enterpriseUserApplyService.apply(reqVO);
+        return success(true);
+    }
+
+    @GetMapping("/by/user")
+    @Operation(summary = "获取申请加入信息")
+    public CommonResult<AppEnterpriseUserApplyRespVO> getApplyByUserId() {
+        return success(enterpriseUserApplyService.getApplyByUserId());
+    }
+
+
+}

+ 39 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/enterprise/vo/AppEnterprisePostRespVO.java

@@ -0,0 +1,39 @@
+package com.citu.module.menduner.system.controller.app.enterprise.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "menduner - 企业岗位信息 Response VO")
+@Data
+public class AppEnterprisePostRespVO {
+
+    @Schema(description = "岗位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "13815")
+    private Long id;
+
+    @Schema(description = "所属企业id", example = "9907")
+    private Long enterpriseId;
+
+    @Schema(description = "岗位缩写")
+    private String code;
+
+    @Schema(description = "岗位中文名称", requiredMode = Schema.RequiredMode.REQUIRED)
+    private String nameCn;
+
+    @Schema(description = "岗位英文", requiredMode = Schema.RequiredMode.REQUIRED)
+    private String nameEn;
+
+    @Schema(description = "显示顺序", requiredMode = Schema.RequiredMode.REQUIRED)
+    private Integer sort;
+
+    @Schema(description = "备注", example = "随便")
+    @ExcelProperty("备注")
+    private String remark;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
+}

+ 45 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/enterprise/vo/AppEnterpriseRegisterRespVO.java

@@ -0,0 +1,45 @@
+package com.citu.module.menduner.system.controller.app.enterprise.vo;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "menduner - 企业申请注册 Request VO")
+@Data
+public class AppEnterpriseRegisterRespVO {
+
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9045")
+    private Long id;
+
+    @Schema(description = "企业名称", example = "芋艿")
+    private String name;
+
+    @Schema(description = "联系电话")
+    private String phone;
+
+    @Schema(description = "联系邮箱")
+    private String email;
+
+    @Schema(description = "统一社会信用代码")
+    private String code;
+
+    @Schema(description = "营业执照图片", example = "https://www.iocoder.cn")
+    private String businessLicenseUrl;
+
+    @Schema(description = "帐号状态(0正常 1停用 2 等待审核 3不通过)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    private String status;
+
+    @Schema(description = "审核原因", example = "不喜欢")
+    private String reason;
+
+    @Schema(description = "备注", example = "你猜")
+    private String remark;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    private LocalDateTime createTime;
+
+    @Schema(description = "更新时间")
+    private LocalDateTime updateTime;
+}

+ 33 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/enterprise/vo/AppEnterpriseUserApplyReqVO.java

@@ -0,0 +1,33 @@
+package com.citu.module.menduner.system.controller.app.enterprise.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+@Schema(description = "menduner - 企业用户 Request VO")
+@Data
+public class AppEnterpriseUserApplyReqVO {
+
+
+    @Schema(description = "所属企业id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1420")
+    @NotNull(message = "{1_200_019_004}")
+    private Long enterpriseId;
+
+    @Schema(description = "企业岗位id", example = "25968")
+    private Long postId;
+
+    @Schema(description = "申请人姓名", example = "李四")
+    private String name;
+
+    @Schema(description = "审核状态(0审核中 1审核通过 2审核不通过)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    private String status;
+
+    @Schema(description = "审核原因", example = "不香")
+    private String reason;
+
+    @Schema(description = "备注", example = "你猜")
+    private String remark;
+
+}

+ 43 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/enterprise/vo/AppEnterpriseUserApplyRespVO.java

@@ -0,0 +1,43 @@
+package com.citu.module.menduner.system.controller.app.enterprise.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "menduner - 企业用户 Response VO")
+@Data
+public class AppEnterpriseUserApplyRespVO {
+
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "32173")
+    private Long id;
+
+    @Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15124")
+    private Long userId;
+
+    @Schema(description = "所属企业id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1420")
+    private Long enterpriseId;
+
+    @Schema(description = "企业岗位id", example = "25968")
+    private Long postId;
+
+    @Schema(description = "申请人姓名", example = "李四")
+    private String name;
+
+    @Schema(description = "审核状态(0审核中 1审核通过 2审核不通过)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    private String status;
+
+    @Schema(description = "审核原因", example = "不香")
+    private String reason;
+
+    @Schema(description = "备注", example = "你猜")
+    private String remark;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    private LocalDateTime createTime;
+
+    @Schema(description = "更新时间")
+    private LocalDateTime updateTime;
+
+}

+ 0 - 38
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/post/AppEnterprisePostRespVO.java

@@ -1,38 +0,0 @@
-package com.citu.module.menduner.system.controller.app.post;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.time.LocalDateTime;
-
-@Data
-@Schema(description = "menduner - 企业岗位简易信息 Response VO")
-public class AppEnterprisePostRespVO {
-
-    @Schema(description = "岗位ID", example = "13815")
-    private Long id;
-
-    @Schema(description = "所属企业id", example = "9907")
-    private Long enterpriseId;
-
-    @Schema(description = "岗位缩写")
-    private String code;
-
-    @Schema(description = "岗位中文名称")
-    private String nameCn;
-
-    @Schema(description = "岗位英文")
-    private String nameEn;
-
-    @Schema(description = "显示顺序")
-    private Integer sort;
-
-    @Schema(description = "状态(0正常 1停用)", example = "2")
-    private String status;
-
-    @Schema(description = "备注", example = "随便")
-    private String remark;
-
-    @Schema(description = "创建时间")
-    private LocalDateTime createTime;
-}

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

@@ -30,5 +30,11 @@ public interface EnterpriseConvert {
 
     AppEnterpriseUserBindRespVO convert7(EnterpriseUserBindDO bean);
 
+    AppEnterpriseRegisterRespVO convert8(EnterpriseRegisterDO bean);
 
+    List<AppEnterprisePostRespVO> convertList2(List<EnterprisePostDO> list);
+
+    AppEnterpriseUserApplyRespVO convert9(EnterpriseUserApplyDO bean);
+
+    EnterpriseUserApplyDO convert10(AppEnterpriseUserApplyReqVO bean);
 }

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

@@ -0,0 +1,58 @@
+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 lombok.*;
+
+/**
+ * 门墩儿-企业用户申请 DO
+ *
+ * @author Rayson
+ */
+@TableName("mde_enterprise_user_apply")
+@KeySequence("mde_enterprise_user_apply_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class EnterpriseUserApplyDO extends BaseDO {
+
+    /**
+     * id
+     */
+    @TableId
+    private Long id;
+    /**
+     * 用户id
+     */
+    private Long userId;
+    /**
+     * 所属企业id
+     */
+    private Long enterpriseId;
+    /**
+     * 企业岗位id
+     */
+    private Long postId;
+    /**
+     * 申请人姓名
+     */
+    private String name;
+    /**
+     * 审核状态(0审核中 1审核通过 2审核不通过)
+     */
+    private String status;
+    /**
+     * 审核原因
+     */
+    private String reason;
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

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

@@ -41,7 +41,7 @@ public class EnterpriseUserBindDO extends TenantBaseDO {
     /**
      * 用户id
      */
-    private String userId;
+    private Long userId;
     /**
      * 名称
      */

+ 4 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/eduexp/EduExpMapper.java

@@ -32,13 +32,13 @@ public interface EduExpMapper extends BaseMapperX<EduExpDO> {
 
     default EduExpDO selectByIdAndUserId(Long id, Long userId) {
         return selectOne(new LambdaQueryWrapperX<EduExpDO>()
-                .eq(EduExpDO::getId, id)
-                .eq(EduExpDO::getUserId, userId));
+                .eqIfPresent(EduExpDO::getId, id)
+                .eqIfPresent(EduExpDO::getUserId, userId));
     }
 
     default void deleteByIdAndUserId(Long id, Long userId){
         delete(new LambdaQueryWrapperX<EduExpDO>()
-                .eq(EduExpDO::getId, id)
-                .eq(EduExpDO::getUserId, userId));
+                .eqIfPresent(EduExpDO::getId, id)
+                .eqIfPresent(EduExpDO::getUserId, userId));
     }
 }

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

@@ -35,11 +35,11 @@ public interface EnterpriseBusinessMapper extends BaseMapperX<EnterpriseBusiness
 
     default EnterpriseBusinessDO selectByEnterpriseId(Long enterpriseId) {
         return selectOne(new LambdaQueryWrapperX<EnterpriseBusinessDO>()
-                .eq(EnterpriseBusinessDO::getEnterpriseId, enterpriseId));
+                .eqIfPresent(EnterpriseBusinessDO::getEnterpriseId, enterpriseId));
     }
     default EnterpriseBusinessDO selectByCode(String code) {
         return selectOne(new LambdaQueryWrapperX<EnterpriseBusinessDO>()
-                .eq(EnterpriseBusinessDO::getCode, code));
+                .eqIfPresent(EnterpriseBusinessDO::getCode, code));
     }
 
 

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

@@ -5,8 +5,11 @@ import com.citu.framework.mybatis.core.mapper.BaseMapperX;
 import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.citu.module.menduner.system.controller.admin.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
  *
@@ -26,4 +29,10 @@ public interface EnterprisePostMapper extends BaseMapperX<EnterprisePostDO> {
                 .orderByDesc(EnterprisePostDO::getId));
     }
 
+    default List<EnterprisePostDO> selectListByEnterpriseId(Long enterpriseId) {
+        return selectList(new LambdaQueryWrapperX<EnterprisePostDO>()
+                .eqIfPresent(EnterprisePostDO::getEnterpriseId, enterpriseId)
+                .eqIfPresent(EnterprisePostDO::getStatus, MendunerStatusEnum.ENABLE.getStatus())
+        );
+    }
 }

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

@@ -1,6 +1,7 @@
 package com.citu.module.menduner.system.dal.mysql.enterprise;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.mybatis.core.mapper.BaseMapperX;
 import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
@@ -24,7 +25,13 @@ public interface EnterpriseRegisterMapper extends BaseMapperX<EnterpriseRegister
                 .likeIfPresent(EnterpriseRegisterDO::getEmail, reqVO.getEmail())
                 .eqIfPresent(EnterpriseRegisterDO::getStatus, reqVO.getStatus())
                 .betweenIfPresent(EnterpriseRegisterDO::getCreateTime, reqVO.getCreateTime())
-                .orderByDesc(EnterpriseRegisterDO::getId));
+                .orderByDesc(EnterpriseRegisterDO::getUpdateTime));
     }
 
+    default EnterpriseRegisterDO selectByUserId(Long userId) {
+        LambdaQueryWrapperX<EnterpriseRegisterDO> queryWrapper = new LambdaQueryWrapperX<>();
+        queryWrapper.eq(EnterpriseRegisterDO::getUserId, userId);
+        queryWrapper.orderByDesc(EnterpriseRegisterDO::getUpdateTime).last("LIMIT 1");
+        return selectOne(queryWrapper);
+    }
 }

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

@@ -0,0 +1,36 @@
+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.module.menduner.system.controller.admin.enterprise.user.EnterpriseUserApplyPageReqVO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseRegisterDO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserApplyDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 门墩儿-企业用户申请 Mapper
+ *
+ * @author Rayson
+ */
+@Mapper
+public interface EnterpriseUserApplyMapper extends BaseMapperX<EnterpriseUserApplyDO> {
+
+    default PageResult<EnterpriseUserApplyDO> selectPage(EnterpriseUserApplyPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<EnterpriseUserApplyDO>()
+                .eqIfPresent(EnterpriseUserApplyDO::getUserId, reqVO.getUserId())
+                .eqIfPresent(EnterpriseUserApplyDO::getEnterpriseId, reqVO.getEnterpriseId())
+                .eqIfPresent(EnterpriseUserApplyDO::getPostId, reqVO.getPostId())
+                .likeIfPresent(EnterpriseUserApplyDO::getName, reqVO.getName())
+                .eqIfPresent(EnterpriseUserApplyDO::getStatus, reqVO.getStatus())
+                .betweenIfPresent(EnterpriseUserApplyDO::getCreateTime, reqVO.getCreateTime())
+                .orderByDesc(EnterpriseUserApplyDO::getId));
+    }
+
+    default EnterpriseUserApplyDO selectByUserId(Long userId) {
+        LambdaQueryWrapperX<EnterpriseUserApplyDO> queryWrapper = new LambdaQueryWrapperX<>();
+        queryWrapper.eq(EnterpriseUserApplyDO::getUserId, userId);
+        queryWrapper.orderByDesc(EnterpriseUserApplyDO::getUpdateTime).last("LIMIT 1");
+        return selectOne(queryWrapper);
+    }
+}

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

@@ -31,8 +31,8 @@ public interface EnterpriseUserBindMapper extends BaseMapperX<EnterpriseUserBind
 
     default List<EnterpriseUserBindDO> selectListByUserId(Long userId) {
         return selectList(new LambdaQueryWrapperX<EnterpriseUserBindDO>()
-                .eq(EnterpriseUserBindDO::getUserId, userId)
-                .eq(EnterpriseUserBindDO::getStatus, MendunerStatusEnum.ENABLE.getStatus())
+                .eqIfPresent(EnterpriseUserBindDO::getUserId, userId)
+                .eqIfPresent(EnterpriseUserBindDO::getStatus, MendunerStatusEnum.ENABLE.getStatus())
         );
     }
 
@@ -42,9 +42,9 @@ public interface EnterpriseUserBindMapper extends BaseMapperX<EnterpriseUserBind
 
     default EnterpriseUserBindDO selectByEnterpriseIdAndUserId(Long enterpriseId, Long userId) {
         return selectOne(new LambdaQueryWrapperX<EnterpriseUserBindDO>()
-                .eq(EnterpriseUserBindDO::getEnterpriseId, enterpriseId)
-                .eq(EnterpriseUserBindDO::getUserId, userId)
-                .eq(EnterpriseUserBindDO::getStatus, MendunerStatusEnum.ENABLE.getStatus())
+                .eqIfPresent(EnterpriseUserBindDO::getEnterpriseId, enterpriseId)
+                .eqIfPresent(EnterpriseUserBindDO::getUserId, userId)
+                .eqIfPresent(EnterpriseUserBindDO::getStatus, MendunerStatusEnum.ENABLE.getStatus())
         );
     }
 

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

@@ -29,7 +29,7 @@ public interface EnterpriseUserLookMapper extends BaseMapperX<EnterpriseUserLook
 
     default PageResult<EnterpriseUserLookDO> selectPageByLookUserId(PageParam page, Long lookUserId) {
         return selectPage(page, new LambdaQueryWrapperX<EnterpriseUserLookDO>()
-                .eq(EnterpriseUserLookDO::getLookUserId, lookUserId));
+                .eqIfPresent(EnterpriseUserLookDO::getLookUserId, lookUserId));
     }
 
 }

+ 4 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobInterestedMapper.java

@@ -31,14 +31,14 @@ public interface JobInterestedMapper extends BaseMapperX<JobInterestedDO> {
 
     default JobInterestedDO selectByIdAndUserId(Long id, Long userId) {
         return selectOne(new LambdaQueryWrapperX<JobInterestedDO>()
-                .eq(JobInterestedDO::getId, id)
-                .eq(JobInterestedDO::getUserId, userId));
+                .eqIfPresent(JobInterestedDO::getId, id)
+                .eqIfPresent(JobInterestedDO::getUserId, userId));
     }
 
     default int deleteByIdAndUserId(Long id, Long userId){
         return delete(new LambdaQueryWrapperX<JobInterestedDO>()
-                .eq(JobInterestedDO::getId, id)
-                .eq(JobInterestedDO::getUserId, userId));
+                .eqIfPresent(JobInterestedDO::getId, id)
+                .eqIfPresent(JobInterestedDO::getUserId, userId));
     }
 
 }

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/person/PersonEnterpriseSubscribeMapper.java

@@ -30,8 +30,8 @@ public interface PersonEnterpriseSubscribeMapper extends BaseMapperX<PersonEnter
 
     default Boolean deleteByUserIdAndEnterpriseId(Long userId, Long enterpriseId) {
         return delete(new LambdaQueryWrapperX<PersonEnterpriseSubscribeDO>()
-                .eq(PersonEnterpriseSubscribeDO::getUserId, userId)
-                .eq(PersonEnterpriseSubscribeDO::getEnterpriseId, enterpriseId)) > 0;
+                .eqIfPresent(PersonEnterpriseSubscribeDO::getUserId, userId)
+                .eqIfPresent(PersonEnterpriseSubscribeDO::getEnterpriseId, enterpriseId)) > 0;
     }
 
 }

+ 4 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/person/PersonJobFavoriteMapper.java

@@ -25,13 +25,13 @@ public interface PersonJobFavoriteMapper extends BaseMapperX<PersonJobFavoriteDO
 
     default PersonJobFavoriteDO selectByUserIdAndJobId(Long userId, Long jobId) {
         return selectOne(new LambdaQueryWrapperX<PersonJobFavoriteDO>()
-                .eq(PersonJobFavoriteDO::getUserId, userId)
-                .eq(PersonJobFavoriteDO::getJobId, jobId));
+                .eqIfPresent(PersonJobFavoriteDO::getUserId, userId)
+                .eqIfPresent(PersonJobFavoriteDO::getJobId, jobId));
     }
 
    default Boolean deleteByUserIdAndJobId(Long userId, Long jobId){
         return delete(new LambdaQueryWrapperX<PersonJobFavoriteDO>()
-                .eq(PersonJobFavoriteDO::getUserId, userId)
-                .eq(PersonJobFavoriteDO::getJobId, jobId)) > 0;
+                .eqIfPresent(PersonJobFavoriteDO::getUserId, userId)
+                .eqIfPresent(PersonJobFavoriteDO::getJobId, jobId)) > 0;
     }
 }

+ 6 - 6
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/person/PersonSkillMapper.java

@@ -26,20 +26,20 @@ public interface PersonSkillMapper extends BaseMapperX<PersonSkillDO> {
 
     default PersonSkillDO selectByIdAndUserId(Long id, Long userId) {
         return selectOne(new LambdaQueryWrapperX<PersonSkillDO>()
-                .eq(PersonSkillDO::getId, id)
-                .eq(PersonSkillDO::getUserId, userId));
+                .eqIfPresent(PersonSkillDO::getId, id)
+                .eqIfPresent(PersonSkillDO::getUserId, userId));
     }
 
     default PersonSkillDO selectByUserIdAndSkillId(Long userId,String skillId) {
         return selectOne(new LambdaQueryWrapperX<PersonSkillDO>()
-                .eq(PersonSkillDO::getSkillId, skillId)
-                .eq(PersonSkillDO::getUserId, userId));
+                .eqIfPresent(PersonSkillDO::getSkillId, skillId)
+                .eqIfPresent(PersonSkillDO::getUserId, userId));
     }
 
     default void deleteByIdAndUserId(Long id, Long userId) {
         delete(new LambdaQueryWrapperX<PersonSkillDO>()
-                .eq(PersonSkillDO::getId, id)
-                .eq(PersonSkillDO::getUserId, userId));
+                .eqIfPresent(PersonSkillDO::getId, id)
+                .eqIfPresent(PersonSkillDO::getUserId, userId));
     }
 
 }

+ 4 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/projectexp/ProjectExpMapper.java

@@ -28,14 +28,14 @@ public interface ProjectExpMapper extends BaseMapperX<ProjectExpDO> {
 
     default ProjectExpDO selectByIdAndUserId(Long id, Long userId) {
         return selectOne(new LambdaQueryWrapperX<ProjectExpDO>()
-                .eq(ProjectExpDO::getId, id)
-                .eq(ProjectExpDO::getUserId, userId));
+                .eqIfPresent(ProjectExpDO::getId, id)
+                .eqIfPresent(ProjectExpDO::getUserId, userId));
     }
 
     default void deleteByIdAndUserId(Long id, Long userId) {
         delete(new LambdaQueryWrapperX<ProjectExpDO>()
-                .eq(ProjectExpDO::getId, id)
-                .eq(ProjectExpDO::getUserId, userId));
+                .eqIfPresent(ProjectExpDO::getId, id)
+                .eqIfPresent(ProjectExpDO::getUserId, userId));
     }
 
 }

+ 4 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/trainexp/TrainExpMapper.java

@@ -28,15 +28,15 @@ public interface TrainExpMapper extends BaseMapperX<TrainExpDO> {
 
     default TrainExpDO selectByIdAndUserId(Long id, Long userId) {
         return selectOne(new LambdaQueryWrapperX<TrainExpDO>()
-                .eq(TrainExpDO::getId, id)
-                .eq(TrainExpDO::getUserId, userId));
+                .eqIfPresent(TrainExpDO::getId, id)
+                .eqIfPresent(TrainExpDO::getUserId, userId));
     }
 
 
     default void deleteByIdAndUserId(Long id, Long userId){
         delete(new LambdaQueryWrapperX<TrainExpDO>()
-                .eq(TrainExpDO::getId, id)
-                .eq(TrainExpDO::getUserId, userId));
+                .eqIfPresent(TrainExpDO::getId, id)
+                .eqIfPresent(TrainExpDO::getUserId, userId));
     }
 
 }

+ 4 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/visits/MdeVisitsMapper.java

@@ -48,13 +48,13 @@ public interface MdeVisitsMapper extends BaseMapperX<MdeVisitsDO> {
 
     default MdeVisitsDO getMdeVisitsByUserIdAndTypeAndBizIdAndDate(Long userId, String type, Long bizId, LocalDateTime date) {
         LambdaQueryWrapperX<MdeVisitsDO> wrapperX =  new LambdaQueryWrapperX<MdeVisitsDO>()
-                .eq(MdeVisitsDO::getType, type)
-                .eq(MdeVisitsDO::getBizId, bizId)
-                .eq(MdeVisitsDO::getDate, date.format(DateTimeFormatter.ofPattern(DateUtils.FORMAT_YEAR_MONTH_DAY)));
+                .eqIfPresent(MdeVisitsDO::getType, type)
+                .eqIfPresent(MdeVisitsDO::getBizId, bizId)
+                .eqIfPresent(MdeVisitsDO::getDate, date.format(DateTimeFormatter.ofPattern(DateUtils.FORMAT_YEAR_MONTH_DAY)));
         if(null == userId) {
             wrapperX.isNull(MdeVisitsDO::getUserId);
         }else{
-            wrapperX.eq(MdeVisitsDO::getUserId,userId);
+            wrapperX.eqIfPresent(MdeVisitsDO::getUserId,userId);
         }
         return selectOne(wrapperX);
     }

+ 5 - 5
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/workexp/WorkExpMapper.java

@@ -34,19 +34,19 @@ public interface WorkExpMapper extends BaseMapperX<WorkExpDO> {
 
     default List<WorkExpDO> selectByUserIdList(Long userId) {
         return selectList(new LambdaQueryWrapperX<WorkExpDO>()
-                .eq(WorkExpDO::getUserId, userId));
+                .eqIfPresent(WorkExpDO::getUserId, userId));
     }
 
 
     default WorkExpDO selectByIdAndUserId(Long id, Long userId) {
         return selectOne(new LambdaQueryWrapperX<WorkExpDO>()
-                .eq(WorkExpDO::getId, id)
-                .eq(WorkExpDO::getUserId, userId));
+                .eqIfPresent(WorkExpDO::getId, id)
+                .eqIfPresent(WorkExpDO::getUserId, userId));
     }
 
     default void deleteByIdAndUserId(Long id, Long userId) {
         delete(new LambdaQueryWrapperX<WorkExpDO>()
-                .eq(WorkExpDO::getId, id)
-                .eq(WorkExpDO::getUserId, userId));
+                .eqIfPresent(WorkExpDO::getId, id)
+                .eqIfPresent(WorkExpDO::getUserId, userId));
     }
 }

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

@@ -3,9 +3,11 @@ package com.citu.module.menduner.system.service.enterprise.post;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.module.menduner.system.controller.admin.enterprise.post.EnterprisePostPageReqVO;
 import com.citu.module.menduner.system.controller.admin.enterprise.post.EnterprisePostSaveReqVO;
+import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterprisePostRespVO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterprisePostDO;
 
 import javax.validation.Valid;
+import java.util.List;
 
 /**
  * 门墩儿-企业岗位信息 Service 接口
@@ -52,4 +54,11 @@ public interface EnterprisePostService {
      */
     PageResult<EnterprisePostDO> getEnterprisePostPage(EnterprisePostPageReqVO pageReqVO);
 
+
+    /**
+     * 根据企业id查询岗位信息
+     * @return 岗位信息
+     */
+    List<AppEnterprisePostRespVO> selectListByEnterpriseId(Long enterpriseId);
+
 }

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

@@ -4,6 +4,8 @@ import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.module.menduner.system.controller.admin.enterprise.post.EnterprisePostPageReqVO;
 import com.citu.module.menduner.system.controller.admin.enterprise.post.EnterprisePostSaveReqVO;
+import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterprisePostRespVO;
+import com.citu.module.menduner.system.convert.EnterpriseConvert;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterprisePostDO;
 import com.citu.module.menduner.system.dal.mysql.enterprise.EnterprisePostMapper;
 import org.springframework.stereotype.Service;
@@ -11,6 +13,9 @@ import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
 
+import java.util.Collections;
+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;
 
@@ -72,4 +77,9 @@ public class EnterprisePostServiceImpl implements EnterprisePostService {
         return enterprisePostMapper.selectPage(pageReqVO);
     }
 
+    @Override
+    public List<AppEnterprisePostRespVO> selectListByEnterpriseId(Long enterpriseId) {
+        List<EnterprisePostDO> list = enterprisePostMapper.selectListByEnterpriseId(enterpriseId);
+        return EnterpriseConvert.INSTANCE.convertList2(list);
+    }
 }

+ 6 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/register/EnterpriseRegisterService.java

@@ -6,6 +6,7 @@ import com.citu.module.menduner.system.controller.admin.enterprise.register.Ente
 import com.citu.module.menduner.system.controller.admin.enterprise.register.EnterpriseRegisterPageReqVO;
 import com.citu.module.menduner.system.controller.admin.enterprise.register.EnterpriseRegisterSaveReqVO;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseRegisterReqVO;
+import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseRegisterRespVO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseRegisterDO;
 
 import javax.validation.Valid;
@@ -74,4 +75,9 @@ public interface EnterpriseRegisterService {
      * @param reqVO
      **/
     void apply(AppEnterpriseRegisterReqVO reqVO);
+
+    /**
+     * 获取用户提交的申请
+     **/
+    AppEnterpriseRegisterRespVO getApplyByUserId();
 }

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

@@ -8,6 +8,7 @@ import com.citu.module.menduner.system.controller.admin.enterprise.register.Ente
 import com.citu.module.menduner.system.controller.admin.enterprise.register.EnterpriseRegisterPageReqVO;
 import com.citu.module.menduner.system.controller.admin.enterprise.register.EnterpriseRegisterSaveReqVO;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseRegisterReqVO;
+import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseRegisterRespVO;
 import com.citu.module.menduner.system.convert.EnterpriseConvert;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseBusinessDO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
@@ -147,9 +148,17 @@ public class EnterpriseRegisterServiceImpl implements EnterpriseRegisterService
     @Override
     @DSTransactional
     public void apply(AppEnterpriseRegisterReqVO reqVO) {
+        if (enterpriseRegisterMapper.selectCount(EnterpriseRegisterDO::getUserId, getLoginUserId()) > 0) {
+            throw exception(MDE_ENTERPRISE_REGISTER_APPLY_DUPLICATE);
+        }
         EnterpriseRegisterDO register = EnterpriseConvert.INSTANCE.convert6(reqVO);
         register.setStatus(EnterpriseRegisterAuditStatusEnum.AUDITING.getStatus());
         register.setUserId(getLoginUserId());
         enterpriseRegisterMapper.insert(register);
     }
+
+    @Override
+    public AppEnterpriseRegisterRespVO getApplyByUserId() {
+        return EnterpriseConvert.INSTANCE.convert8(enterpriseRegisterMapper.selectByUserId(getLoginUserId()));
+    }
 }

+ 86 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/user/EnterpriseUserApplyService.java

@@ -0,0 +1,86 @@
+package com.citu.module.menduner.system.service.enterprise;
+
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.module.menduner.system.controller.admin.enterprise.user.EnterpriseUserApplyAuditReqVO;
+import com.citu.module.menduner.system.controller.admin.enterprise.user.EnterpriseUserApplyPageReqVO;
+import com.citu.module.menduner.system.controller.admin.enterprise.vo.EnterpriseUserApplySaveReqVO;
+import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseUserApplyReqVO;
+import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseUserApplyRespVO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserApplyDO;
+
+import javax.validation.Valid;
+
+/**
+ * 门墩儿-企业用户申请 Service 接口
+ *
+ * @author Rayson
+ */
+public interface EnterpriseUserApplyService {
+
+    /**
+     * 创建门墩儿-企业用户申请
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    Long createEnterpriseUserApply(@Valid EnterpriseUserApplySaveReqVO createReqVO);
+
+    /**
+     * 更新门墩儿-企业用户申请
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updateEnterpriseUserApply(@Valid EnterpriseUserApplySaveReqVO updateReqVO);
+
+    /**
+     * 删除门墩儿-企业用户申请
+     *
+     * @param id 编号
+     */
+    void deleteEnterpriseUserApply(Long id);
+
+    /**
+     * 获得门墩儿-企业用户申请
+     *
+     * @param id 编号
+     * @return 门墩儿-企业用户申请
+     */
+    EnterpriseUserApplyDO getEnterpriseUserApply(Long id);
+
+    /**
+     * 获得门墩儿-企业用户申请分页
+     *
+     * @param pageReqVO 分页查询
+     * @return 门墩儿-企业用户申请分页
+     */
+    PageResult<EnterpriseUserApplyDO> getEnterpriseUserApplyPage(EnterpriseUserApplyPageReqVO pageReqVO);
+
+    /**
+     * 通过
+     *
+     * @param reqVO
+     * @return boolean
+     **/
+    void approved(EnterpriseUserApplyAuditReqVO reqVO);
+
+    /**
+     * 拒绝
+     *
+     * @param reqVO
+     * @return boolean
+     **/
+    void reject(EnterpriseUserApplyAuditReqVO reqVO);
+
+    /**
+     * 加入申请
+     *
+     * @param reqVO
+     **/
+    void apply(AppEnterpriseUserApplyReqVO reqVO);
+
+    /**
+     * 获取用户提交的申请
+     **/
+    AppEnterpriseUserApplyRespVO getApplyByUserId();
+
+}

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

@@ -0,0 +1,153 @@
+package com.citu.module.menduner.system.service.enterprise.user;
+
+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.admin.enterprise.user.EnterpriseUserApplyAuditReqVO;
+import com.citu.module.menduner.system.controller.admin.enterprise.user.EnterpriseUserApplyPageReqVO;
+import com.citu.module.menduner.system.controller.admin.enterprise.vo.EnterpriseUserApplySaveReqVO;
+import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseUserApplyReqVO;
+import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseUserApplyRespVO;
+import com.citu.module.menduner.system.convert.EnterpriseConvert;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserApplyDO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
+import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseUserApplyMapper;
+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.EnterpriseUserApplyAuditStatusEnum;
+import com.citu.module.menduner.system.service.enterprise.EnterpriseUserApplyService;
+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.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
+import static com.citu.module.menduner.system.enums.ErrorCodeConstants.*;
+
+/**
+ * 门墩儿-企业用户申请 Service 实现类
+ *
+ * @author Rayson
+ */
+@Service
+@Validated
+public class EnterpriseUserApplyServiceImpl implements EnterpriseUserApplyService {
+
+    @Resource
+    private EnterpriseUserApplyMapper enterpriseUserApplyMapper;
+
+    @Resource
+    private EnterpriseUserBindMapper userBindMapper;
+
+    @Override
+    public Long createEnterpriseUserApply(EnterpriseUserApplySaveReqVO createReqVO) {
+        // 插入
+        EnterpriseUserApplyDO enterpriseUserApply = BeanUtils.toBean(createReqVO, EnterpriseUserApplyDO.class);
+        enterpriseUserApplyMapper.insert(enterpriseUserApply);
+        // 返回
+        return enterpriseUserApply.getId();
+    }
+
+    @Override
+    public void updateEnterpriseUserApply(EnterpriseUserApplySaveReqVO updateReqVO) {
+        // 校验存在
+        validateEnterpriseUserApplyExists(updateReqVO.getId());
+        // 更新
+        EnterpriseUserApplyDO updateObj = BeanUtils.toBean(updateReqVO, EnterpriseUserApplyDO.class);
+        enterpriseUserApplyMapper.updateById(updateObj);
+    }
+
+    @Override
+    public void deleteEnterpriseUserApply(Long id) {
+        // 校验存在
+        validateEnterpriseUserApplyExists(id);
+        // 删除
+        enterpriseUserApplyMapper.deleteById(id);
+    }
+
+    private void validateEnterpriseUserApplyExists(Long id) {
+        if (enterpriseUserApplyMapper.selectById(id) == null) {
+            throw exception(ENTERPRISE_USER_APPLY_NOT_EXISTS);
+        }
+    }
+
+    @Override
+    public EnterpriseUserApplyDO getEnterpriseUserApply(Long id) {
+        return enterpriseUserApplyMapper.selectById(id);
+    }
+
+    @Override
+    public PageResult<EnterpriseUserApplyDO> getEnterpriseUserApplyPage(EnterpriseUserApplyPageReqVO pageReqVO) {
+        return enterpriseUserApplyMapper.selectPage(pageReqVO);
+    }
+
+    @Override
+    @DSTransactional
+    public void approved(EnterpriseUserApplyAuditReqVO reqVO) {
+        EnterpriseUserApplyDO appApplyDO = enterpriseUserApplyMapper.selectById(reqVO.getId());
+        if (null == appApplyDO) {
+            throw exception(ENTERPRISE_USER_APPLY_NOT_EXISTS);
+        }
+        if (!EnterpriseUserApplyAuditStatusEnum.AUDITING.getStatus()
+                .equals(appApplyDO.getStatus())) {
+            // 已审批
+            throw exception(ENTERPRISE_USER_APPLY_APPROVED);
+        }
+
+
+        appApplyDO.setStatus(EnterpriseUserApplyAuditStatusEnum.APPROVED.getStatus());
+        appApplyDO.setReason(reqVO.getReason());
+        enterpriseUserApplyMapper.updateById(appApplyDO);
+
+        // 增加企业绑定用户信息
+    }
+
+    @Override
+    @DSTransactional
+    public void reject(EnterpriseUserApplyAuditReqVO reqVO) {
+        EnterpriseUserApplyDO userApplyDO = enterpriseUserApplyMapper.selectById(reqVO.getId());
+        if (null == userApplyDO) {
+            throw exception(ENTERPRISE_USER_APPLY_NOT_EXISTS);
+        }
+        if (!EnterpriseUserApplyAuditStatusEnum.AUDITING.getStatus()
+                .equals(userApplyDO.getStatus())) {
+            // 已审批
+            throw exception(ENTERPRISE_USER_APPLY_APPROVED);
+        }
+        if (EnterpriseUserApplyAuditStatusEnum.APPROVED.getStatus()
+                .equals(userApplyDO.getStatus())) {
+            // 已审批通过,无法拒绝
+            throw exception(ENTERPRISE_USER_APPLY_APPROVED_SUCCESS);
+        }
+        userApplyDO.setStatus(EnterpriseUserApplyAuditStatusEnum.REJECT.getStatus());
+        userApplyDO.setReason(reqVO.getReason());
+        enterpriseUserApplyMapper.updateById(userApplyDO);
+
+        // 加入绑定
+        EnterpriseUserBindDO userBindDO = new EnterpriseUserBindDO();
+        userBindDO.setEnterpriseId(userApplyDO.getEnterpriseId());
+        userBindDO.setUserId(userApplyDO.getUserId());
+        userBindDO.setName(userApplyDO.getName());
+        userBindDO.setPostId(userApplyDO.getPostId());
+        userBindDO.setStatus(MendunerStatusEnum.ENABLE.getStatus());
+        userBindMapper.insert(userBindDO);
+    }
+
+    @Override
+    @DSTransactional
+    public void apply(AppEnterpriseUserApplyReqVO reqVO) {
+        if (enterpriseUserApplyMapper.selectCount(EnterpriseUserApplyDO::getUserId, getLoginUserId()) > 0) {
+            throw exception(MDE_ENTERPRISE_REGISTER_APPLY_DUPLICATE);
+        }
+        EnterpriseUserApplyDO applyDO = EnterpriseConvert.INSTANCE.convert10(reqVO);
+        applyDO.setStatus(EnterpriseUserApplyAuditStatusEnum.AUDITING.getStatus());
+        applyDO.setUserId(getLoginUserId());
+        enterpriseUserApplyMapper.insert(applyDO);
+    }
+
+    @Override
+    public AppEnterpriseUserApplyRespVO getApplyByUserId() {
+        return EnterpriseConvert.INSTANCE.convert9(enterpriseUserApplyMapper.selectByUserId(getLoginUserId()));
+    }
+}

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/record/PersonBrowseRecordServiceImpl.java

@@ -82,8 +82,8 @@ public class PersonBrowseRecordServiceImpl implements PersonBrowseRecordService
     public void delete(Long id, Long userId) {
         personBrowseRecordMapper.delete(
                 new LambdaQueryWrapperX<PersonBrowseRecordDO>()
-                        .eq(PersonBrowseRecordDO::getId, id)
-                        .eq(PersonBrowseRecordDO::getUserId, userId)
+                        .eqIfPresent(PersonBrowseRecordDO::getId, id)
+                        .eqIfPresent(PersonBrowseRecordDO::getUserId, userId)
         );
     }
 

+ 1 - 1
menduner/menduner-system-biz/src/main/resources/application.yaml

@@ -9,7 +9,7 @@ spring:
     basename: i18n/messages
     encoding: UTF-8
     # 找不到对应区域的语言时,是否回退到系统区域的语言,默认 true
-    fallback-to-system-locale: false
+    fallback-to-system-locale: true
     # 找不到code时,是否直接返回code值,而不是抛异常,默认false,抛异常
     use-code-as-default-message: true
     # 是否始终使用MessageFormat格式化国际化消息,即使没有国际化消息参数,默认false

+ 9 - 1
menduner/menduner-system-biz/src/main/resources/i18n/messages_en_US.properties

@@ -147,6 +147,7 @@
 1_200_006_007=Business license not uploaded
 1_200_006_008=Unified social credit code cannot be empty
 1_200_006_009=Enterprise registered
+1_200_006_010=The enterprise has applied for review, please do not resubmit
 # ========== 企业地址 1_200_007_001 ==========
 1_200_007_001=The company address does not exist
 # ========== 企业登录用户 1_200_008_000 ==========
@@ -197,4 +198,11 @@
 1_200_018_002=The modification status must be {value}
 1_200_018_003=Display order cannot be empty
 1_200_018_004=Superior ID cannot be empty
-1_200_018_005=id cannot be empty
+1_200_018_005=id cannot be empty
+1_200_018_006=User ID cannot be empty
+# ========== 企业用户申请 1_200_019_000 ==========
+1_200_019_001=Enterprise user application does not exist
+1_200_019_002=User application has been approved
+1_200_019_003=The user's application has been approved and cannot be rejected
+1_200_019_004=Enterprise ID cannot be empty
+1_200_019_005=Applied for review, please do not resubmit

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

@@ -148,6 +148,7 @@
 1_200_006_007=未上传营业执照
 1_200_006_008=统一社会信用代码不能为空
 1_200_006_009=企业已注册
+1_200_006_010=企业已申请审核中,请勿重复提交
 # ========== 企业地址 1_200_007_001 ==========
 1_200_007_001=企业地址不存在
 # ========== 企业登录用户 1_200_008_000 ==========
@@ -198,4 +199,11 @@
 1_200_018_002=修改状态必须是 {value}
 1_200_018_003=显示顺序不能为空
 1_200_018_004=上级id不能为空
-1_200_018_005=id不能为空
+1_200_018_005=id不能为空
+1_200_018_006=用户id不能为空
+# ========== 企业用户申请 1_200_019_000 ==========
+1_200_019_001=企业用户申请不存在
+1_200_019_002=用户申请已审批
+1_200_019_003=用户申请申请已审批通过,无法拒绝
+1_200_019_004=企业id不能为空
+1_200_019_005=已申请审核中,请勿重复提交

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

@@ -0,0 +1,144 @@
+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.admin.enterprise.user.EnterpriseUserApplyPageReqVO;
+import com.citu.module.menduner.system.controller.admin.enterprise.vo.EnterpriseUserApplySaveReqVO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserApplyDO;
+import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseUserApplyMapper;
+import com.citu.module.menduner.system.service.enterprise.user.EnterpriseUserApplyServiceImpl;
+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_USER_APPLY_NOT_EXISTS;
+import static org.junit.jupiter.api.Assertions.*;
+
+/**
+ * {@link EnterpriseUserApplyServiceImpl} 的单元测试类
+ *
+ * @author Rayson
+ */
+@Import(EnterpriseUserApplyServiceImpl.class)
+public class EnterpriseUserApplyServiceImplTest extends BaseDbUnitTest {
+
+    @Resource
+    private EnterpriseUserApplyServiceImpl enterpriseUserApplyService;
+
+    @Resource
+    private EnterpriseUserApplyMapper enterpriseUserApplyMapper;
+
+    @Test
+    public void testCreateEnterpriseUserApply_success() {
+        // 准备参数
+        EnterpriseUserApplySaveReqVO createReqVO = randomPojo(EnterpriseUserApplySaveReqVO.class).setId(null);
+
+        // 调用
+        Long enterpriseUserApplyId = enterpriseUserApplyService.createEnterpriseUserApply(createReqVO);
+        // 断言
+        assertNotNull(enterpriseUserApplyId);
+        // 校验记录的属性是否正确
+        EnterpriseUserApplyDO enterpriseUserApply = enterpriseUserApplyMapper.selectById(enterpriseUserApplyId);
+        assertPojoEquals(createReqVO, enterpriseUserApply, "id");
+    }
+
+    @Test
+    public void testUpdateEnterpriseUserApply_success() {
+        // mock 数据
+        EnterpriseUserApplyDO dbEnterpriseUserApply = randomPojo(EnterpriseUserApplyDO.class);
+        enterpriseUserApplyMapper.insert(dbEnterpriseUserApply);// @Sql: 先插入出一条存在的数据
+        // 准备参数
+        EnterpriseUserApplySaveReqVO updateReqVO = randomPojo(EnterpriseUserApplySaveReqVO.class, o -> {
+            o.setId(dbEnterpriseUserApply.getId()); // 设置更新的 ID
+        });
+
+        // 调用
+        enterpriseUserApplyService.updateEnterpriseUserApply(updateReqVO);
+        // 校验是否更新正确
+        EnterpriseUserApplyDO enterpriseUserApply = enterpriseUserApplyMapper.selectById(updateReqVO.getId()); // 获取最新的
+        assertPojoEquals(updateReqVO, enterpriseUserApply);
+    }
+
+    @Test
+    public void testUpdateEnterpriseUserApply_notExists() {
+        // 准备参数
+        EnterpriseUserApplySaveReqVO updateReqVO = randomPojo(EnterpriseUserApplySaveReqVO.class);
+
+        // 调用, 并断言异常
+        assertServiceException(() -> enterpriseUserApplyService.updateEnterpriseUserApply(updateReqVO), ENTERPRISE_USER_APPLY_NOT_EXISTS);
+    }
+
+    @Test
+    public void testDeleteEnterpriseUserApply_success() {
+        // mock 数据
+        EnterpriseUserApplyDO dbEnterpriseUserApply = randomPojo(EnterpriseUserApplyDO.class);
+        enterpriseUserApplyMapper.insert(dbEnterpriseUserApply);// @Sql: 先插入出一条存在的数据
+        // 准备参数
+        Long id = dbEnterpriseUserApply.getId();
+
+        // 调用
+        enterpriseUserApplyService.deleteEnterpriseUserApply(id);
+        // 校验数据不存在了
+        assertNull(enterpriseUserApplyMapper.selectById(id));
+    }
+
+    @Test
+    public void testDeleteEnterpriseUserApply_notExists() {
+        // 准备参数
+        Long id = randomLongId();
+
+        // 调用, 并断言异常
+        assertServiceException(() -> enterpriseUserApplyService.deleteEnterpriseUserApply(id), ENTERPRISE_USER_APPLY_NOT_EXISTS);
+    }
+
+    @Test
+    @Disabled  // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
+    public void testGetEnterpriseUserApplyPage() {
+        // mock 数据
+        EnterpriseUserApplyDO dbEnterpriseUserApply = randomPojo(EnterpriseUserApplyDO.class, o -> { // 等会查询到
+            o.setUserId(null);
+            o.setEnterpriseId(null);
+            o.setPostId(null);
+            o.setName(null);
+            o.setStatus(null);
+            o.setCreateTime(null);
+        });
+        enterpriseUserApplyMapper.insert(dbEnterpriseUserApply);
+        // 测试 userId 不匹配
+        enterpriseUserApplyMapper.insert(cloneIgnoreId(dbEnterpriseUserApply, o -> o.setUserId(null)));
+        // 测试 enterpriseId 不匹配
+        enterpriseUserApplyMapper.insert(cloneIgnoreId(dbEnterpriseUserApply, o -> o.setEnterpriseId(null)));
+        // 测试 postId 不匹配
+        enterpriseUserApplyMapper.insert(cloneIgnoreId(dbEnterpriseUserApply, o -> o.setPostId(null)));
+        // 测试 name 不匹配
+        enterpriseUserApplyMapper.insert(cloneIgnoreId(dbEnterpriseUserApply, o -> o.setName(null)));
+        // 测试 status 不匹配
+        enterpriseUserApplyMapper.insert(cloneIgnoreId(dbEnterpriseUserApply, o -> o.setStatus(null)));
+        // 测试 createTime 不匹配
+        enterpriseUserApplyMapper.insert(cloneIgnoreId(dbEnterpriseUserApply, o -> o.setCreateTime(null)));
+        // 准备参数
+        EnterpriseUserApplyPageReqVO reqVO = new EnterpriseUserApplyPageReqVO();
+        reqVO.setUserId(null);
+        reqVO.setEnterpriseId(null);
+        reqVO.setPostId(null);
+        reqVO.setName(null);
+        reqVO.setStatus(null);
+        reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
+
+        // 调用
+        PageResult<EnterpriseUserApplyDO> pageResult = enterpriseUserApplyService.getEnterpriseUserApplyPage(reqVO);
+        // 断言
+        assertEquals(1, pageResult.getTotal());
+        assertEquals(1, pageResult.getList().size());
+        assertPojoEquals(dbEnterpriseUserApply, pageResult.getList().get(0));
+    }
+
+}

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

@@ -24,3 +24,4 @@ DELETE FROM "mde_person_job_collection";
 DELETE FROM "mde_train_exp";
 DELETE FROM "mde_project_exp";
 DELETE FROM "mde_skill";
+DELETE FROM "mde_enterprise_user_apply";

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

@@ -471,3 +471,21 @@ CREATE TABLE IF NOT EXISTS "mde_skill" (
     "tenant_id" bigint NOT NULL,
     PRIMARY KEY ("id")
 ) COMMENT '门墩儿-职业技能表';
+
+CREATE TABLE IF NOT EXISTS "mde_enterprise_user_apply" (
+    "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
+    "user_id" bigint NOT NULL,
+    "enterprise_id" bigint NOT NULL,
+    "post_id" bigint,
+    "name" varchar,
+    "status" varchar NOT NULL,
+    "reason" varchar,
+    "remark" varchar,
+    "creator" varchar DEFAULT '',
+    "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    "updater" varchar DEFAULT '',
+    "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+    "deleted" bit NOT NULL DEFAULT FALSE,
+    "tenant_id" bigint NOT NULL,
+    PRIMARY KEY ("id")
+) COMMENT '门墩儿-企业用户申请';