easyui用户权限管理


1.前台jsp

<body>
    <table id="role_tb">
    </table>

    <!-- 权限编辑窗口 -->
    <div id="win" class="easyui-window" title="权限编辑"
        style="width: 500px; height: 250px;" closed="true">
        <form style="padding: 10px 20px 10px 40px;">
            <ul id="tt" class="easyui-tree" url="../service/func/allTree" method="post"
                checkbox="true">
            </ul>
            <div style="padding: 5px; text-align: center;">
                <a href="#" class="easyui-linkbutton" icon="icon-ok" οnclick="confrimEdit();">确定</a> <a
                    href="#" class="easyui-linkbutton" icon="icon-cancel" οnclick="closeWin();">取消</a>
            </div>
        </form>
    </div>
    
    <!-- 角色用户编辑窗口 -->
    <div id="roleUserWin" class="easyui-window" title="编辑管理员"
        style="width: 500px; height: 250px;" closed="true">
        <table id="roleUser_tb" toolbar="#addBar">
        </table>
    </div>

    <!-- 角色用户编辑窗口工具栏 -->
    <div id="addBar" style="padding: 3px">
        <span>输入工号添加用户:</span> <input id="addUserId"
            style="line-height: 26px; border: 1px solid #ccc">  
        <a href="#" class="easyui-linkbutton" plain="true" οnclick="addRoleUser()">点击添加至管理员</a>
    </div>



    <script type="text/javascript"
        src="<%=request.getContextPath()%>/js/admin/role.js"></script>
</body>


2.前台js

/**
 * 初始化界面
 */
var dataGrid;
var editRowId;
var rowEditor = undefined;
$(function() {
    dataGrid = $("#role_tb")
            .datagrid(
                    {
                        url : "../service/role/all",// 加载的URL
                        isField : "id",
                        method : "GET",
                        pagination : false,// 显示分页
                        fit : true,// 自动补全
                        fitColumns : true,
                        singleSelect : true,
                        iconCls : "icon-save",// 图标
                        columns : [ [ // 每个列具体内容
                                {
                                    field : 'id',
                                    title : '编号',
                                    align : 'center',
                                    width : 100,
                                },
                                {
                                    field : 'roleName',
                                    title : '角色名称',
                                    align : 'center',
                                    width : 100,
                                    editor : 'text'
                                },
                                {
                                    field : 'createTm',
                                    title : '创建时间',
                                    align : 'center',
                                    width : 100
                                },
                                {
                                    field : 'isDelete',
                                    title : '是否禁用',
                                    align : 'center',
                                    width : 100,
                                    editor : {
                                        type : 'checkbox',
                                        options : {
                                            on : '1',
                                            off : '0'
                                        }
                                    },
                                    formatter : function(value, row, index) {
                                        if (value == '0') {
                                            return '<span style="color:green">正常</span>';
                                        } else {
                                            return '<span style="color:red">禁用</span>';
                                        }
                                    }
                                },{
                                    field : 'action',
                                    title : '编辑权限',
                                    align : 'center',
                                    width : 100,
                                    formatter : function(value, row, index) {
                                            return "<a href='#' class='easyui-linkbutton' οnclick='editRole("+row.id+")'>编辑权限</a>";
                                    }
                                },{
                                    field : 'roleUser',
                                    title : '查看管理员',
                                    align : 'center',
                                    width : 100,
                                    formatter : function(value, row, index) {
                                            return "<a href='#' class='easyui-linkbutton' οnclick='editRoleUser("+row.id+")'>查看管理员</a>";
                                    }
                                } ] ],
                        toolbar : [ // 工具条
                                {
                                    text : "增加",
                                    iconCls : "icon-add",
                                    handler : function() {// 回调函数
                                        if (rowEditor == undefined) {
                                            dataGrid.datagrid('insertRow', {// 如果处于未被点击状态,在第一行开启编辑
                                                index : 0,
                                                row : {}
                                            });
                                            rowEditor = 0;
                                            dataGrid.datagrid('beginEdit',
                                                    rowEditor);// 没有这行,即使开启了也不编辑

                                        }

                                    }
                                },
                                {
                                    text : "删除",
                                    iconCls : "icon-remove",
                                    handler : function() {
                                        var rows = dataGrid
                                                .datagrid('getSelections');

                                        if (rows.length <= 0) {
                                            $.messager.alert('警告', '您没有选择',
                                                    'error');
                                        } else if (rows.length > 1) {
                                            $.messager.alert('警告', '不支持批量删除',
                                                    'error');
                                        } else {
                                            $.messager
                                                    .confirm(
                                                            '确定',
                                                            '您确定要删除吗',
                                                            function(t) {
                                                                if (t) {

                                                                    $.ajax({
                                                                                url : '../service/role/del',
                                                                                method : 'POST',
                                                                                data : rows[0],
                                                                                dataType : 'json',
                                                                                success : function(
                                                                                        r) {
                                                                                    if (r.code=="1") {
                                                                                        dataGrid
                                                                                                .datagrid('acceptChanges');
                                                                                        $.messager
                                                                                                .show({
                                                                                                    msg : r.msg,
                                                                                                    title : '成功'
                                                                                                });
                                                                                        editRow = undefined;
                                                                                        dataGrid
                                                                                                .datagrid('reload');
                                                                                    } else {
                                                                                        dataGrid
                                                                                                .datagrid(
                                                                                                        'beginEdit',
                                                                                                        editRow);
                                                                                        $.messager
                                                                                                .alert(
                                                                                                        '错误',
                                                                                                        r.msg,
                                                                                                        'error');
                                                                                    }
                                                                                    dataGrid
                                                                                            .datagrid('unselectAll');
                                                                                }
                                                                            });

                                                                }
                                                            })
                                        }

                                    }
                                },
                                {
                                    text : "修改",
                                    iconCls : "icon-edit",
                                    handler : function() {
                                        var rows = dataGrid
                                                .datagrid('getSelections');
                                        if (rows.length == 1) {
                                            if (rowEditor == undefined) {
                                                var index = dataGrid.datagrid(
                                                        'getRowIndex', rows[0]);
                                                rowEditor = index;
                                                dataGrid
                                                        .datagrid('unselectAll');
                                                dataGrid.datagrid('beginEdit',
                                                        index);

                                            }
                                        }
                                    }
                                },
                                /*{
                                    text : "查询",
                                    iconCls : "icon-search",
                                    handler : function() {
                                    }
                                },*/
                                {
                                    text : "保存",
                                    iconCls : "icon-save",
                                    handler : function() {
                                        dataGrid.datagrid('endEdit', rowEditor);
                                        rowEditor = undefined;
                                    }
                                }, {
                                    text : "取消编辑",
                                    iconCls : "icon-redo",
                                    handler : function() {
                                        rowEditor = undefined;
                                        dataGrid.datagrid('rejectChanges');
                                    }
                                } ],
                        onAfterEdit : function(rowIndex, rowData, changes) {
                            var inserted = dataGrid.datagrid('getChanges',
                                    'inserted');
                            var updated = dataGrid.datagrid('getChanges',
                                    'updated');
                            if (inserted.length < 1 && updated.length < 1) {
                                editRow = undefined;
                                dataGrid.datagrid('unselectAll');
                                return;
                            }

                            var url = '';
                            if (inserted.length > 0) {
                                url = '../service/role/add';
                            }
                            if (updated.length > 0) {
                                url = '../service/role/update';
                            }

                            $
                                    .ajax({
                                        url : url,
                                        method : "POST",
                                        data : rowData,
                                        dataType : 'json',
                                        success : function(r) {
                                            if (r.code=="1") {
                                                dataGrid
                                                        .datagrid('acceptChanges');
                                                $.messager.show({
                                                    msg : r.msg,
                                                    title : '成功'
                                                });
                                                editRow = undefined;
                                                dataGrid.datagrid('reload');
                                            } else {
                                                /* datagrid.datagrid('rejectChanges'); */
                                                dataGrid.datagrid('beginEdit',
                                                        editRow);
                                                $.messager.alert('错误', r.msg,
                                                        'error');
                                            }
                                            dataGrid.datagrid('unselectAll');
                                        }
                                    });

                        },
                        onDblClickCell : function(rowIndex, field, value) {
                            if (rowEditor == undefined) {
                                dataGrid.datagrid('beginEdit', rowIndex);
                                rowEditor = rowIndex;
                            }

                        }
                    });
});

