【新增】表【CoreCmsGoods】增加【initialSales】初始销量字段。

【新增】业务逻辑增加可设置的虚假销量,用于展示友好销量。
【优化】后端使用增加版本号更新,方便对比当前版本信息,通过后台右上角进入查阅。
This commit is contained in:
大灰灰
2022-07-15 23:50:27 +08:00
parent d122d4505e
commit b5c5e97583
14 changed files with 74 additions and 23 deletions

View File

@@ -243,5 +243,14 @@ namespace CoreCms.Net.Model.Entities
[Display(Name = "是否删除")]
[Required(ErrorMessage = "请输入{0}")]
public bool isDel { get; set; }
/// <summary>
/// 初始销量
/// </summary>
[Display(Name = "初始销量")]
[Required(ErrorMessage = "请输入{0}")]
public int initialSales { get; set; }
}
}

View File

@@ -438,6 +438,7 @@ namespace CoreCms.Net.Repository
oldModel.isRecommend = model.isRecommend;
oldModel.isHot = model.isHot;
oldModel.isDel = model.isDel;
oldModel.initialSales = model.initialSales;
var bl = await DbClient.Updateable(oldModel).ExecuteCommandHasChangeAsync();
if (bl)
@@ -925,7 +926,8 @@ namespace CoreCms.Net.Repository
freezeStock = pd.freezeStock,
pointsDeduction = pd.pointsDeduction,
points = pd.points,
weight = pd.weight
weight = pd.weight,
initialSales = good.initialSales,
})
.MergeTable()
.OrderBy(p => p.createTime, OrderByType.Desc)
@@ -989,7 +991,8 @@ namespace CoreCms.Net.Repository
freezeStock = pd.freezeStock,
pointsDeduction = pd.pointsDeduction,
points = pd.points,
weight = pd.weight
weight = pd.weight,
initialSales = good.initialSales,
})
.MergeTable()
.Where(p => dbIds.Contains(p.id)).ToListAsync();
@@ -1065,7 +1068,8 @@ namespace CoreCms.Net.Repository
points = pd.points,
stock = pd.stock,
freezeStock = pd.freezeStock,
weight = pd.weight
weight = pd.weight,
initialSales = good.initialSales,
})
.With(SqlWith.NoLock)
.MergeTable()
@@ -1117,7 +1121,8 @@ namespace CoreCms.Net.Repository
points = pd.points,
stock = pd.stock,
freezeStock = pd.freezeStock,
weight = pd.weight
weight = pd.weight,
initialSales = good.initialSales,
})
.MergeTable()
.CountAsync(predicate);
@@ -1191,7 +1196,8 @@ namespace CoreCms.Net.Repository
freezeStock = pd.freezeStock,
pointsDeduction = pd.pointsDeduction,
points = pd.points,
weight = pd.weight
weight = pd.weight,
initialSales = good.initialSales,
})
.With(SqlWith.NoLock)
.MergeTable()
@@ -1245,7 +1251,8 @@ namespace CoreCms.Net.Repository
freezeStock = pd.freezeStock,
pointsDeduction = pd.pointsDeduction,
points = pd.points,
weight = pd.weight
weight = pd.weight,
initialSales = good.initialSales,
})
.MergeTable()
.OrderByIF(orderByExpression != null, orderByExpression, orderByType)
@@ -1317,7 +1324,8 @@ namespace CoreCms.Net.Repository
freezeStock = pd.freezeStock,
pointsDeduction = pd.pointsDeduction,
points = pd.points,
weight = pd.weight
weight = pd.weight,
initialSales = good.initialSales,
})
.With(SqlWith.NoLock)
.MergeTable()
@@ -1371,7 +1379,8 @@ namespace CoreCms.Net.Repository
freezeStock = pd.freezeStock,
pointsDeduction = pd.pointsDeduction,
points = pd.points,
weight = pd.weight
weight = pd.weight,
initialSales = good.initialSales,
})
.MergeTable()
.OrderByIF(orderByPredicate != null, orderByPredicate, orderByType)
@@ -1441,7 +1450,8 @@ namespace CoreCms.Net.Repository
freezeStock = pd.freezeStock,
pointsDeduction = pd.pointsDeduction,
points = pd.points,
weight = pd.weight
weight = pd.weight,
initialSales = good.initialSales,
})
.With(SqlWith.NoLock)
.MergeTable()
@@ -1495,7 +1505,8 @@ namespace CoreCms.Net.Repository
freezeStock = pd.freezeStock,
pointsDeduction = pd.pointsDeduction,
points = pd.points,
weight = pd.weight
weight = pd.weight,
initialSales = good.initialSales,
})
.MergeTable()
.OrderByIF(!string.IsNullOrEmpty(orderBy), orderBy)
@@ -1568,7 +1579,8 @@ namespace CoreCms.Net.Repository
freezeStock = pd.freezeStock,
pointsDeduction = pd.pointsDeduction,
points = pd.points,
weight = pd.weight
weight = pd.weight,
initialSales = good.initialSales,
})
.With(SqlWith.NoLock)
.MergeTable()
@@ -1622,7 +1634,8 @@ namespace CoreCms.Net.Repository
freezeStock = pd.freezeStock,
pointsDeduction = pd.pointsDeduction,
points = pd.points,
weight = pd.weight
weight = pd.weight,
initialSales = good.initialSales,
})
.MergeTable()
.Where(predicate)
@@ -1699,7 +1712,8 @@ namespace CoreCms.Net.Repository
freezeStock = pd.freezeStock,
pointsDeduction = pd.pointsDeduction,
points = pd.points,
weight = pd.weight
weight = pd.weight,
initialSales = good.initialSales,
})
.With(SqlWith.NoLock)
.MergeTable()
@@ -1753,7 +1767,8 @@ namespace CoreCms.Net.Repository
freezeStock = pd.freezeStock,
pointsDeduction = pd.pointsDeduction,
points = pd.points,
weight = pd.weight
weight = pd.weight,
initialSales = good.initialSales,
})
.MergeTable()
.Where(predicate)
@@ -1823,6 +1838,7 @@ namespace CoreCms.Net.Repository
isRecommend = good.isRecommend,
isHot = good.isHot,
isDel = good.isDel,
initialSales = good.initialSales,
})
.Mapper(p => p.sku, p => p.sku.First().goodsId)
.Mapper(it =>
@@ -1870,7 +1886,8 @@ namespace CoreCms.Net.Repository
updateTime = good.updateTime,
isRecommend = good.isRecommend,
isHot = good.isHot,
isDel = good.isDel
isDel = good.isDel,
initialSales = good.initialSales,
})
.Mapper(p => p.sku, p => p.sku.First().goodsId)
.Mapper(it =>

View File

@@ -523,13 +523,14 @@ namespace CoreCms.Net.Services
model.isFav = await _goodsCollectionServices.ExistsAsync(p => p.goodsId == model.id && p.userId == userId);
}
//取默认货品
var products = await _productsServices.QueryByClauseAsync(p => p.goodsId == model.id && p.isDefalut == true && p.isDel == false);
model.sku = await _productsServices.QueryListByClauseAsync(p => p.goodsId == model.id && p.isDel == false);
if (!model.sku.Any()) return null;
var products = model.sku.Find(p => p.isDefalut);
if (products == null) return null;
var getProductInfo = await _productsServices.GetProductInfo(products.id, isPromotion, userId, type, groupId);
if (getProductInfo == null) return null;
model.product = getProductInfo;
model.sn = getProductInfo.sn;
model.price = getProductInfo.price;
model.costprice = getProductInfo.costprice;
@@ -552,7 +553,7 @@ namespace CoreCms.Net.Services
model.brand = brand;
//取出销量
model.buyCount = await _orderItemServices.GetCountAsync(p => p.goodsId == model.id);
model.buyCount = model.initialSales + await _orderItemServices.GetSumAsync(p => p.goodsId == model.id, o => o.nums, true);
return model;
}
#endregion
@@ -625,7 +626,6 @@ namespace CoreCms.Net.Services
#endregion
#region
/// <summary>
/// 重写根据条件查询数据
@@ -641,10 +641,9 @@ namespace CoreCms.Net.Services
}
#endregion
#region
#region
/// <summary>
/// 重写根据条件查询分页数据
/// 重写根据条件及自定义排序查询分页数据
/// </summary>
/// <param name="predicate"></param>
/// <param name="orderBy"></param>

View File

@@ -12,7 +12,7 @@ layui.define(['laytpl', 'layer', 'element', 'util'], function (exports) {
, pageTabs: false //是否开启页面选项卡功能。单页版不推荐开启
, name: '核心商城系统'
, version: 'CoreShop v1.0'
, version: 'CoreShopProfessional v0.5.0'
, tableName: 'CoreCms' //本地存储表名
, MOD_NAME: 'admin' //模块事件名

View File

@@ -92,6 +92,12 @@
<input type="number" min="0" max="999999" name="goods[sort]" id="sort" lay-verify="required|number" class="layui-input" value="1" placeholder="请输入商品排序" lay-reqText="请输入商品排序并为数字" />
</div>
</div>
<div class="layui-form-item">
<label for="initialSales" class="layui-form-label layui-form-required">初始销量</label>
<div class="layui-input-inline layui-inline-2">
<input type="number" min="0" max="999999" name="goods[initialSales]" id="initialSales" lay-verify="required|number" class="layui-input" value="1" placeholder="请输入初始销量" lay-reqText="请输入初始销量并为数字" />
</div>
</div>
<div class="layui-form-item">
<label for="isMarketable" class="layui-form-label layui-form-required">是否上架</label>
<div class="layui-input-inline layui-inline-2">
@@ -1474,6 +1480,7 @@
goods.price = field['goods[price]'];
goods.sn = field['goods[sn]'];
goods.sort = field['goods[sort]'];
goods.initialSales = field['goods[initialSales]'];
goods.spesDesc = field['goods[spesDesc]'];
goods.stock = field['goods[stock]'];
goods.unit = field['goods[unit]'];

View File

@@ -89,6 +89,12 @@
<input type="number" min="0" max="999999" name="goods[sort]" id="sort" lay-verType="tips" lay-verify="required|number" class="layui-input" value="{{d.data.model.sort }}" placeholder="请输入商品排序" lay-reqText="请输入商品排序并为数字" />
</div>
</div>
<div class="layui-form-item">
<label for="initialSales" class="layui-form-label layui-form-required">初始销量</label>
<div class="layui-input-inline layui-inline-2">
<input type="number" min="0" max="999999" name="goods[initialSales]" id="initialSales" lay-verType="tips" lay-verify="required|number" class="layui-input" value="{{d.data.model.initialSales }}" placeholder="请输入初始销量" lay-reqText="请输入初始销量并为数字" />
</div>
</div>
<div class="layui-form-item">
<label for="isMarketable" class="layui-form-label layui-form-required">是否上架</label>
<div class="layui-input-inline layui-inline-2">
@@ -1572,6 +1578,7 @@
goods.price = field['goods[price]'];
goods.sn = field['goods[sn]'];
goods.sort = field['goods[sort]'];
goods.initialSales = field['goods[initialSales]'];
goods.spesDesc = field['goods[spesDesc]'];
goods.stock = field['goods[stock]'];
goods.unit = field['goods[unit]'];

View File

@@ -206,6 +206,7 @@
{ field: 'name', title: '商品名称', sort: false },
//{ field: 'stock', title: '库存', sort: false, width: 60 },
{ field: 'sort', title: '排序', sort: false, width: 40 },
{ field: 'initialSales', title: '初始销量', sort: false, width: 70 },
{
field: 'productsDistributionType', title: '佣金方式', sort: false, width: 80, templet: function (data) {
if (data.productsDistributionType === 1) {

View File

@@ -0,0 +1 @@
ALTER TABLE CoreCmsGoods ADD COLUMN initialSales int DEFAULT 0 NOT NULL COMMENT '初始销量' AFTER isDel;

View File

@@ -1,3 +1,6 @@
2022-07-15
【新增】表【CoreCmsGoods】增加【initialSales】初始销量字段用于展示友好销量
2022-07-04
【新增】表【WeChatTransactionComponentOrder】微信交易订单表增加【paymentId】字段。

View File

@@ -0,0 +1,4 @@
ALTER TABLE [dbo].[CoreCmsGoods] ADD [initialSales] INT DEFAULT 0 NOT NULL;
GO
EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'初始销量', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'CoreCmsGoods', @level2type = N'COLUMN', @level2name = N'initialSales';

View File

@@ -1,3 +1,6 @@
2022-07-15
【新增】表【CoreCmsGoods】增加【initialSales】初始销量字段用于展示友好销量
2022-07-05
【新增】表【CoreCmsUserTocash】用户提现表增加【type】提现方式【message】反馈信息两个字段