From dd295255a1156a9dc49688afb6b37eda58cd671f Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期四, 26 九月 2024 20:16:38 +0800 Subject: [PATCH] 合併代碼 --- ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java | 36 ++++++++++++++++++++++++++++-------- 1 files changed, 28 insertions(+), 8 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 80097d4..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()){ @@ -140,8 +149,14 @@ user.setRoleType(2); user.setObjectId(partner.getId()); R r = sysUserClient.addSysUser(user); - if(200 != r.getCode()){ - throw new RuntimeException(r.getMsg()); + if(r.getCode() != 200){ + // 手动进行全局事务回滚 + try { + GlobalTransactionContext.getCurrent().rollback(); + } catch (TransactionException e) { + throw new RuntimeException(e); + } + return AjaxResult.error(r.getMsg()); } return AjaxResult.success(); } @@ -331,7 +346,6 @@ Partner partner = this.getById(partnerId); GetPermissionConfigurationDTO dto = new GetPermissionConfigurationDTO(); dto.setPermissionRemarks(partner.getPermissionRemarks()); - Map<String, Object> menu = new HashMap<>(); List<TPartnerSite> list = partnerSiteService.list(new LambdaQueryWrapper<TPartnerSite>() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteId, siteId)); @@ -340,7 +354,9 @@ .eq(TSiteMenu::getParentId, 0) .eq(TSiteMenu::getVisible, 0) .eq(TSiteMenu::getStatus, 0).orderByAsc(TSiteMenu::getOrderNum)); + List<Map<String, Object>> list1 = new ArrayList<>(); for (TSiteMenu tSiteMenu : tSiteMenus) { + Map<String, Object> menu = new HashMap<>(); menu.put("id", tSiteMenu.getMenuId()); menu.put("name", tSiteMenu.getMenuName()); menu.put("path", tSiteMenu.getPath()); @@ -350,18 +366,21 @@ .eq(TSiteMenu::getParentId, tSiteMenu.getMenuId()) .eq(TSiteMenu::getVisible, 0) .eq(TSiteMenu::getStatus, 0).orderByAsc(TSiteMenu::getOrderNum)); - Map<String, Object> child = new HashMap<>(); + List<Map<String, Object>> list2 = new ArrayList<>(); for (TSiteMenu siteMenu : tSiteMenus1) { + Map<String, Object> child = new HashMap<>(); child.put("id", siteMenu.getMenuId()); child.put("name", siteMenu.getMenuName()); child.put("path", siteMenu.getPath()); child.put("type", siteMenu.getMenuType()); child.put("selected", collect.contains(siteMenu.getMenuId())); + list2.add(child); } - menu.put("selected", child.keySet().size() > 0 ? true : false); - menu.put("child", child); + menu.put("selected", list2.size() > 0 ? true : false); + menu.put("child", list2); + list1.add(menu); } - dto.setMenu(menu); + dto.setMenu(list1); return dto; } @@ -409,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