예제 #1
0
        /// <summary>
        /// 创建门诊预存订单
        /// </summary>
        /// <param name="openid">用户标识</param>
        /// <param name="patientname">病人姓名</param>
        /// <param name="patientidcardno">病人身份证号</param>
        /// <param name="cardno">就诊卡卡号</param>
        /// <param name="subject">标题</param>
        /// <param name="money">金额</param>
        /// <param name="tradeno">订单号</param>
        /// <param name="msg">出错信息</param>
        /// <returns>0:成功  大于0:出错  小于0:异常</returns>
        public int DB_CreateOrder(string openid, string patientname, string patientidcardno, string cardno, string patientid, string subject,
                                  double money, double tkje, string patienttype, out long tradeno, out string msg)
        {
            msg     = "";
            tradeno = -1;
            int ret = 99;

            if (patienttype == "1")
            {
                if (!IsValidCardno(patientid, cardno, out msg))
                {
                    return(ret);
                }
            }

            if (!IsSupportPayment(patienttype))
            {
                msg = "医院暂时不支持该功能的使用";
                ret = 18;
                return(ret);
            }

            if (!IsAmountAbnormal(patienttype, money))
            {
                msg = "充值金额异常或超过限定额度";
                return(19);
            }

            //产生日期
            DateTime _cssj;

            if (DB_Sysdate(out _cssj) == false)
            {
                msg = "读取服务器系统时间出错";
                return(20);
            }


            //产生医院订单流水号
            tradeno = YylshSeq();
            if (tradeno <= 0)
            {
                msg = "订单流水号产生失败";
                return(21);
            }


            string logMsg = " yylsh : " + tradeno + " czje : " + money + " tkje : " + tkje + " ddzt : " + 0 + " jyfs : " + 10 +
                            " bkhm : " + cardno + " brid : " + patientid + " cssj : " + _cssj.ToString("yyyy-MM-dd HH:mm:ss") +
                            " czsj : " + _cssj.ToString("yyyy-MM-dd HH:mm:ss") + " brlx : " + patienttype + " 。";

            UtilLog.GetInstance().WriteOrderLog("创建订单成功: ", logMsg);

            OracleConnection connection = new OracleConnection(WebConfigParameter.ConnectionHisString);

            try
            {
                string insertSql = _builder.CreateOrderforAlipaySql(tradeno, money, tkje, patienttype, cardno, patientid,
                                                                    _cssj, patientidcardno, "", patientname, subject, openid);

                ArrayList listSql = new ArrayList();
                listSql.Add(insertSql);
                DbHelperOra.ExecuteSqlTran(listSql, connection);

                msg = "订单已经成功创建";
                ret = 00;
            }
            catch (Exception ex)
            {
                UtilLog.GetInstance().WriteProgramLog(System.Reflection.MethodBase.GetCurrentMethod().Name, ex);

                msg = GetExceptionInfo(ex);

                logMsg += " , 异常信息: " + msg + " 。";
                UtilLog.GetInstance().WriteOrderLog("创建订单失败: ", logMsg);

                return(-1);
            }
            finally
            {
                connection.Close();
            }

            return(ret);
        }