/**  版本信息模板在安装目录下，可自行修改。
* T_AutoCall_Result.cs
*
* 功 能： N/A
* 类 名： T_AutoCall_Result
*
* Ver    变更日期             负责人  变更内容
* ───────────────────────────────────
* V0.01  2022/2/23 09:12:42   N/A    初版
*
* Copyright (c) 2012 Maticsoft Corporation. All rights reserved.
*┌──────────────────────────────────┐
*│　此技术信息为本公司机密信息，未经本公司书面同意禁止向第三方披露．　│
*│　版权所有：动软卓越（北京）科技有限公司　　　　　　　　　　　　　　│
*└──────────────────────────────────┘
*/
using System;
using System.Data;
using System.Text;
using System.Data.SqlClient;
using CallCenterApi.DB;
namespace CallCenterApi.DAL
{
	/// <summary>
	/// 数据访问类:T_AutoCall_Result
	/// </summary>
	public partial class T_AutoCall_Result
	{
		public T_AutoCall_Result()
		{}
		#region  BasicMethod

		/// <summary>
		/// 得到最大ID
		/// </summary>
		public int GetMaxId()
		{
		return DbHelperSQL.GetMaxID("F_Id", "T_AutoCall_Result"); 
		}

		/// <summary>
		/// 是否存在该记录
		/// </summary>
		public bool Exists(int Id)
		{
			StringBuilder strSql=new StringBuilder();
			strSql.Append("select count(1) from T_AutoCall_Result");
			strSql.Append(" where F_Id=@Id");
			SqlParameter[] parameters = {
					new SqlParameter("@Id", SqlDbType.Int,4)
			};
			parameters[0].Value = Id;

			return DbHelperSQL.Exists(strSql.ToString(),parameters);
		}


		/// <summary>
		/// 增加一条数据
		/// </summary>
		public int Add(CallCenterApi.Model.T_AutoCall_Result model)
		{
			StringBuilder strSql=new StringBuilder();
			strSql.Append("insert into T_AutoCall_Result(");
			strSql.Append("taskId,questionId,createTime,result)");
			strSql.Append(" values (");
			strSql.Append("@taskId,@questionId,@createTime,@result)");
			strSql.Append(";select @@IDENTITY");
			SqlParameter[] parameters = {
					new SqlParameter("@taskId", SqlDbType.Int,4),
					new SqlParameter("@questionId", SqlDbType.Int,4),
					new SqlParameter("@createTime", SqlDbType.DateTime),
					new SqlParameter("@result", SqlDbType.NVarChar,50)};
			parameters[0].Value = model.taskId;
			parameters[1].Value = model.questionId;
			parameters[2].Value = model.createTime;
			parameters[3].Value = model.result;

			object obj = DbHelperSQL.GetSingle(strSql.ToString(),parameters);
			if (obj == null)
			{
				return 0;
			}
			else
			{
				return Convert.ToInt32(obj);
			}
		}
		/// <summary>
		/// 更新一条数据
		/// </summary>
		public bool Update(CallCenterApi.Model.T_AutoCall_Result model)
		{
			StringBuilder strSql=new StringBuilder();
			strSql.Append("update T_AutoCall_Result set ");
			strSql.Append("taskId=@taskId,");
			strSql.Append("questionId=@questionId,");
			strSql.Append("createTime=@createTime,");
			strSql.Append("result=@result");
			strSql.Append(" where F_Id=@F_Id");
			SqlParameter[] parameters = {
					new SqlParameter("@taskId", SqlDbType.Int,4),
					new SqlParameter("@questionId", SqlDbType.Int,4),
					new SqlParameter("@createTime", SqlDbType.DateTime),
					new SqlParameter("@result", SqlDbType.NVarChar,50),
					new SqlParameter("@F_Id", SqlDbType.Int,4)};
			parameters[0].Value = model.taskId;
			parameters[1].Value = model.questionId;
			parameters[2].Value = model.createTime;
			parameters[3].Value = model.result;
			parameters[4].Value = model.F_Id;

			int rows=DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
			if (rows > 0)
			{
				return true;
			}
			else
			{
				return false;
			}
		}

