protected override void ExceuteBody(IJobExecutionContext context) { var dataMap = context.JobDetail.JobDataMap; //反序列化 //var send_model =Common.SerializerHelper.DeSerializerToObject<PMS.Model.SMSModel.SMSModel_Send>(dataMap["SendModel"].ToString()); var sendjob_model = Common.SerializerHelper.DeSerializerToObject<PMS.Model.JobDataModel.SendJobDataModel>(dataMap["SendModel"].ToString()); var obj= sendjob_model.JobDataValue; var combine_model = Common.SerializerHelper.DeSerializerToObject<PMS.Model.CombineModel.SendAndMessage_Model>(obj.ToString()); combine_model.Model_Message.isTiming = false; //var send_model = dataMap["SendModel"] as PMS.Model.JobDataModel.SendJobDataModel; //其他信息: 在 ServiceModel 客户端配置部分中,找不到引用协定“ServiceReference_QuartzService.IJobService”的默认终结点元素。这可能是因为未找到应用程序的配置文件,或者是因为客户端元素中找不到与此协定匹配的终结点元素。 ISMSSend send = new SMSFactory.SMSSend(); PMS.Model.SMSModel.SMSModel_Receive receive_model = new PMS.Model.SMSModel.SMSModel_Receive(); PMS.Model.Message.BaseResponse response = new PMS.Model.Message.BaseResponse(); //send.SendMsg(new PMS.Model.CombineModel.SendAndMessage_Model() { Model_Send = combine_model, Model_Message = new PMS.Model.ViewModel.ViewModel_Message() { isTiming = false } } , out receive_model); try { send.SendMsg(combine_model, out receive_model); LogHelper.WriteLog(string.Format("msgid:{0}已发送", combine_model.Model_Send.msgid)); } catch (Exception ex) { LogHelper.WriteError(string.Format("msgid:{0}发送失败,错误原因{1}",combine_model.Model_Send.msgid),ex); } PMS.Model.ViewModel.ViewModel_Message model = new PMS.Model.ViewModel.ViewModel_Message() { UID =0, SMSMissionID="", Content="" }; //smsSendBLL.AfterSend(model, receive_model,) }
/// <summary> /// 立刻发送 /// </summary> /// <param name="msg"></param> /// <returns></returns> public bool SendMsgbyNow(PMS.Model.CombineModel.SendAndMessage_Model model, out SMSModel_Receive receiveModel) { //SMSModel_Receive receiveModel = new SMSModel_Receive(); ServiceReference_SMSService.SMSServiceClient client = new ServiceReference_SMSService.SMSServiceClient(); //重新梳理并做抽象 #region 11-14 在控制器中已经调用这些方法(现写在控制器中),此处与控制器重复,注释掉 ////1 根据选定的群组及部门获取相应的联系人 //var list_PersonPhonesByGroupAndDepartment = GetFinalPersonPhoneList(model.Model_Message, GetPersonListByGroupDepartment); ////2 获取临时联系人电话集合 //var list_tempPersonPhones = AddAndGetTempPersons(model.Model_Message, personBLL, groupBLL); ////2.2 获取最终的联系人电话集合 //list_PersonPhonesByGroupAndDepartment.AddRange(list_tempPersonPhones); //var list_phones = list_PersonPhonesByGroupAndDepartment; ////3 转成发送对象 //var sendMsg = ToSendModel(model.Model_Message, list_phones); /*步骤四 生成提交对象及短信及作业对象 由SMSFactory进行短信提交操作(并选择延时/立刻发送) */ //4 短信发送 //注意:desc:定时时间格式错误; // result:定时时间格式错误 //PMS.Model.CombineModel.SendAndMessage_Model sendandMsgModel = new PMS.Model.CombineModel.SendAndMessage_Model() { Model_Message = model, Model_Send = sendMsg }; //model.Model_Send = sendMsg; #endregion // SMSModel_Receive receive = new SMSModel_Receive(); PMS.Model.Message.BaseResponse response = new PMS.Model.Message.BaseResponse(); client.SendMsg(model.Model_Send, out receiveModel); //receiveModel = new SMSModel_Receive() { msgid = "210cb72fe038484fb2952d0db96e0ae7", desc = "提交成功", result = "0", failPhones = new string[] { "" } }; //发送之后执行将发送记录写会数据库的操作 this.AfterSend(model.Model_Message, receiveModel, model.Model_Send.phones.ToList(), this.redis_list_id, this.Interval_OverTime); //SendMsg(model, out response); return true; }