/// <summary> /// 创建订单号,在外部初始化 /// </summary> /// <returns></returns> public tbl_api_orderItem InitUserInfo(int poolId) { _poolInfo = LightDataModel.tbl_cp_poolItem.GetRowById(dBase, poolId); if (_orderInfo != null) { return(_orderInfo); } return(_orderInfo = new tbl_api_orderItem() { cp_pool_id = poolId, IgnoreEquals = true }); }
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); }