src/main/java/cc/mrbird/febs/common/enumerates/BannerDictionaryEnum.java
New file @@ -0,0 +1,45 @@ package cc.mrbird.febs.common.enumerates; import cc.mrbird.febs.mall.vo.banner.BannerDictionaryEnumVo; import lombok.Getter; import java.util.ArrayList; import java.util.List; @Getter public enum BannerDictionaryEnum { /** * 类型 1-轮播图2-开屏页3-商城4-首页社区 */ SOCIAL(4, "社区首页"), SHOP_STORE(3, "商城首页"), OPEN_XCX(2, "开屏页"), LUN_BO(1, "小程序首页"); private int type; private String code; BannerDictionaryEnum(int type, String code) { this.type = type; this.code = code; } public static List<BannerDictionaryEnumVo> getAllType() { ArrayList<BannerDictionaryEnumVo> bannerDictionaryEnumVos = new ArrayList<>(); for (BannerDictionaryEnum bannerDictionaryEnum : values()) { BannerDictionaryEnumVo bannerDictionaryEnumVo = new BannerDictionaryEnumVo(); bannerDictionaryEnumVo.setType(bannerDictionaryEnum.getType()); bannerDictionaryEnumVo.setCode(bannerDictionaryEnum.getCode()); bannerDictionaryEnumVos.add(bannerDictionaryEnumVo); } return bannerDictionaryEnumVos; } public static void main(String[] args) { List<BannerDictionaryEnumVo> allType = BannerDictionaryEnum.getAllType(); System.out.println(allType); } } src/main/java/cc/mrbird/febs/mall/controller/CommonController.java
@@ -232,7 +232,7 @@ CommonDictionaryEnum.TIME_URL_INDEX.getCode() ); if (timeStop == null) { timeStop = "0"; timeStop = "3"; } apiIndexSetVo.setTimeStop(timeStop); return new FebsResponse().success().data(apiIndexSetVo); src/main/java/cc/mrbird/febs/mall/controller/banner/AdminBannerController.java
File was renamed from src/main/java/cc/mrbird/febs/mall/controller/AdminBannerController.java @@ -1,4 +1,4 @@ package cc.mrbird.febs.mall.controller; package cc.mrbird.febs.mall.controller.banner; import cc.mrbird.febs.common.annotation.ControllerEndpoint; import cc.mrbird.febs.common.controller.BaseController; @@ -63,4 +63,15 @@ iAdminBannerService.platformBannerAdd(platformBannerEntity); return new FebsResponse().success(); } /** * 轮播图-获取分类 * @return */ @GetMapping(value = "/typeAll") public FebsResponse typeAll() { return iAdminBannerService.typeAll(); } } src/main/java/cc/mrbird/febs/mall/controller/banner/AdminNewsInfoController.java
File was renamed from src/main/java/cc/mrbird/febs/mall/controller/AdminNewsInfoController.java @@ -1,4 +1,4 @@ package cc.mrbird.febs.mall.controller; package cc.mrbird.febs.mall.controller.banner; import cc.mrbird.febs.common.annotation.ControllerEndpoint; import cc.mrbird.febs.common.controller.BaseController; src/main/java/cc/mrbird/febs/mall/controller/banner/ApiMallNewsController.java
File was renamed from src/main/java/cc/mrbird/febs/mall/controller/ApiMallNewsController.java @@ -1,4 +1,4 @@ package cc.mrbird.febs.mall.controller; package cc.mrbird.febs.mall.controller.banner; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.mall.dto.NewsListDto; @@ -68,6 +68,13 @@ return newsService.findAllBanner(); } @ApiOperation(value = "轮播广告根据分类查询", notes = "轮播广告根据分类查询") @GetMapping(value = "/bannerByType/{type}") public FebsResponse bannerByType(@PathVariable("type") int type) { return newsService.bannerByType(type); } @ApiOperation(value = "首页视频", notes = "首页视频") @GetMapping(value = "/indexVideo") public FebsResponse indexVideo() { src/main/java/cc/mrbird/febs/mall/controller/banner/ViewBannerController.java
File was renamed from src/main/java/cc/mrbird/febs/mall/controller/ViewBannerController.java @@ -1,4 +1,4 @@ package cc.mrbird.febs.mall.controller; package cc.mrbird.febs.mall.controller.banner; import cc.mrbird.febs.common.controller.BaseController; import cc.mrbird.febs.common.entity.FebsConstant; src/main/java/cc/mrbird/febs/mall/controller/banner/ViewNewsController.java
File was renamed from src/main/java/cc/mrbird/febs/mall/controller/ViewNewsController.java @@ -1,4 +1,4 @@ package cc.mrbird.febs.mall.controller; package cc.mrbird.febs.mall.controller.banner; import cc.mrbird.febs.common.entity.FebsConstant; import cc.mrbird.febs.common.utils.FebsUtil; src/main/java/cc/mrbird/febs/mall/entity/PlatformBanner.java
@@ -3,6 +3,7 @@ import cc.mrbird.febs.common.entity.BaseEntity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @@ -45,9 +46,16 @@ * 是否置顶 1-是2-否 */ private String isTop; /** * 类型 1-轮播图2-开屏页3-商城4-首页社区 */ private int type; //商品ID @TableField(exist = false) private Long goodsId; @TableField(exist = false) private String timeStop; } src/main/java/cc/mrbird/febs/mall/service/IAdminBannerService.java
@@ -19,4 +19,6 @@ FebsResponse platformBannerDelete(@NotNull(message = "{required}") Long id); void platformBannerAdd(@Valid PlatformBanner platformBannerEntity); FebsResponse typeAll(); } src/main/java/cc/mrbird/febs/mall/service/IApiMallNewsService.java
@@ -21,4 +21,6 @@ FebsResponse findAllBanner(); FebsResponse indexVideo(); FebsResponse bannerByType(int type); } src/main/java/cc/mrbird/febs/mall/service/impl/AdminBannerServiceImpl.java
@@ -2,9 +2,11 @@ import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.common.enumerates.BannerDictionaryEnum; import cc.mrbird.febs.mall.entity.PlatformBanner; import cc.mrbird.febs.mall.mapper.PlatformBannerMapper; import cc.mrbird.febs.mall.service.IAdminBannerService; import cc.mrbird.febs.mall.vo.banner.BannerDictionaryEnumVo; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -16,6 +18,7 @@ import javax.validation.Valid; import javax.validation.constraints.NotNull; import java.util.Date; import java.util.List; @Slf4j @Service @@ -68,4 +71,10 @@ platformBannerMapper.insert(platformBannerEntityAdd); } @Override public FebsResponse typeAll() { List<BannerDictionaryEnumVo> allType = BannerDictionaryEnum.getAllType(); return new FebsResponse().success().data(allType); } } src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallNewsServiceImpl.java
@@ -1,6 +1,8 @@ package cc.mrbird.febs.mall.service.impl; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.enumerates.BannerDictionaryEnum; import cc.mrbird.febs.common.enumerates.CommonDictionaryEnum; import cc.mrbird.febs.common.enumerates.DataDictionaryEnum; import cc.mrbird.febs.mall.dto.NewsListDto; import cc.mrbird.febs.mall.entity.*; @@ -88,4 +90,39 @@ ); return new FebsResponse().success().data(dataDictionaryCustom.getValue()); } @Override public FebsResponse bannerByType(int type) { String timeStop = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( CommonDictionaryEnum.TIME_URL_INDEX.getType(), CommonDictionaryEnum.TIME_URL_INDEX.getCode() ).getValue(); if (timeStop == null) { timeStop = "3"; } QueryWrapper<PlatformBanner> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("type",type); queryWrapper.orderByAsc("sort"); queryWrapper.orderByAsc("is_top"); List<PlatformBanner> paymentMethodList = platformBannerMapper.selectList(queryWrapper); if(CollUtil.isNotEmpty(paymentMethodList)){ if(BannerDictionaryEnum.OPEN_XCX.getType() == type) for(PlatformBanner platformBanner : paymentMethodList){ platformBanner.setTimeStop(timeStop); if("1".equals(platformBanner.getIsJump()) && 1 == platformBanner.getIsInside()){ String jumpUrl = platformBanner.getJumpUrl(); QueryWrapper<MallGoods> queryWrapperGoods = new QueryWrapper<>(); queryWrapperGoods.eq("goods_no",jumpUrl); List<MallGoods> goodsList = mallGoodsMapper.selectList(queryWrapperGoods); if(CollUtil.isNotEmpty(goodsList)){ platformBanner.setGoodsId(goodsList.get(0).getId()); } } } } return new FebsResponse().success().data(paymentMethodList); } } src/main/java/cc/mrbird/febs/mall/vo/banner/BannerDictionaryEnumVo.java
New file @@ -0,0 +1,11 @@ package cc.mrbird.febs.mall.vo.banner; import lombok.Data; @Data public class BannerDictionaryEnumVo { private int type; private String code; } src/main/resources/mapper/modules/PlatformBannerMapper.xml
@@ -2,12 +2,19 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cc.mrbird.febs.mall.mapper.PlatformBannerMapper"> <select id="findPlatformBannerInPage" resultType="cc.mrbird.febs.mall.entity.PlatformBanner"> SELECT <select id="findPlatformBannerInPage" resultType="cc.mrbird.febs.mall.entity.PlatformBanner"> SELECT * FROM platform_banner order by created_time desc </select> <where> <if test="record != null" > <if test="record.type!=null and record.type!=0"> and type = #{record.type} </if> </if> </where> order by sort desc </select> </mapper> src/main/resources/templates/febs/views/modules/banner/platformBanner.html
@@ -3,15 +3,32 @@ <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="user-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="reset"> <i class="layui-icon"></i> </div> </div> </div> </form> <form class="layui-form layui-table-form" lay-filter="user-table-form"> <div class="layui-row"> <div class="layui-col-md10"> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label layui-form-label-sm">分类</label> <div class="layui-input-inline"> <select name="type" class="banner-type"> <option value="0">请选择</option> </select> </div> </div> </div> </div> <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-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="bannerTable" lay-data="{id: 'bannerTable'}"></table> </div> </div> @@ -78,14 +95,28 @@ table = layui.table, dropdown = layui.dropdown, $view = $('#febs-banner'), $query = $view.find('#query'), $reset = $view.find('#reset'), $add = $view.find('#add'), $searchForm = $view.find('form'), sortObject = {field: 'spread', type: null}, sortObject = {field: 'sort', type: null}, tableIns ; form.render(); //(下拉框) $.get(ctx + 'admin/banner/typeAll', function (res) { var data = res.data; for (let k in data) { $(".banner-type").append("<option value='" + data[k].type + "'>" + data[k].code + "</option>"); } layui.use('form', function () { var form = layui.form; form.render(); }); }); // 表格初始化 initTable(); @@ -136,7 +167,13 @@ $reset.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(); @@ -166,7 +203,9 @@ // 获取查询参数 function getQueryParams() { return {}; return { type: $searchForm.find("select[name='type']").val(), }; } function initTable() { src/main/resources/templates/febs/views/modules/banner/platformBannerAdd.html
@@ -20,6 +20,26 @@ </div> <div class="layui-row layui-col-space10 layui-form-item"> <div class="layui-col-lg6"> <label class="layui-form-label febs-form-item-require">排序:</label> <div class="layui-input-block"> <input type="text" name="sort" lay-verify="required" placeholder="" autocomplete="off" class="layui-input"> </div> </div> </div> <div class="layui-row layui-col-space10 layui-form-item"> <div class="layui-col-lg6"> <label class="layui-form-label febs-form-item-require">类别:</label> <div class="layui-input-block"> <select name="type" class="banner-type"> <option value="">请选择</option> </select> </div> </div> </div> <div class="layui-row layui-col-space10 layui-form-item"> <div class="layui-col-lg6"> <label class="layui-form-label febs-form-item-require">图片:</label> <div class="layui-input-block"> <div class="layui-upload"> @@ -122,6 +142,18 @@ element = layui.element; form.render(); //(下拉框) $.get(ctx + 'admin/banner/typeAll', function (res) { var data = res.data; for (let k in data) { $(".banner-type").append("<option value='" + data[k].type + "'>" + data[k].code + "</option>"); } layui.use('form', function () { var form = layui.form; form.render(); }); }); //图片上传 upload.render({ src/main/resources/templates/febs/views/modules/banner/platformBannerDetail.html
@@ -22,6 +22,26 @@ </div> <div class="layui-row layui-col-space10 layui-form-item"> <div class="layui-col-lg6"> <label class="layui-form-label febs-form-item-require">排序:</label> <div class="layui-input-block"> <input type="text" name="sort" lay-verify="required" placeholder="" autocomplete="off" class="layui-input"> </div> </div> </div> <div class="layui-row layui-col-space10 layui-form-item"> <div class="layui-col-lg6"> <label class="layui-form-label febs-form-item-require">类别:</label> <div class="layui-input-block"> <select name="type" class="banner-type" id="type"> <option value="">请选择</option> </select> </div> </div> </div> <div class="layui-row layui-col-space10 layui-form-item"> <div class="layui-col-lg6"> <label class="layui-form-label febs-form-item-require">图片:</label> <div class="layui-input-block"> <div class="layui-upload"> @@ -140,6 +160,19 @@ }); form.render(); //(下拉框) $.get(ctx + 'admin/banner/typeAll', function (res) { var data = res.data; for (let k in data) { $(".banner-type").append("<option value='" + data[k].type + "'>" + data[k].code + "</option>"); } layui.use('form', function () { var form = layui.form; $("#type").val(banner.type) form.render(); }); }); initBannerTable(); @@ -153,7 +186,9 @@ "isInside": banner.isInside, "jumpUrl": banner.jumpUrl, "isTop": banner.isTop, "isJump": banner.isJump "sort": banner.sort, "isJump": banner.isJump, "type": banner.type, }); $('#bannerImgUpload').append('<img src="' + banner.imageUrl + '" alt="" class="layui-upload-img single-image" style="width: 130px">');