Commit 5a295782 by liuyongshuai Committed by liuyongshuai

完善ztree相关调用,添加增加角色功能。

parent bb475adb
ALTER TABLE XZXT.SYS_PERMISSION_NEW
ALTER TABLE XZXT.SYS_PERMISSION_NEW
DROP PRIMARY KEY CASCADE;
DROP TABLE XZXT.SYS_PERMISSION_NEW CASCADE CONSTRAINTS;
CREATE TABLE XZXT.SYS_PERMISSION_NEW
(
ID VARCHAR2(32 BYTE) NOT NULL,
NAME VARCHAR2(50 BYTE),
MENUNAME VARCHAR2(50 BYTE),
PID VARCHAR2(32 BYTE),
PERMISSION VARCHAR2(255 BYTE),
URL VARCHAR2(255 BYTE),
DESCRIPTION VARCHAR2(1200 BYTE),
TYPE VARCHAR2(2 BYTE),
LRR VARCHAR2(75 BYTE),
LRSJ DATE DEFAULT sysdate,
GXR VARCHAR2(75 BYTE),
GXSJ DATE,
LRDWDM VARCHAR2(12 BYTE),
LRDWMC VARCHAR2(300 BYTE),
SCBZ NUMBER(2),
IP VARCHAR2(20 BYTE) DEFAULT null,
ZINDEX NUMBER,
FLAG NUMBER DEFAULT 0
)
TABLESPACE TBS_XZXT_XTZY
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 192K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;
COMMENT ON COLUMN XZXT.SYS_PERMISSION_NEW.ID IS '权限id';
COMMENT ON COLUMN XZXT.SYS_PERMISSION_NEW.NAME IS ' 权限名称';
COMMENT ON COLUMN XZXT.SYS_PERMISSION_NEW.MENUNAME IS '菜单名称';
COMMENT ON COLUMN XZXT.SYS_PERMISSION_NEW.PID IS '父级权限id';
COMMENT ON COLUMN XZXT.SYS_PERMISSION_NEW.PERMISSION IS '资源权限字符串';
COMMENT ON COLUMN XZXT.SYS_PERMISSION_NEW.URL IS '资源 url';
COMMENT ON COLUMN XZXT.SYS_PERMISSION_NEW.DESCRIPTION IS '描述';
COMMENT ON COLUMN XZXT.SYS_PERMISSION_NEW.TYPE IS '权限类型';
COMMENT ON COLUMN XZXT.SYS_PERMISSION_NEW.IP IS 'ip地址';
COMMENT ON COLUMN XZXT.SYS_PERMISSION_NEW.ZINDEX IS '菜单排序';
COMMENT ON COLUMN XZXT.SYS_PERMISSION_NEW.FLAG IS '是否生成菜单,0:默认不生成菜单,1:生成菜单';
CREATE UNIQUE INDEX XZXT.SYS_PERMISSION_NEW_PK ON XZXT.SYS_PERMISSION_NEW
(ID)
LOGGING
TABLESPACE TBS_XZXT_SHZK
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL;
ALTER TABLE XZXT.SYS_PERMISSION_NEW ADD (
CONSTRAINT SYS_PERMISSION_NEW_PK
PRIMARY KEY
(ID)
USING INDEX
TABLESPACE TBS_XZXT_SHZK
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
));
-- Add/modify columns
-- Add/modify columns
alter table SYS_ROLE add PID VARCHAR2(32);
alter table SYS_ROLE add TYPE VARCHAR2(2);
-- Add comments to the columns
comment on column SYS_ROLE.PID
is '父级角色id';
comment on column SYS_ROLE.TYPE
is '角色类型';
\ No newline at end of file
package com.xzxtshiro.controller.admin; package com.xzxtshiro.controller.admin;
import com.xzxtshiro.pojo.Page; import com.xzxtshiro.pojo.BaseModel;
import com.xzxtshiro.pojo.SysPermissionNew; import com.xzxtshiro.pojo.SysPermissionNew;
import com.xzxtshiro.service.SysPermissionNewService; import com.xzxtshiro.service.SysPermissionNewService;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
...@@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.ResponseBody; ...@@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author liuys * @author liuys
...@@ -48,7 +47,7 @@ public class PermissionNewController { ...@@ -48,7 +47,7 @@ public class PermissionNewController {
*/ */
@ResponseBody @ResponseBody
@RequestMapping(value = "/list", method = RequestMethod.GET) @RequestMapping(value = "/list", method = RequestMethod.GET)
public Page list(SysPermissionNew permission) { public BaseModel list(SysPermissionNew permission) {
return permissionService.selectSysPermissionNewPage(permission); return permissionService.selectSysPermissionNewPage(permission);
} }
......
package com.xzxtshiro.dao; package com.xzxtshiro.dao;
import com.xzxtshiro.pojo.SysPermissionNew;
import com.xzxtshiro.pojo.SysRole; import com.xzxtshiro.pojo.SysRole;
import com.xzxtshiro.pojo.SysRolePermission; import com.xzxtshiro.pojo.SysRolePermission;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -40,7 +41,7 @@ public interface SysRoleDao { ...@@ -40,7 +41,7 @@ public interface SysRoleDao {
* @param SysRole * @param SysRole
* @return * @return
*/ */
int add(@Param("SysRole") SysRole SysRole); Integer add(SysRole SysRole);
/** /**
* 批量添加角色权限关联 * 批量添加角色权限关联
...@@ -56,7 +57,7 @@ public interface SysRoleDao { ...@@ -56,7 +57,7 @@ public interface SysRoleDao {
* @param id * @param id
* @return * @return
*/ */
List<SysRole> selectPermissionBySysRoleId(@Param("id") String id); List<SysPermissionNew> selectPermissionBySysRoleId(@Param("id") String id);
/** /**
* 根据ID修改角色信息 * 根据ID修改角色信息
...@@ -96,4 +97,18 @@ public interface SysRoleDao { ...@@ -96,4 +97,18 @@ public interface SysRoleDao {
* @return * @return
*/ */
SysRole selectSysRoleByUserId(Integer userId); SysRole selectSysRoleByUserId(Integer userId);
/**
* 根据条件过滤出需要的角色
* @param sysRole
* @return
*/
List<SysRole> selectSysRolesByCondition(SysRole sysRole);
/**
* 批量添加角色的权限
* @param sysRolePermissionList
* @return
*/
int batchAddSysRolePermission(List<SysRolePermission> sysRolePermissionList);
} }
...@@ -14,10 +14,12 @@ ...@@ -14,10 +14,12 @@
<result column="SCBZ" property="scbz" jdbcType="DECIMAL" /> <result column="SCBZ" property="scbz" jdbcType="DECIMAL" />
<result column="IP" property="ip" jdbcType="VARCHAR" /> <result column="IP" property="ip" jdbcType="VARCHAR" />
<result column="SFFB" property="sffb" jdbcType="VARCHAR" /> <result column="SFFB" property="sffb" jdbcType="VARCHAR" />
<result column="PID" property="pid" jdbcType="VARCHAR" />
<result column="TYPE" property="type" jdbcType="VARCHAR" />
<result column="rn" property="rn" jdbcType="INTEGER" /> <result column="rn" property="rn" jdbcType="INTEGER" />
</resultMap> </resultMap>
<sql id="Base_Column_List" > <sql id="Base_Column_List" >
ID, ROLENAME, DESCRIPTION, LRR, LRSJ, GXR, GXSJ, LRDWDM, LRDWMC, SCBZ, IP, SFFB ID, ROLENAME, DESCRIPTION, LRR, LRSJ, GXR, GXSJ, LRDWDM, LRDWMC, SCBZ, IP, SFFB , PID , TYPE
</sql> </sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" > <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
select select
...@@ -44,19 +46,71 @@ ...@@ -44,19 +46,71 @@
SYS_ROLE SYS_ROLE
WHERE scbz='0' WHERE scbz='0'
</select> </select>
<select id="selectSysRolesByCondition" parameterType="com.xzxtshiro.pojo.SysRole" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List" />
FROM SYS_ROLE
WHERE 1=1
<include refid="queryWhere" />
</select>
<sql id="queryWhere">
<if test="id != null" >
AND id = #{id,jdbcType=VARCHAR},
</if>
<if test="rolename != null" >
AND rolename = #{rolename,jdbcType=VARCHAR},
</if>
<if test="description != null" >
AND description = #{description,jdbcType=VARCHAR},
</if>
<if test="lrr != null" >
AND lrr = #{lrr,jdbcType=VARCHAR},
</if>
<if test="lrsj != null" >
AND lrsj = #{lrsj,jdbcType=DATE},
</if>
<if test="gxr != null" >
AND gxr = #{gxr,jdbcType=VARCHAR},
</if>
<if test="gxsj != null" >
AND gxsj = #{gxsj,jdbcType=DATE},
</if>
<if test="lrdwdm != null" >
AND lrdwdm = #{lrdwdm,jdbcType=VARCHAR},
</if>
<if test="lrdwmc != null" >
AND lrdwmc = #{lrdwmc,jdbcType=VARCHAR},
</if>
<if test="scbz != null" >
AND scbz = #{scbz,jdbcType=DECIMAL},
</if>
<if test="ip != null" >
AND ip = #{ip,jdbcType=VARCHAR},
</if>
<if test="sffb != null" >
AND sffb = #{sffb,jdbcType=VARCHAR},
</if>
<if test="pid != null" >
AND pid = #{pid,jdbcType=VARCHAR},
</if>
<if test="type != null" >
AND type = #{type,jdbcType=VARCHAR},
</if>
</sql>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String" > <delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
delete from SYS_ROLE delete from SYS_ROLE
where ID = #{id,jdbcType=VARCHAR} where ID = #{id,jdbcType=VARCHAR}
</delete> </delete>
<insert id="insert" parameterType="com.xzxtshiro.pojo.SysRole" > <insert id="add" parameterType="com.xzxtshiro.pojo.SysRole">
insert into SYS_ROLE (ID, ROLENAME, DESCRIPTION, insert into SYS_ROLE (ID, ROLENAME, DESCRIPTION,
LRR, LRSJ, GXR, GXSJ, LRR, LRSJ, GXR, GXSJ,
LRDWDM, LRDWMC, SCBZ, LRDWDM, LRDWMC, SCBZ,
IP, SFFB) IP, SFFB, PID, TYPE)
values (#{id,jdbcType=VARCHAR}, #{rolename,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, values (#{id,jdbcType=VARCHAR}, #{rolename,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR},
#{lrr,jdbcType=VARCHAR}, #{lrsj,jdbcType=DATE}, #{gxr,jdbcType=VARCHAR}, #{gxsj,jdbcType=DATE}, #{lrr,jdbcType=VARCHAR}, #{lrsj,jdbcType=DATE}, #{gxr,jdbcType=VARCHAR}, #{gxsj,jdbcType=DATE},
#{lrdwdm,jdbcType=VARCHAR}, #{lrdwmc,jdbcType=VARCHAR}, #{scbz,jdbcType=DECIMAL}, #{lrdwdm,jdbcType=VARCHAR}, #{lrdwmc,jdbcType=VARCHAR}, #{scbz,jdbcType=DECIMAL},
#{ip,jdbcType=VARCHAR}, #{sffb,jdbcType=VARCHAR}) #{ip,jdbcType=VARCHAR}, #{sffb,jdbcType=VARCHAR}, #{pid,jdbcType=VARCHAR}, #{type,jdbcType=VARCHAR})
</insert> </insert>
<insert id="insertSelective" parameterType="com.xzxtshiro.pojo.SysRole" > <insert id="insertSelective" parameterType="com.xzxtshiro.pojo.SysRole" >
insert into SYS_ROLE insert into SYS_ROLE
...@@ -153,11 +207,10 @@ ...@@ -153,11 +207,10 @@
where ID = #{id,jdbcType=VARCHAR} where ID = #{id,jdbcType=VARCHAR}
</update> </update>
<!--批量添加角色权限--> <!--批量添加角色权限-->
<insert id="batchAddRoleAndPermission"> <insert id="batchAddSysRolePermission" parameterType="java.util.List">
<!----> INSERT INTO sys_role_permission (ID, ROLEID,PERMISSIONID,LRR,LRSJ)
INSERT INTO `sys_role_permission` (`ROLEID`, `PERMISSIONID`) VALUES <foreach collection="list" item="sysRolePermission" index="index" separator="union all">
<foreach collection="roleAndPermissions" item="roleAndPermission" separator=","> SELECT #{sysRolePermission.id},#{sysRolePermission.roleid}, #{sysRolePermission.permissionid}, #{sysRolePermission.lrr}, #{sysRolePermission.lrsj} FROM DUAL
(#{roleAndPermission.roleId}, #{roleAndPermission.permissionId})
</foreach> </foreach>
</insert> </insert>
<!--根据用户id查询角色id--> <!--根据用户id查询角色id-->
...@@ -165,12 +218,12 @@ ...@@ -165,12 +218,12 @@
select ROLE_ID as id from sys_user_role where USER_ID = #{user.userId} select ROLE_ID as id from sys_user_role where USER_ID = #{user.userId}
</select> </select>
<!--根据角色id查询角色所拥有的权限名(暂时用权限描述代替)--> <!--根据角色id查询角色所拥有的权限名(暂时用权限描述代替)-->
<select id="selectPermissionBySysRoleId" resultMap="BaseResultMap"> <select id="selectPermissionBySysRoleId" resultType="com.xzxtshiro.pojo.SysPermissionNew">
SELECT select id,name from sys_permission_new where id in (SELECT
action description permissionid description
FROM FROM
sys_role_permission sys_role_permission
where ROLEID=#{id,jdbcType=VARCHAR} where ROLEID=#{id,jdbcType=VARCHAR})
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -6,6 +6,7 @@ import lombok.Data; ...@@ -6,6 +6,7 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.extern.log4j.Log4j; import lombok.extern.log4j.Log4j;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -17,9 +18,25 @@ import java.util.List; ...@@ -17,9 +18,25 @@ import java.util.List;
@Log4j @Log4j
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class Page { public class BaseModel {
protected Integer page;//页码
protected Integer limit;//当页总条数
protected Integer rn; //条数序列
protected Integer code = 0; protected Integer code = 0;
protected String msg; protected String msg;
protected Integer count = 0; protected Integer count = 0;
protected Object data; protected Object data;
protected String lrr;
protected Date lrsj;
protected String gxr;
protected Date gxsj;
protected String lrdwdm;
protected String lrdwmc;
protected Integer scbz;
} }
...@@ -18,7 +18,7 @@ import java.util.Date; ...@@ -18,7 +18,7 @@ import java.util.Date;
@Log4j @Log4j
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class SysPermissionNew extends PageBean implements Serializable { public class SysPermissionNew extends BaseModel implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
protected String id; protected String id;
...@@ -36,20 +36,6 @@ public class SysPermissionNew extends PageBean implements Serializable { ...@@ -36,20 +36,6 @@ public class SysPermissionNew extends PageBean implements Serializable {
protected String type; protected String type;
protected String lrr;
protected Date lrsj;
protected String gxr;
protected Date gxsj;
protected String lrdwdm;
protected String lrdwmc;
protected Integer scbz;
protected String ip; protected String ip;
protected Integer zindex; protected Integer zindex;
......
...@@ -12,7 +12,7 @@ import java.util.Date; ...@@ -12,7 +12,7 @@ import java.util.Date;
@Log4j @Log4j
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class SysRole extends PageBean implements Serializable { public class SysRole extends BaseModel implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
protected String id; protected String id;
...@@ -20,23 +20,19 @@ public class SysRole extends PageBean implements Serializable { ...@@ -20,23 +20,19 @@ public class SysRole extends PageBean implements Serializable {
protected String description; protected String description;
protected String lrr; protected String ip;
protected Date lrsj;
protected String gxr;
protected Date gxsj;
protected String lrdwdm; protected String sffb;
protected String lrdwmc; protected String type;
protected Short scbz; protected String pid;
protected String ip; /**权限组的id合集*/
protected String permissionId;
protected String sffb; /**权限组的name合集*/
protected String permissionName;
} }
\ No newline at end of file
...@@ -5,12 +5,13 @@ import lombok.Data; ...@@ -5,12 +5,13 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.extern.log4j.Log4j; import lombok.extern.log4j.Log4j;
import java.util.Date; import java.io.Serializable;
@Data @Data
@Log4j @Log4j
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class SysRolePermission { public class SysRolePermission extends BaseModel implements Serializable {
private static final long serialVersionUID = 1L;
protected String id; protected String id;
protected String roleid; protected String roleid;
...@@ -19,14 +20,6 @@ public class SysRolePermission { ...@@ -19,14 +20,6 @@ public class SysRolePermission {
protected String action; protected String action;
protected String lrdwdm;
protected String lrdwmc;
protected Date lrsj;
protected String lrr;
protected String ip; protected String ip;
} }
\ No newline at end of file
...@@ -5,31 +5,19 @@ import lombok.Data; ...@@ -5,31 +5,19 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.extern.log4j.Log4j; import lombok.extern.log4j.Log4j;
import java.io.Serializable;
import java.util.Date; import java.util.Date;
@Data @Data
@Log4j @Log4j
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class SysUserRole { public class SysUserRole extends BaseModel implements Serializable {
private static final long serialVersionUID = 1L;
protected String id; protected String id;
protected String userId; protected String userId;
protected String roleId; protected String roleId;
protected String lrr;
protected Date lrsj;
protected String gxr;
protected Date gxsj;
protected String lrdwdm;
protected String lrdwmc;
protected Short scbz;
protected String ip; protected String ip;
} }
\ No newline at end of file
package com.xzxtshiro.pojo;
/**
* @author liuys
* @desc
* @date 2018-07-03 17:04
*/
public class TreeData {
private String title;
private String value;
private Object data;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
}
package com.xzxtshiro.service; package com.xzxtshiro.service;
import com.xzxtshiro.pojo.Page; import com.xzxtshiro.pojo.BaseModel;
import com.xzxtshiro.pojo.SysPermissionNew; import com.xzxtshiro.pojo.SysPermissionNew;
import java.util.List; import java.util.List;
...@@ -25,7 +25,7 @@ public interface SysPermissionNewService { ...@@ -25,7 +25,7 @@ public interface SysPermissionNewService {
* @return * @return
*/ */
Page selectSysPermissionNewPage(SysPermissionNew permission); BaseModel selectSysPermissionNewPage(SysPermissionNew permission);
/** /**
* 获取所有父级菜单 * 获取所有父级菜单
......
package com.xzxtshiro.service; package com.xzxtshiro.service;
import com.xzxtshiro.pojo.Page; import com.xzxtshiro.pojo.BaseModel;
import com.xzxtshiro.pojo.SysRole; import com.xzxtshiro.pojo.SysRole;
import java.util.List; import java.util.List;
...@@ -18,11 +18,19 @@ public interface SysRoleService { ...@@ -18,11 +18,19 @@ public interface SysRoleService {
List<SysRole> selectSysRoles(); List<SysRole> selectSysRoles();
/** /**
* 根据条件获取所有角色,考虑后期需要根据一定的条件查询相关角色
* @param sysRole
* @return
*/
List<SysRole> selectSysRolesByCondition(SysRole sysRole);
/**
* 获取角色列表(分页) * 获取角色列表(分页)
* @param SysRole * @param SysRole
* @return * @return
*/ */
Page selectSysRolePage(SysRole SysRole); BaseModel selectSysRolePage(SysRole SysRole);
/** /**
* 添加角色信息,并进行授权 * 添加角色信息,并进行授权
...@@ -36,7 +44,7 @@ public interface SysRoleService { ...@@ -36,7 +44,7 @@ public interface SysRoleService {
* @param id * @param id
* @return * @return
*/ */
SysRole selectSysRoleById(Integer id); SysRole selectSysRoleById(String id);
/** /**
* 修改角色,删除授权并重新授权 * 修改角色,删除授权并重新授权
......
package com.xzxtshiro.service.imp; package com.xzxtshiro.service.imp;
import com.xzxtshiro.dao.SysPermissionNewDao; import com.xzxtshiro.dao.SysPermissionNewDao;
import com.xzxtshiro.pojo.Page; import com.xzxtshiro.pojo.BaseModel;
import com.xzxtshiro.pojo.SysPermissionNew; import com.xzxtshiro.pojo.SysPermissionNew;
import com.xzxtshiro.service.SysPermissionNewService; import com.xzxtshiro.service.SysPermissionNewService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -57,10 +57,10 @@ public class SysPermissionNewServiceImpl implements SysPermissionNewService { ...@@ -57,10 +57,10 @@ public class SysPermissionNewServiceImpl implements SysPermissionNewService {
* @return * @return
*/ */
@Override @Override
public Page selectSysPermissionNewPage(SysPermissionNew permission) { public BaseModel selectSysPermissionNewPage(SysPermissionNew permission) {
List<SysPermissionNew> permissions = permissionNewDao.selectSysPermissionNewByCondition(permission); List<SysPermissionNew> permissions = permissionNewDao.selectSysPermissionNewByCondition(permission);
Integer count = permissionNewDao.selectSysPermissionNewCountByCondition(permission); Integer count = permissionNewDao.selectSysPermissionNewCountByCondition(permission);
Page permissionPage = new Page(); BaseModel permissionPage = new BaseModel();
permissionPage.setCount(count); permissionPage.setCount(count);
permissionPage.setData(permissions); permissionPage.setData(permissions);
return permissionPage; return permissionPage;
......
...@@ -3,13 +3,18 @@ package com.xzxtshiro.service.imp; ...@@ -3,13 +3,18 @@ package com.xzxtshiro.service.imp;
import com.shiro.demo.pojo.User; import com.shiro.demo.pojo.User;
import com.shiro.demo.util.TokenUtil; import com.shiro.demo.util.TokenUtil;
import com.xzxtshiro.dao.SysRoleDao; import com.xzxtshiro.dao.SysRoleDao;
import com.xzxtshiro.pojo.Page; import com.xzxtshiro.pojo.BaseModel;
import com.xzxtshiro.pojo.SysPermissionNew;
import com.xzxtshiro.pojo.SysRole; import com.xzxtshiro.pojo.SysRole;
import com.xzxtshiro.pojo.SysRolePermission;
import com.xzxtshiro.service.SysRoleService; import com.xzxtshiro.service.SysRoleService;
import com.xzxtshiro.util.SequenceUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -38,49 +43,63 @@ public class SysRoleServiceImpl implements SysRoleService{ ...@@ -38,49 +43,63 @@ public class SysRoleServiceImpl implements SysRoleService{
} }
@Override @Override
public Page selectSysRolePage(SysRole SysRole) { public List<SysRole> selectSysRolesByCondition(SysRole sysRole) {
return sysRoleDao.selectSysRolesByCondition(sysRole);
}
@Override
public BaseModel selectSysRolePage(SysRole SysRole) {
List<SysRole> data = sysRoleDao.selectSysRoles(SysRole); List<SysRole> data = sysRoleDao.selectSysRoles(SysRole);
for (SysRole role1 : data) { for (SysRole role1 : data) {
List<SysRole> roles = sysRoleDao.selectPermissionBySysRoleId(role1.getId()); List<SysPermissionNew> permissionNews = sysRoleDao.selectPermissionBySysRoleId(role1.getId());
StringBuffer permission = new StringBuffer(); StringBuffer permission = new StringBuffer();
for (SysRole role2 : roles) { for (SysPermissionNew per : permissionNews) {
if (role2 != null) { if (permissionNews != null) {
permission.append(role2.getDescription() + " "); permission.append(per.getName() + ",");
} }
} }
role1.setDescription(permission.toString()); role1.setPermissionName(permission.toString());
System.out.println("permission"+permission);
} }
Integer count = sysRoleDao.selectSysRoleCountByCondition(SysRole); Integer count = sysRoleDao.selectSysRoleCountByCondition(SysRole);
Page rolePage = new Page(); BaseModel rolePage = new BaseModel();
rolePage.setCount(count); rolePage.setCount(count);
rolePage.setData(data); rolePage.setData(data);
return rolePage; return rolePage;
} }
@Override @Override
public SysRole add(SysRole SysRole) { public SysRole add(SysRole sysRole) {
String roleZj = SequenceUtil.getNextXxzjbh();
sysRole.setScbz(0);
sysRole.setId(roleZj);
sysRole.setLrr("admin");
sysRole.setLrsj(new Date());
//添加角色,并返回主键 //添加角色,并返回主键
// int i = sysRoleDao.add(SysRole); Integer count = sysRoleDao.add(sysRole);
// //进行授权 //确保角色保存成功再进行授权
// if (SysRole.getDescription() != null) { if (count>0){
// String[] permissions = SysRole.getDescription().split(","); if (sysRole.getDescription() != null) {
// List<RoleAndPermission> roleAndPermissions = new ArrayList<>(); String[] permissions = sysRole.getPermissionId().split(",");
// for (int j = 0; j < permissions.length; j++) { List<SysRolePermission> roleAndPermissions = new ArrayList<SysRolePermission>();
// SysRolePermission sysRolePermission = new SysRolePermission(); for (int i= 0; i < permissions.length; i++) {
// Integer permission = Integer.parseInt(permissions[j]); SysRolePermission sysRolePermission = new SysRolePermission();
// sysRolePermission(SysRole.getId()); sysRolePermission.setId(SequenceUtil.getNextXxzjbh().substring(0,23));
// sysRolePermission.setPermissionId(permission); sysRolePermission.setRoleid(roleZj);
// roleAndPermissions.add(sysRolePermission); sysRolePermission.setPermissionid(permissions[i]);
// } sysRolePermission.setLrr("admin");
// int j = roleDao.batchAddRoleAndPermission(roleAndPermissions); sysRolePermission.setLrsj(new Date());
// } sysRolePermission.setScbz(0);
// return role; roleAndPermissions.add(sysRolePermission);
return null; }
int j = sysRoleDao.batchAddSysRolePermission(roleAndPermissions);
}
}
return sysRole;
} }
@Override @Override
public SysRole selectSysRoleById(Integer id) { public SysRole selectSysRoleById(String id) {
sysRoleDao.selectSysRoleById(id);
return null; return null;
} }
......
package com.xzxtshiro.util;
import java.util.Random;
import java.util.UUID;
/**
* Created by Administrator on 2018/5/24 0024.
*/
public class SequenceUtil {
/**
* 获取信息主键编号:暂定规则,30位
* 前8位为UUID的前10位
* 9-16位为当前时间秒数的后六位,
* 17-30位为字母小写和0-9的随机混合
*/
public static String getNextXxzjbh(){
StringBuffer xxzjbh = new StringBuffer();
xxzjbh.append(UUID.randomUUID().toString().substring(0,8));
String now = String.valueOf(System.currentTimeMillis());
xxzjbh.append(now.substring(0,8));
String sail="abcdefjhijklmnopqrstuvwxyz0123456789";
Random random=new Random();
for (int i=0;i<14;i++){
int index=random.nextInt(36);
xxzjbh.append(sail.charAt(index));
}
return xxzjbh.toString();
}
public static void main(String[] args){
// System.out.println(getNextXxzjbh());
}
}
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
<input type="text" name="pidName" id="pidName" lay-verify="required" <input type="text" name="pidName" id="pidName" lay-verify="required"
class="layui-input"> class="layui-input">
<input type="text" id="pid" Name="pid" style="display: none;"> <input type="text" id="pid" Name="pid" style="display: none;">
<span class="layui-btn" id="checkPer" onclick="checkPermission();" style="left: 363px">选择父级</span> <span class="layui-btn" id="checkPer" onclick="checkTree('mytree');" style="left: 363px">选择父级</span>
<div id="mytree" style="display: none"> <div id="mytree" style="display: none">
<ul id="tree" class="ztree"></ul> <ul id="tree" class="ztree"></ul>
</div> </div>
...@@ -186,11 +186,10 @@ ...@@ -186,11 +186,10 @@
} }
var data = ${parantMenus}; var data = ${parantMenus};
var zNodes =[]; var zNodes =[];
var bool;
for (var i=0;i<data.length;i++){ for (var i=0;i<data.length;i++){
zNodes.push({id:data[i].id,pId:data[i].pid,name:data[i].name,open:false,file:"core/simpleData"}); zNodes.push({id:data[i].id,pId:data[i].pid,name:data[i].name,open:false,file:"core/simpleData"});
} }
setTree(zNodes,"nocheck"); setTree(zNodes,"tree","nocheck","pid","pidName");
}); });
</script> </script>
......
...@@ -75,7 +75,7 @@ ...@@ -75,7 +75,7 @@
<input type="text" name="pidName" id="pidName" lay-verify="required" <input type="text" name="pidName" id="pidName" lay-verify="required"
class="layui-input"> class="layui-input">
<input type="text" id="pid" Name="pid" style="display: none;"> <input type="text" id="pid" Name="pid" style="display: none;">
<span class="layui-btn" id="checkPer" onclick="checkPermission();" style="left: 363px">选择父级</span> <span class="layui-btn" id="checkPer" onclick="checkTree('mytree');" style="left: 363px">选择父级</span>
<div id="mytree" style="display: none"> <div id="mytree" style="display: none">
<ul id="tree" class="ztree"></ul> <ul id="tree" class="ztree"></ul>
</div> </div>
...@@ -130,7 +130,7 @@ ...@@ -130,7 +130,7 @@
$("#pidName").val(data[i].name); $("#pidName").val(data[i].name);
} }
} }
setTree(zNodes,"nocheck"); setTree(zNodes,"tree","nocheck","pid","pidName");
}); });
</script> </script>
......
...@@ -41,33 +41,50 @@ ...@@ -41,33 +41,50 @@
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">角色名称</label> <label class="layui-form-label">角色名称</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" name="name" lay-verify="required" placeholder="请输入角色名称" <input type="text" name="rolename" lay-verify="required" placeholder="请输入角色名称"
class="layui-input"> class="layui-input">
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">角色类型</label> <label class="layui-form-label">角色类型</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" name="sn" lay-verify="required" placeholder="请输入角色类型" <select id="type" name="type" lay-verify="" lay-filter="type">
class="layui-input"> <option value="">请选择</option>
<option value="01">命案</option>
<option value="02">盗窃</option>
<option value="03">未知名尸体</option>
<option value="04">盗抢车辆</option>
</select>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">拥有权限</label> <label class="layui-form-label">拥有权限</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" name="permissionName" id="permissionName" lay-verify="required"
class="layui-input">
<input type="text" id="permissionId" Name="permissionId" style="display: none;">
<span class="layui-btn" id="checkPer" onclick="checkTree('myPermissionTree');">选择权限</span>
<div id="myPermissionTree" style="display: none">
<ul id="permissionTree" class="ztree"></ul>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">父级角色</label>
<div class="layui-input-block">
<input type="text" name="pidName" id="pidName" lay-verify="required" <input type="text" name="pidName" id="pidName" lay-verify="required"
class="layui-input"> class="layui-input">
<input type="text" id="pid" Name="pid" style="display: none;"> <input type="text" id="pid" Name="pid" style="display: none;">
<span class="layui-btn" id="checkPer" onclick="checkPermission();">选择权限</span> <span class="layui-btn" id="checkRolePid" onclick="checkTree('myRoleTree');">选择父级</span>
<div id="mytree" style="display: none"> <div id="myRoleTree" style="display: none">
<ul id="tree" class="ztree"></ul> <ul id="roleTree" class="ztree"></ul>
</div> </div>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">备注</label> <label class="layui-form-label">备注</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" name="remark" placeholder="请输入备注信息" <input type="text" name="description" placeholder="请输入角色描述信息"
class="layui-input"> class="layui-input">
</div> </div>
</div> </div>
...@@ -114,11 +131,17 @@ ...@@ -114,11 +131,17 @@
var data = ${permission}; var data = ${permission};
var zNodes =[]; var zNodes =[];
var bool;
for (var i=0;i<data.length;i++){ for (var i=0;i<data.length;i++){
zNodes.push({id:data[i].id,pId:data[i].pid,name:data[i].name,open:false,file:"core/simpleData"}); zNodes.push({id:data[i].id,pId:data[i].pid,name:data[i].name,open:false,file:"core/simpleData"});
} }
setTree(zNodes,"check"); setTree(zNodes,"permissionTree","check","permissionId","permissionName");
var data = ${role};
console.log(data);
var zNodes =[];
for (var i=0;i<data.length;i++){
zNodes.push({id:data[i].id,pId:data[i].pid,name:data[i].rolename,open:false,file:"core/simpleData"});
}
setTree(zNodes,"roleTree","nocheck","pid","pidName");
}); });
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
<th lay-data="{field:'rolename',align:'center', width:200, sort: true}">角色名称</th> <th lay-data="{field:'rolename',align:'center', width:200, sort: true}">角色名称</th>
<%-- <th lay-data="{field:'sn', align:'center',width:100, sort: true}">角色类型</th> <%-- <th lay-data="{field:'sn', align:'center',width:100, sort: true}">角色类型</th>
<th lay-data="{field:'permission', align:'center',width:300, sort: true,templet: '#permissionTpl'}">拥有权限</th>--%> <th lay-data="{field:'permission', align:'center',width:300, sort: true,templet: '#permissionTpl'}">拥有权限</th>--%>
<th lay-data="{field:'description', align:'center',width:300, sort: true}">描述</th> <th lay-data="{field:'permissionName', align:'center',width:400, sort: true}">拥有权限</th>
<th lay-data="{width:120, align:'center', toolbar: '#toolBar'}">操作</th> <th lay-data="{width:120, align:'center', toolbar: '#toolBar'}">操作</th>
</tr> </tr>
</thead> </thead>
......
var timestamp=new Date().getTime(); var timestamp=new Date().getTime();
/**ztree树形字典设置*/ /**ztree树形字典设置*/
function setTree(data,type) { /**
*
* @param data 数据
* @param treeId 树的id
* @param type 树类型,check为带多选框的,nocheck为不带多选框的
* @param kid 即页面所需要传到后台的数据的input的id
* @param vid 即页面所需要展现数据的input的id
*/
function setTree(data,treeId,type,kid,vid) {
var setting = {} var setting = {}
if (type=="check"){ if (type=="check"){
setting = { setting = {
...@@ -21,8 +29,8 @@ function setTree(data,type) { ...@@ -21,8 +29,8 @@ function setTree(data,type) {
} }
}, },
callback: { callback: {
onCheck: function (e,treeId,treeNode) { onCheck: function (e,treeId) {
var treeObj=$.fn.zTree.getZTreeObj("tree"), var treeObj=$.fn.zTree.getZTreeObj(treeId),
nodes=treeObj.getCheckedNodes(true), nodes=treeObj.getCheckedNodes(true),
v="",k=""; v="",k="";
for(var i=0;i<nodes.length;i++){ for(var i=0;i<nodes.length;i++){
...@@ -30,8 +38,8 @@ function setTree(data,type) { ...@@ -30,8 +38,8 @@ function setTree(data,type) {
k+=nodes[i].id + ","; k+=nodes[i].id + ",";
console.log("节点id:"+k+"节点名称"+v); //获取选中节点的值 console.log("节点id:"+k+"节点名称"+v); //获取选中节点的值
} }
$("#pid").val(k); $("#"+kid).val(k);
$("#pidName").val(v); $("#"+vid).val(v);
// closeTree(); // closeTree();
}, },
} }
...@@ -56,9 +64,9 @@ function setTree(data,type) { ...@@ -56,9 +64,9 @@ function setTree(data,type) {
onDblClick: function (treeId, treeNode) { onDblClick: function (treeId, treeNode) {
var treeObj = $.fn.zTree.getZTreeObj(treeNode); var treeObj = $.fn.zTree.getZTreeObj(treeNode);
var selectedNode = treeObj.getSelectedNodes()[0]; var selectedNode = treeObj.getSelectedNodes()[0];
$("#pid").val(selectedNode.id); $("#"+kid).val(selectedNode.id);
console.log(selectedNode.name); console.log(selectedNode.name);
$("#pidName").val(selectedNode.name); $("#"+vid).val(selectedNode.name);
closeTree(); closeTree();
}, },
} }
...@@ -66,7 +74,7 @@ function setTree(data,type) { ...@@ -66,7 +74,7 @@ function setTree(data,type) {
} }
//收起树:只展开根节点下的一级节点 //收起树:只展开根节点下的一级节点
function closeTree() { function closeTree() {
var tree = $.fn.zTree.getZTreeObj('tree'); var tree = $.fn.zTree.getZTreeObj(treeId);
//获取 zTree 的全部节点数据将节点数据转换为简单 Array 格式 //获取 zTree 的全部节点数据将节点数据转换为简单 Array 格式
var nodes = tree.transformToArray(tree.getNodes()); var nodes = tree.transformToArray(tree.getNodes());
for (var i = 0; i < nodes.length; i++) { for (var i = 0; i < nodes.length; i++) {
...@@ -74,15 +82,19 @@ function setTree(data,type) { ...@@ -74,15 +82,19 @@ function setTree(data,type) {
} }
} }
$(document).ready(function () { $(document).ready(function () {
$.fn.zTree.init($("#tree"), setting, data); $.fn.zTree.init($("#"+treeId), setting, data);
}); });
} }
function checkPermission(){ /**
*
* @param treeId 所需要展现树的div的id
*/
function checkTree(treeId){
layer.open({ layer.open({
type: 1, type: 1,
area:['350px', '400px'], area:['350px', '400px'],
title:'请选择', title:'请选择',
skin: 'layui-layer-demo', //加上边框 skin: 'layui-layer-demo', //加上边框
content: $("#mytree") content: $("#"+treeId)
}); });
} }
\ No newline at end of file
...@@ -94,12 +94,12 @@ span.tmpzTreeMove_arrow {width:16px; height:21px; display: inline-block; padding ...@@ -94,12 +94,12 @@ span.tmpzTreeMove_arrow {width:16px; height:21px; display: inline-block; padding
ul.ztree.zTreeDragUL {margin:0; padding:0; position:absolute; width:auto; height:auto;overflow:hidden; background-color:#cfcfcf; border:1px #00B83F dotted; opacity:0.8; filter:alpha(opacity=80)} ul.ztree.zTreeDragUL {margin:0; padding:0; position:absolute; width:auto; height:auto;overflow:hidden; background-color:#cfcfcf; border:1px #00B83F dotted; opacity:0.8; filter:alpha(opacity=80)}
.ztreeMask {z-index:10000; background-color:#cfcfcf; opacity:0.0; filter:alpha(opacity=0); position:absolute} .ztreeMask {z-index:10000; background-color:#cfcfcf; opacity:0.0; filter:alpha(opacity=0); position:absolute}
#tree{ .layui-form-item>.layui-input-block>ul{
position: relative; position: relative;
top: 5px; top: 5px;
left:0px; left:0px;
} }
#checkPer{ .layui-form-item>.layui-input-block>span{
position: relative; position: relative;
left: 553px; left: 553px;
top: -37px; top: -37px;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment