public bool Start(HostControl hostControl) { Type mainJobType = typeof(ManagerJob); string mainJobId = GuidUtil.Empty(); string mainJobGroup = string.Format("{0}Group", mainJobId); JobKey jobKey = new JobKey(mainJobId, mainJobGroup); IJobDetail job = new JobDetailImpl(mainJobId, mainJobGroup, mainJobType); job.JobDataMap.Add("Parameters", ""); job.JobDataMap.Add("JobName", "监控子任务状态变化任务"); CronTriggerImpl trigger = new CronTriggerImpl(); trigger.CronExpressionString = "0/3 * * * * ?";//每3秒执行一次 trigger.Name = mainJobId; trigger.Description = "监控子任务状态变化任务"; trigger.StartTimeUtc = DateTime.UtcNow; trigger.Group = mainJobId + "TriggerGroup"; if (!scheduler.CheckExists(jobKey)) { scheduler.ScheduleJob(job, trigger); } scheduler.ListenerManager.AddJobListener(new SchedulerJobListener(), GroupMatcher <JobKey> .AnyGroup()); scheduler.Start(); //QuartzManager.JobScheduler(scheduler); _logger.Info(string.Format("{0} Start", ServiceName)); return(true); }
public CustomJsonResult Add(string operater, RopAdminOrgAdd rop) { var result = new CustomJsonResult(); using (TransactionScope ts = new TransactionScope()) { var isExists = CurrentDb.SysOrg.Where(m => m.Name == rop.Name).FirstOrDefault(); if (isExists != null) { return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, "该名称已经存在")); } var sysOrg = new SysOrg(); sysOrg.Id = GuidUtil.New(); sysOrg.Name = rop.Name; sysOrg.Description = rop.Description; sysOrg.PId = rop.PId; sysOrg.BelongSite = Enumeration.BelongSite.Admin; sysOrg.ReferenceId = GuidUtil.Empty(); sysOrg.Depth = 0; sysOrg.CreateTime = DateTime.Now; sysOrg.Creator = operater; CurrentDb.SysOrg.Add(sysOrg); CurrentDb.SaveChanges(); ts.Complete(); result = new CustomJsonResult(ResultType.Success, ResultCode.Success, "保存成功"); } return(result); }
public CustomJsonResult Cancle(RopOrderCancle rop) { CustomJsonResult result = new CustomJsonResult(); result = LocalS.BLL.Biz.BizFactory.Order.Cancle(GuidUtil.Empty(), rop.OrderId, rop.Reason); return(result); }
public CustomJsonResult Add(string operater, string merchId, RopStoreAdd rop) { CustomJsonResult result = new CustomJsonResult(); using (TransactionScope ts = new TransactionScope()) { var isExistStore = CurrentDb.Store.Where(m => m.MerchId == merchId && m.Name == rop.Name).FirstOrDefault(); if (isExistStore != null) { return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, "名称已存在,请使用其它")); } var store = new Store(); store.Id = GuidUtil.New(); store.MerchId = merchId; store.Name = rop.Name; store.Address = rop.Address; store.BriefDes = rop.BriefDes; store.IsOpen = false; store.DispalyImgUrls = rop.DispalyImgUrls.ToJsonString(); store.MainImgUrl = ImgSet.GetMain(store.DispalyImgUrls); store.CreateTime = DateTime.Now; store.Creator = operater; CurrentDb.Store.Add(store); //默认 快递商品库存 var storeSellChannel = new StoreSellChannel(); storeSellChannel.Id = GuidUtil.New(); storeSellChannel.Name = "快递商品"; storeSellChannel.MerchId = merchId; storeSellChannel.StoreId = store.Id; storeSellChannel.RefType = E_StoreSellChannelRefType.Express; storeSellChannel.RefId = GuidUtil.Empty(); storeSellChannel.CreateTime = DateTime.Now; store.Creator = operater; CurrentDb.SaveChanges(); ts.Complete(); result = new CustomJsonResult(ResultType.Success, ResultCode.Success, "保存成功"); } return(result); }
public CustomJsonResult Add(string operater, Enumeration.BelongSite belongSite, RopSysRoleAdd rop) { var result = new CustomJsonResult(); using (TransactionScope ts = new TransactionScope()) { var isExists = CurrentDb.SysRole.Where(m => m.Name == rop.Name && m.BelongSite == belongSite).FirstOrDefault(); if (isExists != null) { return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, "该名称已经存在")); } var sysRole = new SysRole(); sysRole.Id = GuidUtil.New(); sysRole.Name = rop.Name; sysRole.Description = rop.Description; sysRole.PId = GuidUtil.Empty(); sysRole.BelongSite = belongSite; sysRole.Dept = 0; sysRole.CreateTime = DateTime.Now; sysRole.Creator = operater; CurrentDb.SysRole.Add(sysRole); if (rop.MenuIds != null) { foreach (var menuId in rop.MenuIds) { CurrentDb.SysRoleMenu.Add(new SysRoleMenu { Id = GuidUtil.New(), RoleId = sysRole.Id, MenuId = menuId, Creator = operater, CreateTime = DateTime.Now }); } } CurrentDb.SaveChanges(); ts.Complete(); result = new CustomJsonResult(ResultType.Success, ResultCode.Success, "保存成功"); } return(result); }
public ContentResult PayResult() { Stream stream = Request.InputStream; stream.Seek(0, SeekOrigin.Begin); string xml = new StreamReader(stream).ReadToEnd(); if (string.IsNullOrEmpty(xml)) { return(Content("")); } LogUtil.Info("接收支付结果:" + xml); if (!SdkFactory.Wx.Instance().CheckPayNotifySign(xml)) { LogUtil.Warn("支付通知结果签名验证失败"); return(Content("")); } string orderSn = ""; var dic2 = Lumos.WeiXinSdk.CommonUtil.ToDictionary(xml); if (dic2.ContainsKey("out_trade_no") && dic2.ContainsKey("result_code")) { orderSn = dic2["out_trade_no"].ToString(); } bool isPaySuccessed = false; var result = BizFactory.Order.PayResultNotify(GuidUtil.Empty(), Enumeration.OrderNotifyLogNotifyFrom.NotifyUrl, xml, orderSn, out isPaySuccessed); if (result.Result == ResultType.Success) { Response.Write("<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>"); Response.End(); } return(Content("")); }
public CustomJsonResult Add(string pOperater, RopSysRoleAdd rop) { var isExistName = CurrentDb.SysRole.Where(m => m.Name == rop.Name).FirstOrDefault(); if (isExistName != null) { return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, string.Format("添加失败,名称({0})已被使用", rop.Name))); } var sysRole = new SysRole(); sysRole.Id = GuidUtil.New(); sysRole.Name = rop.Name; sysRole.Description = rop.Description; sysRole.PId = GuidUtil.Empty(); sysRole.CreateTime = DateTime.Now; sysRole.Creator = pOperater; sysRole.IsCanDelete = true; CurrentDb.SysRole.Add(sysRole); CurrentDb.SaveChanges(); return(new CustomJsonResult(ResultType.Success, ResultCode.Success, "添加成功")); }
public CustomJsonResult UpdateBlackList() { FileStream fsRead = null; try { string promoteId = "c0c71a0657924059b39895f9e406ef26"; fsRead = new FileStream(Server.MapPath("~/Files/a1.xls"), FileMode.Open); HSSFWorkbook workbook = new HSSFWorkbook(fsRead); if (workbook == null) { return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, "Excel读取失败")); } ISheet sheet = workbook.GetSheetAt(0); if (sheet == null) { return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, "Excel工作本为空")); } if (sheet.LastRowNum <= 1) { return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, "Excel工作本数据为空")); } int rowCount = sheet.LastRowNum + 1; for (int i = 1; i < rowCount; i++) { IRow row = sheet.GetRow(i); if (row != null) { var cell_phoneNumer = row.GetCell(2); if (cell_phoneNumer != null) { string str_phoneNumer = cell_phoneNumer.ToString().Trim(); var promoteUser = CurrentDb.PromoteUser.Where(m => m.CtPhone == str_phoneNumer).FirstOrDefault(); if (promoteUser != null) { var promoteBlackList = CurrentDb.PromoteBlackList.Where(m => m.ClientId == promoteUser.ClientId && m.PromoteId == promoteId).FirstOrDefault(); if (promoteBlackList == null) { promoteBlackList = new Lumos.Entity.PromoteBlackList(); promoteBlackList.Id = GuidUtil.New(); promoteBlackList.PromoteId = promoteId; promoteBlackList.ClientId = promoteUser.ClientId; promoteBlackList.CreateTime = DateTime.Now; promoteBlackList.Creator = GuidUtil.Empty(); CurrentDb.PromoteBlackList.Add(promoteBlackList); CurrentDb.SaveChanges(); } } } } } if (fsRead != null) { fsRead.Close(); fsRead.Dispose(); } return(new CustomJsonResult(ResultType.Success, ResultCode.Success, "上传成功")); } catch (Exception ex) { if (fsRead != null) { fsRead.Close(); fsRead.Dispose(); } LogUtil.Error("读取excel失败", ex); return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, "Excel上传失败")); } }
public List <TreeNode> GetSubjectTree(string merchId) { var prdSubjects = CurrentDb.PrdSubject.Where(m => m.MerchId == merchId).OrderBy(m => m.Priority).ToList(); return(GetSubjectTree(GuidUtil.Empty(), prdSubjects)); }
public CustomJsonResult Add(string operater, RopMerchMasterAdd rop) { var result = new CustomJsonResult(); if (string.IsNullOrEmpty(rop.UserName)) { return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, "用户名不能为空")); } if (string.IsNullOrEmpty(rop.Password)) { return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, "密码不能为空")); } var isExistUserName = CurrentDb.SysUser.Where(m => m.UserName == rop.UserName).FirstOrDefault(); if (isExistUserName != null) { return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, string.Format("该用户名({0})已被使用", rop.UserName))); } using (TransactionScope ts = new TransactionScope()) { string merchId = GuidUtil.New(); var user = new SysMerchUser(); user.Id = GuidUtil.New(); user.MerchId = merchId; user.PId = GuidUtil.Empty(); user.UserName = rop.UserName; user.FullName = rop.FullName; user.PasswordHash = PassWordHelper.HashPassword(rop.Password); user.Email = rop.Email; user.PhoneNumber = rop.PhoneNumber; user.BelongSite = Enumeration.BelongSite.Merch; user.IsDelete = false; user.IsDisable = false; user.IsMaster = true; user.Creator = operater; user.CreateTime = DateTime.Now; user.RegisterTime = DateTime.Now; user.SecurityStamp = Guid.NewGuid().ToString().Replace("-", ""); CurrentDb.SysMerchUser.Add(user); var merch = new LocalS.Entity.Merch(); merch.Id = merchId; merch.UserId = user.Id; merch.Name = rop.FullName; merch.CreateTime = DateTime.Now; merch.Creator = operater; CurrentDb.Merch.Add(merch); var sysRole = CurrentDb.SysRole.Where(m => m.BelongSite == Enumeration.BelongSite.Merch && m.IsSuper == true).FirstOrDefault(); if (sysRole == null) { return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, "未配置系统管理角色")); } CurrentDb.SysUserRole.Add(new SysUserRole { Id = GuidUtil.New(), RoleId = sysRole.Id, UserId = user.Id, Creator = operater, CreateTime = DateTime.Now }); var sysOrg = new SysOrg(); sysOrg.Id = GuidUtil.New(); sysOrg.Name = "根组织"; sysOrg.PId = GuidUtil.Empty(); sysOrg.BelongSite = Enumeration.BelongSite.Merch; sysOrg.ReferenceId = merch.Id; sysOrg.IsDelete = false; sysOrg.Priority = 0; sysOrg.Depth = 0; sysOrg.CreateTime = DateTime.Now; sysOrg.Creator = operater; CurrentDb.SysOrg.Add(sysOrg); var sysUserOrg = new SysUserOrg(); sysUserOrg.Id = GuidUtil.New(); sysUserOrg.OrgId = sysOrg.Id; sysUserOrg.UserId = user.Id; sysUserOrg.CreateTime = DateTime.Now; sysUserOrg.Creator = operater; CurrentDb.SysUserOrg.Add(sysUserOrg); CurrentDb.SaveChanges(); ts.Complete(); result = new CustomJsonResult(ResultType.Success, ResultCode.Success, "新建成功"); } return(result); }
public List <TreeNode> GetOrgTree() { var sysOrgs = CurrentDb.SysOrg.Where(m => m.BelongSite == Enumeration.BelongSite.Admin).OrderBy(m => m.Priority).ToList(); return(GetOrgTree(GuidUtil.Empty(), sysOrgs)); }
public void Execute(IJobExecutionContext context) { try { var lists = GetList(); LogUtil.Info(string.Format("共有{0}条记录需要检查状态", lists.Count)); if (lists.Count > 0) { LogUtil.Info(string.Format("开始执行订单查询,时间:{0}", this.DateTime)); foreach (var m in lists) { switch (m.Type) { case TimerTaskType.CheckOrderPay: var order = m.Data.ToJsonObject <Order>(); #region 检查支付状态 if (order.PayExpireTime.Value.AddMinutes(1) >= DateTime.Now) { string xml = SdkFactory.Wx.Instance().OrderQuery(order.Sn); LogUtil.Info(string.Format("订单号:{0},结果文件:{1}", order.Sn, xml)); bool isPaySuccessed = false; BizFactory.Order.PayResultNotify(GuidUtil.Empty(), Entity.Enumeration.OrderNotifyLogNotifyFrom.OrderQuery, xml, order.Sn, out isPaySuccessed); if (isPaySuccessed) { Exit(m.Id); LogUtil.Info(string.Format("订单号:{0},支付成功,删除缓存", order.Sn)); } } else { Exit(m.Id); var rt = BizFactory.Order.Cancle(GuidUtil.Empty(), m.Id, "订单支付有效时间过期"); if (rt.Result == ResultType.Success) { Exit(m.Id); LogUtil.Info(string.Format("订单号:{0},已经过期,删除缓存", order.Sn)); } } #endregion break; } } LogUtil.Info(string.Format("结束执行订单查询,时间:{0}", this.DateTime)); } #region 检查优惠券领取状态 //var promoteUserCoupons = CurrentDb.PromoteUserCoupon.Where(m => m.IsGet == false).ToList(); //foreach (var item in promoteUserCoupons) //{ // var wxUserInfo = CurrentDb.WxUserInfo.Where(m => m.UserId == item.UserId).FirstOrDefault(); // if (wxUserInfo != null) // { // var cards = SdkFactory.Wx.Instance().GetUserCards(wxUserInfo.OpenId, item.WxCouponId); // if (cards != null) // { // var card = cards.FirstOrDefault(); // if (card != null) // { // item.WxCouponDecryptCode = card.code; // item.Mender = GuidUtil.Empty(); // item.MendTime = this.DateTime; // } // } // } //} //CurrentDb.SaveChanges(); #endregion #region 检查提现到期时间后,用户余额归0 //if (DateTime.Now > DateTime.Parse("2018-11-15")) //{ // var withdraws = CurrentDb.Withdraw.Where(m => m.Status == Enumeration.WithdrawStatus.Handing).ToList(); // foreach (var withdraw in withdraws) // { // var pms = new WithdrawDoTransferPms(); // pms.WithdrawId = withdraw.Id; // pms.Operate = WithdrawDoTransferOperate.Pass; // pms.AuditComments = ""; // BizFactory.Withdraw.DoTransfer(GuidUtil.New(), pms); // } // var funds = CurrentDb.Fund.Where(m => m.AvailableBalance > 0).ToList(); // foreach (var fund in funds) // { // var dAmount = fund.AvailableBalance; // fund.CurrentBalance -= dAmount; // fund.AvailableBalance -= dAmount; // fund.MendTime = DateTime.Now; // fund.Mender = GuidUtil.Empty(); // var fundTrans = new FundTrans(); // fundTrans.Id = GuidUtil.New(); // fundTrans.Sn = SnUtil.Build(Enumeration.BizSnType.FundTrans, fund.ClientId); // fundTrans.ClientId = fund.ClientId; // fundTrans.ChangeType = Enumeration.FundTransChangeType.WtihdrawExpire; // fundTrans.ChangeAmount = dAmount; // fundTrans.CurrentBalance = fund.CurrentBalance; // fundTrans.AvailableBalance = fund.AvailableBalance; // fundTrans.LockBalance = fund.LockBalance; // fundTrans.CreateTime = DateTime.Now; // fundTrans.Creator = GuidUtil.Empty(); // fundTrans.Description = "提现期限到期,余额清零"; // fundTrans.TipsIcon = IconUtil.Withdraw; // fundTrans.IsNoDisplay = false; // CurrentDb.FundTrans.Add(fundTrans); // CurrentDb.SaveChanges(); // } //} #endregion } catch (Exception ex) { LogUtil.Error("全局定时任务发生异常", ex); } }
public CustomJsonResult Cancle(string pOperater, string pOrderId, string cancelReason) { var result = new CustomJsonResult(); using (TransactionScope ts = new TransactionScope()) { var order = CurrentDb.Order.Where(m => m.Id == pOrderId).FirstOrDefault(); if (order == null) { return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, "找不到该订单")); } if (order.Status == Enumeration.OrderStatus.Payed) { return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, "该订单已经支付成功")); } if (order.Status == Enumeration.OrderStatus.Completed) { return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, "该订单已经完成")); } if (order.Status == Enumeration.OrderStatus.WaitPay) { order.Status = Enumeration.OrderStatus.Cancled; order.CancledTime = this.DateTime; order.CancelReason = cancelReason; order.Mender = GuidUtil.Empty(); order.MendTime = this.DateTime; var orderDetails = CurrentDb.OrderDetails.Where(m => m.OrderId == order.Id).ToList(); foreach (var item in orderDetails) { item.Status = Enumeration.OrderDetailsStatus.Cancled; item.Mender = GuidUtil.Empty(); item.MendTime = this.DateTime; if (!string.IsNullOrEmpty(item.PromoteId)) { var promoteSku = CurrentDb.PromoteSku.Where(q => q.PromoteId == item.PromoteId && q.SkuId == item.SkuId).FirstOrDefault(); if (promoteSku != null) { if (promoteSku.StockQuantity > 0) { promoteSku.LockQuantity -= item.Quantity; promoteSku.SellQuantity += item.Quantity; } promoteSku.Mender = GuidUtil.Empty(); promoteSku.MendTime = this.DateTime; } } } CurrentDb.SaveChanges(); ts.Complete(); result = new CustomJsonResult(ResultType.Success, ResultCode.Success, "操作成功"); } return(result); } }
public ActionResult NotifyEvent() { LogUtil.Info("开始接收事件推送通知"); string echoStr = ""; if (Request.HttpMethod == "POST") { Stream stream = Request.InputStream; stream.Seek(0, SeekOrigin.Begin); string xml = new StreamReader(stream).ReadToEnd(); //Int32 intLen = Convert.ToInt32(Request.InputStream.Length); //byte[] b = new byte[intLen]; //Request.InputStream.Read(b, 0, intLen); //string xml = System.Text.Encoding.UTF8.GetString(b); LogUtil.Info("接收事件推送内容:" + xml); if (!string.IsNullOrEmpty(xml)) { var baseEventMsg = WxMsgFactory.CreateMessage(xml); string eventKey = null; LogUtil.Info("baseEventMsg内容:" + baseEventMsg); if (baseEventMsg != null) { var userInfo_Result = SdkFactory.Wx.Instance().GetUserInfoByApiToken(baseEventMsg.FromUserName); if (userInfo_Result.openid != null) { LogUtil.Info("userInfo_Result:" + JsonConvert.SerializeObject(userInfo_Result)); var wxUserInfo = new WxUserInfo(); wxUserInfo.OpenId = userInfo_Result.openid; wxUserInfo.Nickname = userInfo_Result.nickname; wxUserInfo.Sex = userInfo_Result.sex.ToString(); wxUserInfo.Province = userInfo_Result.province; wxUserInfo.City = userInfo_Result.city; wxUserInfo.Country = userInfo_Result.country; wxUserInfo.HeadImgUrl = userInfo_Result.headimgurl; wxUserInfo.UnionId = userInfo_Result.unionid; wxUserInfo = BizFactory.WxUser.CheckedUser(GuidUtil.New(), wxUserInfo); if (wxUserInfo != null) { var wxAutoReply = new WxAutoReply(); switch (baseEventMsg.MsgType) { case MsgType.TEXT: #region TEXT LogUtil.Info("文本消息"); var textMsg = (TextMsg)baseEventMsg; if (textMsg != null) { LogUtil.Info("文本消息:" + textMsg.Content); if (textMsg.Content == "双11入场券" || textMsg.Content == "双十一入场券" || textMsg.Content == "双11入场卷" || textMsg.Content == "双十一入场卷") { string promoteId = "80c71a0657924059b39895f9e406ef84"; string media_Id = GetWxPromoteImgMediaId(promoteId, wxUserInfo.ClientId); echoStr = WxMsgFactory.CreateReplyImage(baseEventMsg.FromUserName, baseEventMsg.ToUserName, media_Id); } } #endregion break; case MsgType.EVENT: #region EVENT switch (baseEventMsg.Event) { case EventType.SUBSCRIBE: //订阅 break; case EventType.UNSUBSCRIBE: //取消订阅 break; case EventType.SCAN: //扫描二维码 case EventType.CLICK: //单击按钮 case EventType.VIEW: //链接按钮 break; case EventType.USER_GET_CARD: //领取卡卷 #region USER_GET_CARD var userGetCardMsg = (UserGetCardMsg)baseEventMsg; var promoteUserCoupon = CurrentDb.ClientCoupon.Where(m => m.ClientId == wxUserInfo.ClientId && m.WxCouponId == userGetCardMsg.CardId).FirstOrDefault(); if (promoteUserCoupon != null) { promoteUserCoupon.IsGet = true; promoteUserCoupon.GetTime = DateTime.Now; promoteUserCoupon.Mender = GuidUtil.Empty(); promoteUserCoupon.MendTime = DateTime.Now; promoteUserCoupon.WxCouponDecryptCode = userGetCardMsg.UserCardCode; CurrentDb.SaveChanges(); } #endregion break; case EventType.USER_CONSUME_CARD: //核销卡卷 #region USER_CONSUME_CARD //var userConsumeCardMsg = (UserConsumeCardMsg)baseEventMsg; //if (userConsumeCardMsg != null) //{ // var reidsMqByCalProfitModel = new RedisMq4GlobalHandle(); // var reidsMqByCalProfitByCouponConsumeModel = new ReidsMqByCalProfitByCouponConsumeModel(); // reidsMqByCalProfitByCouponConsumeModel.ClientId = wxUserInfo.ClientId; // reidsMqByCalProfitByCouponConsumeModel.WxCouponDecryptCode = userConsumeCardMsg.UserCardCode; // reidsMqByCalProfitByCouponConsumeModel.WxCouponId = userConsumeCardMsg.CardId; // reidsMqByCalProfitModel.Pms = reidsMqByCalProfitByCouponConsumeModel; // ReidsMqFactory.Global.Push(RedisMqHandleType.CouponConsume,reidsMqByCalProfitModel); //} #endregion break; } #endregion break; } var wxMsgPushLog = new WxMsgPushLog(); wxMsgPushLog.Id = GuidUtil.New(); wxMsgPushLog.ClientId = wxUserInfo.ClientId; wxMsgPushLog.ToUserName = baseEventMsg.ToUserName; wxMsgPushLog.FromUserName = baseEventMsg.FromUserName; wxMsgPushLog.CreateTime = DateTime.Now; wxMsgPushLog.ContentXml = xml; wxMsgPushLog.MsgId = baseEventMsg.MsgId; wxMsgPushLog.MsgType = baseEventMsg.MsgType.ToString(); wxMsgPushLog.Event = baseEventMsg.Event.ToString(); wxMsgPushLog.EventKey = eventKey; WxMsgPushLog(wxMsgPushLog); } } } } } else if (Request.HttpMethod == "GET") //微信服务器在首次验证时,需要进行一些验证,但。。。。 { if (string.IsNullOrEmpty(Request["echostr"])) { echoStr = "无法获取微信接入信息,仅供测试!"; } else { echoStr = Request["echostr"].ToString(); } } else { echoStr = "wrong"; } LogUtil.Info(string.Format("接收事件推送之后回复内容:{0}", echoStr)); Response.Write(echoStr); Response.End(); return(View()); }
public List <TreeNode> GetOrgTree() { var sysOrgs = CurrentDb.SysOrg.OrderBy(m => m.Priority).ToList(); return(GetOrgTree(GuidUtil.Empty(), sysOrgs)); }
public List <TreeNode> GetOrgTree(string merchId) { var sysOrgs = CurrentDb.SysOrg.Where(m => m.ReferenceId == merchId && m.BelongSite == Enumeration.BelongSite.Merch).OrderBy(m => m.Priority).ToList(); return(GetOrgTree(GuidUtil.Empty(), sysOrgs)); }
public CustomJsonResult <RetOrderReserve> Reserve(string operater, RopOrderReserve rop) { CustomJsonResult <RetOrderReserve> result = new CustomJsonResult <RetOrderReserve>(); if (rop.ReserveMode == E_ReserveMode.Unknow) { return(new CustomJsonResult <RetOrderReserve>(ResultType.Failure, ResultCode.Failure, "未知预定方式", null)); } if (rop.ReserveMode == E_ReserveMode.OffLine) { if (string.IsNullOrEmpty(rop.SellChannelRefId)) { return(new CustomJsonResult <RetOrderReserve>(ResultType.Failure, ResultCode.Failure, "机器ID不能为空", null)); } } using (TransactionScope ts = new TransactionScope()) { RetOrderReserve ret = new RetOrderReserve(); var skuIds = rop.ProductSkus.Select(m => m.Id).ToArray(); //检查是否有可买的商品 List <string> warn_tips = new List <string>(); List <PrdProductSkuModel> productSkus = new List <BLL.PrdProductSkuModel>(); foreach (var sku in rop.ProductSkus) { var productSku = BizFactory.PrdProduct.GetProductSku(rop.StoreId, sku.Id); productSkus.Add(productSku); var sellQuantity = 0; if (rop.ReserveMode == E_ReserveMode.OffLine) { sellQuantity = productSku.Stocks.Where(m => m.RefType == E_StoreSellChannelRefType.Machine && m.RefId == rop.SellChannelRefId).Sum(m => m.SellQuantity); } else if (rop.ReserveMode == E_ReserveMode.Online) { if (sku.ReceptionMode == E_ReceptionMode.Machine) { sellQuantity = productSku.Stocks.Where(m => m.RefType == E_StoreSellChannelRefType.Machine).Sum(m => m.SellQuantity); } else if (sku.ReceptionMode == E_ReceptionMode.Express) { sellQuantity = productSku.Stocks.Where(m => m.RefType == E_StoreSellChannelRefType.Express).Sum(m => m.SellQuantity); } else if (sku.ReceptionMode == E_ReceptionMode.SelfTake) { sellQuantity = productSku.Stocks.Where(m => m.RefType == E_StoreSellChannelRefType.SelfTake).Sum(m => m.SellQuantity); } } if (productSku.IsOffSell) { warn_tips.Add(string.Format("{0}已经下架", productSku.Name)); } else { if (sellQuantity < sku.Quantity) { warn_tips.Add(string.Format("{0}的可销售数量为{1}个", productSku.Name, sellQuantity)); } } } if (warn_tips.Count > 0) { return(new CustomJsonResult <RetOrderReserve>(ResultType.Failure, ResultCode.Failure, string.Join(";", warn_tips.ToArray()), null)); } var store = CurrentDb.Store.Where(m => m.Id == rop.StoreId).FirstOrDefault(); if (store == null) { return(new CustomJsonResult <RetOrderReserve>(ResultType.Failure, ResultCode.Failure, "店铺无效", null)); } var order = new Order(); order.Id = GuidUtil.New(); order.Sn = RedisSnUtil.Build(RedisSnType.Order, store.MerchId); order.MerchId = store.MerchId; order.StoreId = rop.StoreId; order.StoreName = store.Name; order.ClientUserId = rop.ClientUserId; order.Quantity = rop.ProductSkus.Sum(m => m.Quantity); order.Status = E_OrderStatus.WaitPay; order.Source = rop.Source; order.SubmitTime = DateTime.Now; order.PayExpireTime = DateTime.Now.AddSeconds(300); order.Creator = operater; order.CreateTime = DateTime.Now; //todo Random rd = new Random(); int num = rd.Next(100000, 1000000); order.PickCode = num.ToString(); #region 更改购物车标识 if (!string.IsNullOrEmpty(rop.ClientUserId)) { var cartsIds = rop.ProductSkus.Select(m => m.CartId).Distinct().ToArray(); if (cartsIds != null) { var clientCarts = CurrentDb.ClientCart.Where(m => cartsIds.Contains(m.Id) && m.ClientUserId == rop.ClientUserId).ToList(); if (clientCarts != null) { foreach (var cart in clientCarts) { cart.Status = E_ClientCartStatus.Settling; cart.Mender = operater; cart.MendTime = DateTime.Now; CurrentDb.SaveChanges(); } } } } #endregion var reserveDetails = GetReserveDetail(rop.ProductSkus, productSkus); order.OriginalAmount = reserveDetails.Sum(m => m.OriginalAmount); order.DiscountAmount = reserveDetails.Sum(m => m.DiscountAmount); order.ChargeAmount = reserveDetails.Sum(m => m.ChargeAmount); foreach (var detail in reserveDetails) { var orderDetails = new OrderDetails(); orderDetails.Id = GuidUtil.New(); orderDetails.Sn = order.Sn + reserveDetails.IndexOf(detail).ToString(); orderDetails.ClientUserId = rop.ClientUserId; orderDetails.MerchId = store.MerchId; orderDetails.StoreId = rop.StoreId; orderDetails.SellChannelRefType = detail.SellChannelRefType; orderDetails.SellChannelRefId = detail.SellChannelRefId; switch (detail.SellChannelRefType) { case E_StoreSellChannelRefType.Express: orderDetails.SellChannelRefName = "【快递】"; orderDetails.Receiver = rop.Receiver; orderDetails.ReceiverPhone = rop.ReceiverPhone; orderDetails.ReceptionAddress = rop.ReceptionAddress; orderDetails.SellChannelRefType = E_StoreSellChannelRefType.Express; orderDetails.SellChannelRefId = GuidUtil.Empty(); break; case E_StoreSellChannelRefType.SelfTake: orderDetails.SellChannelRefName = "【店内自取】"; orderDetails.Receiver = rop.Receiver; orderDetails.ReceiverPhone = rop.ReceiverPhone; orderDetails.ReceptionAddress = rop.ReceptionAddress; orderDetails.SellChannelRefType = E_StoreSellChannelRefType.SelfTake; orderDetails.SellChannelRefId = GuidUtil.Empty(); break; case E_StoreSellChannelRefType.Machine: var machine = CurrentDb.Machine.Where(m => m.Id == detail.SellChannelRefId).FirstOrDefault(); if (machine == null) { LogUtil.Info("machine:为空"); } orderDetails.SellChannelRefName = "【机器自提】 " + machine.Name; //todo 若 ChannelType 为1 则机器昵称,2为自取 orderDetails.SellChannelRefType = E_StoreSellChannelRefType.Machine; orderDetails.SellChannelRefId = detail.SellChannelRefId; orderDetails.Receiver = null; orderDetails.ReceiverPhone = null; orderDetails.ReceptionAddress = store.Address; break; } orderDetails.OrderId = order.Id; orderDetails.OrderSn = order.Sn; orderDetails.OriginalAmount = detail.OriginalAmount; orderDetails.DiscountAmount = detail.DiscountAmount; orderDetails.ChargeAmount = detail.ChargeAmount; orderDetails.Quantity = detail.Quantity; orderDetails.SubmitTime = DateTime.Now; orderDetails.Creator = operater; orderDetails.CreateTime = DateTime.Now; CurrentDb.OrderDetails.Add(orderDetails); foreach (var detailsChild in detail.Details) { var orderDetailsChild = new OrderDetailsChild(); orderDetailsChild.Id = GuidUtil.New(); orderDetailsChild.Sn = orderDetails.Sn + detail.Details.IndexOf(detailsChild).ToString(); orderDetailsChild.ClientUserId = rop.ClientUserId; orderDetailsChild.MerchId = store.MerchId; orderDetailsChild.StoreId = rop.StoreId; orderDetailsChild.SellChannelRefType = detailsChild.SellChannelRefType; orderDetailsChild.SellChannelRefId = detailsChild.SellChannelRefId; orderDetailsChild.OrderId = order.Id; orderDetailsChild.OrderSn = order.Sn; orderDetailsChild.OrderDetailsId = orderDetails.Id; orderDetailsChild.OrderDetailsSn = orderDetails.Sn; orderDetailsChild.PrdProductSkuId = detailsChild.SkuId; orderDetailsChild.PrdProductSkuName = detailsChild.SkuName; orderDetailsChild.PrdProductSkuMainImgUrl = detailsChild.SkuImgUrl; orderDetailsChild.SalePrice = detailsChild.SalePrice; orderDetailsChild.SalePriceByVip = detailsChild.SalePriceByVip; orderDetailsChild.Quantity = detailsChild.Quantity; orderDetailsChild.OriginalAmount = detailsChild.OriginalAmount; orderDetailsChild.DiscountAmount = detailsChild.DiscountAmount; orderDetailsChild.ChargeAmount = detailsChild.ChargeAmount; orderDetailsChild.SubmitTime = DateTime.Now; orderDetailsChild.Status = E_OrderStatus.WaitPay; orderDetailsChild.Creator = operater; orderDetailsChild.CreateTime = DateTime.Now; CurrentDb.OrderDetailsChild.Add(orderDetailsChild); foreach (var detailsChildSon in detailsChild.Details) { var orderDetailsChildSon = new OrderDetailsChildSon(); orderDetailsChildSon.Id = GuidUtil.New(); orderDetailsChildSon.Sn = orderDetailsChild.Sn + detailsChild.Details.IndexOf(detailsChildSon); orderDetailsChildSon.ClientUserId = rop.ClientUserId; orderDetailsChildSon.MerchId = store.MerchId; orderDetailsChildSon.StoreId = rop.StoreId; orderDetailsChildSon.SellChannelRefType = detailsChildSon.SellChannelRefType; orderDetailsChildSon.SellChannelRefId = detailsChildSon.SellChannelRefId; orderDetailsChildSon.OrderId = order.Id; orderDetailsChildSon.OrderSn = order.Sn; orderDetailsChildSon.OrderDetailsId = orderDetails.Id; orderDetailsChildSon.OrderDetailsSn = orderDetails.Sn; orderDetailsChildSon.OrderDetailsChildId = orderDetailsChild.Id; orderDetailsChildSon.OrderDetailsChildSn = orderDetailsChild.Sn; orderDetailsChildSon.SlotId = detailsChildSon.SlotId; orderDetailsChildSon.PrdProductSkuId = detailsChildSon.SkuId; orderDetailsChildSon.PrdProductSkuName = detailsChildSon.SkuName; orderDetailsChildSon.PrdProductSkuMainImgUrl = detailsChildSon.SkuImgUrl; orderDetailsChildSon.SalePrice = detailsChildSon.SalePrice; orderDetailsChildSon.SalePriceByVip = detailsChildSon.SalePriceByVip; orderDetailsChildSon.Quantity = detailsChildSon.Quantity; orderDetailsChildSon.OriginalAmount = detailsChildSon.OriginalAmount; orderDetailsChildSon.DiscountAmount = detailsChildSon.DiscountAmount; orderDetailsChildSon.ChargeAmount = detailsChildSon.ChargeAmount; orderDetailsChildSon.SubmitTime = DateTime.Now; orderDetailsChildSon.Creator = operater; orderDetailsChildSon.CreateTime = DateTime.Now; orderDetailsChildSon.Status = E_OrderDetailsChildSonStatus.WaitPay; CurrentDb.OrderDetailsChildSon.Add(orderDetailsChildSon); } foreach (var slotStock in detailsChild.SlotStock) { var machineStock = CurrentDb.StoreSellChannelStock.Where(m => m.PrdProductSkuId == slotStock.SkuId && m.SlotId == slotStock.SlotId && m.RefId == slotStock.SellChannelRefId).FirstOrDefault(); machineStock.LockQuantity += slotStock.Quantity; machineStock.SellQuantity -= slotStock.Quantity; machineStock.Mender = operater; machineStock.MendTime = DateTime.Now; var storeSellStockLog = new StoreSellChannelStockLog(); storeSellStockLog.Id = GuidUtil.New(); storeSellStockLog.MerchId = store.MerchId; storeSellStockLog.StoreId = rop.StoreId; storeSellStockLog.RefType = slotStock.SellChannelRefType; storeSellStockLog.RefId = slotStock.SellChannelRefId; storeSellStockLog.SlotId = slotStock.SlotId; storeSellStockLog.PrdProductSkuId = slotStock.SkuId; storeSellStockLog.SumQuantity = machineStock.SumQuantity; storeSellStockLog.LockQuantity = machineStock.LockQuantity; storeSellStockLog.SellQuantity = machineStock.SellQuantity; storeSellStockLog.ChangeType = E_StoreSellChannelStockLogChangeTpye.Lock; storeSellStockLog.ChangeQuantity = slotStock.Quantity; storeSellStockLog.Creator = operater; storeSellStockLog.CreateTime = DateTime.Now; storeSellStockLog.RemarkByDev = string.Format("预定锁定库存:{0}", slotStock.Quantity); CurrentDb.StoreSellChannelStockLog.Add(storeSellStockLog); } } } CurrentDb.Order.Add(order); CurrentDb.SaveChanges(); ts.Complete(); //Task4Factory.Global.Enter(TimerTaskType.CheckOrderPay, order.PayExpireTime.Value, order); ret.OrderId = order.Id; ret.OrderSn = order.Sn; result = new CustomJsonResult <RetOrderReserve>(ResultType.Success, ResultCode.Success, "预定成功", ret); } return(result); }
public CustomJsonResult Add(string operater, RopAgentMasterAdd rop) { var result = new CustomJsonResult(); if (string.IsNullOrEmpty(rop.UserName)) { return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, "用户名不能为空")); } if (string.IsNullOrEmpty(rop.Password)) { return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, "密码不能为空")); } var isExistUserName = CurrentDb.SysUser.Where(m => m.UserName == rop.UserName).FirstOrDefault(); if (isExistUserName != null) { return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, string.Format("该用户名({0})已被使用", rop.UserName))); } using (TransactionScope ts = new TransactionScope()) { string agentId = GuidUtil.New(); var user = new SysAgentUser(); user.Id = GuidUtil.New(); user.PId = GuidUtil.Empty(); user.UserName = rop.UserName; user.FullName = rop.FullName; user.PasswordHash = PassWordHelper.HashPassword(rop.Password); user.Email = rop.Email; user.PhoneNumber = rop.PhoneNumber; user.BelongSite = Enumeration.BelongSite.Agent; user.IsDelete = false; user.IsDisable = false; user.IsMaster = true; user.Depth = 0; user.AgentId = agentId; user.Creator = operater; user.CreateTime = DateTime.Now; user.RegisterTime = DateTime.Now; user.SecurityStamp = Guid.NewGuid().ToString().Replace("-", ""); user.YbInsureSign = YbInsUtil.GetSign(user.Id, user.Id, user.PhoneNumber, user.FullName); CurrentDb.SysAgentUser.Add(user); var agent = new LocalS.Entity.Agent(); agent.Id = agentId; agent.UserId = user.Id; agent.Name = rop.FullName; agent.CreateTime = DateTime.Now; agent.Creator = operater; CurrentDb.Agent.Add(agent); CurrentDb.SaveChanges(); ts.Complete(); result = new CustomJsonResult(ResultType.Success, ResultCode.Success, "保存成功"); } return(result); }
public CustomJsonResult Cancle(string operater, string orderId, string cancelReason) { var result = new CustomJsonResult(); using (TransactionScope ts = new TransactionScope()) { var order = CurrentDb.Order.Where(m => m.Id == orderId).FirstOrDefault(); if (order == null) { LogUtil.Info(string.Format("该订单号:{0},找不到", orderId)); return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, string.Format("该订单号:{0},找不到", orderId))); } if (order.Status == E_OrderStatus.Cancled) { return(new CustomJsonResult(ResultType.Success, ResultCode.Success, "该订单已经取消")); } if (order.Status == E_OrderStatus.Payed) { return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, "该订单已经支付成功")); } if (order.Status == E_OrderStatus.Completed) { return(new CustomJsonResult(ResultType.Failure, ResultCode.Failure, "该订单已经完成")); } if (order.Status != E_OrderStatus.Payed && order.Status != E_OrderStatus.Completed) { order.Status = E_OrderStatus.Cancled; order.Mender = GuidUtil.Empty(); order.MendTime = DateTime.Now; order.CancledTime = DateTime.Now; order.CancelReason = cancelReason; var orderDetails = CurrentDb.OrderDetails.Where(m => m.OrderId == order.Id).ToList(); foreach (var item in orderDetails) { item.Status = E_OrderStatus.Cancled; item.Mender = GuidUtil.Empty(); //item.MendTime = this.DateTime; } var orderDetailsChilds = CurrentDb.OrderDetailsChild.Where(m => m.OrderId == order.Id).ToList(); foreach (var item in orderDetailsChilds) { item.Status = E_OrderStatus.Cancled; item.Mender = GuidUtil.Empty(); //item.MendTime = this.DateTime; } var orderDetailsChildSons = CurrentDb.OrderDetailsChildSon.Where(m => m.OrderId == order.Id).ToList(); foreach (var item in orderDetailsChildSons) { item.Status = E_OrderDetailsChildSonStatus.Cancled; item.Mender = GuidUtil.Empty(); //item.MendTime = this.DateTime; var machineStock = CurrentDb.StoreSellChannelStock.Where(m => m.MerchId == order.MerchId && m.StoreId == order.StoreId && m.PrdProductSkuId == item.PrdProductSkuId && m.SlotId == item.SlotId && m.RefId == item.SellChannelRefId && m.RefType == item.SellChannelRefType).FirstOrDefault(); machineStock.LockQuantity -= item.Quantity; machineStock.SellQuantity += item.Quantity; machineStock.Mender = operater; //machineStock.MendTime = this.DateTime; var storeSellStockLog = new StoreSellChannelStockLog(); storeSellStockLog.Id = GuidUtil.New(); //storeSellStockLog.MerchantId = item.MerchantId; storeSellStockLog.StoreId = item.StoreId; //storeSellStockLog.ChannelType = item.ChannelType; //storeSellStockLog.ChannelId = item.ChannelId; storeSellStockLog.SlotId = item.SlotId; storeSellStockLog.PrdProductSkuId = item.PrdProductSkuId; //storeSellStockLog.Quantity = machineStock.Quantity; storeSellStockLog.LockQuantity = machineStock.LockQuantity; storeSellStockLog.SellQuantity = machineStock.SellQuantity; //storeSellStockLog.ChangeType = Enumeration.MachineStockLogChangeTpye.Lock; storeSellStockLog.ChangeQuantity = item.Quantity; storeSellStockLog.Creator = operater; //storeSellStockLog.CreateTime = this.DateTime; storeSellStockLog.RemarkByDev = string.Format("取消订单,恢复库存:{0}", item.Quantity); //CurrentDb.StoreSellChannelStock.Add(storeSellStockLog); } CurrentDb.SaveChanges(); ts.Complete(); result = new CustomJsonResult(ResultType.Success, ResultCode.Success, "已取消"); } } return(result); }