This commit is contained in:
zpc 2025-09-28 22:49:32 +08:00
parent aa8fa076e5
commit bd7bcc4933
13 changed files with 71 additions and 211 deletions

View File

@ -25,6 +25,11 @@ namespace CoreCms.Net.Model.ViewModels.SQ
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 用户昵称
/// </summary>
public string NickName { get; set; }
/// <summary>
/// 用户头像
/// </summary>

View File

@ -209,38 +209,13 @@ namespace CoreCms.Net.Repository
{
page = await DbClient.Queryable<SQReservationParticipants>()
.OrderByIF(orderByExpression != null, orderByExpression, orderByType)
.WhereIF(predicate != null, predicate).Select(p => new SQReservationParticipants
{
id = p.id,
reservation_id = p.reservation_id,
user_id = p.user_id,
role = p.role,
join_time = p.join_time,
quit_time = p.quit_time,
status = p.status,
important_data = p.important_data,
is_refund = p.is_refund,
remarks = p.remarks,
}).With(SqlWith.NoLock).ToPageListAsync(pageIndex, pageSize, totalCount);
.WhereIF(predicate != null, predicate).With(SqlWith.NoLock).ToPageListAsync(pageIndex, pageSize, totalCount);
}
else
{
page = await DbClient.Queryable<SQReservationParticipants>()
.OrderByIF(orderByExpression != null, orderByExpression, orderByType)
.WhereIF(predicate != null, predicate).Select(p => new SQReservationParticipants
{
id = p.id,
reservation_id = p.reservation_id,
user_id = p.user_id,
role = p.role,
join_time = p.join_time,
quit_time = p.quit_time,
status = p.status,
important_data = p.important_data,
is_refund = p.is_refund,
remarks = p.remarks,
}).ToPageListAsync(pageIndex, pageSize, totalCount);
.WhereIF(predicate != null, predicate).ToPageListAsync(pageIndex, pageSize, totalCount);
}
var list = new PageList<SQReservationParticipants>(page, pageIndex, pageSize, totalCount);
return list;

View File

