// 如果活动返回值,则从 CodeActivity<TResult> // 并从 Execute 方法返回该值。 protected override void Execute(CodeActivityContext context) { // 获取 Text 输入参数的运行时值 //string text = context.GetValue(this.Text); //1 根据传入的参数,获取Redis中的集合对象并返回 //1.1 获取传入的参数 string id_list = context.GetValue(Id_List); //1.2根据Redis中保存的 集合 的 key 获取该Redis帮助类(实例化) ListReidsHelper<PMS.Model.QueryModel.Redis_SMSContent> redisListhelper = new ListReidsHelper<PMS.Model.QueryModel.Redis_SMSContent>(id_list); //2 取得Redis中保存的该 Key 所对应的集合对象 var list_final = new List<PMS.Model.QueryModel.Redis_SMSContent>(); list_final = redisListhelper.GetLast(); context.SetValue(List_redis, list_final); }
/// <summary> /// 在发送短信之后执行 /// 步骤五: /// 创建短信内容至数据库 /// 创建发送记录至数据库 /// (此处应放在SMSFactory.SendMsg或写在JobInstance中的SendJob.Exceuted) /// </summary> /// <param name="model"></param> /// <param name="receive"></param> /// <param name="list_phones"></param> /// <param name="redis_list_id">redis中保存的list的key</param> /// <param name="redis_expirationDate">redis中保存集合的过期时间(默认72小时)</param> /// <returns></returns> public bool AfterSend(PMS.Model.ViewModel.ViewModel_Message model, SMSModel_Receive receive, List<string> list_phones,string redis_list_id,int redis_expirationDate=72) { //5 将发送的短信以及提交响应存入SMSContent var mid = model.SMSMissionID; var uid = model.UID; bool isSaveMsgOk = smsContentBLL.SaveMsg(receive, model.Content, mid, uid); //在current表中存入发送信息,在query之前,表中的StatusCode默认为98,DescContent默认为"暂时未收到查询回执" //7月28日 注意此处已修改方法为:CreateReceieveMsg!!! if (!smsRecord_CurrentBLL.CreateReceieveMsg(receive.msgid, list_phones)) { return false; } /*步骤六: 写入redis缓存中 (此处应放在SMSFactory.SendMsg中或写在JobInstance中的SendJob.Exceuted) */ ListReidsHelper<PMS.Model.QueryModel.Redis_SMSContent> redisListhelper = new ListReidsHelper<PMS.Model.QueryModel.Redis_SMSContent>(redis_list_id); StringRedisHelper redisStrhelper = new StringRedisHelper(); redisStrhelper.Set(receive.msgid, "1", DateTime.Now.AddMinutes(redis_expirationDate)); return true; }
// private TimeSpan ts { get; set; } public QueryHelper() { //1 创建操作集合的Redis操作类 redisListhelper = new ListReidsHelper<Redis_ListMsgIdObj>(List_Key); }
// 如果活动返回值,则从 CodeActivity<TResult> // 并从 Execute 方法返回该值。 protected override void Execute(CodeActivityContext context) { // 获取 Text 输入参数的运行时值 //string text = context.GetValue(this.Text); //1 取出传入的集合和时间间隔变量 var list = context.GetValue(List_redis); var secs = context.GetValue(Secs_Interval); var key = context.GetValue(Key_RedisList); redisListhelper = new ListReidsHelper<PMS.Model.QueryModel.Redis_SMSContent>(key); //2 获取超出时间间隔的第一个对象 //var first = new PMS.Model.QueryModel.Redis_SMSContent(); var first = CheckTimeOut_RedisList(list, secs,key); if (first != null) { //3 为传出变量赋值 context.SetValue(this.First_Obj, first); //first = new PMS.Model.QueryModel.Redis_SMSContent(); } }
// 如果活动返回值,则从 CodeActivity<TResult> // 并从 Execute 方法返回该值。 protected override void Execute(CodeActivityContext context) { ReadAppConfig(); // 获取 Text 输入参数的运行时值 string text = context.GetValue(this.Text); //1.1 创建redis操作类 ListReidsHelper<PMS.Model.QueryModel.Redis_SMSContent> redisListhelper; redisListhelper = new ListReidsHelper<PMS.Model.QueryModel.Redis_SMSContent>(context.GetValue(this.list_id)); //1.2 根据Redis中保存的集合id查询到该集合 var list_final = redisListhelper.GetLast(); //1.3 判断集合第一个对象的时间是否已经超过规定的时间 CheckTimeOut_RedisList(list_final, context.GetValue(this.seconds_add)); }
// 如果活动返回值,则从 CodeActivity<TResult> // 并从 Execute 方法返回该值。 protected override void Execute(CodeActivityContext context) { // 获取 Text 输入参数的运行时值 //string text = context.GetValue(this.Text); //1 取出传入的集合和时间间隔变量 var list = context.GetValue(List_redis); var secs = context.GetValue(Secs_Interval); var key = context.GetValue(Key_RedisList); redisListhelper = new ListReidsHelper<PMS.Model.QueryModel.Redis_SMSContent>(key); //2 获取超出时间间隔的第一个对象 //var first = new PMS.Model.QueryModel.Redis_SMSContent(); var first = CheckTimeOut_RedisList(list, secs,key); if (first != null) { //3 为传出变量赋值 context.SetValue(this.First_Obj, first); context.SetValue(this.MsgId, first.msgid); //首元素符合条件 context.SetValue(this.WF_Result, 1); //此处不应为state赋值,state为查询状态码,此时还未进行查询操作,故只对以上的流程结果赋值 //context.SetValue(this.State, 0); //first = new PMS.Model.QueryModel.Redis_SMSContent(); } else { context.SetValue(this.WF_Result, 3); } }