private void DoChargeWork(object count) { int rowCount = (int)count; while (appStarted) { var orders = OrderManage.GetOrders(rowCount); if (orders != null) { foreach (var order in orders) { if (order == null || HaveDebt(order.MobileNum)) { AddLog(string.Format("订单异常或者当前欠费,订单号:{0}", order?.OrderId.ToString() ?? string.Empty)); } else { CommitChargeInfo(order); } } break; } } AddLog("停止执行..."); }
protected OrderAppService( IRepository <Orders.Order, long> repository, OrderManage orderManage ) : base(repository) { _orderManage = orderManage; }
private void bkgWorkForExportingRecords_DoWork(object sender, DoWorkEventArgs e) { var bkgWorker = sender as BackgroundWorker; var counter = 0; var lstOrderNo = new OrderManage().GetAllOrderNoAndPurchaser(); foreach (var orderInfo in lstOrderNo) { var objItems = new ItemManage().GetItemListByOrderNo(orderInfo.Key); var objUserInfo = new UserInfoManage().GetUserByOrderNo(orderInfo.Key); var orderContent = ExportFile.GenerateOrderContent(objItems, objUserInfo, true); var path = string.Format((string)e.Argument + @"\{0}{1}.txt", orderInfo.Key, orderInfo.Value); ExportFile.CreateOrderFile(path, orderContent); try { bkgWorker.ReportProgress(counter++); } catch (NullReferenceException exception) { Console.WriteLine(exception); throw; } } MessageBox.Show("Exporting all .txt files sucessfully!"); }
public void GetInfoTest() { OrderManage ordObj = new OrderManage(); ordObj.GetInfo("riya", "404 global mansion", 1234567890); Assert.IsNotNull(ordObj); }
public IActionResult CancelOrder(int orderId, string name) { using (_context) { //Deletes the order if the orderId and name match the order. OrderManage order = new OrderManage(orderId, name); order.CancelOrder(_context); //Show order canceled message return(View("CancelOrderComplete")); } }
public IActionResult DeleteOrder(int id, string name) { using (_context) { //Deletes the order if the orderId and name match the order. OrderManage order = new OrderManage(id, name); if (order.CancelOrder(_context)) { return(Ok()); } } return(BadRequest()); }
public ActionResult SelectProduct(OrderModel.Product model) { try { _sessionId = Session[Const.Session.SESSION_ID].ToString(); _aspId = Session[Const.Session.ASP_ID].ToString(); if (model.ProductId != -1) { var orderProduct = (from mst_Price in _db.MST_Price join mst_Product in _db.MST_Product on mst_Price.ProductId equals mst_Product.ProductId where mst_Price.ASP_ID == _aspId && mst_Price.ProductId == model.ProductId select new OrderModel.Product { ProductId = mst_Price.ProductId, ProductName = mst_Product.ProductName, Price = (decimal)mst_Price.Price }).Single(); OrderManage order = new OrderManage() { SessionId = _sessionId, ProductId = orderProduct.ProductId, Price = orderProduct.Price }; _db.OrderManage.Add(order); _db.SaveChanges(); return(Redirect(Const.Redirect.ORDER_END)); } else { var orderProduct = from mst_Price in _db.MST_Price join mst_Product in _db.MST_Product on mst_Price.ProductId equals mst_Product.ProductId where mst_Price.ASP_ID == _aspId orderby mst_Product.ProductId select new OrderModel.Product { ProductId = mst_Price.ProductId, ProductName = mst_Product.ProductName }; List <OrderModel.Product> orderProductList = orderProduct.ToList(); ViewData[Const.ViewData.PRODUCT_DROPDOWN_LIST] = OrderUtil.MakeProductDropdownList(orderProductList); return(View(model)); } } catch (Exception ex) { throw; } }
//[OutputCache(CacheProfile = "StaticOrder")] //If user's orders were enough frequently, cache will be a bottleneck of platform due to faster refresh cache. Hence we don't cache order. public JsonResult OrderSeller(int?page, int?limit, string sortBy, string direction, string searchString = null) { int total = 0; var records = new object(); try { records = OrderManage.OrderSeller(page, limit, sortBy, direction, searchString, out total); } catch (Exception e) { records = "error:" + e.Message; } return(Json(new { records, total }, JsonRequestBehavior.AllowGet)); }
public static OrderInfo Update(OrderInfo model) { if (model.Id == 0) { //Add int id = OrderManage.Add(model); model.Id = id; } else { //Update OrderManage.Update(model); } return(model); }
public IActionResult SaveEditOrder() { using (_context) { //Gets the order details from the cookie. OrderManage order = new OrderManage(Request.Cookies["EditOrder"]); //Then saves the changes made to the order. order.SaveEdit(new Basket(Request.Cookies["Basket"]), _context); //Then clears the cookies used for editing an order. CookieManager.RemoveCookie("Basket", Response); CookieManager.RemoveCookie("EditOrder", Response); return(View("EditOrderComplete")); } }
private void btnDeleteOrder_Click(object sender, EventArgs e) { // Display the selected row in datagridview //this.dgvTransaction.FirstDisplayedCell = this.dgvTransaction.Rows[Convert.ToInt32(this.orderNo)].Cells[0]; if (dgvTransaction.RowCount == 0) { return; } if (MessageBox.Show(this, zh?"删除?":"Delete?", zh?"提示":"Prompt", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { var objOrder = new OrderManage().GetOrderByOrderNo(_orderNo); objOrder.User = new UserInfoManage().GetUserByOrderNo(_orderNo); #region Delete the .txt File var defaultPath = ExportFile.GetDefaultPath("dircPath"); if (defaultPath != "") { var filename = string.Format(@"{0}\{1}{2}.txt", defaultPath, objOrder.OrderNo, objOrder.Purchaser); if (File.Exists(filename)) { File.Delete(filename); } } #endregion new TransactionManage().DeleteTransactionRecord(_orderNo); new ItemManage().DeleteItemListByOrderNo(_orderNo); new OrderManage().DeleteOrder(objOrder); var result = new UserInfoManage().DeleteUser(objOrder.User); if (result > 0) { MessageBox.Show(zh?"删除数据成功":"Delete data sucessfully!"); } DisplayMainFrm(true); } }
public IActionResult EditOrder(int orderId, string name) { using (_context) { OrderManage order = new OrderManage(orderId, name); //Ensure order exists order.GetOrder(_context); if (order.order != null) { //Sets up the basket with the list of items in the order. Basket basket = new Basket(); basket.SetToOrder(_context, order.OrderId); CookieManager.SetCookie("Basket", basket.GetSerialised(), Response); //Set EditOrder Cookie: Holding the order id and name used to later save any changes. CookieManager.SetCookie("EditOrder", order.GetSerialised(), Response); } return(RedirectToAction("Index")); } }
public IActionResult ViewOrder(OrderManage orderDetail) { using (_context) { if (ModelState.IsValid) { //Checking the order exists and information is correct. orderDetail.GetOrder(_context); if (orderDetail.order != null) { //Gets all the details on the order to display. ViewData["OrderDetails"] = orderDetail.GetItemDetails(_context); ViewData["OrderName"] = orderDetail.order.Name; ViewData["OrderNumber"] = orderDetail.order.Id; ViewData["OrderDate"] = orderDetail.order.dateTime; return(View("ViewOrderList")); } //Add modelstate error here. ModelState.AddModelError(string.Empty, "Details do not match any order."); } return(View()); } }
private void ShowOrderDetail(string orderNo) { _objOrder = new OrderManage().GetOrderByOrderNo(orderNo); tbOrderNo.Text = _objOrder.OrderNo.ToString(); tbPurchaser.Text = _objOrder.Purchaser; tbPurchaser.Enabled = false; tbFrom.Text = @"Oscar"; tbFrom.Enabled = false; tbFromPhone.Text = @"0211376664"; tbFromPhone.Enabled = false; tbTo.Text = _objOrder.User.UserName; tbToPhone.Text = _objOrder.User.PhoneNumber; tbCardNo.Text = _objOrder.User.CardNo; tbAddress.Text = _objOrder.User.Address; var objTransaction = new TransactionManage().GetTransactionRecordByOrderNo(orderNo); tbPurchasePrice.Text = objTransaction.PurchasePrice.ToString(); tbSellingPrice.Text = objTransaction.SellingPrice.ToString(); tbProfit.Text = objTransaction.Profit.ToString(); _objItems = new ItemManage().GetItemListByOrderNo(orderNo); dgvItemList.DataSource = _objItems; dgvItemList.Show(); tbTotalPrice.Text = CalculateTotalPrice(_objItems).ToString(); //if (_status.Equals("Edit")) //{ // string itemNo = dgvItemList.Rows[0].Cells["ItemNo"].Value.ToString(); //get the information in the first row // Item objItem = new ItemManage().GetItemByItemNo(itemNo); // tbProductName.Text = objItem.ItemDescription; // tbQuantity.Text = objItem.Quantity.ToString(); // tbPrice.Text = objItem.UnitPrice.ToString(); //} }
public void Comm() { if (Arthur.App.Current.Option.RemainingMinutes <= 0) { return; } //发送给PLC上位机在线心跳 this.Commor.Write("D441", (ushort)1); var ret = this.Commor.Read("D400", (ushort)60); if (ret.IsSucceed) { this.RealtimeStatus = "通信中..."; var recv = (ushort[])ret.Data; this.chargeModelIsAuto = recv[44] == 1; this.dischargeModelIsAuto = recv[45] == 1; this.jawModelIsAuto = recv[46] == 1; Current.Option.JawMoveInfo.Col = Convert.ToInt32(recv[50]); Current.Option.JawMoveInfo.Row = Convert.ToInt32(recv[51]); Current.Option.JawMoveInfo.Floor = Convert.ToInt32(recv[52]); Current.Option.IsTaskFinished = recv[36] == (ushort)1; this.IsAlive = true; } else { this.RealtimeStatus = ret.Msg; this.IsAlive = false; } var ret2 = this.Commor.Read("W400", (ushort)10); if (ret2.IsSucceed) { this.RealtimeStatus = "通信中..."; var recv = (ushort[])ret2.Data; var bitStr1 = Convert.ToString(recv[0], 2).PadLeft(16, '0'); Current.Option.IsBatteryScanReady = bitStr1[13] == '1'; Current.Option.IsBindTrayScanReady = bitStr1[12] == '1'; Current.Option.IsUnbindTrayScanReady = bitStr1[11] == '1'; var bitStr2 = Convert.ToString(recv[5], 2).PadLeft(16, '0'); if (this.chargeModelIsAuto) { Current.Option.IsHasTray11 = bitStr2[15] == '1'; Current.Option.IsHasTray12 = bitStr2[14] == '1'; Current.Option.IsHasTray13 = bitStr2[13] == '1'; } if (dischargeModelIsAuto) { Current.Option.IsHasTray21 = bitStr2[12] == '1'; Current.Option.IsHasTray22 = bitStr2[11] == '1'; Current.Option.IsHasTray23 = bitStr2[10] == '1'; } if (this.jawModelIsAuto) { Current.Option.IsJawHasTray = bitStr2[9] == '1'; } Current.Option.IsTaskReady = bitStr2[8] == '1'; this.IsAlive = true; } else { this.RealtimeStatus = ret.Msg; this.IsAlive = false; } var ret3 = this.Commor.ReadInt("D439"); if (ret3.IsSucceed) { this.RealtimeStatus = "通信中..."; //0079 最左值 -5540111 最右值 805192 //0081 最左值 -985910 最右值 12040249 Current.Option.JawPos = Common.PROJ_NO == "0079" ? ((int)ret3.Data + 5542000) / 11900 : ((int)ret3.Data + 985910) / 21200; this.IsAlive = true; } else { this.RealtimeStatus = ret.Msg; this.IsAlive = false; } Current.App.IsTerminalInitFinished = true; if (IsPackEnabled) { var ret4 = this.Commor.Read("D443"); if (ret4.IsSucceed) { var recv = (ushort[])ret4.Data; var isReadyIntoPack = recv[0] == 1; if (this.IsReadyIntoPack && !isReadyIntoPack) { //电池放入拉带完成 PackManage.AfterPack(OrderManage.GetBindOrderByPackOrder(Current.Option.CurrentPackOrder)); Current.Option.CurrentPackOrder = Current.Option.CurrentPackOrder % 32 + 1; } if (this.IsReadyIntoPack) { this.Commor.Write("D443", (ushort)0); } this.IsReadyIntoPack = isReadyIntoPack; } } }
public static bool IsExistsOrderNumber(int id, string orderNumber) { return(OrderManage.IsExistsOrderNumber(id, orderNumber)); }
public static OrderInfo Get(int id) { return(OrderManage.Get(id)); }
public static IPageOfList <OrderInfo> List(OrderSearchSetting settings) { return(OrderManage.List(settings)); }
private void btnModify_Click(object sender, EventArgs e) { #region Validation controls if (tbTo.Text.Trim().Length == 0) { ShowError(zh?"请添加收件人":"Please fill the receiver", tbTo, lbError); return; } HideError(tbTo, lbError); if (tbToPhone.Text.Trim().Length == 0) { ShowError(zh?"请添加收件人电话号码":"Please fill the receiver's phone", tbToPhone, lbError); return; } HideError(tbToPhone, lbError); if (tbAddress.Text.Trim().Length == 0) { ShowError(zh?"请添加收件人地址":"Please fill the receiver's address", tbAddress, lbError); return; } HideError(tbAddress, lbError); if (tbSellingPrice.Text.Trim().Length == 0) { ShowError(zh?"请添加产品售价":"Please fill the selling price", tbSellingPrice, lbError); return; } if (Regex.IsMatch(tbSellingPrice.Text, "[^0-9]")) //区分不是字母,而是数字 { if (!Regex.IsMatch(tbSellingPrice.Text, @"^(-?\d+)(\.\d+)?$")) { //不是小数 ShowError(zh?"只允许添加数字":"Please input only number", tbSellingPrice, lbError); return; } else { HideError(tbSellingPrice, lbError); } } else { HideError(tbSellingPrice, lbError); } if (tbPurchasePrice.Text.Trim().Length == 0) { ShowError(zh?"请添加进价":"Please fill the purchasing price", tbPurchasePrice, lbError); return; } if (Regex.IsMatch(tbPurchasePrice.Text, "[^0-9]")) //区分不是字母,而是数字 { if (!Regex.IsMatch(tbPurchasePrice.Text, @"^(-?\d+)(\.\d+)?$")) { //不是小数 ShowError(zh ? "只允许添加数字" : "Please input only number", tbPurchasePrice, lbError); return; } else { HideError(tbSellingPrice, lbError); } } else { HideError(tbPurchasePrice, lbError); } #endregion #region Database operation _objOrder = new OrderManage().GetOrderByOrderNo(tbOrderNo.Text.Trim()); _objOrder.Purchaser = tbPurchaser.Text.Trim(); _objOrder.User = new UserInfoManage().GetUserByOrderNo(tbOrderNo.Text.Trim()); _objOrder.User.UserName = tbTo.Text.Trim(); _objOrder.User.PhoneNumber = tbToPhone.Text.Trim(); _objOrder.User.Address = tbAddress.Text.Trim(); var objTransaction = new TransactionManage().GetTransactionRecordByOrderNo(tbOrderNo.Text.Trim()); objTransaction.SellingPrice = Convert.ToDouble(tbSellingPrice.Text.Trim()); objTransaction.PurchasePrice = Convert.ToDouble(tbPurchasePrice.Text.Trim()); objTransaction.Profit = objTransaction.SellingPrice - objTransaction.PurchasePrice; new TransactionManage().UpdateTransactionRecord(objTransaction); new UserInfoManage().UpdatetUser(_objOrder.User); foreach (var objItem in _objItems) { if (objItem.ItemNo == 0) { objItem.OrderNo = _objOrder.OrderNo; new ItemManage().InsertItem(objItem); } else { new ItemManage().UpdateItem(objItem); } } var result = new OrderManage().UpdateOrder(_objOrder); if (result > 0) { MessageBox.Show(zh?"成功修改订单":"Modifying Order Sucessfully!"); EvtSendMsg("open"); Close(); } #endregion }
/// <summary> /// Process Order /// </summary> /// <param name="id"></param> /// <returns></returns> public HttpResponseMessage Post(OrderDTO order) { OrderManage.UpdateOrder(order); return(Request.CreateResponse(HttpStatusCode.OK, new { success = true, message = "Has updated." })); }
public static void GetShareDataExec(object obj) { if (!IsRunning) { return; } if (Arthur.App.Current.Option.RemainingMinutes <= 0) { return; } if (!Current.Option.IsGetShareDataExecting) { Current.Option.IsGetShareDataExecting = true; if (Current.ShareDatas.Count > 0) { if (Current.Option.Tray12_Id > 0) { var chargeData = Current.ShareDatas.First(o => o.Key == "chargeCodes"); var bindCode = JsonHelper.DeserializeJsonToObject <BindCode>(chargeData.Value); var procTray = GetObject.GetById <ProcTray>(Current.Option.Tray12_Id); if (procTray.Id > 0 && chargeData.Status == 2) { if (procTray.Id == chargeData.ProcTrayId) { } else { //充电位条码绑定信息传给BTS客户端 var batteries = procTray.GetBatteries(); var codes = new List <string>(); for (var i = 1; i <= Common.TRAY_BATTERY_COUNT; i++) { var code = ""; var battery = batteries.FirstOrDefault(o => o.GetChargeOrder() == i); if (battery != null) { code = battery.Code; } codes.Add(code); } var value = new BindCode { TrayCode = procTray.Code, BatteryCodes = string.Join(",", codes.ToArray()) }; chargeData.Value = JsonHelper.SerializeObject(value); chargeData.Status = 1; chargeData.ProcTrayId = procTray.Id; chargeData.UpdateTime = DateTime.Now; LogHelper.WriteInfo(string.Format("--------成功发送充电位条码绑定信息给BTS【流程托盘ID:{0},条码:{1}】---------", procTray.Id, procTray.Code)); } } } if (Current.Option.Tray22_Id > 0) { var dischargeData = Current.ShareDatas.First(o => o.Key == "dischargeCodes"); var bindCode = JsonHelper.DeserializeJsonToObject <BindCode>(dischargeData.Value); var procTray = GetObject.GetById <ProcTray>(Current.Option.Tray22_Id); if (procTray.Id > 0 && dischargeData.Status == 2) { if (procTray.Id == dischargeData.ProcTrayId) { } else { //放电位条码绑定信息传给BTS客户端 var batteries = procTray.GetBatteries(); var codes = new List <string>(); for (var i = 1; i <= Common.TRAY_BATTERY_COUNT; i++) { var code = ""; var battery = batteries.FirstOrDefault(o => o.GetChargeOrder() == i); if (battery != null) { code = battery.Code; } codes.Add(code); } var value = new BindCode { TrayCode = procTray.Code, BatteryCodes = string.Join(",", codes.ToArray()) }; dischargeData.Value = JsonHelper.SerializeObject(value); dischargeData.Status = 1; dischargeData.ProcTrayId = procTray.Id; dischargeData.UpdateTime = DateTime.Now; LogHelper.WriteInfo(string.Format("--------成功发送放电位条码绑定信息给BTS【流程托盘ID:{0},条码:{1}】---------", procTray.Id, procTray.Code)); } } } if (Current.Option.Tray23_Id > 0) { var procTray = GetObject.GetById <ProcTray>(Current.Option.Tray23_Id); var sortingResults = Current.ShareDatas.First(o => o.Key == "sortingResults"); var capResults = Current.ShareDatas.First(o => o.Key == "capResults"); var esrResults = Current.ShareDatas.First(o => o.Key == "esrResults"); if (sortingResults.Status == 1 && capResults.Status == 1 && esrResults.Status == 1) { var sortingResult_sort = JsonHelper.DeserializeJsonToObject <SortingResult>(sortingResults.Value); var sortingResult_cap = JsonHelper.DeserializeJsonToObject <SortingResult>(capResults.Value); var sortingResult_esr = JsonHelper.DeserializeJsonToObject <SortingResult>(esrResults.Value); if (sortingResult_sort.TrayCode == procTray.Code) { try { var sortList = sortingResult_sort.Results.Split(','); var capList = sortingResult_cap.Results.Split(','); var esrList = sortingResult_esr.Results.Split(','); for (int i = 0; i < sortList.Length; i++) { //i:绑盘序号 Current.MainMachine.Commor.Write(string.Format("D{0:D3}", 401 + i), ushort.Parse(sortList[OrderManage.GetChargeOrderBySortOrder(i + 1) - 1])); } LogHelper.WriteInfo(string.Format("--------成功发送分选结果数据给PLC【流程托盘ID:{0},条码:{1}】---------", procTray.Id, procTray.Code)); var batteries = procTray.GetBatteries(); var batteryViewModels = ContextToViewModel.Convert(batteries); for (int i = 0; i < sortList.Length; i++) { //i:通道序号 var sort = int.Parse(sortList[i]); var cap = decimal.Parse(capList[i]); var esr = decimal.Parse(esrList[i]); if (sort > 0) { var battery = batteryViewModels.FirstOrDefault(o => o.Pos == OrderManage.GetBindOrderByChargeOrder(i + 1)); if (battery != null) { battery.SortResult = (SortResult)sort; battery.CAP = cap; battery.ESR = esr; } } } sortingResults.Status = 2; sortingResults.ProcTrayId = procTray.Id; sortingResults.UpdateTime = DateTime.Now; capResults.Status = 2; capResults.ProcTrayId = procTray.Id; capResults.UpdateTime = DateTime.Now; esrResults.Status = 2; esrResults.ProcTrayId = procTray.Id; esrResults.UpdateTime = DateTime.Now; } catch (Exception ex) { Running.StopRunAndShowMsg(ex); } } } } } Current.Option.IsGetShareDataExecting = false; } }
object IValueConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture) { var pos = (int)value; return(string.Format("{0} ( {1} )", pos, OrderManage.GetChargeOrderByBindOrder(pos))); }
/// <summary> /// 获取通道序号 /// </summary> /// <param name="battery"></param> /// <returns></returns> public static int GetChargeOrder(this Battery battery) { return(OrderManage.GetChargeOrderByBindOrder(battery.Pos)); }
public async Task <ActionResult> PayNotifyJob([FromBody] YaeherConsultationAdd yaeherConsultationAdd) { if (!Commons.CheckSecret(yaeherConsultationAdd.Secret)) { this.ObjectResultModule.StatusCode = 422; this.ObjectResultModule.Message = "Wrong Secret"; this.ObjectResultModule.Object = ""; Logger.Info("secret 错误!"); return(Content("", "text/xml")); } string xml = ""; TencentWXPay OrdertencentWXPay = new TencentWXPay(); TencentWXPay RefundtencentWXPay = new TencentWXPay(); string message = ""; string WXPayBillno = ""; string WXTransactionId = ""; string WXOrderQuery = ""; WXPayBillno = yaeherConsultationAdd.sp_billno; var secret = await CreateSecret(); //患者端咨询单 var consul = await _consultationService.YaeherConsultationByNumber(yaeherConsultationAdd.ConsultNumber); //if (consul.ConsultState != "unpaid"&&consul.ConsultState != "created") { return Content(xml, "text/xml"); } //新增处理中条件判断 if (consul.ConsultState != "unpaid" && consul.ConsultState != "processing") { return(Content(xml, "text/xml")); } //配置文件查询 var Content1 = "{\"SystemType\":\"TencentWechar\",\"secret\":\"" + secret + "\"}"; var tencentmparam = await this.PostResponseAsync(Commons.AdminIp + "api/SystemConfigsList/", Content1); var tencentmparamlist = JsonHelper.FromJson <APIResult <ResultModule <List <SystemConfigs> > > >(tencentmparam); if (tencentmparamlist == null || tencentmparamlist.result.item == null) { return(Content("", "text/xml")); } var tencentparam = tencentmparamlist.result.item.FirstOrDefault(); //医生端医生信息查询 Content1 = "{\"Id\":" + consul.DoctorID + ",\"secret\":\"" + secret + "\"}"; var doctoruser = await this.PostResponseAsync(Commons.AdminIp + "api/DoctorInformation", Content1); var doctorUserResult = JsonHelper.FromJson <APIResult <ResultModule <YaeherDoctorInfo> > >(doctoruser); if (doctorUserResult == null || doctorUserResult.result.item == null) { return(Content("", "text/xml")); } var ServiceResult = doctorUserResult.result.item.ServiceMoneyLists.Find(t => t.Id == consul.ServiceMoneyListId); var queryresult = await OrdertencentWXPay.OrderQueryAsync(WXPayBillno, tencentparam); if (ServiceResult == null || ServiceResult.Id < 1 || ServiceResult.ServiceState == false) { message = "医生该服务已下线,资金会原路返回您的账户,请稍后!"; } if (queryresult.trade_state != "SUCCESS") { return(Content(queryresult.trade_state, "text/xml")); } #region 重复支付处理 //if (consul.ConsultState == "created") //{ // var ordertradeold = await _orderTradeRecordService.OrderTradeRecordByConsultNumber(consul.ConsultNumber); // if (ordertradeold != null && ordertradeold.WXPayBillno != WXPayBillno) // { // message = "您的支付已经收到,请不要重复支付,程序正在处理,请稍后!"; // } //} #endregion var YaeherUserPaymentResult = doctorUserResult.result.item.YaeherUserPayment.Find(t => t.IsDefault); if (YaeherUserPaymentResult == null) { YaeherUserPaymentResult = doctorUserResult.result.item.YaeherUserPayment.Find(t => t.PayMethod == "wxpay"); } if (string.IsNullOrEmpty(message)) { //患者端满单查询 OrderTradeRecordIn refundManageIn = new OrderTradeRecordIn(); var StartTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")); refundManageIn.DoctorId = consul.DoctorID; refundManageIn.ServiceID = consul.ServiceMoneyListId; refundManageIn.AndAlso(t => t.IsDelete == false); refundManageIn.AndAlso(t => t.PayMoney > 0); refundManageIn.AndAlso(t => t.CreatedOn >= StartTime); refundManageIn.AndAlso(t => t.CreatedOn < StartTime.AddDays(1)); var ordertradelist = await _orderTradeRecordService.PatientOrderTradeRecordList(refundManageIn); var allconsultation = ordertradelist.Count(); if (ServiceResult.ServiceFrequency <= allconsultation) { message = "医生该服务已满单,资金会原路返回您的账户,请稍后!"; } if (!string.IsNullOrEmpty(yaeherConsultationAdd.sp_billno)) { if (queryresult.result_code != "SUCCESS") { return(Content("查询支付信息失败,请重新提交!", "text/xml")); } if (int.Parse(queryresult.total_fee) != (int)(ServiceResult.ServiceExpense * 100)) { message = "医生该服务已修改价格,资金会原路返回您的账户,请稍后!"; } } } if (!string.IsNullOrEmpty(message)) { string outTradeNo = WXPayBillno; string outRefundNo = consul.ConsultNumber + "-" + DateTime.Now.ToString("yyyMMddhhmmss"); var totalFee = int.Parse(queryresult.total_fee);//单位:分 int refundFee = totalFee; var refundpayresult = await RefundtencentWXPay.RefundAsync(outTradeNo, outRefundNo, totalFee, refundFee, tencentparam, message); consul.ConsultState = "unpaid"; await _consultationService.UpdateYaeherConsultation(consul); if (refundpayresult.code != "SUCCESS") { Logger.Info("outTradeNo:" + outTradeNo + "outRefundNo:" + outRefundNo + "totalFee:" + totalFee + "refundFee:" + refundFee + "message:" + message + "+refundpayresult:" + JsonHelper.ToJson(refundpayresult)); HangfireScheduleJob job = new HangfireScheduleJob(); RefundModel refundModel = new RefundModel(); refundModel.Secret = await CreateSecret(); refundModel.outTradeNo = outTradeNo; refundModel.outRefundNo = outRefundNo; refundModel.totalFee = totalFee; refundModel.refundFee = refundFee; refundModel.msg = message; JobModel model = new JobModel(); model.CallbackUrl = Commons.AdminIp + "api/RefundAsync"; model.CallbackContent = JsonHelper.ToJson(refundModel); job.Enqueue(model); return(Content("退款支付失败,请联系管理员!", "text/xml")); //return new ObjectResultModule("", 400, "退款支付失败,请联系管理员"); } return(Content(message, "text/xml")); } WXTransactionId = queryresult.transaction_id; WXOrderQuery = JsonHelper.ToJson(queryresult); Content1 = "{\"SystemCode\":\"SystemOverTime\",\"secret\":\"" + secret + "\"}"; var replymparam = await this.PostResponseAsync(Commons.AdminIp + "api/YaeherMobileParameterList/", Content1); var replylistparam = JsonHelper.FromJson <APIResult <ResultModule <List <SystemParameter> > > >(replymparam); if (replylistparam == null || replylistparam.result.item == null) { return(Content("", "text/xml")); } Consultation consultation = new Consultation(); Publishs Consultationpublishs = new Publishs(); using (var unitOfWork = _unitOfWorkManager.Begin()) { consul.ConsultState = "created"; consul.Overtime = DateTime.Now.AddDays(double.Parse(replylistparam.result.item[0].ItemValue)); var result = await _consultationService.UpdateYaeherConsultation(consul); var OrderManage = new OrderManage(); OrderManage.SequenceNo = DateTime.Now.ToString("yyyyMMddHHmmss") + new RandomCode().GenerateCheckCodeNum(6); OrderManage.OrderNumber = "ON-" + DateTime.Now.ToString("yyyyMMddhhmm") + new RandomCode().RamdomRecode(4); OrderManage.ConsultNumber = result.ConsultNumber; OrderManage.ConsultID = result.Id; OrderManage.ConsultType = ServiceResult.ServiceType; OrderManage.ConsultantID = consul.CreatedBy; OrderManage.ConsultantName = result.ConsultantName; OrderManage.PatientID = result.PatientID; OrderManage.PatientName = result.PatientName; OrderManage.DoctorID = consul.DoctorID; OrderManage.DoctorName = doctorUserResult.result.item.DoctorInfo.DoctorName; OrderManage.OrderCurrency = "rmb"; OrderManage.OrderMoney = Convert.ToDecimal(ServiceResult.ServiceExpense); OrderManage.ReceivablesType = YaeherUserPaymentResult.PayMethod; //医生收款类型 OrderManage.ReceivablesNumber = YaeherUserPaymentResult.PaymentAccout; //医生收款账号 OrderManage.ServiceID = ServiceResult.Id; //产品ID OrderManage.ServiceName = ServiceResult.DoctorName + ServiceResult.ServiceType; //产品名称 OrderManage.SellerMoneyID = doctorUserResult.result.item.WxPayBusinessId.ItemValue; //微信支付分配的商户号 OrderManage.TradeType = ServiceResult.ServiceType; //交易类型 OrderManage.CreatedBy = consul.CreatedBy; OrderManage.CreatedOn = DateTime.Now; var result1 = await _orderManageService.CreateOrderManage(OrderManage); var record = new OrderTradeRecord() { SequenceNo = DateTime.Now.ToString("yyyyMMddHHmmss") + new RandomCode().GenerateCheckCodeNum(6), OrderID = result1.Id, OrderNumber = result1.OrderNumber, PayType = "wxpay", OrderCurrency = "rmb", TenpayNumber = "", //支付账号 VoucherNumber = "", //代金券编号 VoucherJSON = "", //代金券Json PayMoney = Convert.ToDecimal(ServiceResult.ServiceExpense), PaymentState = "paid", PaymentSourceCode = "order", PaymentSource = "订单", WXPayBillno = WXPayBillno, WXTransactionId = WXTransactionId, WXOrderQuery = WXOrderQuery, CreatedBy = consul.CreatedBy, CreatedOn = DateTime.Now }; var result2 = await _orderTradeRecordService.CreateOrderTradeRecord(record); #region 发布咨询 消息接受者为医生 DoctorNotice AddConsultation // 发布咨询 consultation.yaeherConsultation = result; // 咨询主表 consultation.orderManage = result1; // 订单管理表 consultation.orderTradeRecords = result2; // 交易记录表 Consultationpublishs.TemplateCode = "DoctorNotice"; Consultationpublishs.OperationType = "AddConsultation"; // 新增咨询 Consultationpublishs.MessageRemark = result.IIInessDescription; // 发起咨询 Consultationpublishs.Publisher = "Patient"; Consultationpublishs.PublishUrl = "Patient"; Consultationpublishs.EventName = "发布 新增咨询"; Consultationpublishs.EventCode = "Consultation"; Consultationpublishs.BusinessID = result.Id.ToString(); Consultationpublishs.BusinessCode = result.ConsultNumber; Consultationpublishs.BusinessJSON = JsonHelper.ToJson(consultation); Consultationpublishs.PublishedTime = result.CreatedOn; Consultationpublishs.PublishStatus = true; Consultationpublishs.CreatedBy = consul.CreatedBy; Consultationpublishs.CreatedOn = DateTime.Now; Consultationpublishs.Secret = secret; Consultationpublishs.ServerClient = "Client"; try { var ConsultationResult = await _publishsService.CreatePublishs(Consultationpublishs); } catch (Exception ex) { YaeherOperList yaeherOperList = new YaeherOperList(); yaeherOperList.CreatedOn = DateTime.Now; yaeherOperList.OperExplain = "Message:" + ex.Message.ToString(); yaeherOperList.OperContent = "StackTrace:" + ex.StackTrace.ToString(); yaeherOperList.OperType = "支付回调"; await _YaeherOperListrepository.PatientYaeherOperList(yaeherOperList); throw ex; } #endregion unitOfWork.Complete(); } var ConsultationParma = await this.PostResponseAsync(Commons.DoctorIp + "api/ConsultationManage/", JsonHelper.ToJson(Consultationpublishs)); // var ConsultationJson = JsonHelper.FromJson<APIResult<ResultModule<Publishs>>>(ConsultationParma); return(Content("success", "text/xml")); }