Commit 00a5ea5c authored by 吴春's avatar 吴春

提交修改的内容

parent c4fe5c41
......@@ -38,6 +38,15 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="aliyun-net-sdk-core">
<HintPath>..\packages\aliyun-net-sdk-core.dll</HintPath>
</Reference>
<Reference Include="aliyun-net-sdk-dysmsapi">
<HintPath>..\packages\aliyun-net-sdk-dysmsapi.dll</HintPath>
</Reference>
<Reference Include="Aliyun.OSS, Version=2.9.0.0, Culture=neutral, PublicKeyToken=0ad4175f0dac0b9b, processorArchitecture=MSIL">
<HintPath>..\packages\Aliyun.OSS.SDK.2.9.0\lib\Aliyun.OSS.dll</HintPath>
</Reference>
<Reference Include="Autofac, Version=4.2.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.4.2.0\lib\net45\Autofac.dll</HintPath>
<Private>True</Private>
......@@ -95,12 +104,15 @@
<Compile Include="Handlers\RoleHandler.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Services\AdvertisingPicService.cs" />
<Compile Include="Services\MessageCore.cs" />
<Compile Include="Services\OrderBillingService.cs" />
<Compile Include="Services\OrderDetailService.cs" />
<Compile Include="Services\OrderSeatService.cs" />
<Compile Include="Services\QueueHelper.cs" />
<Compile Include="Services\ScreeningStaySeatService.cs" />
<Compile Include="Services\ScreeningPriceService.cs" />
<Compile Include="Services\ScreeningService.cs" />
<Compile Include="Services\SMSService.cs" />
<Compile Include="Services\TheaterOrderService.cs" />
<Compile Include="Services\TheaterPriceService.cs" />
<Compile Include="Services\TheaterSeatService.cs" />
......@@ -133,7 +145,9 @@
<Name>EheMall.ServiceCenter</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="packages.config" />
......
......@@ -97,6 +97,7 @@ namespace EheMall.Admin.PermissionService.Initialize
_eventBus.Subscribe<OrderBillingUploadAuditCommand>(new OrderBillingHandler());
_eventBus.Subscribe<MemberOrderCommand>(new TheaterOrderHandler());
_eventBus.Subscribe<AdminOrderCommand>(new TheaterOrderHandler());
_eventBus.Subscribe<UpdateOrderStateCommand>(new TheaterOrderHandler());
#endregion
#region 官网
......
......@@ -72,5 +72,8 @@ namespace EheMall.Business.Handlers
string sContent = node.ChildNodes[1].InnerText;
return sContent;
}
}
}
......@@ -24,7 +24,8 @@ namespace EheMall.Business.Handlers
/// </summary>
public class TheaterOrderHandler : ICommandHandlers,
IEventHandler<MemberOrderCommand>,
IEventHandler<AdminOrderCommand>
IEventHandler<AdminOrderCommand>,
IEventHandler<UpdateOrderStateCommand>
{
[AutofacResolve]
private IRepository<TheaterOrder> _repository { get; set; }
......@@ -156,5 +157,12 @@ namespace EheMall.Business.Handlers
this.WriteLog(data, _unitOfWork.Commit());
}
}
public void HandleEvent(UpdateOrderStateCommand eventData)
{
var data = _repository.Get(eventData.ID);
data.OrderState = OrderStateEnum.Ticket;
this.WriteLog(data, _unitOfWork.Commit());
}
}
}
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Exceptions;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Dysmsapi.Model.V20170525;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Threading;
namespace EheMall.Business.Services
{
public class MessageCore
{
private static bool IsFinish = true;
public static void Init()
{
while (QueueHelper.Queue.Count == 0 || !IsFinish)
{
Thread.Sleep(1000);
};
IsFinish = false;
string content = QueueHelper.Queue.Dequeue() as string;
Run(content);
Init();
}
public static void Run(string content)
{
try
{
JObject obj = JObject.Parse(content);
switch (obj["cmd"].ToString().ToLower())
{
case "sms":
SendSMS(obj);
break;
default:
break;
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
IsFinish = true;
}
private static void SendSMS(JObject obj)
{
SendSmsRequest request = new SendSmsRequest();
try
{
String product = "Dysmsapi";//短信API产品名称(短信产品名固定,无需修改)
String domain = "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改)
String accessKeyId = "LTAIwE7l9dImZSa3";
String accessKeySecret = "j47Ajn0d0WzUCIX8Biyj3P2r8QDltI";
IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);
DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile);
//必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
request.PhoneNumbers = obj["phoneNumber"].ToString();
request.SignName = "印象之旅";
//必填:短信模板-可在短信控制台中找到
request.TemplateCode = obj["templateCode"].ToString();
//可选:模板中的变量替换JSON串,如模板内容为"您的验证码为${code}"时,此处的值为
request.TemplateParam = obj["templateParam"].ToString();
//可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
request.OutId = "";
//请求失败这里会抛ClientException异常
SendSmsResponse sendSmsResponse = acsClient.GetAcsResponse(request);
if (!sendSmsResponse.Code.Equals("OK"))
{
var data = new { phoneNumber = obj["phoneNumber"].ToString(), templateParam = obj["templateParam"].ToString(), code = sendSmsResponse.Code, message = sendSmsResponse.Message };
// LogHelper.Write(JsonConvert.SerializeObject(data));
}
}
catch (Aliyun.Acs.Core.Exceptions.ServerException ex)
{
// LogHelper.Write(ex);
}
catch (ClientException ex)
{
// LogHelper.Write(ex);
}
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Threading;
namespace EheMall.Business.Services
{
public class QueueHelper
{
/// <summary>
/// 任务队列
/// </summary>
public static Queue<string> Queue = new Queue<string>();
/// <summary>
/// 线程锁
/// </summary>
private static object locker = new object();
/// <summary>
/// 添加消息到队列
/// </summary>
/// <param name="task"></param>
public static void EnqueueTask(string task)
{
lock (locker)
{
//同样的任务,不同时加入
IList<string> tasks = Queue.ToList();
if (tasks.Count(p => p == task) == 0)
{
Queue.Enqueue(task);
Monitor.PulseAll(locker);
}
}
}
}
}
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace EheMall.Business.Services
{
public class SMSService
{
/// <summary>
/// 发送证码
/// </summary>
/// <param name="phoneNumber">电话号码</param>
/// <param name="code">验证码</param>
public static void SendCode(string phoneNumber, string code, string templateCode)
{
JObject obj = new JObject();
obj["cmd"] = "sms";
obj["phoneNumber"] = phoneNumber;
obj["templateCode"] = templateCode;
var TemplateParam = new { code = code };
obj["templateParam"] = JsonConvert.SerializeObject(TemplateParam);
QueueHelper.EnqueueTask(JsonConvert.SerializeObject(obj));
}
/// <summary>
/// 发送短信通知
/// </summary>
/// <param name="phoneNumber"></param>
/// <param name="content"></param>
/// <param name="templateCode"></param>
public static void SendMsg(string phoneNumber, string content, string templateCode)
{
JObject obj = new JObject();
obj["cmd"] = "sms";
obj["phoneNumber"] = phoneNumber;
obj["templateCode"] = templateCode;
var TemplateParam = new { content };
obj["templateParam"] = JsonConvert.SerializeObject(TemplateParam);
QueueHelper.EnqueueTask(JsonConvert.SerializeObject(obj));
}
}
}
......@@ -140,7 +140,7 @@ namespace EheMall.Business.Services
sCondition.AppendFormat(" And OrderState ='{0}'", inputs["OrderState"]);
if (inputs.IsExitsAndNotEmpty("iBuyID"))
sCondition.AppendFormat(" And iBuyID = '{0}'", inputs["iBuyID"]);
var list = DBHelper.QueryByPager<TheaterOrder>($@" (SELECT A.*,C.Name as sMemberType,B.Name as ScreeningName,B.StartTime as ScreeningDate from TheaterOrder as A LEFT JOIN Screening as B on A.ScreeningID=B.ID
var list = DBHelper.QueryByPager<TheaterOrder>($@" (SELECT A.*,C.Name as sMemberType,B.Image as ScreeningPic,B.Name as ScreeningName,B.StartTime as ScreeningDate from TheaterOrder as A LEFT JOIN Screening as B on A.ScreeningID=B.ID
LEFT JOIN Member as C ON C.ID = A.iBuyID)",
sCondition.ToString(), DBHelper.GetPageParams(inputs), out iCount);
return list;
......@@ -334,5 +334,16 @@ LEFT JOIN Theater AS t ON A.TheaterID=t.ID where 1=1 {sCondition.ToString()}");
return list.FirstOrDefault();
}
public IEnumerable<TheaterOrder> GetOrderByCollectingTickets(string CollectingTickets)
{
string where = string.Empty;
if (!string.IsNullOrWhiteSpace(CollectingTickets))
{
where += string.Format(" and CollectingTickets='{0}'", CollectingTickets);
}
string sqlStr = string.Format("SELECT * FROM TheaterOrder WHERE bIsDeleted=0 {0}", where);
var list = DBHelper.Query<TheaterOrder>(sqlStr);
return list;
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Aliyun.OSS.SDK" version="2.9.0" targetFramework="net452" />
<package id="Autofac" version="4.2.0" targetFramework="net452" />
<package id="AutoMapper" version="4.2.1" targetFramework="net452" />
<package id="Dapper" version="1.50.2" targetFramework="net452" />
......
using EheMall.Events;
using EheMall.Models.Enums;
using EheMall.Models.Models;
using System;
using System.Collections.Generic;
namespace EheMall.Models.Commands
{
public class UpdateOrderStateCommand : ICommand
{
/// <summary>
/// 订单id
/// </summary>
public Guid OrderID { get; set; }
}
}
......@@ -139,6 +139,7 @@
<Compile Include="Commands\订单管理\OrderBillingDeleteCommand.cs" />
<Compile Include="Commands\订单管理\OrderBillingUpdateCommand.cs" />
<Compile Include="Commands\订单管理\OrderBillingUploadAuditCommand.cs" />
<Compile Include="Commands\订单管理\UpdateOrderStateCommand.cs" />
<Compile Include="EheMallContext.cs" />
<Compile Include="Enums\BillingStateEnum.cs" />
<Compile Include="Enums\LanguageEnum.cs" />
......
......@@ -51,6 +51,12 @@ namespace EheMall.Models.Models
[NotMapped]
public string ScreeningName { get; set; }
/// <summary>
/// 场次名称
/// </summary>
[NotMapped]
public string ScreeningPic { get; set; }
/// <summary>
/// 客户类型
/// </summary>
......
......@@ -41,21 +41,6 @@ namespace EheMall.Mvc.Filters
this.loginAuth = EngineContext.Current.Resolve<IAuthenticate>();
}
private IEnumerable<TicketMallAuthorizeAttribute> GetAdminAuthorizeAttributes(ActionDescriptor descriptor)
{
return descriptor.GetCustomAttributes(typeof(TicketMallAuthorizeAttribute), true)
.Concat(descriptor.ControllerDescriptor.GetCustomAttributes(typeof(TicketMallAuthorizeAttribute), true))
.OfType<TicketMallAuthorizeAttribute>();
}
private bool IsAdminPageRequested(AuthorizationContext filterContext)
{
var adminAttributes = GetAdminAuthorizeAttributes(filterContext.ActionDescriptor);
if (adminAttributes != null && adminAttributes.Any())
return true;
return false;
}
/// <summary>
/// 是否已登录
/// </summary>
......
......@@ -47,7 +47,15 @@ namespace EheMall.ServiceCenter
IEnumerable<TheaterOrder> GetOrderCount(JObject inputs);
IEnumerable<TheaterOrder> GetListByArticleTypeID(Guid TheaterID, Guid ScreeningID, int iMemberType, int OrderState,int type=0);
/// <summary>
/// 根据订单取票码获取订单信息
/// </summary>
/// <param name="OrderID"></param>
/// <returns></returns>
IEnumerable<TheaterOrder> GetOrderByCollectingTickets(string CollectingTickets);
IEnumerable<TheaterOrder> GetListByArticleTypeID(Guid TheaterID, Guid ScreeningID, int iMemberType, int OrderState, int type = 0);
IEnumerable<TheaterOrder> MemberHistoryOrderList(JObject inputs, out long iCount);
......
......@@ -366,7 +366,7 @@
<script type="text/javascript">
function initEditor(ID, value) {
var ue = UE.getEditor(ID, {
serverUrl: 'http://localhost:8069/UploadFiles/'
serverUrl: 'http://192.168.2.214:8085/UploadFiles/'
//serverUrl: 'http://115.28.48.78:8092/api/upload/controller?module=xiaohai&field=ueditor&appKey=8D7983754693C61D3EA2D715AC361863'
});
if (value && value.length > 0) {
......
......@@ -215,8 +215,7 @@
</div>
<div class="people hidden-md hidden-sm hidden-xs wow shake">
<a href="/TicketMall/Index.html"> <img src="~/Areas/Mobile/Content/images/people.png" class="img-responsive"></a>
<a href="/TicketMall/Home/Index"> <img src="~/Areas/Mobile/Content/images/people.png" class="img-responsive"></a>
</div>
<div class="dianha hidden-sm hidden-xs">
......
......@@ -278,6 +278,7 @@ namespace EheMall.Web.Areas.TicketMall.Controllers
}
public ActionResult qrCode(Guid orderID)
{
#region 二维码
......@@ -610,6 +611,16 @@ namespace EheMall.Web.Areas.TicketMall.Controllers
return View(member);
}
public ActionResult SendCode()
{
string code = CreateRandomCode(4);
Member member = CurrentClient;
Business.Services.SMSService.SendCode(member.MobilePhone, code, "SMS_132045009");
return Json(new { valid = true, message = "验证码发送成功" });
}
[HttpPost]
public ActionResult ModifyPassWord(MemberUpdatePWCommand entity)
{
......@@ -728,5 +739,31 @@ namespace EheMall.Web.Areas.TicketMall.Controllers
#endregion
public static string CreateRandomCode(int codeCount)
{
string allChar = "0,1,2,3,4,5,6,7,8,9";
string[] allCharArray = allChar.Split(',');
string randomCode = "";
int temp = -1;
Random rand = new Random();
for (int i = 0; i < codeCount; i++)
{
if (temp != -1)
{
rand = new Random(i * temp * ((int)DateTime.Now.Ticks));
}
int t = rand.Next(10);
if (temp == t)
{
return CreateRandomCode(codeCount);
}
temp = t;
randomCode += allCharArray[t];
}
return randomCode;
}
}
}
\ No newline at end of file
......@@ -413,5 +413,8 @@ namespace EheMall.Web.Areas.TicketMall.Controllers
}
return View();
}
}
}
\ No newline at end of file
......@@ -191,7 +191,8 @@
layer.msg('下单成功', {
icon: 1,//提示的样式
end: function () {
window.location.reload();
location.href = "@Url.Action("MyOrder")";
//window.location.reload();
}
});
} else {
......
......@@ -53,18 +53,18 @@
</ul>
@*<div class="nav_right" style="display:none">
<ul>
<ul>
<li>
<a href="/TicketMall/Home.html">
<img src="/Areas/TicketMall/Content/Sp_img/icon07.png" width="26" height="20">
<span>购票</span>
</a>
</li>
</ul>
<li>
<a href="/TicketMall/Home.html">
<img src="/Areas/TicketMall/Content/Sp_img/icon07.png" width="26" height="20">
<span>购票</span>
</a>
</li>
</ul>
</div>*@
</div>*@
<div class="notice_img center">
<img src="/Areas/TicketMall/Content/Sp_img/201811060903.jpg" width="196" height="169" />
</div>
......@@ -85,13 +85,18 @@
<div class="selectbox fl">
</div>
<p>
上映时间:
<span>
<input type="text" readonly id="StartTime" name="StartTime" value="@System.DateTime.Now.ToString("yyyy-MM-dd")" />
</span>
<span> <a href="javascript:void(0)" onclick="GetTimeData()">查询</a></span>
</p>
<div>
<span style="margin-left:20px;font-size:14px;color:#898989;"> 上映时间: </span>
<input type="text" readonly id="StartTime" value="@System.DateTime.Now.ToString("yyyy-MM-dd")" style="text-align: center; width: 120px; border: 1px solid #e6e6e6; height: 25px;" />
<span id="submitKey" style="cursor:pointer;margin-left:10px;font-size:14px;color:#898989;"> <a href="javascript:void(0)" onclick="GetTimeData()">查询</a></span>
</div>
@*<p>
上映时间:
<span>
<input type="text" readonly id="StartTime" name="StartTime" value="@System.DateTime.Now.ToString("yyyy-MM-dd")" />
</span>
<span> <a href="javascript:void(0)" onclick="GetTimeData()">查询</a></span>
</p>*@
</div>
</div>
......
......@@ -222,7 +222,7 @@
<span class="Ticket_Total">手机号</span>
<span>
<span class="phone_Number">@Model.MobilePhone</span>
<span class="sendValida">发送验证码</span>
<span class="sendValida" onclick="SendCode()">发送验证码</span>
</span>
</div>
<div class="buyTicket">
......@@ -278,6 +278,21 @@
<script src="/Areas/TicketMall/Content/js/layer/layer.js"></script>
<script src="/Areas/TicketMall/Content/js/jquery.flexslider-min.js"></script>
<script type="text/javascript">
function SendCode() {
$.ajax({
type: "post",
url: "@Url.Action("SendCode")",
success: function (data) {
if (data.valid) {
layer.msg('发送成功', { icon: 1 });
} else {
layer.msg(data.message, { icon: 2 });
}
}
});
}
$(function () {
$("#strwhere").focus(function () {
location.href = "/TicketMall/Home/SearchIndex";
......
......@@ -120,7 +120,6 @@
layer.msg('请求超时,请重试', { icon: 2 });
}
});
}
//string StartTime, int PageIndex, int iPageSize
......
......@@ -11,7 +11,7 @@
<li>
<div class="pic">
<a href="/TicketMall/Home/BuyTickets?ScreeningID=@item.ID">
<img src="@item.Image" alt="" width="253" height="181">
<img src="@item.Image" alt="" width="253" height="181" onerror="this.src='/Areas/TicketMall/Content/Sp_img/images-moren.png'">
</a>
</div>
<div class="text">
......
......@@ -20,7 +20,7 @@
<ul>
<li>
<div class="pic fl">
<img src="/Areas/TicketMall/Content/upload/201810151438573386.jpg" width="130" height="93">
<img src="@item.ScreeningPic" width="130" height="93" onerror="this.src='/Areas/TicketMall/Content/Sp_img/images-moren.png'">
</div>
<div class="text fl">
<h2>@item.ScreeningName</h2>
......
......@@ -11,7 +11,7 @@
<li>
<div class="pic">
<a href="/TicketMall/Home/BuyTickets?ScreeningID=@item.ID">
<img src="@item.Image" alt="" width="253" height="181">
<img src="@item.Image" alt="" width="253" height="181" onerror="this.src='/Areas/TicketMall/Content/Sp_img/images-moren.png'">
</a>
</div>
<div class="text">
......
......@@ -11,7 +11,7 @@
<li>
<div class="pic">
<a href="/TicketMall/SaleTheater/SaleTicket?ScreeningID=@item.ID">
<img src="@item.Image" alt="" width="253" height="181" >
<img src="@item.Image" alt="" width="253" height="181" onerror="this.src='/Areas/TicketMall/Content/Sp_img/images-moren.png'">
</a>
</div>
<div class="text">
......
......@@ -12,17 +12,17 @@
"imageCompressEnable": true,
"imageCompressBorder": 1600,
"imageInsertAlign": "none",
"imageUrlPrefix": "http://localhost:8069",
"imageUrlPrefix": "http://192.168.2.214:8085",
"imagePathFormat": "/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}",
"scrawlActionName": "uploadscrawl",
"scrawlFieldName": "upfile",
"scrawlPathFormat": "/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}",
"scrawlMaxSize": 2048000,
"scrawlUrlPrefix": "http://localhost:8069",
"scrawlUrlPrefix": "http://192.168.2.214:8085",
"scrawlInsertAlign": "none",
"snapscreenActionName": "uploadimage",
"snapscreenPathFormat": "/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}",
"snapscreenUrlPrefix": "http://localhost:8069",
"snapscreenUrlPrefix": "http://192.168.2.214:8085",
"snapscreenInsertAlign": "none",
"catcherLocalDomain": [
"127.0.0.1",
......@@ -32,7 +32,7 @@
"catcherActionName": "catchimage",
"catcherFieldName": "source",
"catcherPathFormat": "/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}",
"catcherUrlPrefix": "http://localhost:8069",
"catcherUrlPrefix": "http://192.168.2.214:8085",
"catcherMaxSize": 2048000,
"catcherAllowFiles": [
".png",
......@@ -44,7 +44,7 @@
"videoActionName": "uploadvideo",
"videoFieldName": "upfile",
"videoPathFormat": "/upload/video/{yyyy}{mm}{dd}/{time}{rand:6}",
"videoUrlPrefix": "http://localhost:8069",
"videoUrlPrefix": "http://192.168.2.214:8085",
"videoMaxSize": 102400000,
"videoAllowFiles": [
".flv",
......@@ -68,7 +68,7 @@
"fileActionName": "uploadfile",
"fileFieldName": "upfile",
"filePathFormat": "/upload/file/{yyyy}{mm}{dd}/{time}{rand:6}",
"fileUrlPrefix": "http://localhost:8069",
"fileUrlPrefix": "http://192.168.2.214:8085",
"fileMaxSize": 51200000,
"fileAllowFiles": [
".png",
......@@ -115,7 +115,7 @@
"imageManagerActionName": "listimage",
"imageManagerListPath": "/upload/image",
"imageManagerListSize": 20,
"imageManagerUrlPrefix": "http://localhost:8069",
"imageManagerUrlPrefix": "http://192.168.2.214:8085",
"imageManagerInsertAlign": "none",
"imageManagerAllowFiles": [
".png",
......@@ -126,7 +126,7 @@
],
"fileManagerActionName": "listfile",
"fileManagerListPath": "/upload/file",
"fileManagerUrlPrefix": "http://localhost:8069",
"fileManagerUrlPrefix": "http://192.168.2.214:8085",
"fileManagerListSize": 20,
"fileManagerAllowFiles": [
".png",
......
......@@ -239,6 +239,7 @@
<Content Include="Areas\Mobile\Content\images\news_bg.jpg" />
<Content Include="Areas\Mobile\Content\images\next.png" />
<Content Include="Areas\Mobile\Content\images\people.png" />
<Content Include="Areas\Mobile\Content\images\people1.png" />
<Content Include="Areas\Mobile\Content\images\prev.png" />
<Content Include="Areas\Mobile\Content\images\videox.png" />
<Content Include="Areas\Mobile\Content\js\bootstrap.min.js" />
......@@ -343,6 +344,7 @@
<Content Include="Areas\TicketMall\Content\login.html" />
<Content Include="Areas\TicketMall\Content\Sp_img\choose.png" />
<Content Include="Areas\TicketMall\Content\Sp_img\choosed.png" />
<Content Include="Areas\TicketMall\Content\Sp_img\images-moren.png" />
<Content Include="Areas\TicketMall\Content\Sp_img\no.png" />
<Content Include="Areas\TicketMall\Content\Sp_img\201811060903.jpg" />
<Content Include="Areas\TicketMall\Content\Sp_img\201815060905.jpg" />
......
......@@ -10,7 +10,7 @@
</WebStackScaffolding_LayoutPageFile>
<WebStackScaffolding_IsAsyncSelected>False</WebStackScaffolding_IsAsyncSelected>
<UseIISExpress>true</UseIISExpress>
<ProjectView>ProjectFiles</ProjectView>
<ProjectView>ShowAllFiles</ProjectView>
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
<Use64BitIISExpress />
<IISExpressSSLPort />
......
......@@ -8,6 +8,7 @@ using EheMall.Mvc.WebSockets;
using System.Web.SessionState;
using System.Threading;
using EheMall.Extensions;
using System.Threading.Tasks;
namespace EheMall.Web
{
......@@ -21,7 +22,8 @@ namespace EheMall.Web
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
//启动信息发送
Task.Run(() => Business.Services.MessageCore.Init());
FrontOrderSocket.Start();
new Thread(new ThreadStart(() =>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment