From a2620230c68cf6e8c732311b65aa4912efb350a4 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 22 八月 2024 15:31:26 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java | 42 + ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/SiteFallbackFactory.java | 5 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java | 12 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserService.java | 6 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java | 2 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java | 512 +++++++++++------------ ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 1 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java | 12 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java | 11 ruoyi-service/ruoyi-chargingPile/src/main/resources/template/充电桩申请记录.xlsx | 0 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/ali/pojo/AppletUserLogin.java | 22 + ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java | 7 ruoyi-auth/pom.xml | 7 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AliLoginController.java | 27 ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java | 131 ++--- ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml | 18 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java | 32 - ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TGoods.java | 4 ruoyi-service/ruoyi-other/pom.xml | 4 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/ali/tools/AliAppletTools.java | 63 ++ ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java | 2 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserRoleController.java | 137 +++--- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserRoleServiceImpl.java | 147 +++--- ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java | 7 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TRoleSiteController.java | 15 25 files changed, 679 insertions(+), 547 deletions(-) diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/SiteFallbackFactory.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/SiteFallbackFactory.java index 106e23b..ed6ce4b 100644 --- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/SiteFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/SiteFallbackFactory.java @@ -29,6 +29,11 @@ public R<List<Site>> getSiteByIds(List<Integer> ids) { return R.fail("根据id集合获取站点数据调用失败:" + throwable.getMessage()); } + + @Override + public R<List<Site>> getSiteAll() { + return R.fail("获取所有站点调用失败:" + throwable.getMessage()); + } }; } } diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java index ecedc5b..2412cf2 100644 --- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java +++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java @@ -24,4 +24,11 @@ */ @PostMapping("/site/getSiteByIds") R<List<Site>> getSiteByIds(@RequestBody List<Integer> ids); + + /** + * 获取所有站点 + * @return + */ + @PostMapping("/site/getSiteAll") + R<List<Site>> getSiteAll(); } diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TGoods.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TGoods.java index 43fa2a1..84e3633 100644 --- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TGoods.java +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TGoods.java @@ -84,8 +84,8 @@ private Integer underlyingSales; @ApiModelProperty(value = "商品描述") - @TableField("describe") - private String describe; + @TableField("describes") + private String describes; @ApiModelProperty(value = "商品介绍") @TableField("introduce") diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java index 0bbb062..6ec6741 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java @@ -127,6 +127,10 @@ @ApiModelProperty(value = "备注") private String remark; + @ApiModelProperty(value = "禁用账户备注") + @TableField("forbidden_remark") + private String forbiddenRemark; + @ApiModelProperty(value = "充电站") @TableField(exist = false) private List<String> siteNames; @@ -407,6 +411,14 @@ this.roleNames = roleNames; } + public String getForbiddenRemark() { + return forbiddenRemark; + } + + public void setForbiddenRemark(String forbiddenRemark) { + this.forbiddenRemark = forbiddenRemark; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java index dc862b5..9a8a1f6 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java @@ -27,7 +27,7 @@ @Override public R<Boolean> updateSysUser(SysUser sysUser) { - return R.fail("更新用户失败:" + cause.getMessage()); + throw new RuntimeException("更新用户失败:" + cause.getMessage()); } @Override diff --git a/ruoyi-auth/pom.xml b/ruoyi-auth/pom.xml index df1fa2a..17035c7 100644 --- a/ruoyi-auth/pom.xml +++ b/ruoyi-auth/pom.xml @@ -38,7 +38,12 @@ <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> - + + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-common-seata</artifactId> + </dependency> + <!-- SpringBoot Web --> <dependency> <groupId>org.springframework.boot</groupId> diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java index 91f7ab4..77abd3e 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java @@ -6,6 +6,7 @@ import com.ruoyi.system.api.domain.SysRole; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.feignClient.SysUserClient; +import io.seata.spring.annotation.GlobalTransactional; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -24,82 +25,74 @@ /** * token 控制 - * + * * @author ruoyi */ @Slf4j @RestController -public class TokenController -{ - @Autowired - private TokenService tokenService; - - @Autowired - private SysLoginService sysLoginService; - @Resource - private SysUserClient userClient; - - - - - - - @PostMapping("login") - public R<?> login(@RequestBody LoginBody form, HttpServletRequest request) { - // 用户登录 - LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword(), request); - HashMap<String, Object> map = new HashMap<>(); - map.put("token",tokenService.createToken(userInfo)); - List<SysRole> roles = userInfo.getSysUser().getRoles(); +public class TokenController { + @Autowired + private TokenService tokenService; + + @Autowired + private SysLoginService sysLoginService; + @Resource + private SysUserClient userClient; + + + @PostMapping("login") + @GlobalTransactional(rollbackFor = Exception.class)//分布式事务 + public R<?> login(@RequestBody LoginBody form, HttpServletRequest request) { + // 用户登录 + LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword(), request); + HashMap<String, Object> map = new HashMap<>(); + map.put("token", tokenService.createToken(userInfo)); + List<SysRole> roles = userInfo.getSysUser().getRoles(); // if(CollectionUtils.isEmpty(roles)){ // return R.fail("请关联角色!"); // } // map.put("roleName",roles.get(0).getRoleName()); - map.put("info",userInfo); - // 修改用户最后登录时间 - SysUser sysUser = new SysUser(); - sysUser.setUserId(userInfo.getSysUser().getUserId()); - sysUser.setLoginDate(new Date()); - System.out.println("修改用户登录时间"+sysUser); - userClient.updateSysUser(sysUser); - return R.ok(map); - } - - @DeleteMapping("logout") - public R<?> logout(HttpServletRequest request) { - String token = SecurityUtils.getToken(request); - if (StringUtils.isNotEmpty(token)) - { - String username = JwtUtils.getUserName(token); - // 删除用户缓存记录 - AuthUtil.logoutByToken(token); - // 记录用户退出日志 - sysLoginService.logout(username, request); - } - return R.ok(); - } - - - @PostMapping("refresh") - public R<?> refresh(HttpServletRequest request) - { - LoginUser loginUser = tokenService.getLoginUser(request); - if (StringUtils.isNotNull(loginUser)) - { - // 刷新令牌有效期 - tokenService.refreshToken(loginUser); - return R.ok(); - } - return R.ok(); - } - - @PostMapping("register") - public R<?> register(@RequestBody RegisterBody registerBody, HttpServletRequest request) - { - // 用户注册 - sysLoginService.register(registerBody.getUsername(), registerBody.getPassword(), request); - return R.ok(); - } - + map.put("info", userInfo); + // 修改用户最后登录时间 + SysUser sysUser = new SysUser(); + sysUser.setUserId(userInfo.getSysUser().getUserId()); + sysUser.setLoginDate(new Date()); + System.out.println("修改用户登录时间" + sysUser); + userClient.updateSysUser(sysUser); + return R.ok(map); + } + + @DeleteMapping("logout") + public R<?> logout(HttpServletRequest request) { + String token = SecurityUtils.getToken(request); + if (StringUtils.isNotEmpty(token)) { + String username = JwtUtils.getUserName(token); + // 删除用户缓存记录 + AuthUtil.logoutByToken(token); + // 记录用户退出日志 + sysLoginService.logout(username, request); + } + return R.ok(); + } + + + @PostMapping("refresh") + public R<?> refresh(HttpServletRequest request) { + LoginUser loginUser = tokenService.getLoginUser(request); + if (StringUtils.isNotNull(loginUser)) { + // 刷新令牌有效期 + tokenService.refreshToken(loginUser); + return R.ok(); + } + return R.ok(); + } + + @PostMapping("register") + public R<?> register(@RequestBody RegisterBody registerBody, HttpServletRequest request) { + // 用户注册 + sysLoginService.register(registerBody.getUsername(), registerBody.getPassword(), request); + return R.ok(); + } + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java index 7b05f57..23f0b74 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java @@ -54,271 +54,259 @@ /** * 角色信息 - * + * * @author ruoyi */ @RestController @RequestMapping("/role") @Api(tags = "角色模块") -public class SysRoleController extends BaseController -{ - @Resource - private ISysRoleService roleService; - - @Resource - private ISysUserService userService; - - @Resource - private ISysDeptService deptService; - - @Resource - private SysRoleMenuMapper sysRoleMenuMapper; - - @Resource - private ISysUserRoleService sysUserRoleService; - - @Resource - private SysMenuMapper menuMapper; - - @Resource - private RoleSiteClient roleSiteClient; - - @Resource - private SiteClient siteClient; - - - - - @ApiOperation(value = "获取角色列表", tags = {"管理后台-系统用户管理"}) - @GetMapping("/list") - public AjaxResult list() { - List<SysRole> list = roleService.list(new LambdaQueryWrapper<SysRole>().eq(SysRole::getDelFlag, 0).eq(SysRole::getStatus, 0)); - return AjaxResult.success(list); - } - - - - @ResponseBody - @GetMapping("/listPage") - @ApiOperation(value = "获取角色列表", tags = {"管理后台-角色管理"}) - public AjaxResult listPage(String name, BasePage basePage) { - PageInfo<SysRole> pageInfo = new PageInfo<>(basePage.getPageCurr(), basePage.getPageSize()); - LambdaQueryWrapper<SysRole> wrapper = new LambdaQueryWrapper<SysRole>().eq(SysRole::getStatus, 0).eq(SysRole::getDelFlag, 0); - if(StringUtils.isNotEmpty(name)){ - wrapper.like(SysRole::getRoleName, name); - } - - PageInfo<SysRole> page = roleService.page(pageInfo, wrapper.orderByDesc(SysRole::getCreateTime)); - for (SysRole record : page.getRecords()) { - List<Integer> data = roleSiteClient.getSiteIds(record.getRoleId()).getData(); - List<Site> sites = siteClient.getSiteByIds(data).getData(); - if(null != sites){ - List<String> collect = sites.stream().map(Site::getName).collect(Collectors.toList()); - record.setSiteNames(collect); - } - } - return AjaxResult.success(page); - } - - - - - @ResponseBody - @PostMapping("/roleAdd") - @ApiOperation(value = "添加角色", tags = {"管理后台-角色管理"}) - @GlobalTransactional(rollbackFor = Exception.class)//分布式事务 - public AjaxResult roleAdd(@Validated @RequestBody RoleAddDto dto) - { - SysRole role = new SysRole(); - role.setRoleName(dto.getRoleName()); - long count = roleService.count(Wrappers.lambdaQuery(SysRole.class) - .eq(SysRole::getRoleName,dto.getRoleName())); - if(count>0){ - return AjaxResult.error("角色已存在,请重新输入"); - } - List<Long> menuIds1 = dto.getMenuIds(); - if(CollectionUtils.isEmpty(menuIds1)){ - return AjaxResult.error("菜单id不能为空"); - } - role.setMenuIds(dto.getMenuIds().toArray((new Long[dto.getMenuIds().size()]))); - // 添加角色 - role.setRemark(dto.getRemark()); - role.setCreateBy(SecurityUtils.getUsername()); - role.setCreateTime(new Date()); - roleService.insertRole(role); - //添加站点权限 - List<TRoleSite> roleSites = new ArrayList<>(); - for (Integer siteId : dto.getSiteIds()) { - TRoleSite roleSite = new TRoleSite(); - roleSite.setRoleId(role.getRoleId().intValue()); - roleSite.setSiteId(siteId); - roleSites.add(roleSite); - } - roleSiteClient.addRoleSite(roleSites); - return AjaxResult.success(); - } - - - @GetMapping("/roleInfo") - @ApiOperation(value = "角色详情", tags = {"管理后台-角色管理"}) - public AjaxResult roleInfo( @RequestParam Long id) { - SysRole role = roleService.selectRoleById(id); - RoleInfoVo roleInfoVo = new RoleInfoVo(); - roleInfoVo.setRoleId(role.getRoleId()); - roleInfoVo.setRoleName(role.getRoleName()); - // 获取当前角色的菜单id - List<Long> menusId = sysRoleMenuMapper.selectList(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, id)).stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList()); - if(menusId.size()==0){ - return AjaxResult.success(new ArrayList<>()); - } - //获取当前的权限菜单 - List<SysMenus> all = menuMapper.getAllInIds(menusId); - // 第三级 - List<SysMenus> s3 = all.stream().filter(e -> e.getMenuType().equals("F")).collect(Collectors.toList()); - // 第二级 - List<SysMenus> s2 = all.stream().filter(e -> e.getMenuType().equals("C")).collect(Collectors.toList()); - // 第一级 - List<SysMenus> s1 = all.stream().filter(e -> e.getMenuType().equals("M")).collect(Collectors.toList()); - - for (SysMenus menus : s2) { - List<SysMenus> collect = s3.stream().filter(e -> e.getParentId().equals(menus.getMenuId())).collect(Collectors.toList()); - menus.setChildren(collect); - } - - for (SysMenus menus : s1) { - List<SysMenus> collect = s2.stream().filter(e -> e.getParentId().equals(menus.getMenuId())).collect(Collectors.toList()); - menus.setChildren(collect); - } - roleInfoVo.setMenus(menusId); - roleInfoVo.setRemark(role.getRemark()); - List<Integer> siteIds = roleSiteClient.getSiteIds(role.getRoleId()).getData(); - List<Site> sites = siteClient.getSiteByIds(siteIds).getData(); - List<String> siteNames = sites.stream().map(Site::getName).collect(Collectors.toList()); - roleInfoVo.setSiteNames(siteNames); - roleInfoVo.setSiteIds(siteIds); - return AjaxResult.success(roleInfoVo); - } - - - - @PostMapping("/roleUpdate") - @ApiOperation(value = "编辑角色", tags = {"管理后台-角色管理"}) - @GlobalTransactional(rollbackFor = Exception.class)//分布式事务 - public AjaxResult roleUpdate(@Validated @RequestBody RoleUpdateDto dto) { - SysRole role = new SysRole(); - role.setRoleName(dto.getRoleName()); - SysRole one = roleService.getOne(new LambdaQueryWrapper<SysRole>().eq(SysRole::getRoleName, dto.getRoleName())); - if(null != one && !one.getRoleId().equals(dto.getRoleId())){ - return AjaxResult.error("角色已存在,请重新输入"); - } - role.setRemark(dto.getRemark()); - role.setUpdateBy(SecurityUtils.getUsername()); - role.setUpdateTime(new Date()); - role.setRoleId(dto.getRoleId()); - roleService.updateRole(role); - ArrayList<SysRoleMenu> sysRoleMenus = new ArrayList<>(); - List<Long> menuIds = dto.getMenuIds(); - // 移除原来的权限菜单 - if(menuIds.contains(1061L)){ - sysRoleMenuMapper.delete(new LambdaQueryWrapper<SysRoleMenu>() - .eq(SysRoleMenu::getRoleId,dto.getRoleId())); - }else { - sysRoleMenuMapper.delete(new LambdaQueryWrapper<SysRoleMenu>() - .eq(SysRoleMenu::getRoleId,dto.getRoleId()) - .ne(SysRoleMenu::getMenuId,1061L) - .ne(SysRoleMenu::getMenuId,1062L) - .ne(SysRoleMenu::getMenuId,1065L) - .ne(SysRoleMenu::getMenuId,1073L) - .ne(SysRoleMenu::getMenuId,1161L) - .ne(SysRoleMenu::getMenuId,1203L) - ); - } - for (Long menuId : menuIds) { - SysRoleMenu sysRoleMenu = new SysRoleMenu(); - sysRoleMenu.setMenuId(menuId); - sysRoleMenu.setRoleId(role.getRoleId()); - sysRoleMenus.add(sysRoleMenu); - } - sysRoleMenuMapper.batchRoleMenu(sysRoleMenus); - //删除旧站点数据 - roleSiteClient.delRoleSite(dto.getRoleId()); - //添加站点权限 - List<TRoleSite> roleSites = new ArrayList<>(); - for (Integer siteId : dto.getSiteIds()) { - TRoleSite roleSite = new TRoleSite(); - roleSite.setRoleId(role.getRoleId().intValue()); - roleSite.setSiteId(siteId); - roleSites.add(roleSite); - } - roleSiteClient.addRoleSite(roleSites); - return AjaxResult.success(); - } - - - - /** - * 删除角色 - */ - @RequiresPermissions("system:role:remove") - @Log(title = "角色管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{roleIds}") - @ApiOperation(value = "删除角色", tags = {"管理后台-角色管理"}) - public AjaxResult remove(@PathVariable Long[] roleIds) { - return toAjax(roleService.deleteRoleByIds(roleIds)); - } - - - - - /** - * 查询已分配用户角色列表 - */ - @RequiresPermissions("system:role:list") - @GetMapping("/authUser/allocatedList") - public TableDataInfo allocatedList(SysUser user) - { - startPage(); - List<SysUser> list = userService.selectAllocatedList(user); - return getDataTable(list); - } - - /** - * 查询未分配用户角色列表 - */ - @RequiresPermissions("system:role:list") - @GetMapping("/authUser/unallocatedList") - public TableDataInfo unallocatedList(SysUser user) - { - startPage(); - List<SysUser> list = userService.selectUnallocatedList(user); - return getDataTable(list); - } - - - - /** - * 获取对应角色部门树列表 - */ - @RequiresPermissions("system:role:query") - @GetMapping(value = "/deptTree/{roleId}") - public AjaxResult deptTree(@PathVariable("roleId") Long roleId) - { - AjaxResult ajax = AjaxResult.success(); - ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId)); - ajax.put("depts", deptService.selectDeptTreeList(new SysDept())); - return ajax; - } - - - /** - * 根据id集合获取数据 - * @param ids - * @return - */ - @ResponseBody - @PostMapping(value = "/getSysRoleByIds") - public R<List<SysRole>> getSysRoleByIds(@RequestBody GetSysRoleByIds ids){ - List<SysRole> sysRoleByIds = roleService.getSysRoleByIds(ids.getIds()); - return R.ok(sysRoleByIds); - } +public class SysRoleController extends BaseController { + @Resource + private ISysRoleService roleService; + + @Resource + private ISysUserService userService; + + @Resource + private ISysDeptService deptService; + + @Resource + private SysRoleMenuMapper sysRoleMenuMapper; + + @Resource + private ISysUserRoleService sysUserRoleService; + + @Resource + private SysMenuMapper menuMapper; + + @Resource + private RoleSiteClient roleSiteClient; + + @Resource + private SiteClient siteClient; + + + @ApiOperation(value = "获取角色列表", tags = {"管理后台-系统用户管理"}) + @GetMapping("/list") + public AjaxResult list() { + List<SysRole> list = roleService.list(new LambdaQueryWrapper<SysRole>().eq(SysRole::getDelFlag, 0).eq(SysRole::getStatus, 0)); + return AjaxResult.success(list); + } + + + @ResponseBody + @GetMapping("/listPage") + @ApiOperation(value = "获取角色列表", tags = {"管理后台-角色管理"}) + public AjaxResult listPage(String name, BasePage basePage) { + PageInfo<SysRole> pageInfo = new PageInfo<>(basePage.getPageCurr(), basePage.getPageSize()); + LambdaQueryWrapper<SysRole> wrapper = new LambdaQueryWrapper<SysRole>().eq(SysRole::getStatus, 0).eq(SysRole::getDelFlag, 0); + if (StringUtils.isNotEmpty(name)) { + wrapper.like(SysRole::getRoleName, name); + } + + PageInfo<SysRole> page = roleService.page(pageInfo, wrapper.orderByDesc(SysRole::getCreateTime)); + for (SysRole record : page.getRecords()) { + List<Integer> data = roleSiteClient.getSiteIds(record.getRoleId()).getData(); + List<Site> sites = siteClient.getSiteByIds(data).getData(); + if (null != sites) { + List<String> collect = sites.stream().map(Site::getName).collect(Collectors.toList()); + record.setSiteNames(collect); + } + } + return AjaxResult.success(page); + } + + + @ResponseBody + @PostMapping("/roleAdd") + @ApiOperation(value = "添加角色", tags = {"管理后台-角色管理"}) + @GlobalTransactional(rollbackFor = Exception.class)//分布式事务 + public AjaxResult roleAdd(@Validated @RequestBody RoleAddDto dto) { + SysRole role = new SysRole(); + role.setRoleName(dto.getRoleName()); + long count = roleService.count(Wrappers.lambdaQuery(SysRole.class) + .eq(SysRole::getRoleName, dto.getRoleName())); + if (count > 0) { + return AjaxResult.error("角色已存在,请重新输入"); + } + List<Long> menuIds1 = dto.getMenuIds(); + if (CollectionUtils.isEmpty(menuIds1)) { + return AjaxResult.error("菜单id不能为空"); + } + role.setMenuIds(dto.getMenuIds().toArray((new Long[dto.getMenuIds().size()]))); + // 添加角色 + role.setRemark(dto.getRemark()); + role.setCreateBy(SecurityUtils.getUsername()); + role.setCreateTime(new Date()); + roleService.insertRole(role); + //添加站点权限 + List<TRoleSite> roleSites = new ArrayList<>(); + for (Integer siteId : dto.getSiteIds()) { + TRoleSite roleSite = new TRoleSite(); + roleSite.setRoleId(role.getRoleId().intValue()); + roleSite.setSiteId(siteId); + roleSites.add(roleSite); + } + roleSiteClient.addRoleSite(roleSites); + return AjaxResult.success(); + } + + + @GetMapping("/roleInfo") + @ApiOperation(value = "角色详情", tags = {"管理后台-角色管理"}) + public AjaxResult roleInfo(@RequestParam Long id) { + SysRole role = roleService.selectRoleById(id); + RoleInfoVo roleInfoVo = new RoleInfoVo(); + roleInfoVo.setRoleId(role.getRoleId()); + roleInfoVo.setRoleName(role.getRoleName()); + // 获取当前角色的菜单id + List<Long> menusId = sysRoleMenuMapper.selectList(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, id)).stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList()); + if (menusId.size() == 0) { + return AjaxResult.success(new ArrayList<>()); + } + //获取当前的权限菜单 + List<SysMenus> all = menuMapper.getAllInIds(menusId); + // 第三级 + List<SysMenus> s3 = all.stream().filter(e -> e.getMenuType().equals("F")).collect(Collectors.toList()); + // 第二级 + List<SysMenus> s2 = all.stream().filter(e -> e.getMenuType().equals("C")).collect(Collectors.toList()); + // 第一级 + List<SysMenus> s1 = all.stream().filter(e -> e.getMenuType().equals("M")).collect(Collectors.toList()); + + for (SysMenus menus : s2) { + List<SysMenus> collect = s3.stream().filter(e -> e.getParentId().equals(menus.getMenuId())).collect(Collectors.toList()); + menus.setChildren(collect); + } + + for (SysMenus menus : s1) { + List<SysMenus> collect = s2.stream().filter(e -> e.getParentId().equals(menus.getMenuId())).collect(Collectors.toList()); + menus.setChildren(collect); + } + roleInfoVo.setMenus(menusId); + roleInfoVo.setRemark(role.getRemark()); + List<Integer> siteIds = roleSiteClient.getSiteIds(role.getRoleId()).getData(); + if (null != siteIds && siteIds.size() > 0) { + List<Site> sites = siteClient.getSiteByIds(siteIds).getData(); + List<String> siteNames = sites.stream().map(Site::getName).collect(Collectors.toList()); + roleInfoVo.setSiteNames(siteNames); + roleInfoVo.setSiteIds(siteIds); + } + return AjaxResult.success(roleInfoVo); + } + + + @PostMapping("/roleUpdate") + @ApiOperation(value = "编辑角色", tags = {"管理后台-角色管理"}) + @GlobalTransactional(rollbackFor = Exception.class)//分布式事务 + public AjaxResult roleUpdate(@Validated @RequestBody RoleUpdateDto dto) { + SysRole role = new SysRole(); + role.setRoleName(dto.getRoleName()); + SysRole one = roleService.getOne(new LambdaQueryWrapper<SysRole>().eq(SysRole::getRoleName, dto.getRoleName())); + if (null != one && !one.getRoleId().equals(dto.getRoleId())) { + return AjaxResult.error("角色已存在,请重新输入"); + } + role.setRemark(dto.getRemark()); + role.setUpdateBy(SecurityUtils.getUsername()); + role.setUpdateTime(new Date()); + role.setRoleId(dto.getRoleId()); + roleService.updateRole(role); + ArrayList<SysRoleMenu> sysRoleMenus = new ArrayList<>(); + List<Long> menuIds = dto.getMenuIds(); + // 移除原来的权限菜单 + if (menuIds.contains(1061L)) { + sysRoleMenuMapper.delete(new LambdaQueryWrapper<SysRoleMenu>() + .eq(SysRoleMenu::getRoleId, dto.getRoleId())); + } else { + sysRoleMenuMapper.delete(new LambdaQueryWrapper<SysRoleMenu>() + .eq(SysRoleMenu::getRoleId, dto.getRoleId()) + .ne(SysRoleMenu::getMenuId, 1061L) + .ne(SysRoleMenu::getMenuId, 1062L) + .ne(SysRoleMenu::getMenuId, 1065L) + .ne(SysRoleMenu::getMenuId, 1073L) + .ne(SysRoleMenu::getMenuId, 1161L) + .ne(SysRoleMenu::getMenuId, 1203L) + ); + } + for (Long menuId : menuIds) { + SysRoleMenu sysRoleMenu = new SysRoleMenu(); + sysRoleMenu.setMenuId(menuId); + sysRoleMenu.setRoleId(role.getRoleId()); + sysRoleMenus.add(sysRoleMenu); + } + sysRoleMenuMapper.batchRoleMenu(sysRoleMenus); + //删除旧站点数据 + roleSiteClient.delRoleSite(dto.getRoleId()); + //添加站点权限 + List<TRoleSite> roleSites = new ArrayList<>(); + for (Integer siteId : dto.getSiteIds()) { + TRoleSite roleSite = new TRoleSite(); + roleSite.setRoleId(role.getRoleId().intValue()); + roleSite.setSiteId(siteId); + roleSites.add(roleSite); + } + roleSiteClient.addRoleSite(roleSites); + return AjaxResult.success(); + } + + + /** + * 删除角色 + */ + @RequiresPermissions("system:role:remove") + @Log(title = "角色管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{roleIds}") + @ApiOperation(value = "删除角色", tags = {"管理后台-角色管理"}) + public AjaxResult remove(@PathVariable Long[] roleIds) { + return toAjax(roleService.deleteRoleByIds(roleIds)); + } + + + /** + * 查询已分配用户角色列表 + */ + @RequiresPermissions("system:role:list") + @GetMapping("/authUser/allocatedList") + public TableDataInfo allocatedList(SysUser user) { + startPage(); + List<SysUser> list = userService.selectAllocatedList(user); + return getDataTable(list); + } + + /** + * 查询未分配用户角色列表 + */ + @RequiresPermissions("system:role:list") + @GetMapping("/authUser/unallocatedList") + public TableDataInfo unallocatedList(SysUser user) { + startPage(); + List<SysUser> list = userService.selectUnallocatedList(user); + return getDataTable(list); + } + + + /** + * 获取对应角色部门树列表 + */ + @RequiresPermissions("system:role:query") + @GetMapping(value = "/deptTree/{roleId}") + public AjaxResult deptTree(@PathVariable("roleId") Long roleId) { + AjaxResult ajax = AjaxResult.success(); + ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId)); + ajax.put("depts", deptService.selectDeptTreeList(new SysDept())); + return ajax; + } + + + /** + * 根据id集合获取数据 + * + * @param ids + * @return + */ + @ResponseBody + @PostMapping(value = "/getSysRoleByIds") + public R<List<SysRole>> getSysRoleByIds(@RequestBody GetSysRoleByIds ids) { + List<SysRole> sysRoleByIds = roleService.getSysRoleByIds(ids.getIds()); + return R.ok(sysRoleByIds); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java index 6315e1b..7372a9a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java @@ -1,12 +1,9 @@ package com.ruoyi.system.controller; -import java.io.IOException; import java.util.*; import java.util.stream.Collectors; import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; -import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.chargingPile.api.feignClient.SiteClient; @@ -17,32 +14,19 @@ import com.ruoyi.other.api.feignClient.RoleSiteClient; import com.ruoyi.other.api.feignClient.UserSiteClient; import com.ruoyi.system.api.query.ChangeUserQuery; -import com.ruoyi.system.domain.dto.IndexDto; -import com.ruoyi.system.domain.vo.UserRoleVO; import com.ruoyi.system.api.model.*; import com.ruoyi.system.domain.SysUserRole; -import com.ruoyi.system.domain.dto.AddCompanyUserDto; -import com.ruoyi.system.domain.vo.CompanyUserVo; -import com.ruoyi.system.domain.vo.TCompanyToUserVo; import com.ruoyi.system.query.GetSysUserList; import com.ruoyi.system.query.ShopUserStart; import com.ruoyi.system.service.*; import io.seata.spring.annotation.GlobalTransactional; import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.ArrayUtils; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.utils.poi.ExcelUtil; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.log.annotation.Log; @@ -300,10 +284,10 @@ SysUser sysUser = userService.selectUserById(shopUserStart.getUserId()); if (sysUser.getStatus().equals("0")) { sysUser.setStatus("1"); - sysUser.setRemark(shopUserStart.getRemark()); + sysUser.setForbiddenRemark(shopUserStart.getRemark()); } else { sysUser.setStatus("0"); - sysUser.setRemark(""); + sysUser.setForbiddenRemark(""); } return toAjax(userService.updateUser(sysUser)); } @@ -387,11 +371,13 @@ sysUser.setUpdateBy(SecurityUtils.getUsername()); sysUser.setUpdateTime(new Date()); userService.updateUser(sysUser); - userRoleService.deleteSysUserRoleByUserId(sysUser.getUserId()); - SysUserRole sysUserRole = new SysUserRole(); - sysUserRole.setRoleId(sysUser.getRoleId()); - sysUserRole.setUserId(sysUser.getUserId()); - userRoleService.insertSysUserRole(sysUserRole); + if(null != sysUser.getRoleId()){ + userRoleService.deleteSysUserRoleByUserId(sysUser.getUserId()); + SysUserRole sysUserRole = new SysUserRole(); + sysUserRole.setRoleId(sysUser.getRoleId()); + sysUserRole.setUserId(sysUser.getUserId()); + userRoleService.insertSysUserRole(sysUserRole); + } return R.ok(true); } catch (Exception e) { e.printStackTrace(); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserRoleController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserRoleController.java index 25ac609..b0ef148 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserRoleController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserRoleController.java @@ -25,82 +25,75 @@ /** * 用户和角色关联Controller - * + * * @author xiaochen * @date 2023-06-12 */ @RestController @RequestMapping("/userRole") -public class SysUserRoleController extends BaseController -{ - @Autowired - private ISysUserRoleService sysUserRoleService; - - /** - * 查询用户和角色关联列表 - */ - @RequiresPermissions("car:role:list") - @GetMapping("/list") - public TableDataInfo list(SysUserRole sysUserRole) - { - startPage(); - List<SysUserRole> list = sysUserRoleService.selectSysUserRoleList(sysUserRole); - return getDataTable(list); - } - - /** - * 导出用户和角色关联列表 - */ - @RequiresPermissions("car:role:export") - @Log(title = "用户和角色关联", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, SysUserRole sysUserRole) - { - List<SysUserRole> list = sysUserRoleService.selectSysUserRoleList(sysUserRole); - ExcelUtil<SysUserRole> util = new ExcelUtil<SysUserRole>(SysUserRole.class); - util.exportExcel(response, list, "用户和角色关联数据"); - } - - /** - * 获取用户和角色关联详细信息 - */ - @RequiresPermissions("car:role:query") - @GetMapping(value = "/{userId}") - public AjaxResult getInfo(@PathVariable("userId") Long userId) - { - return success(sysUserRoleService.selectSysUserRoleByUserId(userId)); - } - - /** - * 新增用户和角色关联 - */ - @RequiresPermissions("car:role:add") - @Log(title = "用户和角色关联", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody SysUserRole sysUserRole) - { - return toAjax(sysUserRoleService.insertSysUserRole(sysUserRole)); - } - - /** - * 修改用户和角色关联 - */ - @RequiresPermissions("car:role:edit") - @Log(title = "用户和角色关联", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@RequestBody SysUserRole sysUserRole) - { - return toAjax(sysUserRoleService.updateSysUserRole(sysUserRole)); - } - - /** - * 删除用户和角色关联 - */ - @RequiresPermissions("car:role:remove") - @Log(title = "用户和角色关联", businessType = BusinessType.DELETE) +public class SysUserRoleController extends BaseController { + @Autowired + private ISysUserRoleService sysUserRoleService; + + /** + * 查询用户和角色关联列表 + */ + @RequiresPermissions("car:role:list") + @GetMapping("/list") + public TableDataInfo list(SysUserRole sysUserRole) { + startPage(); + List<SysUserRole> list = sysUserRoleService.selectSysUserRoleList(sysUserRole); + return getDataTable(list); + } + + /** + * 导出用户和角色关联列表 + */ + @RequiresPermissions("car:role:export") + @Log(title = "用户和角色关联", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, SysUserRole sysUserRole) { + List<SysUserRole> list = sysUserRoleService.selectSysUserRoleList(sysUserRole); + ExcelUtil<SysUserRole> util = new ExcelUtil<SysUserRole>(SysUserRole.class); + util.exportExcel(response, list, "用户和角色关联数据"); + } + + /** + * 获取用户和角色关联详细信息 + */ + @RequiresPermissions("car:role:query") + @GetMapping(value = "/{userId}") + public AjaxResult getInfo(@PathVariable("userId") Long userId) { + return success(sysUserRoleService.selectSysUserRoleByUserId(userId)); + } + + /** + * 新增用户和角色关联 + */ + @RequiresPermissions("car:role:add") + @Log(title = "用户和角色关联", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody SysUserRole sysUserRole) { + return toAjax(sysUserRoleService.insertSysUserRole(sysUserRole)); + } + + /** + * 修改用户和角色关联 + */ + @RequiresPermissions("car:role:edit") + @Log(title = "用户和角色关联", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody SysUserRole sysUserRole) { + return toAjax(sysUserRoleService.updateSysUserRole(sysUserRole)); + } + + /** + * 删除用户和角色关联 + */ + @RequiresPermissions("car:role:remove") + @Log(title = "用户和角色关联", businessType = BusinessType.DELETE) @DeleteMapping("/{userIds}") - public AjaxResult remove(@PathVariable Long[] userIds) - { - return toAjax(sysUserRoleService.deleteSysUserRoleByUserIds(userIds)); - } + public AjaxResult remove(@PathVariable Long[] userIds) { + return toAjax(sysUserRoleService.deleteSysUserRoleByUserIds(userIds)); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserRoleServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserRoleServiceImpl.java index 8a777ec..ab578b5 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserRoleServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserRoleServiceImpl.java @@ -11,85 +11,78 @@ /** * 用户和角色关联Service业务层处理 - * + * * @author xiaochen * @date 2023-06-12 */ @Service -public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUserRole> implements ISysUserRoleService -{ - @Autowired - private SysUserRoleMapper sysUserRoleMapper; - - /** - * 查询用户和角色关联 - * - * @param userId 用户和角色关联主键 - * @return 用户和角色关联 - */ - @Override - public SysUserRole selectSysUserRoleByUserId(Long userId) - { - return sysUserRoleMapper.selectSysUserRoleByUserId(userId); - } - - /** - * 查询用户和角色关联列表 - * - * @param sysUserRole 用户和角色关联 - * @return 用户和角色关联 - */ - @Override - public List<SysUserRole> selectSysUserRoleList(SysUserRole sysUserRole) - { - return sysUserRoleMapper.selectSysUserRoleList(sysUserRole); - } - - /** - * 新增用户和角色关联 - * - * @param sysUserRole 用户和角色关联 - * @return 结果 - */ - @Override - public int insertSysUserRole(SysUserRole sysUserRole) - { - return sysUserRoleMapper.insertSysUserRole(sysUserRole); - } - - /** - * 修改用户和角色关联 - * - * @param sysUserRole 用户和角色关联 - * @return 结果 - */ - @Override - public int updateSysUserRole(SysUserRole sysUserRole) - { - return sysUserRoleMapper.updateSysUserRole(sysUserRole); - } - - /** - * 批量删除用户和角色关联 - * - * @param userIds 需要删除的用户和角色关联主键 - * @return 结果 - */ - @Override - public int deleteSysUserRoleByUserIds(Long[] userIds) - { - return sysUserRoleMapper.deleteSysUserRoleByUserIds(userIds); - } - - /** - * 删除用户和角色关联信息 - * - * @param userId 用户和角色关联主键 - * @return 结果 - */ - @Override - public int deleteSysUserRoleByUserId(Long userId) - { - return sysUserRoleMapper.deleteSysUserRoleByUserId(userId); - } +public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUserRole> implements ISysUserRoleService { + @Autowired + private SysUserRoleMapper sysUserRoleMapper; + + /** + * 查询用户和角色关联 + * + * @param userId 用户和角色关联主键 + * @return 用户和角色关联 + */ + @Override + public SysUserRole selectSysUserRoleByUserId(Long userId) { + return sysUserRoleMapper.selectSysUserRoleByUserId(userId); + } + + /** + * 查询用户和角色关联列表 + * + * @param sysUserRole 用户和角色关联 + * @return 用户和角色关联 + */ + @Override + public List<SysUserRole> selectSysUserRoleList(SysUserRole sysUserRole) { + return sysUserRoleMapper.selectSysUserRoleList(sysUserRole); + } + + /** + * 新增用户和角色关联 + * + * @param sysUserRole 用户和角色关联 + * @return 结果 + */ + @Override + public int insertSysUserRole(SysUserRole sysUserRole) { + return sysUserRoleMapper.insertSysUserRole(sysUserRole); + } + + /** + * 修改用户和角色关联 + * + * @param sysUserRole 用户和角色关联 + * @return 结果 + */ + @Override + public int updateSysUserRole(SysUserRole sysUserRole) { + return sysUserRoleMapper.updateSysUserRole(sysUserRole); + } + + /** + * 批量删除用户和角色关联 + * + * @param userIds 需要删除的用户和角色关联主键 + * @return 结果 + */ + @Override + public int deleteSysUserRoleByUserIds(Long[] userIds) { + return sysUserRoleMapper.deleteSysUserRoleByUserIds(userIds); + } + + /** + * 删除用户和角色关联信息 + * + * @param userId 用户和角色关联主键 + * @return 结果 + */ + @Override + public int deleteSysUserRoleByUserId(Long userId) { + return sysUserRoleMapper.deleteSysUserRoleByUserId(userId); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 6ea45fd..b484da7 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -22,6 +22,7 @@ <result property="createTime" column="create_time" /> <result property="updateBy" column="update_by" /> <result property="updateTime" column="update_time" /> + <result property="forbiddenRemark" column="forbidden_remark"/> <result property="remark" column="remark" /> <result property="roleType" column="roleType" /> <result property="objectId" column="objectId" /> diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/ali/pojo/AppletUserLogin.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/ali/pojo/AppletUserLogin.java new file mode 100644 index 0000000..dc7e36b --- /dev/null +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/ali/pojo/AppletUserLogin.java @@ -0,0 +1,22 @@ +package com.ruoyi.account.ali.pojo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +@Data +@ApiModel(value = "支付宝小程序登录") +public class AppletUserLogin implements Serializable { + + @ApiModelProperty(value = "auth_code") + @NotBlank(message = "auth_code不能为空") + private String code; + + @ApiModelProperty(value = "获取用户信息加密串") + @NotBlank(message = "获取用户信息加密串不能为空") + private String token; + +} diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/ali/tools/AliAppletTools.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/ali/tools/AliAppletTools.java index 8a60f08..0678b48 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/ali/tools/AliAppletTools.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/ali/tools/AliAppletTools.java @@ -1,16 +1,24 @@ package com.ruoyi.account.ali.tools; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; +import com.alibaba.fastjson.parser.Feature; import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; import com.alipay.api.AlipayConfig; import com.alipay.api.DefaultAlipayClient; +import com.alipay.api.internal.util.AlipayEncrypt; +import com.alipay.api.internal.util.AlipaySignature; import com.alipay.api.request.AlipaySystemOauthTokenRequest; -import com.alipay.api.request.AlipayUserUserinfoShareRequest; +import com.alipay.api.request.AlipayUserInfoShareRequest; import com.alipay.api.response.AlipaySystemOauthTokenResponse; -import com.alipay.api.response.AlipayUserUserinfoShareResponse; +import com.alipay.api.response.AlipayUserInfoShareResponse; import com.ruoyi.account.ali.Constant.AliConstant; import com.ruoyi.account.ali.model.AliProperties; +import com.ruoyi.common.core.exception.ServiceException; import lombok.extern.slf4j.Slf4j; + +import java.util.Map; /** * @author xiaochen @@ -60,12 +68,12 @@ * 支付宝小程序授权获取手机号 * @return */ - public AlipayUserUserinfoShareResponse getUserInfo(String accessToken) { + public AlipayUserInfoShareResponse getUserInfo(String accessToken) { try { // 初始化SDK AlipayClient alipayClient = new DefaultAlipayClient(new AliAppletTools(aliProperties).getAlipayConfig(AliConstant.LOGIN_SERVER_URL)); //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.user.userinfo.share - AlipayUserUserinfoShareRequest request = new AlipayUserUserinfoShareRequest(); + AlipayUserInfoShareRequest request = new AlipayUserInfoShareRequest(); //授权类接口执行API调用时需要带上accessToken return alipayClient.execute(request,accessToken); } catch (AlipayApiException e) { @@ -74,6 +82,53 @@ } /** + * 获取用户手机号 + * @param response + * @return + */ + public String getPhoneNumber(String response){ + //1. 获取验签和解密所需要的参数 + Map<String, String> openapiResult = JSON.parseObject(response,new TypeReference<Map<String, String>>() {}, Feature.OrderedField); + String signType = "RSA2"; + String charset = "UTF-8"; + String encryptType = "AES"; + String sign = openapiResult.get("sign"); + String content = openapiResult.get("response"); + //判断是否为加密内容 + boolean isDataEncrypted = !content.startsWith("{"); + boolean signCheckPass = false; + //2. 验签 + String signContent = content; + if (isDataEncrypted) { + signContent = "\"" + signContent + "\""; + } try { + signCheckPass = AlipaySignature.rsaCheck(signContent, sign, aliProperties.getAlipayPublicKey(), charset, signType); + } catch (AlipayApiException e) { + // 验签异常, 日志 + } if (!signCheckPass) { + //验签不通过(异常或者报文被篡改),终止流程(不需要做解密) + throw new ServiceException("验签失败"); + } + //3. 解密 + String plainData = null; + if (isDataEncrypted) { + try { + plainData = AlipayEncrypt.decryptContent(content, encryptType, "XABBSOeWDakvuG9TDez4Qg====", charset); + } catch (AlipayApiException e) { + //解密异常, 记录日志 + throw new ServiceException("解密异常"); + }} else { + plainData = content; + } + log.info("解密后的数据:{}", plainData); + String phoneNumber = ""; + if (plainData.contains("mobile")) { + phoneNumber = JSON.parseObject(plainData).getString("mobile"); + } + return phoneNumber; + } + + /** * 初始化支付宝配置 * @return */ diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AliLoginController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AliLoginController.java index 408d79a..52f871a 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AliLoginController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AliLoginController.java @@ -7,15 +7,18 @@ import com.alipay.api.diagnosis.DiagnosisUtils; import com.alipay.api.request.AlipaySystemOauthTokenRequest; import com.alipay.api.response.AlipaySystemOauthTokenResponse; +import com.alipay.api.response.AlipayUserInfoShareResponse; import com.alipay.api.response.AlipayUserUserinfoShareResponse; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.account.ali.Constant.AliConstant; import com.ruoyi.account.ali.model.AliProperties; +import com.ruoyi.account.ali.pojo.AppletUserLogin; import com.ruoyi.account.ali.tools.AliAppletTools; import com.ruoyi.account.api.model.TAppUser; import com.ruoyi.account.service.TAppUserService; import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.system.api.model.LoginUserApplet; @@ -23,10 +26,7 @@ import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.Map; @@ -50,17 +50,22 @@ @Autowired private TAppUserService appUserService; @ApiOperation(value = "通过code获得openid",tags = {"支付宝小程序登录"}) - @GetMapping("/openIdByJsCode") - public AjaxResult<Map<String, Object>> openIdByJsCode(@RequestParam(name = "code")@ApiParam(value = "code", required = true) String code){ - log.info("<<<<<<<<换取openid开始<<<<<<<<:{}", code); + @PostMapping("/openIdByJsCode") + public AjaxResult<Map<String, Object>> openIdByJsCode(@RequestBody AppletUserLogin appletUserLogin){ + log.info("<<<<<<<<换取openid开始<<<<<<<<:{}", appletUserLogin.getCode()); // 登录 - AlipaySystemOauthTokenResponse response = new AliAppletTools(aliProperties).login(code); + AlipaySystemOauthTokenResponse response = new AliAppletTools(aliProperties).login(appletUserLogin.getCode()); if (response.isSuccess()) { // 获取用户信息 - AlipayUserUserinfoShareResponse userInfo = new AliAppletTools(aliProperties).getUserInfo(response.getAccessToken()); - log.info("获取支付宝用户信息:{}", userInfo); +// AlipayUserInfoShareResponse userInfo = new AliAppletTools(aliProperties).getUserInfo(response.getAccessToken()); + if(StringUtils.isEmpty(appletUserLogin.getToken())){ + return AjaxResult.success("已拒绝授权"); + } + // 获取用户手机号 + String phoneNumber = new AliAppletTools(aliProperties).getPhoneNumber(appletUserLogin.getToken()); + log.info("获取支付宝用户信息:{}", phoneNumber); // 用户信息封装 - return AjaxResult.ok(appUserService.aliLogin(response,userInfo)); + return AjaxResult.success(appUserService.aliLogin(response,phoneNumber)); } else { String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response); log.warn("诊断结果:{}",diagnosisUrl); diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java index 3e381b6..a3e6011 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java @@ -284,6 +284,9 @@ if (userListQueryDto.getUserTagId() != null){ String[] split = userListQueryDto.getUserTagId().split(","); userIds = appUserTagService.lambdaQuery().in(TAppUserTag::getUserTagId, Arrays.asList(split)).list().stream().map(TAppUserTag::getAppUserId).collect(Collectors.toList()); + if (userIds.isEmpty()){ + userIds.add(-1L); + } } //列表查询 Page<TAppUser> page = appUserService.lambdaQuery() @@ -305,9 +308,11 @@ //拿到最新的tagId TAppUserTag one = appUserTagService.lambdaQuery().eq(TAppUserTag::getAppUserId, appUser.getId()).orderByDesc(TAppUserTag::getCreateTime).last("limit 1").one(); //设置最新的tagName - R<TUserTag> byIdTag = otherClient.getByIdTag(one.getUserTagId()); - if (byIdTag.getData()!=null) { - appUser.setTagName(byIdTag.getData().getName()); + if (one!=null){ + R<TUserTag> byIdTag = otherClient.getByIdTag(one.getUserTagId()); + if (byIdTag.getData()!=null) { + appUser.setTagName(byIdTag.getData().getName()); + } } //匹配vipMap的值 appUser.setVipName(vipMap.getData().get(appUser.getVipId())); diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java index 2fcec55..d4252d8 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java @@ -15,6 +15,7 @@ import com.ruoyi.account.wx.tools.WxAppletTools; import com.ruoyi.account.wx.tools.WxUtils; import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.service.TokenService; @@ -22,7 +23,6 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.client.RestTemplate; @@ -60,8 +60,11 @@ // if (StringUtils.isNotBlank(data.getSignature())) { // WxUtils.verifySignature(data.getRawData(), sessionKey, data.getSignature()); // } + if(StringUtils.isEmpty(data.getEncryptedData()) || StringUtils.isEmpty(data.getIv())){ + return AjaxResult.success("已拒绝授权"); + } AppletUserDecodeData appletUserDecodeData = WxUtils.encryptedData(data.getEncryptedData(), sessionKey, data.getIv()); appletUserDecodeData.setOpenId(openid); - return AjaxResult.ok(appUserService.wxLogin(appletUserDecodeData)); + return AjaxResult.success(appUserService.wxLogin(appletUserDecodeData)); } } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserService.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserService.java index fbed3d2..9e59184 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserService.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserService.java @@ -1,6 +1,7 @@ package com.ruoyi.account.service; import com.alipay.api.response.AlipaySystemOauthTokenResponse; +import com.alipay.api.response.AlipayUserInfoShareResponse; import com.alipay.api.response.AlipayUserUserinfoShareResponse; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.account.api.model.TAppUser; @@ -27,10 +28,11 @@ /** * 支付宝小程序登录用户封装 - * @param userInfo + * @param response * @return */ - Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response,AlipayUserUserinfoShareResponse userInfo); +// Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response, AlipayUserInfoShareResponse userInfo); + Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response,String phone); /** * 封装用户信息和token diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java index 7fd0ff1..d3351ef 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.account.service.impl; import com.alipay.api.response.AlipaySystemOauthTokenResponse; +import com.alipay.api.response.AlipayUserInfoShareResponse; import com.alipay.api.response.AlipayUserUserinfoShareResponse; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; @@ -65,34 +66,59 @@ } @Override - public Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response, AlipayUserUserinfoShareResponse userInfo) { + public Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response,String phone) { // 通过手机号查询用户,是否已存在手动导入用户,包含微信用户 TAppUser appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class) - .eq(TAppUser::getPhone, userInfo.getMobile()) + .eq(TAppUser::getPhone, phone) .isNull(TAppUser::getAliOpenid) .last("LIMIT 1")); if(Objects.isNull(appUser)){ // 先使用openId和当前手机号进行查询 appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class) .eq(TAppUser::getAliOpenid, response.getOpenId()) - .eq(TAppUser::getPhone, userInfo.getMobile()) + .eq(TAppUser::getPhone, phone) .last("LIMIT 1")); if(Objects.isNull(appUser)){ appUser = new TAppUser(); - appUser.setPhone(userInfo.getMobile()); + appUser.setPhone(phone); } } if(Objects.nonNull(appUser.getStatus())){ throwInfo(appUser.getStatus()); } - appUser.setAvatar(userInfo.getAvatar()); - appUser.setCity(userInfo.getCity()); - appUser.setName(userInfo.getNickName()); - appUser.setProvince(userInfo.getProvince()); appUser.setAliOpenid(response.getOpenId()); this.saveOrUpdate(appUser); return this.getUserInfo(appUser); } +// @Override +// public Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response, AlipayUserInfoShareResponse userInfo) { +// // 通过手机号查询用户,是否已存在手动导入用户,包含微信用户 +// TAppUser appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class) +// .eq(TAppUser::getPhone, userInfo.getMobile()) +// .isNull(TAppUser::getAliOpenid) +// .last("LIMIT 1")); +// if(Objects.isNull(appUser)){ +// // 先使用openId和当前手机号进行查询 +// appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class) +// .eq(TAppUser::getAliOpenid, response.getOpenId()) +// .eq(TAppUser::getPhone, userInfo.getMobile()) +// .last("LIMIT 1")); +// if(Objects.isNull(appUser)){ +// appUser = new TAppUser(); +// appUser.setPhone(userInfo.getMobile()); +// } +// } +// if(Objects.nonNull(appUser.getStatus())){ +// throwInfo(appUser.getStatus()); +// } +// appUser.setAvatar(userInfo.getAvatar()); +// appUser.setCity(userInfo.getCity()); +// appUser.setName(userInfo.getNickName()); +// appUser.setProvince(userInfo.getProvince()); +// appUser.setAliOpenid(response.getOpenId()); +// this.saveOrUpdate(appUser); +// return this.getUserInfo(appUser); +// } @Override public Map<String, Object> getUserInfo(TAppUser appUser) { diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java index 24753b0..5c6da4a 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java @@ -243,4 +243,16 @@ List<Site> sites = siteService.listByIds(ids); return R.ok(sites); } + + + /** + * 获取所有站点数据 + * @return + */ + @ResponseBody + @PostMapping("/getSiteAll") + public R<List<Site>> getSiteAll(){ + List<Site> list = siteService.list(new LambdaQueryWrapper<Site>().eq(Site::getDelFlag, 0)); + return R.ok(list); + } } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java index 2587a65..fc6ee66 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java @@ -98,7 +98,7 @@ return R.fail("excel导出失败!"); } try { - List<TApplyChargingPile> list = applyChargingPileService.lambdaQuery().list(); + List<TApplyChargingPile> list = applyChargingPileService.lambdaQuery().last("limit 1").list(); List<TApplyChargingPileExportDto> exportDtos =new ArrayList<>(); for (TApplyChargingPile tApplyChargingPile : list) { diff --git "a/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\345\205\205\347\224\265\346\241\251\347\224\263\350\257\267\350\256\260\345\275\225.xlsx" "b/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\345\205\205\347\224\265\346\241\251\347\224\263\350\257\267\350\256\260\345\275\225.xlsx" index cbe9d6d..1456be1 100644 --- "a/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\345\205\205\347\224\265\346\241\251\347\224\263\350\257\267\350\256\260\345\275\225.xlsx" +++ "b/ruoyi-service/ruoyi-chargingPile/src/main/resources/template/\345\205\205\347\224\265\346\241\251\347\224\263\350\257\267\350\256\260\345\275\225.xlsx" Binary files differ diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml index ef4d722..a433566 100644 --- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml +++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml @@ -57,11 +57,11 @@ <if test="null != req.code and req.code!=''"> and t1.code LIKE CONCAT('%',#{req.code},'%') </if> - <if test="req.type != null and ·req.type != '' and req.type == 1"> - and t1.coupon_discount_amount != null and t1.coupon_discount_amount != 0 + <if test="req.type != null and req.type != '' and req.type == 1"> + and t1.coupon_discount_amount IS NOT NULL and t1.coupon_discount_amount != 0 </if> <if test="req.type != null and req.type != '' and req.type == 2"> - and t1.vip_discount_amount != null and t1.vip_discount_amount != 0 + and t1.vip_discount_amount IS NOT NULL and t1.vip_discount_amount != 0 </if> <if test="null != req.userIds and req.userIds.size()>0" > and t1.app_user_id in @@ -97,13 +97,13 @@ and t2.code LIKE CONCAT('%',#{req.code},'%') </if> <if test="req.type != null and req.type != '' and req.type == 1"> - and t2.coupon_discount_amount != null and t1.coupon_discount_amount != 0 + and t2.coupon_discount_amount IS NOT NULL and t2.coupon_discount_amount != 0 </if> <if test="req.type != null and req.type != '' and req.type == 2"> - and t2.vip_discount_amount != null and t1.vip_discount_amount != 0 + and t2.vip_discount_amount IS NOT NULL and t2.vip_discount_amount != 0 </if> <if test="req.type == null "> - and t2.vip_discount_amount != null and t1.vip_discount_amount != 0 and t2.coupon_discount_amount != null and t1.coupon_discount_amount != 0 + and t2.vip_discount_amount IS NOT NULL and t2.vip_discount_amount != 0 and t2.coupon_discount_amount IS NOT NULL and t2.coupon_discount_amount != 0 </if> <if test="null != req.userIds and req.userIds.size()>0" > and t2.app_user_id in @@ -129,12 +129,12 @@ 3 as orderType from t_vip_order t3 where 1 = 1 - and t3.type ==1 + and t3.type =1 <if test="null != req.code and req.code!=''"> and t3.code LIKE CONCAT('%',#{req.code},'%') </if> <if test="req.type == null "> - and t3.discount_amount != null and t3.discount_amount != 0 + and t3.discount_amount IS NOT NULL and t3.discount_amount != 0 </if> <if test="null != req.userIds and req.userIds.size()>0" > and t3.app_user_id in @@ -164,7 +164,7 @@ and t4.code LIKE CONCAT('%',#{req.code},'%') </if> <if test="req.type == null "> - and t4.discount_amount != null and t4.discount_amount != 0 + and t4.discount_amount IS NOT NULL and t4.discount_amount != 0 </if> <if test="null != req.userIds and req.userIds.size()>0" > and t4.app_user_id in diff --git a/ruoyi-service/ruoyi-other/pom.xml b/ruoyi-service/ruoyi-other/pom.xml index 67e4405..0ca03f6 100644 --- a/ruoyi-service/ruoyi-other/pom.xml +++ b/ruoyi-service/ruoyi-other/pom.xml @@ -92,6 +92,10 @@ <groupId>com.ruoyi</groupId> <artifactId>ruoyi-common-swagger</artifactId> </dependency> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-api-chargingPile</artifactId> + </dependency> <!-- 引入Druid依赖,阿里巴巴所提供的数据源 --> <dependency> diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TRoleSiteController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TRoleSiteController.java index 089747c..7a1f511 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TRoleSiteController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TRoleSiteController.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ruoyi.chargingPile.api.feignClient.SiteClient; +import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.common.core.domain.R; import com.ruoyi.other.api.domain.TRoleSite; import com.ruoyi.other.service.TRoleSiteService; @@ -26,6 +28,11 @@ @Resource private TRoleSiteService roleSiteService; + @Resource + private SiteClient siteClient; + + + /** * 查询角色站点数据 * @param roleId @@ -35,6 +42,14 @@ @PostMapping("/getSiteIds/{roleId}") public R<List<Integer>> getSiteIds(@PathVariable Long roleId){ List<TRoleSite> list = roleSiteService.list(new LambdaQueryWrapper<TRoleSite>().eq(TRoleSite::getRoleId, roleId)); + if(list.size() == 1){ + Integer siteId = list.get(0).getSiteId(); + if(0 == siteId){ + List<Site> data = siteClient.getSiteAll().getData(); + List<Integer> collect = data.stream().map(Site::getId).collect(Collectors.toList()); + return R.ok(collect); + } + } List<Integer> collect = list.stream().map(TRoleSite::getSiteId).collect(Collectors.toList()); return R.ok(collect); } -- Gitblit v1.7.1