diff --git a/CoreCms.Net.Model/Entities/Good/CoreCmsGoods.cs b/CoreCms.Net.Model/Entities/Good/CoreCmsGoods.cs index 84447afc..df75e855 100644 --- a/CoreCms.Net.Model/Entities/Good/CoreCmsGoods.cs +++ b/CoreCms.Net.Model/Entities/Good/CoreCmsGoods.cs @@ -243,5 +243,14 @@ namespace CoreCms.Net.Model.Entities [Display(Name = "是否删除")] [Required(ErrorMessage = "请输入{0}")] public bool isDel { get; set; } + + + /// + /// 初始销量 + /// + [Display(Name = "初始销量")] + [Required(ErrorMessage = "请输入{0}")] + public int initialSales { get; set; } + } } \ No newline at end of file diff --git a/CoreCms.Net.Repository/Good/CoreCmsGoodsRepository.cs b/CoreCms.Net.Repository/Good/CoreCmsGoodsRepository.cs index 0742566b..8b6496bf 100644 --- a/CoreCms.Net.Repository/Good/CoreCmsGoodsRepository.cs +++ b/CoreCms.Net.Repository/Good/CoreCmsGoodsRepository.cs @@ -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 => diff --git a/CoreCms.Net.Services/Good/CoreCmsGoodsServices.cs b/CoreCms.Net.Services/Good/CoreCmsGoodsServices.cs index ef57b02f..fc49d92e 100644 --- a/CoreCms.Net.Services/Good/CoreCmsGoodsServices.cs +++ b/CoreCms.Net.Services/Good/CoreCmsGoodsServices.cs @@ -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 重写根据条件查询数据 /// /// 重写根据条件查询数据 @@ -641,10 +641,9 @@ namespace CoreCms.Net.Services } #endregion - - #region 重写根据条件查询分页数据 + #region 重写根据条件及自定义排序查询分页数据 /// - /// 重写根据条件查询分页数据 + /// 重写根据条件及自定义排序查询分页数据 /// /// /// diff --git a/CoreCms.Net.Web.Admin/wwwroot/lib/layuiAdmin/config.js b/CoreCms.Net.Web.Admin/wwwroot/lib/layuiAdmin/config.js index 301c5d38..5d958210 100644 --- a/CoreCms.Net.Web.Admin/wwwroot/lib/layuiAdmin/config.js +++ b/CoreCms.Net.Web.Admin/wwwroot/lib/layuiAdmin/config.js @@ -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' //模块事件名 diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/create.html b/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/create.html index 7c957da8..64e59632 100644 --- a/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/create.html +++ b/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/create.html @@ -92,6 +92,12 @@ +
+ +
+ +
+
@@ -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]']; diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/edit.html b/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/edit.html index 573cb55d..7da56a07 100644 --- a/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/edit.html +++ b/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/edit.html @@ -89,6 +89,12 @@
+
+ +
+ +
+
@@ -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]']; diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/index.html b/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/index.html index 2b22b0e7..208e62a5 100644 --- a/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/index.html +++ b/CoreCms.Net.Web.Admin/wwwroot/views/good/goods/index.html @@ -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) { diff --git a/数据库/MySql/20220715/升级脚本.sql b/数据库/MySql/20220715/升级脚本.sql new file mode 100644 index 00000000..9f6413d5 --- /dev/null +++ b/数据库/MySql/20220715/升级脚本.sql @@ -0,0 +1 @@ +ALTER TABLE CoreCmsGoods ADD COLUMN initialSales int DEFAULT 0 NOT NULL COMMENT '初始销量' AFTER isDel; \ No newline at end of file diff --git a/数据库/MySql/20220715/完整脚本/coreshop20220715带商品演示脚本navicat导出.rar b/数据库/MySql/20220715/完整脚本/coreshop20220715带商品演示脚本navicat导出.rar new file mode 100644 index 00000000..e5bc0804 Binary files /dev/null and b/数据库/MySql/20220715/完整脚本/coreshop20220715带商品演示脚本navicat导出.rar differ diff --git a/数据库/MySql/20220715/完整脚本/coreshop2022715带商品演示脚本aliyun导出.zip b/数据库/MySql/20220715/完整脚本/coreshop2022715带商品演示脚本aliyun导出.zip new file mode 100644 index 00000000..60c52cc2 Binary files /dev/null and b/数据库/MySql/20220715/完整脚本/coreshop2022715带商品演示脚本aliyun导出.zip differ diff --git a/数据库/MySql/数据库更新日志.txt b/数据库/MySql/数据库更新日志.txt index 8ad250fd..17066266 100644 --- a/数据库/MySql/数据库更新日志.txt +++ b/数据库/MySql/数据库更新日志.txt @@ -1,3 +1,6 @@ +2022-07-15 +【新增】表【CoreCmsGoods】增加【initialSales】初始销量字段,用于展示友好销量 + 2022-07-04 【新增】表【WeChatTransactionComponentOrder】微信交易订单,表增加【paymentId】字段。 diff --git a/数据库/SqlServer/20220715/20220715完整数据库带演示商品.rar b/数据库/SqlServer/20220715/20220715完整数据库带演示商品.rar new file mode 100644 index 00000000..397f603b Binary files /dev/null and b/数据库/SqlServer/20220715/20220715完整数据库带演示商品.rar differ diff --git a/数据库/SqlServer/20220715/升级脚本.sql b/数据库/SqlServer/20220715/升级脚本.sql new file mode 100644 index 00000000..538b857c --- /dev/null +++ b/数据库/SqlServer/20220715/升级脚本.sql @@ -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'; \ No newline at end of file diff --git a/数据库/SqlServer/数据库更新日志.txt b/数据库/SqlServer/数据库更新日志.txt index 0768ab17..67de2fb3 100644 --- a/数据库/SqlServer/数据库更新日志.txt +++ b/数据库/SqlServer/数据库更新日志.txt @@ -1,3 +1,6 @@ +2022-07-15 +【新增】表【CoreCmsGoods】增加【initialSales】初始销量字段,用于展示友好销量 + 2022-07-05 【新增】表【CoreCmsUserTocash】用户提现表,增加【type】提现方式,【message】反馈信息两个字段