Реализация Mybatis подробно считывает данные о структуре дерева следующим образом:
Структура таблицы
CREATE TABLE `lscrm_function_privilege` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'number',`create_id` varchar(30) NOT NULL DEFAULT 'sys',`update_id` varchar(30) NOT NULL DEFAULT 'sys',`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'create time',`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Modification time',`validity` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT 'Validity 1. Valid 0. Invalid',`code` varchar(50) NOT NULL DEFAULT '' COMMENT 'Coding',`function_name` varchar(50) NOT NULL DEFAULT '' COMMENT 'name',`parent_id` Tinyint (3) Unsigned Not Null Default '0' Comment 'Parent Node', `is_leaf_node` tinyint (3) Unsigned Not Null Default '1« Комментарий » - это узел листа (узел листьев - это узел с степени 0, который является узлом без детского узла). 0 ', `sub_system_id` int (10) unsigned not null default' 0 'comment' subsystem ',` is_hidden` tinyint (3) unsigned not null default' 0 'Comment' ui скрыт? Не отображается на UI ', первичный ключ (`id`)) engine = innodb auto_increment = 22 default charset = utf8 comment =' sub-sub-code create /r /n в соответствии с родительским кодом, например: customer.add ';
Построить данные
Вставьте в `lscrm_function_privilege` values ('1', 'sys', 'sys', '2016-09-07 15:20:40', '2016-09-07 15:21:17', '1', 'web.permission',« Управление разрешения `lscrm_function_privilege` values ('2', 'sys', 'sys', '2016-09-07 15:21:12', '2016-09-07 15:21:40', '1', 'web.permission.user-mgmt',« Управление пользователями », '1', '1', '1', '1', '1', '1', '1', '1 `lscrm_function_privilege` values ('3', 'sys', 'sys', '2016-09-07 15:22:16', '2016-09-07 15:22:35', '1', 'web.permission.user-mgmt.add', 'добавить пользователь', '2', '1', '1 `lscrm_function_privilege` Values ('4', 'sys', 'sys', '2016-09-07 15:23:17', '2016-09-07 15:23:17', '1', 'web.permission.user-mgmt.modify', 'Modify User', '2', '1', '1' 1 ',' 1 ',' 1 '1', '1', '1', '1', '1', '1' 1 `lscrm_function_privilege` values ('5', 'sys', 'sys', '2016-09-07 16:10:37', '2016-09-07 16:10:42', '1', 'app.customer', 'Management', '0', ',' 2 ',' 0 '); ('6', 'sys', 'sys', 'sys', '2016-09-07 16:11:06', '2016-09-07 16:11:20', '1', 'app.customer.add', 'Add Customer', '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 ', «Просмотреть детали клиента»,' 5 ',' 1 ',' 2 ',' 0 '); вставьте в `lscrm_function_privilege' значения ('9', ',', ',', ',', 2016-07: 06-07: 06-07: 06-09-07: 06-09-09: 06-07:3 '2016-09-07 16:12:33', '1', 'app.customer.addvisit', 'добавить визит', '5', '1', '2', '0'); вставьте в 'lscrm_function_privilege' ('10', 'Sys', 'Sys', ',' 2016-09-07 16:13:599'-1699. 16:14:17 ',' 1 ',' app.customer.viewdemand ',' Просмотреть требования к закупке клиентов ',' 5 ',' 1 ',' 2 ',' 0 '); вставьте в `lscrm_function_privilege' значения ('11', 'sys', 'Sys', '2016-09-07 16:13:59', '2016-16-019-169. 16:14:17 ',' 1 ',' app.customer.vieword ',' Просмотреть заказ клиента ',' 5 ',' 1 ',' 2 ',' 0 '); вставьте в значения lscrm_function_privilege` (' 12 ',' sys ',' Sys ', 2016-09-07 16:13:59', '2016-09-07: 07-09-07: 07-07: 07-07: 07-07: 07-07-07-07: 07-09: 07-07: 07-07: 07-07: 07-09: 07-07: 07-07: 07-09: 07-07. '1', 'app.customer.viewshop', 'Просмотреть заказ клиента', '5', '1', '2', '0'); вставьте в значения LSCRM_FUNCTION_PRIVILEGE '(' 13 ',' SYS ',' SYS ', 2016-09-07 16:17:28', 2016-09-07 'App.customer.viewReply', 'View Order Graff List', '5', '1', '2', '0'); вставьте в значения lscrm_function_privilege` ('14', 'sys', 'sys', "2016-09-07 16:19:32 ',' 2016-09-07 'App.customer.fastopenshop', 'Quick Store Opering', '5', '1', '2', '0'); вставьте в значения `lscrm_function_privilege` (15 ',' Sys ',' Sys '," 2016-09-07 16:22:33', "2016-09-07 16:22:3". «Управление спросом», '0', '0', '2', '0'); вставьте в значения `lscrm_function_privilege` ('17', 'sys', 'sys', '2016-09-07 16:23:21'," 2016-09-07 16:23:21 ', 1,', ', Private'. '1', '1', '2', '0');INSERT INTO `lscrm_function_privilege` VALUES ('18', 'sys', 'sys', '2016-09-07 16:23:58', '2016-09-07 16:23:58', '1', 'APP.DEMAND.FEEDBACK', 'Page Feedback', '15', '1', '2', '0'); вставьте в `lscrm_function_privilege` values ('19', 'sys', 'sys', '2016-09-07 16:24:47', '1', 'app.demand.pushsearch', 'Поиск продавца", "," 1', '2', '1,' 1, '1,' 1, '1,' 1, '1,' 1, '1,' 1, '1,' 1, '1,' 1, '1,', '1,', '1,', '1,', '1', '2', '1,', '1', '2', '1,', '1', '2', 1 ',' 1, ',' 1 ',' 2 '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1'); вставьте в `lscrm_function_privilege '(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 ',' 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', «Просмотреть данные о производительности», '20', '1', '2', '0' ');Сущность бобов
Пакет com.lianshang.crm.biz.entity; import com.google.common.base.moreobjects; import java.util.arraylist; import java.util.date; импорт java.util.list; public class lscrmfunctionprivilegeentity {/** № **/приватная Id; CreateTime;/** Время модификации **/частная дата updateTime = new Date ();/** Validity 1.valid 0. Invalid **/Private Int Validity = 1;/** Кодирование **/Приватный строковый код;/** Имя **/Private String Function;/** родительский узлы **/private parentId;/** - это node node node node node node node node node node node node node node node node node node node node node node node node node node node node node. узлы). При добавлении дочерних узлов parent_id is_leaf_node должен быть установлен на 0 **/private int isleafnode;/** Аффилированная подсистема **/private int subsystemid;/** скрыт UI? Он не отображается на UI **/Private Int Ishidden = 1; Private List <LSCRMFunctionPrivileGeentity> privieilegelist = new ArrayList <> (); // get ()/set (). Полем Полем } пакет com.lianshang.crm.biz.entity; import java.util.arraylist; import java.util.date; import java.util.list;/*** Создан Zhenyu на 2016/9/8. updateTime = new Date ();/** Достоверность 1.valid 0. Invalid **/Private Int Validity = 1;/** Кодирование **/частный строковый код;/** Имя **/Private String FunctionMeme;/** родительский узел **/private int parentid;/** - это листовой узлы (оставляйте узлы - это узлы со степенью 0 и node без Node). При добавлении дочерних узлов parent_id is_leaf_node должен быть установлен на 0 **/private int isleafnode;/** Аффилированная подсистема **/private int subsystemid;/** скрыт UI? Он не отображается на UI **/Private Int Ishidden = 1; Private List <lscrmfunctionPrivileEentity> PrivieileGelist = new ArrayList <> ();}Конфигурация 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.org/dtd/mybatis-3-mapper.dtd " namespace = "com.lianshang.crm.biz.dao.lscrmfunctionprivilegedao"> <cacheeviction = "fifo" flushinterval = "60000" size = "1024" readonly = "true"/> <resultmap id = "lscrmfunctionprivilegeresult =" lscrmfunctionprintyprintyprintyprintyprintyprintyprintyprintyprintyprintypuntyprintypuntypuntygeprintypuntygeprintypuntygeprintypuntypuntypuntipured column="id"/><result property="createId" column="create_id"/><result property="updateId" column="update_id"/><result property="createTime" column="create_time"/><result property="updateTime" column="update_time"/><result property="validity"/><result property="code" column="code"/><result property="functionName" column = "function_name"/> <result property = "parentId" column = "parent_id"/> <result property = "isLeafNode" column = "is_Leaf_node"/> <result property = "subsystemid" column = "sub_system_id"/> <result property = "ishidden" column = "is_hidden"/> <sult ". column = "is_hidden"/> <result property = "subprivilegesresult" type = "lscrmfunctionprivilegeentity" extends = "lscrmfunctionprivilegeresult"> <collection property = "privieilegelist" javatype = "java.util.arraylist" column = "oftype =" lscrmphint. select = "selectSubpileges"> </collection> </resultMap> <resultMap id = "lscrmfunctionprivilegetReeresult" type = "lscrmfunctionprivilegetree" extends = "subprivilegesresult"> <!-<Association Property = "functionPrivilege" colundes = "javatype =" lscrmfunction "javatype =" lscrmfuntion "javatype =" ResultMap = "lscrmfunctionPrivilegeReSult"/>-> <collection property = "privieilegelist" javatype = "java.util.arraylist" column = "id" oftype = "lscrmfunctionprivilegeentity" select = "selectSubpileges"> </collection> </resultmap> <sql id = "tbl_name"> lscrm_function_privilege </sql> <sql id = "role_privilege_tbl_name"> lscrm_role_privilege </sql> <sql id = "select_sql"> select_de_id, update_id, create_time, update_time, vallides is_leaf_node, sub_system_id, is_hidden из <include refid = "tbl_name"/> </sql> <select id = "recarallpileges" resultmap = "lscrmfunctionPrivilegetReeresult" useCache = "true"> <включает RefID = "select_sql"/> где Parent_ID = 0 <ifsyd> "stubsted =" hickSteD = ". sub_system_id = #{subsystemid} </if> </select> <select id = "selectSubpileges" resultMap = "subprivilegegesresult"> <включить Refid = "select_sql"/> где parent_id = #{id} </select> </selet> пакет com.lianshang.crm. com.lianshang.crm.api.dto.lscrmfunctionprivilege; import com.lianshang.crm.biz.entity.lscrmfunctionPrivileEentity; импорт com.lianshang.crm.biz.entity.lscrmfunctionPrivileGetree; импорт org.Apache.annotations.param Lscrmfunctionprivilegedao {list <lscrmfunctionprivilegetree> reathallPrivileges (@param ("subsystemid") int subsystemid);}услуга
пакет com.lianshang.crm.biz.service.impl; import com.alibaba.fastjson.json; импорт com.google.common.base.function; импорт com.lianshang.common.utils.general.generalresult; imporm.lianshang.common.utils.general.guavautil; импорт. com.lianshang.crm.api.dto.lscrmfunctionprivilege; import com.lianshang.crm.api.service.lscrmfunctionPrivileGileGeservice; импорт com.lianshang.crm.biz.dao.lscrmfunctionPilegileGedao; импорт. com.lianshang.crm.biz.entity.lscrmfunctionprivilegetree; import org.springframework.beans.factory.annotation.autowired; импорт java.util.arraylist; import java.util.date; импорт java.util.list; import static com.google.common.collect.fluetrable. Lscrmfunctionprivilegeerserviceimpl реализует lscrmfunctionprivilegeervice {@autowiredprivate lscrmfunctionprivilegedao lscrmfunctionprivilegedao; @OverridePublic GeneralResult <string> readallPrivileges (int subsysemid) {List <LSCRMFunctionPrivilitePlieLege (int subsysemid) {liscrMfunctionPrivilitePlicteReleges (int subsysemid) {liscrMfunctionPrivilitePliclegeReleges (int subsysemid). LSCRMFunctionPrivilegedAo.ReadallAllPrivileges (subsystemid); вернуть новый GeneralResult <> (json.tojsonstring (PrivieilegetRees));}}Вернуть результат
[{«code»: «web.permission», «createId»: «sys», «createTime»: 1473232840000, «functionName»: «Управление разрешением», «скрытый»: 0, «id»: 1, «LeafNode»: 0, «ParentId»: 0, «Pristigelist»: [(«»: «web.permish». «Sys», «CreateTime»: 1473232872000, «functionName»: «Управление пользователями», «Hidden»: 0, «ID»: 2, «LeafNode»: 0, «ParentId»: 1, «Привилегия»: [{«Code»: «web.Permission.user-mgmt.add», «Create»: «create»: «sys»: «sys»: «sys»: «create»: «create»: «create»: «create»: «create»: «create»: 1473232936000, «functionName»: «новый пользователь», «Hidden»: 0, «id»: 3, «Leafnode»: 1, «ParentId»: 2, «Privielegelist»: [], «Подсистемный»: 1, «Обновление»: «SYS», «Обновление»: 14732295000, «1 -allody»: «1», «1», «1», «1», «1». "Web.permission.user-mgmt.modify", "createId": "sys", "createTime": 1473232997000, "functionName": «Модифицировать пользователь», «Hidden»: 0, «id»: 4, «LeafNode»: 1, «ParentId»: 2, «Priviegelististist»: [], «subsyStemid»: 1, «: 1,»: 1,: 1,: 1,: 1,: 1. «Sys», «UpdateTime»: 1473232997000, «Validity»: 1}], «Подсистема»: 1, «UpdateId»: «Sys», «UpdateTime»: 1473232900000, «Validity»: 1}], «subsystemid 1473232877000, "Достоверность": 1}] Выше приведен пример кода для реализации данных о структуре чтения Mybatis, введенных вам. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!