function editRole(id){
    editRowId = id;
    //1.取消所有选择
    //var root = $('#tt').tree('getRoot');  
    //$("#tt").tree('uncheck',root.target);  
    //2.加载权限,动态选择
    var url = '../service/func/roleTree?roleId='+id;
    $.ajax({
        cache : true,
        type : "POST",
        url : url,
        async : false,
        success : function(data) {
            data = JSON.parse(data);
             $(data).each(function(i, obj){
                 var children = obj.children;
                 $(children).each(function(j,c_obj){
                     var cc = $("#tt").tree('find',c_obj.id);
                     if(cc){
                         $("#tt").tree('check',cc.target);
                     }
                 });
             });
        }
    });
    
    $("#win").window('open');
}


//获取选中节点和父节点
function getChecked(){
    var nodesParent = $('#tt').tree('getChecked','indeterminate');
    var nodes = $('#tt').tree('getChecked');
    var s = '';
    
    for (var i = 0; i < nodesParent.length; i++) {
        if (s != '')
            s += ',';
        s += nodesParent[i].id;
    }
    for (var i = 0; i < nodes.length; i++) {
        if (s != '')
            s += ',';
        s += nodes[i].id;
    }
   return s;
}


//提交修改
function confrimEdit(){
    var funIds = getChecked();
    var url = '../service/role/editFunc';
    var data = {
            "roleId" :editRowId,
            "funcIds":funIds
        };
    $.ajax({
        cache : true,
        type : "POST",
        url : url,
        data: data,
        async : true,
        success : function(data) {
            if (data == "1") {
                $.messager.show({
                    msg : "操作成功",
                    title : '成功'
                });
                closeWin();
            }else{
                $.messager
                .alert(
                        '错误',
                        "操作失败",
                        'error');
            }
        }
    });
}

//关闭窗口
function closeWin(){
     $('#tt').tree('reload');
     $("#win").window('close');
}


//打开编辑管理员窗口
function editRoleUser(roleId){
    editRowId = roleId;
    var roleUserGrid = $("#roleUser_tb").datagrid(
            {
                url : "../service/role/getUsers?roleId="+roleId,// 加载的URL
                isField : "user_id",
                method : "POST",
                pagination : false,// 显示分页
                fit : true,// 自动补全
                fitColumns : true,
                singleSelect : true,
                iconCls : "icon-save",// 图标
                columns : [ [ // 每个列具体内容
                        {
                            field : 'user_id',
                            title : '用户编号',
                            align : 'center',
                            width : 100,
                        },{
                            field : 'userName',
                            title : '姓名',
                            align : 'center',
                            width : 100,
                        },{
                            field : 'empNo',
                            title : '工号',
                            align : 'center',
                            width : 100,
                        }
                        ]]
            });
    $("#roleUserWin").window('open');
}

//输入工号添加用户至管理员
function addRoleUser(){
    var empNo = $("#addUserId").val();
    var url = '../service/role/addRoleUser';
    var data = {
            "roleId" :editRowId,
            "empNo":empNo
        };
    $.ajax({
        type : "POST",
        url : url,
        data: data,
        dataType:'json',
        success : function(data) {
            if (data.flg == "1") {
                $.messager.show({
                    msg : "操作成功",
                    title : '成功'
                });
                $("#roleUser_tb").datagrid('reload');
            }else{
                $.messager
                .alert(
                        '错误',
                        data.msg,
                        'error');
            }
        }
    });
}

3.后台controller

/**
 *
 */
package com.sf.fys.controller.role;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.sf.fys.config.LogAppender;
import com.sf.fys.configs.Message;
import com.sf.fys.controller.BaseController;
import com.sf.fys.data.Res;
import com.sf.fys.model.Role;
import com.sf.fys.model.RoleUser;
import com.sf.fys.model.User;
import com.sf.fys.model.UserInfo;
import com.sf.fys.result.ResultResponse;
import com.sf.fys.result.ReturnCode;
import com.sf.fys.result.StringResult;
import com.sf.fys.service.role.RoleService;
import com.sf.fys.service.user.UserService;

/**
 * 角色权限管理
 * @author sfit0512
 *
 */
@RestController
public class RoleController extends BaseController
{

    Logger log = Logger.getLogger(LogAppender.ADMIN);

    @Autowired
    private RoleService roleService;
    
    @Autowired
    private UserService userService;

    /**
     * 查询所有角色
     * @return
     */
    @RequestMapping(value = "/role/all", method = RequestMethod.GET)
    public List<Role> getRoles()
    {
        List<Role> list = new ArrayList<Role>();
        list = roleService.getRoles();
        return list;
    }

