【新增】优化广告组件,表【CoreCmsAdvertPosition】新增【platform】广告平台字段,【type】广告位类型两个字段,用于区分pc,h5,小程序多端,以及图片还是轮播图展示形式。

This commit is contained in:
JianWeie
2023-01-10 16:04:48 +08:00
parent 3d8a3436a3
commit 8632c6fb26
21 changed files with 379 additions and 80 deletions

View File

@@ -1790,7 +1790,7 @@ namespace CoreCms.Net.Configuration
/// <summary>
/// 广告表类型【关联CoreCmsAdvertisement.type字段】
/// </summary>
public enum AdvertPositionType
public enum AdvertisementType
{
/// <summary>
/// 网址URL
@@ -1820,35 +1820,39 @@ namespace CoreCms.Net.Configuration
}
/// <summary>
/// 广告模板编码
/// 广告表类型【关联CoreCmsAdvertPosition.type字段】
/// </summary>
public enum AdvertTemplateCode
public enum AdvertPositionType
{
/// <summary>
/// 首页幻灯片广告位
/// 图片
/// </summary>
[Description("首页幻灯片广告位")]
TplSlider = 1,
[Description("<button type=\"button\" class=\"layui-btn layui-btn-normal layui-btn-xs\">图片</button>")]
Image = 1,
/// <summary>
/// 首页广告位1
/// 轮播图
/// </summary>
[Description("首页广告位1")]
TplIndexBanner1 = 2,
[Description("<button type=\"button\" class=\"layui-btn layui-btn-warm layui-btn-xs\">轮播图</button>")]
Swiper = 2
}
/// <summary>
/// 首页广告位2
/// 广告来源
/// </summary>
[Description("首页广告位2")]
TplIndexBanner2 = 3,
/// <summary>
/// 首页广告位3
/// </summary>
[Description("首页广告位3")]
TplIndexBanner3 = 4,
/// <summary>
/// 分类页广告位
/// </summary>
[Description("分类页广告位")]
TplClassBanner1 = 5
public enum AdvertPlatform
{
[Description("PC页面")]
PC页面 = 1,
[Description("H5页面")]
H5页面 = 2,
[Description("微信小程序")]
= 3,
[Description("支付宝小程序")]
= 4,
[Description("APP")]
APP = 5,
[Description("头条系小程序")]
= 6
}
#endregion

View File

@@ -76,7 +76,7 @@
</member>
<member name="M:CoreCms.Net.Model.Entities.CoreCmsAdvertPosition.#ctor">
<summary>
广告位置表
构造函数
</summary>
</member>
<member name="P:CoreCms.Net.Model.Entities.CoreCmsAdvertPosition.id">
@@ -104,6 +104,16 @@
更新时间
</summary>
</member>
<member name="P:CoreCms.Net.Model.Entities.CoreCmsAdvertPosition.platform">
<summary>
广告平台
</summary>
</member>
<member name="P:CoreCms.Net.Model.Entities.CoreCmsAdvertPosition.type">
<summary>
广告位类型
</summary>
</member>
<member name="P:CoreCms.Net.Model.Entities.CoreCmsAdvertPosition.isEnable">
<summary>
是否启用
@@ -9394,9 +9404,14 @@
用户统一标识
</summary>
</member>
<member name="P:CoreCms.Net.Model.FromBody.WxAdvert.codes">
<member name="P:CoreCms.Net.Model.FromBody.WxAdvert.code">
<summary>
广告位置
广告位置编码
</summary>
</member>
<member name="P:CoreCms.Net.Model.FromBody.WxAdvert.platform">
<summary>
广告位值类型
</summary>
</member>
<member name="P:CoreCms.Net.Model.FromBody.FMCreateAgentGood.good">

View File

