From 9cb9637f10c527da0a60f778323b5dd14314bcef Mon Sep 17 00:00:00 2001
From: wzy <wzy19931122ai@163.com>
Date: Wed, 15 Dec 2021 23:17:07 +0800
Subject: [PATCH] fix video add no complete

---
 src/main/java/cc/mrbird/febs/video/entity/VideoMasterInfoEntity.java    |    6 
 src/main/java/cc/mrbird/febs/video/controller/AdminVideoController.java |    7 +
 src/main/resources/templates/febs/views/video/video/video-list.html     |    2 
 xc-video.iml                                                            |  172 ++++++++++++++++++++++++
 src/main/resources/templates/febs/views/video/video/video-add.html      |  192 ++++++++++++++++++--------
 src/main/java/cc/mrbird/febs/video/entity/VideoMasterItemsEntity.java   |    2 
 src/main/resources/static/febs/index.js                                 |    1 
 7 files changed, 320 insertions(+), 62 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/video/controller/AdminVideoController.java b/src/main/java/cc/mrbird/febs/video/controller/AdminVideoController.java
index bd03c9f..0803bcc 100644
--- a/src/main/java/cc/mrbird/febs/video/controller/AdminVideoController.java
+++ b/src/main/java/cc/mrbird/febs/video/controller/AdminVideoController.java
@@ -113,6 +113,13 @@
     @RequiresPermissions("source:view")
     @ControllerEndpoint(operation = "视频列表", exceptionMessage = "获取视频列表失败")
     public FebsResponse videoList(VideoMasterInfoEntity info, QueryRequest request) {
+        return new FebsResponse().success();
+    }
+
+    @PostMapping("/video/add")
+    @RequiresPermissions("source:add")
+    public FebsResponse videoAdd(@RequestBody VideoMasterInfoEntity info) {
+        System.out.println(info);
         return null;
     }
 
diff --git a/src/main/java/cc/mrbird/febs/video/entity/VideoMasterInfoEntity.java b/src/main/java/cc/mrbird/febs/video/entity/VideoMasterInfoEntity.java
index 940bf0f..56967ba 100644
--- a/src/main/java/cc/mrbird/febs/video/entity/VideoMasterInfoEntity.java
+++ b/src/main/java/cc/mrbird/febs/video/entity/VideoMasterInfoEntity.java
@@ -1,8 +1,11 @@
 package cc.mrbird.febs.video.entity;
 
 import cc.mrbird.febs.common.entity.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
+
+import java.util.List;
 
 @Data
 @TableName("video_master_info")
@@ -25,4 +28,7 @@
      * 是否免费 1/免费 2/会员
      */
     private Integer isFree;
+
+    @TableField(exist = false)
+    private List<VideoMasterItemsEntity> items;
 }
diff --git a/src/main/java/cc/mrbird/febs/video/entity/VideoMasterItemsEntity.java b/src/main/java/cc/mrbird/febs/video/entity/VideoMasterItemsEntity.java
index b25ed12..0f9b838 100644
--- a/src/main/java/cc/mrbird/febs/video/entity/VideoMasterItemsEntity.java
+++ b/src/main/java/cc/mrbird/febs/video/entity/VideoMasterItemsEntity.java
@@ -21,4 +21,6 @@
     private String videoUrl;
 
     private String seq;
+
+    private Long sourceId;
 }
diff --git a/src/main/resources/static/febs/index.js b/src/main/resources/static/febs/index.js
index cf90796..751364f 100644
--- a/src/main/resources/static/febs/index.js
+++ b/src/main/resources/static/febs/index.js
@@ -3,6 +3,5 @@
     validate: 'lay/modules/validate'
 }).define(['febs', 'conf'], function (exports) {
     layui.febs.initPage();
-    console.log("\n %c FEBS-Shiro 2.0 %c https://github.com/wuyouzhuguli/FEBS-Shiro %c 如果该项目对您有帮助的话,还请点个star给予精神支持!🐤", "color: #fff; font-size: .84rem;background: #366ed8; padding:5px 0;", "font-size: .84rem;background: #fff; border: 2px solid #b0e0a8;border-left: none; padding:3px 0;"," font-size: .84rem;background: #fcf9ec; padding:5px 0;margin-left: 8px");
     exports('index', {});
 });
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/video/video/video-add.html b/src/main/resources/templates/febs/views/video/video/video-add.html
index 573dae2..fd8ad51 100644
--- a/src/main/resources/templates/febs/views/video/video/video-add.html
+++ b/src/main/resources/templates/febs/views/video/video/video-add.html
@@ -24,7 +24,7 @@
             <div class="layui-col-md6">
                 <label class="layui-form-label febs-form-item-require">视频标题:</label>
                 <div class="layui-input-block">
