소스 검색

用户信息增加讲师介绍

yangfeng 1 년 전
부모
커밋
f4405e1588

+ 433 - 426
system/system-biz/src/main/java/org/jeecg/modules/system/controller/SysRoleController.java

@@ -1,56 +1,42 @@
 package org.jeecg.modules.system.controller;
 
 
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.config.TenantContext;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.config.mybatis.MybatisPlusSaasConfig;
-import org.jeecg.modules.system.entity.*;
+import org.jeecg.modules.system.entity.SysPermission;
+import org.jeecg.modules.system.entity.SysPermissionDataRule;
+import org.jeecg.modules.system.entity.SysRole;
+import org.jeecg.modules.system.entity.SysRolePermission;
 import org.jeecg.modules.system.model.TreeModel;
 import org.jeecg.modules.system.service.*;
-import org.jeecg.modules.system.vo.SysUserRoleCountVo;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
 import org.jeecgframework.poi.excel.entity.ImportParams;
 import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.servlet.ModelAndView;
-import org.jeecg.common.system.vo.LoginUser;
-import org.apache.shiro.SecurityUtils;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 
-import lombok.extern.slf4j.Slf4j;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.*;
 
 /**
  * <p>
@@ -64,415 +50,436 @@ import lombok.extern.slf4j.Slf4j;
 @RequestMapping("/sys/role")
 @Slf4j
 public class SysRoleController {
-	@Autowired
-	private ISysRoleService sysRoleService;
-	
-	@Autowired
-	private ISysPermissionDataRuleService sysPermissionDataRuleService;
-	
-	@Autowired
-	private ISysRolePermissionService sysRolePermissionService;
-	
-	@Autowired
-	private ISysPermissionService sysPermissionService;
+    @Autowired
+    private ISysRoleService sysRoleService;
+
+    @Autowired
+    private ISysPermissionDataRuleService sysPermissionDataRuleService;
+
+    @Autowired
+    private ISysRolePermissionService sysRolePermissionService;
+
+    @Autowired
+    private ISysPermissionService sysPermissionService;
 
     @Autowired
     private ISysUserRoleService sysUserRoleService;
 
-	/**
-	  * 分页列表查询 【系统角色,不做租户隔离】
-	 * @param role
-	 * @param pageNo
-	 * @param pageSize
-	 * @param req
-	 * @return
-	 */
-	//@RequiresPermissions("system:role:list")
-	@RequestMapping(value = "/list", method = RequestMethod.GET)
-	public Result<IPage<SysRole>> queryPageList(SysRole role,
-									  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-									  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-									  HttpServletRequest req) {
-		Result<IPage<SysRole>> result = new Result<IPage<SysRole>>();
-		QueryWrapper<SysRole> queryWrapper = QueryGenerator.initQueryWrapper(role, req.getParameterMap());
-		Page<SysRole> page = new Page<SysRole>(pageNo, pageSize);
-		IPage<SysRole> pageList = sysRoleService.page(page, queryWrapper);
-		result.setSuccess(true);
-		result.setResult(pageList);
-		return result;
-	}
-	
-	/**
-	 * 分页列表查询【租户角色,做租户隔离】
-	 * @param role
-	 * @param pageNo
-	 * @param pageSize
-	 * @param req
-	 * @return
-	 */
-	@RequestMapping(value = "/listByTenant", method = RequestMethod.GET)
-	public Result<IPage<SysRole>> listByTenant(SysRole role,
-												@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-												@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-												HttpServletRequest req) {
-		Result<IPage<SysRole>> result = new Result<IPage<SysRole>>();
-		//------------------------------------------------------------------------------------------------
-		//是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
-		if(MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL){
-			role.setTenantId(oConvertUtils.getInt(TenantContext.getTenant(),0));
-		}
-		//------------------------------------------------------------------------------------------------
-		QueryWrapper<SysRole> queryWrapper = QueryGenerator.initQueryWrapper(role, req.getParameterMap());
-		Page<SysRole> page = new Page<SysRole>(pageNo, pageSize);
-		IPage<SysRole> pageList = sysRoleService.page(page, queryWrapper);
-		result.setSuccess(true);
-		result.setResult(pageList);
-		return result;
-	}
-	
-	/**
-	  *   添加
-	 * @param role
-	 * @return
-	 */
-	@RequestMapping(value = "/add", method = RequestMethod.POST)
+    /**
+     * 分页列表查询 【系统角色,不做租户隔离】
+     *
+     * @param role
+     * @param pageNo
+     * @param pageSize
+     * @param req
+     * @return
+     */
+    //@RequiresPermissions("system:role:list")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    public Result<IPage<SysRole>> queryPageList(SysRole role,
+                                                @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                                @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                                HttpServletRequest req) {
+        Result<IPage<SysRole>> result = new Result<IPage<SysRole>>();
+        QueryWrapper<SysRole> queryWrapper = QueryGenerator.initQueryWrapper(role, req.getParameterMap());
+        Page<SysRole> page = new Page<SysRole>(pageNo, pageSize);
+        IPage<SysRole> pageList = sysRoleService.page(page, queryWrapper);
+        result.setSuccess(true);
+        result.setResult(pageList);
+        return result;
+    }
+
+    /**
+     * 分页列表查询【租户角色,做租户隔离】
+     *
+     * @param role
+     * @param pageNo
+     * @param pageSize
+     * @param req
+     * @return
+     */
+    @RequestMapping(value = "/listByTenant", method = RequestMethod.GET)
+    public Result<IPage<SysRole>> listByTenant(SysRole role,
+                                               @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                               @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                               HttpServletRequest req) {
+        Result<IPage<SysRole>> result = new Result<IPage<SysRole>>();
+        //------------------------------------------------------------------------------------------------
+        //是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
+        if (MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL) {
+            role.setTenantId(oConvertUtils.getInt(TenantContext.getTenant(), 0));
+        }
+        //------------------------------------------------------------------------------------------------
+        QueryWrapper<SysRole> queryWrapper = QueryGenerator.initQueryWrapper(role, req.getParameterMap());
+        Page<SysRole> page = new Page<SysRole>(pageNo, pageSize);
+        IPage<SysRole> pageList = sysRoleService.page(page, queryWrapper);
+        result.setSuccess(true);
+        result.setResult(pageList);
+        return result;
+    }
+
+    /**
+     * 添加
+     *
+     * @param role
+     * @return
+     */
+    @RequestMapping(value = "/add", method = RequestMethod.POST)
     @RequiresPermissions("system:role:add")