@@ -4,10 +4,12 @@
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021-06-08 22:14:58
* CreateTime: 2023/1/9 23:43:27
* Description: 暂无
***********************************************************************/
***********************************************************************/
using SqlSugar;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace CoreCms.Net.Model.Entities
@@ -15,11 +17,10 @@ namespace CoreCms.Net.Model.Entities
/// <summary>
/// 广告位置表
/// </summary>
[SugarTable("CoreCmsAdvertPosition",TableDescription = "广告位置表")]
public partial class CoreCmsAdvertPosition
{
/// <summary>
/// 广告位置表
/// 构造函数
/// </summary>
public CoreCmsAdvertPosition()
{
@@ -29,50 +30,111 @@ namespace CoreCms.Net.Model.Entities
/// 序列
/// </summary>
[Display(Name = "序列")]
[SugarColumn(ColumnDescription = "序列", IsPrimaryKey = true, IsIdentity = true)]
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
[Required(ErrorMessage = "请输入{0}")]
public System.Int32 id { get; set; }
/// <summary>
/// 名称
/// </summary>
[Display(Name = "名称")]
[SugarColumn(ColumnDescription = "名称")]
[Required(ErrorMessage = "请输入{0}")]
[StringLength(120, ErrorMessage = "{0}不能超过{1}字符长度")]
[StringLength(maximumLength:120,ErrorMessage = "{0}不能超过{1}字")]
public System.String name { get; set; }
/// <summary>
/// 位置编码
/// </summary>
[Display(Name = "位置编码")]
[SugarColumn(ColumnDescription = "位置编码")]
[Required(ErrorMessage = "请输入{0}")]
[StringLength(32, ErrorMessage = "{0}不能超过{1}字符长度")]
[StringLength(maximumLength:32,ErrorMessage = "{0}不能超过{1}字")]
public System.String code { get; set; }
/// <summary>
/// 添加时间
/// </summary>
[Display(Name = "添加时间")]
[SugarColumn(ColumnDescription = "添加时间", IsNullable = true)]
public System.DateTime? createTime { get; set; }
/// <summary>
/// 更新时间
/// </summary>
[Display(Name = "更新时间")]
[SugarColumn(ColumnDescription = "更新时间", IsNullable = true)]
public System.DateTime? updateTime { get; set; }
/// <summary>
/// 广告平台
/// </summary>
[Display(Name = "广告平台")]
[Required(ErrorMessage = "请输入{0}")]
public System.Int32 platform { get; set; }
/// <summary>
/// 广告位类型
/// </summary>
[Display(Name = "广告位类型")]
[Required(ErrorMessage = "请输入{0}")]
public System.Int32 type { get; set; }
/// <summary>
/// 是否启用
/// </summary>
[Display(Name = "是否启用")]
[SugarColumn(ColumnDescription = "是否启用")]
[Required(ErrorMessage = "请输入{0}")]
public System.Boolean isEnable { get; set; }
/// <summary>
/// 排序
/// </summary>
[Display(Name = "排序")]
[SugarColumn(ColumnDescription = "排序")]
[Required(ErrorMessage = "请输入{0}")]
public System.Int32 sort { get; set; }
}
}

View File

@@ -20,9 +20,14 @@ namespace CoreCms.Net.Model.FromBody
public class WxAdvert
{
/// <summary>
/// 广告位置
/// 广告位置编码
/// </summary>
public string codes { get; set; }
public string code { get; set; }
/// <summary>
/// 广告位值类型
/// </summary>
public int platform { get; set; }
}
#endregion

View File

@@ -2,38 +2,63 @@
<view>
<!--提示框组件-->
<u-toast ref="uToast" />
<view v-if="position && advert">
<view v-if="position.type==1">
<view v-for="(item, index) in advert" :key="index">
<u--image :showLoading="true" :src="item.imageUrl" mode="widthFix" width="100%" height="auto" @click="showSliderInfo(item.type, item.val)"></u--image>
</view>
</view>
<view v-else>
<u-swiper :list="advert" indicator indicatorMode="line" circular keyName="imageUrl" :showTitle="showTitle" @click="clickSwiper"></u-swiper>
</view>
</view>
</view>
</template>
<script>
export default {
props: {
codes: {
code: {
type: String,
required: true,
default: 'tpl1_class_banner1'
}
},
showTitle: {
type: Boolean,
required: false,
default: false
},
},
data() {
return {
position: {},
advert: [],
}
},
created() {
//console.log(this.codes);
this.getData();
},
methods: {
getData() {
this.$u.api.advert({
codes: this.codes
code: this.code,
platform: 3
}).then(res => {
this.advert = res.data;
if (res.status) {
this.advert = res.data.childs;
this.position = res.data.position;
if (this.advert) {
for (var i = 0; i < this.advert.length; i++) {
this.advert[i].title = this.advert[i].name;
}
}
}
});
},
clickSwiper(index) {
console.log(index);
this.showSliderInfo(this.advert[index].type, this.advert[index].val)
}
},
}
</script>