-                    <input type="text" name="username" minlength="2" maxlength="10" lay-verify="range|username"
+                    <input type="text" name="title" minlength="2" maxlength="10" lay-verify="range"
                            autocomplete="off" class="layui-input">
                 </div>
             </div>
@@ -72,44 +72,44 @@
                         </tr>
                     </thead>
                     <tbody id="itemList">
-                    <tr>
-                        <th>
-                            1
-                        </th>
-                        <th>
-                            <input type="text" class="layui-input" placeholder="" />
-                        </th>
-                        <th>
-                            <div class="upload">
-                                <img class="layui-upload-img item-img febs-hide" style="width: 150px;"/>
-                                <button class="layui-btn layui-btn-xs"  type="button">点击上传</button>
-                                <input type="text" class="febs-hide" name="itemThumb" />
-                            </div>
-                        </th>
-                        <th>123</th>
-                        <th>
-                            <button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>
-                        </th>
-                    </tr>
-                    <tr>
-                        <th>
-                            2
-                        </th>
-                        <th>
-                            <input type="text" class="layui-input" placeholder="" />
-                        </th>
-                        <th>
-                            <div class="upload">
-                                <img class="layui-upload-img item-img" src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg.jj20.com%2Fup%2Fallimg%2Ftp05%2F19100120461512E-0-lp.jpg&refer=http%3A%2F%2Fimg.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg" style="width: 150px;"/>
-                                <button class="layui-btn layui-btn-xs febs-hide" type="button">点击上传</button>
-                                <input type="text" class="febs-hide" name="itemThumb" />
-                            </div>
-                        </th>
-                        <th>123</th>
-                        <th>
-                            <button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>
-                        </th>
-                    </tr>
+<!--                    <tr>-->
+<!--                        <th>-->
+<!--                            1-->
+<!--                        </th>-->
+<!--                        <th>-->
+<!--                            <input type="text" class="layui-input" placeholder="" />-->
+<!--                        </th>-->
+<!--                        <th>-->
+<!--                            <div class="upload">-->
+<!--                                <img class="layui-upload-img item-img febs-hide" style="width: 150px;"/>-->
+<!--                                <button class="layui-btn layui-btn-xs"  type="button">点击上传</button>-->
+<!--                                <input type="text" class="febs-hide" name="itemThumb" />-->
+<!--                            </div>-->
+<!--                        </th>-->
+<!--                        <th>123</th>-->
+<!--                        <th>-->
+<!--                            <button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>-->
+<!--                        </th>-->
+<!--                    </tr>-->
+<!--                    <tr>-->
+<!--                        <th>-->
+<!--                            2-->
+<!--                        </th>-->
+<!--                        <th>-->
+<!--                            <input type="text" class="layui-input" placeholder="" />-->
+<!--                        </th>-->
+<!--                        <th>-->
+<!--                            <div class="upload">-->
+<!--                                <img class="layui-upload-img item-img" src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg.jj20.com%2Fup%2Fallimg%2Ftp05%2F19100120461512E-0-lp.jpg&refer=http%3A%2F%2Fimg.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg" style="width: 150px;"/>-->
+<!--                                <button class="layui-btn layui-btn-xs febs-hide" type="button">点击上传</button>-->
+<!--                                <input type="text" class="febs-hide" name="itemThumb" />-->
+<!--                            </div>-->
+<!--                        </th>-->
+<!--                        <th>123</th>-->
+<!--                        <th>-->
+<!--                            <button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>-->
+<!--                        </th>-->
+<!--                    </tr>-->
                     </tbody>
                 </table>
             </div>
@@ -144,10 +144,10 @@
             <input type="text" class="febs-hide" name="sourceId" value="{{item.id}}"/>
         </th>
         <th>
-            <input type="text" class="layui-input" placeholder="" value=""/>
+            <input type="text" class="layui-input" name="name" placeholder="" value=""/>
         </th>
         <th>