-	public Result<SysRole> add(@RequestBody SysRole role) {
-		Result<SysRole> result = new Result<SysRole>();
-		try {
-			role.setCreateTime(new Date());
-			sysRoleService.save(role);
-			result.success("添加成功!");
-		} catch (Exception e) {
-			log.error(e.getMessage(), e);
-			result.error500("操作失败");
-		}
-		return result;
-	}
-	
-	/**
-	  *  编辑
-	 * @param role
-	 * @return
-	 */
+    public Result<SysRole> add(@RequestBody SysRole role) {
+        Result<SysRole> result = new Result<SysRole>();
+        try {
+            role.setCreateTime(new Date());
+            sysRoleService.save(role);
+            result.success("添加成功!");
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            result.error500("操作失败");
+        }
+        return result;
+    }
+
+    /**
+     * 编辑
+     *
+     * @param role
+     * @return
+     */
     @RequiresPermissions("system:role:edit")
-	@RequestMapping(value = "/edit",method = {RequestMethod.PUT,RequestMethod.POST})
-	public Result<SysRole> edit(@RequestBody SysRole role) {
-		Result<SysRole> result = new Result<SysRole>();
-		SysRole sysrole = sysRoleService.getById(role.getId());
-		if(sysrole==null) {
-			result.error500("未找到对应实体");
-		}else {
-			role.setUpdateTime(new Date());
-			boolean ok = sysRoleService.updateById(role);
-			//TODO 返回false说明什么?
-			if(ok) {
-				result.success("修改成功!");
-			}
-		}
-		
-		return result;
-	}
-	
-	/**
-	  *   通过id删除
-	 * @param id
-	 * @return
-	 */
+    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
+    public Result<SysRole> edit(@RequestBody SysRole role) {
+        Result<SysRole> result = new Result<SysRole>();
+        SysRole sysrole = sysRoleService.getById(role.getId());
+        if (sysrole == null) {
+            result.error500("未找到对应实体");
+        } else {
+            role.setUpdateTime(new Date());
+            boolean ok = sysRoleService.updateById(role);
+            //TODO 返回false说明什么?
+            if (ok) {
+                result.success("修改成功!");
+            }
+        }
+
+        return result;
+    }
+
+    /**
+     * 通过id删除
+     *
+     * @param id
+     * @return
+     */
     @RequiresPermissions("system:role:delete")
-	@RequestMapping(value = "/delete", method = RequestMethod.DELETE)
-	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
-		sysRoleService.deleteRole(id);
-		return Result.ok("删除角色成功");
-	}
-	
-	/**
-	  *  批量删除
-	 * @param ids
-	 * @return
-	 */
+    @RequestMapping(value = "/delete", method = RequestMethod.DELETE)
+    public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
+        sysRoleService.deleteRole(id);
+        return Result.ok("删除角色成功");
+    }
+
+    /**
+     * 批量删除
+     *
+     * @param ids
+     * @return
+     */
     @RequiresPermissions("system:role:deleteBatch")
