Example #1
0
        /// <summary>
        /// 医生端接受消息模板
        /// </summary>
        /// <param name="wecharSendMessage"></param>
        /// <returns></returns>
        public SendTemplate DoctorWecharTemplate(WecharSendMessage wecharSendMessage, string EvaluateLevel, string WarningTime)
        {
            SendTemplate sendTemplate = new SendTemplate();

            sendTemplate.ToUser       = wecharSendMessage.ToUser;
            sendTemplate.TemplateId   = wecharSendMessage.TemplateId;
            sendTemplate.BackUrl      = Commons.WecharWeb + "?link=order-detail&consultNumber=" + wecharSendMessage.ConsultNumber;
            sendTemplate.FirstMessage = wecharSendMessage.FirstMessage;
            YaeherConsultation yaeherConsultation = JsonHelper.FromJson <YaeherConsultation>(wecharSendMessage.ConsultJson);

            switch (wecharSendMessage.OperationType)
            {
            case "AddConsultation":      // 咨询者发起咨询
                sendTemplate.Keyword1      = wecharSendMessage.ConsultantName;
                sendTemplate.Keyword2      = yaeherConsultation.CreatedOn.ToString("yyyy-MM-dd HH:mm");
                sendTemplate.Keyword3      = "用户提交了一个关于" + yaeherConsultation.IIInessType + "问题的咨询";
                sendTemplate.MessageRemark = "请您及时回复";
                sendTemplate.MessageType   = "Notice";    //发送短信
                break;

            case "Inquiry":      // 咨询者追问
                sendTemplate.Keyword1      = wecharSendMessage.ConsultantName;
                sendTemplate.Keyword2      = yaeherConsultation.CreatedOn.ToString("yyyy-MM-dd HH:mm");
                sendTemplate.Keyword3      = "用户提交了一个关于" + yaeherConsultation.IIInessType + "问题的追问";
                sendTemplate.MessageRemark = "请您及时回复";
                sendTemplate.MessageType   = "Question";   //发送短信
                break;

            case "Evaluation":      //咨询评分
                sendTemplate.BackUrl       = Commons.WecharWeb + "evaluate-detail?typeEvaluate=3&consultNumber=" + wecharSendMessage.ConsultNumber + "&rShow=no";
                sendTemplate.Keyword1      = wecharSendMessage.ConsultantName;
                sendTemplate.Keyword2      = "评价:" + EvaluateLevel;
                sendTemplate.MessageRemark = "点击消息可查看评价详情";
                break;

            case "WarningRemind":      //  咨询预警
                sendTemplate.FirstMessage  = "您有一个咨询超过" + WarningTime + "未处理";
                sendTemplate.Keyword1      = wecharSendMessage.ConsultantName + "用户提交了一个关于" + yaeherConsultation.IIInessType + "问题的咨询";
                sendTemplate.Keyword2      = yaeherConsultation.CreatedOn.ToString("yyyy-MM-dd HH:mm");
                sendTemplate.MessageRemark = "请您及时回复";
                break;

            case "PatientReturn":      //咨询退单
                sendTemplate.Keyword1      = wecharSendMessage.ConsultantName;
                sendTemplate.Keyword2      = "用户主动退单";
                sendTemplate.Keyword3      = yaeherConsultation.RefundTime.ToString("yyyy-MM-dd HH:mm");
                sendTemplate.MessageRemark = "温馨提示:及时回复可避免用户主动退单";
                break;

            case "QualityReturn":      //质控退单
                sendTemplate.Keyword1      = wecharSendMessage.ConsultantName;
                sendTemplate.Keyword2      = "质控审核退单";
                sendTemplate.Keyword3      = yaeherConsultation.RefundTime.ToString("yyyy-MM-dd HH:mm");
                sendTemplate.MessageRemark = "温馨提示:严格遵守怡禾操作规范有助于减少质控退单";
                break;
            }
            return(sendTemplate);
        }
