protected override CommandResult <Hashtable> OnExecute(object commandParameter) { var param = commandParameter as SaveAddressParameter; var result = new CommandResult <Hashtable>(); using (CoreContext context = new CoreContext()) { var acc = context.MemberInfo.Where(m => m.AccountId == param.MemberAccount).Select(m => m.ZlOpenId).FirstOrDefault(); param.MemberAccount = acc; var res = ZlanAPICaller.ExecuteShop("Member.SaveAddress", param); if (res["ErrorCode"].Value <string>() == "0000" && res["Result"]["Data"] != null) { result.Data = res["Result"]["Data"].ToObject <Hashtable>(); result.ErrorCode = res["ErrorCode"].Value <int>(); result.ErrorMessage = res["ErrorMsg"].Value <string>(); } else { result.ErrorCode = -1; result.ErrorMessage = "创建地址失败,请刷新页面重试"; } } return(result); }
protected override CommandResult <IList <ParamKeyValuePair> > OnExecute(object commandParameter) { var param = commandParameter as LoadAddressParameter; var result = new CommandResult <IList <ParamKeyValuePair> >(); var res = ZlanAPICaller.ExecuteShop("Pub.LoadAddress", param); result.ErrorCode = res["ErrorCode"].Value <int>(); result.ErrorMessage = res["ErrorMsg"].Value <string>(); if (res["Result"]["List"] != null) { result.Data = res["Result"]["List"].ToObject <IList <ParamKeyValuePair> >(); } return(result); }
protected override CommandResult <List <Hashtable> > OnExecute(object commandParameter) { var result = new CommandResult <List <Hashtable> >(); var param = commandParameter as ComputePromotionParameter; var res = new LoadPinConfigComand().Execute(new LoadPinConfigParameter() { PinId = param.ActId }); if (res.ErrorCode == 0) { var configArry = JsonConvert.DeserializeObject <JArray>((res.Data["Config"] as PinConfig).Config); Hashtable hash = new Hashtable { //["ProductNo"] = config["ProductNo"].Value<string>(), //["SalePrice"] = config["SalePrice"].Value<decimal>(), //["ProductSkuNo"] = config["ProductSkuNo"].Value<decimal>(), ["Counter"] = 1, ["DeptCode"] = "0001", ["TypePrefix"] = "-1", ["TypeId"] = "-1" }; foreach (var item in configArry) { if (item["ProductSkuNo"].Value <string>() == param.ProductSkuNo) { hash["ProductNo"] = item["ProductNo"].Value <string>(); hash["SalePrice"] = item["SalePrice"].Value <decimal>(); hash["ProductSkuNo"] = item["ProductSkuNo"].Value <string>(); break; } } var url = ConfigurationUtil.GetSection("PromotionUrl").Value as string;; var _data = new { ActId = param.ActId, ProductList = new List <Hashtable>() { hash } }; var respromotion = ZlanAPICaller.Call <CommandResult <List <Hashtable> > >(url, _data); if (respromotion.ErrorCode == 0) { result.Data = respromotion.Data; } } return(result); }
protected override CommandResult <List <AddressData> > OnExecute(object commandParameter) { var param = commandParameter as LoadAddressListParameter; var result = new CommandResult <List <AddressData> >(); using (CoreContext context = new CoreContext()) { var acc = context.MemberInfo.Where(m => m.AccountId == param.MemberAccount).Select(m => m.ZlOpenId).FirstOrDefault(); param.MemberAccount = acc; var res = ZlanAPICaller.ExecuteShop("Member.LoadAddressList", param); result.ErrorCode = res["ErrorCode"].Value <int>(); result.ErrorMessage = res["ErrorMsg"].Value <string>(); if (res["Result"]["List"] != null) { result.Data = res["Result"]["List"].ToObject <List <AddressData> >(); } } return(result); }
protected override CommandResult <int> OnExecute(object commandParameter) { var result = new CommandResult <int>(); var param = commandParameter as SetPinInfoSuccessParameter; using (CoreContext context = new CoreContext()) { //设置拼团成功 result.Data = context.Database.ExecuteSqlCommand("update pin_info set status=9 where recid=@p0 and status!=9 ", param.MainId); if (result.Data > 0) { foreach (var item in param.OrderNo) { try { var order = context.PinOrder.Where(p => p.OrderNo == item).FirstOrDefault(); var zlopenid = context.MemberInfo.Where(m => m.AccountId == order.MemberAccount).Select(m => m.ZlOpenId).FirstOrDefault(); var wxopneid = ""; using (MySqlConnection conn = new MySqlConnection(ConfigurationUtil.GetSection("ConnectionStrings")["ShopConnectString"])) { conn.Open(); MySqlCommand com = new MySqlCommand(@"select wx_open_id from member_info where account_id=?acc ", conn); com.Parameters.Add(new MySqlParameter("acc", zlopenid)); MySqlDataReader reader = com.ExecuteReader(); while (reader.Read()) { wxopneid = reader["wx_open_id"] as string; } reader.Close(); conn.Close(); } if (!string.IsNullOrEmpty(wxopneid)) { ActiveMQMessagePusher.Push("Message", new Dictionary <string, string> { { "MessageKey", "PinSuccess" } }, new { WxOpenId = wxopneid, OrderNo = item, Product = JsonConvert.DeserializeObject <Hashtable>(order.ProductConfig)["ProductName"] as string }); } } catch (Exception ex) { LogUtil.LogText("sendmessage:MessageKey:PinSuccess", item, ex.Message); } } var confirmRes = ZlanAPICaller.ExecuteSys("Sys.ChangeOrderConfirm", new { param.OrderNo, Type = "SUCCESS" }); if (!confirmRes["ErrorCode"].Value <string>().Equals("0000")) { LogUtil.Log("CreatePinOrder", param.MainId.ToString(), confirmRes["ErrorMsg"].Value <string>()); result.ErrorCode = -1; result.ErrorMessage = "解锁商城订单失败"; return(result); } } } return(result); }
protected override CommandResult <string> OnExecute(object commandParameter) { var result = new CommandResult <string>(); var param = commandParameter as CreatePinParameter; using (CoreContext context = new CoreContext()) { //使用zlopenid,因为此时没有登录 var ZlOpenId = context.MemberInfo.Where(m => m.AccountId == param.MemberAccount).Select(m => m.ZlOpenId).FirstOrDefault(); var pinCofig = context.PinConfig.Where(p => p.PingId == param.PinId && DateTime.Now >= p.StartDate && p.EndDate >= DateTime.Now).FirstOrDefault(); if (pinCofig == null) { result.ErrorCode = -1; result.ErrorMessage = "找不到拼团活动"; return(result); } var configArry = JsonConvert.DeserializeObject <JArray>(pinCofig.Config); string config = ""; foreach (var item in configArry) { if (item["ProductSkuNo"].Value <string>() == param.ProductSkuNo) { config = JsonConvert.SerializeObject(item); break; } } using (var tran = context.Database.BeginTransaction()) { PinInfo pinInfo = null; int pinCount = 0; if (param.MainId > 0) { pinInfo = context.PinInfo.Where(p => p.Recid == param.MainId && p.PingId == param.PinId && p.EndDate >= DateTime.Now).FirstOrDefault(); if (pinInfo != null && pinInfo.MemberAccount == param.MemberAccount) { result.ErrorCode = -1; result.ErrorMessage = "不能参与自己发起的团"; return(result); } pinCount = context.PinOrder.Where(p => p.MainId == param.MainId && p.Status == 1).Count(); if (pinCount == 0) { result.ErrorCode = -1; result.ErrorMessage = "参数错误"; return(result); } } if (pinInfo == null) { var endDate = DateTime.Now.AddDays(Convert.ToInt32(pinCofig.MaxDate)); if (DateTime.Now.ToString("yyyy-MM-dd") == Convert.ToDateTime(pinCofig.EndDate).ToString("yyyy-MM-dd")) { endDate = Convert.ToDateTime(pinCofig.EndDate); } pinInfo = new PinInfo() { MaxDate = pinCofig.MaxDate, PingId = pinCofig.PingId, Status = 1, Config = config, CreateDate = DateTime.Now, EndDate = endDate, MemberAccount = param.MemberAccount, MinCount = pinCofig.MinCount }; context.PinInfo.Add(pinInfo); context.SaveChanges(); } if (pinInfo.Status == 9) { result.ErrorCode = -1; result.ErrorMessage = "拼团失败,该团已满人"; return(result); } if (pinInfo.Status == -1) { result.ErrorCode = -1; result.ErrorMessage = "拼团失败,该团已失效"; return(result); } if (pinInfo.EndDate < DateTime.Now) { result.ErrorCode = -1; result.ErrorMessage = "拼团失败,该团已失效"; return(result); } try { var pinOrder = new PinOrder() { Status = 0, ProductConfig = pinInfo.Config, CreateDate = DateTime.Now, MainId = pinInfo.Recid, MemberAccount = param.MemberAccount }; context.PinOrder.Add(pinOrder); //创建商城订单 JObject productconfig = JsonConvert.DeserializeObject <JObject>(pinInfo.Config); var res = new CreateShopOrderCommand().Execute(new CreateShopOrderParameter() { ZlOpenId = ZlOpenId, ProductSkuNo = productconfig["ProductSkuNo"].Value <string>(), AddressId = param.AddressId, Id = pinCofig.PingId }); if (!string.IsNullOrEmpty(res.Data)) { pinOrder.OrderNo = res.Data; } else { result.ErrorCode = -1; result.ErrorMessage = res.ErrorMessage; return(result); } context.SaveChanges(); result.Data = pinOrder.OrderNo; tran.Commit(); } catch (Exception ex) { tran.Rollback(); result = ErrorResult <string> .ParameterError; result.ErrorMessage = ex.Message; return(result); } //未成团锁定商城订单状态 var confirmRes = ZlanAPICaller.ExecuteSys("Sys.ChangeOrderConfirm", new { OrderNo = new List <string> { result.Data }, Type = "AWAIT" }); if (!confirmRes["ErrorCode"].Value <string>().Equals("0000")) { LogUtil.Log("CreatePinOrder", result.Data, confirmRes["ErrorMsg"].Value <string>()); result.ErrorCode = -1; result.ErrorMessage = "锁定商城订单状态失败"; return(result); } } } return(result); }
protected override CommandResult <string> OnExecute(object commandParameter) { var param = commandParameter as CreateShopOrderParameter; var result = new CommandResult <string>(); using (CoreContext context = new CoreContext()) { //if (DateTime.Now == DateTime.Parse("2018-10-31 23:30:00")) { var acc = param.ZlOpenId; //移除购物车 var RemoveProductRes = ZlanAPICaller.ExecuteShop("Member.RemoveProduct", $"{{ 'MemberAccount': '{acc}','SkuCodeList':['{param.ProductSkuNo}'] }}"); if (RemoveProductRes["ErrorCode"].Value <string>() == "0000") { //加入购物车 var SelectProductRes = ZlanAPICaller.ExecuteShop("Member.SelectProduct", $"{{ 'ProductList':[{{ 'Increment': 0, 'Counter': 1, 'ProductSkuCode':'{param.ProductSkuNo}', 'Remark': ''}}], 'MemberAccount': '{acc}' }}"); if (SelectProductRes["ErrorCode"].Value <string>() == "0000") { //确认结算产品 var ConfirmSelectProductRes = ZlanAPICaller.ExecuteShop("Member.ConfirmSelectProduct", $"{{ 'MemberAccount': '{acc}','SkuCodeList':['{param.ProductSkuNo}'] }}"); //生成订单 if (ConfirmSelectProductRes["ErrorCode"].Value <string>() == "0000") { var CouponTicket = new Dictionary <string, IList <string> >(); CouponTicket["Coupon"] = new List <string>(); CouponTicket["RedPackage"] = new List <string>(); var orderParam = new { MemberAccount = acc, param.AddressId, PaymentId = 3, Kind = "shop", CouponTicket, UseSpecialDiscount = 0, VCartDiscount = 0, Score = 0, ActId = param.Id }; LogUtil.Log("Pin.CreateShopOrder_CreateOrderRes", param.ProductSkuNo, JsonConvert.SerializeObject(orderParam)); var CreateOrderRes = ZlanAPICaller.ExecuteShop("Member.CreateOrder", orderParam); if (CreateOrderRes["ErrorCode"].Value <string>() == "0000") { result.Data = CreateOrderRes["Result"]["PaymentNo"].Value <string>();// context.Database.ExecuteSqlCommand($"update pin_order set order_no={CreateOrderRes["Result"]["PaymentNo"].Value<string>()},status=1 where recid={param.Id}"); //book.Status = 1; //book.ShopOrderNo = CreateOrderRes["Result"]["PaymentNo"].Value<string>(); //book.CouponTicket = res.Data; //context.SaveChanges(); } else { result.ErrorCode = -1; result.ErrorMessage = CreateOrderRes["ErrorMsg"].Value <string>(); LogUtil.Log("Pin.CreateShopOrder_CreateOrderRes", param.ProductSkuNo, result.ErrorMessage); } } else { result.ErrorCode = -1; result.ErrorMessage = ConfirmSelectProductRes["ErrorMsg"].Value <string>(); LogUtil.Log("Pin.CreateShopOrder_ConfirmSelectProductRes", param.ProductSkuNo, result.ErrorMessage); } } else { result.ErrorCode = -1; result.ErrorMessage = SelectProductRes["ErrorMsg"].Value <string>(); LogUtil.Log("Pin.CreateShopOrder_SelectProductRes", param.ProductSkuNo, result.ErrorMessage); } } else { result.ErrorCode = -1; result.ErrorMessage = RemoveProductRes["ErrorMsg"].Value <string>(); LogUtil.Log("CreateShopOrder_RemoveProductRes", param.ProductSkuNo, result.ErrorMessage); } } } return(result); }
protected override CommandResult <int> OnExecute(object commandParameter) { // var param = commandParameter as CreateShopOrderParameter; var result = new CommandResult <int>(); using (CoreContext context = new CoreContext()) { //if (DateTime.Now == DateTime.Parse("2018-10-31 23:30:00")) { var bookList = context.BookInfo.FromSql(@"select b.* from book_info b left join pay_order p on p.order_no=b.order_no where p.`STATUS`=1 and b.`STATUS` !=1 ").ToList(); foreach (var book in bookList) { var acc = context.MemberInfo.Where(m => m.AccountId == book.MemberAccount).Select(m => m.ZlOpenId).FirstOrDefault(); var couponticket = book.CouponTicket; if (string.IsNullOrEmpty(couponticket)) { int?couponId = context.BookInfo.Where(b => b.OrderNo == book.OrderNo && b.MemberAccount == book.MemberAccount).Select(b => b.CouponId).FirstOrDefault(); var url = ConfigurationUtil.GetSection("CouponUrl").Value as string; //领取抵扣优惠券 var res = ZlanAPICaller.Call <CommandResult <string> >(url, new { MemberAccount = acc, RuleId = couponId }); if (res.ErrorCode == 0) { context.Database.ExecuteSqlCommand($"update book_info set coupon_ticket={res.Data} where order_no={book.OrderNo}"); couponticket = res.Data; } else { result.ErrorCode = res.ErrorCode; result.ErrorMessage = res.ErrorMessage; LogUtil.Log("CreateShopOrder_TakeCoupon", book.OrderNo, res.ErrorMessage); } } { //移除购物车 var RemoveProductRes = ZlanAPICaller.ExecuteShop("Member.RemoveProduct", $"{{ 'MemberAccount': '{acc}','SkuCodeList':['{book.ProductSkuNo}'] }}"); if (RemoveProductRes["ErrorCode"].Value <string>() == "0000") { //加入购物车 var SelectProductRes = ZlanAPICaller.ExecuteShop("Member.SelectProduct", $"{{ 'ProductList':[{{ 'Increment': 0, 'Counter': 1, 'ProductSkuCode':'{book.ProductSkuNo}', 'Remark': ''}}], 'MemberAccount': '{acc}' }}"); if (SelectProductRes["ErrorCode"].Value <string>() == "0000") { //确认结算产品 var ConfirmSelectProductRes = ZlanAPICaller.ExecuteShop("Member.ConfirmSelectProduct", $"{{ 'MemberAccount': '{acc}','SkuCodeList':['{book.ProductSkuNo}'] }}"); //生成订单 if (ConfirmSelectProductRes["ErrorCode"].Value <string>() == "0000") { var CouponTicket = new Dictionary <string, IList <string> >(); CouponTicket["Coupon"] = new List <string>() { couponticket }; CouponTicket["RedPackage"] = new List <string>(); var orderParam = new { MemberAccount = acc, book.AddressId, PaymentId = 3, Kind = "shop", CouponTicket, UseSpecialDiscount = 0, VCartDiscount = 0, Score = 0 }; LogUtil.Log("CreateShopOrder_CreateOrderRes", book.OrderNo, JsonConvert.SerializeObject(orderParam)); var CreateOrderRes = ZlanAPICaller.ExecuteShop("Member.CreateOrder", orderParam); if (CreateOrderRes["ErrorCode"].Value <string>() == "0000") { result.Data += context.Database.ExecuteSqlCommand($"update book_info set Status=1,Shop_Order_No={CreateOrderRes["Result"]["PaymentNo"].Value<string>()} where order_no={book.OrderNo}"); //book.Status = 1; //book.ShopOrderNo = CreateOrderRes["Result"]["PaymentNo"].Value<string>(); //book.CouponTicket = res.Data; //context.SaveChanges(); } else { result.ErrorCode = -1; result.ErrorMessage = CreateOrderRes["ErrorMsg"].Value <string>(); LogUtil.Log("CreateShopOrder_CreateOrderRes", book.OrderNo, result.ErrorMessage); } } else { result.ErrorCode = -1; result.ErrorMessage = ConfirmSelectProductRes["ErrorMsg"].Value <string>(); LogUtil.Log("CreateShopOrder_ConfirmSelectProductRes", book.OrderNo, result.ErrorMessage); } } else { result.ErrorCode = -1; result.ErrorMessage = SelectProductRes["ErrorMsg"].Value <string>(); LogUtil.Log("CreateShopOrder_SelectProductRes", book.OrderNo, result.ErrorMessage); } } else { result.ErrorCode = -1; result.ErrorMessage = RemoveProductRes["ErrorMsg"].Value <string>(); LogUtil.Log("CreateShopOrder_RemoveProductRes", book.OrderNo, result.ErrorMessage); } } } } } return(result); }