From 952f6ff37b57adcfd5b057ac7e0c43bb9697a01f Mon Sep 17 00:00:00 2001 From: Hentua <wangdoubleone@gmail.com> Date: Fri, 21 Apr 2023 00:59:24 +0800 Subject: [PATCH] 咨询 --- src/main/resources/templates/febs/views/modules/news/newsInfoList.html | 6 src/main/resources/templates/febs/views/modules/news/newsCategoryAdd.html | 6 + src/main/java/cc/mrbird/febs/mall/entity/MallNewsInfo.java | 4 src/main/java/cc/mrbird/febs/mall/service/impl/MallNewsCategoryServiceImpl.java | 15 +++ src/main/resources/templates/febs/views/modules/news/newsInfoAdd.html | 7 + src/main/resources/templates/febs/views/modules/news/newsCategory.html | 1 src/main/resources/templates/febs/views/modules/news/newsInfoUpdate.html | 7 + src/main/java/cc/mrbird/febs/mall/mapper/MallNewsInfoMapper.java | 2 src/main/resources/templates/febs/views/modules/news/knowledgeList.html | 169 +++++++++++++++++++++++++++++++++ src/main/java/cc/mrbird/febs/mall/entity/MallNewsCategory.java | 2 src/main/resources/mapper/modules/MallNewsInfoMapper.xml | 17 ++- src/main/java/cc/mrbird/febs/mall/controller/AdminNewsInfoController.java | 12 ++ src/main/java/cc/mrbird/febs/mall/service/IMallNewsCategoryService.java | 7 + src/main/java/cc/mrbird/febs/mall/dto/NewsListDto.java | 3 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallNewsServiceImpl.java | 1 src/main/java/cc/mrbird/febs/mall/controller/ViewNewsController.java | 18 ++ 16 files changed, 260 insertions(+), 17 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 96a8c09..87bffd1 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/AdminNewsInfoController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminNewsInfoController.java @@ -7,7 +7,10 @@ import cc.mrbird.febs.mall.dto.MallNewsInfoDto; import cc.mrbird.febs.mall.entity.MallNewsCategory; import cc.mrbird.febs.mall.entity.MallNewsInfo; +import cc.mrbird.febs.mall.service.IMallNewsCategoryService; import cc.mrbird.febs.mall.service.IMallNewsInfoService; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; @@ -31,6 +34,7 @@ public class AdminNewsInfoController extends BaseController { private final IMallNewsInfoService mallNewsInfoService; + private final IMallNewsCategoryService mallNewsCategoryService; /** * 新闻中心-列表 @@ -95,8 +99,12 @@ } @GetMapping(value = "findAllCategoryList") - public FebsResponse findAllCategoryList() { - List<MallNewsCategory> categories = mallNewsInfoService.findAllCategory(); + public FebsResponse findAllCategoryList(String code) { + LambdaQueryWrapper<MallNewsCategory> query = new LambdaQueryWrapper<>(); + if (StrUtil.isNotBlank(code)) { + query.eq(MallNewsCategory::getCode, code); + } + List<MallNewsCategory> categories = mallNewsCategoryService.list(query); return new FebsResponse().success().data(categories); } 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 b30b048..4b09b97 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/ViewNewsController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewNewsController.java @@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; /** * @author wzy @@ -34,13 +35,21 @@ return FebsUtil.view("modules/news/newsInfoList"); } + + @GetMapping("knowledge") + @RequiresPermissions("newsInfoList:view") + public String knowledge() { + return FebsUtil.view("modules/news/knowledgeList"); + } + /** * 新闻中心-新增 * @return */ - @GetMapping("newsInfoAdd") + @GetMapping("newsInfoAdd/{code}") @RequiresPermissions("newsInfoAdd:add") - public String newsInfoAdd() { + public String newsInfoAdd(@PathVariable("code") String code, Model model) { + model.addAttribute("code", code); return FebsUtil.view("modules/news/newsInfoAdd"); } @@ -50,10 +59,11 @@ * @param model * @return */ - @GetMapping("newsInfoUpdate/{id}") + @GetMapping("newsInfoUpdate/{id}/{code}") @RequiresPermissions("newsInfoUpdate:update") - public String newsInfoUpdate(@PathVariable long id, Model model) { + public String newsInfoUpdate(@PathVariable("id") long id, @PathVariable("code") String code, Model model) { MallNewsInfo data = mallNewsInfoService.getNewsInfoById(id); + model.addAttribute("code", code); model.addAttribute("newsInfo", data); return FebsUtil.view("modules/news/newsInfoUpdate"); } diff --git a/src/main/java/cc/mrbird/febs/mall/dto/NewsListDto.java b/src/main/java/cc/mrbird/febs/mall/dto/NewsListDto.java index c3bae67..df4ab8d 100644 --- a/src/main/java/cc/mrbird/febs/mall/dto/NewsListDto.java +++ b/src/main/java/cc/mrbird/febs/mall/dto/NewsListDto.java @@ -21,4 +21,7 @@ @ApiModelProperty("分类ID") private Long categoryId; + + @ApiModelProperty("编码") + private String code; } diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallNewsCategory.java b/src/main/java/cc/mrbird/febs/mall/entity/MallNewsCategory.java index 56e73a4..8b6ff80 100644 --- a/src/main/java/cc/mrbird/febs/mall/entity/MallNewsCategory.java +++ b/src/main/java/cc/mrbird/febs/mall/entity/MallNewsCategory.java @@ -13,4 +13,6 @@ public class MallNewsCategory extends BaseEntity { private String title; + + private String code; } diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallNewsInfo.java b/src/main/java/cc/mrbird/febs/mall/entity/MallNewsInfo.java index 6a08872..cfff2d8 100644 --- a/src/main/java/cc/mrbird/febs/mall/entity/MallNewsInfo.java +++ b/src/main/java/cc/mrbird/febs/mall/entity/MallNewsInfo.java @@ -1,6 +1,7 @@ package cc.mrbird.febs.mall.entity; import cc.mrbird.febs.common.entity.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -30,4 +31,7 @@ private Long categoryId; private Integer isTop; + + @TableField(exist = false) + private String code; } diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallNewsInfoMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallNewsInfoMapper.java index 4c3a65f..542c2ba 100644 --- a/src/main/java/cc/mrbird/febs/mall/mapper/MallNewsInfoMapper.java +++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallNewsInfoMapper.java @@ -11,7 +11,7 @@ public interface MallNewsInfoMapper extends BaseMapper<MallNewsInfo> { - IPage<AdminMallNewsInfoVo> getNewInfoListInPage(Page<AdminMallNewsInfoVo> page, MallNewsInfo mallNewsInfo); + IPage<AdminMallNewsInfoVo> getNewInfoListInPage(Page<AdminMallNewsInfoVo> page,@Param("record") MallNewsInfo mallNewsInfo); IPage<NewsListVo> selectNewsVoInPage(Page<NewsListVo> page, @Param("record") MallNewsInfo mallNewsInfo); diff --git a/src/main/java/cc/mrbird/febs/mall/service/IMallNewsCategoryService.java b/src/main/java/cc/mrbird/febs/mall/service/IMallNewsCategoryService.java new file mode 100644 index 0000000..ecba5f8 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/service/IMallNewsCategoryService.java @@ -0,0 +1,7 @@ +package cc.mrbird.febs.mall.service; + +import cc.mrbird.febs.mall.entity.MallNewsCategory; +import com.baomidou.mybatisplus.extension.service.IService; + +public interface IMallNewsCategoryService extends IService<MallNewsCategory> { +} diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallNewsServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallNewsServiceImpl.java index 3a5ce7b..e1dbf3a 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallNewsServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallNewsServiceImpl.java @@ -43,6 +43,7 @@ MallNewsInfo mallNewsInfo = new MallNewsInfo(); mallNewsInfo.setCategoryId(newsListDto.getCategoryId()); + mallNewsInfo.setCode(newsListDto.getCode()); return this.baseMapper.selectNewsVoInPage(page, mallNewsInfo); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MallNewsCategoryServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MallNewsCategoryServiceImpl.java new file mode 100644 index 0000000..63eef28 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MallNewsCategoryServiceImpl.java @@ -0,0 +1,15 @@ +package cc.mrbird.febs.mall.service.impl; + +import cc.mrbird.febs.mall.entity.MallNewsCategory; +import cc.mrbird.febs.mall.mapper.MallNewsCategoryMapper; +import cc.mrbird.febs.mall.service.IMallNewsCategoryService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +@RequiredArgsConstructor +public class MallNewsCategoryServiceImpl extends ServiceImpl<MallNewsCategoryMapper, MallNewsCategory> implements IMallNewsCategoryService { +} diff --git a/src/main/resources/mapper/modules/MallNewsInfoMapper.xml b/src/main/resources/mapper/modules/MallNewsInfoMapper.xml index c0bf00f..dc26a1a 100644 --- a/src/main/resources/mapper/modules/MallNewsInfoMapper.xml +++ b/src/main/resources/mapper/modules/MallNewsInfoMapper.xml @@ -8,23 +8,30 @@ c.title categoryName, b.goods_name targetName FROM mall_news_info a + inner join mall_news_category c on a.category_id=c.id + <if test="record.code != null and record.code != ''"> + and c.code=#{record.code} + </if> left join mall_goods b on a.target_id = b.id - left join mall_news_category c on a.category_id=c.id group by a.id order by a.CREATED_TIME desc </select> <select id="selectNewsVoInPage" resultType="cc.mrbird.febs.mall.vo.NewsListVo"> - select * from mall_news_info + select * from mall_news_info newsInfo + inner join mall_news_category category on newsInfo.category_id=category.id <where> 1=1 <if test="record.categoryId != null"> - and category_id=#{record.categoryId} + and newsInfo.category_id=#{record.categoryId} + </if> + <if test="record.code != null and record.code != ''"> + and category.code=#{record.code} </if> <if test="record.isTop != null"> - and is_top=#{record.isTop} + and newsInfo.is_top=#{record.isTop} </if> </where> - order by CREATED_TIME desc + order by newsInfo.CREATED_TIME desc </select> </mapper> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/modules/news/knowledgeList.html b/src/main/resources/templates/febs/views/modules/news/knowledgeList.html new file mode 100644 index 0000000..629f00d --- /dev/null +++ b/src/main/resources/templates/febs/views/modules/news/knowledgeList.html @@ -0,0 +1,169 @@ +<div class="layui-fluid layui-anim febs-anim" id="febs-knowledge" lay-title="护理小知识"> + <div class="layui-row febs-container"> + <div class="layui-col-md12"> + <div class="layui-card"> + <div class="layui-card-body febs-table-full"> + <form class="layui-form layui-table-form" lay-filter="knowledge-table-form"> + <div class="layui-row"> + <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area"> + <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="add"> + 新增 + </div> + <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query"> + <i class="layui-icon"></i> + </div> + <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset"> + <i class="layui-icon"></i> + </div> + </div> + </div> + </form> + <table lay-filter="knowledgeTable" lay-data="{id: 'knowledgeTable'}"></table> + </div> + </div> + </div> + </div> +</div> +<style> + .layui-table-cell { + height: auto; + } + .layui-form-onswitch { + background-color: #5FB878 !important; + } +</style> +<script type="text/html" id="isTopSwitch"> + {{# if(d.isTop === 1) { }} + <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="isTopSwitch"> + {{# } else { }} + <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="isTopSwitch"> + {{# } }} +</script> +<!-- 表格操作栏 start --> +<script type="text/html" id="user-option"> + <span shiro:lacksPermission="user:view,user:update,user:delete"> + <span class="layui-badge-dot febs-bg-orange"></span> 无权限 + </span> + <a lay-event="edit" shiro:hasPermission="user:update"><i + class="layui-icon febs-edit-area febs-blue"></i></a> +</script> +<!-- 表格操作栏 end --> +<script data-th-inline="none" type="text/javascript"> + // 引入组件并初始化 + layui.use([ 'jquery', 'form', 'table', 'febs'], function () { + var $ = layui.jquery, + febs = layui.febs, + form = layui.form, + table = layui.table, + $view = $('#febs-knowledge'), + $query = $view.find('#query'), + $add = $view.find('#add'), + $reset = $view.find('#reset'), + $searchForm = $view.find('form'), + sortObject = {field: 'phone', type: null}, + tableIns; + + form.render(); + + // 表格初始化 + initTable(); + + // 初始化表格操作栏各个按钮功能 + table.on('tool(knowledgeTable)', function (obj) { + var data = obj.data, + layEvent = obj.event; + if (layEvent === 'newsInfoUpdate') { + febs.modal.open('编辑', 'modules/news/newsInfoUpdate/' + data.id + '/knowledge', { + btn: ['提交', '取消'], + yes: function (index, layero) { + $('#newsInfo-update').find('#submit').trigger('click'); + }, + btn2: function () { + layer.closeAll(); + } + }); + } + if (layEvent === 'delNewsInfo') { + febs.modal.confirm('删除', '确认删除?', function () { + delNewsInfo(data.id); + }); + } + }); + + function delNewsInfo(id) { + febs.get(ctx + 'admin/news/delNewsInfo/' + id, null, function () { + febs.alert.success('操作成功'); + $query.click(); + }); + } + + // 查询按钮 + $query.on('click', function () { + var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type}); + tableIns.reload({where: params, page: {curr: 1}}); + }); + + // 刷新按钮 + $reset.on('click', function () { + $searchForm[0].reset(); + sortObject.type = 'null'; + tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject}); + }); + + $add.on('click', function () { + febs.modal.open('新增', 'modules/news/newsInfoAdd/knowledge', { + btn: ['提交', '取消'], + yes: function (index, layero) { + $('#newsInfo-add').find('#submit').trigger('click'); + }, + btn2: function () { + layer.closeAll(); + } + }); + }); + + function initTable() { + tableIns = febs.table.init({ + elem: $view.find('table'), + id: 'knowledgeTable', + url: ctx + 'admin/news/getNewInfoList?code=knowledge', + cols: [[ + {field: 'title', title: '标题', minWidth: 120,align:'center'}, + {field: 'categoryName', title: '分类', minWidth: 120,align:'center'}, + {field: 'thumb', title: '缩略图', + templet: function (d) { + return '<a lay-event="seeImgThumb"><img id="seeImgThumb'+d.id+'" src="'+d.thumb+'" alt=""></a>'; + }, minWidth: 150,align:'center'}, + {templet: '#isTopSwitch', title: '是否首页显示', minWidth: 120,align:'center'}, + {field: 'createdTime', title: '创建时间', minWidth: 120,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-danger layui-btn-xs" lay-event="delNewsInfo" shiro:hasPermission="user:update">删除</button>' + },minWidth: 300,align:'center'} + ]] + }); + } + + // 获取查询参数 + function getQueryParams() { + return { + }; + } + + form.on('switch(isTopSwitch)', function (data) { + console.log(data.value); + if (data.elem.checked) { + febs.post(ctx + 'admin/news/topNews/' + data.value, null, function () { + febs.alert.success('设置成功'); + $query.click(); + }); + } else { + febs.post(ctx + 'admin/news/unTopNews/' + data.value, null, function () { + febs.alert.success('设置成功'); + $query.click(); + }); + } + }) + }) +</script> \ No newline at end of file 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 dadbef3..755acd4 100644 --- a/src/main/resources/templates/febs/views/modules/news/newsCategory.html +++ b/src/main/resources/templates/febs/views/modules/news/newsCategory.html @@ -117,6 +117,7 @@ url: ctx + 'admin/news/findNewsCategoryList', cols: [[ {field: 'title', title: '标题', minWidth: 120,align:'center'}, + {field: 'code', title: '编码', minWidth: 120,align:'center'}, {field: 'createdTime', title: '创建时间', minWidth: 120,align:'center'}, {title: '操作', templet: function (d) { diff --git a/src/main/resources/templates/febs/views/modules/news/newsCategoryAdd.html b/src/main/resources/templates/febs/views/modules/news/newsCategoryAdd.html index dbb542f..399a3e9 100644 --- a/src/main/resources/templates/febs/views/modules/news/newsCategoryAdd.html +++ b/src/main/resources/templates/febs/views/modules/news/newsCategoryAdd.html @@ -34,6 +34,12 @@ <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"> + <label class="layui-form-label febs-form-item-require">编码:</label> + <div class="layui-input-block"> + <input type="text" name="code" lay-verify="required" autocomplete="off" data-th-value="${obj == null ? '':obj.code}" 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> 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 8c361ee..b1e0629 100644 --- a/src/main/resources/templates/febs/views/modules/news/newsInfoAdd.html +++ b/src/main/resources/templates/febs/views/modules/news/newsInfoAdd.html @@ -81,6 +81,7 @@ form = layui.form, laydate = layui.laydate, layedit = layui.layedit, + code = [[${code}]], $view = $('#newsInfo-add'), validate = layui.validate; @@ -123,7 +124,11 @@ febs.post(ctx + 'admin/news/addNewsInfo', data.field, function () { layer.closeAll(); febs.alert.success('操作成功'); - $('#febs-newInfo').find('#reset').click(); + if (code == 'notice') { + $('#febs-newInfo').find('#reset').click(); + } else { + $('#febs-knowledge').find('#reset').click(); + } }); return false; }); diff --git a/src/main/resources/templates/febs/views/modules/news/newsInfoList.html b/src/main/resources/templates/febs/views/modules/news/newsInfoList.html index 4d6d8b7..c13b975 100644 --- a/src/main/resources/templates/febs/views/modules/news/newsInfoList.html +++ b/src/main/resources/templates/febs/views/modules/news/newsInfoList.html @@ -73,7 +73,7 @@ var data = obj.data, layEvent = obj.event; if (layEvent === 'newsInfoUpdate') { - febs.modal.open('编辑', 'modules/news/newsInfoUpdate/' + data.id, { + febs.modal.open('编辑', 'modules/news/newsInfoUpdate/' + data.id +'/notice', { btn: ['提交', '取消'], yes: function (index, layero) { $('#newsInfo-update').find('#submit').trigger('click'); @@ -111,7 +111,7 @@ }); $add.on('click', function () { - febs.modal.open('新增', 'modules/news/newsInfoAdd/', { + febs.modal.open('新增', 'modules/news/newsInfoAdd/notice', { btn: ['提交', '取消'], yes: function (index, layero) { $('#newsInfo-add').find('#submit').trigger('click'); @@ -126,7 +126,7 @@ tableIns = febs.table.init({ elem: $view.find('table'), id: 'newInfoTable', - url: ctx + 'admin/news/getNewInfoList', + url: ctx + 'admin/news/getNewInfoList?code=notice', cols: [[ {field: 'title', title: '标题', minWidth: 120,align:'center'}, {field: 'categoryName', title: '分类', minWidth: 120,align:'center'}, 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 4261a16..8971d08 100644 --- a/src/main/resources/templates/febs/views/modules/news/newsInfoUpdate.html +++ b/src/main/resources/templates/febs/views/modules/news/newsInfoUpdate.html @@ -88,6 +88,7 @@ form = layui.form, laydate = layui.laydate, layedit = layui.layedit, + code = [[${code}]], newsInfo = [[${newsInfo}]], $view = $('#newsInfo-update'), $uploadDel = $view.find('#uploadDel'), @@ -136,7 +137,11 @@ febs.post(ctx + 'admin/news/updateNewsInfo', data.field, function () { layer.closeAll(); febs.alert.success('操作成功'); - $('#febs-newInfo').find('#reset').click(); + if (code == 'notice') { + $('#febs-newInfo').find('#reset').click(); + } else { + $('#febs-knowledge').find('#reset').click(); + } }); return false; }); -- Gitblit v1.9.1