La mise en œuvre de MyBatis lit en détail les données de la structure des arbres comme suit:
Structure de table
Créer la table `lscrm_function_privilege` (` id` int (10) non signé non signé null auto_increment commentaire 'numéro', `create_id` varchar (30) non null par défaut 'Sys',` update_id` varchar (30) non null 'sys' sys ', `` créat_time' non 'null neftam current_timestamp commenter' Null Default Current_timestamp sur Update Current_timestamp Commentaire `` Temps de modification '', `Validity 'tinyint (3) non signé pas null' 1 '1' comment 'validité 1. VALID 0. Invalid',` Code 'Varchar (50) non null' 'Commentaire' CODING ', `` function_id' Null par défaut '0' commentaire 'nœud parent', `is_leaf_node 'tinyint (3) non signé pas null' 1 'comment' est le nœud de feuille (un nœud de feuille est un nœud avec un degré de 0, qui est un nœud sans nœud enfant). Le sous-système par défaut '0' comment ', `is_hidden' tinyint (3) non signé pas null '0' comment 'comment l'interface utilisateur est-il caché? Non affiché sur l'interface utilisateur ', clé primaire (`id`)) moteur = innodb auto_increment = 22 charse par défaut = utf8 comment =' sous-code create / r / n selon le code parent, tel que: client.add ';
Construire des données
Insérer dans `LSCRM_FUNCTION_PRIVILEGE` VALEURS ('1', 'SYS', 'SYS', '2016-09-07 15:20:40', '2016-09-07 15:21:17', '1', 'web.permission', 'insisting in in' '0', '0', '1', '0'); INSERTER IN `LSCRM_FUNCTION_PRIVILEGE` VALEURS ('2', 'SYS', 'SYS', '2016-09-07 15:21:12', '2016-09-07 15:21:40', '1', 'web.permission.user-mgmt', ',', '1', '0', '1' ',' 1 ''. `LSCRM_FUNCTION_PRIVILEGE` VALEURS ('3', 'SYS', 'SYS', '2016-09-07 15:22:16', '2016-09-07 15:22:35', '1', 'web.permission.user-mgmt.add', 'insert', '2', '1', '1', 0 '); `LSCRM_FUNCTION_PRIVILEGE` VALEURS ('4', 'SYS', 'SYS', '2016-09-07 15:23:17', '2016-09-07 15:23:17', '1', '2' 'PERMISSION.USER-MGMT.MODIFY' ',' INSERSER ',' 2 '', '1' ',' 1 ', 0') '' INSERFER '', '2' ',' 1 '', '1' ')' '' `LSCRM_FUNCTION_PRIVILEGE` VALEURS ('5', 'SYS', 'SYS', '2016-09-07 16:10:37', '2016-09-07 16:10:42', '1', '0') ('6', 'sys', 'sys', 'sys', '2016-09-07 16:11:06', '2016-09-07 16:11:20', '1', 'app.customer.add', 'Ajouter le client', '5', '1', '2', '0'); 'insér 'Sys', '2016-09-07 16:11:06', '2016-09-07 16:11:20', '1', 'app.customer.modify', '5', '1', '2', '0'); insert dans `` LSCRM_FUNCTION_PRIVILEGE ' 16:12:33 ',' 2016-09-07 16:14:10 ',' 1 ',' app.Customer.ViewDetail ',' Afficher les détails du client ',' 5 ',' 1 ',' 2 ',' 0 '); INSERT IN `LSCRM_FUNCTION_PRIVILEG' '2016-09-07 16:12:33', '1', 'app.customer.addvisit', 'ajouter visiter', '5', '1', '2', '0'); insérer dans 'LSCRM_FUNCTION_PRIVILEGE' VALEUR ('10', 'Sys', ', 2016-07-09-07 16:13:59', 2016-09-07-07-07 16:14:17 ',' 1 ',' app.Customer.ViewDemand ',' Afficher les exigences d'approvisionnement des clients ',' 5 ',' 1 ',' 2 ',' 0 '); INSERT IN `LSCRM_FUNCTION_PRIVILE' VALEURS ('11', 'SYS', 'SYS', '2016-09-07 16:13:59', ', 2016-09-07 16:14:17 ',' 1 ',' app.Customer.ViewOrder ',' Afficher l'ordre client ',' 5 ',' 1 ',' 2 ',' 0 '); Insérer dans `` LSCRM_FUNCTION_PRIVILEG' ('12', 'SYS', ', SYS', '2016-09-07 16:13:59', ', 2016-09-07 '1', 'app.customer.viewshop', 'Afficher l'ordre client', '5', '1', '2', '0'); insérer dans `LSCRM_FUNCTION_PRIVILEGE 'VALEURS (' 13 ',' SYS ',' SYS ',', 2016-09-07 '16:17:28', '2016-09-07 16:18:39', '1' ', 2016-09-07 '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 Opening', '5', '1', '2', '0');INSERT INTO `lscrm_function_privilege` VALUES ('15', 'sys', 'sys', '2016-09-07 16:22:33', '2016-09-07 16:22:33', '1', 'APP.DEMAND', 'Gestion de la demande', '0', '0', '2', '0'); insérer dans `` lscrm_function_privilege 'valeurs (' 17 ',' sys ',' sys ',' 2016-09-07 16:23:21 ' '1', '1', '2', '0'); insérer dans `` lscrm_function_privilege 'valeurs (' 18 ',' sys ',' sys ',' 2016-09-07 16:23:58 ',' 2016-09-07 16:23:58 '', '1', 'app.demand.feedback' '2', '0'); insérer dans `LSCRM_FUNCTION_PRIVILEGE` VALEURS ('19', 'SYS', 'SYS', '2016-09-07 16:24:47', '1', ',', '2', '0'); insert dans '' 1 ',' 1 ',' 2 ',' 0 '); insert in' '1', '1', '2', '0'); insert in '' 1 ',' 1 ',' 2 ',' 0 '); insert in' 1 ',' 1 ',' 2 ',' 0 '); insert in' 1 ',' 1 ',' 2 ',' 0 ')') '' '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1'); INSERT IN `` lscrm_function_privilege 'les valeurs ('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', '1', '1', '1', '1', '1', '1' '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', 'app.kpi.viewdata', 'afficher les données de performance', '20', '1', '2', '0');Haricot entité
Package com.lianshang.crm.biz.entity; import com.google.common.base.moreobjects; importer java.util.arraylist; import java.util.date; import java.util.list; classe publique lscrmfunctionprivilegeentity {/ ** nombre ** / private id; private String Createid; privatering updateId; CreateTime; / ** Temps de modification ** / Private Date UpdateTime = new Date (); / ** Validity 1.Valid 0. Invalid ** / int private validité = 1; / ** Encoding ** / Private String Code; / ** nom ** / Private String FunctionName; / ** Node parent ** / private int Parentid; / ** est le nœud leaf nœuds). Lors de l'ajout de nœuds enfants, Parent_id is_leaf_node doit être défini sur 0 ** / private int IsleafNode; / ** Sous-système affilié ** / private int subSystemid; / ** est-ce que l'interface utilisateur est cachée? Il ne s'affiche pas sur l'interface utilisateur ** / private int ishidden = 1; Liste privée <lscrmfunctionprivileGeEntity> privilEList = new ArrayList <> (); // get () / set () omis. . . } Package com.lianshang.crm.biz.entity; import java.util.arraylist; import java.util.date; import java.util.list; / *** créé par Zhenyu sur 2016/9/8. * / Public Class lscrmfunctionPrivileGere UpdateTime = new Date (); / ** Validity 1.Valid 0. Invalid ** / private int validité = 1; / ** Encoding ** Code de chaîne privé; / ** Nom ** / private String functionName; / ** nœud ** / private int parentId; / ** est le nœud de feuille (Leave nœud est un nœud avec un degré de 0 et un nœud sans nœud). Lors de l'ajout de nœuds enfants, Parent_id is_leaf_node doit être défini sur 0 ** / private int IsleafNode; / ** Sous-système affilié ** / private int subSystemid; / ** est-ce que l'interface utilisateur est cachée? Il n'est pas affiché sur l'interface utilisateur ** / private int ishidden = 1; Liste privée <lscrmfunctionprivilegeentity> privilEgeList = new ArrayList <> ();}configuration de mappeur
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Mappep Public "- // Mybatis.org//dtd Mappen 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace = "com.lianshang.crm.biz.dao.lscrmfunctionprivilegedao"> <cacheeviction = "fifo" flushinterval = "60000" size = "1024" readonly = "true" /> <resultmap id = "lscrmfunctionprivity" propriété = "id" chronn = "id" /> <résultat propriété = "CreateId" chronn = "create_id" /> <résultat propriété = "updateid" chronn = "update_id" /> <result propriété = "CreateTime" collumn = "Create_time" propriété = "functionname" chronn = "function_name" /> <résultat propriété = "parentid" column = "parent_id" /> <résultat propriété = "isleafnode" chronn = "is_leaf_node" /> <résultat propriété = "subsystemid" column = "sub_system_id" /> <le résultat property = "ishidden" colum Column = "IS_HIDDEN" /> <Result Property = "SubprivilegesResult" type = "lscrmfunctionPrivileGeEntity" étend = "lscrmfunctionprivilegeResult"> <Collection Property = "Privilegelist" Javatype = "Java.util.ArrayList" Column = "id" ofType = "lscrmfunction SELECT = "SELECTSUBPRIVILIGEGES"> </ COLLECTION> </SUXTRIMMAP> <ResultMap id = "lscrmFunctionPrivileGereeResult" type = "lscrmfunctionprivilegetree" étend = "subprivilegesResult"> <! - <association property = "functionprivilege" colonnet = "id" javatype = "lscrmfunderprivilege" column = "id" javatype = "lscrmfunderprivilege" "id" javatype = "lscrmfunderprivlegege" resultmap = "lscrmfunctionprivilegeResult" /> -> <collection property = "privilEgeList" javatype = "java.util.arraylist" column = "id" ofType = "lscrmfonctionprivilegeentity" select = "selectSubPrivileges"> </ Collection> </cultMap> <sqlLl id = "tbl_name"> lscrm_function_privilege </ql> <sql id = "role_privilege_tbl_name"> lscrm_role_privilege </ql> <sql id = "select_sql"> select id, create_id, upde_id, create_time, update_time, validité, comité, fonction_name, pneumatique, create_time, update_time, validité " is_leaf_node, sub_system_id, is_hidden from <inclue refid = "tbl_name" /> </ql> <select id = "readallprivileges" resultmap = "lscrmfonctionprivilegetreereSult" usECache = "true"> <include refid = "select_sql" /> où parent_id = 0 <if Test = "subsysum sub_system_id = # {subsystemId} </ if> </lect> <select id = "selectSubprivileges" resultMap = "subprivilegesResult"> <include refid = "select_sql" /> where parent_id = # {id} </ select> 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. LscrmFunctionPriviLegedAo {list <lscrmfunctionprivilegetree> readallPrivileges (@param ("subsystemid") int subsystemid);}service
Package com.lianshang.crm.biz.service.impl; import com.alibaba.fastjson.json; import com.google.common.base.function; import com.lianshang.common.utils.general.guavautil; import. com.lianshang.common.utils.general.stringutil; import com.lianshang.crm.api.dto.lscrmfunctionprivilege; import com.lianshang.crm.api.service.lscrmfonctionprivilegesservice; import com.lianshang.crm.biz.dao.lscrmfonctionprivlegedao; com.lianshang.crm.biz.entity.lscrmfunctionprivilegeentity; import com.lianshang.crm.biz.entity.lscrmfunctionprivilegetree; import org.springframework.beans.factory.annotation.autilred; import java.util.arraylist; import java.utitil.date; import; java.util.list; import static com.google.common.collect.fluentiterable.from; classe publique lscrmfonctionprivilegeServiceIMPl implémente lscrmfonctionprivilegeService {@AutowiredPrivate lscrmFonctionprivLeledAo LscrmfonctionPriviledaOo; @OverridEpublicyResulSulfulSulter> readAllPrivileges (int subsystemId) {list <lscrmfonctionprivilegetree> privilEgetRees = lscrmfonctionpriviledao.readallprivileges (subSystemId);Résultat de retour
[{"code": "WEB.PERMISSION","createId": "sys","createTime": 1473232840000,"functionName": "Permission Management","hidden": 0,"id": 1,"leafNode": 0,"parentId": 0,"privilegeList": [{"code": "WEB.PERMISSION.USER-MGMT","createId": "Sys", "CreateTime": 1473232872000, "FunctionName": "User Management", "Hidden": 0, "ID": 2, "LeafNode": 0, "Parentid": 1, "privilEgelist": [{"Code": "web.permission.user": 1473232936000, "FunctionName": "New User", "Hidden": 0, "Id": 3, "LeafNode": 1, "Parentid": 2, "PrivilegeList": [], "SubSystemid": 1, "UpdateID": "Sys", "UpdateTetime": 1473232955000, "Validité": 1}, "Code": ":" Code ":": "COD "Web.permission.user-mgmt.modify", "CreateId": "sys", "CreateTime": 1473232997000, "functionName": "modifier l'utilisateur", "Hidden": 0, "id": 4, "leafnode": 1, "Parentid": 2, "privilelist": [], "" "sys", "updatetime": 1473232997000, "validité": 1}], "SubSystemId": 1, "UpdateID": "sys", "updatetime": 1473232900000, "validité": 1}], "SubSystemd": 1, "UpdateId": "Sys", "UpateTetime": " 1473232877000, "Validité": 1}] Ce qui précède est l'exemple de code pour l'implémentation des données de structure d'arbre de lecture de MyBatis qui vous sont présentées. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!