-	@RequestMapping(value = "/deleteBatch", method = RequestMethod.DELETE)
-	public Result<SysRole> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
-		Result<SysRole> result = new Result<SysRole>();
-		if(oConvertUtils.isEmpty(ids)) {
-			result.error500("未选中角色!");
-		}else {
-			sysRoleService.deleteBatchRole(ids.split(","));
-			result.success("删除角色成功!");
-		}
-		return result;
-	}
-	
-	/**
-	  * 通过id查询
-	 * @param id
-	 * @return
-	 */
-	@RequestMapping(value = "/queryById", method = RequestMethod.GET)
-	public Result<SysRole> queryById(@RequestParam(name="id",required=true) String id) {
-		Result<SysRole> result = new Result<SysRole>();
-		SysRole sysrole = sysRoleService.getById(id);
-		if(sysrole==null) {
-			result.error500("未找到对应实体");
-		}else {
-			result.setResult(sysrole);
-			result.setSuccess(true);
-		}
-		return result;
-	}
+    @RequestMapping(value = "/deleteBatch", method = RequestMethod.DELETE)
+    public Result<SysRole> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
+        Result<SysRole> result = new Result<SysRole>();
+        if (oConvertUtils.isEmpty(ids)) {
+            result.error500("未选中角色!");
+        } else {
+            sysRoleService.deleteBatchRole(ids.split(","));
+            result.success("删除角色成功!");
+        }
+        return result;
+    }
+
+    /**
+     * 通过id查询
+     *
+     * @param id
+     * @return
+     */
+    @RequestMapping(value = "/queryById", method = RequestMethod.GET)
+    public Result<SysRole> queryById(@RequestParam(name = "id", required = true) String id) {
+        Result<SysRole> result = new Result<SysRole>();
+        SysRole sysrole = sysRoleService.getById(id);
+        if (sysrole == null) {
+            result.error500("未找到对应实体");
+        } else {
+            result.setResult(sysrole);
+            result.setSuccess(true);
+        }
+        return result;
+    }
+
+    /**
+     * 查询全部角色(参与租户隔离)
+     *
+     * @return
+     */
+    @RequestMapping(value = "/queryall", method = RequestMethod.GET)
+    public Result<List<SysRole>> queryall() {
+        Result<List<SysRole>> result = new Result<>();
+        LambdaQueryWrapper<SysRole> query = new LambdaQueryWrapper<SysRole>();
+        //------------------------------------------------------------------------------------------------
+        //是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
+        if (MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL) {
+            query.eq(SysRole::getTenantId, oConvertUtils.getInt(TenantContext.getTenant(), 0));
+        }
+        //------------------------------------------------------------------------------------------------
+        List<SysRole> list = sysRoleService.list(query);
+        if (list == null || list.size() <= 0) {
+            result.error500("未找到角色信息");
+        } else {
+            result.setResult(list);
+            result.setSuccess(true);
+        }
+        return result;
+    }
 
-	/**
-	 * 查询全部角色(参与租户隔离)
-	 * 
-	 * @return
-	 */
-	@RequestMapping(value = "/queryall", method = RequestMethod.GET)
-	public Result<List<SysRole>> queryall() {
-		Result<List<SysRole>> result = new Result<>();
-		LambdaQueryWrapper<SysRole> query = new LambdaQueryWrapper<SysRole>();
-		//------------------------------------------------------------------------------------------------
-		//是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
-		if(MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL){
-			query.eq(SysRole::getTenantId, oConvertUtils.getInt(TenantContext.getTenant(), 0));
-		}
-		//------------------------------------------------------------------------------------------------
-		List<SysRole> list = sysRoleService.list(query);
-		if(list==null||list.size()<=0) {
-			result.error500("未找到角色信息");
-		}else {
-			result.setResult(list);
-			result.setSuccess(true);
-		}
-		return result;
-	}
+    /**
+     * 查询全部系统角色(不做租户隔离)
+     *
+     * @return
+     */
+    @RequiresPermissions("system:role:queryallNoByTenant")
+    @RequestMapping(value = "/queryallNoByTenant", method = RequestMethod.GET)
+    public Result<List<SysRole>> queryallNoByTenant() {
+        Result<List<SysRole>> result = new Result<>();
+        LambdaQueryWrapper<SysRole> query = new LambdaQueryWrapper<SysRole>();
+        List<SysRole> list = sysRoleService.list(query);
+        if (list == null || list.size() <= 0) {
+            result.error500("未找到角色信息");
+        } else {
+            result.setResult(list);
+            result.setSuccess(true);
+        }
+        return result;
+    }
 
