From e0fc8f7e2230b51e3bbe8dea43790cf11b7170e9 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期一, 04 十一月 2024 15:39:01 +0800 Subject: [PATCH] merge --- ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java | 105 +++++++++++++++++++++++++++++++++++----------------- 1 files changed, 70 insertions(+), 35 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 e89e9e0..ea74c61 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 @@ -16,12 +16,20 @@ import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.other.api.feignClient.RoleSiteClient; +import com.ruoyi.other.api.feignClient.UserSiteClient; import com.ruoyi.system.api.domain.SysRole; 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.GlobalTransaction; +import io.seata.tm.api.GlobalTransactionContext; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -55,6 +63,15 @@ @Resource private TChargingPileService chargingPileService; + @Resource + private UserSiteClient userSiteClient; + + @Resource + private RoleSiteClient roleSiteClient; + + @Resource + private SysUserRoleClient userRoleClient; + /** @@ -77,10 +94,10 @@ List<SysRole> data = r.getData(); for (PartnerListDTO partnerListDTO : list) { Integer roleId = partnerListDTO.getRoleId(); - if(null != roleId){ + if(null == roleId){ continue; } - SysRole sysRole = data.stream().filter(s -> roleId.equals(s.getRoleId())).findFirst().get(); + SysRole sysRole = data.stream().filter(s -> roleId.compareTo(s.getRoleId().intValue()) == 0).findFirst().get(); if(null != sysRole){ partnerListDTO.setRoleName(sysRole.getRoleName()); } @@ -117,8 +134,6 @@ if(null != one){ return AjaxResult.error("登录账号不能重复"); } - //添加新数据 - this.save(partner); //添加登录账户 SysUser user = new SysUser(); user.setPhonenumber(partner.getPhoneOne()); @@ -130,11 +145,15 @@ user.setDelFlag("0"); user.setRoleId(partner.getRoleId().longValue()); user.setRoleType(2); - user.setObjectId(partner.getId()); - R r = sysUserClient.addSysUser(user); + R<Long> r = sysUserClient.addSysUser(user); if(200 != r.getCode()){ throw new RuntimeException(r.getMsg()); } + //添加新数据 + this.save(partner); + user = sysUserClient.getSysUser(r.getData()).getData(); + user.setObjectId(partner.getId()); + sysUserClient.updateUser(user); return AjaxResult.success(); } @@ -157,10 +176,10 @@ if(StringUtils.isEmpty(partner.getPhoneOne())){ return AjaxResult.error("合作商电话1不能为空"); } - if(StringUtils.isEmpty(partner.getAccount())){ + if(null == partner.getId() && StringUtils.isEmpty(partner.getAccount())){ return AjaxResult.error("登录账号不能为空"); } - if(StringUtils.isEmpty(partner.getPassword())){ + if(null == partner.getId() && StringUtils.isEmpty(partner.getPassword())){ return AjaxResult.error("登录密码不能为空"); } return AjaxResult.success(); @@ -222,9 +241,6 @@ } Partner oldPartner = this.getById(partner.getId()); SysUser user = sysUserClient.queryUserByUserName(oldPartner.getAccount()).getData(); - - //修改数据 - this.updateById(partner); //修改登录账户 if(null == user){ user = new SysUser(); @@ -254,38 +270,41 @@ throw new RuntimeException(r.getMsg()); } } + + //修改数据 + this.updateById(partner); return AjaxResult.success(); } /** * 删除合作商 - * @param id 合作商id + * @param ids 合作商id */ @Override @GlobalTransactional(rollbackFor = Exception.class)//分布式事务 - public AjaxResult delPartner(Integer id) { + public AjaxResult delPartner(List<Integer> ids) { //查询有无关联数据 //站点 - long count = siteService.count(new LambdaQueryWrapper<Site>().eq(Site::getPartnerId, id).eq(Site::getDelFlag, 0)); + long count = siteService.count(new LambdaQueryWrapper<Site>().in(Site::getPartnerId, ids).eq(Site::getDelFlag, 0)); if(count > 0){ - return AjaxResult.error("当前合作商有关联站点,删除失败!"); + return AjaxResult.error("该合作商已关联站点不可删除"); } //充电桩 - long count1 = chargingPileService.count(new LambdaQueryWrapper<TChargingPile>().eq(TChargingPile::getPartnerId, id).eq(TChargingPile::getDelFlag, 0)); + long count1 = chargingPileService.count(new LambdaQueryWrapper<TChargingPile>().in(TChargingPile::getPartnerId, ids).eq(TChargingPile::getDelFlag, 0)); if(count1 > 0){ - return AjaxResult.error("当前合作商有关联充电桩,删除失败!"); + return AjaxResult.error("该合作商已关联充电桩不可删除!"); } - - Partner partner = this.getById(id); - if(null == partner){ - return AjaxResult.error("删除失败"); + for (Integer id : ids) { + Partner partner = this.getById(id); + if(null == partner){ + return AjaxResult.error("删除失败"); + } + this.removeById(id); + SysUser user = sysUserClient.queryUserByUserName(partner.getAccount()).getData(); + user.setDelFlag("2"); + sysUserClient.updateUser(user); } - partner.setDelFlag(true); - this.updateById(partner); - SysUser user = sysUserClient.queryUserByUserName(partner.getAccount()).getData(); - user.setDelFlag("2"); - sysUserClient.updateUser(user); return AjaxResult.success(); } @@ -321,9 +340,11 @@ @Override public GetPermissionConfigurationDTO getPermissionConfiguration(Integer siteId, Integer partnerId) { Partner partner = this.getById(partnerId); + if(null == partner){ + throw new RuntimeException("该站点合作商无效"); + } 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)); @@ -332,7 +353,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()); @@ -342,18 +365,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", collect.contains(tSiteMenu.getMenuId())); + menu.put("child", list2); + list1.add(menu); } - dto.setMenu(menu); + dto.setMenu(list1); return dto; } @@ -391,16 +417,25 @@ * @return */ @Override - public List<Integer> authSite(Integer partnerId, SiteMenu siteMenu) { + public Set<Integer> authSite(Integer partnerId, SiteMenu siteMenu) { TSiteMenu one = siteMenuService.getOne(new LambdaQueryWrapper<TSiteMenu>().eq(TSiteMenu::getPath, siteMenu.getValue()).eq(TSiteMenu::getStatus, 0)); List<TPartnerSite> list = partnerSiteService.list(new LambdaQueryWrapper<TPartnerSite>() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, one.getMenuId())); List<Integer> collect = list.stream().map(TPartnerSite::getSiteId).collect(Collectors.toList()); - if(collect.size() == 0){ - collect.add(-1); + //获取合作商用户关联的站点数据 + Partner partner = this.getById(partnerId); + SysUser sysUser = sysUserClient.queryUserByUserName(partner.getAccount()).getData(); + List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).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); + if(siteIds.size() == 0){ + siteIds.add(-1); } - return collect; + return siteIds; } -- Gitblit v1.7.1