@ -87,7 +87,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
private readonly ICoreCmsPagesServices _pagesServices;
private readonly IToolsServices _toolsServices;
private readonly ICoreCmsReportsServices _reportsServices;
private readonly ISQReservationsServices _SQReservationsServices;
private readonly WeChat.Service.HttpClients.IWeChatApiHttpClientFactory _weChatApiHttpClientFactory;
@ -114,7 +114,9 @@ namespace CoreCms.Net.Web.Admin.Controllers
, ISysMenuServices sysMenuServices
, ISysUserRoleServices sysUserRoleServices
, ISysOrganizationServices sysOrganizationServices, ICodeGeneratorServices codeGeneratorServices,
ICoreCmsLogisticsServices logisticsServices, ISysLoginRecordServices sysLoginRecordServices, ISysNLogRecordsServices sysNLogRecordsServices, ICoreCmsBillPaymentsServices paymentsServices, ICoreCmsBillDeliveryServices billDeliveryServices, ICoreCmsUserServices userServices, ICoreCmsOrderServices orderServices, ICoreCmsBillAftersalesServices aftersalesServices, ICoreCmsSettingServices settingServices, ICoreCmsProductsServices productsServices, ICoreCmsServicesServices servicesServices, IOptions<FilesStorageOptions> filesStorageOptions, ISysRoleMenuServices sysRoleMenuServices, IWeChatApiHttpClientFactory weChatApiHttpClientFactory, ICoreCmsPagesServices pagesServices, IToolsServices toolsServices, ICoreCmsReportsServices reportsServices)
ICoreCmsLogisticsServices logisticsServices, ISysLoginRecordServices sysLoginRecordServices, ISysNLogRecordsServices sysNLogRecordsServices, ICoreCmsBillPaymentsServices paymentsServices, ICoreCmsBillDeliveryServices billDeliveryServices, ICoreCmsUserServices userServices, ICoreCmsOrderServices orderServices, ICoreCmsBillAftersalesServices aftersalesServices, ICoreCmsSettingServices settingServices, ICoreCmsProductsServices productsServices, ICoreCmsServicesServices servicesServices, IOptions<FilesStorageOptions> filesStorageOptions, ISysRoleMenuServices sysRoleMenuServices, IWeChatApiHttpClientFactory weChatApiHttpClientFactory, ICoreCmsPagesServices pagesServices, IToolsServices toolsServices, ICoreCmsReportsServices reportsServices
, ISQReservationsServices sQReservationsServices
)
{
_user = user;
_webHostEnvironment = webHostEnvironment;
@ -150,6 +152,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
_pagesServices = pagesServices;
_toolsServices = toolsServices;
_reportsServices = reportsServices;
_SQReservationsServices = sQReservationsServices;
}
#region ()====================================================
@ -1549,24 +1552,15 @@ namespace CoreCms.Net.Web.Admin.Controllers
public async Task<AdminUiCallBack> GetBackLog()
{
var jm = new AdminUiCallBack();
//待支付
var paymentWhere = _orderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_PENDING_PAYMENT);
var unpaidCount = await _orderServices.GetCountAsync(paymentWhere);
//待发货
var deliveredWhere = _orderServices.GetReverseStatus((int)GlobalEnumVars.OrderAllStatusType.ALL_PENDING_DELIVERY);
var unshipCount = await _orderServices.GetCountAsync(deliveredWhere);
//待售后
var aftersalesCount = await _aftersalesServices.GetCountAsync(p => p.status == (int)GlobalEnumVars.BillAftersalesStatus.WaitAudit);
var allConfigs = await _settingServices.GetConfigDictionaries();
var goodsStocksWarn = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.GoodsStocksWarn).ObjectToInt(10);
//库存报警
var goodsStaticsTotalWarn = await _productsServices.GoodsStaticsTotalWarn(goodsStocksWarn);
//组局中
var unpaidCount = await _SQReservationsServices.GetCountAsync(it => it.status == 0);
//待开始
var unshipCount = await _SQReservationsServices.GetCountAsync(it => it.status == 1);
//进行中
var aftersalesCount = await _SQReservationsServices.GetCountAsync(it => it.status == 2);
//已结束
var goodsStaticsTotalWarn = await _SQReservationsServices.GetCountAsync(it => it.status == 3);
//返回数据
jm.code = 0;
jm.msg = "数据调用成功!";

View File

@ -217,6 +217,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
if (user != null)
{
item.UserName = user.userName;
item.NickName = user.nickName;
}
}
}

View File

@ -241,10 +241,6 @@
<None Include="wwwroot\static\js\common.js" />
</ItemGroup>
<ItemGroup>
<Folder Include="Controllers\Order\" />
</ItemGroup>
<ProjectExtensions><VisualStudio><UserProperties /></VisualStudio></ProjectExtensions>

View File

