From d66094870c3bf786e18da044fdfaadc088005614 Mon Sep 17 00:00:00 2001
From: paidaxing444 <12qwaszx>
Date: Thu, 30 Apr 2020 15:25:26 +0800
Subject: [PATCH] =?UTF-8?q?20200430-zlp-1=20=E7=8F=AD=E7=BA=A7=E7=AE=A1?=
 =?UTF-8?q?=E7=90=86-=E7=BB=B4=E6=8A=A4=E6=95=99=E5=B8=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ruoyi-ui/src/api/system/user.js               |   9 +
 ruoyi-ui/src/views/system/class/index.vue     | 135 ++++++++----
 .../system/controller/SysUserController.java  | 104 ++++-----
 .../ruoyi/project/system/domain/ByClass.java  |  39 ++++
 .../project/system/mapper/SysUserMapper.java  |   8 +
 .../system/service/ISysUserService.java       |   8 +
 .../service/impl/SysUserServiceImpl.java      | 198 +++++++-----------
 .../mybatis/system/ByClassMapper.xml          |  12 +-
 .../mybatis/system/SysUserMapper.xml          |  16 ++
 9 files changed, 318 insertions(+), 211 deletions(-)

diff --git a/ruoyi-ui/src/api/system/user.js b/ruoyi-ui/src/api/system/user.js
index 7f8db39ee..45d23f9be 100644
--- a/ruoyi-ui/src/api/system/user.js
+++ b/ruoyi-ui/src/api/system/user.js
@@ -18,6 +18,15 @@ export function getUser(userId) {
   })
 }
 
+// 查询用户列表根据roleId
+export function getUsersByRoleId() {
+  return request({
+    url: '/system/user/listbyroleid',
+    method: 'get'
+  })
+}
+
+
 // 新增用户
 export function addUser(data) {
   return request({
diff --git a/ruoyi-ui/src/views/system/class/index.vue b/ruoyi-ui/src/views/system/class/index.vue
index 510456acd..83cedaa0d 100644
--- a/ruoyi-ui/src/views/system/class/index.vue
+++ b/ruoyi-ui/src/views/system/class/index.vue
@@ -21,31 +21,37 @@
         />
       </el-form-item>
       <el-form-item label="主班教师" prop="zbjs">
-        <el-input
-          v-model="queryParams.zbjs"
-          placeholder="请输入主班教师"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+        <el-select v-model="queryParams.zbjs" filterable placeholder="请选择主班教师">
+          <el-option
+            v-for="item in zbjsOptions"
+            :key="item.userId"
+            :label="item.nickName"
+            :value="item.userId"
+            :disabled="item.status == 1"
+          ></el-option>
+        </el-select>
       </el-form-item>
       <el-form-item label="配班教师" prop="pbjs">
-        <el-input
-          v-model="queryParams.pbjs"
-          placeholder="请输入配班教师"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+         <el-select v-model="queryParams.pbjs" filterable placeholder="请选择配班教师">
+          <el-option
+            v-for="item in pbjsOptions"
+            :key="item.userId"
+            :label="item.nickName"
+            :value="item.userId"
+            :disabled="item.status == 1"
+          ></el-option>
+        </el-select>
       </el-form-item>
       <el-form-item label="助理教师" prop="zljs">
-        <el-input
-          v-model="queryParams.zljs"
-          placeholder="请输入助理教师"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+         <el-select v-model="queryParams.zljs" filterable placeholder="请选择助理教师">
+          <el-option
+            v-for="item in zljsOptions"
+            :key="item.userId"
+            :label="item.nickName"
+            :value="item.userId"
+            :disabled="item.status == 1"
+          ></el-option>
+        </el-select>
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -97,11 +103,11 @@
     <el-table v-loading="loading" :data="classList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="班级编号" align="center" prop="bjbh" v-if="false" />>
-      <el-table-column label="班级类型" align="center" :formatter="bjtypeFormat" prop="bjtype" /> 
+      <el-table-column label="班级类型" align="center" :formatter="bjtypeFormat" prop="bjtype" />
       <el-table-column label="班级名称" align="center" prop="bjmc" />
-      <el-table-column label="主班教师" align="center" prop="zbjs" />
-      <el-table-column label="配班教师" align="center" prop="pbjs" />
-      <el-table-column label="助理教师" align="center" prop="zljs" />
+      <el-table-column label="主班教师" align="center" prop="zbjsxm" />
+      <el-table-column label="配班教师" align="center" prop="pbjsxm" />
+      <el-table-column label="助理教师" align="center" prop="zljsxm" />
       <el-table-column label="创建时间" align="center" prop="createtime" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createtime) }}</span>
