using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CY.IDAL;
using System.Data.SqlClient;
using System.Data;
using CY.Model;
namespace CY.SQLDAL
{
public class Sys_CitySiteDAL : ISys_CitySiteDAL
{
private Database _dataBase = null;
#region 常量
///
/// 查询目标
///
const string SELECTTARGET = " t.* ";
///
/// 查询来源
///
const string FROMSOUCEBEFORE = " ( SELECT a.*,b.Name AS Province,c.Name AS City FROM dbo.Sys_CitySite AS a LEFT JOIN dbo.Sys_CitySite AS b ON a.ProvinceId = b.Keyid LEFT JOIN dbo.Sys_CitySite AS c ON a.CityId = c.Keyid ";
const string FROMSOUCEEND = ") as t ";
///
/// 分页默认排序字段
///
const string ORDERBY = " t.ProvinceId ASC,t.CityId ASC ";
#endregion
public Sys_CitySiteDAL()
{
_dataBase = new Database();
}
///
/// 新增
///
///
///
public bool InserModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.Sys_CitySite trueModel = model as Model.Sys_CitySite;
if (trueModel == null)
{
return false;
}
IList sqlParms = new List()
{
new SqlParameter("@Name",trueModel.Name),
new SqlParameter("@ProvinceId",trueModel.ProvinceId),
new SqlParameter("@CityId",trueModel.CityId),
new SqlParameter("@CityLevel",trueModel.CityLevel),
new SqlParameter("@IsDisplay",trueModel.IsDisplay),
new SqlParameter("@Operator",trueModel.Operator),
new SqlParameter("@LastUpdateTime",trueModel.LastUpdateTime),
new SqlParameter("@OrderNum",trueModel.OrderNum)
};
try
{
_dataBase.Query("dbo.sp_Sys_CitySite_Insert", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 修改
///
///
///
public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.Sys_CitySite trueModel = model as Model.Sys_CitySite;
if (trueModel == null)
{
return false;
}
IList sqlParms = new List()
{
new SqlParameter("@Keyid",trueModel.Keyid),
new SqlParameter("@Name",trueModel.Name),
new SqlParameter("@ProvinceId",trueModel.ProvinceId),
new SqlParameter("@CityId",trueModel.CityId),
new SqlParameter("@CityLevel",trueModel.CityLevel),
new SqlParameter("@IsDisplay",trueModel.IsDisplay),
new SqlParameter("@Operator",trueModel.Operator),
new SqlParameter("@LastUpdateTime",trueModel.LastUpdateTime),
new SqlParameter("@OrderNum",trueModel.OrderNum)
};
try
{
_dataBase.Query("sp_Sys_CitySite_Update", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 删除
///
///
///
public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.Sys_CitySite trueModel = model as Model.Sys_CitySite;
if (trueModel == null)
{
return false;
}
IList sqlParms = new List()
{
new SqlParameter("@Keyid",trueModel.Keyid)
};
try
{
_dataBase.Query("sp_Sys_CitySite_DeleteRow", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 分页查询
///
///
///
///
public IEnumerable SelectModelPage(Infrastructure.Query.Query query, Infrastructure.Query.Pagination pagination)
{
try
{
return _dataBase.SelectModelPage(pagination, "a.*,b.Name AS Province,c.Name AS City", " dbo.Sys_CitySite AS a LEFT JOIN dbo.Sys_CitySite AS b ON a.ProvinceId = b.Keyid LEFT JOIN dbo.Sys_CitySite AS c ON a.CityId = c.Keyid ", " a.Keyid ", " Keyid ASC ");
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 全部查询
///
///
///
public IEnumerable SelectAllModel(Infrastructure.Query.Query query)
{
return _dataBase.SelectModel(" * ", " Sys_CitySite ") as IList;//执行查询
}
///
/// 查询下级全部城市
///
/// 省id
/// 市id
/// 城市级别
///
public IEnumerable SelectAllNextModel(int? ProvinceId, int? CityId, int? CityLevel)
{
return _dataBase.SelectModel(" * ", " Sys_CitySite ", string.Format(" ProvinceId='{0}' and CityId='{1}' and CityLevel='{2}' and IsDisplay ='True' order by Name ASC ", ProvinceId, CityId, CityLevel)) as IList;//执行查询
}
///
/// 查询下级可推广全部城市
///
/// 省id
/// 市id
/// 城市级别
///
public IEnumerable SelectProxyNextModel(int? ProvinceId, int? CityId, int? CityLevel)
{
return _dataBase.SelectModel(" * ", " Sys_CitySite ", string.Format(" ProvinceId='{0}' and CityId='{1}' and CityLevel='{2}' and IsDisplay ='True' and Keyid NOT IN (SELECT ProxyLevel FROM dbo.EC_ProxyMember) order by Name ASC ", ProvinceId, CityId, CityLevel)) as IList;//执行查询
}
///
/// 获取员工管理省
///
///
///
public IEnumerable SelectStaffManageProvinceList(Guid MemberId)
{
return _dataBase.SelectModel(" * ", " Sys_CitySite ", string.Format(" IsDisplay='True' AND CAST(Keyid AS VARCHAR(4)) IN (SELECT value FROM dbo.SplitString(CAST((SELECT ManageProvince FROM dbo.OA_Staff WHERE MemberId='{0}') AS VARCHAR(MAX)),',',1)) order by Name ASC ", MemberId)) as IList;//执行查询
}
///
/// 获取员工管理市
///
///
///
///
public IEnumerable SelectStaffManageCityList(int? ProvinceId, Guid MemberId)
{
return _dataBase.SelectModel(" * ", " Sys_CitySite ", string.Format(" ProvinceId='{0}' AND IsDisplay='True' AND CAST(Keyid AS VARCHAR(4)) IN (SELECT value FROM dbo.SplitString(CAST((SELECT ManageCity FROM dbo.OA_Staff WHERE MemberId='{1}') AS VARCHAR(MAX)),',',1)) order by OrderNum ASC ", ProvinceId, MemberId)) as IList;//执行查询
}
///
/// 获取员工管理区
///
///
///
///
///
public IEnumerable SelectStaffManageCountryList(int? ProvinceId, int? CityId, Guid MemberId)
{
return _dataBase.SelectModel(" * ", " Sys_CitySite ", string.Format(" ProvinceId='{0}' AND CityId='{1}' AND IsDisplay='True' AND ( CAST(Keyid AS VARCHAR(4)) IN (SELECT value FROM dbo.SplitString(CAST((SELECT ManageCountry FROM dbo.OA_Staff WHERE MemberId='{2}') AS VARCHAR(MAX)),',',1)) or CAST(Keyid AS VARCHAR(4)) IN (SELECT value FROM dbo.SplitString(CAST((SELECT ManageCountry1 FROM dbo.OA_Staff WHERE MemberId='{2}') AS VARCHAR(MAX)),',',1))) order by OrderNum ASC ", ProvinceId, CityId, MemberId)) as IList;//执行查询
}
///
/// 根据名称获得城市
///
/// 名称
///
public Model.Sys_CitySite SelectModelByName(string Name)
{
if (string.IsNullOrEmpty(Name) || Name == "请选择")
return null;//错误数据返会空
IList result = _dataBase.SelectModel("*", "Sys_CitySite", string.Format(" Name='{0}' ", Name)) as IList;//执行查询
return (null == result || result.Count == 0) ? null : result[0];//返回结果
}
///
/// 根据Keyid获得城市
///
/// Keyid
///
public Model.Sys_CitySite SelectModelByKeyid(int Keyid)
{
if (Keyid <= 0)
return null;//错误数据返会空
IList result = _dataBase.SelectModel("*", "Sys_CitySite", string.Format(" Keyid='{0}' ", Keyid)) as IList;//执行查询
return (null == result || result.Count == 0) ? null : result[0];//返回结果
}
}
}