-	/**
-	 * 查询全部系统角色(不做租户隔离)
-	 *
-	 * @return
-	 */
-	@RequiresPermissions("system:role:queryallNoByTenant")
-	@RequestMapping(value = "/queryallNoByTenant", method = RequestMethod.GET)
-	public Result<List<SysRole>> queryallNoByTenant() {
-		Result<List<SysRole>> result = new Result<>();
-		LambdaQueryWrapper<SysRole> query = new LambdaQueryWrapper<SysRole>();
-		List<SysRole> list = sysRoleService.list(query);
-		if(list==null||list.size()<=0) {
-			result.error500("未找到角色信息");
-		}else {
-			result.setResult(list);
-			result.setSuccess(true);
-		}
-		return result;
-	}
-	
-	/**
-	  * 校验角色编码唯一
-	 */
-	@RequestMapping(value = "/checkRoleCode", method = RequestMethod.GET)
-	public Result<Boolean> checkUsername(String id,String roleCode) {
-		Result<Boolean> result = new Result<>();
+    /**
+     * 校验角色编码唯一
+     */
+    @RequestMapping(value = "/checkRoleCode", method = RequestMethod.GET)
+    public Result<Boolean> checkUsername(String id, String roleCode) {
+        Result<Boolean> result = new Result<>();
         //如果此参数为false则程序发生异常
-		result.setResult(true);
-		log.info("--验证角色编码是否唯一---id:"+id+"--roleCode:"+roleCode);
-		try {
-			SysRole role = null;
-			if(oConvertUtils.isNotEmpty(id)) {
-				role = sysRoleService.getById(id);
-			}
-			SysRole newRole = sysRoleService.getOne(new QueryWrapper<SysRole>().lambda().eq(SysRole::getRoleCode, roleCode));
-			if(newRole!=null) {
-				//如果根据传入的roleCode查询到信息了,那么就需要做校验了。
-				if(role==null) {
-					//role为空=>新增模式=>只要roleCode存在则返回false
-					result.setSuccess(false);
-					result.setMessage("角色编码已存在");
-					return result;
-				}else if(!id.equals(newRole.getId())) {
-					//否则=>编辑模式=>判断两者ID是否一致-
-					result.setSuccess(false);
-					result.setMessage("角色编码已存在");
-					return result;
-				}
-			}
-		} catch (Exception e) {
-			result.setSuccess(false);
-			result.setResult(false);
-			result.setMessage(e.getMessage());
-			return result;
-		}
-		result.setSuccess(true);
-		return result;
-	}
+        result.setResult(true);
+        log.info("--验证角色编码是否唯一---id:" + id + "--roleCode:" + roleCode);
+        try {
+            SysRole role = null;
+            if (oConvertUtils.isNotEmpty(id)) {
+                role = sysRoleService.getById(id);
+            }
+            SysRole newRole = sysRoleService.getOne(new QueryWrapper<SysRole>().lambda().eq(SysRole::getRoleCode, roleCode));
+            if (newRole != null) {
+                //如果根据传入的roleCode查询到信息了,那么就需要做校验了。
+                if (role == null) {
+                    //role为空=>新增模式=>只要roleCode存在则返回false
+                    result.setSuccess(false);
+                    result.setMessage("角色编码已存在");
+                    return result;
+                } else if (!id.equals(newRole.getId())) {
+                    //否则=>编辑模式=>判断两者ID是否一致-
+                    result.setSuccess(false);
+                    result.setMessage("角色编码已存在");
+                    return result;
+                }
+            }
+        } catch (Exception e) {
+            result.setSuccess(false);
+            result.setResult(false);
+            result.setMessage(e.getMessage());
+            return result;
+        }
+        result.setSuccess(true);
+        return result;
+    }
 
-	/**
-	 * 导出excel
-	 * @param request
-	 */
-	@RequestMapping(value = "/exportXls")
-	public ModelAndView exportXls(SysRole sysRole,HttpServletRequest request) {
-		//------------------------------------------------------------------------------------------------
-		//是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
-		if(MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL){
-			sysRole.setTenantId(oConvertUtils.getInt(TenantContext.getTenant(), 0));
-		}
-		//------------------------------------------------------------------------------------------------
-		
-		// Step.1 组装查询条件
-		QueryWrapper<SysRole> queryWrapper = QueryGenerator.initQueryWrapper(sysRole, request.getParameterMap());
-		//Step.2 AutoPoi 导出Excel
-		ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
-		List<SysRole> pageList = sysRoleService.list(queryWrapper);
-		//导出文件名称
-		mv.addObject(NormalExcelConstants.FILE_NAME,"角色列表");
-		mv.addObject(NormalExcelConstants.CLASS,SysRole.class);
-		LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-		mv.addObject(NormalExcelConstants.PARAMS,new ExportParams("角色列表数据","导出人:"+user.getRealname(),"导出信息"));
-		mv.addObject(NormalExcelConstants.DATA_LIST,pageList);
-		return mv;
-	}
+    /**
+     * 导出excel
+     *
+     * @param request
+     */
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(SysRole sysRole, HttpServletRequest request) {
+        //------------------------------------------------------------------------------------------------
+        //是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
+        if (MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL) {
+            sysRole.setTenantId(oConvertUtils.getInt(TenantContext.getTenant(), 0));
+        }
+        //------------------------------------------------------------------------------------------------
 
-	/**
-	 * 通过excel导入数据
-	 * @param request
-	 * @param response
-	 * @return
-	 */
-	@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-	public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
-		Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
-		for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+        // Step.1 组装查询条件
+        QueryWrapper<SysRole> queryWrapper = QueryGenerator.initQueryWrapper(sysRole, request.getParameterMap());
+        //Step.2 AutoPoi 导出Excel
+        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+        List<SysRole> pageList = sysRoleService.list(queryWrapper);
+        //导出文件名称
+        mv.addObject(NormalExcelConstants.FILE_NAME, "角色列表");
+        mv.addObject(NormalExcelConstants.CLASS, SysRole.class);
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("角色列表数据", "导出人:" + user.getRealname(), "导出信息"));
+        mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
+        return mv;
+    }
+
+    /**
+     * 通过excel导入数据
+     *
+     * @param request
+     * @param response
+     * @return
+     */
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
             // 获取上传文件对象