@@ -152,13 +158,37 @@
           <el-input v-model="form.bjmc" placeholder="请输入班级名称" />
         </el-form-item>
         <el-form-item label="主班教师" prop="zbjs">
-          <el-input v-model="form.zbjs" placeholder="请输入主班教师" />
+          <el-select v-model="form.zbjs" placeholder="请选择主班教师">
+            <el-option
+              v-for="item in zbjsOptions"
+              :key="item.userId"
+              :label="item.nickName"
+              :value="item.userId"
+              :disabled="item.status == 1"
+            ></el-option>
+          </el-select>
         </el-form-item>
         <el-form-item label="配班教师" prop="pbjs">
-          <el-input v-model="form.pbjs" placeholder="请输入配班教师" />
+          <el-select v-model="form.pbjs" placeholder="请选择配班教师">
+            <el-option
+              v-for="item in pbjsOptions"
+              :key="item.userId"
+              :label="item.nickName"
+              :value="item.userId"
+              :disabled="item.status == 1"
+            ></el-option>
+          </el-select>
         </el-form-item>
         <el-form-item label="助理教师" prop="zljs">
-          <el-input v-model="form.zljs" placeholder="请输入助理教师" />
+          <el-select v-model="form.zljs" placeholder="请选择助理教师">
+            <el-option
+              v-for="item in zljsOptions"
+              :key="item.userId"
+              :label="item.nickName"
+              :value="item.userId"
+              :disabled="item.status == 1"
+            ></el-option>
+          </el-select>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -178,6 +208,7 @@ import {
   updateClass,
   exportClass
 } from "@/api/system/class";
