From 52a29dfec5ebfcd72b46b5a0e3b46fa751dd49df Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 13 May 2022 14:41:15 +0800
Subject: [PATCH] add news category

---
 src/main/java/cc/mrbird/febs/mall/service/impl/MallNewsInfoServiceImpl.java |   16 +++++
 src/main/resources/templates/febs/views/modules/news/newsCategoryAdd.html   |   68 ++++++++++++++++++++++
 src/main/java/cc/mrbird/febs/mall/controller/AdminNewsInfoController.java   |   11 +++
 src/main/resources/templates/febs/views/modules/news/newsInfoAdd.html       |    2 
 src/main/java/cc/mrbird/febs/mall/controller/ViewNewsController.java        |   21 +++++++
 src/main/resources/templates/febs/views/modules/news/newsCategory.html      |   36 ++++-------
 src/main/java/cc/mrbird/febs/mall/service/IMallNewsInfoService.java         |    4 +
 src/main/resources/templates/febs/views/modules/news/newsInfoUpdate.html    |    2 
 8 files changed, 132 insertions(+), 28 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminNewsInfoController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminNewsInfoController.java
index 49e56c3..877b8e2 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminNewsInfoController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminNewsInfoController.java
@@ -72,9 +72,16 @@
 
 
     @GetMapping("findNewsCategoryList")
-    @ControllerEndpoint(operation = "")
+    @ControllerEndpoint(operation = "新闻分类列表", exceptionMessage = "获取失败")
     public FebsResponse findNewsCategoryList(MallNewsCategory mallNewsCategory, QueryRequest request) {
-        return null;
+        return new FebsResponse().success().data(getDataTable(mallNewsInfoService.findNewsCategoryInPage(mallNewsCategory, request)));
+    }
+
+    @PostMapping("addOrModifyNewsCategory")
+    @ControllerEndpoint(operation = "新闻分类", exceptionMessage = "新增失败")
+    public FebsResponse addOrModifyNewsCategory(MallNewsCategory mallNewsCategory) {
+        mallNewsInfoService.addOrModifyNewsCategory(mallNewsCategory);
+        return new FebsResponse().success().message("新增成功");
     }
 
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewNewsController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewNewsController.java
index 7135d9b..b30b048 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ViewNewsController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewNewsController.java
@@ -2,6 +2,7 @@
 
 import cc.mrbird.febs.common.entity.FebsConstant;
 import cc.mrbird.febs.common.utils.FebsUtil;
+import cc.mrbird.febs.mall.entity.MallNewsCategory;
 import cc.mrbird.febs.mall.entity.MallNewsInfo;
 import cc.mrbird.febs.mall.service.IMallNewsInfoService;
 import lombok.RequiredArgsConstructor;
@@ -62,4 +63,24 @@
     public String newsCategory() {
         return FebsUtil.view("modules/news/newsCategory");
     }
+
+    @GetMapping("addCategory")
+    @RequiresPermissions("news:category:add")
+    public String addCategory(Long id, Model model) {
+        if (id != null) {
+            MallNewsCategory obj = mallNewsInfoService.findNewsCategoryById(id);
+            model.addAttribute("obj", obj);
+        }
+        return FebsUtil.view("modules/news/newsCategoryAdd");
+    }
+
+    @GetMapping("updateCategory/{id}")
+    @RequiresPermissions("news:category:update")
+    public String updateCategory(@PathVariable Long id, Model model) {
+        if (id != null) {
+            MallNewsCategory obj = mallNewsInfoService.findNewsCategoryById(id);
+            model.addAttribute("obj", obj);
+        }
+        return FebsUtil.view("modules/news/newsCategoryAdd");
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IMallNewsInfoService.java b/src/main/java/cc/mrbird/febs/mall/service/IMallNewsInfoService.java
index 8e5af3f..27812ec 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IMallNewsInfoService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IMallNewsInfoService.java
@@ -22,4 +22,8 @@
     MallNewsInfo getNewsInfoById(long id);
 
     IPage<MallNewsCategory> findNewsCategoryInPage(MallNewsCategory mallNewsCategory, QueryRequest request);
+
+    void addOrModifyNewsCategory(MallNewsCategory mallNewsCategory);
+
+    MallNewsCategory findNewsCategoryById(Long id);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MallNewsInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MallNewsInfoServiceImpl.java
index 76868ad..eb93f7e 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/MallNewsInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MallNewsInfoServiceImpl.java
@@ -97,7 +97,21 @@
 
     @Override
     public IPage<MallNewsCategory> findNewsCategoryInPage(MallNewsCategory mallNewsCategory, QueryRequest request) {
-        Page<MallNewsCategory> page = new Page<>(request.getPageNum(), request.getPageNum());
+        Page<MallNewsCategory> page = new Page<>(request.getPageNum(), request.getPageSize());
         return mallNewsCategoryMapper.selectInPage(mallNewsCategory, page);
     }
+
+    @Override
+    public void addOrModifyNewsCategory(MallNewsCategory mallNewsCategory) {
+        if (mallNewsCategory.getId() != null) {
+            mallNewsCategoryMapper.updateById(mallNewsCategory);
+            return;
+        }
+        mallNewsCategoryMapper.insert(mallNewsCategory);
+    }
+
+    @Override
+    public MallNewsCategory findNewsCategoryById(Long id) {
+        return mallNewsCategoryMapper.selectById(id);
+    }
 }