		/// <summary>
		/// 删除一条数据
		/// </summary>
		public bool Delete(int Id)
		{
			
			StringBuilder strSql=new StringBuilder();
			strSql.Append("delete from T_AutoCall_Result ");
			strSql.Append(" where F_Id=@Id");
			SqlParameter[] parameters = {
					new SqlParameter("@Id", SqlDbType.Int,4)
			};
			parameters[0].Value = Id;

			int rows=DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
			if (rows > 0)
			{
				return true;
			}
			else
			{
				return false;
			}
		}
		/// <summary>
		/// 批量删除数据
		/// </summary>
		public bool DeleteList(string Idlist )
		{
			StringBuilder strSql=new StringBuilder();
			strSql.Append("delete from T_AutoCall_Result ");
			strSql.Append(" where F_Id in (" + Idlist + ")  ");
			int rows=DbHelperSQL.ExecuteSql(strSql.ToString());
			if (rows > 0)
			{
				return true;
			}
			else
			{
				return false;
			}
		}


		/// <summary>
		/// 得到一个对象实体
		/// </summary>
		public CallCenterApi.Model.T_AutoCall_Result GetModel(int Id)
		{
			
			StringBuilder strSql=new StringBuilder();
			strSql.Append("select  top 1 Id,taskId,questionId,createTime,result from T_AutoCall_Result ");
			strSql.Append(" where F_Id=@Id");
			SqlParameter[] parameters = {
					new SqlParameter("@Id", SqlDbType.Int,4)
			};
			parameters[0].Value = Id;

			CallCenterApi.Model.T_AutoCall_Result model=new CallCenterApi.Model.T_AutoCall_Result();
			DataSet ds=DbHelperSQL.Query(strSql.ToString(),parameters);
			if(ds.Tables[0].Rows.Count>0)
			{
				return DataRowToModel(ds.Tables[0].Rows[0]);
			}
			else
			{
				return null;
			}
		}


		/// <summary>
		/// 得到一个对象实体
		/// </summary>
		public CallCenterApi.Model.T_AutoCall_Result DataRowToModel(DataRow row)
		{
			CallCenterApi.Model.T_AutoCall_Result model=new CallCenterApi.Model.T_AutoCall_Result();
			if (row != null)
			{
				if(row["F_Id"] !=null && row["F_Id"].ToString()!="")
				{
					model.F_Id=int.Parse(row["F_Id"].ToString());
				}
				if(row["taskId"]!=null && row["taskId"].ToString()!="")
				{
					model.taskId=int.Parse(row["taskId"].ToString());
				}
				if(row["questionId"]!=null && row["questionId"].ToString()!="")
				{
					model.questionId=int.Parse(row["questionId"].ToString());
				}
				if(row["createTime"]!=null && row["createTime"].ToString()!="")
				{
					model.createTime=DateTime.Parse(row["createTime"].ToString());
				}
				if(row["result"]!=null)
				{
					model.result=row["result"].ToString();
				}
			}
			return model;
		}

		/// <summary>
		/// 获得数据列表
		/// </summary>
		public DataSet GetList(string strWhere)
		{
			StringBuilder strSql=new StringBuilder();
			strSql.Append("select F_Id,taskId,questionId,createTime,result ");
			strSql.Append(" FROM T_AutoCall_Result ");
			if(strWhere.Trim()!="")
			{
				strSql.Append(" where "+strWhere);
			}
			return DbHelperSQL.Query(strSql.ToString());
		}


        //public DataSet exportList(string strWhere)
        //{
        //  //  1：十分满意；2：满意；3：不满意
        //    StringBuilder strSql = new StringBuilder();
        //    strSql.Append(" select  a.salesOffice,a.phone,b.createTime,");
        //    strSql.Append(" case result when 1 then '十分满意'  when 2 then '满意'  when 3 then '不满意' else '' end result ");


