A implementação do Mybatis lê dados de estrutura de árvores em detalhes da seguinte forma:
Estrutura da tabela
Criar tabela `lscrm_function_privilege` (` id` int (10) não assinado não nulo auto_incremem comentário 'número', `create_id` varchar (30) não nulo padrão 'sys',` update_id` var (30) não null default 'sys', 'cate_time``' Timestamp não nulo padrão current_timestamp na atualização current_timestamp Comentário 'tempo de modificação', `validade` tinyint (3) não assinado não nulo padrão '1' comentário 'validade 1. TinyInt (3) não assinado NOUN '0' nó de comentar ', `is_leaf_node` tinyint (3) não assinado, não nulo padrão' 1 'comentário' é o nó folhedor (um nó folha é um nó node, com um nó com um grau de 0, que é um nó sem um nó infantil). 0 ', `sub_system_id` int (10) não assinado não nulo padrão' 0 'comentário' subsistema ',` is_hidden` tinyint (3) não assinado, não nulo padrão' 0 'comentário' está escondido? Não exibido na interface do usuário ', chave primária (`id`)) mecanismo = innodb auto_increntry = 22 charset padrão = utf8 comentário =' sub-codificador crie /r /n de acordo com o código pai, como: cliente.add ';
Construir dados
INSERT INTO `lscrm_function_privilege` VALUES ('1', 'sys', 'sys', '2016-09-07 15:20:40', '2016-09-07 15:21:17', '1', 'WEB.PERMISSION', 'Permission Management', '0', '0', '1', '0');INSERT INTO `lscrm_function_privilege` VALUES ('2', 'sys', 'sys', '2016-09-07 15:21:12', '2016-09-07 15:21:40', '1', 'WEB.PERMISSION.USER-MGMT', 'User Management', '1', '0', '1', '1', '0');INSERT INTO `lscrm_function_privilege` valores ('3', 'sys', 'sys', '2016-09-07 15:22:16', '2016-09-07 15:22:35'), '1', 'web.permission.user-mgmt.add', 'add'; '1', '2', 'web.permission.user-mgmt.add', 'add'; '2', '2', 'web.permission.user-mgmt.add', '' '; `lscrm_function_privilege` valores ('4', 'sys', 'sys', '2016-09-07 15:23:17', '2016-09-07 15:23:17', '1', 'web.permission.User-mgmt.Modify', 'Modify', 'User', 'Web.permission.User-mgmt.'Modify', 'Modify', 'User', 'Web. `lscrm_function_privilege` VALUES ('5', 'sys', 'sys', '2016-09-07 16:10:37', '2016-09-07 16:10:42', '1', 'APP.CUSTOMER', 'Customer Management', '0', '0', '2', '0');INSERT INTO `lscrm_function_privilege` VALUES ('6', 'sys', 'sys', 'sys', '2016-09-07 16:11:06', '2016-09-07 16:11:20', '1', 'App.customer.add', 'add client', '5,' 1 ',' 2 ',' 0 '); 'sys', '2016-09-07 16:11:06', '2016-09-07 16:11:20', '1', 'APP.CUSTOMER.MODIFY', '5', '1', '2', '0');INSERT INTO `lscrm_function_privilege` VALUES ('8', 'sys', 'sys', '2016-09-07 16:12:33', '2016-09-07 16:14:10', '1', 'APP.CUSTOMER.VIEWDETAIL', 'View Customer Details', '5', '1', '2', '0');INSERT INTO `lscrm_function_privilege` VALUES ('9', 'sys', 'sys', '2016-09-07 16:12:33', '2016-09-07 16:12:33', '1', 'APP.CUSTOMER.ADDVISIT', 'Add Visit', '5', '1', '2', '0');INSERT INTO 'lscrm_function_privilege` VALUES ('10', 'sys', 'sys', '2016-09-07 16:13:59', '2016-09-07 16:14:17 ',' 1 ',' app.customer.viewDemand ',' visualize os requisitos de compras do cliente ',' 5 ',' 1 ',' 2 ',' 0 '); inserir em `lscrm_function_privilege` (' 11 ',' Sys '', '2016-09-07 16:0.10:' Sys '3 2016-09-07 16:0: 2016-090713010:' Sys '3 2016-09-07 16. 16:14:17 ',' 1 ',' App.customer.vieworder ',' visualize o pedido do cliente ',' 5 ',' 1 ',' 2 ',' 0 '); inserir em `lscrm_function_privilege` (' 12 ',' sys ',' sys '2016-09-07 16:1313. '1', 'APP.CUSTOMER.VIEWSHOP', 'View Customer Order', '5', '1', '2', '0');INSERT INTO `lscrm_function_privilege` VALUES ('13', 'sys', 'sys', '2016-09-07 16:17:28', '2016-09-07 16:18:39', '1', 'APP.CUSTOMER.VIEWREPLY', 'View order grab list', '5', '1', '2', '0');INSERT INTO `lscrm_function_privilege` VALUES ('14', 'sys', 'sys', '2016-09-07 16:19:32', '2016-09-07 16:23:51', '1', 'App.customer.fastoPenshop', 'Quick Store Abertura', '5', '1', '2', '0'); inserir em `lscrm_function_privilege` valores ('15', 'Sys', 'Sys', '2016-09-07 16:2222:33,' 2016-09-09-09-07, '2016-09-09-07 16:22222222222222222222222222222222222222222222222222222222222222222e. 'Gerenciamento da demanda', '0', '0', '2', '0'); inserir em `lscrm_function_privilege` valores ('17', 'sys', 'sys', '2016-09-07 16:23:21', '2016-09-07 16:23:21', '1' '' ','d.' App. '1', '1', '2', '0'); inserir em `lscrm_function_privilege 'valores (' 18 ',' sys ',' sys ',' 2016-09-07 16:23:58 ',' 2016-09-07 16:23:58 ',' 1 '', App.D.Mem e '0');INSERT INTO `lscrm_function_privilege` VALUES ('19', 'sys', 'sys', '2016-09-07 16:24:47', '1', 'APP.DEMAND.PUSHSEARCH', 'Pull Seller Search', '15', '1', '2', '0');INSERT INTO '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1');INSERT INTO `lscrm_function_privilege` VALUES ('21', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', 'App.kpi.viewData', 'visualizar dados de desempenho', '20', '1', '2', '0');Entidade Bean
pacote com.lianshang.crm.biz.entity; importar com.google.common.base.moreObjects; importar java.util.arraylist; importar java.util.date; importação java.util.list; private; CreateTime;/** Tempo de modificação **/data privada updateTime = new Date ();/** Validade 1.Valid 0. Invalid **/private int validade = 1;/** codificação **/private string code;/** name **/private string functionName;/** nó pai **/private Int ParentId; ** é nós). Ao adicionar nós filhos, parent_id is_leaf_node precisa ser definido como 0 **/private int isleafnode;/** Subsistema afiliado **/private int subsystemid;/** A interface do usuário está escondida? Não é exibido na interface do usuário **/private int ishidden = 1; lista privada <lscrmfunctionPrivileGeentity> privilegelist = new ArrayList <> (); // get ()/set () omitido. . . } pacote com.lianshang.crm.biz.entity; importar java.util.ArrayList; importar java.util.date; importar java.util.list;/*** criado por zhenyu em 2016/9/8. Data updateTime = new Date ();/** Validade 1.Valid 0. inválido **/private int validade = 1;/** codificação **/code string privado;/** name **/private string functionName;/** nó pai **/private int parentId; ** é o nó do folhas (o nó de licença é um nó com um grau de 0,6 Ao adicionar nós filhos, parent_id is_leaf_node precisa ser definido como 0 **/private int isleafnode;/** Subsistema afiliado **/private int subsystemid;/** A interface do usuário está escondida? Não é exibido na interface do usuário **/private int ishidden = 1; Lista privada <lscrmfunctionPrivileGeentity> privilegelist = new ArrayList <> ();}
Configuração do mapeador
<? xml versão = "1.0" coding = "utf-8"?> <! namespace = "com.lianshang.crm.biz.dao.lscrmfunctionPrivileGerAo"> <cacheeviction = "fifo" flushinterval = "60000" size = "1024" readOnly = "true"/> <resultMap ID "lscrmfunctionPrivileGerSult" ("ls" e "lsrunct "M" stunctReRinGeRity "M. column = "id"/> <resultado de propriedade = "createId" column = "create_id"/> <resultado de propriedade = "updateId" column = "update_id"/> <resultado de propriedade = "createTime" column = "create_time_time"/> <result Property = "updateTeTime" column = "upder_time"/> <Result (") column = "function_name"/> <result Property = "parentid" column = "parent_id"/> <result Property = "Isleafnode" column = "is_leaf_node"/> <Result Property = "Subsystemid" Column = "Sub_system_id"/> Result Deperty = "isHidden" column = "is_s_hidn =" column = "is_hidden"/> <Result Property = "SubprivileGeGesResult" type = "lScrmfunctionPrivileGeentity" estende = "lScrmfunctionPrivileGeResult"> coleta de propriedade = "privilegelist" Javatype = "java.util.ArrayList" (columnista "denktyPtyTyPtatype =" select = "SelectSubprivileges"> </colecionamento> </resultMap> <resultMap id = "lScrmfunctionPrivileGetReeReResult" type = "lScrmFunctionPrivileGeTee" estends = "SubprivileGeGesResult"> <!-<Association Property = "FUNCTRIRGILEGE" Column = "idivilegyGeGeGesResult"> <!-<Association = "FUNCTRIMEGE" Column = "idiStileGeGeGesResult"> <!-) resultMap = "lSCRMFunctionPrivileGerSult"/>-> <Coleção de propriedade = "privilegelista" javatype = "java.util.arraylist" column = "id" oftype = "lcrcrmfunctionPriVilegeEntity" select = "selectSubprileges"> </colecioning> </collection> </collection> </collection> </collectionMap> </collection> </collection> </collectionMap> </collection> </collection> </collectionMap> </collectionMap> </collectionMap> </coletorlemap> id="tbl_name">lscrm_function_privilege</sql><sql id="role_privilege_tbl_name">lscrm_role_privilege</sql><sql id="select_sql">select id, create_id, update_id, create_time, update_time, validity, code, function_name, parent_id, is_leaf_node, sub_system_id, is_hidden de <incluir refid = "tbl_name"/> </sql> <select id = "readallprivileges" resultmap = "lscrmfunctionPrivileGetReeReReReReResult" usecache = "true" <inclui "" select_sql_>/> sub_system_id= #{subSystemId}</if></select><select id="selectSubPrivileges" resultMap="SubPrivilegesResult"><include refid="select_sql"/>WHERE parent_id = #{id}</select></mapper>package com.lianshang.crm.biz.dao;import com.lianshang.crm.api.dto.LscrmFunctionPrivilege;import com.lianshang.crm.biz.entity.LscrmFunctionPrivilegeEntity;import com.lianshang.crm.biz.entity.LscrmFunctionPrivilegeTree;import org.apache.ibatis.annotations.Param;import java.util.List;public interface LSCRMFunctionPrivilegedao {list <LSCRMFunctionPrivileGetree> ReadAllPrivileges (@param ("subsystemid") int subsystemid);}serviço
pacote com.lianshang.crm.biz.service.impl; importar com.alibaba.fastjson.json; importação com.google.common.base.function; import com.lianshang.common.utils.general.General.GeneralResult; import Com.lianshang.commommerils.General.Garil.Garileral.Garil.GeRilAvAn; com.lianshang.common.utils.general.StringUtil; importar com.lianshang.crm.api.dto.lscrmfunctionPrivilege; importar com.lianshang.crm.api.service.lscrmfunctionPrivileGerseSeCe; import.lianshang.cr.biz.DaRa.DaRMO.LSoStileGerseSeCe; com.lianshang.crm.biz.entity.lscrmfunctionPrivileGeentity; importação com.lianshang.crm.biz.entity.lscrmfunctionPrivileGetRee; import org.springframework.beans.factory.annotation.aTowired.port.port.portyList; import.mportAlist; import.mport.mports.mports.MaNotation.aTowired; static com.google.common.collect.fluentiterable.from; public class LSCRMFunctionPrivileGerServiceImpl implementa LSCRMFunctionPrivileGerService {@AUTOWIDEDPRIVATE LSCRMFunctionPrilegedao LscrmFunctionPriveDaRaMoo; @OverridePublicUmpublicCURNIVILEGIDAOO) {List <lScrmfunctionPrivileGetree> privilegetas = lcrmfunctionPrivileGregedAo.readallPrivileges (SubsystemId); retorna New GeneralResult <> (json.tojSonstring (privilegetrees));}}}Resultado de retorno
[{"code": "web.permission", "createId": "sys", "createTime": 1473232840000, "functionName": "Gerenciamento de permissão", "Hidden": 0, "ID": 1, "Leafnode": 0, ParentiD ": 0," PrivileGelist ":" " "sys","createTime": 1473232872000,"functionName": "User Management","hidden": 0,"id": 2,"leafNode": 0,"parentId": 1,"privilegeList": [{"code": "WEB.PERMISSION.USER-MGMT.ADD","createId": "sys","createTime": 1473232936000, "FunctionName": "New User", "Hidden": 0, "Id": 3, "LeafNode": 1, "ParentId": 2, "PrivilEgelist": [], "SubsystemId": 1, "UpdateId": "Sys" "," UpdateTime ": 14732229: 1," UpdateId ":" "" "" " "WEB.PERMISSION.USER-MGMT.MODIFY","createId": "sys","createTime": 1473232997000,"functionName": "Modify user","hidden": 0,"id": 4,"leafNode": 1,"parentId": 2,"privilegeList": [],"subSystemId": 1,"updateId": "SYS", "UPDATETIME": 1473232997000, "Validade": 1}], "Subsystemid": 1, "UpdateId": "Sys", "UpdateTime": 1473232900000, "validade": 1}], "Subsystemid": 1, "UpdateId" "Sys": Sys ": 1}," 1473232877000, "Validade": 1}] O exposto acima é o código de exemplo para a implementação dos dados da estrutura da árvore de leitura mybatis introduzidos em você. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!