-			MultipartFile file = entity.getValue();
-			ImportParams params = new ImportParams();
-			params.setTitleRows(2);
-			params.setHeadRows(1);
-			params.setNeedSave(true);
-			try {
-				return sysRoleService.importExcelCheckRoleCode(file, params);
-			} catch (Exception e) {
-				log.error(e.getMessage(), e);
-				return Result.error("文件导入失败:" + e.getMessage());
-			} finally {
-				try {
-					file.getInputStream().close();
-				} catch (IOException e) {
-					log.error(e.getMessage(), e);
-				}
-			}
-		}
-		return Result.error("文件导入失败!");
-	}
-	
-	/**
-	 * 查询数据规则数据
-	 */
-	@GetMapping(value = "/datarule/{permissionId}/{roleId}")
-	public Result<?> loadDatarule(@PathVariable("permissionId") String permissionId,@PathVariable("roleId") String roleId) {
-		List<SysPermissionDataRule> list = sysPermissionDataRuleService.getPermRuleListByPermId(permissionId);
-		if(list==null || list.size()==0) {
-			return Result.error("未找到权限配置信息");
-		}else {
-			Map<String,Object> map = new HashMap(5);
-			map.put("datarule", list);
-			LambdaQueryWrapper<SysRolePermission> query = new LambdaQueryWrapper<SysRolePermission>()
-					.eq(SysRolePermission::getPermissionId, permissionId)
-					.isNotNull(SysRolePermission::getDataRuleIds)
-					.eq(SysRolePermission::getRoleId,roleId);
-			SysRolePermission sysRolePermission = sysRolePermissionService.getOne(query);
-			if(sysRolePermission==null) {
-				//return Result.error("未找到角色菜单配置信息");
-			}else {
-				String drChecked = sysRolePermission.getDataRuleIds();
-				if(oConvertUtils.isNotEmpty(drChecked)) {
-					map.put("drChecked", drChecked.endsWith(",")?drChecked.substring(0, drChecked.length()-1):drChecked);
-				}
-			}
-			return Result.ok(map);
-			//TODO 以后按钮权限的查询也走这个请求 无非在map中多加两个key
-		}
-	}
-	
-	/**
-	 * 保存数据规则至角色菜单关联表
-	 */
-	@PostMapping(value = "/datarule")
-	public Result<?> saveDatarule(@RequestBody JSONObject jsonObject) {
-		try {
-			String permissionId = jsonObject.getString("permissionId");
-			String roleId = jsonObject.getString("roleId");
-			String dataRuleIds = jsonObject.getString("dataRuleIds");
-			log.info("保存数据规则>>"+"菜单ID:"+permissionId+"角色ID:"+ roleId+"数据权限ID:"+dataRuleIds);
-			LambdaQueryWrapper<SysRolePermission> query = new LambdaQueryWrapper<SysRolePermission>()
-					.eq(SysRolePermission::getPermissionId, permissionId)
-					.eq(SysRolePermission::getRoleId,roleId);
-			SysRolePermission sysRolePermission = sysRolePermissionService.getOne(query);
-			if(sysRolePermission==null) {
-				return Result.error("请先保存角色菜单权限!");
-			}else {
-				sysRolePermission.setDataRuleIds(dataRuleIds);
-				this.sysRolePermissionService.updateById(sysRolePermission);
-			}
-		} catch (Exception e) {
-			log.error("SysRoleController.saveDatarule()发生异常:" + e.getMessage(),e);
-			return Result.error("保存失败");
-		}
-		return Result.ok("保存成功!");
-	}
-	
-	
-	/**
-	 * 用户角色授权功能,查询菜单权限树
-	 * @param request
-	 * @return
-	 */
-	@RequestMapping(value = "/queryTreeList", method = RequestMethod.GET)
-	public Result<Map<String,Object>> queryTreeList(HttpServletRequest request) {
-		Result<Map<String,Object>> result = new Result<>();
-		//全部权限ids
-		List<String> ids = new ArrayList<>();
-		try {
-			LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<SysPermission>();
-			query.eq(SysPermission::getDelFlag, CommonConstant.DEL_FLAG_0);
-			query.orderByAsc(SysPermission::getSortNo);
-			List<SysPermission> list = sysPermissionService.list(query);
-			for(SysPermission sysPer : list) {
-				ids.add(sysPer.getId());
-			}
-			List<TreeModel> treeList = new ArrayList<>();
-			getTreeModelList(treeList, list, null);
-			Map<String,Object> resMap = new HashMap(5);
+            MultipartFile file = entity.getValue();
+            ImportParams params = new ImportParams();
+            params.setTitleRows(2);
+            params.setHeadRows(1);
+            params.setNeedSave(true);
+            try {
+                return sysRoleService.importExcelCheckRoleCode(file, params);
+            } catch (Exception e) {
+                log.error(e.getMessage(), e);
+                return Result.error("文件导入失败:" + e.getMessage());
+            } finally {
+                try {
+                    file.getInputStream().close();
+                } catch (IOException e) {
+                    log.error(e.getMessage(), e);
+                }
+            }
+        }
+        return Result.error("文件导入失败!");
+    }
+
+    /**
+     * 查询数据规则数据
+     */
+    @GetMapping(value = "/datarule/{permissionId}/{roleId}")
+    public Result<?> loadDatarule(@PathVariable("permissionId") String permissionId, @PathVariable("roleId") String roleId) {
+        List<SysPermissionDataRule> list = sysPermissionDataRuleService.getPermRuleListByPermId(permissionId);
+        if (list == null || list.size() == 0) {
+            return Result.error("未找到权限配置信息");
+        } else {
+            Map<String, Object> map = new HashMap(5);
+            map.put("datarule", list);
+            LambdaQueryWrapper<SysRolePermission> query = new LambdaQueryWrapper<SysRolePermission>()
+                    .eq(SysRolePermission::getPermissionId, permissionId)
+                    .isNotNull(SysRolePermission::getDataRuleIds)
+                    .eq(SysRolePermission::getRoleId, roleId);
+            SysRolePermission sysRolePermission = sysRolePermissionService.getOne(query);
+            if (sysRolePermission == null) {
+                //return Result.error("未找到角色菜单配置信息");
+            } else {
+                String drChecked = sysRolePermission.getDataRuleIds();
+                if (oConvertUtils.isNotEmpty(drChecked)) {
+                    map.put("drChecked", drChecked.endsWith(",") ? drChecked.substring(0, drChecked.length() - 1) : drChecked);
+                }
+            }
+            return Result.ok(map);
+            //TODO 以后按钮权限的查询也走这个请求 无非在map中多加两个key
+        }
+    }
+
+    /**
+     * 保存数据规则至角色菜单关联表
+     */
+    @PostMapping(value = "/datarule")
+    public Result<?> saveDatarule(@RequestBody JSONObject jsonObject) {
+        try {
+            String permissionId = jsonObject.getString("permissionId");
+            String roleId = jsonObject.getString("roleId");
+            String dataRuleIds = jsonObject.getString("dataRuleIds");
+            log.info("保存数据规则>>" + "菜单ID:" + permissionId + "角色ID:" + roleId + "数据权限ID:" + dataRuleIds);
+            LambdaQueryWrapper<SysRolePermission> query = new LambdaQueryWrapper<SysRolePermission>()
+                    .eq(SysRolePermission::getPermissionId, permissionId)
+                    .eq(SysRolePermission::getRoleId, roleId);
+            SysRolePermission sysRolePermission = sysRolePermissionService.getOne(query);
+            if (sysRolePermission == null) {
+                return Result.error("请先保存角色菜单权限!");
+            } else {
+                sysRolePermission.setDataRuleIds(dataRuleIds);
+                this.sysRolePermissionService.updateById(sysRolePermission);
+            }
+        } catch (Exception e) {
+            log.error("SysRoleController.saveDatarule()发生异常:" + e.getMessage(), e);
+            return Result.error("保存失败");
+        }
+        return Result.ok("保存成功!");
+    }
+
+
+    /**
+     * 用户角色授权功能,查询菜单权限树
+     *
+     * @param request
+     * @return
+     */
+    @RequestMapping(value = "/queryTreeList", method = RequestMethod.GET)
+    public Result<Map<String, Object>> queryTreeList(HttpServletRequest request) {
+        Result<Map<String, Object>> result = new Result<>();
+        //全部权限ids
+        List<String> ids = new ArrayList<>();
+        try {
+            LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<SysPermission>();
+            query.eq(SysPermission::getDelFlag, CommonConstant.DEL_FLAG_0);
+            query.orderByAsc(SysPermission::getSortNo);
+            List<SysPermission> list = sysPermissionService.list(query);
+            for (SysPermission sysPer : list) {
+                ids.add(sysPer.getId());
+            }
+            List<TreeModel> treeList = new ArrayList<>();
+            getTreeModelList(treeList, list, null);
+            Map<String, Object> resMap = new HashMap(5);
             //全部树节点数据
-			resMap.put("treeList", treeList);
+            resMap.put("treeList", treeList);
             //全部树ids
-			resMap.put("ids", ids);
-			result.setResult(resMap);
-			result.setSuccess(true);
-		} catch (Exception e) {
-			log.error(e.getMessage(), e);
-		}
-		return result;
-	}
-	
-	private void getTreeModelList(List<TreeModel> treeList,List<SysPermission> metaList,TreeModel temp) {
-		for (SysPermission permission : metaList) {
-			String tempPid = permission.getParentId();
-			TreeModel tree = new TreeModel(permission.getId(), tempPid, permission.getName(),permission.getRuleFlag(), permission.isLeaf());
-			if(temp==null && oConvertUtils.isEmpty(tempPid)) {
-				treeList.add(tree);
-				if(!tree.getIsLeaf()) {
-					getTreeModelList(treeList, metaList, tree);
-				}
-			}else if(temp!=null && tempPid!=null && tempPid.equals(temp.getKey())){
-				temp.getChildren().add(tree);
-				if(!tree.getIsLeaf()) {
-					getTreeModelList(treeList, metaList, tree);
-				}
-			}
-			
-		}
-	}
+            resMap.put("ids", ids);
+            result.setResult(resMap);
+            result.setSuccess(true);
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+        }
+        return result;
+    }
+
+    private void getTreeModelList(List<TreeModel> treeList, List<SysPermission> metaList, TreeModel temp) {
+        for (SysPermission permission : metaList) {
+            String tempPid = permission.getParentId();
+            TreeModel tree = new TreeModel(permission.getId(), tempPid, permission.getName(), permission.getRuleFlag(), permission.isLeaf());
+            if (temp == null && oConvertUtils.isEmpty(tempPid)) {
+                treeList.add(tree);
+                if (!tree.getIsLeaf()) {
+                    getTreeModelList(treeList, metaList, tree);
+                }
+            } else if (temp != null && tempPid != null && tempPid.equals(temp.getKey())) {
+                temp.getChildren().add(tree);
+                if (!tree.getIsLeaf()) {
+                    getTreeModelList(treeList, metaList, tree);
+                }
+            }
+
+        }
+    }
+
+    /**
+     * 是否讲师
+     *
+     * @param roleIds
+     * @return
+     */
+    @GetMapping("/isTeacher")
+    public Result<Boolean> isTeacher(@RequestParam String roleIds) {
+        return Result.ok(sysRoleService.isTeacher(roleIds));
+    }
 
 }