diff --git a/src/main/resources/templates/febs/views/modules/news/newsCategory.html b/src/main/resources/templates/febs/views/modules/news/newsCategory.html
index b97910f..6683f7e 100644
--- a/src/main/resources/templates/febs/views/modules/news/newsCategory.html
+++ b/src/main/resources/templates/febs/views/modules/news/newsCategory.html
@@ -18,7 +18,7 @@
                             </div>
                         </div>
                     </form>
-                    <table lay-filter="newInfoTable" lay-data="{id: 'newInfoTable'}"></table>
+                    <table lay-filter="newCategoryTable" lay-data="{id: 'newCategoryTable'}"></table>
                 </div>
             </div>
         </div>
@@ -54,14 +54,16 @@
         initTable();
 
         // 初始化表格操作栏各个按钮功能
-        table.on('tool(newInfoTable)', function (obj) {
+        table.on('tool(newCategoryTable)', function (obj) {
             var data = obj.data,
                 layEvent = obj.event;
             if (layEvent === 'newsInfoUpdate') {
-                febs.modal.open('编辑', 'modules/news/newsInfoUpdate/' + data.id, {
+                console.log(data);
+                febs.modal.open('编辑', 'modules/news/updateCategory/'+data.id, {
                     btn: ['提交', '取消'],
+                    area:['50%'],
                     yes: function (index, layero) {
-                        $('#systemPay-update').find('#submit').trigger('click');
+                        $('#newsCategory-add').find('#submit').trigger('click');
                     },
                     btn2: function () {
                         layer.closeAll();
@@ -96,10 +98,11 @@
         });
 
         $add.on('click', function () {
-            febs.modal.open('新增', 'modules/news/newsInfoAdd/', {
+            febs.modal.open('新增', 'modules/news/addCategory/', {
                 btn: ['提交', '取消'],
+                area:['50%'],
                 yes: function (index, layero) {
-                    $('#newsInfo-add').find('#submit').trigger('click');
+                    $('#newsCategory-add').find('#submit').trigger('click');
                 },
                 btn2: function () {
                     layer.closeAll();
@@ -110,28 +113,15 @@
         function initTable() {
             tableIns = febs.table.init({
                 elem: $view.find('table'),
-                id: 'newInfoTable',
-                url: ctx + 'admin/news/getNewInfoList',
+                id: 'newCategoryTable',
+                url: ctx + 'admin/news/findNewsCategoryList',
                 cols: [[
                     {field: 'title', title: '标题', minWidth: 120,align:'center'},
-                    {field: 'content', title: '内容', minWidth: 120,align:'center'},
                     {field: 'createdTime', title: '创建时间', minWidth: 120,align:'center'},
-                    {field: 'type', title: '类型',
-                        templet: function (d) {
-                            if(d.type === 1){
-                                return '<span>文章</span>'
-                            }else if(d.type === 2){
-                                return '<span>跳转到产品</span>'
-                            }else{
-                                return ''
-                            }
-                        }, minWidth: 100,align:'center'},
-                    {field: 'targetId', title: '跳转到目标ID', minWidth: 200,align:'center'},
-                    {field: 'targetName', title: '跳转到目标', minWidth: 200,align:'center'},
                     {title: '操作',
                         templet: function (d) {
-                            return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="newsInfoUpdate" shiro:hasPermission="user:update">编辑</button>'
-                                +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="delNewsInfo" shiro:hasPermission="user:update">删除</button>'
+                            return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="newsInfoUpdate" shiro:hasPermission="news:category:update">编辑</button>'
+                                +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="delNewsInfo" shiro:hasPermission="news:category:update">删除</button>'
                         },minWidth: 300,align:'center'}
                 ]]
             });
diff --git a/src/main/resources/templates/febs/views/modules/news/newsCategoryAdd.html b/src/main/resources/templates/febs/views/modules/news/newsCategoryAdd.html
new file mode 100644
index 0000000..dbb542f
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/news/newsCategoryAdd.html
@@ -0,0 +1,68 @@
+<style>
+    #newsCategory-add {
+        padding: 20px 25px 25px 0;
+    }
+
+    #newsCategory-add .layui-treeSelect .ztree li a, .ztree li span {
+        margin: 0 0 2px 3px !important;
+    }
+    #newsCategory-add #data-permission-tree-block {
+        border: 1px solid #eee;
+        border-radius: 2px;
+        padding: 3px 0;
+    }
+    #newsCategory-add .layui-treeSelect .ztree li span.button.switch {
+        top: 1px;
+        left: 3px;
+    }
+    #newsCategory-add img{
+        max-width:100px
+    }
+
+</style>
+<div class="layui-fluid" id="newsCategory-add">
+    <form class="layui-form" action="" lay-filter="newsCategory-add-form">
+        <div class="layui-form-item febs-hide">
+            <label class="layui-form-label">标题:</label>
+            <div class="layui-input-block">
+                <input type="text" name="id" autocomplete="off" data-th-value="${obj == null ? '':obj.id}" class="layui-input" >
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label febs-form-item-require">标题:</label>
+            <div class="layui-input-block">
+                <input type="text" name="title" lay-verify="required" autocomplete="off" data-th-value="${obj == null ? '':obj.title}" class="layui-input" >
+            </div>
+        </div>
+        <div class="layui-form-item febs-hide">
+            <button class="layui-btn" lay-submit="" lay-filter="newsCategory-add-form-submit" id="submit"></button>
+        </div>
+    </form>
+</div>
+
+<script data-th-inline="javascript">
+    layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree', 'laydate'], function () {
+        var $ = layui.$,
+            febs = layui.febs,
+            layer = layui.layer,
+            formSelects = layui.formSelects,
+            treeSelect = layui.treeSelect,
+            form = layui.form,
+            laydate = layui.laydate,
+            eleTree = layui.eleTree,
+            $view = $('#newsCategory-add'),
+            validate = layui.validate;
+
+
+        form.render();
+
+        form.on('submit(newsCategory-add-form-submit)', function (data) {
+            febs.post(ctx + 'admin/news/addOrModifyNewsCategory', data.field, function () {
+                layer.closeAll();
+                febs.alert.success('操作成功');
+                $('#febs-new-category').find('#query').click();
+            });
+            return false;
+        });
+    });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/news/newsInfoAdd.html b/src/main/resources/templates/febs/views/modules/news/newsInfoAdd.html
index ca7c1d1..ff64d30 100644
--- a/src/main/resources/templates/febs/views/modules/news/newsInfoAdd.html
+++ b/src/main/resources/templates/febs/views/modules/news/newsInfoAdd.html
@@ -90,7 +90,7 @@
         formSelects.render();
 
         form.on('submit(newsInfo-add-form-submit)', function (data) {
-            febs.post(ctx + 'admin/mallMember/addNewsInfo', data.field, function () {
+            febs.post(ctx + 'admin/news/addNewsInfo', data.field, function () {
                 layer.closeAll();
                 febs.alert.success('操作成功');
                 $('#febs-newInfo').find('#reset').click();
diff --git a/src/main/resources/templates/febs/views/modules/news/newsInfoUpdate.html b/src/main/resources/templates/febs/views/modules/news/newsInfoUpdate.html
index c204bf3..0513465 100644
--- a/src/main/resources/templates/febs/views/modules/news/newsInfoUpdate.html
+++ b/src/main/resources/templates/febs/views/modules/news/newsInfoUpdate.html
@@ -110,7 +110,7 @@
         }
 
         form.on('submit(newsInfo-update-form-submit)', function (data) {
-            febs.post(ctx + 'admin/mallMember/updateNewsInfo', data.field, function () {
+            febs.post(ctx + 'admin/news/updateNewsInfo', data.field, function () {
                 layer.closeAll();
                 febs.alert.success('操作成功');
                 $('#febs-newInfo').find('#reset').click();

--
Gitblit v1.9.1