View File

@@ -69,7 +69,12 @@
</view>
</u-sticky>
<view class="coreshop-padding-10">
<coreshop-advert code="TplIndexBanner1" showTitle="true"></coreshop-advert>
</view>
<view class="wrapper">
<view class="list">
<view class="category" v-for="(good, key) in goodsList" :key="key" :id="`cate-${good.id}`">
<view class="items">

View File

@@ -166,6 +166,20 @@ namespace CoreCms.Net.Web.Admin.Controllers
//排序 int
var sort = Request.Form["sort"].FirstOrDefault().ObjectToInt(0);
if (sort > 0) @where = @where.And(p => p.sort == sort);
//广告平台 int
var platform = Request.Form["platform"].FirstOrDefault().ObjectToInt(0);
if (platform > 0)
{
where = where.And(p => p.platform == platform);
}
//广告位类型 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0)
{
where = where.And(p => p.type == type);
}
//获取数据
var list = await _coreCmsAdvertPositionServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent,
pageSize);
@@ -192,6 +206,15 @@ namespace CoreCms.Net.Web.Admin.Controllers
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var advertPlatform = EnumHelper.EnumToList<GlobalEnumVars.AdvertPlatform>();
var advertPositionType = EnumHelper.EnumToList<GlobalEnumVars.AdvertPositionType>();
jm.data = new
{
advertPlatform,
advertPositionType
};
return jm;
}
@@ -210,6 +233,15 @@ namespace CoreCms.Net.Web.Admin.Controllers
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var advertPlatform = EnumHelper.EnumToList<GlobalEnumVars.AdvertPlatform>();
var advertPositionType = EnumHelper.EnumToList<GlobalEnumVars.AdvertPositionType>();
jm.data = new
{
advertPlatform,
advertPositionType
};
return jm;
}
@@ -269,7 +301,16 @@ namespace CoreCms.Net.Web.Admin.Controllers
}
jm.code = 0;
jm.data = model;
var advertPlatform = EnumHelper.EnumToList<GlobalEnumVars.AdvertPlatform>();
var advertPositionType = EnumHelper.EnumToList<GlobalEnumVars.AdvertPositionType>();
jm.data = new
{
advertPlatform,
advertPositionType,
model
};
return jm;
}
@@ -311,6 +352,8 @@ namespace CoreCms.Net.Web.Admin.Controllers
oldModel.updateTime = DateTime.Now;
oldModel.isEnable = entity.isEnable;
oldModel.sort = entity.sort;
oldModel.platform = entity.platform;
oldModel.type = entity.type;
//事物处理过程结束
var bl = await _coreCmsAdvertPositionServices.UpdateAsync(oldModel);

View File