@ -554,7 +554,7 @@
后端常用方法
</summary>
</member>
<member name="M:CoreCms.Net.Web.Admin.Controllers.ToolsController.#ctor(CoreCms.Net.Auth.HttpContextUser.IHttpContextUser,Microsoft.AspNetCore.Hosting.IWebHostEnvironment,CoreCms.Net.IServices.ICoreCmsGoodsServices,CoreCms.Net.IServices.ICoreCmsSettingServices,CoreCms.Net.IServices.ICoreCmsArticleServices,CoreCms.Net.IServices.ICoreCmsFormServices,CoreCms.Net.IServices.ICoreCmsArticleTypeServices,CoreCms.Net.IServices.ICoreCmsNoticeServices,CoreCms.Net.IServices.ICoreCmsPinTuanRuleServices,CoreCms.Net.IServices.ICoreCmsPromotionServices,CoreCms.Net.IServices.ICoreCmsAreaServices,CoreCms.Net.IServices.ISysUserServices,CoreCms.Net.IServices.ISysRoleServices,CoreCms.Net.IServices.ISysMenuServices,CoreCms.Net.IServices.ISysUserRoleServices,CoreCms.Net.IServices.ISysOrganizationServices,CoreCms.Net.IServices.ICodeGeneratorServices,CoreCms.Net.IServices.ICoreCmsLogisticsServices,CoreCms.Net.IServices.ISysLoginRecordServices,CoreCms.Net.IServices.ISysNLogRecordsServices,CoreCms.Net.IServices.ICoreCmsBillPaymentsServices,CoreCms.Net.IServices.ICoreCmsBillDeliveryServices,CoreCms.Net.IServices.ICoreCmsUserServices,CoreCms.Net.IServices.ICoreCmsOrderServices,CoreCms.Net.IServices.ICoreCmsBillAftersalesServices,CoreCms.Net.IServices.ICoreCmsSettingServices,CoreCms.Net.IServices.ICoreCmsProductsServices,CoreCms.Net.IServices.ICoreCmsServicesServices,Microsoft.Extensions.Options.IOptions{CoreCms.Net.Model.ViewModels.Options.FilesStorageOptions},CoreCms.Net.IServices.ISysRoleMenuServices,CoreCms.Net.WeChat.Service.HttpClients.IWeChatApiHttpClientFactory,CoreCms.Net.IServices.ICoreCmsPagesServices,CoreCms.Net.IServices.IToolsServices,CoreCms.Net.IServices.ICoreCmsReportsServices)">
<member name="M:CoreCms.Net.Web.Admin.Controllers.ToolsController.#ctor(CoreCms.Net.Auth.HttpContextUser.IHttpContextUser,Microsoft.AspNetCore.Hosting.IWebHostEnvironment,CoreCms.Net.IServices.ICoreCmsGoodsServices,CoreCms.Net.IServices.ICoreCmsSettingServices,CoreCms.Net.IServices.ICoreCmsArticleServices,CoreCms.Net.IServices.ICoreCmsFormServices,CoreCms.Net.IServices.ICoreCmsArticleTypeServices,CoreCms.Net.IServices.ICoreCmsNoticeServices,CoreCms.Net.IServices.ICoreCmsPinTuanRuleServices,CoreCms.Net.IServices.ICoreCmsPromotionServices,CoreCms.Net.IServices.ICoreCmsAreaServices,CoreCms.Net.IServices.ISysUserServices,CoreCms.Net.IServices.ISysRoleServices,CoreCms.Net.IServices.ISysMenuServices,CoreCms.Net.IServices.ISysUserRoleServices,CoreCms.Net.IServices.ISysOrganizationServices,CoreCms.Net.IServices.ICodeGeneratorServices,CoreCms.Net.IServices.ICoreCmsLogisticsServices,CoreCms.Net.IServices.ISysLoginRecordServices,CoreCms.Net.IServices.ISysNLogRecordsServices,CoreCms.Net.IServices.ICoreCmsBillPaymentsServices,CoreCms.Net.IServices.ICoreCmsBillDeliveryServices,CoreCms.Net.IServices.ICoreCmsUserServices,CoreCms.Net.IServices.ICoreCmsOrderServices,CoreCms.Net.IServices.ICoreCmsBillAftersalesServices,CoreCms.Net.IServices.ICoreCmsSettingServices,CoreCms.Net.IServices.ICoreCmsProductsServices,CoreCms.Net.IServices.ICoreCmsServicesServices,Microsoft.Extensions.Options.IOptions{CoreCms.Net.Model.ViewModels.Options.FilesStorageOptions},CoreCms.Net.IServices.ISysRoleMenuServices,CoreCms.Net.WeChat.Service.HttpClients.IWeChatApiHttpClientFactory,CoreCms.Net.IServices.ICoreCmsPagesServices,CoreCms.Net.IServices.IToolsServices,CoreCms.Net.IServices.ICoreCmsReportsServices,CoreCms.Net.IServices.ISQReservationsServices)">
<summary>
构造函数
</summary>

View File

