public void startService() { while (run) { try { bool isPub = false; using (TCom.EF.TN db = new TCom.EF.TN()) { look: try { isPub = false; var mus = (from muo in db.ManageUsers join uo in db.Users on muo.idweixin equals uo.idweixin where (muo.idweixin != null && muo.idweixin.Trim() != string.Empty && muo.inuse == true && uo.inuse == true && (muo.recv_order == true || muo.recv_setup == true || muo.send_setup == true)) select new { idweixin = muo.idweixin, name = uo.name }).ToList(); List <TCom.EF.Msg> ms = db.Msgs.Where(m => m.inuse == true && m.status == 0).ToList(); if (ms != null && mus != null) { for (int i = 0; i < ms.Count; i++) { TCom.EF.Msg m = ms[i]; long _orderno = long.Parse(m.orderno); TCom.EF.MyOrder mo = db.MyOrders.Where(moo => moo.orderno == _orderno).FirstOrDefault(); if (mo != null) { var uo = (from u in db.Users where (u.iduser == mo.iduser) select new { u.iduser, u.name }).FirstOrDefault(); if (uo != null) { if (m.type == MsgType.PostPayFinishOrder)//订单支付完成,等待派发通知 { isPub = true; m.status = 1; for (int j = 0; j < mus.Count; j++) { var mu = mus[j]; MsgMgr.FinishPay(mu.idweixin, mo, uo.iduser + "", uo.name, db); } } else if (m.type == MsgType.PayFinishOrder) { JObject j = Msg.Send(m.msg1); if (j != null && j.Value <int>("errcode") == 0) { m.status = 1; } } if (db.SaveChanges() > 0) { Pub.e("Msg-SaveChanges:" + 1); } else { isPub = false; Pub.e("Msg-SaveChanges:" + 0); } } } } } } catch (Exception) { throw; } if (isPub) { goto look; } } } catch (Exception e) { Pub.e("error=" + e.InnerException + "_+_+_+_+_+" + e.Message); //throw e; } _event.Reset(); Pub.e("WaitOne=" + DateTime.Now); _event.WaitOne(1000 * 60 * 10); Pub.e("WaitOne-f=" + DateTime.Now); } _event = null; }
public override void Init() { base.Init(); MsgMgr.AddListener(MsgEvent.EVENT_HP, UpdateLife); gameObject.SetActive(true); }
private void End() { MsgMgr.RemoveListener(MsgEvent.EVENT_HP, ReceiveLifeMsg); }
//派生类需要重写这个方法,进行不同的回调处理 public static int Press() { WxPayData data = OrdeQquery(); if (data != null) { string return_code = data.GetValue("return_code") + ""; if (return_code == "SUCCESS") { string orderno = data.GetValue("out_trade_no") + ""; string openid = data.GetValue("openid") + ""; if (!string.IsNullOrWhiteSpace(orderno) && !string.IsNullOrWhiteSpace(openid)) { string trade_state = data.GetValue("trade_state") + ""; long _orderno = long.Parse(orderno); DateTime paytime = DateTime.Now; try { string time_end = data.GetValue("time_end") + ""; if (string.IsNullOrWhiteSpace(time_end)) { paytime = DateTime.ParseExact(time_end, "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture); } } catch (Exception) { } using (TN db = new TN()) { TCom.EF.User u = db.Users.Where(m => m.idweixin == openid && m.inuse == true).FirstOrDefault(); if (u != null) { TCom.EF.MyOrder o = db.MyOrders.Where(m => m.orderno == _orderno && m.inuse == true).FirstOrDefault(); if (o != null) { // bool ok = false; if (o.status == OrderStatus.WaitPay && o.paystatus != PayStatus.WeiXin_SUCCESS && o.paystatus != PayStatus.WeiXin_CLOSED) { if (trade_state == PayStatus.WeiXin_SUCCESS) { o.status = OrderStatus.PayFinish; MyOrderPress s = new MyOrderPress(); s.idpress = Pub.ID().ToString(); s.orderno = orderno; s.status = OrderStatus.PayFinish; s.statust = OrderStatus.get(s.status).text; s.oper = u.name; s.inuse = true; s.cretime = paytime; db.MyOrderPresses.Add(s); MsgMgr.PostFinishPay(o.orderno + "", o.otype != null ? o.otype.Value : 0, db); } else { o.status = OrderStatus.WaitPay; } o.paystatus = trade_state; if (db.SaveChanges() > 0) { MsgMgr.Post(); return(PayNotifyResult.Pay); } } else { return(PayNotifyResult.Payed); } } } } } } } return(PayNotifyResult.Fail); //returnPayPressResult("FAIL"); }