From 36c3555832286dde85835541c6d7fca982bdf83f Mon Sep 17 00:00:00 2001 From: hokli <2629910752@qq.com> Date: Tue, 10 Jun 2025 11:39:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E5=AE=A1=E6=A0=B8=E5=8A=A0?= =?UTF-8?q?=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/guild/GuildApplyAdminService.java | 83 +++++++++++-------- .../guild/GuildApplyAdminController.java | 2 +- 2 files changed, 49 insertions(+), 36 deletions(-) diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/guild/GuildApplyAdminService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/guild/GuildApplyAdminService.java index a7ac61ef1..4438a7c40 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/guild/GuildApplyAdminService.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/guild/GuildApplyAdminService.java @@ -5,10 +5,12 @@ import com.accompany.admin.model.AdminUser; import com.accompany.admin.service.system.AdminUserService; import com.accompany.admin.vo.guild.GuildApplyAuditVo; import com.accompany.business.model.give.GiveUser; +import com.accompany.business.model.guild.Guild; import com.accompany.business.model.guild.GuildApply; import com.accompany.business.service.BaseSendService; import com.accompany.business.service.give.GiveUserService; import com.accompany.business.service.guild.GuildApplyService; +import com.accompany.business.service.guild.GuildService; import com.accompany.business.service.user.UsersService; import com.accompany.common.constant.Constant; import com.accompany.common.redis.RedisKey; @@ -54,6 +56,8 @@ public class GuildApplyAdminService { private RedissonClient redissonClient; @Autowired private GiveUserService giveUserService; + @Autowired + private GuildService guildService; public void existNotAuditByApplyUidCheck4Admin(Long applyUid, String erbanNo) { GuildApply existNotAuditByApplyUid = guildApplyService.getExistNotAuditByApplyUid(applyUid); @@ -155,16 +159,7 @@ public class GuildApplyAdminService { return BusiResult.success(pageResult); } - @Transactional(rollbackFor = Exception.class) - public BusiResult audit(Integer id, Byte auditStatus, Integer admindId){ - GuildApply applyServiceById = guildApplyService.getById(id); - if (applyServiceById == null) { - throw new AdminServiceException("记录不存在"); - } - if (!Constant.CommonAuditStatus.wait.equals(applyServiceById.getAuditStatus())) { - throw new AdminServiceException("已操作,请重新刷新页面"); - } - + public BusiResult auditOpt(Integer id, Byte auditStatus, Integer admindId) { String lockKey = RedisKey.guild_apply_audit.getKey(id.toString()); RLock lock = redissonClient.getLock(lockKey); try { @@ -172,39 +167,57 @@ public class GuildApplyAdminService { if (!lock.isLocked()) { throw new AdminServiceException(BusiStatus.SERVERBUSY); } - Users users = usersService.getUsersByUid(applyServiceById.getApplyUid()); - if (Constant.CommonAuditStatus.reject.equals(auditStatus)) { - applyServiceById.setAuditStatus(Constant.CommonAuditStatus.reject); - applyServiceById.setApplyTime(new Date()); - applyServiceById.setAdminId(admindId); - boolean b = guildApplyService.updateById(applyServiceById); - if (b) { - String rejectSys = I18NMessageSourceUtil.getMessage(I18nAlertEnum.GUILD_APPLY_REJECT, users.getPartitionId()); - baseSendService.sendSystemMsg(users.getUid().toString(), rejectSys); - } - return BusiResult.success(); - } else if (Constant.CommonAuditStatus.pass.equals(auditStatus)) { - applyServiceById.setAuditStatus(Constant.CommonAuditStatus.pass); - applyServiceById.setApplyTime(new Date()); - applyServiceById.setAdminId(admindId); - boolean b = guildApplyService.updateById(applyServiceById); - if (b) { - Integer guildId = guildManageAdminService.addGuildInfo(users, applyServiceById.getApplyTime(), admindId, null, null, applyServiceById.getInviteUid(), applyServiceById); - applyServiceById.setGuildId(guildId); - guildApplyService.updateById(applyServiceById); - String rejectSys = I18NMessageSourceUtil.getMessage(I18nAlertEnum.GUILD_APPLY_PASS, users.getPartitionId()); - baseSendService.sendSystemMsg(users.getUid().toString(), rejectSys); - } - return BusiResult.success(); + GuildApply applyServiceById = guildApplyService.getById(id); + if (applyServiceById == null) { + throw new AdminServiceException("记录不存在"); } + if (!Constant.CommonAuditStatus.wait.equals(applyServiceById.getAuditStatus())) { + throw new AdminServiceException("已操作,请重新刷新页面"); + } + Guild vaildGuildByOwnerUid = guildService.getVaildGuildByOwnerUid(applyServiceById.getApplyUid()); + if (vaildGuildByOwnerUid != null) { + throw new AdminServiceException("已操作,请重新刷新页面(公会存在)"); + } + this.audit(auditStatus, admindId, applyServiceById); } catch (InterruptedException e) { - log.error("GuildApplyAdminService.audit={},e={}", JSONObject.toJSONString(applyServiceById), e.getMessage(),e); + log.error("GuildApplyAdminService.id={},e={}", id, e.getMessage(),e); throw new AdminServiceException(e.getMessage()); } finally { if (lock.isLocked()) { lock.unlock(); } } + return BusiResult.success(); + } + + @Transactional(rollbackFor = Exception.class) + public BusiResult audit(Byte auditStatus, Integer admindId, GuildApply applyServiceById){ + + Users users = usersService.getUsersByUid(applyServiceById.getApplyUid()); + if (Constant.CommonAuditStatus.reject.equals(auditStatus)) { + applyServiceById.setAuditStatus(Constant.CommonAuditStatus.reject); + applyServiceById.setApplyTime(new Date()); + applyServiceById.setAdminId(admindId); + boolean b = guildApplyService.updateById(applyServiceById); + if (b) { + String rejectSys = I18NMessageSourceUtil.getMessage(I18nAlertEnum.GUILD_APPLY_REJECT, users.getPartitionId()); + baseSendService.sendSystemMsg(users.getUid().toString(), rejectSys); + } + return BusiResult.success(); + } else if (Constant.CommonAuditStatus.pass.equals(auditStatus)) { + applyServiceById.setAuditStatus(Constant.CommonAuditStatus.pass); + applyServiceById.setApplyTime(new Date()); + applyServiceById.setAdminId(admindId); + boolean b = guildApplyService.updateById(applyServiceById); + if (b) { + Integer guildId = guildManageAdminService.addGuildInfo(users, applyServiceById.getApplyTime(), admindId, null, null, applyServiceById.getInviteUid(), applyServiceById); + applyServiceById.setGuildId(guildId); + guildApplyService.updateById(applyServiceById); + String rejectSys = I18NMessageSourceUtil.getMessage(I18nAlertEnum.GUILD_APPLY_PASS, users.getPartitionId()); + baseSendService.sendSystemMsg(users.getUid().toString(), rejectSys); + } + return BusiResult.success(); + } return BusiResult.fail("审核失败"); } } diff --git a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/guild/GuildApplyAdminController.java b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/guild/GuildApplyAdminController.java index f69c8f498..215e76be6 100644 --- a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/guild/GuildApplyAdminController.java +++ b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/guild/GuildApplyAdminController.java @@ -41,6 +41,6 @@ public class GuildApplyAdminController extends BaseController { @ApiOperation(value = "审核", httpMethod = "POST") @PostMapping("/audit") public BusiResult audit(Integer id, Byte auditStatus) { - return guildApplyAdminService.audit(id, auditStatus, getAdminId()); + return guildApplyAdminService.auditOpt(id, auditStatus, getAdminId()); } }