Example #2
0
        /// <summary>
        ///  咨询者接受消息模板
        /// </summary>
        /// <param name="sendTemplate"></param>
        /// <returns></returns>
        public SendTemplate ConsultantWecharTemplate(WecharSendMessage wecharSendMessage, string Inquiry)
        {
            SendTemplate sendTemplate = new SendTemplate();

            sendTemplate.ToUser       = wecharSendMessage.ToUser;
            sendTemplate.TemplateId   = wecharSendMessage.TemplateId;
            sendTemplate.BackUrl      = Commons.WecharWeb + "?link=record-detail&consultNumber=" + wecharSendMessage.ConsultNumber;
            sendTemplate.FirstMessage = wecharSendMessage.FirstMessage;
            YaeherConsultation yaeherConsultation = JsonHelper.FromJson <YaeherConsultation>(wecharSendMessage.ConsultJson);

            #region 2019-1-8 修改
            switch (wecharSendMessage.OperationType)
            {
            case "ReplayConsultant":      // 回复订单
                sendTemplate.Keyword1 = "您提交的关于" + yaeherConsultation.IIInessType + "的咨询";
                sendTemplate.Keyword2 = "请点击查看回复详情";
                sendTemplate.Keyword3 = wecharSendMessage.DoctorName;
                break;

            case "RemindInquiry":      //  追问提醒
                sendTemplate.FirstMessage  = "您的追问期限还剩" + Inquiry + ",请尽快追问";
                sendTemplate.Keyword1      = "您提交的关于" + yaeherConsultation.IIInessType + "的咨询";
                sendTemplate.Keyword2      = "追问过期时间为:" + yaeherConsultation.Completetime.ToString("yyyy-MM-dd HH:mm");
                sendTemplate.Keyword3      = wecharSendMessage.DoctorName;
                sendTemplate.MessageRemark = "请点击详情对医生进行追问";
                break;

            case "RemindEvaluation":      //  评价提醒
                sendTemplate.Keyword1      = yaeherConsultation.PatientName;
                sendTemplate.Keyword2      = yaeherConsultation.DoctorName;
                sendTemplate.MessageRemark = "请点击详情对医生进行评价";
                break;

            case "Systemreturn":      //  系统退单
                sendTemplate.Keyword1      = wecharSendMessage.DoctorName;
                sendTemplate.Keyword2      = "医生未能及时回复";
                sendTemplate.Keyword3      = DateTime.Now.ToString("yyyy-MM-dd HH:mm");
                sendTemplate.MessageRemark = "您可以继续选择其他医生咨询";
                break;

            case "DoctorReturn":      // 医生退单
                sendTemplate.Keyword1      = wecharSendMessage.DoctorName;
                sendTemplate.Keyword2      = "医生主动退单";
                sendTemplate.Keyword3      = DateTime.Now.ToString("yyyy-MM-dd HH:mm");
                sendTemplate.MessageRemark = "退单原因请查看详情";
                break;
            }
            #endregion
            return(sendTemplate);
        }
Example #3
0
        /// <summary>
        /// 患者微信支付下订单
        /// </summary>
        /// <returns></returns>
        public async Task <TencentJSPayRequestModel> UnifiedorderAsync(bool sharing, string spbillCreateIp, YaeherConsultation consul, YaeherUser user, ServiceMoneyList product, SystemConfigs tencentparam)
        {
            TencentJSPayRequestModel jspay = new TencentJSPayRequestModel();

            try
            {
                TenPayV3Info tenPayV3Info = new TenPayV3Info(tencentparam.AppID, tencentparam.AppSecret, tencentparam.TenPayMchId, tencentparam.TenPayKey, tencentparam.TenPayNotify, tencentparam.TenPayWxOpenNotify);

                //生成订单10位序列号,此处用时间和随机数生成,商户根据自己调整,保证唯一
                //  var timestamp = DateTime.Now.ToString("yyyyMMddHHmmss");
                // var sjs =;//随机数
                var sjs       = consul.ConsultNumber.Substring(3, consul.ConsultNumber.Length - 3) + TenPayV3Util.BuildRandomStr(6);
                var sp_billno = sjs;
                //   var sp_billno = string.Format("{0}{1}", sjs, user.Id);
                var shortbillno = sp_billno;

                TenPayInfo tenPayInfo = new TenPayInfo();
                //   var body = product == null ? "怡芽问诊" : product.DoctorName+"医生" + product.ServiceType;
                var body      = "怡禾健康咨询";
                var price     = product == null ? 100 : (int)(product.ServiceExpense * 100);//单位:分
                var timeStamp = TenPayV3Util.GetTimestamp();
                var nonceStr  = TenPayV3Util.GetNoncestr();

                var xmlDataInfo = new TenPayV3UnifiedorderRequestData(tenPayV3Info.AppId, tenPayV3Info.MchId, body, sp_billno, price, spbillCreateIp, tenPayV3Info.TenPayV3Notify, TenPayV3Type.JSAPI, user.WecharOpenID, tenPayV3Info.Key, nonceStr);
                //CreateWrite("C:\\回调.txt", "订单参数:" + JsonHelper.ToJson(xmlDataInfo));
                var result = await UnifiedorderAsync(xmlDataInfo, sharing? "Y" : "N"); //调用统一订单接口

                //JsSdkUiPackage jsPackage = new JsSdkUiPackage(TenPayV3Info.AppId, timeStamp, nonceStr,);

                if (result.IsResultCodeSuccess())
                {
                    var package = string.Format("prepay_id={0}", result.prepay_id);
                    var paysign = TenPayV3.GetJsPaySign(tenPayV3Info.AppId, timeStamp, nonceStr, package, tenPayV3Info.Key);

                    jspay.product   = product;
                    jspay.timeStamp = timeStamp;
                    jspay.nonceStr  = nonceStr;
                    jspay.package   = package;
                    jspay.paySign   = paysign;
                    jspay.appid     = tenPayV3Info.AppId;
                    jspay.sp_billno = shortbillno;
                    jspay.code      = result.result_code;
                    jspay.msg       = result.return_msg;
                }
                else
                {
                    jspay.code = result.result_code;
                    jspay.msg  = result.return_msg;
                }
            }
            catch (Exception ex)
            {
                jspay.code = "FAIL";
                jspay.msg  = ex.Message.ToString();
            }
            return(jspay);
        }
