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) 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 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> 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,75 @@ /** * 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()); sysUser.setRoleId(userInfo.getSysUser().getRoleId()); 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(); } } 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)); } 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)); } } 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); } } 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" />