    /**
     * 添加角色
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/role/add", method = RequestMethod.POST)
    @ResponseBody
    public Res addRole(HttpServletRequest request, HttpServletResponse response)
        throws Exception
    {
        String roleName = request.getParameter("roleName");
        String isDelete = request.getParameter("isDelete");

        Role role = new Role(roleName, isDelete.charAt(0));

        int ret = roleService.addRole(role);

        if (ret > 0)
        {
            return success();
        }
        return fail();
    }

    /**
     * 修改角色
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/role/update", method = RequestMethod.POST)
    @ResponseBody
    public Res updateRole(HttpServletRequest request,
        HttpServletResponse response) throws Exception
    {
        String roleName = request.getParameter("roleName");
        String isDelete = request.getParameter("isDelete");
        String id = request.getParameter("id");

        Role role = new Role(roleName, isDelete.charAt(0));
        role.setId(Long.parseLong(id));

        int ret = roleService.updateRole(role);

        if (ret > 0)
        {
            return success();
        }
        return fail();
    }

    /**
     * 删除角色
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/role/del", method = RequestMethod.POST)
    @ResponseBody
    public Res deleteRole(HttpServletRequest request,
        HttpServletResponse response) throws Exception
    {
        String id = request.getParameter("id");
        int ret = roleService.delRole(Long.parseLong(id));

        if (ret > 0)
        {
            return success();
        }
        return fail();
    }

    /**
     * 编辑角色功能
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/role/editFunc", method = RequestMethod.POST)
    @ResponseBody
    public String editRoleFunction(HttpServletRequest request,
        HttpServletResponse response) throws Exception
    {
        String roleId = request.getParameter("roleId");
        String funcIds = request.getParameter("funcIds");
        if (funcIds != null && !"".equals(funcIds))
        {
            int ret = roleService.updateRoleFunc(Long.parseLong(roleId),
                funcIds);
            if (ret > 0)
            {
                return "1";
            }
        }
        return "0";
    }

    /**
     * 根据角色编号查询该角色的所有用户
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/role/getUsers", method = RequestMethod.POST)
    @ResponseBody
    public List<User> getUsersByRoleId(HttpServletRequest request,
        HttpServletResponse response) throws Exception
    {
        String roleId = getParameter(request, "roleId");
        log.info("getUsersByRoleId|roleId=" + roleId);
        List<User> list = roleService.getUsersByRoleId(Long.parseLong(roleId));
        return list;
    }

    /**
     * 给用户赋予角色
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/role/addRoleUser", method = RequestMethod.POST)
    @ResponseBody
    public ResultResponse addRoleUser(HttpServletRequest request,
        HttpServletResponse response) throws Exception
    {
        String roleId = getParameter(request, "roleId");
        String empNo = getParameter(request, "empNo");
        log.info("addRoleUser|roleId=" + roleId + "|empNo=" + empNo);
        
        List<UserInfo> list = userService.getUserByName("SF", empNo);
        if(list==null || list.get(0).getUserId()<=0){
            return new StringResult(ReturnCode.FAIL,Message.Error.USER_NOTE_EXITS, "");
        }
        
        long userId = list.get(0).getUserId();
        
        RoleUser roleUser = new RoleUser();
        roleUser.setRoleId(Long.parseLong(roleId));
        roleUser.setUserId(userId);
        int ret = roleService.addRoleUser(roleUser);
        if (ret > 0)
        {
            return new StringResult(ReturnCode.SUCCESS,
                ReturnCode.get(ReturnCode.SUCCESS), "");
        }
        else
        {
            return new StringResult(ReturnCode.FAIL,
                ReturnCode.get(ReturnCode.FAIL), "");
        }
    }

    /**
     * 删除用户角色
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/role/delRoleUser", method = RequestMethod.POST)
    @ResponseBody
    public ResultResponse delRoleUser(HttpServletRequest request,
        HttpServletResponse response) throws Exception
    {
        String roleId = getParameter(request, "roleId");
        String userId = getParameter(request, "userId");
        log.info("addRoleUser|roleId=" + roleId + "|userId=" + userId);
        RoleUser roleUser = new RoleUser();
        roleUser.setRoleId(Long.parseLong(roleId));
        roleUser.setUserId(Long.parseLong(userId));
        int ret = roleService.delRoleUser(roleUser);
        if (ret > 0)
        {
            return new StringResult(ReturnCode.SUCCESS,
                ReturnCode.get(ReturnCode.SUCCESS), "");
        }
        else
        {
            return new StringResult(ReturnCode.FAIL,
                ReturnCode.get(ReturnCode.FAIL), "");
        }
    }

}


/**
 *
 */
package com.aiw.ck.controller.role;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
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.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.aiw.ck.controller.BaseController;
import com.aiw.ck.data.Res;
import com.aiw.ck.data.TreeGrid;
import com.aiw.ck.model.role.Function;
import com.aiw.ck.service.role.FunctionService;
import com.aiw.ck.util.StrUtil;
import com.google.gson.Gson;


/**
 * @author sfit0512
 *
 */
@RestController
public class FuncController extends BaseController {
Logger log = Logger.getLogger(FuncController.class);
    
    @Autowired
    private FunctionService funcService;
    Gson gson = new Gson();
    
    @RequestMapping(value = "/func/allTree", method = RequestMethod.POST)
    @ResponseBody
    public String getFuncsTree(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        List<Function> list = funcService.getFuncs();
        if(list.size()>0){
            String ret =  gson.toJson(list);
            ret = ret.replace("funcName", "text");
            return ret;
        }
        return FAIL;
    }
    
    /**
     * 分页查询功能
     * @return
     */
    @RequestMapping(value = "/func/getFuncQueryPage", method = RequestMethod.GET)
    @ResponseBody
    public String getFuncQueryPage(@RequestParam("page") int index,@RequestParam("rows") int size) throws Exception {
        
        List<Function> list = funcService.getFuncQueryPage(index, size);
        if (list.size()>0) {
            long total = funcService.getTotalCount();
            Map<String, Object> ret = new HashMap<String, Object>();
            ret.put("total", total);
            ret.put("rows", list);
            return gson.toJson(ret);
        } else {
            return FAIL;
        }
    }

