public Respbase AuctionAddpricePay(ReqPayAuctionAddPrice req) { var result = facade.AuctionAddpricePay(req); if (!result) { return(new Respbase { Result = 0, Message = facade.PromptInfo.Message }); } return(new Respbase { Result = 1, Message = "支付成功" }); }
/// <summary> /// 竞拍加价支付 /// </summary> /// <param name="req"></param> /// <returns></returns> public bool AuctionAddpricePay(ReqPayAuctionAddPrice req) { var auctionHis = db.TpxinPaiHisSet.Where(w => req.Auctionid.Contains(w.Hisid)).ToList(); #region 验证 if (auctionHis.Count != req.Auctionid.Count) { var hisids = req.Auctionid.Except(auctionHis.Select(s => s.Hisid)).ToList(); log.Info($"AuctionAddpricePay参数错误,hisid不存在:{string.Join(",", hisids)}"); Alert("参数错误"); return(false); } if (auctionHis.Any(a => (a.Status == -1 || a.Status == 1))) { Alert("此竞拍不可加价"); return(false); } #endregion try { lock (obj) { db.BeginTransaction(); #region 释放P点 //var puser= db.TpxinUserinfoSet.FirstOrDefault(w => w.Nodeid == req.Nodeid); //var freedP = auctionHis.Sum(s => s.Totalprice); //puser.P += freedP; //db.Entry(puser).State = System.Data.Entity.EntityState.Modified; //db.TpxinAmountChangeHisSet.Add(new TpxinAmountChangeHis //{ // Amount = freedP, // Createtime = DateTime.Now, // Nodeid = req.Nodeid, // Reason = 2000, // Remarks = "A点竞拍加价退还", // Typeid = 2, // Transferid = Guid.NewGuid().ToString(), // Amountbefore = puser.P- freedP, // Amountafter = puser.P //}); //if (db.SaveChanges() <= 0) //{ // log.Info("竞拍加价支付提交失败:" + db.Message); // db.Rollback(); // Alert("提交失败"); // return false; //} #endregion //var amountP = auctionHis.Select(s => s.Num * (s.Price + req.Price)).Sum(); var sumNum = auctionHis.Sum(s => s.Num); var amountP = sumNum * req.Price; (bool result, TpxinPaiConfig config, TpxinUserinfo user) = PayCheck(req.Nodeid, req.PayPwd, sumNum, amountP); if (!result) { db.Rollback(); return(false); } var transferid = new List <int>(); foreach (var item in auctionHis) { var reqPay = new ReqPayAuction() { Num = item.Num, MinPrice = req.Price + item.Price, PayPwd = req.PayPwd, Nodeid = req.Nodeid }; (bool payResult, int id) = PayNew(reqPay, user, config); if (!payResult) { db.Rollback(); return(false); } transferid.Add(id); } var ids = string.Join(",", auctionHis.Select(s => s.Hisid).ToList()); var delteResult = db.ExecuteSqlCommand($"DELETE tpxin_pai_his WHERE hisid in ({ids})"); if (delteResult <= 0) { log.Info("竞拍加价支付删除失败,ids:" + ids); Alert("竞拍加价支付失败"); db.Rollback(); return(false); } if (db.SaveChanges() <= 0) { log.Info("竞拍加价支付提交失败:" + db.Message); db.Rollback(); Alert("提交失败"); return(false); } if (!ComputeMinPrice(config)) { return(false); } //调用接口支付p点 var vpResult = AuctionVP(req.Nodeid, amountP, "A点竞拍加价", string.Join(",", transferid)); if (vpResult.Result <= 0) { Alert(vpResult.Message, vpResult.Result); db.Rollback(); return(false); } db.Commit(); return(true); } } catch (Exception e) { db.Rollback(); log.Error("A点竞拍加价支付异常:" + e); Alert("支付失败"); return(false); } }