        //    strSql.Append("  from T_AutoCall_PhoneRelate a left join  T_AutoCall_Result  b on a.F_id = b.F_Id");

        //    if (strWhere.Trim() != "")
        //    {
        //        strSql.Append(" where " + strWhere);
        //    }
        //    strSql.Append(" order by b.F_Id desc");
        //    return DbHelperSQL.Query(strSql.ToString());
        //}



        public DataSet exportList(string strWhere)
        {
            //  "" "营业部","电话号码","用户分类","问题","结果", 
            //select  a.salesOffice, a.phone,b.F_Id,a.ordernature,d.qescontent,b.taskid,b.questionId,
            StringBuilder strSql = new StringBuilder();
            //最新的 strSql.Append("select * from ( select  (Convert(varchar(100),a.F_Id)+'_'+Convert(varchar(100),d.F_Id)) Id,  a.salesOffice, a.phone,a.ordernature,a.F_Id,d.qescontent,a.taskid,d.F_Id questionId,  case b.result when 1 then '十分满意'  when 2 then '满意'  when 3 then '不满意' else '' end result from T_AutoCall_PhoneRelate a  left join T_AutoCall_Question d on d.taskid = a.taskid left join T_AutoCall_Result b on a.F_id = b.F_id and d.F_Id = b.questionId  where   a.callstate = 1 ) as t");
            strSql.Append("select * from ( select    a.salesOffice, a.phone,a.ordernature,d.qescontent, case b.result when 1 then '十分满意'  when 2 then '满意'  when 3 then '不满意' else '' end result, b.createTime ,a.taskId,d.F_Id  from T_AutoCall_PhoneRelate a  left join T_AutoCall_Question d on d.taskid = a.taskid left join T_AutoCall_Result b on a.F_id = b.F_id and d.F_Id = b.questionId  where   a.callstate = 1 ) as t");
            //  1：十分满意；2：满意；3：不满意
            //StringBuilder strSql = new StringBuilder();
            //strSql.Append(" select  a.salesOffice, a.phone,a.ordernature,d.qescontent,");
            //strSql.Append(" case b.result when 1 then '十分满意'  when 2 then '满意'  when 3 then '不满意' else '' end result, b.createTime from  T_AutoCall_Result b");


            //strSql.Append("  left join T_AutoCall_PhoneRelate a  on a.F_id = b.F_id");
            //strSql.Append("  left join  T_AutoCall_Question d on d.F_Id = b.questionId");

            //StringBuilder tablenew = new StringBuilder();
            //tablenew.Append("(select phone,salesOffice, orderNature,question1, ");
            //tablenew.Append(" case when isconnect = 1   then     case result1 when  1 then '十分满意'  when 2 then '满意' when 3 then '不满意'          else '未评价' end else '' end  result1,question2, ");
            //tablenew.Append(" case when isconnect = 1  then    case result2 when  1 then '十分满意'    when 2 then '满意'   when 3 then '不满意'   else '未评价'     end     else '' end result2,question3");
            //tablenew.Append(" case when isconnect = 1 then    case result3 when  1 then '十分满意'     when 2 then '满意'    when 3 then '不满意'   else '未评价'     end     else ''  end result3");
            //tablenew.Append(" ,isconnect, calltime from T_AutomaticCall_Phone  phone  left join T_AutomaticCall_Task  task on phone.taskid = task.taskid) as t");

            if (strWhere.Trim() != "")
            {
                strSql.Append(" where " + strWhere);
            }
            strSql.Append(" order by taskId desc");
            return DbHelperSQL.Query(strSql.ToString());
        }
        public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("SELECT * FROM ( ");
            strSql.Append(" SELECT ROW_NUMBER() OVER (");
            if (!string.IsNullOrEmpty(orderby.Trim()))
            {
                strSql.Append("order by a." + orderby);
            }
            else
            {
                strSql.Append("order by a.F_Id desc");
            }
            strSql.Append(")AS Row, a.salesOffice, a.phone,case b.result when 1 then '十分满意'  when 2 then '满意'  when 3 then '不满意' else '' end  result ,b.createTime  from T_AutoCall_PhoneRelate a  left join T_AutoCall_Result b on a.F_id =b.F_id");
            if (!string.IsNullOrEmpty(strWhere.Trim()))
            {
                strSql.Append(" WHERE " + strWhere);
            }
            strSql.Append(" ) TT");
            strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
            return DbHelperSQL.Query(strSql.ToString());          
        }

