Forráskód Böngészése

1、提交接口增加幂等性提交限制

rayson 8 hónapja
szülő
commit
fae43ea310
14 módosított fájl, 66 hozzáadás és 20 törlés
  1. 5 0
      menduner/menduner-system-biz/pom.xml
  2. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/enterprise/AppEnterpriseRegisterController.java
  3. 0 17
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/enterprise/AppEnterpriseUserLookController.java
  4. 2 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/interview/AppInterviewInviteController.java
  5. 4 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/job/AppJobCvRelController.java
  6. 9 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/person/AppPersonController.java
  7. 15 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/person/AppPersonResumeController.java
  8. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/redeem/AppRedeemController.java
  9. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/user/AppUserAuthController.java
  10. 9 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/enterprise/AppRecruitEnterpriseController.java
  11. 2 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/enterprise/AppRecruitEnterpriseTalentPoolController.java
  12. 4 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/interview/AppRecruitInterviewInviteController.java
  13. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/AppRecruitJobAdvertisedController.java
  14. 4 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/user/AppRecruitUserController.java

+ 5 - 0
menduner/menduner-system-biz/pom.xml

@@ -55,6 +55,11 @@
             <artifactId>citu-spring-boot-starter-job</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>com.citu</groupId>
+            <artifactId>citu-spring-boot-starter-protection</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>com.xingyuv</groupId>
             <artifactId>spring-boot-starter-captcha-plus</artifactId> <!-- 验证码,一般用于登录使用 -->

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

@@ -1,6 +1,8 @@
 package com.citu.module.menduner.system.controller.app.jobhunt.enterprise;
 
 import com.citu.framework.common.pojo.CommonResult;
+import com.citu.framework.idempotent.core.annotation.Idempotent;
+import com.citu.framework.idempotent.core.keyresolver.impl.UserIdempotentKeyResolver;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
 import com.citu.module.menduner.system.controller.app.jobhunt.enterprise.vo.register.AppEnterpriseRegisterReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.enterprise.vo.register.AppEnterpriseRegisterRespVO;
@@ -28,6 +30,7 @@ public class AppEnterpriseRegisterController {
     @PreAuthenticated
     @PostMapping("/apply")
     @Operation(summary = "企业注册申请")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> apply(@Valid @RequestBody AppEnterpriseRegisterReqVO reqVO) {
         enterpriseRegisterService.apply(reqVO);
         return success(true);

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

@@ -1,17 +0,0 @@
-package com.citu.module.menduner.system.controller.app.jobhunt.enterprise;
-
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-@Tag(name = "求职端 - 企业招聘者浏览")
-@RestController
-@RequestMapping("/menduner/system/enterprise-user-look")
-@Validated
-@Slf4j
-public class AppEnterpriseUserLookController {
-
-
-}

+ 2 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/interview/AppInterviewInviteController.java

@@ -14,7 +14,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;
@@ -48,7 +47,7 @@ public class AppInterviewInviteController {
     @GetMapping("/get/list/by/{inviteUserId}")
     @Operation(summary = "根据邀请人id获取面试邀约列表")
     public CommonResult<List<AppInterviewInviteRespVO>> getListByInviteUserId
-            (@PathVariable("inviteUserId")  Long inviteUserId) {
+            (@PathVariable("inviteUserId") Long inviteUserId) {
         return success(service.getListByInviteUserId(inviteUserId));
     }
 
@@ -56,7 +55,7 @@ public class AppInterviewInviteController {
     @PostMapping("/reject")
     @Operation(summary = "拒绝邀约面试")
     public CommonResult<Boolean> reject
-            (@RequestParam("id")  Long id) {
+            (@RequestParam("id") Long id) {
         service.reject(id);
         return success(true);
     }

+ 4 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/job/AppJobCvRelController.java

@@ -3,6 +3,8 @@ package com.citu.module.menduner.system.controller.app.jobhunt.job;
 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.idempotent.core.annotation.Idempotent;
+import com.citu.framework.idempotent.core.keyresolver.impl.UserIdempotentKeyResolver;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.hire.AppHireJobCvRelQueryReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.hire.AppHireJobCvRelReqVO;
@@ -55,12 +57,14 @@ public class AppJobCvRelController {
     @PostMapping("/send")
     @PreAuthenticated
     @Operation(summary = "投递简历")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> send(@Valid @RequestBody AppJobCvRelReqVO reqVO) {
         jobCvRelService.send(reqVO);
         return success(true);
     }
     @PostMapping("/hire/recommend/send")
     @Operation(summary = "众聘分享-投递简历")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> send(@Valid @RequestBody AppHireJobCvRelReqVO reqVO) {
         jobCvRelService.send(reqVO);
         return success(true);

+ 9 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/person/AppPersonController.java

@@ -3,6 +3,8 @@ package com.citu.module.menduner.system.controller.app.jobhunt.person;
 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.idempotent.core.annotation.Idempotent;
+import com.citu.framework.idempotent.core.keyresolver.impl.UserIdempotentKeyResolver;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.enterprise.PersonEnterpriseSubscribeReqVO;
@@ -71,6 +73,7 @@ public class AppPersonController {
     @PreAuthenticated
     @PostMapping("/job/favorite")
     @Operation(summary = "用户收藏职位")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> favorite(@Valid @RequestBody AppPersonJobFavoriteReqVO reqVO) {
         Boolean result = jobFavoriteService.favorite(reqVO);
         return success(result);
@@ -79,6 +82,7 @@ public class AppPersonController {
     @PreAuthenticated
     @DeleteMapping("/job/unfavorite")
     @Operation(summary = "用户取消收藏职位")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> unFavorite(@RequestParam("jobId") Long jobId) {
         Boolean result = jobFavoriteService.unFavorite(jobId);
         return success(result);
@@ -87,6 +91,7 @@ public class AppPersonController {
     @PreAuthenticated
     @PostMapping("/enterprise-block/block")
     @Operation(summary = "屏蔽-屏蔽企业")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> block(@Valid @RequestBody PersonEnterpriseBlockSaveReqVO reqVO) {
         blockService.block(reqVO);
         return success(true);
@@ -95,6 +100,7 @@ public class AppPersonController {
     @PreAuthenticated
     @DeleteMapping("/enterprise-block/un-block")
     @Operation(summary = "屏蔽-取消屏蔽企业")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> unBlock(@RequestParam("enterpriseId") Long enterpriseId) {
         blockService.unBlock(enterpriseId);
         return success(true);
@@ -103,6 +109,7 @@ public class AppPersonController {
     @PreAuthenticated
     @GetMapping("/enterprise-block/page")
     @Operation(summary = "屏蔽-获得屏蔽企业")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<PageResult<EnterpriseBaseSimpleRespVO>> blockPage(PageParam page) {
         return success(blockService.page(page));
     }
@@ -110,6 +117,7 @@ public class AppPersonController {
     @PreAuthenticated
     @PostMapping("/enterprise/subscribe")
     @Operation(summary = "用户关注订阅企业")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> subscribe(@Valid @RequestBody PersonEnterpriseSubscribeReqVO reqVO) {
         Boolean result = enterpriseSubscribeService.subscribe(reqVO);
         return success(result);
@@ -118,6 +126,7 @@ public class AppPersonController {
     @PreAuthenticated
     @DeleteMapping("/enterprise/unsubscribe")
     @Operation(summary = "用户取消关注订阅企业")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> unsubscribe(@RequestParam("enterpriseId") Long enterpriseId) {
         Boolean result = enterpriseSubscribeService.unSubscribe(enterpriseId);
         return success(result);

+ 15 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/person/AppPersonResumeController.java

@@ -1,6 +1,8 @@
 package com.citu.module.menduner.system.controller.app.jobhunt.person;
 
 import com.citu.framework.common.pojo.CommonResult;
+import com.citu.framework.idempotent.core.annotation.Idempotent;
+import com.citu.framework.idempotent.core.keyresolver.impl.UserIdempotentKeyResolver;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.cvattachment.AppCvAttachmentRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.person.cvattachment.AppCvAttachmentSaveReqVO;
@@ -83,6 +85,7 @@ public class AppPersonResumeController {
     @PreAuthenticated
     @PostMapping("/info/save")
     @Operation(summary = "保存基本信息")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> saveInfo(@Valid @RequestBody AppPersonInfoSaveReqVO reqVO) {
         return success(personInfoService.saveInfo(reqVO));
     }
@@ -90,6 +93,7 @@ public class AppPersonResumeController {
     @PreAuthenticated
     @PostMapping("/tag/update")
     @Operation(summary = "修改人才标签")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> updateTag(
             @Valid @RequestBody AppPersonInfoTagReqVO reqVO) {
         personInfoService.updateTag(reqVO);
@@ -101,6 +105,7 @@ public class AppPersonResumeController {
     @PreAuthenticated
     @PostMapping("/avatar/update")
     @Operation(summary = "修改人才头像")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> uploadAvatar(@RequestParam("avatar") String avatar) {
         personInfoService.uploadAvatar(avatar);
         return success(true);
@@ -109,6 +114,7 @@ public class AppPersonResumeController {
     @PreAuthenticated
     @PostMapping("/info/simple/save")
     @Operation(summary = "保存简易基本信息")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> saveSimple(@Valid @RequestBody AppPersonInfoSaveSimpleReqVO reqVO) {
         return success(personInfoService.saveSimple(reqVO));
     }
@@ -116,6 +122,7 @@ public class AppPersonResumeController {
     @PreAuthenticated
     @PostMapping("/job/status/update")
     @Operation(summary = "修改求职类型")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> updateJobStatus(@RequestParam("status") String status) {
         return success(personInfoService.updateJobStatus(status));
     }
@@ -126,6 +133,7 @@ public class AppPersonResumeController {
     @PreAuthenticated
     @PostMapping("/advantage/save")
     @Operation(summary = "保存人才优势")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> saveAdvantage(@Valid @RequestBody AppPersonAdvantageSaveReqVO reqVO) {
         return success(personInfoService.saveAdvantage(reqVO));
     }
@@ -136,6 +144,7 @@ public class AppPersonResumeController {
     @PreAuthenticated
     @PostMapping("/job/interested/save")
     @Operation(summary = "保存求职意向")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> saveJobInterested(@Valid @RequestBody AppJobInterestedSaveReqVO reqVO) {
         return success(jobInterestedService.saveJobInterested(reqVO));
     }
@@ -162,6 +171,7 @@ public class AppPersonResumeController {
     @PreAuthenticated
     @PostMapping("/edu/exp/save")
     @Operation(summary = "保存教育经历")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> saveEduExp(@Valid @RequestBody AppEduExpSaveReqVO reqVO) {
         return success(eduExpService.saveEduExp(reqVO));
     }
@@ -188,6 +198,7 @@ public class AppPersonResumeController {
     @PreAuthenticated
     @PostMapping("/work/exp/save")
     @Operation(summary = "保存工作经历")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> saveWorkExp(@Valid @RequestBody AppWorkExpSaveReqVO reqVO) {
         return success(workExpService.saveWorkExp(reqVO));
     }
@@ -213,6 +224,7 @@ public class AppPersonResumeController {
     @PreAuthenticated
     @PostMapping("/project/exp/save")
     @Operation(summary = "保存项目经历")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> saveProjectExp(@Valid @RequestBody AppProjectExpSaveReqVO reqVO) {
         return success(projectExpService.saveProjectExp(reqVO));
     }
@@ -239,6 +251,7 @@ public class AppPersonResumeController {
     @PreAuthenticated
     @PostMapping("/train/exp/save")
     @Operation(summary = "保存培训经历")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> saveTrainExp(@Valid @RequestBody AppTrainExpSaveReqVO reqVO) {
         return success(trainExpService.saveTrainExp(reqVO));
     }
@@ -265,6 +278,7 @@ public class AppPersonResumeController {
     @PreAuthenticated
     @PostMapping("/person/skill/save")
     @Operation(summary = "保存职业技能")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> savePersonSkill(@Valid @RequestBody AppPersonSkillSaveReqVO reqVO) {
         return success(personSkillService.savePersonSkill(reqVO));
     }
@@ -297,6 +311,7 @@ public class AppPersonResumeController {
     @PreAuthenticated
     @PostMapping("/person/cv/save")
     @Operation(summary = "保存附件")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> savePersonSkill(@Valid @RequestBody AppCvAttachmentSaveReqVO reqVO) {
         cvAttachmentService.create(reqVO);
         return success(true);

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/redeem/AppRedeemController.java

@@ -3,6 +3,8 @@ package com.citu.module.menduner.system.controller.app.jobhunt.redeem;
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
+import com.citu.framework.idempotent.core.annotation.Idempotent;
+import com.citu.framework.idempotent.core.keyresolver.impl.UserIdempotentKeyResolver;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
 import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.system.controller.app.jobhunt.redeem.vo.AppRedeemRespVO;
@@ -35,6 +37,7 @@ public class AppRedeemController {
     @PreAuthenticated
     @PostMapping("/submit")
     @Operation(summary = "兑换提交")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> submit(@Valid @RequestBody AppRedeemSubmitReqVO reqVO) {
         redeemService.submit(reqVO);
         return success(true);

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/user/AppUserAuthController.java

@@ -2,6 +2,8 @@ package com.citu.module.menduner.system.controller.app.jobhunt.user;
 
 
 import com.citu.framework.common.pojo.CommonResult;
+import com.citu.framework.idempotent.core.annotation.Idempotent;
+import com.citu.framework.idempotent.core.keyresolver.impl.UserIdempotentKeyResolver;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
 import com.citu.module.menduner.system.controller.app.jobhunt.user.vo.AppUserAuthRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.user.vo.AppUserAuthSaveReqVO;
@@ -36,6 +38,7 @@ public class AppUserAuthController {
     @PreAuthenticated
     @PostMapping("/save")
     @Operation(summary = "保存")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> save(
             @Valid @RequestBody AppUserAuthSaveReqVO reqVO) {
         userAuthService.save(reqVO);

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

@@ -6,6 +6,8 @@ import com.citu.framework.baiduaip.core.ocr.BusinessLicenseOcr;
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.dict.core.DictFrameworkUtils;
+import com.citu.framework.idempotent.core.annotation.Idempotent;
+import com.citu.framework.idempotent.core.keyresolver.impl.UserIdempotentKeyResolver;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
 import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.system.controller.app.recruit.enterprise.auth.AppRecruitEnterpriseAuthRespVO;
@@ -68,6 +70,7 @@ public class AppRecruitEnterpriseController {
     @PreAuthenticated
     @PostMapping("/auth/save")
     @Operation(summary = "提交企业实名认证")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> saveAuth(
             @Valid @RequestBody AppRecruitEnterpriseAuthSaveReqVO reqVO) {
         enterpriseAuthService.save(reqVO);
@@ -77,6 +80,7 @@ public class AppRecruitEnterpriseController {
     @PreAuthenticated
     @PostMapping("/logo/update")
     @Operation(summary = "修改企业logo")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> uploadLogo(@RequestParam("logoUrl") String logoUrl) {
         enterpriseService.uploadLogo(logoUrl);
         return success(true);
@@ -85,6 +89,7 @@ public class AppRecruitEnterpriseController {
     @PreAuthenticated
     @PostMapping("/album/update")
     @Operation(summary = "修改企业相册")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> updateAlbum(
             @Valid @RequestBody AppRecruitEnterpriseAlbumReqVO reqVO) {
         enterpriseService.updateAlbum(reqVO);
@@ -94,6 +99,7 @@ public class AppRecruitEnterpriseController {
     @PreAuthenticated
     @PostMapping("/welfare/update")
     @Operation(summary = "修改企业福利标签")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> updateWelfare(
             @Valid @RequestBody AppRecruitEnterpriseWelfareReqVO reqVO) {
         enterpriseService.updateWelfare(reqVO);
@@ -103,6 +109,7 @@ public class AppRecruitEnterpriseController {
     @PreAuthenticated
     @PostMapping("/tag/update")
     @Operation(summary = "修改企业标签")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> updateTag(
             @Valid @RequestBody AppRecruitEnterpriseTagReqVO reqVO) {
         enterpriseService.updateTag(reqVO);
@@ -113,6 +120,7 @@ public class AppRecruitEnterpriseController {
     @PreAuthenticated
     @PostMapping("/update")
     @Operation(summary = "修改企业基本信息")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> update(
             @Valid @RequestBody AppRecruitEnterpriseSaveReqVO reqVO) {
         enterpriseService.update(reqVO);
@@ -129,6 +137,7 @@ public class AppRecruitEnterpriseController {
     @PreAuthenticated
     @PostMapping("/business/update")
     @Operation(summary = "修改企业营业执照信息")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> update(
             @Valid @RequestBody AppRecruitEnterpriseBusinessSaveReqVO reqVO) {
         enterpriseBusinessService.update(reqVO);

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

@@ -2,6 +2,8 @@ package com.citu.module.menduner.system.controller.app.recruit.enterprise;
 
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.pojo.PageResult;
+import com.citu.framework.idempotent.core.annotation.Idempotent;
+import com.citu.framework.idempotent.core.keyresolver.impl.UserIdempotentKeyResolver;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
 import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.system.controller.app.recruit.enterprise.post.AppRecruitEnterprisePostSaveReqVO;

+ 4 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/interview/AppRecruitInterviewInviteController.java

@@ -2,6 +2,8 @@ package com.citu.module.menduner.system.controller.app.recruit.interview;
 
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.pojo.PageResult;
+import com.citu.framework.idempotent.core.annotation.Idempotent;
+import com.citu.framework.idempotent.core.keyresolver.impl.UserIdempotentKeyResolver;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
 import com.citu.module.menduner.system.controller.app.recruit.interview.vo.*;
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
@@ -44,6 +46,7 @@ public class AppRecruitInterviewInviteController {
     @PreAuthenticated
     @PostMapping("/save")
     @Operation(summary = "保存(新增|修改|重新邀约)")
+    @Idempotent(timeout = 2, keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> save
             (@RequestBody @Valid AppRecruitInterviewInviteReqSaveVO reqVO) {
         service.save(reqVO);
@@ -53,6 +56,7 @@ public class AppRecruitInterviewInviteController {
     @PreAuthenticated
     @PostMapping("/cancellation")
     @Operation(summary = "取消面试")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> cancellation
             (@RequestBody @Valid AppRecruitInterviewInviteCancellationReqVO reqVO) {
         service.cancellation(reqVO);

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

@@ -9,6 +9,8 @@ import com.citu.framework.common.util.date.LocalDateTimeUtils;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.common.util.string.StrUtils;
 import com.citu.framework.excel.core.util.ExcelUtils;
+import com.citu.framework.idempotent.core.annotation.Idempotent;
+import com.citu.framework.idempotent.core.keyresolver.impl.UserIdempotentKeyResolver;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.*;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedImportExcelVO;
@@ -126,6 +128,7 @@ public class AppRecruitJobAdvertisedController {
     @PreAuthenticated
     @PostMapping("/save")
     @Operation(summary = "保存职位(发布/编辑)")
+    @Idempotent(timeout = 3, keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Long> save(@RequestBody @Valid AppRecruitJobSaveReqVO pageReqVO) {
         return success(jobAdvertisedService.save(pageReqVO));
     }

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

@@ -3,6 +3,8 @@ package com.citu.module.menduner.system.controller.app.recruit.user;
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.string.StrUtils;
+import com.citu.framework.idempotent.core.annotation.Idempotent;
+import com.citu.framework.idempotent.core.keyresolver.impl.UserIdempotentKeyResolver;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
 import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.system.controller.app.recruit.user.vo.*;
@@ -58,6 +60,7 @@ public class AppRecruitUserController {
     @PreAuthenticated
     @PostMapping("/save")
     @Operation(summary = "保存用户信息")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> save(@Valid @RequestBody AppRecruitUserSaveReqVO reqVO) {
         return success(service.save(reqVO));
     }
@@ -65,6 +68,7 @@ public class AppRecruitUserController {
     @PreAuthenticated
     @PostMapping("/update")
     @Operation(summary = "管理员-修改用户信息")
+    @Idempotent(keyResolver = UserIdempotentKeyResolver.class)
     public CommonResult<Boolean> update(@Valid @RequestBody AppRecruitUserSaveReqVO reqVO) {
         return success(service.update(reqVO));
     }