@ -84,7 +84,7 @@
"WeChatPay": {
//
// AppIdAppIdAppIdCorpId
"AppId": "",
"AppId": "wxa17265f5fe8374b1",
//
//
"MchId": "",

View File

@ -104,7 +104,6 @@ For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
<footer>
<div>
<p>CKEditor 5 The text editor for the Internet <a href="https://ckeditor.com/ckeditor-5">https://ckeditor.com/ckeditor-5</a></p>
<p>Copyright © 2003-2019, <a href="https://cksource.com/">CKSource</a> Frederico Knabben. All rights reserved.</p>
</div>
</footer>

View File

@ -10,48 +10,7 @@
<div class="layui-carousel layadmin-carousel layadmin-shortcut">
<div carousel-item>
<ul class="layui-row layui-col-space10">
<li class="layui-col-xs3">
<a href="javascript:;" lay-href="/good/goods/">
<i class="layui-icon layui-icon-cart-simple"></i>
<cite>商品</cite>
</a>
</li>
<li class="layui-col-xs3">
<a href="javascript:;" lay-href="/order/orders/">
<i class="layui-icon layui-icon-form"></i>
<cite>订单</cite>
</a>
</li>
<li class="layui-col-xs3">
<a href="javascript:;" lay-href="/user/userInfo/">
<i class="layui-icon layui-icon-username"></i>
<cite>会员</cite>
</a>
</li>
<li class="layui-col-xs3">
<a href="javascript:;" lay-href="/content/notice/">
<i class="layui-icon layui-icon-notice"></i>
<cite>公告</cite>
</a>
</li>
<li class="layui-col-xs3">
<a href="javascript:;" lay-href="/promotion/promotion/">
<i class="layui-icon layui-icon-gift"></i>
<cite>促销</cite>
</a>
</li>
<li class="layui-col-xs3">
<a href="javascript:;" lay-href="/shop/ship/">
<i class="layui-icon layui-icon-release"></i>
<cite>配送</cite>
</a>
</li>
<li class="layui-col-xs3">
<a href="javascript:;" lay-href="/distribution/distributor/">
<i class="layui-icon layui-icon-snowflake"></i>
<cite>分销商</cite>
</a>
</li>
<li class="layui-col-xs3">
<a href="javascript:;" lay-href="/shop/setting/">
<i class="layui-icon layui-icon-set"></i>
@ -74,26 +33,27 @@
<ul class="layui-row layui-col-space10">
<li class="layui-col-xs6">
<a lay-href="/order/orders/" class="layadmin-backlog-body">
<h3>待支付</h3>
<h3>组局中</h3>
<p><cite>{{d.unpaidCount || '0'}}</cite></p>
</a>
</li>
<li class="layui-col-xs6">
<a lay-href="/order/orders/" class="layadmin-backlog-body">
<h3>发货</h3>
<h3>开始</h3>
<p><cite>{{d.unshipCount || '0'}}</cite></p>
</a>
</li>
<li class="layui-col-xs6">
<a lay-href="/order/billaftersales/" class="layadmin-backlog-body">
<h3>待售后</h3>
<h3>进行中</h3>
<p><cite>{{d.aftersalesCount || '0'}}</cite></p>
</a>
</li>
<li class="layui-col-xs6">
<a lay-href="/good/goods/" class="layadmin-backlog-body">
<h3>库存报警</h3>
<p><cite style="color: #FF5722;">{{d.goodsStaticsTotalWarn || '0'}}</cite></p>
<h3>已结束</h3>
<p><cite style="color: #FF5722;">{{d.goodsStaticsTotalWarn ||
'0'}}</cite></p>
</a>
</li>
</ul>
@ -105,80 +65,9 @@
</div>
</div>
<div class="layui-col-md4">
<div class="layui-card">
<div class="layui-card-header"><i class="layui-icon layui-icon-speaker"></i>版本信息</div>
<div class="layui-card-body layui-text">
<table class="layui-table">
<colgroup>
<col width="100">
<col>
</colgroup>
<tbody>
<tr>
<td>当前版本</td>
<td>
<script type="text/html" template>
{{ layui.setter.version }}
<a href="http://www.coreshop.cn/" target="_blank" style="padding-left: 10px;">日志</a>
</script>
<a href="http://www.coreshop.cn/" target="_blank" style="padding-left: 5px;">检查更新</a>
</td>
</tr>
<tr>
<td>基于框架</td>
<td>
<script type="text/html" template>
Asp.Net Core 8.0
</script>
</td>
</tr>
<tr>
<td>主要特色</td>
<td>单页面 / 响应式 / 清爽 / 极简</td>
</tr>
<tr>
<td>获取渠道</td>
<td style="padding-bottom: 0;">
<div class="layui-btn-container">
<a href="http://www.coreshop.cn/" target="_blank" class="layui-btn layui-btn-danger">获取授权</a>
<a href="https://github.com/CoreUnion/CoreShop" target="_blank" class="layui-btn">GitHub下载</a>
<a href="https://gitee.com/CoreUnion/CoreShop" target="_blank" class="layui-btn">Gitee下载</a>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-card">
<div class="layui-card-header">
<i class="layui-icon layui-icon-form"></i>订单统计
</div>
<div class="layui-card-body">
<div id="graphic" class="">
<div id="main" class="main" style="height: 400px;"></div>
</div>
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-card">
<div class="layui-card-header">
<i class="layui-icon layui-icon-user"></i>会员统计
</div>
<div class="layui-card-body">
<div id="graphics" class="">
<div id="users" class="main" style="height: 400px;"></div>
</div>
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-card">
<div class="layui-card-header loading-more">
@ -213,25 +102,25 @@
<ul class="layui-row layui-col-space10">
<li class="layui-col-xs6">
<a lay-href="/order/orders/" class="layadmin-backlog-body">
<h3>待支付</h3>
<h3>组局中</h3>
<p><cite>{{d.unpaidCount || '0'}}</cite></p>
</a>
</li>
<li class="layui-col-xs6">
<a lay-href="/order/orders/" class="layadmin-backlog-body">
<h3>发货</h3>
<h3>开始</h3>
<p><cite>{{d.unshipCount || '0'}}</cite></p>
</a>
</li>
<li class="layui-col-xs6">
<a lay-href="/order/billaftersales/" class="layadmin-backlog-body">
<h3>待售后</h3>
<h3>进行中</h3>
<p><cite>{{d.aftersalesCount || '0'}}</cite></p>
</a>
</li>
<li class="layui-col-xs6">
<a lay-href="/order/orders/" class="layadmin-backlog-body">
<h3>库存报警</h3>
<h3>已结束</h3>
<p><cite style="color: #FF5722;">{{d.goodsStaticsTotalWarn || '0'}}</cite></p>
</a>
</li>
@ -256,8 +145,8 @@
var carousel = layui.carousel;
getBackLog();
ordersEcharts();
usersEcharts();
// ordersEcharts();
// usersEcharts();
//获取历史登录记录
coreHelper.Post("Api/Tools/GetSysLoginRecord",
{}, function (data) {
@ -367,8 +256,22 @@
});
</script>
<style>
.loading-more { overflow: hidden; }
.loading-more > div { display: inline-block; }
.loading-more a { float: right; font-size: 12px; margin-top: 5px; }
.layui-card-header .layui-icon { position: initial; margin-right: 10px; }
.loading-more {
overflow: hidden;
}
.loading-more>div {
display: inline-block;
}
.loading-more a {
float: right;
font-size: 12px;
margin-top: 5px;
}
.layui-card-header .layui-icon {
position: initial;
margin-right: 10px;
}
</style>

View File

@ -7,11 +7,7 @@
<i class="layui-icon layui-icon-shrink-right" id="LAY_app_flexible"></i>
</a>
</li>
<li class="layui-nav-item layui-hide-xs" lay-unselect>
<a href="https://www.coreshop.cn/" target="_blank" title="前台">
<i class="layui-icon layui-icon-home"></i>
</a>
</li>
<li class="layui-nav-item" lay-unselect>
<a href="javascript:;" layadmin-event="refresh" title="刷新">
<i class="layui-icon layui-icon-refresh-3"></i>

View File

@ -155,17 +155,24 @@
{ field: 'reservation_id', title: '预约ID', sort: false,width: 105 },
{ field: 'reservationName', title: '组局名称', sort: false,width: 205 },
{ field: 'user_id', title: '用户Id', sort: false,width: 105 },
{ field: 'userName', title: '用户昵称', sort: false,width: 205 },
{ field: 'nickName', title: '用户昵称', sort: false,width: 205 },
{ field: 'role', title: '角色', sort: false, width: 105, templet: function(d){
if(d.role == 0) return '<span class="layui-badge layui-bg-blue">参与者</span>';
if(d.role == 1) return '<span class="layui-badge layui-bg-orange">发起者</span>';
return d.role;
}},
{ field: 'is_arrive', title: '是否赴约', sort: false, width: 105, templet: function(d){
if(d.is_arrive == 0) return '<span class="layui-badge layui-bg-blue">待签到</span>';
if(d.is_arrive == 1) return '<span class="layui-badge layui-bg-orange">赴约</span>';
if(d.is_arrive == 2) return '<span class="layui-badge layui-bg-gray">未赴约</span>';
return d.is_arrive;
}},
{ field: 'is_refund', title: '鸽子费状态', width: 130, sort: false, templet: function(d){
if(d.is_refund == 0) return '<span class="layui-badge layui-bg-green">未付鸽子费</span>';
if(d.is_refund == 1) return '<span class="layui-badge layui-bg-gray">已付鸽子费</span>';
if(d.is_refund == 2) return '<span class="layui-badge layui-bg-gray">退款中</span>';
if(d.is_refund == 3) return '<span class="layui-badge layui-bg-gray">退款成功</span>';
if(d.is_refund == 0) return '<span class="layui-badge layui-bg-green">没有鸽子费</span>';
if(d.is_refund == 1) return '<span class="layui-badge layui-bg-gray">待付鸽子费</span>';
if(d.is_refund == 2) return '<span class="layui-badge layui-bg-gray">已支付鸽子费</span>';
if(d.is_refund == 3) return '<span class="layui-badge layui-bg-gray">退款中</span>';
if(d.is_refund == 4) return '<span class="layui-badge layui-bg-gray">退款成功</span>';
if(d.is_refund == 9) return '<span class="layui-badge layui-bg-gray">退款失败</span>';
return d.is_refund;
}},

View File

@ -390,7 +390,7 @@
},
{
title: '状态', sort: false, width: 80, templet: function (d) {
var statusMap = { '0': '待开始', '1': '进行中', '2': '已结束', '3': '已取消' };
var statusMap = { '0': '组局中', '1': '待开始', '2': '进行中', '3': '已结束',4:'已取消' };
var statusKey = d.status == null ? null : String(d.status);
return statusMap[statusKey] || '未知';
}

View File

@ -3,22 +3,6 @@
<script type="text/html" template>
<p>当前版本:{{ layui.setter.version }}</p>
</script>
<div class="layui-btn-container">
<a href="http://www.coreshop.cn/" target="_blank" class="layui-btn layui-btn-sm layui-btn-danger">官网下载</a>
<a href="https://github.com/CoreUnion/CoreShop" target="_blank" class="layui-btn layui-btn-sm">GitHub下载</a>
<a href="https://gitee.com/CoreUnion/CoreShop" target="_blank" class="layui-btn layui-btn-sm">Gitee下载</a>
</div>
</div>
<div class="layui-card-header">关于版权</div>
<div class="layui-card-body layui-text layadmin-about">
<blockquote class="layui-elem-quote" style="border: none;">
允许个人学习研究使用,支持二次开发。<br />
允许商业用途,但仅限自运营,如果商用必须保留版权信息,望自觉遵守。<br />
不允许对程序代码以任何形式、任何目的的再发行或出售,否则将追究侵权者法律责任。<br />
软件受国家计算机软件著作权保护(登记号:<a href="https://files.cdn.coreshop.cn/images/coreshopcopyright.jpeg" target="_blank">2020SR1224749</a>)。<br />
我们的团队水平有限也是在探索中学习、改进。开源是为了让认可我们的用户能自由的使用、学习软件的内部架构让更多的人有机会阅读并发现Bug、对软件项目提出改进意见。
</blockquote>
<p>© 2021 <a href="http://www.coreshop.cn/" target="_blank">coreshop.cn</a> 版权所有</p>
</div>