kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/dto/SysRoleOrganizationDto.java
New file @@ -0,0 +1,25 @@ package com.kidgrow.usercenter.dto; import lombok.Data; import javax.validation.constraints.NotNull; import java.util.List; @Data public class SysRoleOrganizationDto { /** * 1代表全部数据权限,2自定义数据权限,3本部门数据权限,4本部门及以下数据权限,5仅本人数据权限 */ // @NotEmpty(message = "1代表全部数据权限,2自定义数据权限,3本部门数据权限,4本部门及以下数据权限,5仅本人数据权限不能为空") @NotNull(message = "权限范围不能为空") private Integer type; /** * 角色id */ @NotNull(message = "角色不能为空") private Long roleId; /** * 部门id organization_id */ private List<Long> orgIds; } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysRole.java
@@ -49,4 +49,5 @@ */ @NotEmpty(message = "状态,1启用,0停用不能为空") private Integer enabled; } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysRoleOrganization.java
New file @@ -0,0 +1,54 @@ package com.kidgrow.usercenter.model; import com.kidgrow.common.model.SuperModel; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import org.hibernate.validator.constraints.*; import javax.validation.constraints.*; import java.util.Date; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> * * @version 1.0 * @Description: 角色对应的 部门<br> * @Project: 用户中心<br> * @CreateDate: Created in 2020-04-21 14:24:41 <br> * @Author: <a href="4345453@kidgrow.com">liuke</a> */ @Data @EqualsAndHashCode(callSuper = false) @NoArgsConstructor @AllArgsConstructor @TableName("sys_role_organization") public class SysRoleOrganization extends SuperModel { private static final long serialVersionUID = 1L; /** * 1代表全部数据权限,2自定义数据权限,3本部门数据权限,4本部门及以下数据权限,5仅本人数据权限 */ /** * 角色id */ private Long roleId; /** * 部门id organization_id */ private Long orgId; /** * 部门code organization_code */ private String orgCode; /** * 是否删除,1删除,0未删除 */ private Boolean isDel; } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysRoleOrganizationMapper.java
New file @@ -0,0 +1,34 @@ package com.kidgrow.usercenter.mapper; import com.kidgrow.usercenter.model.SysRoleOrganization; import com.kidgrow.db.mapper.SuperMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> * @Description: 角色对应的 部门<br> * @Project: 用户中心<br> * @CreateDate: Created in 2020-04-21 14:24:41 <br> * @Author: <a href="4345453@kidgrow.com">liuke</a> * @version 1.0 */ public interface SysRoleOrganizationMapper extends SuperMapper<SysRoleOrganization> { /** * 分页查询角色对应的 部门列表 * @param page * @param params * @return */ List<SysRoleOrganization> findList(Page<SysRoleOrganization> page, @Param("p") Map<String, Object> params); /** * 根据SysRoleOrganization对象当做查询条件进行查询 * @param * @return SysRoleOrganization对象 */ SysRoleOrganization findByObject(@Param("p") SysRoleOrganization sysRoleOrganization); } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java
@@ -1,6 +1,7 @@ package com.kidgrow.usercenter.service; import com.kidgrow.common.model.ResultBody; import com.kidgrow.common.model.SysUser; import com.kidgrow.usercenter.model.SysDoctor; import com.kidgrow.common.model.PageResult; import com.kidgrow.common.service.ISuperService; @@ -24,7 +25,7 @@ * @param params * @return */ PageResult<SysDoctorVo> findList(Map<String, Object> params); PageResult<SysDoctorVo> findList(Map<String, Object> params, SysUser user); /** kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysRoleOrganizationService.java
New file @@ -0,0 +1,40 @@ package com.kidgrow.usercenter.service; import com.kidgrow.common.model.ResultBody; import com.kidgrow.common.model.SysUser; import com.kidgrow.usercenter.dto.SysRoleOrganizationDto; import com.kidgrow.usercenter.model.SysRoleOrganization; import com.kidgrow.common.model.PageResult; import com.kidgrow.common.service.ISuperService; import java.util.Map; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> * @Description: 角色对应的 部门<br> * @Project: 用户中心<br> * @CreateDate: Created in 2020-04-21 14:24:41 <br> * @Author: <a href="4345453@kidgrow.com">liuke</a> * @version 1.0 */ public interface ISysRoleOrganizationService extends ISuperService<SysRoleOrganization> { /** * 列表 * @param params * @return */ PageResult<SysRoleOrganization> findList(Map<String, Object> params); /** * 根据SysRoleOrganization对象当做查询条件进行查询 * @param sysRoleOrganization * @return SysRoleOrganization对象 */ SysRoleOrganization findByObject(SysRoleOrganization sysRoleOrganization); boolean saveOrUpdateSer(SysRoleOrganizationDto sysRoleOrganizationDto, SysUser user); ResultBody getTree(Map<String, Object> params,SysUser user); } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java
@@ -1,10 +1,15 @@ package com.kidgrow.usercenter.service.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.kidgrow.common.constant.SecurityConstants; import com.kidgrow.common.model.*; import com.kidgrow.redis.util.RedisConstant; import com.kidgrow.redis.util.RedisUtils; import com.kidgrow.usercenter.mapper.SysRoleMapper; import com.kidgrow.usercenter.mapper.SysRoleOrganizationMapper; import com.kidgrow.usercenter.model.SysRoleOrganization; import com.kidgrow.usercenter.service.ISysRoleOrganizationService; import com.kidgrow.usercenter.service.ISysUserOrgService; import com.kidgrow.usercenter.service.ISysUserService; import com.kidgrow.usercenter.vo.SysDoctorDto; @@ -53,11 +58,32 @@ @Autowired private ISysUserOrgService sysUserOrgService; @Autowired RedisUtils redisUtils; private RedisUtils redisUtils; @Autowired private SysRoleOrganizationMapper sysRoleOrganizationMapper; @Autowired private SysRoleMapper sysRoleMapper; @Override public PageResult<SysDoctorVo> findList(Map<String, Object> params) { public PageResult<SysDoctorVo> findList(Map<String, Object> params, SysUser user) { Page<SysDoctor> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit")); List<SysRole> roles = user.getRoles(); List<Map<SysRole,List<SysRoleOrganization>>> listroleOrg=new ArrayList<>(); if (!roles.isEmpty()) { roles.forEach(e->{ Map<SysRole,List<SysRoleOrganization>> rolemap=new HashMap<>(); Map<String,Object> map=new HashMap<>(); map.put("role_id",e.getId()); List<SysRoleOrganization> sysRoleOrganizations = sysRoleOrganizationMapper.selectByMap(map); if(sysRoleOrganizations.size()>0){ SysRole sysRole = sysRoleMapper.selectById(e.getId()); rolemap.put(sysRole,sysRoleOrganizations); listroleOrg.add(rolemap); } }); } params.put("likes",listroleOrg); List<SysDoctor> list = baseMapper.findList(page, params); List<SysDoctorVo> listvo = new ArrayList<>(); list.forEach(e -> { kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java
@@ -158,7 +158,7 @@ for (Long id : idList ) { Map<String, Object> map = new HashMap<>(); map.put("id", id); map.put("id", ""+id); map.put("name", collect.get(id).getOrgName()); map.put("level", collect.get(id).getOrgLevel()); List<Long> childs = sysOrganizations.stream().filter(e -> e.getOrgParentId() == id).map(e -> e.getId()).collect(Collectors.toList()); @@ -180,15 +180,64 @@ @Override @Transactional public boolean saveOrUpdateSer(SysOrganization sysOrganization) { //获取code if (sysOrganization.getId() == null) { //保存 String code = this.getCode(sysOrganization); sysOrganization.setOrgCode(code); baseMapper.insert(sysOrganization); } else { //更新 SysOrganization sysOrg = baseMapper.selectById(sysOrganization.getId()); if(sysOrg.getOrgParentId()!=sysOrganization.getOrgParentId()){ String code = this.getCode(sysOrganization); sysOrganization.setOrgCode(code); } int i = baseMapper.updateById(sysOrganization); } redisUtils.hdel(RedisConstant.ORGANIZATION, sysOrganization.getId().toString()); redisUtils.hset(RedisConstant.ORGANIZATION, sysOrganization.getId().toString(), sysOrganization); return true; } /** * 获取自己组织的code * @param sysOrganization * @return */ public String getCode(SysOrganization sysOrganization){ //获取父级 Long orgParentId = sysOrganization.getOrgParentId(); if (orgParentId == null) { return null; } SysOrganization sysOrg = baseMapper.selectById(orgParentId); if(sysOrg!=null){ String orgCode = sysOrg.getOrgCode(); //查询 QueryWrapper queryWrapper=new QueryWrapper(); queryWrapper.eq("org_parent_id",sysOrg.getId()); queryWrapper.orderByAsc("id"); List<SysOrganization> list = baseMapper.selectList(queryWrapper); if (list.size()>0) { SysOrganization sysOrganizationLast = list.get(list.size() - 1); String orgCodeLast = sysOrganizationLast.getOrgCode(); String orgCodeLastQianZhui=orgCodeLast.substring(0,orgCodeLast.length() - 4); Integer codenum = Integer.valueOf(orgCodeLast.substring(orgCodeLast.length() - 4)); String str="0000"; str+=(codenum+1); String substring = str.substring(str.length() - 4); return orgCodeLastQianZhui+substring; }else { String fucode = sysOrg.getOrgCode(); String str="0001"; return fucode+str; } } return null; } } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysRoleOrganizationServiceImpl.java
New file @@ -0,0 +1,192 @@ package com.kidgrow.usercenter.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.kidgrow.common.annotation.LoginUser; import com.kidgrow.common.model.*; import com.kidgrow.usercenter.dto.SysRoleOrganizationDto; import com.kidgrow.usercenter.service.ISysOrganizationService; import com.kidgrow.usercenter.service.ISysRoleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.kidgrow.common.service.impl.SuperServiceImpl; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import org.apache.commons.collections4.MapUtils; import lombok.extern.slf4j.Slf4j; import com.kidgrow.usercenter.model.SysRoleOrganization; import com.kidgrow.usercenter.mapper.SysRoleOrganizationMapper; import com.kidgrow.usercenter.service.ISysRoleOrganizationService; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> * * @version 1.0 * @Description: 角色对应的 部门<br> * @Project: 用户中心<br> * @CreateDate: Created in 2020-04-21 14:24:41 <br> * @Author: <a href="4345453@kidgrow.com">liuke</a> */ @Slf4j @Service public class SysRoleOrganizationServiceImpl extends SuperServiceImpl<SysRoleOrganizationMapper, SysRoleOrganization> implements ISysRoleOrganizationService { private final Integer TYPE_QUAN_BU = 1;//全部数据权限 private final Integer TYPE_ZI_DING_YI = 2;//自定义数据权限 private final Integer TYPE_BEN_BU_MEN = 3;//本部门数据权限 private final Integer TYPE_BEN_BU_MEN_YI_XIA = 4;//本部门及以下数据权限 private final Integer TYPE_BEN_REN = 5;//仅本人数据权限不能为空 @Autowired private ISysOrganizationService iSysOrganizationService; @Autowired private ISysRoleService iSysRoleService; @Autowired private SysOrganizationServiceImpl sysOrganizationService; /** * 列表 * * @param params * @return */ @Override public PageResult<SysRoleOrganization> findList(Map<String, Object> params) { Page<SysRoleOrganization> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit")); List<SysRoleOrganization> list = baseMapper.findList(page, params); return PageResult.<SysRoleOrganization>builder().data(list).code(0).count(page.getTotal()).build(); } /** * 根据SysRoleOrganization对象当做查询条件进行查询 * * @param sysRoleOrganization * @return SysRoleOrganization */ @Override public SysRoleOrganization findByObject(SysRoleOrganization sysRoleOrganization) { return baseMapper.findByObject(sysRoleOrganization); } @Override public boolean saveOrUpdateSer(SysRoleOrganizationDto sysRoleOrganizationDto, SysUser user) { if (sysRoleOrganizationDto.getRoleId() != null) { SysRole sysRole = iSysRoleService.getById(sysRoleOrganizationDto.getRoleId()); sysRole.setType(sysRoleOrganizationDto.getType()); boolean b = iSysRoleService.updateById(sysRole); } SysRoleOrganization sysRoleOrganization = new SysRoleOrganization(); sysRoleOrganization.setRoleId(sysRoleOrganizationDto.getRoleId()); List<SysOrganization> organizations = user.getOrganizations(); // 1代表全部数据权限,2自定义数据权限,3本部门数据权限,4本部门及以下数据权限,5仅本人数据权限不能为空") //先清除数据 if(sysRoleOrganizationDto.getRoleId()!=null){ Map<String,Object> map=new HashMap<>(); map.put("role_id",sysRoleOrganizationDto.getRoleId()); map.put("is_del",0); List<SysRoleOrganization> sysRoleOrganizations = baseMapper.selectByMap(map); List<Long> collect = sysRoleOrganizations.stream().map(e -> e.getId()).collect(Collectors.toList()); if(collect.size()>0){ int i = baseMapper.deleteBatchIds(collect); } } //全部数据 if (sysRoleOrganizationDto.getType() == TYPE_QUAN_BU) { // sysRoleOrganization.setOrgCode("10"); // if (organizations != null && organizations.size() > 0) { // sysRoleOrganization.setOrgId(organizations.get(organizations.size()-1).getId()); // } // baseMapper.insert(sysRoleOrganization); } //2自定义数据权限 if (sysRoleOrganizationDto.getType() == TYPE_ZI_DING_YI) { List<Long> orgIds = sysRoleOrganizationDto.getOrgIds(); orgIds.forEach(e -> { sysRoleOrganization.setId(null); sysRoleOrganization.setOrgId(e); SysOrganization byId = iSysOrganizationService.getById(e); if (byId != null) { sysRoleOrganization.setOrgCode(byId.getOrgCode()); } baseMapper.insert(sysRoleOrganization); }); }else { } //3本部门数据权限 if (sysRoleOrganizationDto.getType() == TYPE_BEN_BU_MEN) { if (organizations != null && organizations.size() > 0) { sysRoleOrganization.setOrgCode(organizations.get(organizations.size()-1).getOrgCode()); sysRoleOrganization.setOrgId(organizations.get(organizations.size()-1).getId()); baseMapper.insert(sysRoleOrganization); } else { return false; } } //4本部门及以下数据权限 if (sysRoleOrganizationDto.getType() == TYPE_BEN_BU_MEN_YI_XIA) { if (organizations != null && organizations.size() > 0) { sysRoleOrganization.setOrgCode(organizations.get(organizations.size()-1).getOrgCode()); sysRoleOrganization.setOrgId(organizations.get(organizations.size()-1).getId()); baseMapper.insert(sysRoleOrganization); } else { return false; } } //5仅本人数据权限不能为空 if (sysRoleOrganizationDto.getType() == TYPE_BEN_REN) { sysRoleOrganization.setOrgCode(organizations.get(organizations.size()-1).getOrgCode()); sysRoleOrganization.setOrgId(organizations.get(organizations.size()-1).getId()); baseMapper.insert(sysRoleOrganization); } return true; } @Override public ResultBody getTree(Map<String, Object> params, SysUser user) { List<SysOrganization> sysOrganizations = sysOrganizationService.listByMap(params); QueryWrapper queryWrapper = new QueryWrapper(); List<Long> roleIdList = user.getRoles().stream().map(e -> e.getId()).collect(Collectors.toList()); queryWrapper.in("role_id", roleIdList); List<SysRoleOrganization> list = baseMapper.selectList(queryWrapper); List<Long> collect = list.stream().map(e -> e.getOrgId()).collect(Collectors.toList()); List<Map<String, Object>> treeData = getTreeData(Long.valueOf("-1"), sysOrganizations, collect); return ResultBody.ok().data(treeData); } /** * 将数据 封装成 tree (递归方式) * * @param MyId * @param sysOrganizations * @return */ public List<Map<String, Object>> getTreeData(Long MyId, List<SysOrganization> sysOrganizations, List<Long> col) { List<Map<String, Object>> listMap = new ArrayList<>(); Map<Long, SysOrganization> collect = sysOrganizations.stream().collect(Collectors.toMap(SysOrganization::getId, SysOrganization -> SysOrganization)); List<Long> idList = sysOrganizations.stream().filter(e -> e.getOrgParentId() == MyId).map(e -> e.getId()).collect(Collectors.toList()); for (Long id : idList ) { Map<String, Object> map = new HashMap<>(); map.put("id", "" + id); map.put("name", collect.get(id).getOrgName()); map.put("level", collect.get(id).getOrgLevel()); map.put("checked", col.contains(id)); List<Long> childs = sysOrganizations.stream().filter(e -> e.getOrgParentId() == id).map(e -> e.getId()).collect(Collectors.toList()); if (childs.size() > 0) { List<Map<String, Object>> treeData = getTreeData(id, sysOrganizations, col); map.put("children", treeData); } listMap.add(map); } return listMap; } } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml
@@ -90,6 +90,47 @@ <if test="p.updateTime != null and p.updateTime !=''"> and update_time = #{p.updateTime} </if> <if test="p.likes != null and p.likes.size>0"> <foreach item="item" collection="p.likes" index=""> <foreach item="itemto" collection="item" index="inx"> <choose> <when test="inx.type == 1"></when> <when test="inx.type==2"> AND <foreach item="itemtoto" collection="itemto" separator="or" open="(" close=")" index=""> create_user_org_code like '${itemtoto.orgCode}%' </foreach> </when> <when test="inx.type == 3"> AND <foreach item="itemtoto" collection="itemto" separator="or" open="(" close=")" index=""> create_user_org_code = #{itemtoto.orgCode} </foreach> </when> <when test="inx.type == 4"> AND <foreach item="itemtoto" collection="itemto" separator="or" open="(" close=")" index=""> create_user_org_code like '${itemtoto.orgCode}%' </foreach> </when> <when test="inx.type == 5"> AND <foreach item="itemtoto" collection="itemto" separator="or" open="(" close=")" index=""> create_user_id = #{itemtoto.orgCode} </foreach> </when> <otherwise> AND id is null </otherwise> </choose> </foreach> </foreach> </if> </where> </sql> kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysRoleMapper.xml
@@ -10,7 +10,8 @@ update_time, is_del, enabled, tenant_id tenant_id, type </sql> <sql id="where"> kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysRoleOrganizationMapper.xml
New file @@ -0,0 +1,51 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--角色对应的 部门--> <mapper namespace="com.kidgrow.usercenter.mapper.SysRoleOrganizationMapper"> <!--定义查询列--> <sql id="Column_List"> * </sql> <!--sql查询片段--> <sql id="where"> <where> <!--查询条件自行添加--> is_del=0 <if test="p.id != null and p.id !=''"> and id = #{p.id} </if> <if test="p.type != null and p.type !=''"> and type = #{p.type} </if> <if test="p.roleId != null and p.roleId !=''"> and role_id = #{p.roleId} </if> <if test="p.orgId != null and p.orgId !=''"> and org_id = #{p.orgId} </if> <if test="p.orgCode != null and p.orgCode !=''"> and org_code = #{p.orgCode} </if> </where> </sql> <!--定义根据-SysRoleOrganization当作查询条件返回对象--> <select id="findByObject" resultType="com.kidgrow.usercenter.model.SysRoleOrganization"> select <include refid="Column_List"/> from sys_role_organization <include refid="where"/> order by id desc limit 1 </select> <!--定义根据-SysRoleOrganization当作查询条件返回对象集合--> <select id="findList" resultType="com.kidgrow.usercenter.model.SysRoleOrganization"> select <include refid="Column_List"/> from sys_role_organization <include refid="where"/> order by id desc </select> </mapper> kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDoctorController.java
@@ -1,6 +1,8 @@ package com.kidgrow.usercenter.controller; import java.util.Map; import com.kidgrow.common.annotation.LoginUser; import com.kidgrow.common.controller.BaseController; import com.kidgrow.usercenter.vo.SysDoctorVo; import com.kidgrow.usercenter.vo.SysDoctorDto; @@ -51,12 +53,13 @@ @ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer") }) @GetMapping public PageResult<SysDoctorVo> list(@RequestParam Map<String, Object> params) { public PageResult<SysDoctorVo> list(@RequestParam Map<String, Object> params,@LoginUser SysUser user) { if(params.size()==0){ params.put("page",1); params.put("limit",10); } return sysDoctorService.findList(params); return sysDoctorService.findList(params,user); } /** kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysRoleOrganizationController.java
New file @@ -0,0 +1,130 @@ package com.kidgrow.usercenter.controller; import java.util.Map; import com.kidgrow.common.annotation.LoginUser; import com.kidgrow.common.constant.SecurityConstants; import com.kidgrow.common.controller.BaseController; import com.kidgrow.usercenter.dto.SysRoleOrganizationDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import com.kidgrow.usercenter.model.SysRoleOrganization; import com.kidgrow.usercenter.service.ISysRoleOrganizationService; import com.kidgrow.common.model.*; import org.springframework.validation.BindingResult; import org.springframework.validation.ObjectError; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> * @Description: 角色对应的 部门 * @Project: 用户中心 * @CreateDate: Created in 2020-04-21 14:24:41 <br> * @Author: <a href="4345453@kidgrow.com">liuke</a> * @version: 1.0 */ @Slf4j @RestController @RequestMapping("/sysroleorganization") @Api(tags = "角色对应的 部门") public class SysRoleOrganizationController extends BaseController{ @Autowired private ISysRoleOrganizationService sysRoleOrganizationService; /** * 列表 */ @ApiOperation(value = "查询列表") @ApiImplicitParams({ @ApiImplicitParam(name = "page", value = "分页起始位置", required = true, dataType = "Integer"), @ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer") }) @GetMapping public ResultBody<PageResult> list(@RequestParam Map<String, Object> params) { if(params.size()==0){ params.put("page",1); params.put("limit",10); } return ResultBody.ok().data(sysRoleOrganizationService.findList(params)); } /** * 查询 */ @ApiOperation(value = "查询") @GetMapping("/{id}") public ResultBody findById(@PathVariable Long id) { SysRoleOrganization model = sysRoleOrganizationService.getById(id); return ResultBody.ok().data(model).msg("查询成功"); } /** * 根据SysRoleOrganization当做查询条件进行查询 */ @ApiOperation(value = "根据SysRoleOrganization当做查询条件进行查询") @PostMapping("/query") public ResultBody findByObject(@RequestBody SysRoleOrganization sysRoleOrganization) { SysRoleOrganization model = sysRoleOrganizationService.findByObject(sysRoleOrganization); return ResultBody.ok().data(model).msg("查询成功"); } /** * 新增or更新 */ @ApiOperation(value = "保存") @PostMapping public ResultBody save(@Valid @RequestBody SysRoleOrganizationDto sysRoleOrganizationDto, BindingResult bindingResult, @LoginUser SysUser user, HttpServletRequest request) { List<String> errMsg= new ArrayList<>(); String header = request.getHeader(SecurityConstants.USER_ORG_ID_HEADER); if (bindingResult.hasErrors()) { for (ObjectError error : bindingResult.getAllErrors()) { errMsg.add(error.getDefaultMessage()); } return ResultBody.failed().msg(errMsg.toString()); } else { boolean v= sysRoleOrganizationService.saveOrUpdateSer(sysRoleOrganizationDto,user); if(v) { return ResultBody.ok().data(sysRoleOrganizationDto).msg("保存成功"); } else { return ResultBody.failed().msg("保存失败"); } } } @ApiOperation(value = "获取tree") @GetMapping("getTree") public ResultBody getTree(@RequestParam Map<String, Object> params,@LoginUser SysUser user) { return sysRoleOrganizationService.getTree(params,user); } /** * 删除 */ @ApiOperation(value = "删除") @DeleteMapping("/{id}") public ResultBody delete(@PathVariable Long id) { boolean v= sysRoleOrganizationService.removeById(id); if(v) { return ResultBody.ok().msg("删除成功"); } else { return ResultBody.failed().msg("删除失败"); } } } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/resources/application.yml
@@ -71,6 +71,7 @@ - sys_department - sys_area - sys_company - sys_role_organization ignoreSqls: - com.kidgrow.usercenter.mapper.SysRoleMapper.findAll kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/SecurityConstants.java
@@ -25,7 +25,7 @@ String USER_ID_HEADER = "x-userid-header"; /** * 用户所属组织 为集合 * 用户所属组织 */ String USER_ORGS_HEADER="x-user-orgs-header"; /** kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/BaseSupperModel.java
@@ -55,6 +55,9 @@ @TableField(fill = FieldFill.INSERT_UPDATE) private String updateUserName; @TableField(fill = FieldFill.INSERT) private String createUserOrgCode; @Override protected Serializable pkVal() { return this.id; kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SuperEntity.java
@@ -22,7 +22,8 @@ * @Author: <a href="4345453@kidgrow.com">liuke</a> */ @Data public class SuperEntity<T extends Model<?>> extends Model<T> { public class SuperEntity<T extends Model<?>> extends Model<T> { /** * 主键ID,防止Long类型四舍五入 */ @@ -54,6 +55,9 @@ @TableField(fill = FieldFill.INSERT_UPDATE) private String updateUserName; @TableField(fill = FieldFill.INSERT) private String createUserOrgCode; @Override protected Serializable pkVal() { return this.id; kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SuperModel.java
@@ -24,6 +24,8 @@ */ @Data public class SuperModel<T extends Model<?>> extends Model<T>{ /** * 主键ID,雪花算法类型 */ @@ -55,6 +57,9 @@ @TableField(fill = FieldFill.INSERT_UPDATE) private String updateUserName; @TableField(fill = FieldFill.INSERT) private String createUserOrgCode; @Override protected Serializable pkVal() { return this.id; kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysOrganization.java
@@ -17,11 +17,12 @@ /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> * * @version 1.0 * @Description: 组织架构表<br> * @Project: 用户中心<br> * @CreateDate: Created in 2020-03-31 11:01:35 <br> * @Author: <a href="4345453@kidgrow.com">liuke</a> * @version 1.0 */ @Data @EqualsAndHashCode(callSuper = false) @@ -29,36 +30,40 @@ @AllArgsConstructor @TableName("sys_organization") public class SysOrganization extends SuperModel { private static final long serialVersionUID=1L; private static final long serialVersionUID = 1L; /** * 节点级别取值 0-9 */ @NotNull(message = "节点级别取值 0-9不能为空") private Integer orgLevel; /** * 节点属性(集团/公司/部门等,取值0,1,2,3,4) */ private Integer orgAttr; /** * 上级组织ID */ private Long orgParentId; /** * 组织名称 */ @NotBlank(message = "组织名称不能为空") private String orgName; /** * 排序 */ private Integer orgOrder; /** * 是否删除,1删除,0未删除 */ private Boolean isDel; /** * 状态,1启用,0停用 */ private Boolean enabled; } /** * 节点级别取值 0-9 */ @NotNull(message = "节点级别取值 0-9不能为空") private Integer orgLevel; /** * 节点属性(集团/公司/部门等,取值0,1,2,3,4) */ private Integer orgAttr; /** * 上级组织ID */ private Long orgParentId; /** * 组织名称 */ @NotBlank(message = "组织名称不能为空") private String orgName; /** * 排序 */ private Integer orgOrder; /** * 部门的code */ private String orgCode; /** * 是否删除,1删除,0未删除 */ private Boolean isDel; /** * 状态,1启用,0停用 */ private Boolean enabled; } kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysRole.java
@@ -30,4 +30,5 @@ @JsonSerialize(using = ToStringSerializer.class) @TableField(exist = false) private Long userId; private Integer type; } kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysUserOrg.java
@@ -27,7 +27,7 @@ @AllArgsConstructor @TableName("sys_user_org") public class SysUserOrg extends SuperModel { private static final long serialVersionUID=1L; // private static final long serialVersionUID = -2071565876962058344L; /** * 用户id kidgrow-commons/kidgrow-db-spring-boot-starter/src/main/java/com/kidgrow/db/config/DateMetaObjectHandler.java
@@ -1,12 +1,15 @@ package com.kidgrow.db.config; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.kidgrow.common.constant.SecurityConstants; import com.kidgrow.common.model.SysOrganization; import org.apache.ibatis.reflection.MetaObject; import org.springframework.beans.factory.annotation.Autowired; import javax.servlet.http.HttpServletRequest; import java.util.Date; import java.util.List; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> @@ -23,10 +26,11 @@ private final static String UPDATE_TIME = "updateTime"; private final static String CREATE_TIME = "createTime"; private final static String CREATE_USER_ID="createUserId"; private final static String UPDATE_USER_ID="updateUserId"; private final static String CREATE_USER_NAME="createUserName"; private final static String UPDATE_USER_NAME="updateUserName"; private final static String CREATE_USER_ID = "createUserId"; private final static String UPDATE_USER_ID = "updateUserId"; private final static String CREATE_USER_NAME = "createUserName"; private final static String UPDATE_USER_NAME = "updateUserName"; private final static String CREATE_USER_ORG_CODE = "createUserOrgCode"; /** * 插入填充,字段为空自动填充 @@ -39,20 +43,28 @@ Object updateUserId = getFieldValByName(UPDATE_USER_ID, metaObject); Object createUserName = getFieldValByName(CREATE_USER_NAME, metaObject); Object updateUserName = getFieldValByName(UPDATE_USER_NAME, metaObject); if (createTime == null || updateTime == null || createUserId==null || updateUserId==null || createUserName==null || updateUserName==null) { Object createUserOrgCode = getFieldValByName(CREATE_USER_ORG_CODE, metaObject); if (createTime == null || updateTime == null || createUserId == null || updateUserId == null || createUserName == null || updateUserName == null || createUserOrgCode == null) { Date date = new Date(); if (createTime == null) { setFieldValByName(CREATE_TIME, date, metaObject); } if(request.getHeader(SecurityConstants.USER_ID_HEADER)!=null) { if (request.getHeader(SecurityConstants.USER_ID_HEADER) != null) { setFieldValByName(CREATE_USER_ID, Long.valueOf(request.getHeader(SecurityConstants.USER_ID_HEADER).toString()), metaObject); } if (createUserName == null) { if(request.getHeader(SecurityConstants.USER_HEADER)!=null) { if (request.getHeader(SecurityConstants.USER_HEADER) != null) { setFieldValByName(CREATE_USER_NAME, request.getHeader(SecurityConstants.USER_HEADER), metaObject); } } if (createUserOrgCode == null) { if (request.getHeader(SecurityConstants.USER_ORGS_HEADER) != null) { //获取orgLevel等级高的 List<SysOrganization> sysOrganizations = JSON.parseArray(request.getHeader(SecurityConstants.USER_ORGS_HEADER), SysOrganization.class); setFieldValByName(CREATE_USER_ORG_CODE,sysOrganizations.get(sysOrganizations.size()-1).getOrgCode() , metaObject); } } } } kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpInterceptorConfig.java
@@ -34,6 +34,7 @@ requestHeaders.add(SecurityConstants.USER_DEP_ID_HEADER); requestHeaders.add(SecurityConstants.USER_DEP_NAME_HEADER); requestHeaders.add(SecurityConstants.USER_ORG_ID_HEADER); requestHeaders.add(SecurityConstants.USER_ORGS_HEADER); requestHeaders.add(SecurityConstants.USER_ORG_NAME_HEADER); requestHeaders.add(SecurityConstants.ROLE_HEADER); requestHeaders.add(SecurityConstants.CLIENT_HEADER); kidgrow-config/src/main/resources/application-dev.properties
@@ -8,7 +8,8 @@ ##### Redis\u914D\u7F6E # \u662F\u5426\u5F00\u542FRedis\u7F13\u5B58 true\u5F00\u542F false \u5173\u95ED spring.redis.open=true spring.redis.host=192.168.2.240 #spring.redis.host=192.168.2.240 spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password=kidgrow spring.redis.timeout=5000 @@ -18,7 +19,7 @@ kidgrow.druid.loginpwd=123456 #eureka \u6CE8\u518C\u4E2D\u5FC3Url kidgrow.eureka.client.serviceUrl.defaultZone=http://192.168.2.240:9001/eureka/ kidgrow.eureka.client.serviceUrl.defaultZone=http://127.0.0.1:9001/eureka/ kidgrow.eureka.instance.hostname=127.0.0.1 ##eureka client\u53D1\u9001\u5FC3\u8DF3\u7ED9server\u7AEF\u7684\u9891\u7387 eureka.instance.lease-renewal-interval-in-seconds=30 kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/filter/UserInfoHeaderFilter.java
@@ -77,9 +77,10 @@ ctx.addZuulRequestHeader(SecurityConstants.USER_ORG_NAME_HEADER, URLEncoder.encode(organizations.get(0).getOrgName(),"UTF-8")); ctx.addZuulRequestHeader(SecurityConstants.USER_DEP_ID_HEADER,String.valueOf(organizations.get(organizations.size()-1).getId())); ctx.addZuulRequestHeader(SecurityConstants.USER_DEP_NAME_HEADER,URLEncoder.encode(organizations.get(organizations.size()-1).getOrgName(),"UTF-8")); ctx.addZuulRequestHeader(SecurityConstants.USER_ORGS_HEADER,JSON.toJSONString(organizations.get(organizations.size()-1))); ctx.addZuulRequestHeader(SecurityConstants.USER_ORGS_HEADER,JSON.toJSONString(organizations)); //将角色放到header ctx.addZuulRequestHeader(SecurityConstants.ROLE_HEADER, JSON.toJSONString(user.getRoles())); tenantId=String.valueOf(organizations.get(0).getId()); } kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/index.js
@@ -199,6 +199,7 @@ // debugger; config.putUser(user); admin.putTempData("permissions", user.permissions); admin.putTempData("organization",user.organizations[user.organizations.length-1]); success(user); } else { if (data.code === 1000) { kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/header.html
@@ -12,9 +12,12 @@ </li> </ul> <ul class="layui-nav layui-layout-right"> <!--<li class="layui-nav-item" lay-unselect>--> <!--<a id="btnMessage" title="消息"><i class="layui-icon layui-icon-notice"></i></a>--> <!--</li>--> <!-- <li class="layui-nav-item" lay-unselect> <a id="btnMessage" title="消息"><i class="layui-icon layui-icon-notice"></i></a> </li> --> <li class="layui-nav-item" lay-unselect> <a title="消息"><i class="layui-icon layui-icon-notice" id="organization">1231</i></a> </li> <li class="layui-nav-item layui-hide-xs" lay-unselect> <a ew-event="fullScreen" title="全屏"><i class="layui-icon layui-icon-screen-full"></i></a> </li> @@ -42,4 +45,14 @@ <!-- <li class="layui-nav-item" lay-unselect>--> <!-- <a ew-event="theme" title="主题"><i class="layui-icon layui-icon-more-vertical"></i></a>--> <!-- </li>--> </ul> </ul> <script> layui.use([ 'admin'], function () { var admin = layui.admin , $ = layui.jquery; var organization=admin.getTempData("organization"); $("#organization").html("wer"); console.log($("#organization").html()) }) </script> kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/sysOrganization.html
@@ -139,9 +139,11 @@ if (d.orgAttr == 0) { return "集团"; } else if (d.orgAttr == 1) { return "公司"; return "公司/医院"; } else if (d.orgAttr == 2) { return "部门"; return "部门/科室"; }else{ return "子部门/子科室"; } } }, kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/system/role.html
@@ -1,11 +1,11 @@ <link rel="stylesheet" href="/assets/libs/zTree/css/zTreeStyle/zTreeStyle.css"/> <link rel="stylesheet" href="/assets/libs/zTree/css/zTreeStyle/zTreeStyle.css" /> <script type="text/javascript" src="/assets/libs/zTree/js/jquery.ztree.all-3.5.min.js"></script> <div class="layui-card"> <div class="layui-card-header"> <h2 class="header-title">角色管理</h2> <span class="layui-breadcrumb pull-right"> <a href="#!console">首页</a> <a><cite>角色管理</cite></a> <a href="#!console">首页</a> <a><cite>角色管理</cite></a> </span> </div> <div class="layui-card-body"> @@ -16,13 +16,13 @@ <option value="">-请选择-</option> <option value="name">角色名称</option> </select>  <input id="role-edit-value" class="layui-input search-input" type="text" placeholder="输入关键字"/>  <input id="role-edit-value" class="layui-input search-input" type="text" placeholder="输入关键字" />  <button id="role-btn-search" class="layui-btn icon-btn"><i class="layui-icon"></i>搜索</button> <button id="role-btn-add" class="layui-btn icon-btn"><i class="layui-icon"></i>添加</button> </div> <!-- 数据表格 --> <table class="layui-table" id="role-table" lay-filter="role-table"></table> <table class="layui-hide" id="role-table" lay-filter="role-table"></table> </div> </div> @@ -57,11 +57,55 @@ </form> </script> <!-- 数据权限 表单弹窗 --> <script type="text/html" id="role-model-role"> <form id="role-form" lay-filter="role-form" class="layui-form model-form"> <input name="id" type="hidden"/> <div class="layui-form-item"> <label class="layui-form-label">角色名</label> <div class="layui-input-block"> <input name="name" placeholder="请输入角色名" type="text" class="layui-input" maxlength="20" lay-verify="required" required/> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">Code</label> <div class="layui-input-block"> <input name="code" placeholder="请输入Code" type="text" class="layui-input" maxlength="20" lay-verify="required" required /> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">权限范围</label> <div class="layui-input-block"> <select name="type" lay-filter="role_organization"> <option value="">请选择权限</option> <option value="1">全部数据权限</option> <option value="2">自定义数据权限</option> <option value="3">本部门数据权限</option> <option value="4">本部门及以下数据权限</option> <option value="5">仅本人数据权限</option> </select> </div> </div> <div class="layui-form-item" id="tree"> <!-- <label class="layui-form-label">数据权限</label> --> <!-- <div id="orgParentId-tree" class="demo-tree demo-tree-box"></div> --> <ul id="treeMenu-role" class="ztree" style="padding: 25px 0px 20px 60px;"></ul> </div> <div class="layui-form-item model-form-footer"> <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button> <button class="layui-btn" lay-filter="role-form-submit-role" lay-submit>保存</button> </div> </form> </script> <!-- 表格操作列 --> <script type="text/html" id="role-table-bar"> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a> <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a> <a class="layui-btn layui-btn-xs" lay-event="auth">权限分配</a> <a class="layui-btn layui-btn-xs" lay-event="auth_role">分配数据权限</a> </script> <!-- 表格状态列 --> @@ -71,7 +115,7 @@ </script> <script> layui.use(['form', 'table', 'util', 'config', 'admin', 'formSelects'], function () { layui.use(['form', 'table', 'util', 'config', 'tree', 'admin', 'formSelects'], function () { var form = layui.form; var table = layui.table; var config = layui.config; @@ -79,27 +123,33 @@ var util = layui.util; var admin = layui.admin; var formSelects = layui.formSelects; var clientsAll =null; //树形插件 var tree = layui.tree; var layer = layui.layer , $ = layui.jquery; //常量 var clientsAll = null; //渲染表格 table.render({ elem: '#role-table', url: config.base_server + 'api-user/roles', headers:{'Authorization': 'Bearer ' + config.getToken().access_token}, headers: { 'Authorization': 'Bearer ' + config.getToken().access_token }, page: true, cellMinWidth: 80, cols: [[ {type: 'numbers'}, {field: 'id', sort: true, title: 'ID',width: 80}, {field: 'name', sort: true, title: '角色名'}, {field: 'code', sort: true, title: 'Code'}, {field: 'tenantId', sort: true, title: '应用标识'}, { type: 'numbers' }, { field: 'id', sort: true, title: 'ID', width: 80 }, { field: 'name', sort: true, title: '角色名' }, { field: 'code', sort: true, title: 'Code' }, { field: 'tenantId', sort: true, title: '应用标识' }, { field: 'createTime', sort: true, templet: function (d) { return util.toDateString(d.createTime); }, title: '创建时间' }, {field: 'enabled', width: 100,sort: true, templet: '#role-tpl-state', title: '状态'}, {align: 'center', toolbar: '#role-table-bar', title: '操作',width: 250} { field: 'enabled', width: 100, sort: true, templet: '#role-tpl-state', title: '状态' }, { align: 'center', toolbar: '#role-table-bar', title: '操作', width: 320 } ]] }); @@ -109,8 +159,8 @@ layer.closeAll('loading'); if (0 === data.code) { let selected = false; clientsAll=data.data; $.each(data.data,function(index,item){ clientsAll = data.data; $.each(data.data, function (index, item) { if (config.clientId === item.clientId) { selected = true; } else { @@ -121,7 +171,7 @@ }) form.render(); } else { layer.msg(data.msg, {icon: 2, time: 500}); layer.msg(data.msg, { icon: 2, time: 500 }); } }, 'GET'); @@ -132,20 +182,50 @@ // 表单提交事件 form.on('submit(role-form-submit)', function (data) { data.field.tenantId=$('#role_clients_add').val(); data.field.tenantId = $('#role_clients_add').val(); let tenantId = $('#role_clients_add').val(); layer.load(2); admin.req('api-user/roles/saveOrUpdate?tenantId='+tenantId, JSON.stringify(data.field), function (data) { admin.req('api-user/roles/saveOrUpdate?tenantId=' + tenantId, JSON.stringify(data.field), function (data) { layer.closeAll('loading'); // console.log(data); if (data.code === 0) { layer.msg(data.msg, {icon: 1, time: 500}); layer.msg(data.msg, { icon: 1, time: 500 }); table.reload('role-table'); layer.closeAll('page'); } else { layer.msg(data.msg, {icon: 2, time: 500}); layer.msg(data.msg, { icon: 2, time: 500 }); } }, $('#role-form').attr('method')); return false; }); // 表单提交事件 form.on('submit(role-form-submit-role)', function (data) { var array=new Array(); var treeObj = $.fn.zTree.getZTreeObj('treeMenu-role'); var nodes = treeObj.getCheckedNodes(true); $.each(nodes,function(i,item){ // console.log(item) if(!item.children){ array.push(item.id); } }) if(array.length>0){ data.field.orgIds=array } data.field.roleId= data.field.id layer.load(2); admin.req('api-user/sysroleorganization', JSON.stringify(data.field), function (data) { layer.closeAll('loading'); console.log(data); if (data.code === 0) { layer.msg(data.msg, { icon: 1, time: 500 }); table.reload('role-table'); layer.closeAll('page'); } else { layer.msg(data.msg, { icon: 2, time: 500 }); } }, $('#role-form').attr('method')); layer.closeAll('page'); return false; }); @@ -157,7 +237,9 @@ } else if (obj.event === 'del') { //删除 doDelete(obj); } else if (obj.event === 'auth') { // 权限分配 showMenuDialog(obj.data.id,obj.data.tenantId); showMenuDialog(obj.data.id, obj.data.tenantId); } else if (obj.event === 'auth_role') { showEditModelRole(data); } }); @@ -170,9 +252,9 @@ }, function (data) { layer.closeAll('loading'); if (data.code == 0) { layer.msg(data.msg, {icon: 1, time: 500}); layer.msg(data.msg, { icon: 1, time: 500 }); } else { layer.msg(data.msg, {icon: 2, time: 500}); layer.msg(data.msg, { icon: 2, time: 500 }); $(obj.elem).prop('checked', !obj.elem.checked); form.render('checkbox'); } @@ -184,9 +266,37 @@ $('#role-btn-search').click(function () { var key = $('#role-search-key').val(); var value = $('#role-edit-value').val(); table.reload('role-table', {where: {searchKey: key, searchValue: value}}); table.reload('role-table', { where: { searchKey: key, searchValue: value } }); }); var getData = function () { admin.req('api-user/sysroleorganization/getTree', { is_del: 0 }, function (data) { layer.closeAll('loading'); var data1 = [{ name: '常用文件夹', id: 1, children: [ { name: '所有未读', id: 11 }, { name: '置顶邮件', id: 12 }, { name: '标签邮件', id: 13 }] }]; if (0 === data.code) { var setting = { check: { enable: true }, data: { simpleData: { enable: true } } }; $.fn.zTree.init($('#treeMenu-role'), setting, data.data); layer.closeAll('loading'); } else { layer.msg(data.msg, { icon: 2, time: 500 }); } }, 'get'); } // 显示编辑弹窗 var showEditModel = function (data) { layer.open({ @@ -199,10 +309,10 @@ $('#role-form')[0].reset(); $('#role-form').attr('method', 'POST'); if (data) { $("input[name='code']").attr('disabled',true); $("input[name='code']").attr('class',"layui-input layui-disabled"); $("input[name='code']").attr('disabled', true); $("input[name='code']").attr('class', "layui-input layui-disabled"); let selected = false; $.each(clientsAll,function(index,item){ $.each(clientsAll, function (index, item) { if (data.tenantId === item.clientId) { selected = true; } else { @@ -211,37 +321,69 @@ //往下拉菜单里添加元素 $('#role_clients_add').append(new Option(item.clientName, item.clientId, false, selected)); }) $('#role_clients_add').attr('disabled',true); $('#role_clients_add').attr('disabled', true); form.render(); form.val('role-form', data); $('#role-form').attr('method', 'POST'); } else{ $.each(clientsAll,function(index,item){ else { $.each(clientsAll, function (index, item) { //往下拉菜单里添加元素 $('#role_clients_add').append(new Option(item.clientName, item.clientId)); }) $('#role_clients_add').attr('disabled',false); $('#role_clients_add').attr('disabled', false); form.render(); $('#role-form').attr('method', 'POST'); } } }); }; //数据权限的点击事件 form.on('select(role_organization)', function (data) { console.log(data.value) if (data.value == 2) { $("#tree").show(); }else{ $("#tree").hide(); } }); // 显示分配数据权限弹窗 var showEditModelRole = function (data) { layer.open({ type: 1, title: "分配数据权限", area: '450px', offset: '120px', content: $('#role-model-role').html(), success: function () { $('#role-form')[0].reset(); $('#role-form').attr('method', 'POST'); if (data) { getData(); console.log(data.type) if(data.type!=2){ $("#tree").hide(); } form.render(); form.val('role-form', data); } } }); }; // 删除 var doDelete = function (obj) { layer.confirm('确定要删除吗?', function (i) { let tenantId = $('#role_clients').val(); layer.close(i); layer.load(2); admin.req('api-user/roles/' + obj.data.id+'?tenantId='+tenantId, {}, function (data) { admin.req('api-user/roles/' + obj.data.id + '?tenantId=' + tenantId, {}, function (data) { layer.closeAll('loading'); if (data.code === 0) { layer.msg(data.msg, {icon: 1, time: 500}); layer.msg(data.msg, { icon: 1, time: 500 }); obj.del(); } else { layer.msg(data.msg, {icon: 2, time: 500}); layer.msg(data.msg, { icon: 2, time: 500 }); } }, 'DELETE'); }); @@ -249,7 +391,7 @@ // 菜单管理 var showMenuDialog = function (roleId,tenantId) { var showMenuDialog = function (roleId, tenantId) { // let tenantId = $('#role_clients').val(); layer.open({ type: 1, @@ -263,14 +405,14 @@ $(layero).children('.layui-layer-content').css('overflow-y', 'auto'); layer.load(2); var setting = { check: {enable: true}, check: { enable: true }, data: { simpleData: { enable: true } } }; admin.req('api-user/menus/'+roleId+'/menus', {tenantId: tenantId}, function (data) { admin.req('api-user/menus/' + roleId + '/menus', { tenantId: tenantId }, function (data) { if (data.code === 0) { $.fn.zTree.init($('#treeMenu'), setting, data.data); layer.closeAll('loading'); @@ -290,13 +432,13 @@ data.roleId = roleId; data.menuIds = ids; admin.req('api-user/menus/granted?tenantId='+tenantId, JSON.stringify(data) , function (data) { admin.req('api-user/menus/granted?tenantId=' + tenantId, JSON.stringify(data), function (data) { layer.closeAll('loading'); if (0 == data.code) { layer.msg(data.msg, {icon: 1, time: 500}); layer.msg(data.msg, { icon: 1, time: 500 }); layer.close(index); } else { layer.msg(data.msg, {icon: 2, time: 500}); layer.msg(data.msg, { icon: 2, time: 500 }); } }, 'POST'); } @@ -304,8 +446,8 @@ } // 应用下来框点击事件 form.on('select(role_clients)', function(data){ table.reload('role-table', {where: {tenantId: data.value}}); form.on('select(role_clients)', function (data) { table.reload('role-table', { where: { tenantId: data.value } }); }); });