    /**
     * 获取角色权限树
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/func/roleTree", method = RequestMethod.POST)
    @ResponseBody
    public String getFuncsTreeByRole(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        try {
            String roleId = request.getParameter("roleId");
            if (StrUtil.notBlank(roleId)) {
                Gson gson = new Gson();
                List<Function> list = funcService.getFuncsByRoleTree(Long.parseLong(roleId));
                if(list.size()>0){
                    String ret =  gson.toJson(list);
                    ret = ret.replace("funcName", "text");
                    return ret;
                }
            }
        } catch (Exception e) {
            // TODO: handle exception
            log.error("FuncController 的方法 getFuncsTreeByRole 执行出错,原因:" + e, e);
        }
        return FAIL;
    }
    

    /**
     * 获取角色权限
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/func/getFuncsByRole", method = RequestMethod.POST)
    @ResponseBody
    public String getFuncsByRole(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        try {
            //获取登录用户id
            Long userId = (Long)request.getSession().getAttribute("userId");
            if (userId>0) {
                Gson gson = new Gson();
                List<Function> list = funcService.getFuncsByRole(userId);
                if(list.size()>0){
                    String ret =  gson.toJson(list);
                    return ret;
                }
            }
        } catch (Exception e) {
            // TODO: handle exception
            log.error("FuncController 的方法 getFuncsByRole 执行出错,原因:" + e, e);
        }
        return FAIL;
    }
    
    
    /**
     *
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/func/all", method = RequestMethod.GET)
    @ResponseBody
    public String getFuncs(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        Gson gson = new Gson();
        try {
            //List<Function> list = funcService.getFunctions();
            List<Function> list = funcService.getFuncs();
            TreeGrid<Function> treeGrid = new TreeGrid<Function>();
            treeGrid.setTotal(String.valueOf(list.size()));
            treeGrid.setRows(list);
            if(!list.isEmpty()){
                String ret =  gson.toJson(treeGrid);
                return ret;
            }
        } catch (Exception e) {
            // TODO: handle exception
            log.error("FuncController 的方法 getFuncs 执行出错,原因:" + e, e);
        }
        
        return FAIL;
    }
    
    /**
     *
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/func/add", method = RequestMethod.POST)
    @ResponseBody
    public Res addFunc(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        try {
            String funcName = request.getParameter("funcName");
            String parentId = request.getParameter("parentId");
            String url = request.getParameter("url");
            
            Function func = new Function();
            func.setFuncName(funcName);
            if (StrUtil.notBlank(parentId)) {
                func.setParentId(Long.parseLong(parentId));
            }
            func.setUrl(url);
            func.setIsDelete('0');
            
            int ret = funcService.addFunc(func);
            if(ret>0){
                return success();
            }
        } catch (Exception e) {
            // TODO: handle exception
            log.error("FuncController 的方法 addFunc 执行出错,原因:" + e, e);
        }
        return fail();
    }
    
    /**
     *
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/func/update", method = RequestMethod.POST)
    @ResponseBody
    public Res updateFunc(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        int ret = -1;
        try {
            String funcName = request.getParameter("funcName");
            String parentId = request.getParameter("parentId");
            String url = request.getParameter("url");
            String isDelete = request.getParameter("isDelete");
            String id = request.getParameter("id");
            
            //
            if("".equals(parentId)){
                parentId = "0";
            }
            
            Function func = new Function();
            func.setFuncName(funcName);
            func.setParentId(Long.parseLong(parentId));
            func.setUrl(url);
            func.setIsDelete(isDelete.charAt(0));
            func.setId(Long.parseLong(id));
            
            ret = funcService.updateFunc(func);
            
        } catch (Exception e) {
            // TODO: handle exception
            log.error("FuncController 的方法 updateFunc 执行出错,原因:" + e, e);
        }
        if(ret>0){
            return success();
        }
        return fail();
    }
    
    /**
     *
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/func/del", method = RequestMethod.POST)
    @ResponseBody
    public Res deleteFunc(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        try {
            String id = request.getParameter("id");
            int ret = funcService.deleteFunc(Long.parseLong(id));
            if(ret>0){
                return success();
            }
        } catch (Exception e) {
            // TODO: handle exception
            log.error("FuncController 的方法 deleteFunc 执行出错,原因:" + e, e);
        }
        return fail();
    }
    
    
    /**
     * 角色权限添加
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/roleFunc/add", method = RequestMethod.GET)
    @ResponseBody
    public Res addRoleFunc(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        try {
            String nodes = request.getParameter("nodes");
            String roleId = request.getParameter("roleId");
            Function func = new Function();
            if (StrUtil.notBlank(nodes)) {
                func.setFuncName(nodes);
            }
            if (StrUtil.notBlank(roleId)) {
                func.setRoleId(Long.parseLong(roleId));
            }
            int ret = funcService.addRoleFunction(func);
            if(ret>0){
                return success();
            }
        } catch (Exception e) {
            // TODO: handle exception
            log.error("FuncController 的方法 addRoleFunc 执行出错,原因:" + e, e);
        }
        return fail();
    }

}




4.后台service

@Service
public class RoleService {
    @Autowired
    private RoleMapper mapper;
    
    @Autowired
    private RoleUserMapper roleUserMapper;
    
    /**
     * 查询所有角色
     * @return
     */
    public List<Role> getRoles(){
        return mapper.getRoles();
    }
    
    /**
     * 添加角色
     * @param role
     * @return
     */
    public int addRole(Role role){
        return mapper.addRole(role);
    }

    /**
     * 修改角色
     * @param role
     * @return
     */
    public int updateRole(Role role){
        return mapper.updateRole(role);
    }
    
    /**
     * 删除角色
     * @return
     */
    public int delRole(long id){
        return mapper.delRole(id);
    }
    
    /**
     * 修改角色下的权限功能
     * @param roleId 角色编号
     * @param funcs 功能编号
     * @return
     */
    public int updateRoleFunc(long roleId,String funcs){
        //1.删除该角色所有功能
        mapper.deleteRoleFunc(roleId);
        
        //2.添加新功能
        int ret = 0;
        String[] funcList = funcs.split(",");
        for(String s:funcList){
            ret += mapper.addRoleFunc(roleId,Long.parseLong(s));
        }
        return ret;
    }
    
    /**
     * 根据角色编号查询该角色的所有用户
     * @param roleId
     * @return
     */
    public List<User> getUsersByRoleId(long roleId){
        return roleUserMapper.getUsersByRoleId(roleId);
    }
    
    /**
     * 给用户赋予角色
     * @param roleUser
     * @return
     */
    public int addRoleUser(RoleUser roleUser){
        return roleUserMapper.addRoleUser(roleUser);
    }
    
