From 6dd8a66b8ec854fb6726dd9ac9686560e4e4cc1d Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期一, 30 九月 2024 08:59:55 +0800 Subject: [PATCH] 修改bug --- ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java | 23 +++++++++++++++++++++-- 1 files changed, 21 insertions(+), 2 deletions(-) diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java index 110ef9c..ae3830e 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java @@ -22,8 +22,13 @@ import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.feignClient.SysRoleClient; import com.ruoyi.system.api.feignClient.SysUserClient; +import com.ruoyi.system.api.feignClient.SysUserRoleClient; import com.ruoyi.system.api.model.GetSysRoleByIds; +import com.ruoyi.system.api.model.SysUserRoleVo; +import io.seata.core.context.RootContext; +import io.seata.core.exception.TransactionException; import io.seata.spring.annotation.GlobalTransactional; +import io.seata.tm.api.GlobalTransactionContext; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -62,6 +67,9 @@ @Resource private RoleSiteClient roleSiteClient; + + @Resource + private SysUserRoleClient userRoleClient; @@ -106,6 +114,7 @@ @Override @GlobalTransactional(rollbackFor = Exception.class)//分布式事务 public AjaxResult addPartner(Partner partner) { + System.err.println("事务ID:" + RootContext.getXID()); //校验参数和重复数据 AjaxResult ajaxResult = addPartnerParameterCheck(partner); if(ajaxResult.isError()){ @@ -139,7 +148,16 @@ user.setRoleId(partner.getRoleId().longValue()); user.setRoleType(2); user.setObjectId(partner.getId()); - sysUserClient.addSysUser(user); + R r = sysUserClient.addSysUser(user); + if(r.getCode() != 200){ + // 手动进行全局事务回滚 + try { + GlobalTransactionContext.getCurrent().rollback(); + } catch (TransactionException e) { + throw new RuntimeException(e); + } + return AjaxResult.error(r.getMsg()); + } return AjaxResult.success(); } @@ -410,7 +428,8 @@ Partner partner = this.getById(partnerId); SysUser sysUser = sysUserClient.queryUserByUserName(partner.getAccount()).getData(); List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData(); - List<Integer> data1 = roleSiteClient.getSiteIds(sysUser.getRoleId()).getData(); + List<SysUserRoleVo> data2 = userRoleClient.getRoleByUserId(sysUser.getUserId()).getData(); + List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData(); collect.addAll(data); collect.addAll(data1); Set<Integer> siteIds = new HashSet<>(collect); -- Gitblit v1.7.1