| package com.ruoyi.system.controller; | 
|   | 
| import java.util.ArrayList; | 
| import java.util.List; | 
| import java.io.IOException; | 
| import javax.servlet.http.HttpServletResponse; | 
|   | 
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
| import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; | 
| import com.ruoyi.common.core.domain.R; | 
| import com.ruoyi.system.api.model.SysUserRoleVo; | 
| import com.ruoyi.system.domain.SysUserRole; | 
| import com.ruoyi.system.service.ISysUserRoleService; | 
| import org.springframework.beans.BeanUtils; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.web.bind.annotation.*; | 
| import com.ruoyi.common.log.annotation.Log; | 
| import com.ruoyi.common.log.enums.BusinessType; | 
| import com.ruoyi.common.security.annotation.RequiresPermissions; | 
| import com.ruoyi.common.core.web.controller.BaseController; | 
| import com.ruoyi.common.core.web.domain.AjaxResult; | 
| import com.ruoyi.common.core.utils.poi.ExcelUtil; | 
| import com.ruoyi.common.core.web.page.TableDataInfo; | 
|   | 
| /** | 
|  * 用户和角色关联Controller | 
|  * | 
|  * @author xiaochen | 
|  * @date 2023-06-12 | 
|  */ | 
| @RestController | 
| @RequestMapping("/userRole") | 
| public class SysUserRoleController extends BaseController { | 
|     @Autowired | 
|     private ISysUserRoleService sysUserRoleService; | 
|      | 
|     /** | 
|      * 查询用户和角色关联列表 | 
|      */ | 
|     @GetMapping("/list") | 
|     public TableDataInfo list(SysUserRole sysUserRole) { | 
|         startPage(); | 
|         List<SysUserRole> list = sysUserRoleService.selectSysUserRoleList(sysUserRole); | 
|         return getDataTable(list); | 
|     } | 
|      | 
|     /** | 
|      * 导出用户和角色关联列表 | 
|      */ | 
|     @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, "用户和角色关联数据"); | 
|     } | 
|      | 
|     /** | 
|      * 获取用户和角色关联详细信息 | 
|      */ | 
|     @GetMapping(value = "/{userId}") | 
|     public AjaxResult getInfo(@PathVariable("userId") Long userId) { | 
|         return success(sysUserRoleService.selectSysUserRoleByUserId(userId)); | 
|     } | 
|      | 
|     /** | 
|      * 新增用户和角色关联 | 
|      */ | 
|     @Log(title = "用户和角色关联", businessType = BusinessType.INSERT) | 
|     @PostMapping | 
|     public AjaxResult add(@RequestBody SysUserRole sysUserRole) { | 
|         return toAjax(sysUserRoleService.insertSysUserRole(sysUserRole)); | 
|     } | 
|      | 
|     /** | 
|      * 修改用户和角色关联 | 
|      */ | 
|     @Log(title = "用户和角色关联", businessType = BusinessType.UPDATE) | 
|     @PutMapping | 
|     public AjaxResult edit(@RequestBody SysUserRole sysUserRole) { | 
|         return toAjax(sysUserRoleService.updateSysUserRole(sysUserRole)); | 
|     } | 
|      | 
|     /** | 
|      * 删除用户和角色关联 | 
|      */ | 
|     @Log(title = "用户和角色关联", businessType = BusinessType.DELETE) | 
|     @DeleteMapping("/{userIds}") | 
|     public AjaxResult remove(@PathVariable Long[] userIds) { | 
|         return toAjax(sysUserRoleService.deleteSysUserRoleByUserIds(userIds)); | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 根据用户id获取角色 | 
|      * @param userId | 
|      * @return | 
|      */ | 
|     @PostMapping("/getRoleByUserId") | 
|     public R<List<SysUserRoleVo>> getRoleByUserId(@RequestParam("userId") Long userId){ | 
|         List<SysUserRole> list = sysUserRoleService.list(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId)); | 
|         List<SysUserRoleVo> data = new ArrayList<>(); | 
|         for (SysUserRole sysUserRole : list) { | 
|             SysUserRoleVo vo = new SysUserRoleVo(); | 
|             BeanUtils.copyProperties(sysUserRole, vo); | 
|             data.add(vo); | 
|         } | 
|         return R.ok(data); | 
|     } | 
| } |