    /**
     * 取消用户角色
     * @param roleUser
     * @return
     */
    public int delRoleUser(RoleUser roleUser){
        return roleUserMapper.deleteRoleUser(roleUser);
    }

}

/**
 *
 */
package com.aiw.ck.service.role;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.aiw.base.AiwSpringService;
import com.aiw.ck.data.WebConstants;
import com.aiw.ck.mapper.role.FunctionMapper;
import com.aiw.ck.mapper.user.UserMapper;
import com.aiw.ck.model.role.Function;
import com.aiw.ck.util.StrUtil;


/**
 * 功能权限管理
 * @author sfit0512
 *
 */
@Service
public class FunctionService extends AiwSpringService{

    @Autowired
    private FunctionMapper functionMapper;
    
    @Autowired
    private UserMapper userMapper;
    

    /**
     * 分页查询功能列表
     * @return
     */
    public List<Function> getFuncQueryPage(int index,int size){
        if(index >0 && size >0){
            HashMap<String, Integer> page = new HashMap<String, Integer>();
            page.put("pageIndex", (index-1)*size);
            page.put("pageSize", size);
            List<Function> list = functionMapper.getFuncsQueryPage(page);
            if(list.isEmpty()){
                return null;
            }else {
                List<Function> newList = getTree(list);
                return newList;
            }
        }else {
            return null;
        }
    }

    /**
     * 获取所有记录数,用于分页显示
     * @return
     */
    public long getTotalCount(){
        return functionMapper.getTotalCount();
    }
    
    /**
     * 查询所有功能列表
     * @return
     */
    public List<Function> getFuncs(){
        List<Function> list = functionMapper.getFuncs();
        List<Function> newList = getTree(list);
        return newList;
    }

    /**
     * 根据角色查询功能列表
     * @param roleId
     * @return
     */
    public List<Function> getFuncsByRole(long userId){
        //查询用户角色
        List<Function> list = new ArrayList<Function>();
        List<Function> funcList = functionMapper.getFuncsByRole(userId);
        if(funcList!=null &&!funcList.isEmpty()){
            for(Function func:funcList){
                boolean existFlg = false;
                for(Function retFunc:list){
                    if(retFunc.getId()==func.getId()){
                        existFlg = true;
                        break;
                    }
                }
                if(!existFlg){
                    list.add(func);
                }
            }
        }
        return list;
    }

    /**
     * 根据角色查询功能列表
     * @param roleId
     * @return
     */
    public List<Function> getFuncsByRoleTree(long roleId){
        //获取用户权限
        List<Function> list = functionMapper.getFuncsByRole(roleId);
        //获取全部权限
        List<Function> listall = functionMapper.getFuncs();
        for (Function function : list) {
            for (Function function2 : listall) {
                if (function.getId() == function2.getId()) {
                    boolean isParent = false;
                    for (Function function3 : listall) {
                        if (function3.getParentId()==function.getId()) {
                            isParent = true;
                        }
                    }
                    if (!isParent) {
                        function2.setChecked(WebConstants.CHECKDE_TRUE);
                    }
                }
            }
        }
        List<Function> newList = getTree(listall);
        return newList;
    }
    
    /**
     * 转成树形集合
     * @param list
     * @return
     */
    public List<Function> getTree(List<Function> list){
        List<Function> nodeList = new ArrayList<Function>();
        for (Function f : list) {
            boolean mark = false;
            for (Function f2 : list) {
                if (f.getParentId() == f2.getId()) {
                    mark = true;
                    if (f2.getChildren() == null) {
                        f2.setChildren(new ArrayList<Function>());
                    }
                    f2.getChildren().add(f);
                    break;
                }
            }
            if (!mark) {
                nodeList.add(f);
            }
        }
        return nodeList;
    }
    
    /**
     * 添加功能
     * @param func
     * @return
     */
    public int addFunc(Function func){
        return functionMapper.addFunction(func);
    }
    
    /**
     * 修改功能
     * @param func
     * @return
     */
    public int updateFunc(Function func){
        return functionMapper.updateFunction(func);
    }
    
    /**
     * 删除功能
     * @param id
     * @return
     */
    public int deleteFunc(long id){
        return functionMapper.delFunction(id);
    }

                /**================角色·权限===============**/

    /**
     * 根据角色Id查询是否存在角色权限
     * @return
     */
    public long getRoleFuncCountByRoleId(long roleid){
        return functionMapper.getRoleFuncCountByRoleId(roleid);
    }
    
    /**
     * 添加角色功能
     * @param func
     * @return
     */
    public int addRoleFunction(Function func){
        int re = 1;
        if (this.getRoleFuncCountByRoleId(func.getRoleId())>0) {
            //先删除权限
            re = this.delRoleFunction(func.getRoleId());
        }
        if (re > 0) {
            String fucString = func.getFuncName();
            if (StrUtil.notBlank(fucString)) {
                String[] id = fucString.split(",");
                String[] ids = array_unique(id);
                
                for (int i = 0; i < ids.length; i++) {
                    func.setId(Long.parseLong(ids[i]));
                    re = functionMapper.addRoleFunction(func);
                    if (re<=0) {
                        re = -1;
                        break;
                    }
                }
            }
        }
        return re;
    }
    //去除数组中重复的记录  
    public static String[] array_unique(String[] a) {  
        // array_unique  
        List<String> list = new LinkedList<String>();  
        for(int i = 0; i < a.length; i++) {  
            if(!list.contains(a[i])) {  
                list.add(a[i]);  
            }  
        }  
        return (String[])list.toArray(new String[list.size()]);  
    }  
    
    /**
     * 删除角色功能
     * @param id
     * @return
     */
    public int delRoleFunction(long id){
        return functionMapper.delRoleFunction(id);
    }
    
    public List<Function> findFunsByUserId(long userId){
        return functionMapper.findFunsByUserId(userId);
    }
    
}

5.mapper.java

package com.aiw.ck.mapper.role;

import java.util.HashMap;
import java.util.List;

import com.aiw.base.AiwMyBaitsMapper;
import com.aiw.ck.model.role.Role;


public interface RoleMapper extends AiwMyBaitsMapper {
    
    /**
     * 查询所有角色
     * @return
     */
    public List<Role> getRoles();
    
    /**
     * 分页查询角色
     * @return
     */
    public List<Role> getRolesQueryPage(HashMap<String, Integer> page);

    /**
     * 获取所有记录数,用于分页显示
     * @return
     */
    public long getTotalCount();
    
    
    /**
     * 添加角色
     * @param Role
     * @return
     */
    public int addRole(Role Role);
    