@@ -225,7 +225,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var types = EnumHelper.EnumToList<GlobalEnumVars.AdvertPositionType>();
var types = EnumHelper.EnumToList<GlobalEnumVars.AdvertisementType>();
jm.data = new
{
types
@@ -250,7 +250,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
var jm = new AdminUiCallBack { code = 0 };
var advertPosition = await _coreCmsAdvertPositionServices.QueryAsync();
var types = EnumHelper.EnumToList<GlobalEnumVars.AdvertPositionType>();
var types = EnumHelper.EnumToList<GlobalEnumVars.AdvertisementType>();
jm.data = new
{
advertPosition,
@@ -311,7 +311,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
jm.code = 0;
var advertPosition = await _coreCmsAdvertPositionServices.QueryAsync();
var types = EnumHelper.EnumToList<GlobalEnumVars.AdvertPositionType>();
var types = EnumHelper.EnumToList<GlobalEnumVars.AdvertisementType>();
jm.data = new
{

View File

@@ -326,8 +326,6 @@ namespace CoreCms.Net.Admin.Admin.Controllers
};
jm.code = 0;
return jm;
return jm;
}
#endregion

View File

@@ -622,6 +622,45 @@
<None Include="wwwroot\static\js\common.js" />
</ItemGroup>
<ItemGroup>
<Content Update="wwwroot\views\content\advert\advertisement\create.html">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Update="wwwroot\views\content\advert\advertisement\edit.html">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Update="wwwroot\views\content\advert\advertisement\getArticle.html">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Update="wwwroot\views\content\advert\advertisement\getArticleType.html">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Update="wwwroot\views\content\advert\advertisement\getGoods.html">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Update="wwwroot\views\content\advert\advertisement\index.html">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Update="wwwroot\views\content\advert\advertposition\create.html">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Update="wwwroot\views\content\advert\advertposition\edit.html">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Update="wwwroot\views\content\advert\advertposition\index.html">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<None Update="Dockerfile">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>

View File

@@ -96,6 +96,7 @@
cols: [
[
{ field: 'id', title: '序列', width: 60, sort: false },
{ field: 'positionId', title: '广告位序列', sort: false },
{ field: 'name', title: '广告名称', sort: false },
{
field: 'imageUrl', title: '广告图片', width: 100, sort: false,

View File

@@ -1,6 +1,30 @@
<script type="text/html" template lay-done="layui.data.done(d);">
<div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-CoreCmsAdvertPosition-createForm" id="LAY-app-CoreCmsAdvertPosition-createForm">
<div class="layui-form-item">
<label for="platform" class="layui-form-label layui-form-required">广告来源</label>
<div class="layui-input-block">
<select name="platform" required lay-verify="required" lay-reqText="请选择广告来源">
<option value="">请选择</option>
{{# layui.each(d.params.data.advertPlatform, function(index, item){ }}
<option value="{{ item.value }}">{{ item.description }}</option>
{{# }); }}
</select>
</div>
</div>
<div class="layui-form-item">
<label for="platform" class="layui-form-label layui-form-required">广告位类型</label>
<div class="layui-input-block">
<select name="type" required lay-verify="required" lay-reqText="请选择广告位类型">
<option value="">请选择</option>
{{# layui.each(d.params.data.advertPositionType, function(index, item){ }}
<option value="{{ item.value }}">{{- item.description }}</option>
{{# }); }}
</select>
</div>
</div>
<div class="layui-form-item">
<label for="name" class="layui-form-label">名称</label>
<div class="layui-input-inline">
@@ -28,7 +52,7 @@
<div class="layui-input-inline">
<input type="number" min="0" max="999999" name="sort" id="sort" lay-verify="required|number" class="layui-input" value="1" placeholder="请输入排序" lay-reqText="请输入排序并为数字" />
</div>
<div class="layui-form-mid layui-word-aux">请输入数字</div>
<div class="layui-form-mid layui-word-aux">从大到小排序</div>
</div>
<div class="layui-form-item core-hidden">

View File

@@ -1,11 +1,37 @@
<script type="text/html" template lay-done="layui.data.sendParams(d);">
<div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-CoreCmsAdvertPosition-editForm" id="LAY-app-CoreCmsAdvertPosition-editForm">
<input type="hidden" name="id" id="id" value="{{d.params.data.id || '' }}" />
<input type="hidden" name="id" id="id" value="{{d.params.data.model.id || '' }}" />
<div class="layui-form-item">
<label for="platform" class="layui-form-label layui-form-required">广告来源</label>
<div class="layui-input-block">
<select name="platform" required lay-verify="required" lay-reqText="请选择广告来源">
<option value="">请选择</option>
{{# layui.each(d.params.data.advertPlatform, function(index, item){ }}
<option value="{{ item.value }}" {{item.value===d.params.data.model.platform?'selected="selected"':''}}>{{ item.title }}</option>
{{# }); }}
</select>
</div>
</div>
<div class="layui-form-item">
<label for="platform" class="layui-form-label layui-form-required">广告位类型</label>
<div class="layui-input-block">
<select name="type" required lay-verify="required" lay-reqText="请选择广告位类型">
<option value="">请选择</option>
{{# layui.each(d.params.data.advertPositionType, function(index, item){ }}
<option value="{{ item.value }}" {{item.value===d.params.data.model.type?'selected="selected"':''}}>{{- item.description }}</option>
{{# }); }}
</select>
</div>
</div>
<div class="layui-form-item">
<label for="name" class="layui-form-label">名称</label>
<div class="layui-input-inline">
<input name="name" id="name" lay-verify="required|verifyname" class="layui-input" placeholder="请输入名称" lay-reqText="请输入名称" value="{{d.params.data.name || '' }}" />
<input name="name" id="name" lay-verify="required|verifyname" class="layui-input" placeholder="请输入名称" lay-reqText="请输入名称" value="{{d.params.data.model.name || '' }}" />
</div>
<div class="layui-form-mid layui-word-aux">请输入不超过120个字符内容</div>
</div>
@@ -13,7 +39,7 @@
<div class="layui-form-item">
<label for="code" class="layui-form-label">位置编码</label>
<div class="layui-input-inline">
<input name="code" id="code" lay-verify="required|verifycode" class="layui-input" lay-reqText="请输入位置编码" placeholder="请输入位置编码" value="{{d.params.data.code || '' }}"/>
<input name="code" id="code" lay-verify="required|verifycode" class="layui-input" lay-reqText="请输入位置编码" placeholder="请输入位置编码" value="{{d.params.data.model.code || '' }}" />
</div>
<div class="layui-form-mid layui-word-aux">请输入英文</div>
</div>
@@ -21,16 +47,16 @@
<div class="layui-form-item" pane>
<label for="isEnable" class="layui-form-label">是否启用</label>
<div class="layui-input-block">
<input type="checkbox" lay-filter="switch" name="isEnable" id="isEnable" {{ d.params.data.isEnable ? 'checked' : '' }} lay-skin="switch" lay-text="开启|关闭">
<input type="checkbox" lay-filter="switch" name="isEnable" id="isEnable" {{ d.params.data.model.isEnable ? 'checked' : '' }} lay-skin="switch" lay-text="开启|关闭">
</div>
</div>
<div class="layui-form-item">
<label for="sort" class="layui-form-label">排序</label>
<div class="layui-input-inline">
<input type="number" min="0" max="999999" name="sort" id="sort" lay-verify="required|number" class="layui-input" value="{{d.params.data.sort}}" placeholder="请输入排序" lay-reqText="请输入排序并为数字" />
<input type="number" min="0" max="999999" name="sort" id="sort" lay-verify="required|number" class="layui-input" value="{{d.params.data.model.sort}}" placeholder="请输入排序" lay-reqText="请输入排序并为数字" />
</div>
<div class="layui-form-mid layui-word-aux">请输入数字</div>
<div class="layui-form-mid layui-word-aux">从大到小排序</div>
</div>
<div class="layui-form-item core-hidden">

View File

@@ -35,6 +35,26 @@
</select>
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline">
<select name="platform">
<option value="">广告平台</option>
{{# layui.each(indexData.advertPlatform, function(index, item){ }}
<option value="{{ item.value }}">{{ item.description }}</option>
{{# }); }}
</select>
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline">
<select name="type">
<option value="">广告类型</option>
{{# layui.each(indexData.advertPositionType, function(index, item){ }}
<option value="{{ item.value }}">{{ item.description }}</option>
{{# }); }}
</select>
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline core-time-input">
<input type="text" name="updateTime" id="searchTime-CoreCmsAdvertPosition-updateTime" placeholder="请输入更新时间" class="layui-input">
@@ -104,6 +124,28 @@
[
//{ type: "checkbox", fixed: "left" },
{ field: 'id', title: '序列', width: 60, sort: false },
{
field: 'platform', title: '广告来源', sort: false,
templet: function (data) {
for (var i = 0; i < d.data.advertPlatform.length; i++) {
if (data.platform == d.data.advertPlatform[i].value) {
return d.data.advertPlatform[i].description;
}
}
return "";
}
},
{
field: 'type', title: '广告位类型', sort: false,
templet: function (data) {
for (var i = 0; i < d.data.advertPositionType.length; i++) {
if (data.type == d.data.advertPositionType[i].value) {
return d.data.advertPositionType[i].description;
}
}
return "";
}
},
{ field: 'name', title: '名称', sort: false },
{ field: 'code', title: '位置编码', sort: false },
{ field: 'createTime', title: '添加时间', width: 130, sort: false },
@@ -149,7 +191,7 @@
admin.popup({
shadeClose: false,
title: '创建数据',
area: ['600px', '330px'],
area: ['600px', '400px'],
id: 'LAY-popup-CoreCmsAdvertPosition-create',
success: function (layero, index) {
view(this.id).render('content/advert/advertposition/create', { data: e.data }).done(function () {
@@ -194,7 +236,7 @@
admin.popup({
shadeClose: false,
title: '编辑数据',
area: ['600px', '330px'],
area: ['600px', '400px'],
id: 'LAY-popup-CoreCmsAdvertPosition-edit',
success: function (layero, index) {
view(this.id).render('content/advert/advertposition/edit', { data: e.data }).done(function () {

View File

@@ -77,8 +77,6 @@ namespace CoreCms.Net.Web.WebApi.Controllers
}
#endregion
#region 广=============================================================================
/// <summary>
/// 获取广告位置信息
@@ -90,7 +88,7 @@ namespace CoreCms.Net.Web.WebApi.Controllers
{
var jm = new WebApiCallBack();
var position = await _advertPositionServices.QueryByClauseAsync(p => p.isEnable && p.code == entity.codes);
var position = await _advertPositionServices.QueryByClauseAsync(p => p.isEnable && p.code == entity.code && p.platform == entity.platform);
if (position == null)
{
jm.msg = "未获取到广告位置信息";
@@ -98,13 +96,15 @@ namespace CoreCms.Net.Web.WebApi.Controllers
}
jm.status = true;
jm.data = await _advertisementServices.QueryListByClauseAsync(p => p.positionId == position.id);
jm.data = new
{
position,
childs = await _advertisementServices.QueryListByClauseAsync(p => p.positionId == position.id, p => p.sort, OrderByType.Desc, true)
};
return jm;
}
#endregion
}
}

View File

@@ -0,0 +1,2 @@
ALTER TABLE CoreCmsAdvertPosition ADD COLUMN platform int DEFAULT 0 NOT NULL COMMENT '广告平台' AFTER sort;
ALTER TABLE CoreCmsAdvertPosition ADD COLUMN type int DEFAULT 0 NOT NULL COMMENT '广告位类型' AFTER sort;

View File

@@ -1,3 +1,7 @@
2022-01-10
【新增】表【CoreCmsAdvertPosition】新增【platform】广告平台字段
【新增】表【CoreCmsAdvertPosition】新增【type】广告位类型
2022-12-30
【新增】新增表【WeChatMessageResponse】微信公众号回复消息表。
【新增】新增表【WeChatUserAccessToken】微信用户accessToken表。

Binary file not shown.

View File

@@ -1,3 +1,7 @@
2022-01-10
【新增】表【CoreCmsAdvertPosition】新增【platform】广告平台字段
【新增】表【CoreCmsAdvertPosition】新增【type】广告位类型
2022-12-30
【新增】新增表【WeChatMessageResponse】微信公众号回复消息表。
【新增】新增表【WeChatUserAccessToken】微信用户accessToken表。