private bool frMo_ReceiveMessage(RabbitMQHelper mq, string message) { try { var mo = JsonConvert.DeserializeObject <MOSMS>(message); //找到给发短信的记录 var sms = StatusReportDB.GetSMSForMO(mo.Gateway, mo.ReceiveTime, mo.UserNumber); if (sms != null) { if (string.IsNullOrWhiteSpace(mo.SPNumber)) { mo.SPNumber = sms.SPNumber; } mo.AccountID = sms.AccountID; } DeliverMODB.Add(mo); MOCache.Instance.AddMOCache(mo); return(true); } catch (Exception ex) { LogClient.LogHelper.LogError("SendQueue", "frMo_ReceiveMessage", ex.ToString()); return(true); } }
/// <summary> /// 更新状态报告(客户端已获取) /// </summary> /// <param name="mo"></param> public void UpdateMOStatus(MOSMS mo) { try { DeliverMODB.UpdateMOStatus(mo); Cache[mo.AccountID].Remove(mo); } catch (Exception ex) { LogClient.LogHelper.LogError("MOCache", "UpdateMOStauts", ex.ToString()); } }
public void Test() { string spnumber = "12345"; var gateway = GatewayConfigDB.GetConfigs().FirstOrDefault(); Assert.IsNotNull(gateway); MOSMS mo = new MOSMS(gateway.Gateway, System.Guid.NewGuid().ToString(), new DateTime(2016, 4, 1), "测试短信上行", "123214", spnumber, "test"); var b = DeliverMODB.Add(mo); Assert.IsTrue(b); var l = DeliverMODB.Gets(spnumber, new DateTime(2016, 3, 1), new DateTime(2016, 4, 30)); Assert.IsTrue(l.Count > 0); b = DeliverMODB.Del(spnumber); Assert.IsTrue(b); l = DeliverMODB.Gets(spnumber, new DateTime(2016, 3, 1), new DateTime(2016, 4, 30)); Assert.IsTrue(l.Count == 0); }
public void LoadMOCache() { var list = DeliverMODB.GetMOCache(); list.ForEach(mo => { if (!string.IsNullOrWhiteSpace(mo.AccountID)) { if (!Cache.ContainsKey(mo.AccountID)) { Cache.Add(mo.AccountID, new List <MOSMS>() { mo }); } else { Cache[mo.AccountID].Add(mo); } } }); }
/// <summary> /// 用户上行短信(数据库获取) /// </summary> /// <param name="spNumber"></param> /// <param name="beginTime"></param> /// <param name="endTime"></param> /// <returns></returns> public RPCResult <List <MOSMS> > GetMOSMS(string spNumber, DateTime beginTime, DateTime endTime) { try { if (DateTime.Compare(beginTime, endTime) > 0) { DateTime dt = beginTime; beginTime = endTime; endTime = dt; } if (DateTime.Compare(endTime, DateTime.Now) > 0) { endTime = DateTime.Now; } List <MOSMS> mo = DeliverMODB.Gets(spNumber, beginTime, endTime); return(new RPCResult <List <MOSMS> >(true, mo, "")); } catch (Exception ex) { LogHelper.LogError("StatusReport", "StatusReportService.GetMOSMS", ex.ToString()); return(new RPCResult <List <MOSMS> >(false, null, "获取短信报告出现异常")); } }