    /**
     * 修改角色
     * @param role
     * @return
     */
    public int updateRole(Role role);
    
    /**
     * 删除角色
     * @param role
     * @return
     */
    public int delRole(long id);

}

package com.aiw.ck.mapper.role;

import java.util.HashMap;
import java.util.List;

import com.aiw.base.AiwMyBaitsMapper;
import com.aiw.ck.model.role.Function;


public interface FunctionMapper extends AiwMyBaitsMapper {
    
    /**
     * 分页查询功
     * @return
     */
    public List<Function> getFuncsQueryPage(HashMap<String, Integer> page);
    
    
    public List<Function> findFunsByUserId(long userId);

    

    /**
     * 获取所有记录数,用于分页显示
     * @return
     */
    public long getTotalCount();
    
    
    /**
     * 查询功能列表
     * @return
     */
    public List<Function> getFuncs();
    
    /**
     * 查询功能列表
     * @return
     */
    public List<Function> getParentFunc();
    
    /**
     * 查询某角色拥有的权限
     * @param roleId
     * @return
     */
    public List<Function> getFuncsByRole(long roleId);
    /**
     * 查询某角色拥有的权限
     * @param roleId
     * @return
     */
    public List<Function> getFuncsByRoleTree(long roleId);
    
    /**
     * 查询父功能下的子功能
     * @param id
     * @return
     */
    public List<Function> getChildFunc(long id);
    
    /**
     * 增加功能
     * @param func
     * @return
     */
    public int addFunction(Function func);
    
    /**
     * 修改功能
     * @param func
     * @return
     */
    public int updateFunction(Function func);
    
    /**
     * 删除功能
     * @param id
     * @return
     */
    public int delFunction(long id);
    
        /**================角色·权限===============**/

    /**
     * 根据角色Id查询是否存在角色权限
     * @return
     */
    public long getRoleFuncCountByRoleId(long roleid);
    
    /**
     * 增加角色功能
     * @param func
     * @return
     */
    public int addRoleFunction(Function func);
    
    /**
     * 删除角色功能
     * @param roleid
     * @return
     */
    public int delRoleFunction(long roleid);
    
    

}


6.mapper  xml

<?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.sf.fys.mapper.role.RoleUserMapper">

    <!-- 根据用户编号查询该用户拥有的角色 -->
    <select id="getRoleByUserId" resultType="com.sf.fys.model.RoleUser">
        select role_id as roleId,user_id as userId,create_tm
        as createTm from
        Role_User where user_id = #{userId,jdbcType=BIGINT}
    </select>

    <!-- 根据角色编号查询该角色下所有用户 -->
    <select id="getUsersByRoleId" resultType="com.sf.fys.model.User">
        select
        u.user_id,u.user_name as userName,u.emp_no as empNo from Role_User ru
        left join Users u on ru.user_id = u.user_id
        where ru.role_id = #{roleId,jdbcType=BIGINT}
    </select>

    <!-- 给用户赋予角色 -->
    <insert id="addRoleUser">
        insert into Role_User(role_id,user_id,create_tm)
        values(
        #{roleId,jdbcType=BIGINT},
        #{userId,jdbcType=BIGINT},
        now()
        )
    </insert>

    <!-- 删除用户角色 -->
    <delete id="deleteRoleUser">
        delete from Role_User where role_id =
        #{roleId,jdbcType=BIGINT} and user_id = #{userId,jdbcType=BIGINT}
    </delete>
</mapper>


<?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.aiw.ck.mapper.role.FunctionMapper">


    <!-- 分页查询功能 -->
    <select id="getFuncsQueryPage" resultType="com.aiw.ck.model.role.Function" parameterType="hashmap">
        select func_id as id,func_name as funcName,
        date_format(create_tm,'%Y-%c-%d %H:%i:%s') as
        createTm,date_format(modified_tm,'%Y-%c-%d %H:%i:%s')
        as modifiedTm,parent_id as parentId,url,is_delete as isDelete from functions
        order by func_id desc
        limit #{pageIndex},#{pageSize}
    </select>

    <!-- 查询记录的总数,用于分页显示 -->
    <select id="getTotalCount" resultType="long">
        select count(0) from functions
    </select>


    <!-- 查询所有功能 -->
    <select id="getFuncs" resultType="com.aiw.ck.model.role.Function">
        select func_id as
        id,func_name as funcName,date_format(create_tm,'%Y-%c-%d %H:%i:%s') as
        createTm,date_format(modified_tm,'%Y-%c-%d %H:%i:%s')
        as modifiedTm,parent_id as parentId,url,is_delete as isDelete
        from functions
        where is_delete = 0
    </select>
    
    <select id="getFuncsByRole" resultType="com.aiw.ck.model.role.Function">
        select f.func_id as
        id,f.func_name as funcName,date_format(f.create_tm,'%Y-%c-%d %H:%i:%s') as
        createTm,date_format(f.modified_tm,'%Y-%c-%d %H:%i:%s')
        as modifiedTm,f.parent_id as parentId,f.url,f.is_delete as isDelete from functions f,
        role_functions rf
        where f.func_id = rf.func_id and f.is_delete = 0 and rf.role_id = #{roleId,jdbcType=BIGINT};
    </select>

    <!-- 查询所有父节点功能 -->
    <select id="getParentFunc" resultType="com.aiw.ck.model.role.Function">
        select func_id as
        id,func_name as funcName,date_format(create_tm,'%Y-%c-%d %H:%i:%s') as
        createTm,date_format(modified_tm,'%Y-%c-%d %H:%i:%s')
        as modifiedTm,parent_id as parentId,url,is_delete as isDelete from functions
        where parent_id = 0;
    </select>

    <!-- 查询父功能下的所有子功能 -->
    <select id="getChildFunc" resultType="com.aiw.ck.model.role.Function">
        select
        func_id as
        id,func_name as funcName,date_format(create_tm,'%Y-%c-%d %H:%i:%s') as
        createTm,date_format(modified_tm,'%Y-%c-%d %H:%i:%s')
        as modifiedTm,parent_id as parentId,url,is_delete as isDelete
        from functions
        where parent_id = #{id,jdbcType=BIGINT};
    </select>

    <!-- 添加功能 -->
    <insert id="addFunction">
        insert into
        functions(FUNC_NAME,CREATE_TM,MODIFIED_TM,PARENT_ID,URL,IS_DELETE)
        values(
        #{funcName,jdbcType=VARCHAR},
        now(),
        now(),
        #{parentId,jdbcType=BIGINT},
        #{url,jdbcType=VARCHAR},
        #{isDelete,jdbcType=CHAR}
        )
    </insert>