+ 26 - 20
system/system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java

@@ -1,23 +1,20 @@
 package org.jeecg.modules.system.entity;
 
-import java.util.Date;
-
+import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
 import org.jeecg.common.aspect.annotation.Dict;
 import org.jeecgframework.poi.excel.annotation.Excel;
 import org.springframework.format.annotation.DateTimeFormat;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.fasterxml.jackson.annotation.JsonFormat;
-
 import java.io.Serializable;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
+import java.util.Date;
 
 /**
  * <p>
@@ -67,7 +64,7 @@ public class SysUser implements Serializable {
     /**
      * 头像
      */
-    @Excel(name = "头像", width = 15,type = 2)
+    @Excel(name = "头像", width = 15, type = 2)
     private String avatar;
 
     /**
@@ -81,7 +78,7 @@ public class SysUser implements Serializable {
     /**
      * 性别(1:男 2:女)
      */
-    @Excel(name = "性别", width = 15,dicCode="sex")
+    @Excel(name = "性别", width = 15, dicCode = "sex")
     @Dict(dicCode = "sex")
     private Integer sex;
 
@@ -106,20 +103,22 @@ public class SysUser implements Serializable {
      */
     private Integer loginTenantId;
 
-    /**部门名称*/
+    /**
+     * 部门名称
+     */
     private transient String orgCodeTxt;
 
     /**
      * 状态(1:正常  2:冻结 )
      */
-    @Excel(name = "状态", width = 15,dicCode="user_status")
+    @Excel(name = "状态", width = 15, dicCode = "user_status")
     @Dict(dicCode = "user_status")
     private Integer status;
 
     /**
      * 删除状态(0,正常,1已删除)
      */
-    @Excel(name = "删除状态", width = 15,dicCode="del_flag")
+    @Excel(name = "删除状态", width = 15, dicCode = "del_flag")
     @TableLogic
     private Integer delFlag;
 
@@ -133,7 +132,7 @@ public class SysUser implements Serializable {
      * 职务,关联职务表
      */
     @Excel(name = "职务", width = 15)
-    @Dict(dictTable ="sys_position",dicText = "name",dicCode = "code")
+    @Dict(dictTable = "sys_position", dicText = "name", dicCode = "code")
     private String post;
 
     /**
@@ -169,14 +168,14 @@ public class SysUser implements Serializable {
     /**
      * 身份(0 普通成员 1 上级)
      */
-    @Excel(name="(1普通成员 2上级)",width = 15)
+    @Excel(name = "(1普通成员 2上级)", width = 15)
     private Integer userIdentity;
 
     /**
      * 负责部门
      */
-    @Excel(name="负责部门",width = 15,dictTable ="sys_depart",dicText = "depart_name",dicCode = "id")
-    @Dict(dictTable ="sys_depart",dicText = "depart_name",dicCode = "id")
+    @Excel(name = "负责部门", width = 15, dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
+    @Dict(dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
     private String departIds;
 
     /**
@@ -185,7 +184,9 @@ public class SysUser implements Serializable {
     @TableField(exist = false)
     private String relTenantIds;
 
-    /**设备id uniapp推送用*/
+    /**
+     * 设备id uniapp推送用
+     */
     private String clientId;
 
     /**
@@ -204,4 +205,9 @@ public class SysUser implements Serializable {
      * 流程状态
      */
     private String bpmStatus;
+
+    /**
+     * 讲师介绍
+     */
+    private String teacherIntroduce;
 }

+ 4 - 1
system/system-biz/src/main/java/org/jeecg/modules/system/enums/UserType.java

@@ -9,7 +9,10 @@ public enum UserType {
     ADMIN(1, "admin"),
 
     //考生
-    STUDENT(2, "student");
+    STUDENT(2, "student"),
+
+    //讲师
+    TEACHER(3, "teacher");
 
     private Integer code;
 

+ 8 - 0
system/system-biz/src/main/java/org/jeecg/modules/system/service/ISysRoleService.java

@@ -40,4 +40,12 @@ public interface ISysRoleService extends IService<SysRole> {
      */
     public boolean deleteBatchRole(String[] roleids);
 
+    /**
+     * 是否讲师
+     *
+     * @param roleIds
+     * @return
+     */
+    boolean isTeacher(String roleIds);
+
 }

+ 28 - 12
system/system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysRoleServiceImpl.java

@@ -1,14 +1,13 @@
 package org.jeecg.modules.system.service.impl;
 
-import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.apache.poi.ss.formula.functions.T;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.util.ImportExcelUtil;
-import org.jeecg.common.util.PmsUtil;
-import org.jeecg.modules.quartz.service.IQuartzJobService;
 import org.jeecg.modules.system.entity.SysRole;
+import org.jeecg.modules.system.enums.UserType;
 import org.jeecg.modules.system.mapper.SysRoleMapper;
 import org.jeecg.modules.system.mapper.SysUserMapper;
 import org.jeecg.modules.system.service.ISysRoleService;
@@ -19,7 +18,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -47,9 +45,9 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
 
         // 去除 listSysRoles 中重复的数据
         for (int i = 0; i < listSysRoles.size(); i++) {
-            String roleCodeI =((SysRole)listSysRoles.get(i)).getRoleCode();
+            String roleCodeI = ((SysRole) listSysRoles.get(i)).getRoleCode();
             for (int j = i + 1; j < listSysRoles.size(); j++) {
-                String roleCodeJ =((SysRole)listSysRoles.get(j)).getRoleCode();
+                String roleCodeJ = ((SysRole) listSysRoles.get(j)).getRoleCode();
                 // 发现重复数据
                 if (roleCodeI.equals(roleCodeJ)) {
                     errorStrs.add("第 " + (j + 1) + " 行的 roleCode 值:" + roleCodeI + " 已存在,忽略导入");
@@ -59,12 +57,12 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
             }
         }
         // 去掉 sql 中的重复数据
-        Integer errorLines=0;
-        Integer successLines=0;
+        Integer errorLines = 0;
+        Integer successLines = 0;
         List<String> list = ImportExcelUtil.importDateSave(listSysRoles, ISysRoleService.class, errorStrs, CommonConstant.SQL_INDEX_UNIQ_SYS_ROLE_CODE);
-         errorLines+=list.size();
-         successLines+=(listSysRoles.size()-errorLines);
-        return ImportExcelUtil.imporReturnRes(errorLines,successLines,list);
+        errorLines += list.size();
+        successLines += (listSysRoles.size() - errorLines);
+        return ImportExcelUtil.imporReturnRes(errorLines, successLines, list);
     }
 
     @Override
@@ -90,4 +88,22 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
         this.removeByIds(Arrays.asList(roleIds));
         return true;
     }
+
+    /**
+     * 是否讲师
+     *
+     * @param roleIds
+     * @return
+     */
+    @Override
+    public boolean isTeacher(String roleIds) {
+        String[] arr = roleIds.split(",");
+        LambdaQueryWrapper<SysRole> query = new LambdaQueryWrapper<SysRole>().in(SysRole::getId, arr);
+        List<SysRole> list = list(query);
+        if (!CollectionUtils.isEmpty(list)) {
+            long count = list.stream().filter(role -> role.getRoleCode().equals(UserType.TEACHER.getValue())).count();
+            return count > 0 ? true : false;
+        }
+        return false;
+    }
 }