using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using MySql.Data.MySqlClient;
namespace FangYar.OracleDAL.TBL
{
public class SysAreaDAL:FangYar.IDAL.TBL.SysAreaIDAL
{
#region 私有方法
///
/// DataRow转model实体类对象
///
///
///
private void DataRowToModel(Model.TBL.TBL_SYS_AREA_Model model, DataRow dr)
{
if (!DBNull.Value.Equals(dr["ID"]))
model.ID = dr["ID"].ToString();
if (!DBNull.Value.Equals(dr["PID"]))
model.PID = dr["PID"].ToString();
if (!DBNull.Value.Equals(dr["AREA_CODE"]))
model.AREA_CODE = dr["AREA_CODE"].ToString();
if (!DBNull.Value.Equals(dr["AREA_NAME"]))
model.AREA_NAME = dr["AREA_NAME"].ToString();
if (!DBNull.Value.Equals(dr["AREA_LEVEL"]))
model.AREA_LEVEL = dr["AREA_LEVEL"].ToString();
if (!DBNull.Value.Equals(dr["AREA_EXTS"]))
model.AREA_EXTS = dr["AREA_EXTS"].ToString();
}
///
/// 把DataRow行转成实体类对象
///
private FangYar.Model.TBL.TBL_SYS_AREA_Model DataRowToModel(DataRow dr)
{
FangYar.Model.TBL.TBL_SYS_AREA_Model model = new Model.TBL.TBL_SYS_AREA_Model();
if (!DBNull.Value.Equals(dr["ID"]))
model.ID = dr["ID"].ToString();
if (!DBNull.Value.Equals(dr["PID"]))
model.PID = dr["PID"].ToString();
if (!DBNull.Value.Equals(dr["AREA_CODE"]))
model.AREA_CODE = dr["AREA_CODE"].ToString();
if (!DBNull.Value.Equals(dr["AREA_NAME"]))
model.AREA_NAME = dr["AREA_NAME"].ToString();
if (!DBNull.Value.Equals(dr["AREA_LEVEL"]))
model.AREA_LEVEL = dr["AREA_LEVEL"].ToString();
if (!DBNull.Value.Equals(dr["AREA_EXTS"]))
model.AREA_EXTS = dr["AREA_EXTS"].ToString();
return model;
}
///
/// 把DataTable行转成实体类List集合
///
private List DataTableToList(DataTable dt)
{
List modellist = new List();
if (dt.Rows.Count > 0)
{
foreach (DataRow myRow in dt.Rows)
{
modellist.Add(DataRowToModel(myRow));
}
}
return modellist;
}
#endregion
#region 基本方法
///
/// 获取记录数
///
public int Count(string strwhere)
{
string sql = "select count(1) from TBL_SYS_AREA ";
if (strwhere != null && strwhere != "")
{
sql += " where " + strwhere;
}
try
{
return FangYar.Common.MySqlHelper.GetCount(sql);
}
catch
{
return 0;
}
}
///
/// 根据AreaCode获取实体对象
///
public Model.TBL.TBL_SYS_AREA_Model GetModelByID(string AreaCode)
{
Model.TBL.TBL_SYS_AREA_Model model = null;
string sql = "select * from TBL_SYS_AREA where AREA_CODE=@AreaCode";
MySqlParameter[] paras ={
new MySqlParameter("@AreaCode",MySqlDbType.VarChar,36)
};
paras[0].Value = AreaCode;
DataTable dt = FangYar.Common.MySqlHelper.QueryTable(sql, paras);
if (dt.Rows.Count > 0)
{
model = new Model.TBL.TBL_SYS_AREA_Model();
DataRowToModel(model, dt.Rows[0]);
return model;
}
else
{
return null;
}
}
///
/// 根据区域码获取实体类对象
///
public Model.TBL.TBL_SYS_AREA_Model GetModelByAreaCode(string AreaCode)
{
Model.TBL.TBL_SYS_AREA_Model model = null;
string sql = "select * from TBL_SYS_AREA where AREA_CODE=@AREA_CODE";
MySqlParameter[] paras ={
new MySqlParameter("@AREA_CODE",MySqlDbType.VarChar,50)
};
paras[0].Value = AreaCode;
DataTable dt = FangYar.Common.MySqlHelper.QueryTable(sql, paras);
if (dt.Rows.Count > 0)
{
model = new Model.TBL.TBL_SYS_AREA_Model();
DataRowToModel(model, dt.Rows[0]);
return model;
}
else
{
return null;
}
}
///
/// 添加
///
public bool Add(Model.TBL.TBL_SYS_AREA_Model model)
{
StringBuilder strsql = new StringBuilder();
strsql.Append("insert into TBL_SYS_AREA (PID,AREA_CODE,AREA_NAME,AREA_LEVEL,AREA_EXTS)");
strsql.Append("values");
strsql.Append("(@PID,@AREA_CODE,@AREA_NAME,@AREA_LEVEL,@AREA_EXTS)");
MySqlParameter[] paras ={
new MySqlParameter("@PID",MySqlDbType.VarChar,36),
new MySqlParameter("@AREA_CODE",MySqlDbType.VarChar,50),
new MySqlParameter("@AREA_NAME",MySqlDbType.VarChar,50),
new MySqlParameter("@AREA_LEVEL",MySqlDbType.VarChar,1),
new MySqlParameter("@AREA_EXTS",MySqlDbType.VarChar,500)
};
paras[0].Value = model.PID;
paras[1].Value = model.AREA_CODE;
paras[2].Value = model.AREA_NAME;
paras[3].Value = model.AREA_LEVEL;
paras[4].Value = model.AREA_EXTS;
int i = FangYar.Common.MySqlHelper.ExecuteSql(strsql.ToString(), paras);
if (i > 0)
{
return true;
}
else
{
return false;
}
}
///
///修改
///
public bool Edit(Model.TBL.TBL_SYS_AREA_Model model)
{
StringBuilder strsql = new StringBuilder();
strsql.Append("update TBL_SYS_AREA set ");
strsql.Append("PID=@PID,");
strsql.Append("AREA_CODE=@AREA_CODE,");
strsql.Append("AREA_NAME=@AREA_NAME,");
strsql.Append("AREA_LEVEL=@AREA_LEVEL,");
strsql.Append("AREA_EXTS=@AREA_EXTS ");
strsql.Append(" where ID=@ID");
MySqlParameter[] paras ={
new MySqlParameter("@PID",model.PID),
new MySqlParameter("@AREA_CODE",model.AREA_CODE),
new MySqlParameter("@AREA_NAME",model.AREA_NAME),
new MySqlParameter("@AREA_LEVEL",model.AREA_LEVEL),
new MySqlParameter("@AREA_EXTS",model.AREA_EXTS),
new MySqlParameter("@ID",model.ID)
};
int i = FangYar.Common.MySqlHelper.ExecuteSql(strsql.ToString(), paras);
if (i > 0) { return true; }
else { return false; }
}
///
/// 删除
///
public bool Delete(string IDList)
{
string sql = "delete from TBL_SYS_AREA where ID in('" + IDList + "')";
try
{
FangYar.Common.MySqlHelper.ExecuteSql(sql);
return true;
}
catch
{
return false;
}
}
#endregion
#region 分页
///
/// 分页无排序
///
/// 页面索引
/// 页面大小
/// 查询条件
///
public string QueryJsonList(int PageIndex, int PageSize, string strwhere)
{
return FangYar.Common.JsonHelper.ToJson(QueryPage(PageIndex, PageSize, strwhere));
}
///
/// 分页无排序
///
/// 页面索引
/// 页面大小
/// 查询条件
///
public string QueryJsonList(int PageIndex, int PageSize, string strwhere, string order)
{
return FangYar.Common.JsonHelper.ToJson(QueryPage(PageIndex, PageSize, strwhere, order));
}
///
/// 分页无排序
///
/// 页面索引
/// 页面大小
/// 查询条件
///
public List QueryList(int PageIndex, int PageSize, string strwhere)
{
return DataTableToList(QueryPage(PageIndex, PageSize, strwhere));
}
///
/// 分页无排序
///
/// 页面索引
/// 页面大小
/// 查询条件
///
public List QueryList(int PageIndex, int PageSize, string strwhere, string order)
{
return DataTableToList(QueryPage(PageIndex, PageSize, strwhere, order));
}
///
/// 分页无排序
///
/// 页面索引
/// 页面大小
/// 查询条件
///
public DataTable QueryPage(int PageIndex, int PageSize, string strwhere)
{
return FangYar.Common.MySqlHelper.QueryPage(PageIndex, PageSize, "TBL_SYS_AREA", strwhere);
}
///
/// 分页无排序
///
/// 页面索引
/// 页面大小
/// 查询条件
/// 排序
///
public DataTable QueryPage(int PageIndex, int PageSize, string strwhere, string order)
{
return FangYar.Common.MySqlHelper.QueryPage(PageIndex, PageSize, "TBL_SYS_AREA", strwhere, order);
}
///
/// 存储过程分页
///
/// 页面索引
/// 页面大小
/// 查询条件
/// 排序
///
public void QueryProc(int PageIndex, int PageSize, string strwhere, string order)
{
int totalcount = 0;
FangYar.Common.SqlPagerHelperOra.Select(PageSize, PageIndex, out totalcount, "TBL_SYS_AREA", "*", null, null, null);
}
#endregion
#region 扩展业务方法
///
/// 根据区域码获取所有父级区域码以及区域名称
///
public FangYar.Model.TBL.TBL_SYS_AREA_PID_Model GetPIDS(string code, FangYar.Model.TBL.TBL_SYS_AREA_PID_Model area_s)
{
string sql = "select AREA_CODE ,AREA_NAME ,PID from TBL_SYS_AREA where AREA_CODE = '" + code + "'";
//父级区域Model
DataTable dt = FangYar.Common.MySqlHelper.QueryTable(sql);
if (dt != null && dt.Rows.Count > 0)
{
if (area_s.CODE_S != null)
{
area_s.CODE_S = area_s.CODE_S + ",";
area_s.NAME_S = area_s.NAME_S + ",";
}
area_s.CODE_S = area_s.CODE_S + dt.Rows[0]["AREA_CODE"].ToString();
area_s.NAME_S = area_s.NAME_S + dt.Rows[0]["AREA_NAME"].ToString();
GetPIDS(dt.Rows[0]["PID"].ToString(), area_s);
}
string[] code_ids = area_s.CODE_S.Split(',');
string[] code_names = area_s.NAME_S.Split(',');
FangYar.Model.TBL.TBL_SYS_AREA_PID_Model area_s2 = new FangYar.Model.TBL.TBL_SYS_AREA_PID_Model();
for (int i = code_ids.Length-1; i > -1;i-- )
{
if (area_s2.CODE_S != null)
{
area_s2.CODE_S = area_s2.CODE_S + ",";
area_s2.NAME_S = area_s2.NAME_S + ",";
}
area_s2.CODE_S = area_s2.CODE_S + code_ids[i];
area_s2.NAME_S = area_s2.NAME_S + code_names[i];
}
return area_s2;
}
#endregion
}
}