From 3b2722ff48d6ef6ae2fc93c7a3b919493c8ea872 Mon Sep 17 00:00:00 2001
From: whb <17803890193@163.com>
Date: Sun, 2 Jun 2024 09:37:47 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=95=B0=E5=AD=97=E5=BE=81?=
 =?UTF-8?q?=E4=BF=A1=E8=B7=AF=E7=94=B1=E7=9A=84=E6=B7=BB=E5=8A=A0=E5=92=8C?=
 =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../controller/StuCreditRouteController.java  |  52 +
 .../entity/BlockChildrenRoute.java            | 119 +++
 .../entity/BlockChildrenRouteExample.java     | 949 ++++++++++++++++++
 .../digital_credit/entity/BlockRoute.java     | 110 ++
 .../entity/BlockRouteExample.java             | 879 ++++++++++++++++
 .../entity/dto/AdminChildrenRouteDTO.java     |  27 +
 .../entity/dto/AdminMetaRouteDTO.java         |  21 +
 .../entity/dto/AdminRouteDTO.java             |  33 +
 .../mapper/BlockChildrenRouteMapper.java      |  30 +
 .../mapper/BlockRouteMapper.java              |  38 +
 .../service/StuCreditRouteService.java        |  33 +
 .../impl/StuCreditRouteServiceImpl.java       |  57 ++
 src/main/resources/application.yml            |   4 +-
 .../mappers/BlockChildrenRouteMapper.xml      | 306 ++++++
 .../resources/mappers/BlockRouteMapper.xml    | 374 +++++++
 15 files changed, 3030 insertions(+), 2 deletions(-)
 create mode 100644 src/main/java/com/sztzjy/digital_credit/controller/StuCreditRouteController.java
 create mode 100644 src/main/java/com/sztzjy/digital_credit/entity/BlockChildrenRoute.java
 create mode 100644 src/main/java/com/sztzjy/digital_credit/entity/BlockChildrenRouteExample.java
 create mode 100644 src/main/java/com/sztzjy/digital_credit/entity/BlockRoute.java
 create mode 100644 src/main/java/com/sztzjy/digital_credit/entity/BlockRouteExample.java
 create mode 100644 src/main/java/com/sztzjy/digital_credit/entity/dto/AdminChildrenRouteDTO.java
 create mode 100644 src/main/java/com/sztzjy/digital_credit/entity/dto/AdminMetaRouteDTO.java
 create mode 100644 src/main/java/com/sztzjy/digital_credit/entity/dto/AdminRouteDTO.java
 create mode 100644 src/main/java/com/sztzjy/digital_credit/mapper/BlockChildrenRouteMapper.java
 create mode 100644 src/main/java/com/sztzjy/digital_credit/mapper/BlockRouteMapper.java
 create mode 100644 src/main/java/com/sztzjy/digital_credit/service/StuCreditRouteService.java
 create mode 100644 src/main/java/com/sztzjy/digital_credit/service/impl/StuCreditRouteServiceImpl.java
 create mode 100644 src/main/resources/mappers/BlockChildrenRouteMapper.xml
 create mode 100644 src/main/resources/mappers/BlockRouteMapper.xml