        /// <summary>
        /// 获得前几行数据
        /// </summary>
        public DataSet GetList(int Top,string strWhere,string filedOrder)
		{
			StringBuilder strSql=new StringBuilder();
			strSql.Append("select ");
			if(Top>0)
			{
				strSql.Append(" top "+Top.ToString());
			}
			strSql.Append(" F_Id,taskId,questionId,createTime,result ");
			strSql.Append(" FROM T_AutoCall_Result ");
			if(strWhere.Trim()!="")
			{
				strSql.Append(" where "+strWhere);
			}
			strSql.Append(" order by " + filedOrder);
			return DbHelperSQL.Query(strSql.ToString());
		}

		/// <summary>
		/// 获取记录总数
		/// </summary>
		public int GetRecordCount(string strWhere)
		{
			StringBuilder strSql=new StringBuilder();
			strSql.Append("select count(1) FROM T_AutoCall_Result ");
			if(strWhere.Trim()!="")
			{
				strSql.Append(" where "+strWhere);
			}
			object obj = DbHelperSQL.GetSingle(strSql.ToString());
			if (obj == null)
			{
				return 0;
			}
			else
			{
				return Convert.ToInt32(obj);
			}
		}
		/// <summary>
		/// 分页获取数据列表
		/// </summary>
		//public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
		//{
		//	StringBuilder strSql=new StringBuilder();
		//	strSql.Append("SELECT * FROM ( ");
		//	strSql.Append(" SELECT ROW_NUMBER() OVER (");
		//	if (!string.IsNullOrEmpty(orderby.Trim()))
		//	{
		//		strSql.Append("order by T." + orderby );
		//	}
		//	else
		//	{
		//		strSql.Append("order by T.F_Id desc");
		//	}
		//	strSql.Append(")AS Row, T.*  from T_AutoCall_Result T ");
		//	if (!string.IsNullOrEmpty(strWhere.Trim()))
		//	{
		//		strSql.Append(" WHERE " + strWhere);
		//	}
		//	strSql.Append(" ) TT");
		//	strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
		//	return DbHelperSQL.Query(strSql.ToString());
		//}

		/*
		/// <summary>
		/// 分页获取数据列表
		/// </summary>
		public DataSet GetList(int PageSize,int PageIndex,string strWhere)
		{
			SqlParameter[] parameters = {
					new SqlParameter("@tblName", SqlDbType.VarChar, 255),
					new SqlParameter("@fldName", SqlDbType.VarChar, 255),
					new SqlParameter("@PageSize", SqlDbType.Int),
					new SqlParameter("@PageIndex", SqlDbType.Int),
					new SqlParameter("@IsReCount", SqlDbType.Bit),
					new SqlParameter("@OrderType", SqlDbType.Bit),
					new SqlParameter("@strWhere", SqlDbType.VarChar,1000),
					};
			parameters[0].Value = "T_AutoCall_Result";
			parameters[1].Value = "Id";
			parameters[2].Value = PageSize;
			parameters[3].Value = PageIndex;
			parameters[4].Value = 0;
			parameters[5].Value = 0;
			parameters[6].Value = strWhere;	
			return DbHelperSQL.RunProcedure("UP_GetRecordByPage",parameters,"ds");
		}*/

		#endregion  BasicMethod
		#region  ExtensionMethod

		#endregion  ExtensionMethod
	}
}

