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

提交修改的内容

parent c4fe5c41
...@@ -38,6 +38,15 @@ ...@@ -38,6 +38,15 @@
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <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"> <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> <HintPath>..\packages\Autofac.4.2.0\lib\net45\Autofac.dll</HintPath>
<Private>True</Private> <Private>True</Private>
...@@ -95,12 +104,15 @@ ...@@ -95,12 +104,15 @@
<Compile Include="Handlers\RoleHandler.cs" /> <Compile Include="Handlers\RoleHandler.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Services\AdvertisingPicService.cs" /> <Compile Include="Services\AdvertisingPicService.cs" />
<Compile Include="Services\MessageCore.cs" />
<Compile Include="Services\OrderBillingService.cs" /> <Compile Include="Services\OrderBillingService.cs" />
<Compile Include="Services\OrderDetailService.cs" /> <Compile Include="Services\OrderDetailService.cs" />
<Compile Include="Services\OrderSeatService.cs" /> <Compile Include="Services\OrderSeatService.cs" />
<Compile Include="Services\QueueHelper.cs" />
<Compile Include="Services\ScreeningStaySeatService.cs" /> <Compile Include="Services\ScreeningStaySeatService.cs" />
<Compile Include="Services\ScreeningPriceService.cs" /> <Compile Include="Services\ScreeningPriceService.cs" />
<Compile Include="Services\ScreeningService.cs" /> <Compile Include="Services\ScreeningService.cs" />
<Compile Include="Services\SMSService.cs" />
<Compile Include="Services\TheaterOrderService.cs" /> <Compile Include="Services\TheaterOrderService.cs" />
<Compile Include="Services\TheaterPriceService.cs" /> <Compile Include="Services\TheaterPriceService.cs" />
<Compile Include="Services\TheaterSeatService.cs" /> <Compile Include="Services\TheaterSeatService.cs" />
...@@ -133,7 +145,9 @@ ...@@ -133,7 +145,9 @@
<Name>EheMall.ServiceCenter</Name> <Name>EheMall.ServiceCenter</Name>
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup /> <ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="app.config" /> <None Include="app.config" />
<None Include="packages.config" /> <None Include="packages.config" />
......
...@@ -97,6 +97,7 @@ namespace EheMall.Admin.PermissionService.Initialize ...@@ -97,6 +97,7 @@ namespace EheMall.Admin.PermissionService.Initialize
_eventBus.Subscribe<OrderBillingUploadAuditCommand>(new OrderBillingHandler()); _eventBus.Subscribe<OrderBillingUploadAuditCommand>(new OrderBillingHandler());
_eventBus.Subscribe<MemberOrderCommand>(new TheaterOrderHandler()); _eventBus.Subscribe<MemberOrderCommand>(new TheaterOrderHandler());
_eventBus.Subscribe<AdminOrderCommand>(new TheaterOrderHandler()); _eventBus.Subscribe<AdminOrderCommand>(new TheaterOrderHandler());
_eventBus.Subscribe<UpdateOrderStateCommand>(new TheaterOrderHandler());
#endregion #endregion
#region 官网 #region 官网
......
...@@ -72,5 +72,8 @@ namespace EheMall.Business.Handlers ...@@ -72,5 +72,8 @@ namespace EheMall.Business.Handlers
string sContent = node.ChildNodes[1].InnerText; string sContent = node.ChildNodes[1].InnerText;
return sContent; return sContent;
} }
} }
} }
...@@ -24,7 +24,8 @@ namespace EheMall.Business.Handlers ...@@ -24,7 +24,8 @@ namespace EheMall.Business.Handlers
/// </summary> /// </summary>
public class TheaterOrderHandler : ICommandHandlers, public class TheaterOrderHandler : ICommandHandlers,
IEventHandler<MemberOrderCommand>, IEventHandler<MemberOrderCommand>,
IEventHandler<AdminOrderCommand> IEventHandler<AdminOrderCommand>,
IEventHandler<UpdateOrderStateCommand>
{ {
[AutofacResolve] [AutofacResolve]
private IRepository<TheaterOrder> _repository { get; set; } private IRepository<TheaterOrder> _repository { get; set; }
...@@ -156,5 +157,12 @@ namespace EheMall.Business.Handlers ...@@ -156,5 +157,12 @@ namespace EheMall.Business.Handlers
this.WriteLog(data, _unitOfWork.Commit()); 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 ...@@ -140,7 +140,7 @@ namespace EheMall.Business.Services
sCondition.AppendFormat(" And OrderState ='{0}'", inputs["OrderState"]); sCondition.AppendFormat(" And OrderState ='{0}'", inputs["OrderState"]);
if (inputs.IsExitsAndNotEmpty("iBuyID")) if (inputs.IsExitsAndNotEmpty("iBuyID"))
sCondition.AppendFormat(" And iBuyID = '{0}'", inputs["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)", LEFT JOIN Member as C ON C.ID = A.iBuyID)",
sCondition.ToString(), DBHelper.GetPageParams(inputs), out iCount); sCondition.ToString(), DBHelper.GetPageParams(inputs), out iCount);
return list; return list;
...@@ -334,5 +334,16 @@ LEFT JOIN Theater AS t ON A.TheaterID=t.ID where 1=1 {sCondition.ToString()}"); ...@@ -334,5 +334,16 @@ LEFT JOIN Theater AS t ON A.TheaterID=t.ID where 1=1 {sCondition.ToString()}");
return list.FirstOrDefault(); 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"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="Aliyun.OSS.SDK" version="2.9.0" targetFramework="net452" />
<package id="Autofac" version="4.2.0" targetFramework="net452" /> <package id="Autofac" version="4.2.0" targetFramework="net452" />
<package id="AutoMapper" version="4.2.1" targetFramework="net452" /> <package id="AutoMapper" version="4.2.1" targetFramework="net452" />
<package id="Dapper" version="1.50.2" 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 @@ ...@@ -139,6 +139,7 @@
<Compile Include="Commands\订单管理\OrderBillingDeleteCommand.cs" /> <Compile Include="Commands\订单管理\OrderBillingDeleteCommand.cs" />
<Compile Include="Commands\订单管理\OrderBillingUpdateCommand.cs" /> <Compile Include="Commands\订单管理\OrderBillingUpdateCommand.cs" />
<Compile Include="Commands\订单管理\OrderBillingUploadAuditCommand.cs" /> <Compile Include="Commands\订单管理\OrderBillingUploadAuditCommand.cs" />
<Compile Include="Commands\订单管理\UpdateOrderStateCommand.cs" />
<Compile Include="EheMallContext.cs" /> <Compile Include="EheMallContext.cs" />
<Compile Include="Enums\BillingStateEnum.cs" /> <Compile Include="Enums\BillingStateEnum.cs" />
<Compile Include="Enums\LanguageEnum.cs" /> <Compile Include="Enums\LanguageEnum.cs" />
......
...@@ -51,6 +51,12 @@ namespace EheMall.Models.Models ...@@ -51,6 +51,12 @@ namespace EheMall.Models.Models
[NotMapped] [NotMapped]
public string ScreeningName { get; set; } public string ScreeningName { get; set; }
/// <summary>
/// 场次名称
/// </summary>
[NotMapped]
public string ScreeningPic { get; set; }
/// <summary> /// <summary>
/// 客户类型 /// 客户类型
/// </summary> /// </summary>
......
...@@ -41,21 +41,6 @@ namespace EheMall.Mvc.Filters ...@@ -41,21 +41,6 @@ namespace EheMall.Mvc.Filters
this.loginAuth = EngineContext.Current.Resolve<IAuthenticate>(); 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>
/// 是否已登录 /// 是否已登录
/// </summary> /// </summary>
......
...@@ -47,7 +47,15 @@ namespace EheMall.ServiceCenter ...@@ -47,7 +47,15 @@ namespace EheMall.ServiceCenter
IEnumerable<TheaterOrder> GetOrderCount(JObject inputs); 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); IEnumerable<TheaterOrder> MemberHistoryOrderList(JObject inputs, out long iCount);
......
...@@ -366,7 +366,7 @@ ...@@ -366,7 +366,7 @@
<script type="text/javascript"> <script type="text/javascript">
function initEditor(ID, value) { function initEditor(ID, value) {
var ue = UE.getEditor(ID, { 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' //serverUrl: 'http://115.28.48.78:8092/api/upload/controller?module=xiaohai&field=ueditor&appKey=8D7983754693C61D3EA2D715AC361863'
}); });
if (value && value.length > 0) { if (value && value.length > 0) {
......
...@@ -215,8 +215,7 @@ ...@@ -215,8 +215,7 @@
</div> </div>
<div class="people hidden-md hidden-sm hidden-xs wow shake"> <div class="people hidden-md hidden-sm hidden-xs wow shake">
<a href="/TicketMall/Home/Index"> <img src="~/Areas/Mobile/Content/images/people.png" class="img-responsive"></a>
<a href="/TicketMall/Index.html"> <img src="~/Areas/Mobile/Content/images/people.png" class="img-responsive"></a>
</div> </div>
<div class="dianha hidden-sm hidden-xs"> <div class="dianha hidden-sm hidden-xs">
......
...@@ -278,6 +278,7 @@ namespace EheMall.Web.Areas.TicketMall.Controllers ...@@ -278,6 +278,7 @@ namespace EheMall.Web.Areas.TicketMall.Controllers
} }
public ActionResult qrCode(Guid orderID) public ActionResult qrCode(Guid orderID)
{ {
#region 二维码 #region 二维码
...@@ -610,6 +611,16 @@ namespace EheMall.Web.Areas.TicketMall.Controllers ...@@ -610,6 +611,16 @@ namespace EheMall.Web.Areas.TicketMall.Controllers
return View(member); 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] [HttpPost]
public ActionResult ModifyPassWord(MemberUpdatePWCommand entity) public ActionResult ModifyPassWord(MemberUpdatePWCommand entity)
{ {
...@@ -728,5 +739,31 @@ namespace EheMall.Web.Areas.TicketMall.Controllers ...@@ -728,5 +739,31 @@ namespace EheMall.Web.Areas.TicketMall.Controllers
#endregion #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 ...@@ -413,5 +413,8 @@ namespace EheMall.Web.Areas.TicketMall.Controllers
} }
return View(); return View();
} }
} }
} }
\ No newline at end of file
...@@ -191,7 +191,8 @@ ...@@ -191,7 +191,8 @@
layer.msg('下单成功', { layer.msg('下单成功', {
icon: 1,//提示的样式 icon: 1,//提示的样式
end: function () { end: function () {
window.location.reload(); location.href = "@Url.Action("MyOrder")";
//window.location.reload();
} }
}); });
} else { } else {
......
...@@ -53,18 +53,18 @@ ...@@ -53,18 +53,18 @@
</ul> </ul>
@*<div class="nav_right" style="display:none"> @*<div class="nav_right" style="display:none">
<ul> <ul>
<li> <li>
<a href="/TicketMall/Home.html"> <a href="/TicketMall/Home.html">
<img src="/Areas/TicketMall/Content/Sp_img/icon07.png" width="26" height="20"> <img src="/Areas/TicketMall/Content/Sp_img/icon07.png" width="26" height="20">
<span>购票</span> <span>购票</span>
</a> </a>
</li> </li>
</ul> </ul>
</div>*@ </div>*@
<div class="notice_img center"> <div class="notice_img center">
<img src="/Areas/TicketMall/Content/Sp_img/201811060903.jpg" width="196" height="169" /> <img src="/Areas/TicketMall/Content/Sp_img/201811060903.jpg" width="196" height="169" />
</div> </div>
...@@ -85,13 +85,18 @@ ...@@ -85,13 +85,18 @@
<div class="selectbox fl"> <div class="selectbox fl">
</div> </div>
<p> <div>
上映时间: <span style="margin-left:20px;font-size:14px;color:#898989;"> 上映时间: </span>
<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;" />
<input type="text" readonly id="StartTime" name="StartTime" value="@System.DateTime.Now.ToString("yyyy-MM-dd")" /> <span id="submitKey" style="cursor:pointer;margin-left:10px;font-size:14px;color:#898989;"> <a href="javascript:void(0)" onclick="GetTimeData()">查询</a></span>
</span> </div>
<span> <a href="javascript:void(0)" onclick="GetTimeData()">查询</a></span> @*<p>
</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>
</div> </div>
......
...@@ -222,7 +222,7 @@ ...@@ -222,7 +222,7 @@
<span class="Ticket_Total">手机号</span> <span class="Ticket_Total">手机号</span>
<span> <span>
<span class="phone_Number">@Model.MobilePhone</span> <span class="phone_Number">@Model.MobilePhone</span>
<span class="sendValida">发送验证码</span> <span class="sendValida" onclick="SendCode()">发送验证码</span>
</span> </span>
</div> </div>
<div class="buyTicket"> <div class="buyTicket">
...@@ -278,6 +278,21 @@ ...@@ -278,6 +278,21 @@
<script src="/Areas/TicketMall/Content/js/layer/layer.js"></script> <script src="/Areas/TicketMall/Content/js/layer/layer.js"></script>
<script src="/Areas/TicketMall/Content/js/jquery.flexslider-min.js"></script> <script src="/Areas/TicketMall/Content/js/jquery.flexslider-min.js"></script>
<script type="text/javascript"> <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 () { $(function () {
$("#strwhere").focus(function () { $("#strwhere").focus(function () {
location.href = "/TicketMall/Home/SearchIndex"; location.href = "/TicketMall/Home/SearchIndex";
......
...@@ -120,7 +120,6 @@ ...@@ -120,7 +120,6 @@
layer.msg('请求超时,请重试', { icon: 2 }); layer.msg('请求超时,请重试', { icon: 2 });
} }
}); });
} }
//string StartTime, int PageIndex, int iPageSize //string StartTime, int PageIndex, int iPageSize
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<li> <li>
<div class="pic"> <div class="pic">
<a href="/TicketMall/Home/BuyTickets?ScreeningID=@item.ID"> <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> </a>
</div> </div>
<div class="text"> <div class="text">
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<ul> <ul>
<li> <li>
<div class="pic fl"> <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>
<div class="text fl"> <div class="text fl">
<h2>@item.ScreeningName</h2> <h2>@item.ScreeningName</h2>
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<li> <li>
<div class="pic"> <div class="pic">
<a href="/TicketMall/Home/BuyTickets?ScreeningID=@item.ID"> <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> </a>
</div> </div>
<div class="text"> <div class="text">
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<li> <li>
<div class="pic"> <div class="pic">
<a href="/TicketMall/SaleTheater/SaleTicket?ScreeningID=@item.ID"> <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> </a>
</div> </div>
<div class="text"> <div class="text">
......
...@@ -12,17 +12,17 @@ ...@@ -12,17 +12,17 @@
"imageCompressEnable": true, "imageCompressEnable": true,
"imageCompressBorder": 1600, "imageCompressBorder": 1600,
"imageInsertAlign": "none", "imageInsertAlign": "none",
"imageUrlPrefix": "http://localhost:8069", "imageUrlPrefix": "http://192.168.2.214:8085",
"imagePathFormat": "/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", "imagePathFormat": "/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}",
"scrawlActionName": "uploadscrawl", "scrawlActionName": "uploadscrawl",
"scrawlFieldName": "upfile", "scrawlFieldName": "upfile",
"scrawlPathFormat": "/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", "scrawlPathFormat": "/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}",
"scrawlMaxSize": 2048000, "scrawlMaxSize": 2048000,
"scrawlUrlPrefix": "http://localhost:8069", "scrawlUrlPrefix": "http://192.168.2.214:8085",
"scrawlInsertAlign": "none", "scrawlInsertAlign": "none",
"snapscreenActionName": "uploadimage", "snapscreenActionName": "uploadimage",
"snapscreenPathFormat": "/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", "snapscreenPathFormat": "/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}",
"snapscreenUrlPrefix": "http://localhost:8069", "snapscreenUrlPrefix": "http://192.168.2.214:8085",
"snapscreenInsertAlign": "none", "snapscreenInsertAlign": "none",
"catcherLocalDomain": [ "catcherLocalDomain": [
"127.0.0.1", "127.0.0.1",
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
"catcherActionName": "catchimage", "catcherActionName": "catchimage",
"catcherFieldName": "source", "catcherFieldName": "source",
"catcherPathFormat": "/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", "catcherPathFormat": "/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}",
"catcherUrlPrefix": "http://localhost:8069", "catcherUrlPrefix": "http://192.168.2.214:8085",
"catcherMaxSize": 2048000, "catcherMaxSize": 2048000,
"catcherAllowFiles": [ "catcherAllowFiles": [
".png", ".png",
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
"videoActionName": "uploadvideo", "videoActionName": "uploadvideo",
"videoFieldName": "upfile", "videoFieldName": "upfile",
"videoPathFormat": "/upload/video/{yyyy}{mm}{dd}/{time}{rand:6}", "videoPathFormat": "/upload/video/{yyyy}{mm}{dd}/{time}{rand:6}",
"videoUrlPrefix": "http://localhost:8069", "videoUrlPrefix": "http://192.168.2.214:8085",
"videoMaxSize": 102400000, "videoMaxSize": 102400000,
"videoAllowFiles": [ "videoAllowFiles": [
".flv", ".flv",
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
"fileActionName": "uploadfile", "fileActionName": "uploadfile",
"fileFieldName": "upfile", "fileFieldName": "upfile",
"filePathFormat": "/upload/file/{yyyy}{mm}{dd}/{time}{rand:6}", "filePathFormat": "/upload/file/{yyyy}{mm}{dd}/{time}{rand:6}",
"fileUrlPrefix": "http://localhost:8069", "fileUrlPrefix": "http://192.168.2.214:8085",
"fileMaxSize": 51200000, "fileMaxSize": 51200000,
"fileAllowFiles": [ "fileAllowFiles": [
".png", ".png",
...@@ -115,7 +115,7 @@ ...@@ -115,7 +115,7 @@
"imageManagerActionName": "listimage", "imageManagerActionName": "listimage",
"imageManagerListPath": "/upload/image", "imageManagerListPath": "/upload/image",
"imageManagerListSize": 20, "imageManagerListSize": 20,
"imageManagerUrlPrefix": "http://localhost:8069", "imageManagerUrlPrefix": "http://192.168.2.214:8085",
"imageManagerInsertAlign": "none", "imageManagerInsertAlign": "none",
"imageManagerAllowFiles": [ "imageManagerAllowFiles": [
".png", ".png",
...@@ -126,7 +126,7 @@ ...@@ -126,7 +126,7 @@
], ],
"fileManagerActionName": "listfile", "fileManagerActionName": "listfile",
"fileManagerListPath": "/upload/file", "fileManagerListPath": "/upload/file",
"fileManagerUrlPrefix": "http://localhost:8069", "fileManagerUrlPrefix": "http://192.168.2.214:8085",
"fileManagerListSize": 20, "fileManagerListSize": 20,
"fileManagerAllowFiles": [ "fileManagerAllowFiles": [
".png", ".png",
......
...@@ -239,6 +239,7 @@ ...@@ -239,6 +239,7 @@
<Content Include="Areas\Mobile\Content\images\news_bg.jpg" /> <Content Include="Areas\Mobile\Content\images\news_bg.jpg" />
<Content Include="Areas\Mobile\Content\images\next.png" /> <Content Include="Areas\Mobile\Content\images\next.png" />
<Content Include="Areas\Mobile\Content\images\people.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\prev.png" />
<Content Include="Areas\Mobile\Content\images\videox.png" /> <Content Include="Areas\Mobile\Content\images\videox.png" />
<Content Include="Areas\Mobile\Content\js\bootstrap.min.js" /> <Content Include="Areas\Mobile\Content\js\bootstrap.min.js" />
...@@ -343,6 +344,7 @@ ...@@ -343,6 +344,7 @@
<Content Include="Areas\TicketMall\Content\login.html" /> <Content Include="Areas\TicketMall\Content\login.html" />
<Content Include="Areas\TicketMall\Content\Sp_img\choose.png" /> <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\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\no.png" />
<Content Include="Areas\TicketMall\Content\Sp_img\201811060903.jpg" /> <Content Include="Areas\TicketMall\Content\Sp_img\201811060903.jpg" />
<Content Include="Areas\TicketMall\Content\Sp_img\201815060905.jpg" /> <Content Include="Areas\TicketMall\Content\Sp_img\201815060905.jpg" />
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
</WebStackScaffolding_LayoutPageFile> </WebStackScaffolding_LayoutPageFile>
<WebStackScaffolding_IsAsyncSelected>False</WebStackScaffolding_IsAsyncSelected> <WebStackScaffolding_IsAsyncSelected>False</WebStackScaffolding_IsAsyncSelected>
<UseIISExpress>true</UseIISExpress> <UseIISExpress>true</UseIISExpress>
<ProjectView>ProjectFiles</ProjectView> <ProjectView>ShowAllFiles</ProjectView>
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig> <LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
<Use64BitIISExpress /> <Use64BitIISExpress />
<IISExpressSSLPort /> <IISExpressSSLPort />
......
...@@ -8,6 +8,7 @@ using EheMall.Mvc.WebSockets; ...@@ -8,6 +8,7 @@ using EheMall.Mvc.WebSockets;
using System.Web.SessionState; using System.Web.SessionState;
using System.Threading; using System.Threading;
using EheMall.Extensions; using EheMall.Extensions;
using System.Threading.Tasks;
namespace EheMall.Web namespace EheMall.Web
{ {
...@@ -21,7 +22,8 @@ namespace EheMall.Web ...@@ -21,7 +22,8 @@ namespace EheMall.Web
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes); RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles); BundleConfig.RegisterBundles(BundleTable.Bundles);
//启动信息发送
Task.Run(() => Business.Services.MessageCore.Init());
FrontOrderSocket.Start(); FrontOrderSocket.Start();
new Thread(new ThreadStart(() => 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