Selaa lähdekoodia

1、增加企业实名制

rayson 1 vuosi sitten
vanhempi
commit
ee1df2e256
31 muutettua tiedostoa jossa 931 lisäystä ja 29 poistoa
  1. 1 1
      menduner/menduner-im-biz/src/main/resources/i18n/messages_zh_CN.properties
  2. 11 1
      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/EnterpriseAuthStatusEnum.java
  4. 113 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/EnterpriseAuthController.java
  5. 4 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/EnterpriseUserApplyController.java
  6. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/enterprise/vo/apply/AppEnterpriseUserApplyRespVO.java
  7. 22 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/AppAdminEnterpriseController.java
  8. 16 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/auth/AppAdminEnterpriseAuthRespVO.java
  9. 31 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/auth/AppAdminEnterpriseAuthSaveReqVO.java
  10. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/apply/EnterpriseUserApplyAuditReqVO.java
  11. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/apply/EnterpriseUserApplyPageReqVO.java
  12. 2 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/apply/EnterpriseUserApplyRespVO.java
  13. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/apply/EnterpriseUserApplySaveReqVO.java
  14. 18 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/auth/EnterpriseAuthAuditReqVO.java
  15. 49 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/auth/EnterpriseAuthPageReqVO.java
  16. 56 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/auth/EnterpriseAuthRespVO.java
  17. 47 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/auth/EnterpriseAuthSaveReqVO.java
  18. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/EnterpriseConvert.java
  19. 64 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterpriseAuthDO.java
  20. 36 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseAuthMapper.java
  21. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseUserApplyMapper.java
  22. 3 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/apply/EnterpriseUserApplyService.java
  23. 4 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/apply/EnterpriseUserApplyServiceImpl.java
  24. 90 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/auth/EnterpriseAuthService.java
  25. 140 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/auth/EnterpriseAuthServiceImpl.java
  26. 7 0
      menduner/menduner-system-biz/src/main/resources/i18n/messages_en_US.properties
  27. 9 2
      menduner/menduner-system-biz/src/main/resources/i18n/messages_zh_CN.properties
  28. 158 0
      menduner/menduner-system-biz/src/test/java/com/citu/module/menduner/system/service/enterprise/EnterpriseAuthServiceImplTest.java
  29. 3 3
      menduner/menduner-system-biz/src/test/java/com/citu/module/menduner/system/service/enterprise/EnterpriseUserApplyServiceImplTest.java
  30. 3 1
      menduner/menduner-system-biz/src/test/resources/sql/clean.sql
  31. 17 0
      menduner/menduner-system-biz/src/test/resources/sql/create_tables.sql

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

@@ -167,7 +167,7 @@
 1_100_021_007=未上传营业执照
 1_100_021_008=统一社会信用代码不能为空
 1_100_021_009=企业已注册
-1_100_021_010=企业申请审核中,请勿重复提交
+1_100_021_010=企业申请审核中,请勿重复提交
 # ========== 企业地址 1_100_022_001 ==========
 1_100_022_001=企业地址不存在
 # ========== 企业登录用户 1_100_023_000 ==========

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

@@ -213,7 +213,7 @@ public interface ErrorCodeConstants {
     ErrorCode MDE_ENTERPRISE_REGISTER_DUPLICATE = new ErrorCode(1_100_021_009, "企业已注册");
 
     ErrorCode MDE_ENTERPRISE_REGISTER_APPLY_DUPLICATE
-            = new ErrorCode(1_100_021_010, "企业申请审核中,请勿重复提交");
+            = new ErrorCode(1_100_021_010, "企业申请审核中,请勿重复提交");
 
     ErrorCode MDE_ENTERPRISE_REGISTER_CREDIT_CODE_FORMAT_ERROR
             = new ErrorCode(1_100_021_011, "统一社会信用代码格式不正确");
@@ -396,4 +396,14 @@ public interface ErrorCodeConstants {
     ErrorCode UNFIT_CANDIDATE_JOB_ID_NOT_NULL = new ErrorCode(1_100_042_003, "发布的职位id不能为空");
     ErrorCode UNFIT_CANDIDATE_TYPE_NOT_NULL = new ErrorCode(1_100_042_004, "类型不能为空");
     ErrorCode UNFIT_CANDIDATE_BUSINESS_ID_NOT_NULL = new ErrorCode(1_100_042_005, "业务id不能为空");
+
+
+    // ========== 企业实名认证 1_100_043_000 ==========
+    ErrorCode ENTERPRISE_AUTH_NOT_EXISTS = new ErrorCode(1_100_043_001, "企业实名认证不存在");
+    ErrorCode ENTERPRISE_AUTH_USER_ID_NOT_NULL = new ErrorCode(1_100_043_002, "认证用户id不能为空");
+    ErrorCode ENTERPRISE_AUTH_NAME_NOT_NULL = new ErrorCode(1_100_043_003, "姓名不能为空");
+    ErrorCode ENTERPRISE_AUTH_IDENTITY_NO_NOT_NULL = new ErrorCode(1_100_043_004, "身份证号码不能为空");
+    ErrorCode ENTERPRISE_AUTH_FRONT_URL_NOT_NULL = new ErrorCode(1_100_043_005, "身份证正面未上传");
+    ErrorCode ENTERPRISE_AUTH_BACK_URL_NOT_NULL = new ErrorCode(1_100_043_006, "身份证反面未上传");
+
 }

+ 19 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/enterprise/EnterpriseAuthStatusEnum.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 EnterpriseAuthStatusEnum {
+
+    AUDITING("0", "审核中"),
+    APPROVED("1", "审核通过"),
+    REJECT("2", "审核不通过");
+
+    private final String status;
+    private final String name;
+}

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

@@ -0,0 +1,113 @@
+package com.citu.module.menduner.system.controller.admin.enterprise;
+
+
+import com.citu.framework.apilog.core.annotation.ApiAccessLog;
+import com.citu.framework.common.pojo.CommonResult;
+import com.citu.framework.common.pojo.PageParam;
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.framework.common.util.object.BeanUtils;
+import com.citu.framework.excel.core.util.ExcelUtils;
+import com.citu.module.menduner.system.controller.base.enterprise.auth.EnterpriseAuthAuditReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.auth.EnterpriseAuthPageReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.auth.EnterpriseAuthRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.auth.EnterpriseAuthSaveReqVO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseAuthDO;
+import com.citu.module.menduner.system.service.enterprise.auth.EnterpriseAuthService;
+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-auth")
+@Validated
+public class EnterpriseAuthController {
+
+    @Resource
+    private EnterpriseAuthService enterpriseAuthService;
+
+    @PostMapping("/create")
+    @Operation(summary = "创建企业实名认证")
+    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-auth:create')")
+    public CommonResult<Long> createEnterpriseAuth(@Valid @RequestBody EnterpriseAuthSaveReqVO createReqVO) {
+        return success(enterpriseAuthService.createEnterpriseAuth(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "更新企业实名认证")
+    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-auth:update')")
+    public CommonResult<Boolean> updateEnterpriseAuth(@Valid @RequestBody EnterpriseAuthSaveReqVO updateReqVO) {
+        enterpriseAuthService.updateEnterpriseAuth(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除企业实名认证")
+    @Parameter(name = "id", description = "编号", required = true)
+    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-auth:delete')")
+    public CommonResult<Boolean> deleteEnterpriseAuth(@RequestParam("id") Long id) {
+        enterpriseAuthService.deleteEnterpriseAuth(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得企业实名认证")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-auth:query')")
+    public CommonResult<EnterpriseAuthRespVO> getEnterpriseAuth(@RequestParam("id") Long id) {
+        EnterpriseAuthDO enterpriseAuth = enterpriseAuthService.getEnterpriseAuth(id);
+        return success(BeanUtils.toBean(enterpriseAuth, EnterpriseAuthRespVO.class));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得企业实名认证分页")
+    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-auth:query')")
+    public CommonResult<PageResult<EnterpriseAuthRespVO>> getEnterpriseAuthPage(@Valid EnterpriseAuthPageReqVO pageReqVO) {
+        PageResult<EnterpriseAuthDO> pageResult = enterpriseAuthService.getEnterpriseAuthPage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, EnterpriseAuthRespVO.class));
+    }
+
+    @GetMapping("/export-excel")
+    @Operation(summary = "导出企业实名认证 Excel")
+    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-auth:export')")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportEnterpriseAuthExcel(@Valid EnterpriseAuthPageReqVO pageReqVO,
+                                          HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<EnterpriseAuthDO> list = enterpriseAuthService.getEnterpriseAuthPage(pageReqVO).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "企业实名认证.xls", "数据", EnterpriseAuthRespVO.class,
+                BeanUtils.toBean(list, EnterpriseAuthRespVO.class));
+    }
+
+    @PutMapping("/approved")
+    @Operation(summary = "审核通过")
+    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-auth:update')")
+    public CommonResult<Boolean> approved(@Valid @RequestBody EnterpriseAuthAuditReqVO reqVO) {
+        enterpriseAuthService.approved(reqVO);
+        return success(true);
+    }
+
+    @PutMapping("/reject")
+    @Operation(summary = "审核拒绝驳回")
+    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-auth:update')")
+    public CommonResult<Boolean> reject(@Valid @RequestBody EnterpriseAuthAuditReqVO reqVO) {
+        enterpriseAuthService.reject(reqVO);
+        return success(true);
+    }
+
+
+}

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

@@ -6,10 +6,10 @@ import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.excel.core.util.ExcelUtils;
-import com.citu.module.menduner.system.controller.base.enterprise.user.EnterpriseUserApplyAuditReqVO;
-import com.citu.module.menduner.system.controller.base.enterprise.user.EnterpriseUserApplyPageReqVO;
-import com.citu.module.menduner.system.controller.base.enterprise.user.EnterpriseUserApplyRespVO;
-import com.citu.module.menduner.system.controller.base.enterprise.user.EnterpriseUserApplySaveReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.apply.EnterpriseUserApplyAuditReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.apply.EnterpriseUserApplyPageReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.apply.EnterpriseUserApplyRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.apply.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;

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

@@ -1,6 +1,6 @@
 package com.citu.module.menduner.system.controller.app.enterprise.vo.apply;
 
-import com.citu.module.menduner.system.controller.base.enterprise.user.EnterpriseUserApplyRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.apply.EnterpriseUserApplyRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 

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

@@ -3,8 +3,11 @@ package com.citu.module.menduner.system.controller.appadmin.enterprise;
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
 import com.citu.module.menduner.common.util.LoginUserContext;
+import com.citu.module.menduner.system.controller.appadmin.enterprise.auth.AppAdminEnterpriseAuthRespVO;
+import com.citu.module.menduner.system.controller.appadmin.enterprise.auth.AppAdminEnterpriseAuthSaveReqVO;
 import com.citu.module.menduner.system.controller.appadmin.enterprise.vo.*;
 import com.citu.module.menduner.system.service.enterprise.EnterpriseService;
+import com.citu.module.menduner.system.service.enterprise.auth.EnterpriseAuthService;
 import com.citu.module.menduner.system.service.enterprise.business.EnterpriseBusinessService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -14,7 +17,6 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
-import java.util.List;
 
 import static com.citu.framework.common.pojo.CommonResult.success;
 
@@ -31,6 +33,9 @@ public class AppAdminEnterpriseController {
     @Resource
     private EnterpriseBusinessService enterpriseBusinessService;
 
+    @Resource
+    private EnterpriseAuthService enterpriseAuthService;
+
 
     @PreAuthenticated
     @GetMapping("/get/tree")
@@ -39,6 +44,22 @@ public class AppAdminEnterpriseController {
         return success(enterpriseService.getTree(LoginUserContext.getEnterpriseId()));
     }
 
+    @PreAuthenticated
+    @GetMapping("/get/auth")
+    @Operation(summary = "获取企业实名认证")
+    public CommonResult<AppAdminEnterpriseAuthRespVO> getAuth() {
+        return success(enterpriseAuthService.get());
+    }
+
+    @PreAuthenticated
+    @PostMapping("/auth/save")
+    @Operation(summary = "提交企业实名认证")
+    public CommonResult<Boolean> saveAuth(
+            @Valid @RequestBody AppAdminEnterpriseAuthSaveReqVO reqVO) {
+        enterpriseAuthService.save(reqVO);
+        return success(true);
+    }
+
     @PreAuthenticated
     @PostMapping("/logo/update")
     @Operation(summary = "修改企业logo")

+ 16 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/auth/AppAdminEnterpriseAuthRespVO.java

@@ -0,0 +1,16 @@
+package com.citu.module.menduner.system.controller.appadmin.enterprise.auth;
+
+import com.citu.module.menduner.system.controller.base.enterprise.auth.EnterpriseAuthRespVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "menduner - 企业实名制 Response VO")
+@Data
+public class AppAdminEnterpriseAuthRespVO extends EnterpriseAuthRespVO {
+
+    @Schema(description = "更新时间")
+    private LocalDateTime updateTime;
+
+}

+ 31 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/auth/AppAdminEnterpriseAuthSaveReqVO.java

@@ -0,0 +1,31 @@
+package com.citu.module.menduner.system.controller.appadmin.enterprise.auth;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+@Schema(description = "menduner - 企业实名制保存 Request VO")
+@Data
+public class AppAdminEnterpriseAuthSaveReqVO {
+
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17583")
+    private Long id;
+
+    @NotBlank(message = "{1_100_043_003}")
+    @Schema(description = "姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
+    private String name;
+
+    @NotBlank(message = "{1_100_043_004}")
+    @Schema(description = "身份证号码", requiredMode = Schema.RequiredMode.REQUIRED)
+    private String identityNo;
+
+    @NotBlank(message = "{1_100_043_005}")
+    @Schema(description = "正面", example = "https://www.iocoder.cn")
+    private String frontUrl;
+
+    @NotBlank(message = "{1_100_043_006}")
+    @Schema(description = "反面", example = "https://www.iocoder.cn")
+    private String backUrl;
+
+}

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/user/EnterpriseUserApplyAuditReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/apply/EnterpriseUserApplyAuditReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.base.enterprise.user;
+package com.citu.module.menduner.system.controller.base.enterprise.apply;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/user/EnterpriseUserApplyPageReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/apply/EnterpriseUserApplyPageReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.base.enterprise.user;
+package com.citu.module.menduner.system.controller.base.enterprise.apply;
 
 import com.citu.framework.common.pojo.PageParam;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 2 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/user/EnterpriseUserApplyRespVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/apply/EnterpriseUserApplyRespVO.java

@@ -1,10 +1,8 @@
-package com.citu.module.menduner.system.controller.base.enterprise.user;
+package com.citu.module.menduner.system.controller.base.enterprise.apply;
 
 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.*;
 

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/user/EnterpriseUserApplySaveReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/apply/EnterpriseUserApplySaveReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.base.enterprise.user;
+package com.citu.module.menduner.system.controller.base.enterprise.apply;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;

+ 18 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/auth/EnterpriseAuthAuditReqVO.java

@@ -0,0 +1,18 @@
+package com.citu.module.menduner.system.controller.base.enterprise.auth;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Schema(description = "企业实名制审核 Request VO")
+@Data
+public class EnterpriseAuthAuditReqVO {
+
+    @NotNull(message = "{1_099_000_005}" )
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9045")
+    private Long id;
+
+    @Schema(description = "原因")
+    private String reason;
+}

+ 49 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/auth/EnterpriseAuthPageReqVO.java

@@ -0,0 +1,49 @@
+package com.citu.module.menduner.system.controller.base.enterprise.auth;
+
+
+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 EnterpriseAuthPageReqVO extends PageParam {
+
+    @Schema(description = "企业id", example = "11519")
+    private Long enterpriseId;
+
+    @Schema(description = "认证用户id", example = "21301")
+    private Long userId;
+
+    @Schema(description = "姓名", example = "赵六")
+    private String name;
+
+    @Schema(description = "身份证号码")
+    private String identityNo;
+
+    @Schema(description = "正面", example = "https://www.iocoder.cn")
+    private String frontUrl;
+
+    @Schema(description = "反面", example = "https://www.iocoder.cn")
+    private String backUrl;
+
+    @Schema(description = "审核状态(0审核中 1审核通过 2审核不通过)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    private String status;
+
+    @Schema(description = "审核原因", example = "不香")
+    private String reason;
+
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
+}

+ 56 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/auth/EnterpriseAuthRespVO.java

@@ -0,0 +1,56 @@
+package com.citu.module.menduner.system.controller.base.enterprise.auth;
+
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 企业实名认证 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class EnterpriseAuthRespVO {
+
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17583")
+    @ExcelProperty("id")
+    private Long id;
+
+    @Schema(description = "企业id", requiredMode = Schema.RequiredMode.REQUIRED, example = "11519")
+    @ExcelProperty("企业id")
+    private Long enterpriseId;
+
+    @Schema(description = "认证用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "21301")
+    @ExcelProperty("认证用户id")
+    private Long userId;
+
+    @Schema(description = "姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
+    @ExcelProperty("姓名")
+    private String name;
+
+    @Schema(description = "身份证号码", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("身份证号码")
+    private String identityNo;
+
+    @Schema(description = "正面", example = "https://www.iocoder.cn")
+    @ExcelProperty("身份证正面")
+    private String frontUrl;
+
+    @Schema(description = "反面", example = "https://www.iocoder.cn")
+    @ExcelProperty("身份证反面")
+    private String backUrl;
+
+    @Schema(description = "审核状态(0审核中 1审核通过 2审核不通过)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    @ExcelProperty("审核状态")
+    private String status;
+
+    @Schema(description = "审核原因", example = "不香")
+    @ExcelProperty("审核原因")
+    private String reason;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
+}

+ 47 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/auth/EnterpriseAuthSaveReqVO.java

@@ -0,0 +1,47 @@
+package com.citu.module.menduner.system.controller.base.enterprise.auth;
+
+
+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 EnterpriseAuthSaveReqVO {
+
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17583")
+    private Long id;
+
+    @Schema(description = "企业id", requiredMode = Schema.RequiredMode.REQUIRED, example = "11519")
+    @NotNull(message = "{1_099_000_007}")
+    private Long enterpriseId;
+
+    @Schema(description = "认证用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "21301")
+    @NotNull(message = "{1_100_043_002}")
+    private Long userId;
+
+    @Schema(description = "姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
+    @NotEmpty(message = "{1_100_043_003}")
+    private String name;
+
+    @Schema(description = "身份证号码", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "{1_100_043_004}")
+    private String identityNo;
+
+    @Schema(description = "正面", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn")
+    @NotEmpty(message = "{1_100_043_005}")
+    private String frontUrl;
+
+    @Schema(description = "反面", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn")
+    @NotEmpty(message = "{1_100_043_006}")
+    private String backUrl;
+
+    @Schema(description = "审核状态(0审核中 1审核通过 2审核不通过)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    private String status;
+
+    @Schema(description = "审核原因", example = "不香")
+    private String reason;
+
+}

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

@@ -5,6 +5,7 @@ import com.citu.module.menduner.system.controller.app.enterprise.vo.apply.AppEnt
 import com.citu.module.menduner.system.controller.app.enterprise.vo.apply.AppEnterpriseUserApplyRespVO;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.register.AppEnterpriseRegisterReqVO;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.register.AppEnterpriseRegisterRespVO;
+import com.citu.module.menduner.system.controller.appadmin.enterprise.auth.AppAdminEnterpriseAuthRespVO;
 import com.citu.module.menduner.system.controller.appadmin.enterprise.vo.*;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminEnterpriseAccountRespVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserRespVO;
@@ -61,4 +62,6 @@ public interface EnterpriseConvert {
     AppAdminEnterpriseTreeRespVO convert17(EnterpriseDO bean);
 
     List<AppAdminEnterpriseTreeRespVO> convertList3(List<EnterpriseDO> list);
+
+    AppAdminEnterpriseAuthRespVO convert18(EnterpriseAuthDO bean);
 }

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

@@ -0,0 +1,64 @@
+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 io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+/**
+ * 企业实名认证 DO
+ *
+ * @author Rayson
+ */
+@TableName("mde_enterprise_auth")
+@KeySequence("mde_enterprise_auth_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class EnterpriseAuthDO extends BaseDO {
+
+    /**
+     * id
+     */
+    @TableId
+    private Long id;
+    /**
+     * 企业id
+     */
+    private Long enterpriseId;
+    /**
+     * 认证用户id
+     */
+    private Long userId;
+    /**
+     * 姓名
+     */
+    private String name;
+    /**
+     * 身份证号码
+     */
+    private String identityNo;
+    /**
+     * 正面
+     */
+    private String frontUrl;
+    /**
+     * 反面
+     */
+    private String backUrl;
+    /**
+     * 审核状态(0审核中 1审核通过 2审核不通过)
+     */
+    private String status;
+    /**
+     * 审核原因
+     */
+    private String reason;
+
+}

+ 36 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseAuthMapper.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.base.enterprise.auth.EnterpriseAuthPageReqVO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseAuthDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 企业实名认证 Mapper
+ *
+ * @author Rayson
+ */
+@Mapper
+public interface EnterpriseAuthMapper extends BaseMapperX<EnterpriseAuthDO> {
+
+    default PageResult<EnterpriseAuthDO> selectPage(EnterpriseAuthPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<EnterpriseAuthDO>()
+                .eqIfPresent(EnterpriseAuthDO::getEnterpriseId, reqVO.getEnterpriseId())
+                .eqIfPresent(EnterpriseAuthDO::getUserId, reqVO.getUserId())
+                .likeIfPresent(EnterpriseAuthDO::getName, reqVO.getName())
+                .eqIfPresent(EnterpriseAuthDO::getIdentityNo, reqVO.getIdentityNo())
+                .eqIfPresent(EnterpriseAuthDO::getFrontUrl, reqVO.getFrontUrl())
+                .eqIfPresent(EnterpriseAuthDO::getBackUrl, reqVO.getBackUrl())
+                .betweenIfPresent(EnterpriseAuthDO::getCreateTime, reqVO.getCreateTime())
+                .orderByDesc(EnterpriseAuthDO::getId));
+    }
+
+    default EnterpriseAuthDO selectByEnterprise(Long enterpriseId) {
+        return selectOne(new LambdaQueryWrapperX<EnterpriseAuthDO>()
+                .eq(EnterpriseAuthDO::getEnterpriseId, enterpriseId));
+    }
+
+}

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

@@ -3,7 +3,7 @@ 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.base.enterprise.user.EnterpriseUserApplyPageReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.apply.EnterpriseUserApplyPageReqVO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserApplyDO;
 import org.apache.ibatis.annotations.Mapper;
 

+ 3 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/user/EnterpriseUserApplyService.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/apply/EnterpriseUserApplyService.java

@@ -1,9 +1,9 @@
 package com.citu.module.menduner.system.service.enterprise;
 
 import com.citu.framework.common.pojo.PageResult;
-import com.citu.module.menduner.system.controller.base.enterprise.user.EnterpriseUserApplyAuditReqVO;
-import com.citu.module.menduner.system.controller.base.enterprise.user.EnterpriseUserApplyPageReqVO;
-import com.citu.module.menduner.system.controller.base.enterprise.user.EnterpriseUserApplySaveReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.apply.EnterpriseUserApplyAuditReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.apply.EnterpriseUserApplyPageReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.apply.EnterpriseUserApplySaveReqVO;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.apply.AppEnterpriseUserApplyReqVO;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.apply.AppEnterpriseUserApplyRespVO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserApplyDO;

+ 4 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/user/EnterpriseUserApplyServiceImpl.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/apply/EnterpriseUserApplyServiceImpl.java

@@ -1,13 +1,13 @@
-package com.citu.module.menduner.system.service.enterprise.user;
+package com.citu.module.menduner.system.service.enterprise.apply;
 
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.apply.AppEnterpriseUserApplyReqVO;
 import com.citu.module.menduner.system.controller.app.enterprise.vo.apply.AppEnterpriseUserApplyRespVO;
-import com.citu.module.menduner.system.controller.base.enterprise.user.EnterpriseUserApplyAuditReqVO;
-import com.citu.module.menduner.system.controller.base.enterprise.user.EnterpriseUserApplyPageReqVO;
-import com.citu.module.menduner.system.controller.base.enterprise.user.EnterpriseUserApplySaveReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.apply.EnterpriseUserApplyAuditReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.apply.EnterpriseUserApplyPageReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.apply.EnterpriseUserApplySaveReqVO;
 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;

+ 90 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/auth/EnterpriseAuthService.java

@@ -0,0 +1,90 @@
+package com.citu.module.menduner.system.service.enterprise.auth;
+
+
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.module.menduner.system.controller.appadmin.enterprise.auth.AppAdminEnterpriseAuthRespVO;
+import com.citu.module.menduner.system.controller.appadmin.enterprise.auth.AppAdminEnterpriseAuthSaveReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.auth.EnterpriseAuthAuditReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.auth.EnterpriseAuthPageReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.auth.EnterpriseAuthSaveReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.apply.EnterpriseUserApplyAuditReqVO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseAuthDO;
+
+import javax.validation.Valid;
+
+/**
+ * 企业实名认证 Service 接口
+ *
+ * @author Rayson
+ */
+public interface EnterpriseAuthService {
+
+    /**
+     * 创建企业实名认证
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    Long createEnterpriseAuth(@Valid EnterpriseAuthSaveReqVO createReqVO);
+
+    /**
+     * 更新企业实名认证
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updateEnterpriseAuth(@Valid EnterpriseAuthSaveReqVO updateReqVO);
+
+    /**
+     * 删除企业实名认证
+     *
+     * @param id 编号
+     */
+    void deleteEnterpriseAuth(Long id);
+
+    /**
+     * 获得企业实名认证
+     *
+     * @param id 编号
+     * @return 企业实名认证
+     */
+    EnterpriseAuthDO getEnterpriseAuth(Long id);
+
+    /**
+     * 获得企业实名认证分页
+     *
+     * @param pageReqVO 分页查询
+     * @return 企业实名认证分页
+     */
+    PageResult<EnterpriseAuthDO> getEnterpriseAuthPage(EnterpriseAuthPageReqVO pageReqVO);
+
+    /**
+     * 通过
+     *
+     * @param reqVO
+     * @return boolean
+     **/
+    void approved(EnterpriseAuthAuditReqVO reqVO);
+
+    /**
+     * 拒绝
+     *
+     * @param reqVO
+     * @return boolean
+     **/
+    void reject(EnterpriseAuthAuditReqVO reqVO);
+
+    /**
+     * 获取企业实名认证
+     *
+     * @return 企业实名制信息
+     */
+    AppAdminEnterpriseAuthRespVO get();
+
+    /**
+     * 保存
+     *
+     * @param reqVO 实名制对象
+     */
+    void save(AppAdminEnterpriseAuthSaveReqVO reqVO);
+
+}

+ 140 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/auth/EnterpriseAuthServiceImpl.java

@@ -0,0 +1,140 @@
+package com.citu.module.menduner.system.service.enterprise.auth;
+
+
+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.enterprise.auth.AppAdminEnterpriseAuthRespVO;
+import com.citu.module.menduner.system.controller.appadmin.enterprise.auth.AppAdminEnterpriseAuthSaveReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.auth.EnterpriseAuthAuditReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.auth.EnterpriseAuthPageReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.auth.EnterpriseAuthSaveReqVO;
+import com.citu.module.menduner.system.convert.EnterpriseConvert;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseAuthDO;
+import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseAuthMapper;
+import com.citu.module.menduner.system.enums.enterprise.EnterpriseAuthStatusEnum;
+import com.citu.module.menduner.system.enums.enterprise.EnterpriseUserApplyAuditStatusEnum;
+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_AUTH_NOT_EXISTS;
+
+
+/**
+ * 企业实名认证 Service 实现类
+ *
+ * @author Rayson
+ */
+@Service
+@Validated
+public class EnterpriseAuthServiceImpl implements EnterpriseAuthService {
+
+    @Resource
+    private EnterpriseAuthMapper mapper;
+
+    @Override
+    public Long createEnterpriseAuth(EnterpriseAuthSaveReqVO createReqVO) {
+        // 插入
+        EnterpriseAuthDO enterpriseAuth = BeanUtils.toBean(createReqVO, EnterpriseAuthDO.class);
+        mapper.insert(enterpriseAuth);
+        // 返回
+        return enterpriseAuth.getId();
+    }
+
+    @Override
+    public void updateEnterpriseAuth(EnterpriseAuthSaveReqVO updateReqVO) {
+        // 校验存在
+        validateEnterpriseAuthExists(updateReqVO.getId());
+        // 更新
+        EnterpriseAuthDO updateObj = BeanUtils.toBean(updateReqVO, EnterpriseAuthDO.class);
+        mapper.updateById(updateObj);
+    }
+
+    @Override
+    public void deleteEnterpriseAuth(Long id) {
+        // 校验存在
+        validateEnterpriseAuthExists(id);
+        // 删除
+        mapper.deleteById(id);
+    }
+
+    private EnterpriseAuthDO validateEnterpriseAuthExists(Long id) {
+        EnterpriseAuthDO enterpriseAuth = mapper.selectById(id);
+        if (null == enterpriseAuth) {
+            throw exception(ENTERPRISE_AUTH_NOT_EXISTS);
+        }
+        return enterpriseAuth;
+    }
+
+    @Override
+    public EnterpriseAuthDO getEnterpriseAuth(Long id) {
+        return mapper.selectById(id);
+    }
+
+    @Override
+    public PageResult<EnterpriseAuthDO> getEnterpriseAuthPage(EnterpriseAuthPageReqVO pageReqVO) {
+        return mapper.selectPage(pageReqVO);
+    }
+
+    @Override
+    @DSTransactional
+    public void approved(EnterpriseAuthAuditReqVO reqVO) {
+        EnterpriseAuthDO enterpriseAuth = validateEnterpriseAuthExists(reqVO.getId());
+        enterpriseAuth.setStatus(EnterpriseAuthStatusEnum.APPROVED.getStatus());
+        enterpriseAuth.setReason(reqVO.getReason());
+        mapper.updateById(enterpriseAuth);
+    }
+
+    @Override
+    @DSTransactional
+    public void reject(EnterpriseAuthAuditReqVO reqVO) {
+        EnterpriseAuthDO enterpriseAuth = validateEnterpriseAuthExists(reqVO.getId());
+        enterpriseAuth.setStatus(EnterpriseAuthStatusEnum.REJECT.getStatus());
+        enterpriseAuth.setReason(reqVO.getReason());
+        mapper.updateById(enterpriseAuth);
+    }
+
+    @Override
+    public AppAdminEnterpriseAuthRespVO get() {
+        return EnterpriseConvert.INSTANCE.convert18(mapper.
+                selectByEnterprise(LoginUserContext.getEnterpriseId()));
+    }
+
+    @Override
+    @DSTransactional
+    public void save(AppAdminEnterpriseAuthSaveReqVO reqVO) {
+        LoginUser loginUser = LoginUserContext.get();
+
+        Long userId = LoginUserContext.getUserId(loginUser);
+        Long enterpriseId = LoginUserContext.getEnterpriseId(loginUser);
+
+        EnterpriseAuthDO entity = mapper.
+                selectByEnterprise(enterpriseId);
+
+        if (null == entity) {
+            EnterpriseAuthDO auth = BeanUtils.toBean(reqVO, EnterpriseAuthDO.class);
+            auth.setId(null);
+            auth.setEnterpriseId(enterpriseId);
+            auth.setUserId(userId);
+            auth.setStatus(EnterpriseAuthStatusEnum.AUDITING.getStatus());
+            mapper.insert(auth);
+        } else {
+            // 重新提交
+            entity.setName(reqVO.getName());
+            entity.setIdentityNo(reqVO.getIdentityNo());
+            entity.setFrontUrl(reqVO.getFrontUrl());
+            entity.setBackUrl(reqVO.getBackUrl());
+            entity.setStatus(EnterpriseAuthStatusEnum.AUDITING.getStatus());
+            entity.setReason("");
+            mapper.updateById(entity);
+
+        }
+
+
+    }
+}

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

@@ -287,3 +287,10 @@
 1_100_041_010=Already joined the enterprise and cannot be operated repeatedly
 1_100_041_011=Please complete personal basic information first
 1_100_041_012=Cannot join the same enterprise
+# ========== 企业实名认证 1_100_043_000 ==========
+1_100_043_001=Enterprise real name authentication does not exist
+1_100_043_002=Authentication user ID cannot be empty
+1_100_043_003=Name cannot be empty
+1_100_043_004=ID card number cannot be empty
+1_100_043_005=ID card front not uploaded
+1_100_043_006=ID card reverse not uploaded

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

@@ -167,7 +167,7 @@
 1_100_021_007=未上传营业执照
 1_100_021_008=统一社会信用代码不能为空
 1_100_021_009=企业已注册
-1_100_021_010=企业申请审核中,请勿重复提交
+1_100_021_010=企业申请审核中,请勿重复提交
 1_100_021_011=统一社会信用代码格式不正确
 # ========== 企业地址 1_100_022_001 ==========
 1_100_022_001=企业地址不存在
@@ -289,4 +289,11 @@
 1_100_041_009=公司已存在所属上级,不能操作成为子公司
 1_100_041_010=已加入该企业不可重复操作
 1_100_041_011=请先完善个人基本信息
-1_100_041_012=无法加入相同的企业
+1_100_041_012=无法加入相同的企业
+# ========== 企业实名认证 1_100_043_000 ==========
+1_100_043_001=企业实名认证不存在
+1_100_043_002=认证用户id不能为空
+1_100_043_003=姓名不能为空
+1_100_043_004=身份证号码不能为空
+1_100_043_005=身份证正面未上传
+1_100_043_006=身份证反面未上传

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

@@ -0,0 +1,158 @@
+package com.citu.module.menduner.system.service.enterprise;
+
+
+import com.citu.module.menduner.system.controller.base.enterprise.auth.EnterpriseAuthPageReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.auth.EnterpriseAuthSaveReqVO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseAuthDO;
+import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseAuthMapper;
+import com.citu.module.menduner.system.service.enterprise.auth.EnterpriseAuthServiceImpl;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.mock.mockito.MockBean;
+
+import javax.annotation.Resource;
+
+import com.citu.framework.test.core.ut.BaseDbUnitTest;
+
+
+import com.citu.framework.common.pojo.PageResult;
+
+import javax.annotation.Resource;
+import org.springframework.context.annotation.Import;
+import java.util.*;
+import java.time.LocalDateTime;
+
+import static cn.hutool.core.util.RandomUtil.*;
+import static com.citu.framework.test.core.util.AssertUtils.*;
+import static com.citu.framework.test.core.util.RandomUtils.*;
+import static com.citu.framework.common.util.date.LocalDateTimeUtils.*;
+import static com.citu.framework.common.util.object.ObjectUtils.*;
+import static com.citu.framework.common.util.date.DateUtils.*;
+import static com.citu.module.menduner.system.enums.ErrorCodeConstants.ENTERPRISE_AUTH_NOT_EXISTS;
+import static org.junit.jupiter.api.Assertions.*;
+import static org.mockito.Mockito.*;
+
+/**
+ * {@link EnterpriseAuthServiceImpl} 的单元测试类
+ *
+ * @author Rayson
+ */
+@Import(EnterpriseAuthServiceImpl.class)
+public class EnterpriseAuthServiceImplTest extends BaseDbUnitTest {
+
+    @Resource
+    private EnterpriseAuthServiceImpl enterpriseAuthService;
+
+    @Resource
+    private EnterpriseAuthMapper enterpriseAuthMapper;
+
+    @Test
+    public void testCreateEnterpriseAuth_success() {
+        // 准备参数
+        EnterpriseAuthSaveReqVO createReqVO = randomPojo(EnterpriseAuthSaveReqVO.class).setId(null);
+
+        // 调用
+        Long enterpriseAuthId = enterpriseAuthService.createEnterpriseAuth(createReqVO);
+        // 断言
+        assertNotNull(enterpriseAuthId);
+        // 校验记录的属性是否正确
+        EnterpriseAuthDO enterpriseAuth = enterpriseAuthMapper.selectById(enterpriseAuthId);
+        assertPojoEquals(createReqVO, enterpriseAuth, "id");
+    }
+
+    @Test
+    public void testUpdateEnterpriseAuth_success() {
+        // mock 数据
+        EnterpriseAuthDO dbEnterpriseAuth = randomPojo(EnterpriseAuthDO.class);
+        enterpriseAuthMapper.insert(dbEnterpriseAuth);// @Sql: 先插入出一条存在的数据
+        // 准备参数
+        EnterpriseAuthSaveReqVO updateReqVO = randomPojo(EnterpriseAuthSaveReqVO.class, o -> {
+            o.setId(dbEnterpriseAuth.getId()); // 设置更新的 ID
+        });
+
+        // 调用
+        enterpriseAuthService.updateEnterpriseAuth(updateReqVO);
+        // 校验是否更新正确
+        EnterpriseAuthDO enterpriseAuth = enterpriseAuthMapper.selectById(updateReqVO.getId()); // 获取最新的
+        assertPojoEquals(updateReqVO, enterpriseAuth);
+    }
+
+    @Test
+    public void testUpdateEnterpriseAuth_notExists() {
+        // 准备参数
+        EnterpriseAuthSaveReqVO updateReqVO = randomPojo(EnterpriseAuthSaveReqVO.class);
+
+        // 调用, 并断言异常
+        assertServiceException(() -> enterpriseAuthService.updateEnterpriseAuth(updateReqVO), ENTERPRISE_AUTH_NOT_EXISTS);
+    }
+
+    @Test
+    public void testDeleteEnterpriseAuth_success() {
+        // mock 数据
+        EnterpriseAuthDO dbEnterpriseAuth = randomPojo(EnterpriseAuthDO.class);
+        enterpriseAuthMapper.insert(dbEnterpriseAuth);// @Sql: 先插入出一条存在的数据
+        // 准备参数
+        Long id = dbEnterpriseAuth.getId();
+
+        // 调用
+        enterpriseAuthService.deleteEnterpriseAuth(id);
+        // 校验数据不存在了
+        assertNull(enterpriseAuthMapper.selectById(id));
+    }
+
+    @Test
+    public void testDeleteEnterpriseAuth_notExists() {
+        // 准备参数
+        Long id = randomLongId();
+
+        // 调用, 并断言异常
+        assertServiceException(() -> enterpriseAuthService.deleteEnterpriseAuth(id), ENTERPRISE_AUTH_NOT_EXISTS);
+    }
+
+    @Test
+    @Disabled  // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
+    public void testGetEnterpriseAuthPage() {
+        // mock 数据
+        EnterpriseAuthDO dbEnterpriseAuth = randomPojo(EnterpriseAuthDO.class, o -> { // 等会查询到
+            o.setEnterpriseId(null);
+            o.setUserId(null);
+            o.setName(null);
+            o.setIdentityNo(null);
+            o.setFrontUrl(null);
+            o.setBackUrl(null);
+            o.setCreateTime(null);
+        });
+        enterpriseAuthMapper.insert(dbEnterpriseAuth);
+        // 测试 enterpriseId 不匹配
+        enterpriseAuthMapper.insert(cloneIgnoreId(dbEnterpriseAuth, o -> o.setEnterpriseId(null)));
+        // 测试 userId 不匹配
+        enterpriseAuthMapper.insert(cloneIgnoreId(dbEnterpriseAuth, o -> o.setUserId(null)));
+        // 测试 name 不匹配
+        enterpriseAuthMapper.insert(cloneIgnoreId(dbEnterpriseAuth, o -> o.setName(null)));
+        // 测试 identityNo 不匹配
+        enterpriseAuthMapper.insert(cloneIgnoreId(dbEnterpriseAuth, o -> o.setIdentityNo(null)));
+        // 测试 frontUrl 不匹配
+        enterpriseAuthMapper.insert(cloneIgnoreId(dbEnterpriseAuth, o -> o.setFrontUrl(null)));
+        // 测试 backUrl 不匹配
+        enterpriseAuthMapper.insert(cloneIgnoreId(dbEnterpriseAuth, o -> o.setBackUrl(null)));
+        // 测试 createTime 不匹配
+        enterpriseAuthMapper.insert(cloneIgnoreId(dbEnterpriseAuth, o -> o.setCreateTime(null)));
+        // 准备参数
+        EnterpriseAuthPageReqVO reqVO = new EnterpriseAuthPageReqVO();
+        reqVO.setEnterpriseId(null);
+        reqVO.setUserId(null);
+        reqVO.setName(null);
+        reqVO.setIdentityNo(null);
+        reqVO.setFrontUrl(null);
+        reqVO.setBackUrl(null);
+        reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
+
+        // 调用
+        PageResult<EnterpriseAuthDO> pageResult = enterpriseAuthService.getEnterpriseAuthPage(reqVO);
+        // 断言
+        assertEquals(1, pageResult.getTotal());
+        assertEquals(1, pageResult.getList().size());
+        assertPojoEquals(dbEnterpriseAuth, pageResult.getList().get(0));
+    }
+
+}

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

@@ -2,11 +2,11 @@ package com.citu.module.menduner.system.service.enterprise;
 
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.test.core.ut.BaseDbUnitTest;
-import com.citu.module.menduner.system.controller.base.enterprise.user.EnterpriseUserApplyPageReqVO;
-import com.citu.module.menduner.system.controller.base.enterprise.user.EnterpriseUserApplySaveReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.apply.EnterpriseUserApplyPageReqVO;
+import com.citu.module.menduner.system.controller.base.enterprise.apply.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 com.citu.module.menduner.system.service.enterprise.apply.EnterpriseUserApplyServiceImpl;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.springframework.context.annotation.Import;

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

@@ -33,4 +33,6 @@ DELETE FROM "mde_user_account";
 DELETE FROM "mde_enterprise_invite";
 DELETE FROM "mde_enterprise_invite_record";
 
-DELETE FROM "mde_interview_invite";
+DELETE FROM "mde_interview_invite";
+
+DELETE FROM "mde_enterprise_auth";

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

@@ -607,3 +607,20 @@ CREATE TABLE IF NOT EXISTS "mde_interview_invite" (
     "tenant_id" bigint NOT NULL,
     PRIMARY KEY ("id")
 ) COMMENT '面试邀请表';
+
+CREATE TABLE IF NOT EXISTS "mde_enterprise_auth" (
+    "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
+    "enterprise_id" bigint NOT NULL,
+    "user_id" bigint NOT NULL,
+    "name" varchar NOT NULL,
+    "identity_no" int NOT NULL,
+    "front_url" varchar NOT NULL,
+    "back_url" varchar NOT NULL,
+    "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 '企业实名认证';