private bool pushMr(tbl_mrItem m) { tbl_troneItem trone; if (!m.IsMatch) { trone = BaseSPCallback.FillToneId(dBase, m); if (trone == null) { SetErrorMesage(tbl_troneItem.GetTroneErrMsg(m.trone_id)); return(false); } } trone = LightDataModel.tbl_troneItem.GetRowById(dBase, m.trone_id); var sb = new StringBuilder(250); var apiPush = new n8wan.Public.Logical.HTAPIPusher() { dBase = dBase, Trone = trone, LogFile = logFile, IsSyncPush = true, TrackLog = sb }; if (apiPush.LoadCPAPI()) { apiPush.PushObject = m; if (apiPush.DoPush()) { return(true); } } var cp = new n8wan.Public.Logical.AutoMapPush(); cp.dBase = dBase; cp.Trone = trone; cp.LogFile = logFile; cp.IsSyncPush = true; cp.TrackLog = sb; if (!cp.LoadCPAPI()) { SetErrorMesage(sb.ToString()); return(false); } cp.PushObject = m; if (cp.DoPush()) { return(true); } SetErrorMesage(sb.ToString()); return(false); }
/// <summary> /// 根据ID,加载指令的订单 /// </summary> /// <param name="id">为空或不存在时,返回NULL</param> /// <returns></returns> private tbl_api_orderItem LoadApiOrder(string id) { if (string.IsNullOrEmpty(id)) { return(null); } tbl_mrItem mr = (tbl_mrItem)PushObject; var l = tbl_api_orderItem.GetQueries(dBase); l.TableDate = mr.mr_date; l.Filter.AndFilters.Add(tbl_api_orderItem.Fields.PrimaryKey, id); return(l.GetRowByFilters()); }
public override bool DoPush() { if (_apiMatchAPI == null) { return(false); } bool isNew; if (PushObject.cp_id > 0 && PushObject.cp_id != 34) {//已经关联的订单 var apiID = PushObject.GetValue(EPushField.ApiOrderId); _apiOrder = LoadApiOrder(apiID); WriteTrackLog(string.Format("已经关联订单, api id={0}", apiID)); isNew = false; } else {//未匹配的新订单 _apiOrder = LoadApiOrder(); isNew = true; } if (_apiOrder == null) { return(false); } var apiStatus = _apiOrder.status % 10000; if (apiStatus != 1011 && apiStatus != 1013 && apiStatus != 2023) { WriteTrackLog("订单状态错误:" + apiStatus.ToString()); return(false);//api 上量是状态错误,如有数据回传,有可能同步状态有问题 } //var tOrder = tbl_trone_orderItem.GetQueries(dBase); //tOrder.Filter.AndFilters.Add(tbl_trone_orderItem.Fields.id, _apiOrder.trone_order_id); //tOrder.Filter.AndFilters.Add(tbl_trone_orderItem.Fields.disable, false); //var m = tOrder.GetRowByFilters(); var m = tbl_trone_orderItem.GetRowByIdWithCache(dBase, _apiOrder.trone_order_id); if (m == null || m.disable) { return(false); } this.CP_Id = m.cp_id; SetConfig(m);//找到对应的渠道上量(相当于执行 base.LoadCPAPI()) tbl_mrItem mr = null; if (PushObject is tbl_mrItem) { mr = ((tbl_mrItem)PushObject); mr.api_order_id = _apiOrder.id; mr.user_md10 = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(string.Format("{0}_{1}_{2}", _apiOrder.imsi, _apiOrder.imei, _apiOrder.mobile), "MD5"); if (string.IsNullOrEmpty(mr.mobile) && !string.IsNullOrEmpty(_apiOrder.mobile)) { mr.mobile = _apiOrder.mobile; } if (string.IsNullOrEmpty(mr.imsi) && !string.IsNullOrEmpty(_apiOrder.imsi)) { mr.imsi = _apiOrder.imsi; } if (mr.province_id == 32 && (!string.IsNullOrEmpty(mr.mobile) || !string.IsNullOrEmpty(mr.imsi))) { var city = Library.GetCityInfo(dBase, mr.mobile, mr.imsi); mr.city_id = city.id; mr.province_id = city.province_id; } } var ret = base.DoPush(); if (!ret) { return(false); } if (isNew) { UpdateTroneLimit(); } _apiOrder.IgnoreEquals = true; var aStatus = apiStatus + (PushObject.syn_flag == 0 ? 10000 : 20000); //扣量和非扣量标识 _apiOrder.status = aStatus;// apiStatus + (PushObject.syn_flag == 0 ? 10000 : 20000); try { _apiOrder.SaveToDatabase(dBase); } catch (Exception ex) { Shotgun.Library.SimpleLogRecord.WriteLog("api_push", string.Format("linkid{0} 更新api.status 出错:{1}", PushObject.GetValue(EPushField.LinkID), ex.ToString())); } finally { } return(true); }