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 } }