diff --git a/src/main/java/com/sztzjy/digital_credit/controller/StuCreditRouteController.java b/src/main/java/com/sztzjy/digital_credit/controller/StuCreditRouteController.java
new file mode 100644
index 0000000..3656e3e
--- /dev/null
+++ b/src/main/java/com/sztzjy/digital_credit/controller/StuCreditRouteController.java
@@ -0,0 +1,52 @@
+package com.sztzjy.digital_credit.controller;
+
+import com.sztzjy.digital_credit.annotation.AnonymousAccess;
+import com.sztzjy.digital_credit.entity.dto.AdminRouteDTO;
+import com.sztzjy.digital_credit.service.StuCreditRouteService;
+import com.sztzjy.digital_credit.util.ResultEntity;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+
+@RestController
+@RequestMapping("api/stu/route")
+@Api(tags = "路由")
+public class StuCreditRouteController {
+
+
+    @Autowired
+    private StuCreditRouteService creditRouteService;
+
+
+    @PostMapping("/addRoute")
+    @AnonymousAccess
+    @ApiOperation("添加路由")
+    public ResultEntity addRoute(@RequestBody List<AdminRouteDTO> dtoList){
+        return  creditRouteService.addRoute(dtoList);
+
+    }
+
+
+    @GetMapping("/getRoute")
+    @AnonymousAccess
+    @ApiOperation("查询路由")
+    public ResultEntity<List<AdminRouteDTO>> getRoute(@ApiParam("1:学生端,2:教师端,3:超管端") String access){
+        List<AdminRouteDTO> route=creditRouteService.getRoute(access);
+        return new ResultEntity<>(HttpStatus.OK,"成功",route);
+    }
+
+    @PostMapping("/updateRoute")
+    @AnonymousAccess
+    @ApiOperation("更新路由")
+    public ResultEntity<List<AdminRouteDTO>> updateRoute(@RequestBody List<AdminRouteDTO> dtoList){
+        return  creditRouteService.updateRoute(dtoList);
+    }
+
+
+}
diff --git a/src/main/java/com/sztzjy/digital_credit/entity/BlockChildrenRoute.java b/src/main/java/com/sztzjy/digital_credit/entity/BlockChildrenRoute.java
new file mode 100644
index 0000000..10f6b01
--- /dev/null
+++ b/src/main/java/com/sztzjy/digital_credit/entity/BlockChildrenRoute.java
@@ -0,0 +1,119 @@
+package com.sztzjy.digital_credit.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+/**
+ *
+ * @author whb
+ * block_children_route
+ */
+public class BlockChildrenRoute {
+    private Integer id;
+
+    private String path;
+
+    private String name;
+
+    private String component;
+
+    private String title;
+
+    private String icon;
+
+    private String affix;
+
+    private Integer childId;
+
+    private String activemenu;
+
+    private String append;
+
+    private String hidden;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getPath() {
+        return path;
+    }
+
+    public void setPath(String path) {
+        this.path = path == null ? null : path.trim();
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name == null ? null : name.trim();
+    }
+
+    public String getComponent() {
+        return component;
+    }
+
+    public void setComponent(String component) {
+        this.component = component == null ? null : component.trim();
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title == null ? null : title.trim();
+    }
+
+    public String getIcon() {
+        return icon;
+    }
+
+    public void setIcon(String icon) {
+        this.icon = icon == null ? null : icon.trim();
+    }
+
+    public String getAffix() {
+        return affix;
+    }
+
+    public void setAffix(String affix) {
+        this.affix = affix == null ? null : affix.trim();
+    }
+
+    public Integer getChildId() {
+        return childId;
+    }
+
+    public void setChildId(Integer childId) {
+        this.childId = childId;
+    }
+
+    public String getActivemenu() {
+        return activemenu;
+    }
+
+    public void setActivemenu(String activemenu) {
+        this.activemenu = activemenu == null ? null : activemenu.trim();
+    }
+
+    public String getAppend() {
+        return append;
+    }
+
+    public void setAppend(String append) {
+        this.append = append == null ? null : append.trim();
+    }
+
+    public String getHidden() {
+        return hidden;
+    }
+
+    public void setHidden(String hidden) {
+        this.hidden = hidden == null ? null : hidden.trim();
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/sztzjy/digital_credit/entity/BlockChildrenRouteExample.java b/src/main/java/com/sztzjy/digital_credit/entity/BlockChildrenRouteExample.java
new file mode 100644
index 0000000..1ad3a5b
--- /dev/null
+++ b/src/main/java/com/sztzjy/digital_credit/entity/BlockChildrenRouteExample.java
@@ -0,0 +1,949 @@
+package com.sztzjy.digital_credit.entity;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class BlockChildrenRouteExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    public BlockChildrenRouteExample() {
+        oredCriteria = new ArrayList<>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(Integer value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(Integer value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(Integer value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(Integer value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(Integer value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<Integer> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<Integer> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(Integer value1, Integer value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(Integer value1, Integer value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathIsNull() {
+            addCriterion("path is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathIsNotNull() {
+            addCriterion("path is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathEqualTo(String value) {
+            addCriterion("path =", value, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathNotEqualTo(String value) {
+            addCriterion("path <>", value, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathGreaterThan(String value) {
+            addCriterion("path >", value, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathGreaterThanOrEqualTo(String value) {
+            addCriterion("path >=", value, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathLessThan(String value) {
+            addCriterion("path <", value, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathLessThanOrEqualTo(String value) {
+            addCriterion("path <=", value, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathLike(String value) {
+            addCriterion("path like", value, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathNotLike(String value) {
+            addCriterion("path not like", value, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathIn(List<String> values) {
+            addCriterion("path in", values, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathNotIn(List<String> values) {
+            addCriterion("path not in", values, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathBetween(String value1, String value2) {
+            addCriterion("path between", value1, value2, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathNotBetween(String value1, String value2) {
+            addCriterion("path not between", value1, value2, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameIsNull() {
+            addCriterion("name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameIsNotNull() {
+            addCriterion("name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameEqualTo(String value) {
+            addCriterion("name =", value, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameNotEqualTo(String value) {
+            addCriterion("name <>", value, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameGreaterThan(String value) {
+            addCriterion("name >", value, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameGreaterThanOrEqualTo(String value) {
+            addCriterion("name >=", value, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameLessThan(String value) {
+            addCriterion("name <", value, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameLessThanOrEqualTo(String value) {
+            addCriterion("name <=", value, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameLike(String value) {
+            addCriterion("name like", value, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameNotLike(String value) {
+            addCriterion("name not like", value, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameIn(List<String> values) {
+            addCriterion("name in", values, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameNotIn(List<String> values) {
+            addCriterion("name not in", values, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameBetween(String value1, String value2) {
+            addCriterion("name between", value1, value2, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameNotBetween(String value1, String value2) {
+            addCriterion("name not between", value1, value2, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentIsNull() {
+            addCriterion("component is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentIsNotNull() {
+            addCriterion("component is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentEqualTo(String value) {
+            addCriterion("component =", value, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentNotEqualTo(String value) {
+            addCriterion("component <>", value, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentGreaterThan(String value) {
+            addCriterion("component >", value, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentGreaterThanOrEqualTo(String value) {
+            addCriterion("component >=", value, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentLessThan(String value) {
+            addCriterion("component <", value, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentLessThanOrEqualTo(String value) {
+            addCriterion("component <=", value, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentLike(String value) {
+            addCriterion("component like", value, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentNotLike(String value) {
+            addCriterion("component not like", value, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentIn(List<String> values) {
+            addCriterion("component in", values, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentNotIn(List<String> values) {
+            addCriterion("component not in", values, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentBetween(String value1, String value2) {
+            addCriterion("component between", value1, value2, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentNotBetween(String value1, String value2) {
+            addCriterion("component not between", value1, value2, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleIsNull() {
+            addCriterion("title is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleIsNotNull() {
+            addCriterion("title is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleEqualTo(String value) {
+            addCriterion("title =", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleNotEqualTo(String value) {
+            addCriterion("title <>", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleGreaterThan(String value) {
+            addCriterion("title >", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleGreaterThanOrEqualTo(String value) {
+            addCriterion("title >=", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleLessThan(String value) {
+            addCriterion("title <", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleLessThanOrEqualTo(String value) {
+            addCriterion("title <=", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleLike(String value) {
+            addCriterion("title like", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleNotLike(String value) {
+            addCriterion("title not like", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleIn(List<String> values) {
+            addCriterion("title in", values, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleNotIn(List<String> values) {
+            addCriterion("title not in", values, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleBetween(String value1, String value2) {
+            addCriterion("title between", value1, value2, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleNotBetween(String value1, String value2) {
+            addCriterion("title not between", value1, value2, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconIsNull() {
+            addCriterion("icon is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconIsNotNull() {
+            addCriterion("icon is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconEqualTo(String value) {
+            addCriterion("icon =", value, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconNotEqualTo(String value) {
+            addCriterion("icon <>", value, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconGreaterThan(String value) {
+            addCriterion("icon >", value, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconGreaterThanOrEqualTo(String value) {
+            addCriterion("icon >=", value, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconLessThan(String value) {
+            addCriterion("icon <", value, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconLessThanOrEqualTo(String value) {
+            addCriterion("icon <=", value, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconLike(String value) {
+            addCriterion("icon like", value, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconNotLike(String value) {
+            addCriterion("icon not like", value, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconIn(List<String> values) {
+            addCriterion("icon in", values, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconNotIn(List<String> values) {
+            addCriterion("icon not in", values, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconBetween(String value1, String value2) {
+            addCriterion("icon between", value1, value2, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconNotBetween(String value1, String value2) {
+            addCriterion("icon not between", value1, value2, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixIsNull() {
+            addCriterion("affix is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixIsNotNull() {
+            addCriterion("affix is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixEqualTo(String value) {
+            addCriterion("affix =", value, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixNotEqualTo(String value) {
+            addCriterion("affix <>", value, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixGreaterThan(String value) {
+            addCriterion("affix >", value, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixGreaterThanOrEqualTo(String value) {
+            addCriterion("affix >=", value, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixLessThan(String value) {
+            addCriterion("affix <", value, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixLessThanOrEqualTo(String value) {
+            addCriterion("affix <=", value, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixLike(String value) {
+            addCriterion("affix like", value, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixNotLike(String value) {
+            addCriterion("affix not like", value, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixIn(List<String> values) {
+            addCriterion("affix in", values, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixNotIn(List<String> values) {
+            addCriterion("affix not in", values, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixBetween(String value1, String value2) {
+            addCriterion("affix between", value1, value2, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixNotBetween(String value1, String value2) {
+            addCriterion("affix not between", value1, value2, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdIsNull() {
+            addCriterion("child_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdIsNotNull() {
+            addCriterion("child_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdEqualTo(Integer value) {
+            addCriterion("child_id =", value, "childId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdNotEqualTo(Integer value) {
+            addCriterion("child_id <>", value, "childId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdGreaterThan(Integer value) {
+            addCriterion("child_id >", value, "childId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdGreaterThanOrEqualTo(Integer value) {
+            addCriterion("child_id >=", value, "childId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdLessThan(Integer value) {
+            addCriterion("child_id <", value, "childId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdLessThanOrEqualTo(Integer value) {
+            addCriterion("child_id <=", value, "childId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdIn(List<Integer> values) {
+            addCriterion("child_id in", values, "childId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdNotIn(List<Integer> values) {
+            addCriterion("child_id not in", values, "childId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdBetween(Integer value1, Integer value2) {
+            addCriterion("child_id between", value1, value2, "childId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdNotBetween(Integer value1, Integer value2) {
+            addCriterion("child_id not between", value1, value2, "childId");
+            return (Criteria) this;
+        }
+
+        public Criteria andActivemenuIsNull() {
+            addCriterion("activeMenu is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andActivemenuIsNotNull() {
+            addCriterion("activeMenu is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andActivemenuEqualTo(String value) {
+            addCriterion("activeMenu =", value, "activemenu");
+            return (Criteria) this;
+        }
+
+        public Criteria andActivemenuNotEqualTo(String value) {
+            addCriterion("activeMenu <>", value, "activemenu");
+            return (Criteria) this;
+        }
+
+        public Criteria andActivemenuGreaterThan(String value) {
+            addCriterion("activeMenu >", value, "activemenu");
+            return (Criteria) this;
+        }
+
+        public Criteria andActivemenuGreaterThanOrEqualTo(String value) {
+            addCriterion("activeMenu >=", value, "activemenu");
+            return (Criteria) this;
+        }
+
+        public Criteria andActivemenuLessThan(String value) {
+            addCriterion("activeMenu <", value, "activemenu");
+            return (Criteria) this;
+        }
+
+        public Criteria andActivemenuLessThanOrEqualTo(String value) {
+            addCriterion("activeMenu <=", value, "activemenu");
+            return (Criteria) this;
+        }
+
+        public Criteria andActivemenuLike(String value) {
+            addCriterion("activeMenu like", value, "activemenu");
+            return (Criteria) this;
+        }
+
+        public Criteria andActivemenuNotLike(String value) {
+            addCriterion("activeMenu not like", value, "activemenu");
+            return (Criteria) this;
+        }
+
+        public Criteria andActivemenuIn(List<String> values) {
+            addCriterion("activeMenu in", values, "activemenu");
+            return (Criteria) this;
+        }
+
+        public Criteria andActivemenuNotIn(List<String> values) {
+            addCriterion("activeMenu not in", values, "activemenu");
+            return (Criteria) this;
+        }
+
+        public Criteria andActivemenuBetween(String value1, String value2) {
+            addCriterion("activeMenu between", value1, value2, "activemenu");
+            return (Criteria) this;
+        }
+
+        public Criteria andActivemenuNotBetween(String value1, String value2) {
+            addCriterion("activeMenu not between", value1, value2, "activemenu");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppendIsNull() {
+            addCriterion("append is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppendIsNotNull() {
+            addCriterion("append is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppendEqualTo(String value) {
+            addCriterion("append =", value, "append");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppendNotEqualTo(String value) {
+            addCriterion("append <>", value, "append");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppendGreaterThan(String value) {
+            addCriterion("append >", value, "append");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppendGreaterThanOrEqualTo(String value) {
+            addCriterion("append >=", value, "append");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppendLessThan(String value) {
+            addCriterion("append <", value, "append");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppendLessThanOrEqualTo(String value) {
+            addCriterion("append <=", value, "append");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppendLike(String value) {
+            addCriterion("append like", value, "append");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppendNotLike(String value) {
+            addCriterion("append not like", value, "append");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppendIn(List<String> values) {
+            addCriterion("append in", values, "append");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppendNotIn(List<String> values) {
+            addCriterion("append not in", values, "append");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppendBetween(String value1, String value2) {
+            addCriterion("append between", value1, value2, "append");
+            return (Criteria) this;
+        }
+
+        public Criteria andAppendNotBetween(String value1, String value2) {
+            addCriterion("append not between", value1, value2, "append");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenIsNull() {
+            addCriterion("hidden is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenIsNotNull() {
+            addCriterion("hidden is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenEqualTo(String value) {
+            addCriterion("hidden =", value, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenNotEqualTo(String value) {
+            addCriterion("hidden <>", value, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenGreaterThan(String value) {
+            addCriterion("hidden >", value, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenGreaterThanOrEqualTo(String value) {
+            addCriterion("hidden >=", value, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenLessThan(String value) {
+            addCriterion("hidden <", value, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenLessThanOrEqualTo(String value) {
+            addCriterion("hidden <=", value, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenLike(String value) {
+            addCriterion("hidden like", value, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenNotLike(String value) {
+            addCriterion("hidden not like", value, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenIn(List<String> values) {
+            addCriterion("hidden in", values, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenNotIn(List<String> values) {
+            addCriterion("hidden not in", values, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenBetween(String value1, String value2) {
+            addCriterion("hidden between", value1, value2, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenNotBetween(String value1, String value2) {
+            addCriterion("hidden not between", value1, value2, "hidden");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/sztzjy/digital_credit/entity/BlockRoute.java b/src/main/java/com/sztzjy/digital_credit/entity/BlockRoute.java
new file mode 100644
index 0000000..362ef48
--- /dev/null
+++ b/src/main/java/com/sztzjy/digital_credit/entity/BlockRoute.java
@@ -0,0 +1,110 @@
+package com.sztzjy.digital_credit.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+/**
+ *
+ * @author whb
+ * block_route
+ */
+public class BlockRoute {
+    private Integer id;
+
+    private String path;
+
+    private String name;
+
+    private String hidden;
+
+    private String component;
+
+    private String title;
+
+    private String icon;
+
+    private String affix;
+
+    @ApiModelProperty("为每个模块对应数字")
+    private String access;
+
+    private Integer childId;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getPath() {
+        return path;
+    }
+
+    public void setPath(String path) {
+        this.path = path == null ? null : path.trim();
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name == null ? null : name.trim();
+    }
+
+    public String getHidden() {
+        return hidden;
+    }
+
+    public void setHidden(String hidden) {
+        this.hidden = hidden == null ? null : hidden.trim();
+    }
+
+    public String getComponent() {
+        return component;
+    }
+
+    public void setComponent(String component) {
+        this.component = component == null ? null : component.trim();
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title == null ? null : title.trim();
+    }
+
+    public String getIcon() {
+        return icon;
+    }
+
+    public void setIcon(String icon) {
+        this.icon = icon == null ? null : icon.trim();
+    }
+
+    public String getAffix() {
+        return affix;
+    }
+
+    public void setAffix(String affix) {
+        this.affix = affix == null ? null : affix.trim();
+    }
+
+    public String getAccess() {
+        return access;
+    }
+
+    public void setAccess(String access) {
+        this.access = access == null ? null : access.trim();
+    }
+
+    public Integer getChildId() {
+        return childId;
+    }
+
+    public void setChildId(Integer childId) {
+        this.childId = childId;
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/sztzjy/digital_credit/entity/BlockRouteExample.java b/src/main/java/com/sztzjy/digital_credit/entity/BlockRouteExample.java
new file mode 100644
index 0000000..c560ef7
--- /dev/null
+++ b/src/main/java/com/sztzjy/digital_credit/entity/BlockRouteExample.java
@@ -0,0 +1,879 @@
+package com.sztzjy.digital_credit.entity;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class BlockRouteExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    public BlockRouteExample() {
+        oredCriteria = new ArrayList<>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(Integer value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(Integer value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(Integer value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(Integer value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(Integer value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<Integer> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<Integer> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(Integer value1, Integer value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(Integer value1, Integer value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathIsNull() {
+            addCriterion("path is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathIsNotNull() {
+            addCriterion("path is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathEqualTo(String value) {
+            addCriterion("path =", value, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathNotEqualTo(String value) {
+            addCriterion("path <>", value, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathGreaterThan(String value) {
+            addCriterion("path >", value, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathGreaterThanOrEqualTo(String value) {
+            addCriterion("path >=", value, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathLessThan(String value) {
+            addCriterion("path <", value, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathLessThanOrEqualTo(String value) {
+            addCriterion("path <=", value, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathLike(String value) {
+            addCriterion("path like", value, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathNotLike(String value) {
+            addCriterion("path not like", value, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathIn(List<String> values) {
+            addCriterion("path in", values, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathNotIn(List<String> values) {
+            addCriterion("path not in", values, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathBetween(String value1, String value2) {
+            addCriterion("path between", value1, value2, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andPathNotBetween(String value1, String value2) {
+            addCriterion("path not between", value1, value2, "path");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameIsNull() {
+            addCriterion("name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameIsNotNull() {
+            addCriterion("name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameEqualTo(String value) {
+            addCriterion("name =", value, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameNotEqualTo(String value) {
+            addCriterion("name <>", value, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameGreaterThan(String value) {
+            addCriterion("name >", value, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameGreaterThanOrEqualTo(String value) {
+            addCriterion("name >=", value, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameLessThan(String value) {
+            addCriterion("name <", value, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameLessThanOrEqualTo(String value) {
+            addCriterion("name <=", value, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameLike(String value) {
+            addCriterion("name like", value, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameNotLike(String value) {
+            addCriterion("name not like", value, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameIn(List<String> values) {
+            addCriterion("name in", values, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameNotIn(List<String> values) {
+            addCriterion("name not in", values, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameBetween(String value1, String value2) {
+            addCriterion("name between", value1, value2, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andNameNotBetween(String value1, String value2) {
+            addCriterion("name not between", value1, value2, "name");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenIsNull() {
+            addCriterion("hidden is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenIsNotNull() {
+            addCriterion("hidden is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenEqualTo(String value) {
+            addCriterion("hidden =", value, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenNotEqualTo(String value) {
+            addCriterion("hidden <>", value, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenGreaterThan(String value) {
+            addCriterion("hidden >", value, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenGreaterThanOrEqualTo(String value) {
+            addCriterion("hidden >=", value, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenLessThan(String value) {
+            addCriterion("hidden <", value, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenLessThanOrEqualTo(String value) {
+            addCriterion("hidden <=", value, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenLike(String value) {
+            addCriterion("hidden like", value, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenNotLike(String value) {
+            addCriterion("hidden not like", value, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenIn(List<String> values) {
+            addCriterion("hidden in", values, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenNotIn(List<String> values) {
+            addCriterion("hidden not in", values, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenBetween(String value1, String value2) {
+            addCriterion("hidden between", value1, value2, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andHiddenNotBetween(String value1, String value2) {
+            addCriterion("hidden not between", value1, value2, "hidden");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentIsNull() {
+            addCriterion("component is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentIsNotNull() {
+            addCriterion("component is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentEqualTo(String value) {
+            addCriterion("component =", value, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentNotEqualTo(String value) {
+            addCriterion("component <>", value, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentGreaterThan(String value) {
+            addCriterion("component >", value, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentGreaterThanOrEqualTo(String value) {
+            addCriterion("component >=", value, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentLessThan(String value) {
+            addCriterion("component <", value, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentLessThanOrEqualTo(String value) {
+            addCriterion("component <=", value, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentLike(String value) {
+            addCriterion("component like", value, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentNotLike(String value) {
+            addCriterion("component not like", value, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentIn(List<String> values) {
+            addCriterion("component in", values, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentNotIn(List<String> values) {
+            addCriterion("component not in", values, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentBetween(String value1, String value2) {
+            addCriterion("component between", value1, value2, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andComponentNotBetween(String value1, String value2) {
+            addCriterion("component not between", value1, value2, "component");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleIsNull() {
+            addCriterion("title is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleIsNotNull() {
+            addCriterion("title is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleEqualTo(String value) {
+            addCriterion("title =", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleNotEqualTo(String value) {
+            addCriterion("title <>", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleGreaterThan(String value) {
+            addCriterion("title >", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleGreaterThanOrEqualTo(String value) {
+            addCriterion("title >=", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleLessThan(String value) {
+            addCriterion("title <", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleLessThanOrEqualTo(String value) {
+            addCriterion("title <=", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleLike(String value) {
+            addCriterion("title like", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleNotLike(String value) {
+            addCriterion("title not like", value, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleIn(List<String> values) {
+            addCriterion("title in", values, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleNotIn(List<String> values) {
+            addCriterion("title not in", values, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleBetween(String value1, String value2) {
+            addCriterion("title between", value1, value2, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andTitleNotBetween(String value1, String value2) {
+            addCriterion("title not between", value1, value2, "title");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconIsNull() {
+            addCriterion("icon is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconIsNotNull() {
+            addCriterion("icon is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconEqualTo(String value) {
+            addCriterion("icon =", value, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconNotEqualTo(String value) {
+            addCriterion("icon <>", value, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconGreaterThan(String value) {
+            addCriterion("icon >", value, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconGreaterThanOrEqualTo(String value) {
+            addCriterion("icon >=", value, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconLessThan(String value) {
+            addCriterion("icon <", value, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconLessThanOrEqualTo(String value) {
+            addCriterion("icon <=", value, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconLike(String value) {
+            addCriterion("icon like", value, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconNotLike(String value) {
+            addCriterion("icon not like", value, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconIn(List<String> values) {
+            addCriterion("icon in", values, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconNotIn(List<String> values) {
+            addCriterion("icon not in", values, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconBetween(String value1, String value2) {
+            addCriterion("icon between", value1, value2, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andIconNotBetween(String value1, String value2) {
+            addCriterion("icon not between", value1, value2, "icon");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixIsNull() {
+            addCriterion("affix is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixIsNotNull() {
+            addCriterion("affix is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixEqualTo(String value) {
+            addCriterion("affix =", value, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixNotEqualTo(String value) {
+            addCriterion("affix <>", value, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixGreaterThan(String value) {
+            addCriterion("affix >", value, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixGreaterThanOrEqualTo(String value) {
+            addCriterion("affix >=", value, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixLessThan(String value) {
+            addCriterion("affix <", value, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixLessThanOrEqualTo(String value) {
+            addCriterion("affix <=", value, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixLike(String value) {
+            addCriterion("affix like", value, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixNotLike(String value) {
+            addCriterion("affix not like", value, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixIn(List<String> values) {
+            addCriterion("affix in", values, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixNotIn(List<String> values) {
+            addCriterion("affix not in", values, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixBetween(String value1, String value2) {
+            addCriterion("affix between", value1, value2, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAffixNotBetween(String value1, String value2) {
+            addCriterion("affix not between", value1, value2, "affix");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccessIsNull() {
+            addCriterion("access is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccessIsNotNull() {
+            addCriterion("access is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccessEqualTo(String value) {
+            addCriterion("access =", value, "access");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccessNotEqualTo(String value) {
+            addCriterion("access <>", value, "access");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccessGreaterThan(String value) {
+            addCriterion("access >", value, "access");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccessGreaterThanOrEqualTo(String value) {
+            addCriterion("access >=", value, "access");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccessLessThan(String value) {
+            addCriterion("access <", value, "access");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccessLessThanOrEqualTo(String value) {
+            addCriterion("access <=", value, "access");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccessLike(String value) {
+            addCriterion("access like", value, "access");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccessNotLike(String value) {
+            addCriterion("access not like", value, "access");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccessIn(List<String> values) {
+            addCriterion("access in", values, "access");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccessNotIn(List<String> values) {
+            addCriterion("access not in", values, "access");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccessBetween(String value1, String value2) {
+            addCriterion("access between", value1, value2, "access");
+            return (Criteria) this;
+        }
+
+        public Criteria andAccessNotBetween(String value1, String value2) {
+            addCriterion("access not between", value1, value2, "access");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdIsNull() {
+            addCriterion("child_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdIsNotNull() {
+            addCriterion("child_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdEqualTo(Integer value) {
+            addCriterion("child_id =", value, "childId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdNotEqualTo(Integer value) {
+            addCriterion("child_id <>", value, "childId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdGreaterThan(Integer value) {
+            addCriterion("child_id >", value, "childId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdGreaterThanOrEqualTo(Integer value) {
+            addCriterion("child_id >=", value, "childId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdLessThan(Integer value) {
+            addCriterion("child_id <", value, "childId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdLessThanOrEqualTo(Integer value) {
+            addCriterion("child_id <=", value, "childId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdIn(List<Integer> values) {
+            addCriterion("child_id in", values, "childId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdNotIn(List<Integer> values) {
+            addCriterion("child_id not in", values, "childId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdBetween(Integer value1, Integer value2) {
+            addCriterion("child_id between", value1, value2, "childId");
+            return (Criteria) this;
+        }
+
+        public Criteria andChildIdNotBetween(Integer value1, Integer value2) {
+            addCriterion("child_id not between", value1, value2, "childId");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/sztzjy/digital_credit/entity/dto/AdminChildrenRouteDTO.java b/src/main/java/com/sztzjy/digital_credit/entity/dto/AdminChildrenRouteDTO.java
new file mode 100644
index 0000000..04c58dc
--- /dev/null
+++ b/src/main/java/com/sztzjy/digital_credit/entity/dto/AdminChildrenRouteDTO.java
@@ -0,0 +1,27 @@
+package com.sztzjy.digital_credit.entity.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author 17803
+ * @date 2023-10-24 9:46
+ */
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class AdminChildrenRouteDTO {
+
+    private String  path;
+    private String name;
+    private String hidden;
+    private String component;
+    private String childId;
+    //一个list
+    private AdminMetaRouteDTO meta;
+
+
+
+}
diff --git a/src/main/java/com/sztzjy/digital_credit/entity/dto/AdminMetaRouteDTO.java b/src/main/java/com/sztzjy/digital_credit/entity/dto/AdminMetaRouteDTO.java
new file mode 100644
index 0000000..35ef20b
--- /dev/null
+++ b/src/main/java/com/sztzjy/digital_credit/entity/dto/AdminMetaRouteDTO.java
@@ -0,0 +1,21 @@
+package com.sztzjy.digital_credit.entity.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author 17803
+ * @date 2023-10-24 9:43
+ */
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class AdminMetaRouteDTO {
+
+    private String title;
+    private String icon;
+    private String affix;
+    private String activeMenu;
+}
diff --git a/src/main/java/com/sztzjy/digital_credit/entity/dto/AdminRouteDTO.java b/src/main/java/com/sztzjy/digital_credit/entity/dto/AdminRouteDTO.java
new file mode 100644
index 0000000..5ad7e69
--- /dev/null
+++ b/src/main/java/com/sztzjy/digital_credit/entity/dto/AdminRouteDTO.java
@@ -0,0 +1,33 @@
+package com.sztzjy.digital_credit.entity.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @author 17803
+ * @date 2023-10-24 9:41
+ */
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class AdminRouteDTO {
+
+    private String path;
+    private String name;
+    private String hidden;
+    private String component;
+    private String access;
+    private String childId;
+    //一个list
+    private AdminMetaRouteDTO meta;
+    //多个list
+    private List<AdminChildrenRouteDTO> children;
+
+
+
+
+}
diff --git a/src/main/java/com/sztzjy/digital_credit/mapper/BlockChildrenRouteMapper.java b/src/main/java/com/sztzjy/digital_credit/mapper/BlockChildrenRouteMapper.java
new file mode 100644
index 0000000..9f3ee90
--- /dev/null
+++ b/src/main/java/com/sztzjy/digital_credit/mapper/BlockChildrenRouteMapper.java
@@ -0,0 +1,30 @@
+package com.sztzjy.digital_credit.mapper;
+
+import com.sztzjy.digital_credit.entity.BlockChildrenRoute;
+import com.sztzjy.digital_credit.entity.BlockChildrenRouteExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface BlockChildrenRouteMapper {
+    long countByExample(BlockChildrenRouteExample example);
+
+    int deleteByExample(BlockChildrenRouteExample example);
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(BlockChildrenRoute record);
+
+    int insertSelective(BlockChildrenRoute record);
+
+    List<BlockChildrenRoute> selectByExample(BlockChildrenRouteExample example);
+
+    BlockChildrenRoute selectByPrimaryKey(Integer id);
+
+    int updateByExampleSelective(@Param("record") BlockChildrenRoute record, @Param("example") BlockChildrenRouteExample example);
+
+    int updateByExample(@Param("record") BlockChildrenRoute record, @Param("example") BlockChildrenRouteExample example);
+
+    int updateByPrimaryKeySelective(BlockChildrenRoute record);
+
+    int updateByPrimaryKey(BlockChildrenRoute record);
+}
\ No newline at end of file
diff --git a/src/main/java/com/sztzjy/digital_credit/mapper/BlockRouteMapper.java b/src/main/java/com/sztzjy/digital_credit/mapper/BlockRouteMapper.java
new file mode 100644
index 0000000..07ffef2
--- /dev/null
+++ b/src/main/java/com/sztzjy/digital_credit/mapper/BlockRouteMapper.java
@@ -0,0 +1,38 @@
+package com.sztzjy.digital_credit.mapper;
+
+import com.sztzjy.digital_credit.entity.BlockRoute;
+import com.sztzjy.digital_credit.entity.BlockRouteExample;
+import java.util.List;
+
+import com.sztzjy.digital_credit.entity.dto.AdminRouteDTO;
+import org.apache.ibatis.annotations.Param;
+
+public interface BlockRouteMapper {
+    long countByExample(BlockRouteExample example);
+
+    int deleteByExample(BlockRouteExample example);
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(BlockRoute record);
+
+    int insertSelective(BlockRoute record);
+
+    List<BlockRoute> selectByExample(BlockRouteExample example);
+
+    BlockRoute selectByPrimaryKey(Integer id);
+
+    int updateByExampleSelective(@Param("record") BlockRoute record, @Param("example") BlockRouteExample example);
+
+    int updateByExample(@Param("record") BlockRoute record, @Param("example") BlockRouteExample example);
+
+    int updateByPrimaryKeySelective(BlockRoute record);
+
+    int updateByPrimaryKey(BlockRoute record);
+
+    List<AdminRouteDTO> getRoute(String access);
+
+    void batchInsertRoutes(List<AdminRouteDTO> dtoList);
+
+    void updateRoute(List<AdminRouteDTO> dtoList);
+}
\ No newline at end of file
diff --git a/src/main/java/com/sztzjy/digital_credit/service/StuCreditRouteService.java b/src/main/java/com/sztzjy/digital_credit/service/StuCreditRouteService.java
new file mode 100644
index 0000000..f313c61
--- /dev/null
+++ b/src/main/java/com/sztzjy/digital_credit/service/StuCreditRouteService.java
@@ -0,0 +1,33 @@
+package com.sztzjy.digital_credit.service;
+
+import com.sztzjy.digital_credit.entity.dto.AdminRouteDTO;
+import com.sztzjy.digital_credit.util.ResultEntity;
+
+import java.util.List;
+
+/**
+ * @author 17803
+ * @date 2024-05-31 17:29
+ */
+
+
+public interface StuCreditRouteService {
+    List<AdminRouteDTO> getRoute(String access);
+
+
+    /**
+        * 添加路由
+        * @param dtoList
+        * @return
+    */
+
+    ResultEntity addRoute(List<AdminRouteDTO> dtoList);
+
+    /**
+        * 更新路由
+        * @param access
+        * @return
+    */
+
+    ResultEntity<List<AdminRouteDTO>> updateRoute(List<AdminRouteDTO> dtoList);
+}
diff --git a/src/main/java/com/sztzjy/digital_credit/service/impl/StuCreditRouteServiceImpl.java b/src/main/java/com/sztzjy/digital_credit/service/impl/StuCreditRouteServiceImpl.java
new file mode 100644
index 0000000..a50db6e
--- /dev/null
+++ b/src/main/java/com/sztzjy/digital_credit/service/impl/StuCreditRouteServiceImpl.java
@@ -0,0 +1,57 @@
+package com.sztzjy.digital_credit.service.impl;/**
+ * @author 17803
+ * @date 2024-05-31 17:30
+ */
+
+import com.sztzjy.digital_credit.entity.dto.AdminRouteDTO;
+import com.sztzjy.digital_credit.mapper.BlockRouteMapper;
+import com.sztzjy.digital_credit.service.StuCreditRouteService;
+import com.sztzjy.digital_credit.util.ResultEntity;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class StuCreditRouteServiceImpl implements StuCreditRouteService {
+    @Resource
+    private BlockRouteMapper blockRouteMapper;
+
+
+    @Override
+    public List<AdminRouteDTO> getRoute(String access) {
+        List<AdminRouteDTO> adminRoute =   blockRouteMapper.getRoute(access);
+
+        return adminRoute;
+    }
+
+    /**
+        * 添加路由
+        * @param dtoList
+        * @return
+    */
+
+    @Override
+    public ResultEntity addRoute(List<AdminRouteDTO> dtoList) {
+
+        blockRouteMapper.batchInsertRoutes(dtoList);
+
+        return new ResultEntity<>(HttpStatus.OK,"添加成功!");
+    }
+
+    /**
+        * 更新路由
+        * @param dtoList
+        * @return
+    */
+
+    @Override
+    public ResultEntity<List<AdminRouteDTO>> updateRoute(List<AdminRouteDTO> dtoList) {
+
+        blockRouteMapper.updateRoute(dtoList);
+
+
+        return new ResultEntity<>(HttpStatus.OK,"更新成功!");
+    }
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 3f7065a..a5fc554 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -7,7 +7,7 @@ server:
     relaxedQueryChars: <,>, [,],^,`,{,|,}
 spring:
   application:
-    name: block_finance
+    name: digital_credit
   profiles:
     active: dev
   servlet:
@@ -72,7 +72,7 @@ spring:
 
 
 mybatis:
-  type-aliases-package: com.sztzjy.block_finance.entity
+  type-aliases-package: com.sztzjy.digital_credit.entity
   mapper-locations: classpath*:/mappers/*.xml
 
 
diff --git a/src/main/resources/mappers/BlockChildrenRouteMapper.xml b/src/main/resources/mappers/BlockChildrenRouteMapper.xml
new file mode 100644
index 0000000..1754a91
--- /dev/null
+++ b/src/main/resources/mappers/BlockChildrenRouteMapper.xml
@@ -0,0 +1,306 @@
+<?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.sztzjy.digital_credit.mapper.BlockChildrenRouteMapper">
+  <resultMap id="BaseResultMap" type="com.sztzjy.digital_credit.entity.BlockChildrenRoute">
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="path" jdbcType="VARCHAR" property="path" />
+    <result column="name" jdbcType="VARCHAR" property="name" />
+    <result column="component" jdbcType="VARCHAR" property="component" />
+    <result column="title" jdbcType="VARCHAR" property="title" />
+    <result column="icon" jdbcType="VARCHAR" property="icon" />
+    <result column="affix" jdbcType="VARCHAR" property="affix" />
+    <result column="child_id" jdbcType="INTEGER" property="childId" />
+    <result column="activeMenu" jdbcType="VARCHAR" property="activemenu" />
+    <result column="append" jdbcType="VARCHAR" property="append" />
+    <result column="hidden" jdbcType="VARCHAR" property="hidden" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    id, path, name, component, title, icon, affix, child_id, activeMenu, append, hidden
+  </sql>
+  <select id="selectByExample" parameterType="com.sztzjy.digital_credit.entity.BlockChildrenRouteExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from block_children_route
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from block_children_route
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    delete from block_children_route
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.sztzjy.digital_credit.entity.BlockChildrenRouteExample">
+    delete from block_children_route
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.sztzjy.digital_credit.entity.BlockChildrenRoute">
+    insert into block_children_route (id, path, name, 
+      component, title, icon, 
+      affix, child_id, activeMenu, 
+      append, hidden)
+    values (#{id,jdbcType=INTEGER}, #{path,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, 
+      #{component,jdbcType=VARCHAR}, #{title,jdbcType=VARCHAR}, #{icon,jdbcType=VARCHAR}, 
+      #{affix,jdbcType=VARCHAR}, #{childId,jdbcType=INTEGER}, #{activemenu,jdbcType=VARCHAR}, 
+      #{append,jdbcType=VARCHAR}, #{hidden,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.sztzjy.digital_credit.entity.BlockChildrenRoute">
+    insert into block_children_route
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="path != null">
+        path,
+      </if>
+      <if test="name != null">
+        name,
+      </if>
+      <if test="component != null">
+        component,
+      </if>
+      <if test="title != null">
+        title,
+      </if>
+      <if test="icon != null">
+        icon,
+      </if>
+      <if test="affix != null">
+        affix,
+      </if>
+      <if test="childId != null">
+        child_id,
+      </if>
+      <if test="activemenu != null">
+        activeMenu,
+      </if>
+      <if test="append != null">
+        append,
+      </if>
+      <if test="hidden != null">
+        hidden,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=INTEGER},
+      </if>
+      <if test="path != null">
+        #{path,jdbcType=VARCHAR},
+      </if>
+      <if test="name != null">
+        #{name,jdbcType=VARCHAR},
+      </if>
+      <if test="component != null">
+        #{component,jdbcType=VARCHAR},
+      </if>
+      <if test="title != null">
+        #{title,jdbcType=VARCHAR},
+      </if>
+      <if test="icon != null">
+        #{icon,jdbcType=VARCHAR},
+      </if>
+      <if test="affix != null">
+        #{affix,jdbcType=VARCHAR},
+      </if>
+      <if test="childId != null">
+        #{childId,jdbcType=INTEGER},
+      </if>
+      <if test="activemenu != null">
+        #{activemenu,jdbcType=VARCHAR},
+      </if>
+      <if test="append != null">
+        #{append,jdbcType=VARCHAR},
+      </if>
+      <if test="hidden != null">
+        #{hidden,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.sztzjy.digital_credit.entity.BlockChildrenRouteExample" resultType="java.lang.Long">
+    select count(*) from block_children_route
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update block_children_route
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=INTEGER},
+      </if>
+      <if test="record.path != null">
+        path = #{record.path,jdbcType=VARCHAR},
+      </if>
+      <if test="record.name != null">
+        name = #{record.name,jdbcType=VARCHAR},
+      </if>
+      <if test="record.component != null">
+        component = #{record.component,jdbcType=VARCHAR},
+      </if>
+      <if test="record.title != null">
+        title = #{record.title,jdbcType=VARCHAR},
+      </if>
+      <if test="record.icon != null">
+        icon = #{record.icon,jdbcType=VARCHAR},
+      </if>
+      <if test="record.affix != null">
+        affix = #{record.affix,jdbcType=VARCHAR},
+      </if>
+      <if test="record.childId != null">
+        child_id = #{record.childId,jdbcType=INTEGER},
+      </if>
+      <if test="record.activemenu != null">
+        activeMenu = #{record.activemenu,jdbcType=VARCHAR},
+      </if>
+      <if test="record.append != null">
+        append = #{record.append,jdbcType=VARCHAR},
+      </if>
+      <if test="record.hidden != null">
+        hidden = #{record.hidden,jdbcType=VARCHAR},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update block_children_route
+    set id = #{record.id,jdbcType=INTEGER},
+      path = #{record.path,jdbcType=VARCHAR},
+      name = #{record.name,jdbcType=VARCHAR},
+      component = #{record.component,jdbcType=VARCHAR},
+      title = #{record.title,jdbcType=VARCHAR},
+      icon = #{record.icon,jdbcType=VARCHAR},
+      affix = #{record.affix,jdbcType=VARCHAR},
+      child_id = #{record.childId,jdbcType=INTEGER},
+      activeMenu = #{record.activemenu,jdbcType=VARCHAR},
+      append = #{record.append,jdbcType=VARCHAR},
+      hidden = #{record.hidden,jdbcType=VARCHAR}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.sztzjy.digital_credit.entity.BlockChildrenRoute">
+    update block_children_route
+    <set>
+      <if test="path != null">
+        path = #{path,jdbcType=VARCHAR},
+      </if>
+      <if test="name != null">
+        name = #{name,jdbcType=VARCHAR},
+      </if>
+      <if test="component != null">
+        component = #{component,jdbcType=VARCHAR},
+      </if>
+      <if test="title != null">
+        title = #{title,jdbcType=VARCHAR},
+      </if>
+      <if test="icon != null">
+        icon = #{icon,jdbcType=VARCHAR},
+      </if>
+      <if test="affix != null">
+        affix = #{affix,jdbcType=VARCHAR},
+      </if>
+      <if test="childId != null">
+        child_id = #{childId,jdbcType=INTEGER},
+      </if>
+      <if test="activemenu != null">
+        activeMenu = #{activemenu,jdbcType=VARCHAR},
+      </if>
+      <if test="append != null">
+        append = #{append,jdbcType=VARCHAR},
+      </if>
+      <if test="hidden != null">
+        hidden = #{hidden,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.sztzjy.digital_credit.entity.BlockChildrenRoute">
+    update block_children_route
+    set path = #{path,jdbcType=VARCHAR},
+      name = #{name,jdbcType=VARCHAR},
+      component = #{component,jdbcType=VARCHAR},
+      title = #{title,jdbcType=VARCHAR},
+      icon = #{icon,jdbcType=VARCHAR},
+      affix = #{affix,jdbcType=VARCHAR},
+      child_id = #{childId,jdbcType=INTEGER},
+      activeMenu = #{activemenu,jdbcType=VARCHAR},
+      append = #{append,jdbcType=VARCHAR},
+      hidden = #{hidden,jdbcType=VARCHAR}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mappers/BlockRouteMapper.xml b/src/main/resources/mappers/BlockRouteMapper.xml
new file mode 100644
index 0000000..b35cb4d
--- /dev/null
+++ b/src/main/resources/mappers/BlockRouteMapper.xml
@@ -0,0 +1,374 @@
+<?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.sztzjy.digital_credit.mapper.BlockRouteMapper">
+  <resultMap id="BaseResultMap" type="com.sztzjy.digital_credit.entity.BlockRoute">
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="path" jdbcType="VARCHAR" property="path" />
+    <result column="name" jdbcType="VARCHAR" property="name" />
+    <result column="hidden" jdbcType="VARCHAR" property="hidden" />
+    <result column="component" jdbcType="VARCHAR" property="component" />
+    <result column="title" jdbcType="VARCHAR" property="title" />
+    <result column="icon" jdbcType="VARCHAR" property="icon" />
+    <result column="affix" jdbcType="VARCHAR" property="affix" />
+    <result column="access" jdbcType="VARCHAR" property="access" />
+    <result column="child_id" jdbcType="INTEGER" property="childId" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    id, path, name, hidden, component, title, icon, affix, access, child_id
+  </sql>
+  <select id="selectByExample" parameterType="com.sztzjy.digital_credit.entity.BlockRouteExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from block_route
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from block_route
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    delete from block_route
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.sztzjy.digital_credit.entity.BlockRouteExample">
+    delete from block_route
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.sztzjy.digital_credit.entity.BlockRoute">
+    insert into block_route (id, path, name, 
+      hidden, component, title, 
+      icon, affix, access, 
+      child_id)
+    values (#{id,jdbcType=INTEGER}, #{path,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, 
+      #{hidden,jdbcType=VARCHAR}, #{component,jdbcType=VARCHAR}, #{title,jdbcType=VARCHAR}, 
+      #{icon,jdbcType=VARCHAR}, #{affix,jdbcType=VARCHAR}, #{access,jdbcType=VARCHAR}, 
+      #{childId,jdbcType=INTEGER})
+  </insert>
+  <insert id="insertSelective" parameterType="com.sztzjy.digital_credit.entity.BlockRoute">
+    insert into block_route
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="path != null">
+        path,
+      </if>
+      <if test="name != null">
+        name,
+      </if>
+      <if test="hidden != null">
+        hidden,
+      </if>
+      <if test="component != null">
+        component,
+      </if>
+      <if test="title != null">
+        title,
+      </if>
+      <if test="icon != null">
+        icon,
+      </if>
+      <if test="affix != null">
+        affix,
+      </if>
+      <if test="access != null">
+        access,
+      </if>
+      <if test="childId != null">
+        child_id,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=INTEGER},
+      </if>
+      <if test="path != null">
+        #{path,jdbcType=VARCHAR},
+      </if>
+      <if test="name != null">
+        #{name,jdbcType=VARCHAR},
+      </if>
+      <if test="hidden != null">
+        #{hidden,jdbcType=VARCHAR},
+      </if>
+      <if test="component != null">
+        #{component,jdbcType=VARCHAR},
+      </if>
+      <if test="title != null">
+        #{title,jdbcType=VARCHAR},
+      </if>
+      <if test="icon != null">
+        #{icon,jdbcType=VARCHAR},
+      </if>
+      <if test="affix != null">
+        #{affix,jdbcType=VARCHAR},
+      </if>
+      <if test="access != null">
+        #{access,jdbcType=VARCHAR},
+      </if>
+      <if test="childId != null">
+        #{childId,jdbcType=INTEGER},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.sztzjy.digital_credit.entity.BlockRouteExample" resultType="java.lang.Long">
+    select count(*) from block_route
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update block_route
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=INTEGER},
+      </if>
+      <if test="record.path != null">
+        path = #{record.path,jdbcType=VARCHAR},
+      </if>
+      <if test="record.name != null">
+        name = #{record.name,jdbcType=VARCHAR},
+      </if>
+      <if test="record.hidden != null">
+        hidden = #{record.hidden,jdbcType=VARCHAR},
+      </if>
+      <if test="record.component != null">
+        component = #{record.component,jdbcType=VARCHAR},
+      </if>
+      <if test="record.title != null">
+        title = #{record.title,jdbcType=VARCHAR},
+      </if>
+      <if test="record.icon != null">
+        icon = #{record.icon,jdbcType=VARCHAR},
+      </if>
+      <if test="record.affix != null">
+        affix = #{record.affix,jdbcType=VARCHAR},
+      </if>
+      <if test="record.access != null">
+        access = #{record.access,jdbcType=VARCHAR},
+      </if>
+      <if test="record.childId != null">
+        child_id = #{record.childId,jdbcType=INTEGER},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update block_route
+    set id = #{record.id,jdbcType=INTEGER},
+      path = #{record.path,jdbcType=VARCHAR},
+      name = #{record.name,jdbcType=VARCHAR},
+      hidden = #{record.hidden,jdbcType=VARCHAR},
+      component = #{record.component,jdbcType=VARCHAR},
+      title = #{record.title,jdbcType=VARCHAR},
+      icon = #{record.icon,jdbcType=VARCHAR},
+      affix = #{record.affix,jdbcType=VARCHAR},
+      access = #{record.access,jdbcType=VARCHAR},
+      child_id = #{record.childId,jdbcType=INTEGER}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.sztzjy.digital_credit.entity.BlockRoute">
+    update block_route
+    <set>
+      <if test="path != null">
+        path = #{path,jdbcType=VARCHAR},
+      </if>
+      <if test="name != null">
+        name = #{name,jdbcType=VARCHAR},
+      </if>
+      <if test="hidden != null">
+        hidden = #{hidden,jdbcType=VARCHAR},
+      </if>
+      <if test="component != null">
+        component = #{component,jdbcType=VARCHAR},
+      </if>
+      <if test="title != null">
+        title = #{title,jdbcType=VARCHAR},
+      </if>
+      <if test="icon != null">
+        icon = #{icon,jdbcType=VARCHAR},
+      </if>
+      <if test="affix != null">
+        affix = #{affix,jdbcType=VARCHAR},
+      </if>
+      <if test="access != null">
+        access = #{access,jdbcType=VARCHAR},
+      </if>
+      <if test="childId != null">
+        child_id = #{childId,jdbcType=INTEGER},
+      </if>
+    </set>
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.sztzjy.digital_credit.entity.BlockRoute">
+    update block_route
+    set path = #{path,jdbcType=VARCHAR},
+      name = #{name,jdbcType=VARCHAR},
+      hidden = #{hidden,jdbcType=VARCHAR},
+      component = #{component,jdbcType=VARCHAR},
+      title = #{title,jdbcType=VARCHAR},
+      icon = #{icon,jdbcType=VARCHAR},
+      affix = #{affix,jdbcType=VARCHAR},
+      access = #{access,jdbcType=VARCHAR},
+      child_id = #{childId,jdbcType=INTEGER}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+
+  <resultMap id="AdminBlockRoute" type="com.sztzjy.digital_credit.entity.dto.AdminRouteDTO">
+    <result column="onepath" jdbcType="VARCHAR" property="path" />
+    <result column="onename" jdbcType="VARCHAR" property="name" />
+    <result column="onehidden" jdbcType="VARCHAR" property="hidden" />
+    <result column="onecomponent" jdbcType="VARCHAR" property="component" />
+    <association javaType="com.sztzjy.digital_credit.entity.dto.AdminMetaRouteDTO" property="meta">
+      <result column="onetitle" jdbcType="VARCHAR" property="title" />
+      <result column="oneicon" jdbcType="VARCHAR" property="icon" />
+      <result column="oneaffix" jdbcType="VARCHAR" property="affix" />
+    </association>
+    <collection javaType="list" ofType="com.sztzjy.digital_credit.entity.dto.AdminChildrenRouteDTO" property="children">
+      <result column="twopath" property="path" />
+      <result column="twoName" property="name" />
+      <result column="twoComponent" property="component" />
+      <result column="twoHidden" property="hidden" />
+      <association javaType="com.sztzjy.digital_credit.entity.dto.AdminMetaRouteDTO" property="meta">
+        <id column="twoTitle" property="title" />
+        <result column="twoIcon" property="icon" />
+        <result column="twoAffix" property="affix" />
+        <result column="twoActivemenu" property="activeMenu" />
+      </association>
+    </collection>
+  </resultMap>
+
+
+  <select id="getRoute" resultMap="AdminBlockRoute">
+    SELECT route.path as onepath ,route.name as onename ,route.hidden as onehidden,route.component as onecomponent,
+           route.title as onetitle,route.icon as oneicon,route.affix as oneaffix,
+           child.path as twoPath,child.name as twoName,child.component as twoComponent, child.hidden as twoHidden ,child.title as twoTitle,
+           child.icon as twoIcon, child.affix as twoAffix,child.activemenu as twoActivemenu
+    FROM  `block_route` route
+            LEFT JOIN `block_children_route` child ON route.child_id = child.child_id
+    WHERE route.access = #{access}
+  </select>
+
+
+  <insert id="batchInsertRoutes" parameterType="java.util.List">
+    <foreach collection="list" item="item" separator=";">
+      <!-- 插入 block_route -->
+      INSERT INTO `block_route` ( path, name,hidden, component, title,icon, affix, access,child_id)
+      VALUES (#{item.path}, #{item.name}, #{item.hidden}, #{item.component}, #{item.meta.title}, #{item.meta.icon}, #{item.meta.affix}, #{item.access},#{item.childId});
+
+      <!-- 插入 block_children_route -->
+      <foreach collection="item.children" item="child" separator=";">
+        INSERT INTO `block_children_route` (path, name, hidden, component, title, icon, affix, activemenu,child_id)
+        VALUES (#{child.path}, #{child.name}, #{child.hidden}, #{child.component}, #{child.meta.title}, #{child.meta.icon}, #{child.meta.affix}, #{child.meta.activeMenu},#{child.childId});
+      </foreach>
+    </foreach>
+  </insert>
+
+  <update id="updateRoute" parameterType="java.util.List">
+    <foreach collection="list" item="item" separator=";">
+      <!-- 更新 block_route -->
+      UPDATE `block_route`
+      SET path = #{item.path},
+      name = #{item.name},
+      hidden = #{item.hidden},
+      component = #{item.component},
+      title = #{item.meta.title},
+      icon = #{item.meta.icon},
+      affix = #{item.meta.affix},
+      child_id = #{item.childId}
+      WHERE access = #{item.access};
+
+      <!-- 更新 block_children_route -->
+      <foreach collection="item.children" item="child" separator=";">
+        UPDATE `block_children_route`
+        SET path = #{child.path},
+        name = #{child.name},
+        hidden = #{child.hidden},
+        component = #{child.component},
+        title = #{child.meta.title},
+        icon = #{child.meta.icon},
+        affix = #{child.meta.affix},
+        activemenu = #{child.meta.activeMenu}
+        WHERE child_id = #{child.childId};
+      </foreach>
+    </foreach>
+
+  </update>
+
+
+
+</mapper>
\ No newline at end of file