Example #4
0
        /// <summary>
        /// 输出模型
        /// </summary>
        /// <param name="quality"></param>
        /// <param name="item"></param>
        /// <param name="hasCollect"></param>
        /// <param name="consultationfile"></param>
        /// <param name="reply"></param>
        /// <param name="doctor"></param>
        /// <param name="eva"></param>
        /// <param name="serverid"></param>
        /// <param name="IIIness"></param>
        ///  <param name="paramlist"></param>
        public QualityControlManageOutDetail(QualityControlManage quality, YaeherConsultation item, bool hasCollect, IList <ReplyDetail> consultationfile, IList <ReplyDetail> reply, YaeherUser doctor, IList <ConsultationEvaluation> eva, int serverid, int IIIness, List <SystemParameter> paramlist)
        {
            Id                      = quality.Id;
            Sex                     = JsonHelper.FromJson <YaeherPatientLeaguerInfo>(item.PatientJSON).Sex;
            QualityLevel            = quality.QualityLevel;
            RepayIllnessDescription = quality.RepayIllnessDescription;
            ReplyState              = quality.ReplyState;
            IsReturnVisit           = item.IsReturnVisit;
            HasCollect              = hasCollect;
            CreatedBy               = item.CreatedBy;
            CreatedOn               = item.CreatedOn;
            UserImage               = doctor.UserImage;
            ConsultNumber           = item.ConsultNumber;
            ConsultantID            = item.ConsultantID;
            ConsultantName          = item.ConsultantName;
            ConsultantJSON          = item.ConsultantJSON;
            DoctorName              = item.DoctorName;
            DoctorID                = item.DoctorID;
            DoctorJSON              = item.DoctorJSON;
            PatientID               = item.PatientID;
            PatientName             = item.PatientName;
            PatientJSON             = item.PatientJSON;
            ConsultType             = item.ConsultType;
            IIInessType             = item.IIInessType;
            IIInessId               = IIIness;
            IIInessJSON             = item.IIInessJSON;
            PhoneNumber             = item.PhoneNumber;
            PatientCity             = item.PatientCity;
            IIInessDescription      = item.IIInessDescription;
            InquiryTimes            = item.InquiryTimes;
            ConsultState            = item.ConsultState;
            OvertimeRemindTimes     = item.OvertimeRemindTimes;
            Overtime                = item.Overtime;
            RefundBy                = item.RefundBy;
            RefundTime              = item.RefundTime;
            RefundType              = item.RefundType;
            RefundNumber            = item.RefundNumber;
            RefundState             = item.RefundState;
            RefundReason            = item.RefundReason;
            RefundRemarks           = item.RefundRemarks;
            RecommendDoctorName     = item.RecommendDoctorName;
            RecommendDoctorID       = item.RecommendDoctorID;
            QualityDoctor           = quality.DoctorName;
            Age                     = item.Age;
            Replys                  = reply.OrderBy(t => t.CreatedOn).ToList();
            Consultationfile        = consultationfile.ToList();
            TimeSpan ts = DateTime.UtcNow.Subtract(item.CreatedOn);

            if (ts.TotalMinutes >= 3 || Replys.Count > 0)
            {
                Canhargeback = false;
            }
            else
            {
                Canhargeback = true;
            }
            var replycount = reply.Where(t => t.Message != "" && t.Message != null && t.ReplyType == "inquiries").ToList();

            ReplysCount           = 2 - replycount.Count > 0 ? 2 - replycount.Count : 0;
            ConsulationStatusCode = item.ConsultState;
            ConsultState          = paramlist.Find(t => t.Code == item.ConsultState).Name;
            if (item.ConsultState == "consulting")
            {
                CanReplys = true;
            }
            else
            {
                CanReplys = false;
            }
            if (item.ConsultState == "success" && !HasEvaluation)
            {
                CanEvaluation = true;
            }
            else
            {
                CanEvaluation = false;
            }
            if (item.ConsultState == "success" || item.ConsultState == "return")
            {
                CanDelete = true;
            }
            else
            {
                CanDelete = false;
            }
            if (ReplysCount < 1)
            {
                CanReplys = false;
            }
            HasEvaluation      = item.IsEvaluate;
            ReturnVisit        = item.ReturnVisit;
            EvaluationId       = eva.Count > 0 ? eva[0].Id : 0;
            ServiceMoneyListID = serverid;
            HasAllergic        = JsonHelper.FromJson <YaeherPatientLeaguerInfo>(item.PatientJSON).HasAllergic;
            AllergicHistory    = JsonHelper.FromJson <YaeherPatientLeaguerInfo>(item.PatientJSON).AllergicHistory;
        }