Example #1
0
        /// <summary>
        /// 加载报表
        /// </summary>
        public void LoadReport()
        {
            while (true)
            {
                FGSMSReportResponse response = FGSMSHelper.GetSMSReport();
                Logger.Info(typeof(MessageRecordService), "GetSMSReport=" + JsonUtils.Serialize(response));
                if (!response.success)
                {
                    SystemLog sLog = new SystemLog();
                    sLog.ActionName     = "SMSReport";
                    sLog.ControllerName = "MessageRecordService.AddReport";
                    sLog.ResultLog      = JsonUtils.Serialize(response);
                    sLog.Source         = LogSource.Admin;
                    sLog.Type           = LogType.Error;
                    _interProvider.AddLog(sLog);
                    break;
                }

                if (CollectionUtils.IsEmpty(response.data))
                {
                    continue;
                }
                _MessageRecordProvider.AddReport(response.data.Select(g => new MessageReport()
                {
                    MsgNo      = g.msg_no,
                    Mobile     = g.mobile,
                    ResultCode = g.status,
                    SendState  = g.success ? MsgSendState.SendSuccess : MsgSendState.ReceiveFailed
                }).ToList());
                //需要间隔5s
                Thread.Sleep(5000);
            }
        }
Example #2
0
        public bool Send(List <MessageRecord> sendMsgList, bool needCheck = true)
        {
            PreconditionUtil.checkArgument(CollectionUtils.IsNotEmpty(sendMsgList), "参数校验失败");

            lock (objLock)
            {
                FGSMSResponse response = new FGSMSResponse();
                if (needCheck)
                {
                    List <MessageRecord> msgLogList = JsonUtils.Deserialize <List <MessageRecord> >(sendMsgList.Serialize());
                    CheckSendRecord(ref sendMsgList);
                    if (CollectionUtils.IsEmpty(sendMsgList))
                    {
                        // 记录日志
                        response.msg = "消息已经发送成功,无需重复发送";
                        AddLog(msgLogList, response);
                        return(true);
                    }
                }

                // 后续跟进业务调整
                string content = string.Format("{0}||{1}||{2}", sendMsgList.First().MsgData.OrderDate.GetDateTimeFormats('D')[0].ToString(), string.Join("、", sendMsgList.Select(g => g.MsgData.OrderName)), string.Join("、", sendMsgList.Select(g => g.MessageId)));
                response = FGSMSHelper.TemplateSMS(signId, templateId, content, sendMsgList.First().ToAddress);
                Logger.Info(typeof(MessageRecordService), "message body=" + string.Format("request:{0},response:{1}", sendMsgList.First().ToAddress + "," + content, response.Serialize()));


                if (response.code == 0)
                {
                    sendMsgList.ForEach(g => { g.SendState = MsgSendState.SendSuccess; g.MsgData.MsgNo.Add(response.msg_no); });
                    _MessageRecordProvider.Send(sendMsgList);
                }
                else
                {
                    sendMsgList.ForEach(g =>
                    {
                        g.SendState = MsgSendState.SendFailed;
                        if (!string.IsNullOrEmpty(response.msg_no))
                        {
                            g.MsgData.MsgNo.Add(response.msg_no);
                        }
                    });
                    _MessageRecordProvider.Send(sendMsgList);
                }
                // 记录日志
                AddLog(sendMsgList, response);

                // 余额不足结束流程
                if (response.code == 15)
                {
                    throw new BizException(response.code.ToString(), response.errorMsg);
                }

                return(response.success);
            }
        }