luodangjia
2024-09-26 3c99ce947f25a2dcbae14e78276df77978d412ca
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java
@@ -25,7 +25,10 @@
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;
@@ -111,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()){
@@ -144,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();
   }