-            <div class="upload">
+            <div class="upload{{item.id}}">
                 {{#  if(!item.thumb || item.thumb == ''){ }}
                 <img class="layui-upload-img item-img  febs-hide" src="" style="width: 150px;"/>
                 <button class="layui-btn layui-btn-xs" type="button">点击上传</button>
@@ -161,7 +161,7 @@
         </th>
         <th>{{item.name}}</th>
         <th>
-            <button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>
+            <button class="layui-btn layui-btn-xs layui-btn-danger item-delete" type="button">删除</button>
         </th>
     </tr>
     {{#  }); }}
@@ -185,6 +185,7 @@
         form.verify(validate);
         form.render();
 
+        // 已添加的item数据
         var itemData = [];
         var videoCate = xmSelect.render({
             el: '#video-cate',
@@ -203,8 +204,6 @@
         })
 
         $("#addItem").on('click', function() {
-
-
             febs.modal.open('选择视频资源', 'video/source/select/list', {
                 area: $(window).width() <= 750 ? '90%' : '50%',
                 offset: '30px',
@@ -212,8 +211,8 @@
                 yes: function (index, layero) {
                     var selectData = table.checkStatus('videoSourceSelectTable').data;
 
+                    // 去重
                     var noRepeatData = [];
-                    // 需要去重
                     if (itemData.length != 0) {
                         for (var i = 0; i < selectData.length; i++) {
                             var flag = true;
@@ -230,16 +229,22 @@
                         }
 
                     } else {
-                        itemData = selectData;
+                        noRepeatData = selectData;
                     }
-                    var data = itemData.concat(noRepeatData);
 
-                    $itemList.empty();
-                    laytpl(templateHtml).render(data, function(html) {
-                        $itemList.append(html);
-                    })
+                    if (noRepeatData.length > 0) {
+                        itemData = itemData.concat(noRepeatData);
+                        laytpl(templateHtml).render(noRepeatData, function(html) {
+                            $itemList.append(html);
+                        })
 
-                    bindUpload();
+                        for (var i = 0; i < noRepeatData.length; i++) {
+                            bindUpload(noRepeatData[i].id);
+                        }
+                    }
+``
+                    deleteUnBind();
+                    deleteBind();
                     layer.close(layer.index);
                 },
                 btn2: function () {
@@ -248,7 +253,7 @@
             });
         });
 
-        var uploadInst = upload.render({
+        upload.render({
             elem: '#thumbUpload'
             ,url: 'common/upload'
             ,before: function(obj){
@@ -272,9 +277,9 @@
         });
 
         // 表格中的图片上传
-        function bindUpload() {
+        function bindUpload(id) {
             upload.render({
-                elem: '.upload'
+                elem: '.upload' + id
                 ,url: ctx + 'common/upload' //改成您自己的上传接口
                 // ,accept: 'file'
                 ,before: function(obj){
@@ -318,15 +323,82 @@
             });
         }
 
-        bindUpload();
-
         form.on('submit(video-add-form-submit)', function (data) {
-            // febs.post(ctx + 'user', data.field, function () {
+            var $tr = $("#itemList").find("tr");
+            var itemLength = $tr.length;
+            if (itemLength == 0) {
+                layer.msg('请添加章节!');
+                return;
+            }
+
+            var cateIds = videoCate.getValue('value');
+            if (cateIds.length <= 0) {
+                febs.alert.warn('至少选择一个目录');
+                return false;
+            }
+
+            var itemData = [];
+            $tr.each(function() {
+                var data = {};
+                var sourceId = $(this).find("input[name = 'sourceId']").val();
+                var videoItemName = $(this).find("input[name = 'name']").val();
+                var itemThumb = $(this).find("input[name = 'itemThumb']").val();
+
+                data.sourceId = sourceId;
+                data.name = videoItemName;
+                data.thumb = itemThumb;
+                itemData.push(data);
+            });
+
+
+            var field = {};
+            field.items = itemData;
+            field.title = data.field.title;
+            field.cateIds = cateIds.join(",");
+            field.thumb = data.field.thumb;
+            console.log(field);
+
+            // febs.post(ctx + 'video/video/add', data.field, function () {
             //     layer.closeAll();
-            //     febs.alert.success('新增用户成功,初始密码为 1234qwer');
-            //     $('#febs-user').find('#query').click();
             // });
+
+            $.ajax({
+                url : ctx + 'video/video/add',
+                type : "post",
+                dataType : "json",
+                contentType : "application/json",
+                data : JSON.stringify(field),
+                success : function(res) {
+                    console.log(res)
+                },
+                error : function(err) {
+
+                }
+            })
             return false;
         });
+
+        function deleteBind() {
+            $(".item-delete").each(function(index, element) {
+                $(this).on("click", function() {
+                    var $tr = $(this).parents("tr");
+                    var id = $tr.find("input[name='sourceId']").val();
+                    for (var i = 0; i < itemData.length; i++) {
+                        if (itemData[i].id == id) {
+                            itemData.splice(i, 1);
+                            break;
+                        }
+                    }
+
+                    $tr.remove();
+                });
+            })
+        }
+
+        function deleteUnBind() {
+            $(".item-delete").each(function(index, element) {
+                $(this).unbind('click');
+            })
+        }
     });
 </script>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/video/video/video-list.html b/src/main/resources/templates/febs/views/video/video/video-list.html
index 86edba5..49123d9 100644
--- a/src/main/resources/templates/febs/views/video/video/video-list.html
+++ b/src/main/resources/templates/febs/views/video/video/video-list.html
@@ -197,7 +197,7 @@
             tableIns = febs.table.init({
                 elem: $view.find('table'),
                 id: 'videoTable',
-                url: ctx + 'video/list',
+                url: ctx + 'video/video/list',
                 cols: [[
                     {type: 'checkbox'},
                     {field: 'title', title: '视频名', minWidth: 100},
diff --git a/xc-video.iml b/xc-video.iml
new file mode 100644
index 0000000..312a97f
--- /dev/null
+++ b/xc-video.iml
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="web" name="Web">
+      <configuration>
+        <webroots />
+      </configuration>
+    </facet>
+    <facet type="Spring" name="Spring">
+      <configuration />
+    </facet>
+  </component>
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
+    <output url="file://$MODULE_DIR$/target/classes" />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/annotations" isTestSource="false" generated="true" />
+      <excludeFolder url="file://$MODULE_DIR$/target" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.3.1.Final" level="project" />
+    <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.3.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.12.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.12.1" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-core:5.2.4.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.2.4.RELEASE" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.25" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.10.2" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.10.2" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.10.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.31" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.31" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.31" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:2.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.0.18.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.4.1.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-web:5.2.4.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.2.4.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.2.4.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context:5.2.4.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.2.4.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.4.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-thymeleaf:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.thymeleaf:thymeleaf-spring5:3.0.11.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.thymeleaf:thymeleaf:3.0.11.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.attoparser:attoparser:2.0.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.unbescape:unbescape:1.1.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.thymeleaf.extras:thymeleaf-extras-java8time:3.0.4.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.4.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-oxm:5.2.4.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: io.lettuce:lettuce-core:5.2.2.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.45.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.45.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.45.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.45.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.45.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.45.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.projectreactor:reactor-core:3.3.3.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-cache:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.2.4.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-configuration-processor:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.10.2" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.10.2" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.10.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-actuator:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator-autoconfigure:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: io.micrometer:micrometer-core:1.3.5" level="project" />
+    <orderEntry type="library" name="Maven: org.hdrhistogram:HdrHistogram:2.1.11" level="project" />
+    <orderEntry type="library" name="Maven: org.latencyutils:LatencyUtils:2.0.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.3.2" level="project" />
+    <orderEntry type="library" name="Maven: com.mchange:mchange-commons-java:0.2.15" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.3.1" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.3.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.4.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-generator:3.3.1" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.3.1" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.3.1" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.3.1" level="project" />
+    <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.1" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.3" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.3" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:dynamic-datasource-spring-boot-starter:3.0.0" level="project" />
+    <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.28" level="project" />
+    <orderEntry type="library" name="Maven: p6spy:p6spy:3.8.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:8.0.19" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-spring:1.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-core:1.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-lang:1.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-cache:1.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-hash:1.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-core:1.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-crypto-cipher:1.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-core:1.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-config-ogdl:1.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-event:1.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.shiro:shiro-web:1.4.2" level="project" />
+    <orderEntry type="library" name="Maven: org.crazycake:shiro-redis:3.2.3" level="project" />
+    <orderEntry type="library" name="Maven: redis.clients:jedis:2.9.0" level="project" />
+    <orderEntry type="library" name="Maven: com.github.theborakompanioni:thymeleaf-extras-shiro:2.0.0" level="project" />
+    <orderEntry type="library" name="Maven: org.lionsoul:ip2region:1.7.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.9" level="project" />
+    <orderEntry type="library" name="Maven: commons-io:commons-io:2.6" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava:27.0-jre" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project" />
+    <orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.checkerframework:checker-qual:2.5.2" level="project" />
+    <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.2.0" level="project" />
+    <orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.mojo:animal-sniffer-annotations:1.17" level="project" />
+    <orderEntry type="library" name="Maven: com.wuwenze:ExcelKit:2.0.72" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:3.17" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi:3.17" level="project" />
+    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.13" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.1" level="project" />
+    <orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.04" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:3.17" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:2.6.0" level="project" />
+    <orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" />
+    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
+    <orderEntry type="library" name="Maven: jaxen:jaxen:1.2.0" level="project" />
+    <orderEntry type="library" name="Maven: xerces:xercesImpl:2.11.0" level="project" />
+    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.3" level="project" />
+    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
+    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.12" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.70" level="project" />
+    <orderEntry type="library" name="Maven: com.github.whvcse:easy-captcha:1.6.2" level="project" />
+    <orderEntry type="library" name="Maven: org.jsoup:jsoup:1.12.1" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.8" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
+  </component>
+</module>
\ No newline at end of file

--
Gitblit v1.9.1