Commit bdf16792 authored by 吴春's avatar 吴春

11

parent 5316b365
......@@ -180,5 +180,15 @@ namespace REBORN.Model.Entity.Dmc
/// 时间字符串
/// </summary>
public string TimeStr { get; set; }
/// <summary>
/// 纬度
/// </summary>
public float Latitude { get; set; }
/// <summary>
/// 经度
/// </summary>
public float Longitude { get; set; }
}
}
......@@ -181,5 +181,15 @@ namespace REBORN.Model.Entity.Dmc
/// 酒店预定类型(1-自定,2-PIC预定)
/// </summary>
public int HotelBookType { get; set; }
/// <summary>
/// 纬度
/// </summary>
public float Latitude { get; set; }
/// <summary>
/// 经度
/// </summary>
public float Longitude { get; set; }
}
}
\ No newline at end of file
......@@ -83,5 +83,35 @@ namespace REBORN.Model.Entity.Dmc
/// 到达城市名
/// </summary>
public string ArrivalCityName { get; set; }
/// <summary>
/// 出发城市纬度
/// </summary>
public float SLatitude { get; set; }
/// <summary>
/// 出发城市经度
/// </summary>
public float SLongitude { get; set; }
/// <summary>
/// 第三方资料库出发城市国家Id
/// </summary>
public string SCountryId { get; set; }
/// <summary>
/// 到达城市纬度
/// </summary>
public float ALatitude { get; set; }
/// <summary>
/// 到达城市经度
/// </summary>
public float ALongitude { get; set; }
/// <summary>
/// 第三方资料库到达城市国家Id
/// </summary>
public string ACountryId { get; set; }
}
}
......@@ -39,5 +39,20 @@ namespace REBORN.Model.Entity.Video
/// 来源(lushu)
/// </summary>
public string SourceType { get; set; }
/// <summary>
/// 纬度
/// </summary>
public float Latitude { get; set; }
/// <summary>
/// 经度
/// </summary>
public float Longitude { get; set; }
/// <summary>
/// 父级Id
/// </summary>
public string ParentId { get; set; }
}
}
......@@ -31,6 +31,9 @@ namespace REBORN.Model.Entity.Video
/// </summary>
public string PoiEnName { get; set; }
/// <summary>
/// 类型(1-餐饮,2-酒店/住宿,3-交通(机场/火车站/汽车站等),4-景点/游览,5-购物,6-娱乐)
/// </summary>
public int SourceType { get; set; }
/// <summary>
......
using REBORN.Model.Entity.Video;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace REBORN.Model.Extend.Video
{
public class RB_Spider_Destination_Extend : RB_Spider_Destination
{
/// <summary>
/// 父级名称
/// </summary>
public string ParentDName { get; set; }
/// <summary>
/// 关键词
/// </summary>
public string KeyWords { get; set; }
}
}
using REBORN.Model.Entity.Video;
using System.Collections.Generic;
namespace REBORN.Model.Extend.Video
{
public class RB_Spider_Poi_Extend : RB_Spider_Poi
{
/// <summary>
/// 关键字
/// </summary>
public string KeyWords { get; set; }
/// <summary>
/// 国家Id
/// </summary>
public List<string> CountryIdList { get; set; }
}
}
......@@ -1852,7 +1852,8 @@ namespace REBORN.Module.B2BModule
}
else
{
item.AirFlightList = airticketFlightRepository.GetAirticketFlightListRepository(new RB_Airticket_Flight_Extend() { AirLineTicketId = (item.AirTicketId ?? 0),OrderAirTicketIds=orderModel?.AirTicketIds??"" }, tcid: item.TCID, IsSelectUnion: 0, IsMainTravel: 1, deleteAirticketIds: item.DeleteAirticketIds, FlightState: item.OutNotice == 1 ? 1 : 2).ToList();
//item.AirFlightList = airticketFlightRepository.GetAirticketFlightListRepository(new RB_Airticket_Flight_Extend() { AirLineTicketId = (item.AirTicketId ?? 0),OrderAirTicketIds=orderModel?.AirTicketIds??"" }, tcid: item.TCID, IsSelectUnion: 0, IsMainTravel: 1, deleteAirticketIds: item.DeleteAirticketIds, FlightState: item.OutNotice == 1 ? 1 : 2).ToList();
item.AirFlightList= new AirticketFlightModule().GetTravelPriceFlightListModule(new RB_Airticket_Flight_Extend() { qTCIDs = item.TCID.ToString() });
}
}
else
......@@ -2043,10 +2044,7 @@ namespace REBORN.Module.B2BModule
//预览
ConfigID = configId
};
if (isB2C == 1)
{
// travelPriceWhere.ConfigID = 0;
}
List<RB_Travel_Price_Extend> priceTempList = priceRepository.B2BGetList(travelPriceWhere, isApp, isB2C);
List<RB_Travel_Price_Extend> priceList = new List<RB_Travel_Price_Extend>();
//防止选中的团期被去重
......
......@@ -35,6 +35,11 @@ namespace REBORN.Module.DMCModule
/// </summary>
private readonly RB_Spider_PoiRepository spider_PoiRepository = new RB_Spider_PoiRepository();
/// <summary>
/// POI地区表
/// </summary>
private readonly RB_Spider_DestinationRepository spider_DestinationRepository = new RB_Spider_DestinationRepository();
/// <summary>
/// 适用于下拉列表
/// </summary>
......@@ -65,6 +70,16 @@ namespace REBORN.Module.DMCModule
return spider_PoiRepository.GetPoiListRepository(query);
}
/// <summary>
/// 获取POI国家、城市
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Spider_Destination_Extend> GetSpiderDestinationModule(RB_Spider_Destination_Extend query)
{
return spider_DestinationRepository.GetSpiderDestinationListRepository(query);
}
/// <summary>
/// 获取景点分页列表(适用于PPT行程)
/// </summary>
......
......@@ -3826,19 +3826,27 @@ namespace REBORN.Module.DMCModule
if (item.SubTraffic != null && item.SubTraffic.Any())
{
foreach (var traffic in item.SubTraffic)
{
if (string.IsNullOrWhiteSpace(traffic.StartCityName))
{
var startCity = destionationList?.FirstOrDefault(qitem => qitem.ID == traffic.StartCityId);
if (string.IsNullOrWhiteSpace(traffic.StartCityName) && !string.IsNullOrEmpty(startCity?.Name ?? ""))
{
traffic.StartCityName = startCity?.Name;
traffic.StartCityPoint = new string[2] { startCity?.Lng ?? "", startCity?.Lat ?? "" };
}
if (string.IsNullOrWhiteSpace(traffic.ArrivalCityName))
traffic.StartCityPoint = new string[2]
{
traffic.SLongitude != 0 ? traffic.SLongitude.ToString() : (startCity?.Lng ?? ""),
traffic.SLatitude!=0?traffic.SLatitude.ToString(): (startCity?.Lat ?? "")
};
var arrivalCity = destionationList?.FirstOrDefault(qitem => qitem.ID == traffic.ArrivalCityId);
if (string.IsNullOrWhiteSpace(traffic.ArrivalCityName) && !string.IsNullOrEmpty(arrivalCity?.Name ?? ""))
{
traffic.ArrivalCityName = arrivalCity?.Name;
traffic.ArrivalCityPoint = new string[2] { arrivalCity?.Lng ?? "", arrivalCity?.Lat ?? "" };
}
traffic.ArrivalCityPoint = new string[2]
{
traffic.SLongitude != 0 ? traffic.ALongitude.ToString() : (arrivalCity?.Lng ?? ""),
traffic.SLatitude!=0?traffic.ALatitude.ToString(): (arrivalCity?.Lat ?? "")
};
}
}
if (!string.IsNullOrWhiteSpace(item.Introduce))
......@@ -3886,9 +3894,13 @@ namespace REBORN.Module.DMCModule
item.ScenicJson = new ScenicJson() { x = 0, y = 0 };
}
List<FileData> imgList = new List<FileData>();
foreach (var img in item.NewImaArray)
foreach (var img in item.ImaArray)
{
string imgUrl = img.Url;
if (Common.Config.IsOnline && !string.IsNullOrEmpty(imgUrl))
{
string imgUrl = !string.IsNullOrEmpty(img.Url) ? img.Url.Replace("http://", "https://") : "";
imgUrl = img.Url.Replace("http://", "https://");
}
imgList.Add(new FileData()
{
FileType = img.FileType,
......@@ -3897,6 +3909,7 @@ namespace REBORN.Module.DMCModule
Url = imgUrl
});
}
//item.CouponsTicketName HK 去掉
childItems.Add(new ChildItem()
{
......@@ -3913,7 +3926,7 @@ namespace REBORN.Module.DMCModule
DescriptionText = StringHelper.AppHtmlFilterr(item.Description),
ImaArray = imgList,
item.Url,
PointArray = new string[2] { scenic?.Lng ?? "", scenic?.Lat ?? "" },
PointArray = new string[2] { item?.Lng ?? (scenic?.Lng ?? ""), item?.Lat ?? (scenic?.Lat ?? "") },
item.TrafficContent,
item.TrafficImage,
item.TrafficType,
......@@ -3985,31 +3998,28 @@ namespace REBORN.Module.DMCModule
var HotelList = extModel.HotelList.Where(qitem => qitem.DayNum == i).OrderBy(t => t.Rank);
foreach (var item in HotelList)
{
if ((item?.HotelId ?? 0) > 0)
{
if (item.HotelId.HasValue && item.HotelId.Value > 0)
{
if (item != null && !(string.IsNullOrWhiteSpace(item.HotelName) || string.IsNullOrWhiteSpace(item.Lng) || string.IsNullOrWhiteSpace(item.Lat)))
{
extModel.TravelLngLat.Add(new { name = item.HotelName, lng = item.Lng, lat = item.Lat, type = 2 });
}
}
var childItem = new ChildItem()
{
Type = 3,
Rank = Convert.ToInt32(item.Rank)
};
string StarStr = "";//几星級
if ((item?.HotelId ?? 0) > 0)
{
if (item.Star != null && item.Star > 0)
{
HotelStarEnum hotelStart = (HotelStarEnum)Convert.ToInt32(item.Star);
StarStr = Common.Plugin.EnumHelper.GetEnumName(hotelStart);
}
}
if (item != null && !(string.IsNullOrWhiteSpace(item.HotelName) || string.IsNullOrWhiteSpace(item.Lng) || string.IsNullOrWhiteSpace(item.Lat)))
{
extModel.TravelLngLat.Add(new { name = item.HotelName, lng = item.Lng, lat = item.Lat, type = 2 });
}
childItem.childItem = new
{
item.TimeType,
item.HotelName,
HotelName= !string.IsNullOrEmpty(item.HotelName)?item.HotelName:"暂无酒店安排",
NewHotelName = "",
item.HotelProductName,
item.UseDinnerType,
......@@ -4034,7 +4044,6 @@ namespace REBORN.Module.DMCModule
childItems.Add(childItem);
}
}
}
if (extModel.DinnerList != null && extModel.DinnerList.Count > 0)
{
......
......@@ -99,8 +99,8 @@ WHERE 1=1
public bool BatchReplaceJourneyDinnerRepository(List<RB_Journey_Dinner_Extend> list, IDbTransaction transaction = null)
{
StringBuilder builder = new StringBuilder();
builder.Append(" REPLACE INTO RB_Journey_Dinner (ID,ConfigId,JourneyDate,DayNum,TimeType,DinnerId,MealId,UseTimeHour,UseTimeMinutes,Description,CityId,DinnerImg,Status,Rank,UseDinnerType,DinnerName,QCity,BreakfastUseType,CityName,MD5Sign,TimeStr) ");
builder.Append(" VALUES(@ID,@ConfigId,@JourneyDate,@DayNum,@TimeType,@DinnerId,@MealId,@UseTimeHour,@UseTimeMinutes,@Description,@CityId,@DinnerImg,@Status,@Rank,@UseDinnerType,@DinnerName,@QCity,@BreakfastUseType,@CityName,@MD5Sign,@TimeStr); ");
builder.Append(" REPLACE INTO RB_Journey_Dinner (ID,ConfigId,JourneyDate,DayNum,TimeType,DinnerId,MealId,UseTimeHour,UseTimeMinutes,Description,CityId,DinnerImg,Status,Rank,UseDinnerType,DinnerName,QCity,BreakfastUseType,CityName,MD5Sign,TimeStr,Latitude,Longitude) ");
builder.Append(" VALUES(@ID,@ConfigId,@JourneyDate,@DayNum,@TimeType,@DinnerId,@MealId,@UseTimeHour,@UseTimeMinutes,@Description,@CityId,@DinnerImg,@Status,@Rank,@UseDinnerType,@DinnerName,@QCity,@BreakfastUseType,@CityName,@MD5Sign,@TimeStr,@Latitude,@Longitude); ");
bool flag = Execute(builder.ToString(), list, transaction) > 0;
return flag;
}
......
......@@ -34,11 +34,14 @@ SELECT jh.Id,jh.ConfigId,jh.JourneyDate,jh.DayNum,jh.TimeType,IFNULL(jh.HotelId,
,IFNULL(jh.IsUseDinner,0) AS IsUseDinner,IFNULL(jh.UseDinnerType,0) AS UseDinnerType,IFNULL(jh.Description,'') AS Description
,IFNULL(jh.CityId,0) AS CityId,IFNULL(jh.HotelImg,'') AS HotelImg,jh.Status,jh.rank,IFNULL(HotelProductName,'') AS HotelProductName
,IFNULL(jh.QCity,'') AS QCity,IFNULL(jh.IsSameLevel,0) AS IsSameLevel,IFNULL(jh.HotelType,0) AS HotelType,IFNULL(jh.CityName,'') AS CityName
,IFNULL(jh.MD5Sign,'') AS MD5Sign,IFNULL(jh.TimeStr,'') AS TimeStr,h.Name as HotelName,h.Tel as HotelTel,h.Address as HotelAddress
,h.IsHavearking,h.URL as Url,IFNULL(h.Lat,'') AS Lat,IFNULL(h.Lng,'') AS Lng,h.Descriptions AS HotelNewDescriptions,h.Star,h.FacilityServices
,IFNULL(jh.MD5Sign,'') AS MD5Sign,IFNULL(jh.TimeStr,'') AS TimeStr,h.Tel as HotelTel,h.Address as HotelAddress
,(CASE WHEN jh.HotelId>0 THEN h.Name ELSE jh.HotelName END) as HotelName
,(CASE WHEN jh.HotelId>0 THEN IFNULL(h.Lat,'') ELSE jh.Latitude END) as Lat
,(CASE WHEN jh.HotelId>0 THEN IFNULL(h.Lng,'') ELSE jh.Longitude END) as Lng
,h.IsHavearking,h.URL as Url,h.Descriptions AS HotelNewDescriptions,h.Star,h.FacilityServices
,jh.HotelBookType
FROM {0} jh left join {1} h ON jh.{2}=h.{3}
WHERE 1=1 ", TableName, TableHotel, nameof(Model.Entity.Dmc.RB_Journey_Hotel.HotelId), nameof(Model.Entity.RB_Hotel.ID));
FROM RB_Journey_Hotel jh left join RB_Hotel h ON jh.HotelId=h.ID
WHERE 1=1 ");
sb.AppendFormat(" AND jh.{0}={1} ", nameof(Model.Extend.Dmc.RB_Journey_Hotel_Extend.Status), (int)Common.Enum.DateStateEnum.Normal);
if (where != null)
{
......@@ -137,8 +140,8 @@ WHERE 1=1 " );
public bool BatchReplaceJourneyHotelRepository(List<Model.Extend.Dmc.RB_Journey_Hotel_Extend> list, IDbTransaction transaction = null)
{
StringBuilder builder = new StringBuilder();
builder.Append(" REPLACE INTO rb_journey_hotel (ID,ConfigId,JourneyDate,DayNum,TimeType,HotelId,HotelProductId,IsUseDinner,UseDinnerType,Description,CityId,HotelImg,Status,Rank,HotelName,HotelProductName,QCity,IsSameLevel,HotelType,CityName,MD5Sign,HotelProvideType,TimeStr,HotelBookType) ");
builder.Append(" VALUES(@ID,@ConfigId,@JourneyDate,@DayNum,@TimeType,@HotelId,@HotelProductId,@IsUseDinner,@UseDinnerType,@Description,@CityId,@HotelImg,@Status,@Rank,@HotelName,@HotelProductName,@QCity,@IsSameLevel,@HotelType,@CityName,@MD5Sign,@HotelProvideType,@TimeStr,@HotelBookType); ");
builder.Append(" REPLACE INTO rb_journey_hotel (ID,ConfigId,JourneyDate,DayNum,TimeType,HotelId,HotelProductId,IsUseDinner,UseDinnerType,Description,CityId,HotelImg,Status,Rank,HotelName,HotelProductName,QCity,IsSameLevel,HotelType,CityName,MD5Sign,HotelProvideType,TimeStr,HotelBookType,Latitude,Longitude ) ");
builder.Append(" VALUES(@ID,@ConfigId,@JourneyDate,@DayNum,@TimeType,@HotelId,@HotelProductId,@IsUseDinner,@UseDinnerType,@Description,@CityId,@HotelImg,@Status,@Rank,@HotelName,@HotelProductName,@QCity,@IsSameLevel,@HotelType,@CityName,@MD5Sign,@HotelProvideType,@TimeStr,@HotelBookType,@Latitude,@Longitude); ");
bool flag= Execute(builder.ToString(), list, transaction) > 0;
return flag;
......
......@@ -70,8 +70,8 @@ WHERE t.ConfigId IN({0})
public bool BatchInsertTravelSubtrafficRepository(List<Model.Extend.Dmc.RB_Journey_Subtraffic_Extend> list, IDbTransaction transaction = null)
{
StringBuilder builder = new StringBuilder();
builder.Append(" REPLACE INTO RB_Journey_Subtraffic(ID,TrafficId,StartCityId,ArrivalCityId,ArrivalType,`Status`,`StartTime`,EndTime,StartCityName,ArrivalCityName) ");
builder.Append(" VALUES(@ID,@TrafficId,@StartCityId,@ArrivalCityId,@ArrivalType,@Status,@StartTime,@EndTime,@StartCityName,@ArrivalCityName); ");
builder.Append(" REPLACE INTO RB_Journey_Subtraffic(ID,TrafficId,StartCityId,ArrivalCityId,ArrivalType,`Status`,`StartTime`,EndTime,StartCityName,ArrivalCityName,SLatitude,SLongitude,SCountryId,ALatitude,ALongitude,ACountryId) ");
builder.Append(" VALUES(@ID,@TrafficId,@StartCityId,@ArrivalCityId,@ArrivalType,@Status,@StartTime,@EndTime,@StartCityName,@ArrivalCityName,@SLatitude,@SLongitude,@SCountryId,@ALatitude,@ALongitude,@ACountryId); ");
bool flag = Execute(builder.ToString(), list, transaction) > 0;
return flag;
}
......
......@@ -21,22 +21,27 @@ namespace REBORN.Repository.Video
StringBuilder builder = new StringBuilder();
DynamicParameters parameters = new DynamicParameters();
builder.AppendFormat(@"
SELECT DId,DName,DEnName
FROM RB_Spider_Destination
SELECT A.DId,A.DName,A.DEnName,A.Latitude,A.Longitude,IFNULL(A.ParentId,'') AS ParentId,IFNULL(B.DName,'') AS ParentDName
FROM RB_Spider_Destination AS A LEFT JOIN RB_Spider_Destination AS B ON A.ParentId=B.DId
WHERE 1=1
");
if (query != null)
{
if (query.DType > 0)
{
builder.AppendFormat(" AND DType=@DType ");
builder.AppendFormat(" AND A.DType=@DType ");
parameters.Add("@DType", query.DType);
}
if (!string.IsNullOrEmpty(query.SourceType))
{
builder.AppendFormat(" AND SourceType=@SourceType ");
builder.AppendFormat(" AND A.SourceType=@SourceType ");
parameters.Add("@SourceType", query.SourceType);
}
if (!string.IsNullOrEmpty(query.KeyWords))
{
builder.AppendFormat(" AND (A.DName LIKE @KeyWords OR A.DEnName LIKE @KeyWords OR B.DName LIKE @KeyWords OR B.DEnName LIKE @KeyWords) ");
parameters.Add("@KeyWords", "%"+query.KeyWords.Trim()+"%");
}
}
return Get<RB_Spider_Destination_Extend>(builder.ToString(), parameters).ToList();
}
......
......@@ -28,6 +28,11 @@ WHERE 1=1
");
if (query != null)
{
if (query.SourceType > 0)
{
builder.AppendFormat(" AND SourceType=@SourceType ");
parameters.Add("@SourceType", query.SourceType);
}
if (!string.IsNullOrEmpty(query.CountryName))
{
builder.AppendFormat(" AND CountryName=@CountryName ");
......@@ -38,6 +43,18 @@ WHERE 1=1
builder.AppendFormat(" AND PoiName LIKE @PoiName ");
parameters.Add("@PoiName", "%"+query.KeyWords + "%");
}
if (query.CountryIdList != null && query.CountryIdList.Count > 0)
{
var countryList = query.CountryIdList
.Select((id, index) => $"@CountryId{index}")
.ToList();
builder.AppendFormat($" AND CountryId IN ({string.Join(",", countryList)}) ");
for (int i = 0; i < query.CountryIdList.Count; i++)
{
parameters.Add(countryList[i], query.CountryIdList[i]);
}
}
}
builder.AppendFormat(" LIMIT 100; ");
return Get<RB_Spider_Poi_Extend>(builder.ToString(), parameters).ToList();
......
......@@ -157,6 +157,37 @@ namespace REBORN.Services.DMCService
return ApiResult.Success("", dataList);
}
/// <summary>
/// 获取地区
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public virtual ApiResult GetSpiderDestination(RequestParm request)
{
JObject parm = JObject.Parse(request.msg.ToString());
RB_Spider_Destination_Extend query = new RB_Spider_Destination_Extend()
{
KeyWords = parm.GetStringValue("KeyWords")
};
var dataList = module.GetSpiderDestinationModule(query);
List<object> list = new List<object>();
foreach (var item in dataList)
{
list.Add(new
{
item.DId,
DFullName = (!string.IsNullOrEmpty(item.ParentDName) ? item.ParentDName : "") + item.DName,
item.DName,
item.DEnName,
item.Latitude,
item.Longitude,
item.ParentDName,
item.ParentId,
});
}
return ApiResult.Success(data: list);
}
/// <summary>
/// 获取POI列表
/// </summary>
......@@ -167,9 +198,15 @@ namespace REBORN.Services.DMCService
JObject parm = JObject.Parse(request.msg.ToString());
RB_Spider_Poi_Extend query = new RB_Spider_Poi_Extend()
{
CountryName = parm.GetStringValue("CountryName"),
KeyWords = parm.GetStringValue("KeyWords"),
CountryIdList=new List<string>(),
SourceType=parm.GetInt("SourceType"),
};
string qCountryIdsStr = parm.GetStringValue("qCountryIds");
if (!string.IsNullOrEmpty(qCountryIdsStr))
{
query.CountryIdList = Common.ConvertHelper.ToListString(qCountryIdsStr).Distinct().ToList();
}
var dataList = module.GetPoiListModule(query);
List<object> list = new List<object>();
foreach (var item in dataList)
......
......@@ -234,6 +234,12 @@ namespace REBORN.Services.DMCService
Status = DateStateEnum.Normal,
StartTime = tSubObj.GetStringValue("StartTime"),
EndTime = tSubObj.GetStringValue("EndTime"),
SLatitude = tSubObj.GetFloat("SLatitude"),
SLongitude = tSubObj.GetFloat("SLongitude"),
SCountryId = tSubObj.GetStringValue("SCountryId"),
ALatitude = tSubObj.GetFloat("ALatitude"),
ALongitude = tSubObj.GetFloat("ALongitude"),
ACountryId = tSubObj.GetStringValue("ACountryId")
};
tModel.SubTraffic.Add(subModel);
}
......
......@@ -47,6 +47,11 @@
"fullName": "REBORN.Services.DMCService.TicketCouponsService",
"method": "GetLineScienList"
},
{
"cmd": "ticketcoupons_post_GetSpiderDestination", //获取POI地区
"fullName": "REBORN.Services.DMCService.TicketCouponsService",
"method": "GetSpiderDestination"
},
{
"cmd": "ticketcoupons_post_GetPoiList", //获取POI列表
"fullName": "REBORN.Services.DMCService.TicketCouponsService",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment