From 6b2341f24b2f7f10784ad4340fa86c0b224aebcc Mon Sep 17 00:00:00 2001 From: zhibing.pu <393733352@qq.com> Date: 星期三, 07 八月 2024 16:17:56 +0800 Subject: [PATCH] 新增加管理后台合作商接口 --- ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/IPartnerService.java | 62 ++++++++ ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/PartnerMapper.java | 25 +++ ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java | 226 ++++++++++++++++++++++++++++++++ ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java | 89 ++++++++++++ ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/dto/ResetPassword.java | 18 ++ 5 files changed, 420 insertions(+), 0 deletions(-) diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java new file mode 100644 index 0000000..4fac393 --- /dev/null +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java @@ -0,0 +1,89 @@ +package com.ruoyi.chargingPile.controller; + +import com.ruoyi.chargingPile.api.dto.PartnerListDTO; +import com.ruoyi.chargingPile.api.model.Partner; +import com.ruoyi.chargingPile.api.query.GetPartnerList; +import com.ruoyi.chargingPile.dto.ResetPassword; +import com.ruoyi.chargingPile.service.IPartnerService; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.PageInfo; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * @author zhibing.pu + * @Date 2024/8/7 13:49 + */ +@RestController +@RequestMapping("/partner") +public class PartnerController { + + @Resource + private IPartnerService partnerService; + + + + + @ResponseBody + @GetMapping("/getPartnerList") + @ApiOperation(value = "获取合作商列表", tags = {"管理后台-合作商列表"}) + public AjaxResult<PageInfo<PartnerListDTO>> getPartnerList(@RequestBody GetPartnerList partnerList){ + PageInfo<PartnerListDTO> list = partnerService.getPartnerList(partnerList); + return AjaxResult.success(list); + } + + + @ResponseBody + @PostMapping("/addPartner") + @ApiOperation(value = "添加合作商", tags = {"管理后台-合作商列表"}) + public AjaxResult addPartner(@RequestBody Partner partner){ + return partnerService.addPartner(partner); + } + + + + @ResponseBody + @GetMapping("/getPartner/{id}") + @ApiOperation(value = "添加合作商", tags = {"管理后台-合作商列表"}) + @ApiImplicitParams({ + @ApiImplicitParam(value = "合作商id", name = "id", dataTypeClass = Integer.class, required = true) + }) + public AjaxResult<Partner> getPartner(@PathVariable @RequestParam Integer id){ + Partner partner = partnerService.getPartner(id); + return AjaxResult.success(partner); + } + + + + @ResponseBody + @PostMapping("/editPartner") + @ApiOperation(value = "编辑合作商", tags = {"管理后台-合作商列表"}) + public AjaxResult editPartner(@RequestBody Partner partner){ + return partnerService.editPartner(partner); + } + + + + @ResponseBody + @DeleteMapping("/delPartner/{id}") + @ApiOperation(value = "编辑合作商", tags = {"管理后台-合作商列表"}) + @ApiImplicitParams({ + @ApiImplicitParam(value = "合作商id", name = "id", dataTypeClass = Integer.class, required = true) + }) + public AjaxResult delPartner(@PathVariable @RequestParam Integer id){ + partnerService.delPartner(id); + return AjaxResult.success(); + } + + + @ResponseBody + @PostMapping("/resetPassword") + @ApiOperation(value = "合作商重置密码", tags = {"管理后台-合作商列表"}) + public AjaxResult resetPassword(@RequestBody ResetPassword resetPassword){ + return partnerService.resetPassword(resetPassword); + } +} diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/dto/ResetPassword.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/dto/ResetPassword.java new file mode 100644 index 0000000..ca434c9 --- /dev/null +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/dto/ResetPassword.java @@ -0,0 +1,18 @@ +package com.ruoyi.chargingPile.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2024/8/7 15:56 + */ +@Data +@ApiModel +public class ResetPassword { + @ApiModelProperty(value = "合作商id", required = true) + private Integer id; + @ApiModelProperty(value = "新密码", required = true) + private String password; +} diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/PartnerMapper.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/PartnerMapper.java new file mode 100644 index 0000000..c5bd072 --- /dev/null +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/PartnerMapper.java @@ -0,0 +1,25 @@ +package com.ruoyi.chargingPile.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.chargingPile.api.dto.PartnerListDTO; +import com.ruoyi.chargingPile.api.model.Partner; +import com.ruoyi.chargingPile.api.query.GetPartnerList; +import com.ruoyi.common.core.web.page.PageInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author zhibing.pu + * @Date 2024/8/7 13:44 + */ +public interface PartnerMapper extends BaseMapper<Partner> { + + /** + * 获取合作商列表 + * @param pageInfo + * @param partnerList + * @return + */ + List<PartnerListDTO> getPartnerList(PageInfo<PartnerListDTO> pageInfo, @Param("item") GetPartnerList partnerList); +} diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/IPartnerService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/IPartnerService.java new file mode 100644 index 0000000..cafec26 --- /dev/null +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/IPartnerService.java @@ -0,0 +1,62 @@ +package com.ruoyi.chargingPile.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.chargingPile.api.dto.PartnerListDTO; +import com.ruoyi.chargingPile.api.model.Partner; +import com.ruoyi.chargingPile.api.query.GetPartnerList; +import com.ruoyi.chargingPile.dto.ResetPassword; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.PageInfo; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * @author zhibing.pu + * @Date 2024/8/7 13:48 + */ +public interface IPartnerService extends IService<Partner> { + + + /** + * 获取合作商列表数据 + * @param partnerList + * @return + */ + PageInfo<PartnerListDTO> getPartnerList(GetPartnerList partnerList); + + + /** + * 添加合作商 + * @param partner + * @return + */ + AjaxResult addPartner(Partner partner); + + + /** + * 获取合作商详情 + * @param id 合作商id + * @return + */ + Partner getPartner(Integer id); + + /** + * 编辑合作商数据 + * @param partner + * @return + */ + AjaxResult editPartner(Partner partner); + + /** + * 删除合作商 + * @param id + */ + void delPartner(Integer id); + + /** + * 重置密码 + * @param resetPassword + */ + AjaxResult resetPassword(ResetPassword resetPassword); +} 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 new file mode 100644 index 0000000..be37d3e --- /dev/null +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java @@ -0,0 +1,226 @@ +package com.ruoyi.chargingPile.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.query.GetPartnerList; +import com.ruoyi.chargingPile.dto.ResetPassword; +import com.ruoyi.chargingPile.mapper.PartnerMapper; +import com.ruoyi.chargingPile.service.IPartnerService; +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.feignClient.SysRoleClient; +import com.ruoyi.system.api.model.GetSysRoleByIds; +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; + +/** + * @author zhibing.pu + * @Date 2024/8/7 13:49 + */ +@Service +public class PartnerServiceImpl extends ServiceImpl<PartnerMapper, Partner> implements IPartnerService { + + @Resource + private SysRoleClient sysRoleClient; + + + + /** + * 获取合作商列表数据 + * @param partnerList + * @return + */ + @Override + public PageInfo<PartnerListDTO> getPartnerList(GetPartnerList partnerList) { + PageInfo<PartnerListDTO> pageInfo = new PageInfo(partnerList.getPageCurr(), partnerList.getPageSize()); + List<PartnerListDTO> list = this.baseMapper.getPartnerList(pageInfo, partnerList); + List<Integer> roleIds = list.stream().map(PartnerListDTO::getRoleId).collect(Collectors.toList()); + GetSysRoleByIds ids = new GetSysRoleByIds(); + ids.setIds(roleIds); + //获取相关的角色id + R<List<SysRole>> r = sysRoleClient.getSysRoleByIds(ids); + if(r.getCode() != 200){ + throw new RuntimeException(r.getMsg()); + } + List<SysRole> data = r.getData(); + for (PartnerListDTO partnerListDTO : list) { + Integer roleId = partnerListDTO.getRoleId(); + if(null != roleId){ + continue; + } + SysRole sysRole = data.stream().filter(s -> roleId.equals(s.getRoleId())).findFirst().get(); + if(null != sysRole){ + partnerListDTO.setRoleName(sysRole.getRoleName()); + } + } + pageInfo.setRecords(list); + return pageInfo; + } + + + /** + * 添加合作商 + * @param partner + * @return + */ + @Override + public AjaxResult addPartner(Partner partner) { + //校验参数和重复数据 + AjaxResult ajaxResult = addPartnerParameterCheck(partner); + if(ajaxResult.isError()){ + return ajaxResult; + } + Partner one = this.getOne(new LambdaQueryWrapper<Partner>() + .eq(Partner::getCode, partner.getCode()) + .eq(Partner::getDelFlag, 0) + ); + if(null != one){ + return AjaxResult.error("合作商ID已存在"); + } + one = this.getOne(new LambdaQueryWrapper<Partner>() + .eq(Partner::getAccount, partner.getAccount()) + .eq(Partner::getDelFlag, 0) + ); + if(null != one){ + return AjaxResult.error("登录账号不能重复"); + } + //添加新数据 + this.save(partner); + //添加登录账户 + + return AjaxResult.success(); + } + + + /** + * 校验参数是否为空 + * @param partner + * @return + */ + AjaxResult addPartnerParameterCheck(Partner partner){ + if(StringUtils.isEmpty(partner.getCode())){ + return AjaxResult.error("合作商ID不能为空"); + } + if(StringUtils.isEmpty(partner.getName())){ + return AjaxResult.error("合作商名称不能为空"); + } + if(null == partner.getRoleId()){ + return AjaxResult.error("合作商角色不能为空"); + } + if(StringUtils.isEmpty(partner.getPhoneOne())){ + return AjaxResult.error("合作商电话1不能为空"); + } + if(StringUtils.isEmpty(partner.getAccount())){ + return AjaxResult.error("登录账号不能为空"); + } + if(StringUtils.isEmpty(partner.getPassword())){ + return AjaxResult.error("登录密码不能为空"); + } + return AjaxResult.success(); + } + + + /** + * 获取合作商详情 + * @param id 合作商id + * @return + */ + @Override + public Partner getPartner(Integer id) { + Partner partner = this.getById(id); + GetSysRoleByIds ids = new GetSysRoleByIds(); + ids.setIds(Arrays.asList(partner.getRoleId())); + //获取相关的角色id + R<List<SysRole>> r = sysRoleClient.getSysRoleByIds(ids); + if(r.getCode() != 200){ + throw new RuntimeException(r.getMsg()); + } + List<SysRole> data = r.getData(); + if(data.size() > 0){ + partner.setRoleName(data.get(0).getRoleName()); + } + return partner; + } + + + /** + * 编辑合作商 + * @param partner + * @return + */ + @Override + public AjaxResult editPartner(Partner partner) { + //校验参数和重复数据 + AjaxResult ajaxResult = addPartnerParameterCheck(partner); + if(ajaxResult.isError()){ + return ajaxResult; + } + Partner one = this.getOne(new LambdaQueryWrapper<Partner>() + .eq(Partner::getCode, partner.getCode()) + .eq(Partner::getDelFlag, 0) + ); + if(null != one && !one.getId().equals(partner.getId())){ + return AjaxResult.error("合作商ID已存在"); + } + one = this.getOne(new LambdaQueryWrapper<Partner>() + .eq(Partner::getAccount, partner.getAccount()) + .eq(Partner::getDelFlag, 0) + ); + if(null != one && !one.getId().equals(partner.getId())){ + return AjaxResult.error("登录账号不能重复"); + } + //修改数据 + this.updateById(partner); + //修改登录账户 + + return AjaxResult.success(); + } + + + /** + * 删除合作商 + * @param id 合作商id + */ + @Override + public void delPartner(Integer id) { + //查询有无关联数据 + //站点 + + //充电桩 + + Partner partner = this.getById(id); + partner.setDelFlag(true); + this.updateById(partner); + } + + + /** + * 重置密码 + * @param resetPassword + */ + @Override + public AjaxResult resetPassword(ResetPassword resetPassword) { + if(null == resetPassword.getId()){ + return AjaxResult.error("合作商id不能为空"); + } + if(StringUtils.isEmpty(resetPassword.getPassword())){ + return AjaxResult.error("密码不能为空"); + } + Partner partner = this.getById(resetPassword.getId()); + partner.setPassword(resetPassword.getPassword()); + this.updateById(partner); + //修改登录账号的密码 + + return AjaxResult.success(); + } +} -- Gitblit v1.7.1