+import { getUsersByRoleId } from "@/api/system/user";
 
 export default {
   name: "Class",
@@ -201,16 +232,25 @@ export default {
       open: false,
       //班级类型 字典
       bjtypeOptions: [],
+      //主班教师角色用户
+      zbjsOptions: [],
+      //配班教师角色用户
+      pbjsOptions: [],
+      //助理教师角色用户
+      zljsOptions: [],
       // 查询参数
       queryParams: {
         pageNum: 1,
         pageSize: 10,
         deptId: undefined,
-        bjtype: undefined, 
-        bjmc: undefined,       
+        bjtype: undefined,
+        bjmc: undefined,
         zbjs: undefined,
         pbjs: undefined,
         zljs: undefined,
+        zbjsxm: undefined,
+        pbjsxm: undefined,
+        zljsxm: undefined,
         createtime: undefined
       },
       // 表单参数
@@ -229,6 +269,12 @@ export default {
     this.getDicts("sys_yebjlx").then(response => {
       this.bjtypeOptions = response.data;
     });
+    //获取主班教师角色用户列表
+    getUsersByRoleId().then(response => {
+      this.zbjsOptions = response.zbjs;
+      this.pbjsOptions = response.pbjs;
+      this.zljsOptions = response.zljs;
+    });
   },
   methods: {
     /** 查询班级信息列表 */
@@ -258,7 +304,7 @@ export default {
         bjmc: undefined,
         zbjs: undefined,
         pbjs: undefined,
-        zljs: undefined, 
+        zljs: undefined,
         createtime: undefined
       };
       this.resetForm("form");
@@ -284,6 +330,12 @@ export default {
       this.reset();
       this.open = true;
       this.title = "添加班级信息";
+      //获取主班教师角色用户列表
+      getUsersByRoleId().then(response => {
+        this.zbjsOptions = response.zbjs;
+        this.pbjsOptions = response.pbjs;
+        this.zljsOptions = response.zljs;
+      });
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
@@ -293,6 +345,13 @@ export default {
         this.form = response.data;
         this.open = true;
         this.title = "修改班级信息";
+
+        //获取主班教师角色用户列表
+        getUsersByRoleId().then(response => {
+          this.zbjsOptions = response.zbjs;
+          this.pbjsOptions = response.pbjs;
+          this.zljsOptions = response.zljs;
+        });
       });
     },
     /** 提交按钮 */
@@ -326,15 +385,11 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const bjbhs = row.bjbh || this.ids;
-      this.$confirm(
-        '是否确认删除选中的班级信息?',
-        "警告",
-        {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }
-      )
+      this.$confirm("是否确认删除选中的班级信息?", "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      })
         .then(function() {
           return delClass(bjbhs);
         })
diff --git a/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysUserController.java b/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysUserController.java
index c57ebf87f..2b1e863c1 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysUserController.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysUserController.java
@@ -34,13 +34,12 @@ import com.ruoyi.project.system.domain.SysUser;
 
 /**
  * 用户信息
- * 
+ *
  * @author ruoyi
  */
 @RestController
 @RequestMapping("/system/user")
-public class SysUserController extends BaseController
-{
+public class SysUserController extends BaseController {
     @Autowired
     private ISysUserService userService;
 
@@ -60,17 +59,12 @@ public class SysUserController extends BaseController
     private SchoolCommon schoolCommon;
 
 
-
-
-
-
     /**
      * 获取用户列表
      */
     @PreAuthorize("@ss.hasPermi('system:user:list')")
     @GetMapping("/list")
-    public TableDataInfo list(SysUser user)
-    {
+    public TableDataInfo list(SysUser user) {
         startPage();
         List<SysUser> list = userService.selectUserList(user);
         return getDataTable(list);
@@ -79,8 +73,7 @@ public class SysUserController extends BaseController
     @Log(title = "用户管理", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('system:user:export')")
     @GetMapping("/export")
-    public AjaxResult export(SysUser user)
-    {
+    public AjaxResult export(SysUser user) {
         List<SysUser> list = userService.selectUserList(user);
         ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
         return util.exportExcel(list, "用户数据");
@@ -89,8 +82,7 @@ public class SysUserController extends BaseController
     @Log(title = "用户管理", businessType = BusinessType.IMPORT)
     @PreAuthorize("@ss.hasPermi('system:user:import')")
     @PostMapping("/importData")
-    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
-    {
+    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
         ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
         List<SysUser> userList = util.importExcel(file.getInputStream());
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
@@ -100,8 +92,7 @@ public class SysUserController extends BaseController
     }
 
     @GetMapping("/importTemplate")
-    public AjaxResult importTemplate()
-    {
+    public AjaxResult importTemplate() {
         ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
         return util.importTemplateExcel("用户数据");
     }
@@ -110,30 +101,26 @@ public class SysUserController extends BaseController
      * 根据用户编号获取详细信息
      */
     @PreAuthorize("@ss.hasPermi('system:user:query')")
-    @GetMapping(value = { "/", "/{userId}" })
-    public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId)
-    {
+    @GetMapping(value = {"/", "/{userId}"})
+    public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) {
         AjaxResult ajax = AjaxResult.success();
         //在添加用户时判断是否为幼儿园平台
-        if(schoolCommon.isSchool()==true)
-        {
+        if (schoolCommon.isSchool() == true) {
             //只显示幼儿园相关的岗位和角色
             ajax.put("roles", roleService.selectYeyRoleAll());
             ajax.put("posts", postService.selectYeyPostAll());
-        }else {
+        } else {
             ajax.put("roles", roleService.selectRoleAll());
             ajax.put("posts", postService.selectPostAll());
         }
 
         //在修改用户时判断是否为幼儿园平台
-        if (StringUtils.isNotNull(userId))
-        {
-            if (schoolCommon.isSchool()==true)
-            {
+        if (StringUtils.isNotNull(userId)) {
+            if (schoolCommon.isSchool() == true) {
                 ajax.put(AjaxResult.DATA_TAG, userService.selectUserById(userId));
                 ajax.put("postIds", postService.selectYeyPostListByUserId(userId));
                 ajax.put("roleIds", roleService.selectYeyRoleListByUserId(userId));
-            }else {
+            } else {
 
             }
             ajax.put(AjaxResult.DATA_TAG, userService.selectUserById(userId));
@@ -143,33 +130,53 @@ public class SysUserController extends BaseController
         return ajax;
     }
 
+    /**
+     * 根据岗位id获取用户信息列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:query')")
+    @GetMapping("/listbyroleid")
+    public AjaxResult getUserList() {
+        AjaxResult ajax = AjaxResult.success();
+        Long deptId=SecurityUtils.getLoginUser().getUser().getDept().getDeptId();
+        SysUser user=new SysUser();
+        //主班教师
+        user.setUserId((long)102);
+        user.setDeptId(deptId);
+        ajax.put("zbjs", userService.selectUserListByRoleId(user));
+        //配班教师
+        user=new SysUser();
+        user.setUserId((long)104);
+        user.setDeptId(deptId);
+        ajax.put("pbjs", userService.selectUserListByRoleId(user));
+        //助理教师
+        user=new SysUser();
+        user.setUserId((long)105);
+        user.setDeptId(deptId);
+        ajax.put("zljs", userService.selectUserListByRoleId(user));
+
+        return ajax;
+    }
+
     /**
      * 新增用户
      */
     @PreAuthorize("@ss.hasPermi('system:user:add')")
     @Log(title = "用户管理", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@Validated @RequestBody SysUser user)
-    {
-        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName())))
-        {
+    public AjaxResult add(@Validated @RequestBody SysUser user) {
+        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName()))) {
             return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
-        }
-        else if (UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
-        {
+        } else if (UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) {
             return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
-        }
-        else if (UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
-        {
+        } else if (UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) {
             return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
         }
         user.setPhonenumber(user.getUserName());
-        user.setEmail(user.getUserName()+"@benyi.com");
+        user.setEmail(user.getUserName() + "@benyi.com");
         user.setCreateBy(SecurityUtils.getUsername());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
         int bl = userService.insertUser(user);
-        if (bl>0)
-        {
+        if (bl > 0) {
             ByTeacherJbxx byTeacherJbxx = new ByTeacherJbxx();
             //并赋值给教师userid
             //user可以直接获取出入数据的主键值
@@ -188,15 +195,11 @@ public class SysUserController extends BaseController
     @PreAuthorize("@ss.hasPermi('system:user:edit')")
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@Validated @RequestBody SysUser user)
-    {
+    public AjaxResult edit(@Validated @RequestBody SysUser user) {
         userService.checkUserAllowed(user);
-        if (UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
-        {
+        if (UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) {
             return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
-        }
-        else if (UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
-        {
+        } else if (UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) {
             return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
         }
         user.setUpdateBy(SecurityUtils.getUsername());
@@ -209,8 +212,7 @@ public class SysUserController extends BaseController
     @PreAuthorize("@ss.hasPermi('system:user:remove')")
     @Log(title = "用户管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{userIds}")
-    public AjaxResult remove(@PathVariable Long[] userIds)
-    {
+    public AjaxResult remove(@PathVariable Long[] userIds) {
         return toAjax(userService.deleteUserByIds(userIds));
     }
 
@@ -220,8 +222,7 @@ public class SysUserController extends BaseController
     @PreAuthorize("@ss.hasPermi('system:user:edit')")
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @PutMapping("/resetPwd")
-    public AjaxResult resetPwd(@RequestBody SysUser user)
-    {
+    public AjaxResult resetPwd(@RequestBody SysUser user) {
         userService.checkUserAllowed(user);
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
         user.setUpdateBy(SecurityUtils.getUsername());
@@ -234,8 +235,7 @@ public class SysUserController extends BaseController
     @PreAuthorize("@ss.hasPermi('system:user:edit')")
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @PutMapping("/changeStatus")
-    public AjaxResult changeStatus(@RequestBody SysUser user)
-    {
+    public AjaxResult changeStatus(@RequestBody SysUser user) {
         userService.checkUserAllowed(user);
         user.setUpdateBy(SecurityUtils.getUsername());
         return toAjax(userService.updateUserStatus(user));
diff --git a/ruoyi/src/main/java/com/ruoyi/project/system/domain/ByClass.java b/ruoyi/src/main/java/com/ruoyi/project/system/domain/ByClass.java
index 8eefd8a39..b2e5920c2 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/system/domain/ByClass.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/system/domain/ByClass.java
@@ -70,18 +70,33 @@ public class ByClass extends BaseEntity {
     @Excel(name = "主班教师")
     private Long zbjs;
 
+    /**
+     * 主班教师名称
+     */
+    private String zbjsxm;
+
     /**
      * 配班教师
      */
     @Excel(name = "配班教师")
     private Long pbjs;
 
+    /**
+     * 配班教师名称
+     */
+    private String pbjsxm;
+
     /**
      * 助理教师
      */
     @Excel(name = "助理教师")
     private Long zljs;
 
+    /**
+     * 助理教师名称
+     */
+    private String zljsxm;
+
     /**
      * 是否删除
      * 1:删除
@@ -166,6 +181,13 @@ public class ByClass extends BaseEntity {
     public Long getZbjs() {
         return zbjs;
     }
+    public void setZbjsxm(String zbjsxm) {
+        this.zbjsxm = zbjsxm;
+    }
+
+    public String getZbjsxm() {
+        return zbjsxm;
+    }
 
     public void setPbjs(Long pbjs) {
         this.pbjs = pbjs;
@@ -174,6 +196,13 @@ public class ByClass extends BaseEntity {
     public Long getPbjs() {
         return pbjs;
     }
+    public void setPbjsxm(String pbjsxm) {
+        this.pbjsxm = pbjsxm;
+    }
+
+    public String getPbjsxm() {
+        return pbjsxm;
+    }
 
     public void setZljs(Long zljs) {
         this.zljs = zljs;
@@ -182,6 +211,13 @@ public class ByClass extends BaseEntity {
     public Long getZljs() {
         return zljs;
     }
+    public void setZljsxm(String zljsxm) {
+        this.zljsxm = zljsxm;
+    }
+
+    public String getZljsxm() {
+        return zljsxm;
+    }
 
     public void setIsdel(String isdel) {
         this.isdel = isdel;
@@ -211,8 +247,11 @@ public class ByClass extends BaseEntity {
                 .append("bjrych", getBjrych())
                 .append("jbny", getJbny())
                 .append("zbjs", getZbjs())
+                .append("zbjsxm", getZbjsxm())
                 .append("pbjs", getPbjs())
+                .append("pbjsxm", getPbjsxm())
                 .append("zljs", getZljs())
+                .append("zljsxm", getZljsxm())
                 .append("isdel", getIsdel())
                 .append("createtime", getCreatetime())
                 .toString();
diff --git a/ruoyi/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java b/ruoyi/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java
index bb073350f..bb085db0c 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java
@@ -37,6 +37,14 @@ public interface SysUserMapper
      */
     public SysUser selectUserById(Long userId);
 
+    /**
+     * 根据roleId查询用户列表
+     *
+     * @param sysUser 用户信息
+     * @return 用户信息集合信息
+     */
+    public List<SysUser> selectUserListByRoleId(SysUser user);
+
     /**
      * 新增用户信息
      * 
diff --git a/ruoyi/src/main/java/com/ruoyi/project/system/service/ISysUserService.java b/ruoyi/src/main/java/com/ruoyi/project/system/service/ISysUserService.java
index 3b79a1d9a..be03844ed 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/system/service/ISysUserService.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/system/service/ISysUserService.java
@@ -34,6 +34,14 @@ public interface ISysUserService
      */
     public SysUser selectUserById(Long userId);
 
+    /**
+     * 根据roleId查询用户列表
+     *
+     * @param sysUser 用户信息
+     * @return 用户信息集合信息
+     */
+    public List<SysUser> selectUserListByRoleId(SysUser user);
+
     /**
      * 根据用户ID查询用户所属角色组
      * 
diff --git a/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java b/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java
index 77affcb80..404ac1e4b 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java
@@ -2,6 +2,7 @@ package com.ruoyi.project.system.service.impl;
 
 import java.util.ArrayList;
 import java.util.List;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,12 +28,11 @@ import com.ruoyi.project.system.service.ISysUserService;
 
 /**
  * 用户 业务层处理
- * 
+ *
  * @author ruoyi
  */
 @Service
-public class SysUserServiceImpl implements ISysUserService
-{
+public class SysUserServiceImpl implements ISysUserService {
     private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class);
 
     @Autowired
@@ -55,58 +55,63 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 根据条件分页查询用户列表
-     * 
+     *
      * @param user 用户信息
      * @return 用户信息集合信息
      */
     @Override
     @DataScope(deptAlias = "d", userAlias = "u")
-    public List<SysUser> selectUserList(SysUser user)
-    {
+    public List<SysUser> selectUserList(SysUser user) {
         return userMapper.selectUserList(user);
     }
 
     /**
      * 通过用户名查询用户
-     * 
+     *
      * @param userName 用户名
      * @return 用户对象信息
      */
     @Override
-    public SysUser selectUserByUserName(String userName)
-    {
+    public SysUser selectUserByUserName(String userName) {
         return userMapper.selectUserByUserName(userName);
     }
 
     /**
      * 通过用户ID查询用户
-     * 
+     *
      * @param userId 用户ID
      * @return 用户对象信息
      */
     @Override
-    public SysUser selectUserById(Long userId)
-    {
+    public SysUser selectUserById(Long userId) {
         return userMapper.selectUserById(userId);
     }
 
+    /**
+     * 根据roleId查询用户列表
+     *
+     * @param user 用户信息
+     * @return 用户信息集合信息
+     */
+    @Override
+    public List<SysUser> selectUserListByRoleId(SysUser sysUser) {
+        return userMapper.selectUserListByRoleId(sysUser);
+    }
+
     /**
      * 查询用户所属角色组
-     * 
+     *
      * @param userName 用户名
      * @return 结果
      */
     @Override
-    public String selectUserRoleGroup(String userName)
-    {
+    public String selectUserRoleGroup(String userName) {
         List<SysRole> list = roleMapper.selectRolesByUserName(userName);
         StringBuffer idsStr = new StringBuffer();
-        for (SysRole role : list)
-        {
+        for (SysRole role : list) {
             idsStr.append(role.getRoleName()).append(",");
         }
-        if (StringUtils.isNotEmpty(idsStr.toString()))
-        {
+        if (StringUtils.isNotEmpty(idsStr.toString())) {
             return idsStr.substring(0, idsStr.length() - 1);
         }
         return idsStr.toString();
@@ -114,21 +119,18 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 查询用户所属岗位组
-     * 
+     *
      * @param userName 用户名
      * @return 结果
      */
     @Override
-    public String selectUserPostGroup(String userName)
-    {
+    public String selectUserPostGroup(String userName) {
         List<SysPost> list = postMapper.selectPostsByUserName(userName);
         StringBuffer idsStr = new StringBuffer();
-        for (SysPost post : list)
-        {
+        for (SysPost post : list) {
             idsStr.append(post.getPostName()).append(",");
         }
-        if (StringUtils.isNotEmpty(idsStr.toString()))
-        {
+        if (StringUtils.isNotEmpty(idsStr.toString())) {
             return idsStr.substring(0, idsStr.length() - 1);
         }
         return idsStr.toString();
@@ -136,16 +138,14 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 校验用户名称是否唯一
-     * 
+     *
      * @param userName 用户名称
      * @return 结果
      */
     @Override
-    public String checkUserNameUnique(String userName)
-    {
+    public String checkUserNameUnique(String userName) {
         int count = userMapper.checkUserNameUnique(userName);
-        if (count > 0)
-        {
+        if (count > 0) {
             return UserConstants.NOT_UNIQUE;
         }
         return UserConstants.UNIQUE;
@@ -158,12 +158,10 @@ public class SysUserServiceImpl implements ISysUserService
      * @return
      */
     @Override
-    public String checkPhoneUnique(SysUser user)
-    {
+    public String checkPhoneUnique(SysUser user) {
         Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
         SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber());
-        if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
-        {
+        if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) {
             return UserConstants.NOT_UNIQUE;
         }
         return UserConstants.UNIQUE;
@@ -176,12 +174,10 @@ public class SysUserServiceImpl implements ISysUserService
      * @return
      */
     @Override
-    public String checkEmailUnique(SysUser user)
-    {
+    public String checkEmailUnique(SysUser user) {
         Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
         SysUser info = userMapper.checkEmailUnique(user.getEmail());
-        if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
-        {
+        if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) {
             return UserConstants.NOT_UNIQUE;
         }
         return UserConstants.UNIQUE;
@@ -189,27 +185,24 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 校验用户是否允许操作
-     * 
+     *
      * @param user 用户信息
      */
-    public void checkUserAllowed(SysUser user)
-    {
-        if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin())
-        {
+    public void checkUserAllowed(SysUser user) {
+        if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) {
             throw new CustomException("不允许操作超级管理员用户");
         }
     }
 
     /**
      * 新增保存用户信息
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
     @Override
     @Transactional
-    public int insertUser(SysUser user)
-    {
+    public int insertUser(SysUser user) {
         // 新增用户信息
         int rows = userMapper.insertUser(user);
         // 新增用户岗位关联
@@ -221,14 +214,13 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 修改保存用户信息
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
     @Override
     @Transactional
-    public int updateUser(SysUser user)
-    {
+    public int updateUser(SysUser user) {
         Long userId = user.getUserId();
         // 删除用户与角色关联
         userRoleMapper.deleteUserRoleByUserId(userId);
@@ -243,86 +235,77 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 修改用户状态
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
     @Override
-    public int updateUserStatus(SysUser user)
-    {
+    public int updateUserStatus(SysUser user) {
         return userMapper.updateUser(user);
     }
 
     /**
      * 修改用户基本信息
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
     @Override
-    public int updateUserProfile(SysUser user)
-    {
+    public int updateUserProfile(SysUser user) {
         return userMapper.updateUser(user);
     }
 
     /**
      * 修改用户头像
-     * 
+     *
      * @param userId 用户ID
      * @param avatar 头像地址
      * @return 结果
      */
-    public boolean updateUserAvatar(String userName, String avatar)
-    {
+    public boolean updateUserAvatar(String userName, String avatar) {
         return userMapper.updateUserAvatar(userName, avatar) > 0;
     }
 
     /**
      * 重置用户密码
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
     @Override
-    public int resetPwd(SysUser user)
-    {
+    public int resetPwd(SysUser user) {
         return userMapper.updateUser(user);
     }
 
     /**
      * 重置用户密码
-     * 
+     *
      * @param userName 用户名
      * @param password 密码
      * @return 结果
      */
     @Override
-    public int resetUserPwd(String userName, String password)
-    {
+    public int resetUserPwd(String userName, String password) {
         return userMapper.resetUserPwd(userName, password);
     }
 
     /**
      * 新增用户角色信息
-     * 
+     *
      * @param user 用户对象
      */
-    public void insertUserRole(SysUser user)
-    {
+    public void insertUserRole(SysUser user) {
         Long[] roles = user.getRoleIds();
-        if (StringUtils.isNotNull(roles))
-        {
+        if (StringUtils.isNotNull(roles)) {
             // 新增用户与角色管理
             List<SysUserRole> list = new ArrayList<SysUserRole>();
-            for (Long roleId : roles)
-            {
+            for (Long roleId : roles) {
                 SysUserRole ur = new SysUserRole();
                 ur.setUserId(user.getUserId());
                 ur.setRoleId(roleId);
                 list.add(ur);
             }
-            if (list.size() > 0)
-            {
+            if (list.size() > 0) {
                 userRoleMapper.batchUserRole(list);
             }
         }
@@ -330,25 +313,21 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 新增用户岗位信息
-     * 
+     *
      * @param user 用户对象
      */
-    public void insertUserPost(SysUser user)
-    {
+    public void insertUserPost(SysUser user) {
         Long[] posts = user.getPostIds();
-        if (StringUtils.isNotNull(posts))
-        {
+        if (StringUtils.isNotNull(posts)) {
             // 新增用户与岗位管理
             List<SysUserPost> list = new ArrayList<SysUserPost>();
-            for (Long postId : posts)
-            {
+            for (Long postId : posts) {
                 SysUserPost up = new SysUserPost();
                 up.setUserId(user.getUserId());
                 up.setPostId(postId);
                 list.add(up);
             }
-            if (list.size() > 0)
-            {
+            if (list.size() > 0) {
                 userPostMapper.batchUserPost(list);
             }
         }
@@ -356,13 +335,12 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 通过用户ID删除用户
-     * 
+     *
      * @param userId 用户ID
      * @return 结果
      */
     @Override
-    public int deleteUserById(Long userId)
-    {
+    public int deleteUserById(Long userId) {
         // 删除用户与角色关联
         userRoleMapper.deleteUserRoleByUserId(userId);
         // 删除用户与岗位表
@@ -372,14 +350,12 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 批量删除用户信息
-     * 
+     *
      * @param userIds 需要删除的用户ID
      * @return 结果
      */
-    public int deleteUserByIds(Long[] userIds)
-    {
-        for (Long userId : userIds)
-        {
+    public int deleteUserByIds(Long[] userIds) {
+        for (Long userId : userIds) {
             checkUserAllowed(new SysUser(userId));
         }
         return userMapper.deleteUserByIds(userIds);
@@ -387,17 +363,15 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 导入用户数据
-     * 
-     * @param userList 用户数据列表
+     *
+     * @param userList        用户数据列表
      * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
-     * @param operName 操作用户
+     * @param operName        操作用户
      * @return 结果
      */
     @Override
-    public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName)
-    {
-        if (StringUtils.isNull(userList) || userList.size() == 0)
-        {
+    public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName) {
+        if (StringUtils.isNull(userList) || userList.size() == 0) {
             throw new CustomException("导入用户数据不能为空!");
         }
         int successNum = 0;
@@ -405,48 +379,36 @@ public class SysUserServiceImpl implements ISysUserService
         StringBuilder successMsg = new StringBuilder();
         StringBuilder failureMsg = new StringBuilder();
         String password = configService.selectConfigByKey("sys.user.initPassword");
-        for (SysUser user : userList)
-        {
-            try
-            {
+        for (SysUser user : userList) {
+            try {
                 // 验证是否存在这个用户
                 SysUser u = userMapper.selectUserByUserName(user.getUserName());
-                if (StringUtils.isNull(u))
-                {
+                if (StringUtils.isNull(u)) {
                     user.setPassword(SecurityUtils.encryptPassword(password));
                     user.setCreateBy(operName);
                     this.insertUser(user);
                     successNum++;
                     successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 导入成功");
-                }
-                else if (isUpdateSupport)
-                {
+                } else if (isUpdateSupport) {
                     user.setUpdateBy(operName);
                     this.updateUser(user);
                     successNum++;
                     successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 更新成功");
-                }
-                else
-                {
+                } else {
                     failureNum++;
                     failureMsg.append("<br/>" + failureNum + "、账号 " + user.getUserName() + " 已存在");
                 }
-            }
-            catch (Exception e)
-            {
+            } catch (Exception e) {
                 failureNum++;
                 String msg = "<br/>" + failureNum + "、账号 " + user.getUserName() + " 导入失败:";
                 failureMsg.append(msg + e.getMessage());
                 log.error(msg, e);
             }
         }
-        if (failureNum > 0)
-        {
+        if (failureNum > 0) {
             failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
             throw new CustomException(failureMsg.toString());
-        }
-        else
-        {
+        } else {
             successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
         }
         return successMsg.toString();
diff --git a/ruoyi/src/main/resources/mybatis/system/ByClassMapper.xml b/ruoyi/src/main/resources/mybatis/system/ByClassMapper.xml
index 02ca0d572..d373c3de4 100644
--- a/ruoyi/src/main/resources/mybatis/system/ByClassMapper.xml
+++ b/ruoyi/src/main/resources/mybatis/system/ByClassMapper.xml
@@ -14,14 +14,21 @@
         <result property="bjrych" column="bjrych"/>
         <result property="jbny" column="jbny"/>
         <result property="zbjs" column="zbjs"/>
+        <result property="zbjsxm" column="zbjsxm"/>
         <result property="pbjs" column="pbjs"/>
+        <result property="pbjsxm" column="pbjsxm"/>
         <result property="zljs" column="zljs"/>
+        <result property="zljsxm" column="zljsxm"/>
         <result property="isdel" column="isdel"/>
         <result property="createtime" column="createtime"/>
     </resultMap>
 
     <sql id="selectByClassVo">
-        select bjbh, dept_id, bjtype, bhxh, xn, bjmc, bjrych, jbny, zbjs, pbjs, zljs, isdel, createtime from by_class d
+        select bjbh, dept_id, bjtype, bhxh, xn, bjmc, bjrych, jbny,
+        zbjs,(select nick_name from sys_user where sys_user.user_id=zbjs) zbjsxm,
+        pbjs, (select nick_name from sys_user where sys_user.user_id=pbjs) pbjsxm,
+        zljs, (select nick_name from sys_user where sys_user.user_id=zljs) zljsxm,
+        isdel, createtime from by_class d
     </sql>
 
     <select id="selectByClassList" parameterType="ByClass" resultMap="ByClassResult">
@@ -37,6 +44,9 @@
         <if test="zbjs != null ">and zbjs = #{zbjs}</if>
         <if test="pbjs != null ">and pbjs = #{pbjs}</if>
         <if test="zljs != null ">and zljs = #{zljs}</if>
+        <if test="zbjsxm != null and zbjsxm != ''" >and zbjsxm like concat('%', #{zbjsxm}, '%')</if>
+        <if test="pbjsxm != null and pbjsxm != ''" >and pbjsxm like concat('%', #{pbjsxm}, '%')</if>
+        <if test="zljsxm != null and zljsxm != ''" >and zljsxm like concat('%', #{zljsxm}, '%')</if>
         <if test="isdel != null  and isdel != ''">and isdel = #{isdel}</if>
         <if test="createtime != null ">and createtime = #{createtime}</if>
         <!-- 数据范围过滤 -->
diff --git a/ruoyi/src/main/resources/mybatis/system/SysUserMapper.xml b/ruoyi/src/main/resources/mybatis/system/SysUserMapper.xml
index 2e6969cb7..69adf67ef 100644
--- a/ruoyi/src/main/resources/mybatis/system/SysUserMapper.xml
+++ b/ruoyi/src/main/resources/mybatis/system/SysUserMapper.xml
@@ -90,6 +90,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<include refid="selectUserVo"/>
 		where u.user_id = #{userId}
 	</select>
+
+	<select id="selectUserListByRoleId" parameterType="SysUser" resultMap="SysUserResult">
+		select  u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader
+		from sys_user u
+		left join sys_dept d on u.dept_id = d.dept_id
+		left join sys_user_role ur on u.user_id = ur.user_id
+		left join sys_role r on r.role_id = ur.role_id
+		where  u.del_flag = '0'
+		<if test="userId != null and userId != ''">
+			and r.role_id = #{userId}
+		</if>
+		<if test="deptId != null and deptId != 0">
+			AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE FIND_IN_SET (#{deptId},ancestors) ))
+		</if>
+
+	</select>
 	
 	<select id="checkUserNameUnique" parameterType="String" resultType="int">
 		select count(1) from sys_user where user_name = #{userName}