From 6b79e22056bcc2c14d3e20802174b89bc2a0a204 Mon Sep 17 00:00:00 2001 From: zhibing.pu <393733352@qq.com> Date: 星期五, 09 八月 2024 10:12:44 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java | 90 ++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 84 insertions(+), 6 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 be37d3e..4b0e2ca 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 @@ -4,23 +4,28 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.chargingPile.api.dto.PartnerListDTO; import com.ruoyi.chargingPile.api.model.Partner; +import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.query.GetPartnerList; import com.ruoyi.chargingPile.dto.ResetPassword; import com.ruoyi.chargingPile.mapper.PartnerMapper; import com.ruoyi.chargingPile.service.IPartnerService; +import com.ruoyi.chargingPile.service.ISiteService; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; 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.model.GetSysRoleByIds; +import io.seata.spring.annotation.GlobalTransactional; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Arrays; import java.util.List; -import java.util.Optional; import java.util.stream.Collectors; /** @@ -32,6 +37,12 @@ @Resource private SysRoleClient sysRoleClient; + + @Resource + private SysUserClient sysUserClient; + + @Resource + private ISiteService siteService; @@ -74,6 +85,7 @@ * @return */ @Override + @GlobalTransactional//分布式事务 public AjaxResult addPartner(Partner partner) { //校验参数和重复数据 AjaxResult ajaxResult = addPartnerParameterCheck(partner); @@ -97,7 +109,22 @@ //添加新数据 this.save(partner); //添加登录账户 - + SysUser user = new SysUser(); + user.setAccount(partner.getAccount()); + user.setPhonenumber(partner.getPhoneOne()); + user.setUserName(partner.getName()); + user.setNickName(partner.getName()); + user.setAvatar(partner.getLogoUrl()); + user.setPassword(partner.getPassword()); + user.setStatus("0"); + user.setDelFlag("0"); + user.setRoleId(partner.getRoleId().longValue()); + user.setRoleType(2); + user.setObjectId(partner.getId()); + R r = sysUserClient.addSysUser(user); + if(200 != r.getCode()){ + throw new RuntimeException(r.getMsg()); + } return AjaxResult.success(); } @@ -138,6 +165,9 @@ @Override public Partner getPartner(Integer id) { Partner partner = this.getById(id); + if(null == partner){ + return partner; + } GetSysRoleByIds ids = new GetSysRoleByIds(); ids.setIds(Arrays.asList(partner.getRoleId())); //获取相关的角色id @@ -159,6 +189,7 @@ * @return */ @Override + @GlobalTransactional//分布式事务 public AjaxResult editPartner(Partner partner) { //校验参数和重复数据 AjaxResult ajaxResult = addPartnerParameterCheck(partner); @@ -179,10 +210,42 @@ if(null != one && !one.getId().equals(partner.getId())){ return AjaxResult.error("登录账号不能重复"); } + Partner oldPartner = this.getById(partner.getId()); + SysUser user = sysUserClient.queryUserByAccount(oldPartner.getAccount()).getData(); + //修改数据 this.updateById(partner); //修改登录账户 - + if(null == user){ + user = new SysUser(); + user.setStatus("0"); + user.setDelFlag("0"); + user.setAccount(partner.getAccount()); + user.setPhonenumber(partner.getPhoneOne()); + user.setUserName(partner.getName()); + user.setNickName(partner.getName()); + user.setAvatar(partner.getLogoUrl()); + user.setPassword(partner.getPassword()); + user.setRoleId(partner.getRoleId().longValue()); + user.setRoleType(2); + user.setObjectId(partner.getId()); + R r = sysUserClient.addSysUser(user); + if(200 != r.getCode()){ + throw new RuntimeException(r.getMsg()); + } + }else{ + user.setAccount(partner.getAccount()); + user.setPhonenumber(partner.getPhoneOne()); + user.setUserName(partner.getName()); + user.setNickName(partner.getName()); + user.setAvatar(partner.getLogoUrl()); + user.setPassword(partner.getPassword()); + user.setRoleId(partner.getRoleId().longValue()); + R r = sysUserClient.updateSysUser(user); + if(200 != r.getCode()){ + throw new RuntimeException(r.getMsg()); + } + } return AjaxResult.success(); } @@ -192,15 +255,27 @@ * @param id 合作商id */ @Override - public void delPartner(Integer id) { + @GlobalTransactional//分布式事务 + public AjaxResult delPartner(Integer id) { //查询有无关联数据 //站点 - + long count = siteService.count(new LambdaQueryWrapper<Site>().eq(Site::getPartnerId, id).eq(Site::getDelFlag, 0)); + if(count > 0){ + return AjaxResult.error("当前合作商有关联得站点,删除失败!"); + } + // todo 代码完善 //充电桩 Partner partner = this.getById(id); + if(null == partner){ + return AjaxResult.error("删除失败"); + } partner.setDelFlag(true); this.updateById(partner); + SysUser user = sysUserClient.queryUserByAccount(partner.getAccount()).getData(); + user.setDelFlag("2"); + sysUserClient.updateUser(user); + return AjaxResult.success(); } @@ -209,6 +284,7 @@ * @param resetPassword */ @Override + @GlobalTransactional//分布式事务 public AjaxResult resetPassword(ResetPassword resetPassword) { if(null == resetPassword.getId()){ return AjaxResult.error("合作商id不能为空"); @@ -220,7 +296,9 @@ partner.setPassword(resetPassword.getPassword()); this.updateById(partner); //修改登录账号的密码 - + SysUser user = sysUserClient.queryUserByAccount(partner.getAccount()).getData(); + user.setPassword(partner.getPassword()); + sysUserClient.resetPassword(user); return AjaxResult.success(); } } -- Gitblit v1.7.1