using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SuperMap.RealEstate.ServiceModel;
using SuperMap.RealEstate.CoreFrameWork.Dictionary.Business;
using HWSB = SuperMap.RealEstate.HighWay.Storage.Business;
using MSPB = SuperMap.RealEstate.MobileServicePlatform.Business;
using Newtonsoft.Json.Linq;
using HZQR.Common;
namespace ServerPartTransmission
{
///
/// 服务区相关类
///
public class Serverpart
{
#region WCF服务访问方式
#region 方法 -> 获取服务区门店列表
///
/// 根据商户ID 或者 省份编号+门店ID获取服务区门店列表
///
/// 事务
/// 商户Id
/// 省份编码
/// 服务区门店Id
///
public static DataTable GetServerpartShopList(Transaction transaction, int? sellerId = null, string provinceCode = "", int? serverPartId = null)
{
List list = new List();
StringBuilder sqlWhere = new StringBuilder();
sqlWhere.Append("WHERE 1=1");
if (!string.IsNullOrEmpty(provinceCode) && serverPartId != null)
{
sqlWhere.AppendFormat(" AND PROVINCE_CODE = '{0}'", provinceCode);
sqlWhere.AppendFormat(" AND SERVERPART_ID = {0}", serverPartId);
}
if (sellerId != null)
{
sqlWhere.AppendFormat(" AND SELLER_ID = {0}", sellerId);
}
string sql = string.Format(@"
SELECT
SERVERPARTSHOP_ID,SHOPCODE,SHOPNAME,SERVERPART_ID,SHOPDIRECTION
FROM
MOBILESERVICE_PLATFORM.T_SERVERPARTSHOP {0}", sqlWhere);
DataTable dt = new MSPB.SERVERPARTSHOP(transaction).ExecuteDataTable(sql);
return dt;
}
#endregion
#region 方法 -> 获取服务关联业主信息
///
/// 获取所有服务区关联业主信息
///
/// 事务
///
public static DataTable ServerpartOwnerList(Transaction transaction)
{
string sql = string.Format(@"
SELECT
A.PROVINCE_CODE,A.SERVERPART_ID,A.OWNERUNIT_ID,A.OWNERUNIT_NAME,B.OWNERUNIT_PID
FROM
MOBILESERVICE_PLATFORM.T_OWNERSERVERPART A,T_OWNERUNIT B
WHERE
A.OWNERUNIT_ID = B.OWNERUNIT_ID AND B.OWNERUNIT_NATURE = 1000");
DataTable dt = new MSPB.OWNERSERVERPART(transaction).ExecuteDataTable(sql);
return dt;
}
#endregion
#region 方法 -> 获取服务区列表
///
/// 获取服务区列表
///
/// 事务
/// 地图类型(默认腾讯地图)
/// 统计类型,可为空(区分服务区、测试服务区、企业部门)
/// 省份编码,可为空(仅查询某个省的服务区)
///
public static DataTable ServerpartList(Transaction transaction, int mapType = 1000,
string statisticsType = "", int? provinceCode = null)
{
string sqlWhere = "AND A.SERVERPARTMAP_TYPE = " + mapType;
if (!string.IsNullOrEmpty(statisticsType))
{
sqlWhere += "AND B.STATISTICS_TYPE IN (" + statisticsType + ")";
}
if (provinceCode != null)
{
sqlWhere += " AND B.PROVINCE_CODE = " + provinceCode;
}
//查询服务区sql语句
string sql = string.Format(@"
SELECT
A.PROVINCE_CODE,A.SERVERPARTMAP_X,A.SERVERPARTMAP_Y,A.SERVERPART_ID,
B.SERVERPART_CODE,B.SERVERPART_INDEX,B.SERVERPART_TEL,B.SERVERPART_NAME
FROM
MOBILESERVICE_PLATFORM.T_SERVERPARTMAP A,MOBILESERVICE_PLATFORM.T_SERVERPART B
WHERE
A.SERVERPART_ID = B.SERVERPART_ID AND
A.PROVINCE_CODE = B.PROVINCE_CODE {0}", sqlWhere);
DataTable dt = new MSPB.SERVERPART(transaction).ExecuteDataTable(sql);
return dt;
}
#endregion
#region 方法 -> 获取服务区详细信息
///
/// 获取服务区详细信息
///
/// 事务
/// 省份编码
/// 服务区Id
///
public static Model.ServerpartEx GetServerpartDetail(Transaction transaction, int provinceCode, int serverpartId)
{
//查询服务区详细信息
Model.ServerpartEx ServerpartDetail = null;
string sql = string.Format(@"
SELECT
A.SERVERPART_ID,A.SERVERPART_CODE,A.SERVERPART_NAME,A.SERVERPART_TEL,A.SERVERPART_DESC,
B.BUSINESSTYPE,B.DININGROOMCOUNT,B.DININGBXCOUNT,B.POINTCONTROLCOUNT,
B.TOILETCOUNT,B.HASCHARGINGPILE,B.HASMOTHER,B.HASWATERROOM,B.HASWIFI,
B.HASREPAIRSHOP,B.HASPANTRY,B.HASPILOTLOUNGE,B.HASTHIRDTOILETS,
B.HASMESSAGESEARCH,B.HASCHILD,B.HASSHOWERROOM
FROM
MOBILESERVICE_PLATFORM.T_SERVERPART A,
MOBILESERVICE_PLATFORM.T_SERVERPARTINFO B
WHERE A.SERVERPART_ID = B.SERVERPART_ID AND A.PROVINCE_CODE = B.PROVINCE_CODE AND
A.SERVERPART_ID = {0} AND A.PROVINCE_CODE = {1}", serverpartId, provinceCode);
DataTable dt = new MSPB.SERVERPART(transaction).ExecuteDataTable(sql);
if (dt.Rows.Count > 0)
{
DataRow dr = dt.Rows[0];
ServerpartDetail = new Model.ServerpartEx();
ServerpartDetail.ServerpartId = dr["SERVERPART_ID"].TryParseToInt(); //服务区内码
ServerpartDetail.ServerpartCode = dr["SERVERPART_CODE"].TryParseToString(); //服务区编码
ServerpartDetail.ServerpartTel = dr["SERVERPART_TEL"].TryParseToString(); //服务区联系电话
ServerpartDetail.ServerpartName = dr["SERVERPART_NAME"].TryParseToString(); //服务区名称
ServerpartDetail.ServerpartDesc = dr["SERVERPART_DESC"].TryParseToString(); //服务区描述
ServerpartDetail.BusinessType = dr["BUSINESSTYPE"].TryParseToString(); //经营业态
ServerpartDetail.DiningRoomCount = dr["DININGROOMCOUNT"].TryParseToInt(); //餐厅定位
ServerpartDetail.DiningBxCount = dr["DININGBXCOUNT"].TryParseToInt(); //餐厅包厢
ServerpartDetail.PointControlCount = dr["POINTCONTROLCOUNT"].TryParseToInt(); //停车位
ServerpartDetail.ToiletCount = dr["TOILETCOUNT"].TryParseToInt(); //加油站
ServerpartDetail.HasChargingPile = dr["HASCHARGINGPILE"].TryParseToInt(); //充电桩
ServerpartDetail.HasMother = dr["HASMOTHER"].TryParseToInt(); //母婴室
ServerpartDetail.HasWaterRoom = dr["HASWATERROOM"].TryParseToInt(); //开水间
ServerpartDetail.HasWifi = dr["HASWIFI"].TryParseToInt(); //是否有wifi
ServerpartDetail.HasRepairShop = dr["HASREPAIRSHOP"].TryParseToInt(); //汽修站
ServerpartDetail.HasPantry = dr["HASPANTRY"].TryParseToInt(); //透明厨房
ServerpartDetail.HasPilotLounge = dr["HASPILOTLOUNGE"].TryParseToInt(); //司机之家
ServerpartDetail.HasThirdToilets = dr["HASTHIRDTOILETS"].TryParseToInt(); //卫生间
ServerpartDetail.HasMessageSearch = dr["HASMESSAGESEARCH"].TryParseToInt(); //服务台
ServerpartDetail.HasChild = dr["HASCHILD"].TryParseToInt(); //游乐场
ServerpartDetail.HasShowerRoom = dr["HASSHOWERROOM"].TryParseToInt(); //淋浴房
}
return ServerpartDetail;
}
#endregion
#region 方法 -> 获取会员可以查看的服务区类型
///
/// 根据会员类型查询不同的数据
///
/// 区分会员类型(1000:普通会员;3000:企业会员;9999:测试会员)
/// 小程序APPID
///
public static string GetStatisticsType(int membershipType, string wechatAppAppId)
{
string statisticsType = "1000";//服务区
//企业会员展示企业内部门店
if (membershipType == 3000 && wechatAppAppId == "wxec57324d9d721cea")//高速驿网会员体系
{
statisticsType = "1000,3010";//1000:服务区;3010:企业部门(商业集团)
}
else if (membershipType == 9999)//9999:测试会员
{
if (wechatAppAppId == "wxec57324d9d721cea")//高速驿网会员体系
{
statisticsType = "1000,1002,3010";//1000:服务区;1002:测试服务区;3010:企业部门(商业集团)
}
else
{
//防止测试时下单到商业集团,驿付小程序上不显示商业集团
statisticsType = "1000,1002";//1000:服务区;1002:测试服务区;
}
}
return statisticsType;
}
#endregion
#region 方法 -> 根据服务区ID获取服务区信息
///
/// 根据服务区ID获取服务区信息
///
/// 事务管理器
/// 服务区内码
/// 服务区对象
public static HWSB.SERVERPART GetServerpartByID(Transaction _Transaction, int? ServerpartID)
{
//根据服务区ID查询服务区表
HWSB.SERVERPART _SERVERPART = new HWSB.SERVERPART(_Transaction);
_SERVERPART.SERVERPART_ID = ServerpartID;
_SERVERPART.Select();
return _SERVERPART;
}
#endregion
#region 方法 -> 根据服务区编码获取服务区信息
///
/// 根据服务区内码获取服务区信息
///
/// 事务管理器
/// 服务区编码
/// 服务区对象
public static HWSB.SERVERPART GetServerpartByCode(Transaction _Transaction, string ServerpartCode)
{
//根据服务区编码查询服务区表
HWSB.SERVERPART _SERVERPART = new HWSB.SERVERPART(_Transaction);
_SERVERPART.AddSearchParameter("SERVERPART_CODE", ServerpartCode);
_SERVERPART.Search();
return _SERVERPART;
}
#endregion
#region 方法 -> 根据服务区编码获取服务区门店列表
///
/// 根据服务区内码获取服务区信息
///
/// 事务管理器
/// 服务区编码
/// 服务区对象
public static DataTable GetServerpartShopByCode(Transaction _Transaction, string ServerpartCode)
{
DataTable dtServerpartShop = new HWSB.SERVERPARTSHOP(_Transaction).ExecuteDataTable(
@"SELECT A.SERVERPART_ID,A.SERVERPART_CODE,A.SERVERPART_NAME,B.SERVERPARTSHOP_ID,B.SHOPCODE,B.SHOPNAME
FROM HIGHWAY_STORAGE.T_SERVERPART A,HIGHWAY_STORAGE.T_SERVERPARTSHOP B
WHERE A.SERVERPART_ID = B.SERVERPART_ID AND A.SERVERPART_CODE IN (" + ServerpartCode + ")");
return dtServerpartShop;
}
#endregion
#region 方法 -> 获取统一定价服务区
///
/// 获取统一定价服务区
///
/// 事务管理器
/// 省份内码
/// 统一定价服务区对象
public static HWSB.SERVERPART GetUniformServerpart(Transaction _Transaction, int? ProvinceID)
{
//根据服务区编码查询服务区表
HWSB.SERVERPART _SERVERPART = new HWSB.SERVERPART(_Transaction);
_SERVERPART.AddSearchParameter("PROVINCE_CODE", ProvinceID);
_SERVERPART.AddSearchParameter("STATISTIC_TYPE", 4000); //4000代表统一定价服务区
_SERVERPART.Search();
return _SERVERPART;
}
#endregion
#region 方法 -> 根据枚举内码获取枚举信息
///
/// 根据枚举内码获取枚举信息
///
/// 事务管理器
/// 枚举内码
///
public static FieldEnum GetFieldEnumByID(Transaction _Transaction, int? FieldEnumID)
{
//根据服务区编码查询服务区表
FieldEnum _FieldEnum = new FieldEnum(_Transaction);
_FieldEnum.FieldEnum_ID = FieldEnumID; //4000代表统一定价服务区
_FieldEnum.Select();
return _FieldEnum;
}
#endregion
#region 方法 -> 根据门店内码获取服务区门店信息
///
/// 根据门店内码获取服务区门店信息
///
/// 事务管理器
/// 门店内码
///
public static HWSB.SERVERPARTSHOP GetServerpartShopByID(Transaction _Transaction, int? ServerpartShopID)
{
//根据服务区门店ID查询服务区门店表
HWSB.SERVERPARTSHOP _SERVERPARTSHOP = new HWSB.SERVERPARTSHOP(_Transaction);
_SERVERPARTSHOP.SERVERPARTSHOP_ID = ServerpartShopID;
_SERVERPARTSHOP.Select();
return _SERVERPARTSHOP;
}
#endregion
#region 方法 -> 根据门店编码获取服务区门店信息
///
/// 根据门店编码获取服务区门店信息
///
/// 事务管理器
/// 服务区内码
/// 门店编码
///
public static HWSB.SERVERPARTSHOP GetServerpartShopByCode(Transaction _Transaction, int? ServerpartID, string ServerpartShopCode)
{
//根据服务区ID + 门店编码查询服务区门店表
HWSB.SERVERPARTSHOP _SERVERPARTSHOP = new HWSB.SERVERPARTSHOP(_Transaction);
_SERVERPARTSHOP.AddSearchParameter("SERVERPART_ID", ServerpartID);
_SERVERPARTSHOP.AddSearchParameter("SHOPCODE", ServerpartShopCode);
_SERVERPARTSHOP.Search();
return _SERVERPARTSHOP;
}
#endregion
#endregion
}
}