    <!-- 修改功能 -->
    <update id="updateFunction">
        update functions set
        FUNC_NAME=#{funcName,jdbcType=VARCHAR},
        MODIFIED_TM = now(),
        PARENT_ID =
        #{parentId,jdbcType=BIGINT},
        URL = #{url,jdbcType=VARCHAR},
        IS_DELETE =
        #{isDelete,jdbcType=CHAR}
        where FUNC_ID = #{id,jdbcType=BIGINT}
    </update>

    <!-- 删除功能 -->
    <delete id="delFunction">
        <!-- delete from Function where FUNC_ID =
        #{id,jdbcType=BIGINT} -->
        update functions set IS_DELETE = 1 where FUNC_ID = #{id,jdbcType=BIGINT}
    </delete>
    

    <select id="findFunsByUserId" resultType="com.aiw.ck.model.role.Function" parameterType="long">
        select * from role_functions f where exists (
       select 'x' from  user_roles u where user_id=#{userId,jdbcType=BIGINT} and u.ROLES_IDS=f.role_id)
    </select>
    


    <!-- 查询角色权限功能 -->
    <select id="getRoleFuncCountByRoleId" resultType="long" parameterType="long">
        select count(0) from role_functions where role_id = #{roleId,jdbcType=BIGINT}
    </select>
    
    <!-- 添加角色权限功能 -->
    <insert id="addRoleFunction" parameterType="com.aiw.ck.model.role.Function">
        insert into
        role_functions(role_id,CREATE_TM,func_id)
        values(
        #{roleId,jdbcType=BIGINT},
        now(),
        #{id,jdbcType=BIGINT}
        )
    </insert>
    
    <!-- 删除角色权限功能 -->
    <delete id="delRoleFunction">
         delete from role_functions where role_id = #{roleId,jdbcType=BIGINT}
    </delete>


</mapper>



7.model


public class Function extends AiwModel{
    /**
     * serialVersionUID
     */
    private static final long serialVersionUID = -6294898482009409941L;

    /** 主键自增 */
    private long id;

    /** 角色名称 */
    private String funcName;

    /** 修改时间 */
    private String modifiedTm;

    /** 创建时间 */
    private String createTm;

    /** 父节点 */
    private long parentId;

    /** 功能路径 */
    private String url;

    /** 是否禁用 0:正常 1:禁用 */
    private char isDelete;

    /** 角色id */
    private long roleId;

    /**是否选中 */
    private String checked;

    private List<Function> children;


public class Role extends AiwModel{

    /**
     * serialVersionUID
     */
    private static final long serialVersionUID = -7891764967712489994L;

    /** 主键自增 */
    private long id;
    
    /** 角色名称*/
    private String roleName;

    /** 创建时间*/
    private String createTm;
    
    /** 是否禁用 0:正常 1:禁用*/
    private char isDelete;


8.mysql


CREATE TABLE  `users` (
  `user_id` bigint(20) NOT NULL AUTO_INCREMENT,
  `user_icon` varchar(300) DEFAULT NULL,
  `reg_source` varchar(10) NOT NULL COMMENT '注册来源:weixin,zfb,qq,mobile',
  `user_type` varchar(10) NOT NULL COMMENT '用户类型:SYS管理员,COMMON普通用户,SUPPLIER供应商务',
  `reg_tm` date NOT NULL,
  `user_state` char(1) NOT NULL COMMENT '用户状态:1有效 ,0冻结  2审核中',
  `user_pwd` varchar(100) NOT NULL,
  `nick_name` varchar(100) NOT NULL,
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表\r\n';
alter table users add user_name  varchar(200) not null comment '用户名';
alter table users add unique index idx_uq_user_name(user_name);
alter table users add column audit_state  varchar(10) default 'INIT' comment '审核状态 OK审核通过 INIT未审核 FAILD审核失败';
alter table users add column audit_user varchar(100) comment '审核人用户名';
alter table users add column audit_tm datetime comment '审核时间';



CREATE TABLE  `functions` (
  `FUNC_ID` bigint(32) NOT NULL AUTO_INCREMENT,
  `FUNC_NAME` varchar(200)  DEFAULT NULL COMMENT '功能名称',
  `CREATE_TM` datetime DEFAULT NULL COMMENT '创建时间',
  `MODIFIED_TM` datetime DEFAULT NULL,
  `PARENT_ID` varchar(32)  DEFAULT NULL,
  `URL` varchar(400)  DEFAULT NULL COMMENT '功能路径',
  `IS_DELETE` char(1)  DEFAULT NULL COMMENT '是否禁用',
  PRIMARY KEY (`FUNC_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='功能列表';


CREATE TABLE  `roles` (
  `ROLE_ID` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '主键自增',
  `ROLE_NAME` varchar(200) NOT NULL COMMENT '角色名称',
  `CREATE_TM` datetime NOT NULL COMMENT '创建时间',
  `IS_DELETE` char(1) DEFAULT NULL,
  PRIMARY KEY (`ROLE_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8  COMMENT='角色表';



CREATE TABLE  `role_functions` (
  `role_id` bigint(32) NOT NULL,
  `func_id` bigint(32) NOT NULL,
  `create_tm` datetime DEFAULT NULL,
  PRIMARY KEY (`role_id`,`func_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE  `user_roles` (
  `USER_ID` bigint(32) unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
  `ROLES_IDS` varchar(50) DEFAULT NULL COMMENT '用户角色',
  PRIMARY KEY (`USER_ID`,`ROLES_IDS`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户角色表';


9.testdata

INSERT INTO `users` (`user_id`, `user_icon`, `reg_source`, `user_type`, `reg_tm`, `user_state`, `user_pwd`, `nick_name`, `user_name`) VALUES (1, 'Koala.jpg', 'weixin', 'SYS', '2015-08-02', '1', 'E10ADC3949BA59ABBE56E057F20F883E', 'admin', 'admin');

INSERT INTO `user_roles` (`USER_ID`, `ROLES_IDS`) VALUES (1, '1');

INSERT INTO `roles` (`ROLE_ID`, `ROLE_NAME`, `CREATE_TM`, `IS_DELETE`)
VALUES (1, '管理员', '2015-08-02 13:59:30', '0');

INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (10000, '系统管理', '2015-08-02 13:59:56', '2015-08-02 13:59:56', '0', '', '0');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (10001, '角色管理', '2015-08-02 14:01:39', '2015-08-02 14:01:39', '10000', 'html/admin/role.html', '0');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (10002, '权限管理', '2015-08-02 14:01:57', '2015-08-02 14:01:57', '10000', 'html/admin/function.html', '0');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (10003, '查看系统域', '2015-08-02 14:02:20', '2015-09-09 18:35:18', '10000', 'html/admin/domain.html', '0');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (10004, '系统常量管理', '2015-09-08 20:50:50', '2015-09-08 20:52:52', '10000', 'html/systemconstant/systemconstant.html', '0');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (10005, '用户管理', '2015-08-02 14:02:46', '2015-08-02 14:02:46', '0', '', '0');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (10006, '用户管理', '2015-08-02 14:02:52', '2015-08-02 14:02:52', '10005', 'html/user/users.html', '0');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (10007, '供应商管理', '2015-08-02 14:03:09', '2015-08-02 14:03:09', '10005', 'html/user/suppliers.html', '0');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (10008, '供应商信息管理', '2015-08-02 14:03:33', '2015-08-02 14:03:33', '10005', 'html/user/suppliersInfo.html', '1');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (10009, '用户地址管理', '2015-09-14 13:51:50', '2015-09-14 13:51:50', '10005', 'html/user/userAddress.html', '0');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (10010, '日常审核管理', '2015-09-11 17:35:37', '2015-09-11 17:35:37', '0', '', '0');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (10011, '用户审核', '2015-09-11 17:35:57', '2015-09-13 09:40:34', '10010', 'html/audit/userAudit.html', '0');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (10012, '供应商审核', '2015-09-11 17:36:52', '2015-09-11 17:36:52', '10010', 'html/audit/suppliersAudit.html', '0');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (10013, '分销单审核', '2015-09-13 12:24:26', '2015-09-13 12:26:35', '10010', 'html/audit/fxGoodsAudit.html', '0');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (20000, '订单管理', '2015-08-02 14:03:54', '2015-08-02 14:03:54', '0', '', '0');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (20001, '订单管理', '2015-08-02 14:04:36', '2015-09-13 15:45:07', '20000', 'html/order/ckOrder.html', '0');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (20002, '分销单管理', '2015-09-13 13:47:25', '2015-09-13 13:47:25', '20004', 'html/goods/fxGoods.html', '0');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (20003, '产品管理', '2015-09-10 17:07:51', '2015-09-10 17:07:51', '0', '', '0');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (20004, '分销单管理', '2015-09-10 17:08:05', '2015-09-10 17:08:05', '0', '', '0');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (20005, '结算管理', '2015-09-10 17:08:16', '2015-09-10 17:08:16', '0', '', '0');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (20006, '产品类别管理', '2015-09-15 11:03:14', '2015-09-15 11:03:14', '20003', 'html/catsdomain/ckCats.html', '0');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (20007, '产品属性管理', '2015-09-15 18:02:09', '2015-09-15 18:02:09', '20003', 'html/catsdomain/prodDomain.html', '0');
INSERT INTO `functions` (`FUNC_ID`, `FUNC_NAME`, `CREATE_TM`, `MODIFIED_TM`, `PARENT_ID`, `URL`, `IS_DELETE`) VALUES (20008, '产品信息管理', '2015-09-15 18:02:09', '2015-09-15 18:02:09', '20003', 'html/ckprods/ckProds.html', '0');


INSERT INTO `role_functions` (`role_id`, `func_id`, `create_tm`) VALUES (1, 10000, '2015-09-15 18:02:27');
INSERT INTO `role_functions` (`role_id`, `func_id`, `create_tm`) VALUES (1, 10001, '2015-09-15 18:02:27');
INSERT INTO `role_functions` (`role_id`, `func_id`, `create_tm`) VALUES (1, 10002, '2015-09-15 18:02:27');
INSERT INTO `role_functions` (`role_id`, `func_id`, `create_tm`) VALUES (1, 10003, '2015-09-15 18:02:27');
INSERT INTO `role_functions` (`role_id`, `func_id`, `create_tm`) VALUES (1, 10004, '2015-09-15 18:02:27');
INSERT INTO `role_functions` (`role_id`, `func_id`, `create_tm`) VALUES (1, 10005, '2015-09-15 18:02:27');
INSERT INTO `role_functions` (`role_id`, `func_id`, `create_tm`) VALUES (1, 10006, '2015-09-15 18:02:27');
INSERT INTO `role_functions` (`role_id`, `func_id`, `create_tm`) VALUES (1, 10007, '2015-09-15 18:02:27');
INSERT INTO `role_functions` (`role_id`, `func_id`, `create_tm`) VALUES (1, 10009, '2015-09-15 18:02:27');
INSERT INTO `role_functions` (`role_id`, `func_id`, `create_tm`) VALUES (1, 10010, '2015-09-15 18:02:27');
INSERT INTO `role_functions` (`role_id`, `func_id`, `create_tm`) VALUES (1, 10011, '2015-09-15 18:02:27');
INSERT INTO `role_functions` (`role_id`, `func_id`, `create_tm`) VALUES (1, 10012, '2015-09-15 18:02:27');
INSERT INTO `role_functions` (`role_id`, `func_id`, `create_tm`) VALUES (1, 10013, '2015-09-15 18:02:27');
INSERT INTO `role_functions` (`role_id`, `func_id`, `create_tm`) VALUES (1, 20000, '2015-09-15 18:02:27');
INSERT INTO `role_functions` (`role_id`, `func_id`, `create_tm`) VALUES (1, 20001, '2015-09-15 18:02:27');
INSERT INTO `role_functions` (`role_id`, `func_id`, `create_tm`) VALUES (1, 20002, '2015-09-15 18:02:27');
INSERT INTO `role_functions` (`role_id`, `func_id`, `create_tm`) VALUES (1, 20003, '2015-09-15 18:02:27');
INSERT INTO `role_functions` (`role_id`, `func_id`, `create_tm`) VALUES (1, 20004, '2015-09-15 18:02:27');
INSERT INTO `role_functions` (`role_id`, `func_id`, `create_tm`) VALUES (1, 20005, '2015-09-15 18:02:27');
INSERT INTO `role_functions` (`role_id`, `func_id`, `create_tm`) VALUES (1, 20006, '2015-09-15 18:02:27');
INSERT INTO `role_functions` (`role_id`, `func_id`, `create_tm`) VALUES (1, 20007, '2015-09-15 18:02:27');

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值