Browse Source

修改酒店查询接口,新增酒店城市下拉框

wangh 1 year ago
parent
commit
588188bdac

+ 0 - 1
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -3,7 +3,6 @@ using Newtonsoft.Json.Serialization;
 using OASystem.API.OAMethodLibs;
 using OASystem.Domain.Dtos.Groups;
 using OASystem.Domain.Entities.Groups;
-using OASystem.Domain.ViewModels.Group;
 using OASystem.Domain.ViewModels.Groups;
 using OASystem.Infrastructure.Repositories.Groups;
 

+ 39 - 21
OASystem/OASystem.Api/Controllers/ResourceController.cs

@@ -513,33 +513,18 @@ namespace OASystem.API.Controllers
         /// <returns></returns>
         [HttpPost]
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
-        public async Task<IActionResult> QueryHotelData(DtoBase dto)
+        public async Task<IActionResult> QueryHotelData(QueryHotelDataDto dto)
         {
             try
             {
-                if (dto.PortType == 1)
+                Result hotelData = await _hotelDataRep.QueryHotelData(dto);
+                if (hotelData.Code == 0)
                 {
-                    var HotelData = _localGuideDataRep.QueryDto<Res_HotelData, HotelDataView>().ToList();
-                    if (HotelData.Count == 0)
-                    {
-                        return Ok(JsonView(false, "暂无数据!"));
-                    }
-                    HotelData = HotelData.OrderByDescending(s => s.CreateTime).ToList();
-                    return Ok(JsonView(true, "查询成功", HotelData));
-                }
-                else if (dto.PortType == 2)
-                {
-                    var HotelData = _localGuideDataRep.QueryDto<Res_HotelData, HotelDataView>().ToList();
-                    if (HotelData.Count == 0)
-                    {
-                        return Ok(JsonView(false, "暂无数据!"));
-                    }
-                    HotelData = HotelData.OrderByDescending(s => s.CreateTime).ToList();
-                    return Ok(JsonView(true, "查询成功", HotelData));
+                    return Ok(JsonView(true, "查询成功", hotelData.Data));
                 }
                 else
                 {
-                    return Ok(JsonView(false, "请传入PortType参数!1:Web,2:Android,3:IOS"));
+                    return Ok(JsonView(false, hotelData.Msg));
                 }
 
             }
@@ -551,7 +536,40 @@ namespace OASystem.API.Controllers
 
 
         }
-
+        /// <summary>
+        /// 酒店资料下拉框数据
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> QueryHotelDataSelect()
+        {
+            try
+            {
+                var HotelData = _carDataRep.QueryDto<Res_HotelData, QueryHotelDataSelect>().ToList();
+                if (HotelData.Count == 0)
+                {
+                    return Ok(JsonView(false, "暂无数据!"));
+                }
+                HotelData.Add(new QueryHotelDataSelect { Id = 0, City = "全部" });
+                HotelData = HotelData.Where((x, i) => HotelData.FindIndex(z => z.City == x.City && z.City != "") == i).ToList();
+                HotelData = HotelData.OrderBy(x => x.Id).ToList();
+                List<QueryHotelDataSelect> data = new List<QueryHotelDataSelect>();
+                foreach (QueryHotelDataSelect Hotel in HotelData)
+                {
+                    if (!string.IsNullOrWhiteSpace(Hotel.City))
+                    {
+                        data.Add(Hotel);
+                    }
+                }
+                return Ok(JsonView(true, "查询成功", data));
+            }
+            catch (Exception)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
         /// <summary>
         /// 酒店资料操作(Status:1.新增,2.修改)
         /// </summary>

+ 1 - 0
OASystem/OASystem.Domain/AutoMappers/_baseMappingProfile.cs

@@ -83,6 +83,7 @@ namespace OASystem.Domain.AutoMappers
             #endregion
             #region 酒店资料数据
             CreateMap<Res_HotelData, HotelDataView>();
+            CreateMap<Res_HotelData, QueryHotelDataSelect>();
             CreateMap<OperationHotelDto, Res_HotelData>();
             #endregion
             #region 签证费用资料

+ 19 - 0
OASystem/OASystem.Domain/Dtos/Resource/HotelDataDto.cs

@@ -6,6 +6,25 @@ using System.Threading.Tasks;
 
 namespace OASystem.Domain.Dtos.Resource
 {
+    public class QueryHotelDataDto:DtoBase
+    {
+        /// <summary>
+        /// 所在城市
+        /// </summary>
+        public string City { get; set; }
+        /// <summary>
+        /// 酒店名称
+        /// </summary>
+        public string Name { get; set; }
+        /// <summary>
+        /// 联系人
+        /// </summary>
+        public string Contact { get; set; }
+        /// <summary>
+        /// 联系方式
+        /// </summary>
+        public string ContactPhone { get; set; }
+    }
     /// <summary>
     /// 酒店资料操作(增删)
     /// </summary>

+ 5 - 0
OASystem/OASystem.Domain/ViewModels/Resource/HotelDataView.cs

@@ -10,4 +10,9 @@ namespace OASystem.Domain.ViewModels.Resource
     public class HotelDataView:Res_HotelData
     {
     }
+    public class QueryHotelDataSelect {
+        public int Id { get; set; }
+        public string City { get; set; }
+    }
+
 }

+ 1 - 1
OASystem/OASystem.Infrastructure/Repositories/Resource/CarDataRepository.cs

@@ -56,7 +56,7 @@ namespace OASystem.Infrastructure.Repositories.Resource
                     }
                     CarData= CarData.OrderByDescending(x => x.CreateTime).ToList();
 
-                    if (dto.PageSize==0 || dto.PageIndex==0)
+                    if (dto.PageSize==0 && dto.PageIndex==0)
                     {
                         return result = new Result()
                         {

+ 134 - 0
OASystem/OASystem.Infrastructure/Repositories/Resource/HotelDataRepository.cs

@@ -78,5 +78,139 @@ namespace OASystem.Infrastructure.Repositories.Resource
             }
             return result;
         }
+
+        public async Task<Result> QueryHotelData(QueryHotelDataDto dto)
+        {
+            Result result = new Result() { Code = -2, Msg = "未知错误" };
+            try
+            {
+                string sqlWhere = string.Empty;
+                if (!string.IsNullOrWhiteSpace(dto.Name))
+                {
+                    sqlWhere += string.Format(@" And Name like '%{0}%'", dto.Name);
+                }
+                if (!string.IsNullOrWhiteSpace(dto.City) && dto.City != "全部")
+                {
+                    sqlWhere += string.Format(@" And City like '%{0}%'", dto.City);
+                }
+                if (!string.IsNullOrWhiteSpace(dto.Contact))
+                {
+                    sqlWhere += string.Format(@" And Contact like '%{0}%'", dto.Contact);
+                }
+                if (!string.IsNullOrWhiteSpace(dto.ContactPhone))
+                {
+                    sqlWhere += string.Format(@" And ContactPhone like '%{0}%'", dto.ContactPhone);
+                }
+                if (!string.IsNullOrEmpty(sqlWhere.Trim()))
+                {
+                    Regex r = new Regex("And");
+                    sqlWhere = r.Replace(sqlWhere, "Where", 1);
+                }
+                if (dto.PortType == 1)
+                {
+                    string sql = string.Format(@"select * from Res_HotelData {0}", sqlWhere);
+                    List<Res_HotelData> HotelDataData = await _sqlSugar.SqlQueryable<Res_HotelData>(sql).ToListAsync();
+                    if (HotelDataData.Count == 0)
+                    {
+                        return result = new Result() { Code = -1, Msg = "暂无数据" };
+                    }
+                    HotelDataData = HotelDataData.OrderByDescending(x => x.CreateTime).ToList();
+
+                    if (dto.PageSize == 0 && dto.PageIndex == 0)
+                    {
+                        return result = new Result()
+                        {
+                            Code = 0,
+                            Msg = "查询成功",
+                            Data = HotelDataData,
+                        };
+                    }
+                    else
+                    {
+                        int count = HotelDataData.Count;
+                        float totalPage = (float)count / dto.PageSize;//总页数
+                        if (totalPage == 0) totalPage = 1;
+                        else totalPage = (int)Math.Ceiling((double)totalPage);
+
+                        List<Res_HotelData> _HotelData = new List<Res_HotelData>();
+                        for (int i = 0; i < dto.PageSize; i++)
+                        {
+                            var RowIndex = i + (dto.PageIndex - 1) * dto.PageSize;
+                            if (RowIndex < HotelDataData.Count)
+                            {
+                                _HotelData.Add(HotelDataData[RowIndex]);
+                            }
+                            else
+                            {
+                                break;
+                            }
+                        }
+                        return result = new Result()
+                        {
+                            Code = 0,
+                            Msg = "查询成功",
+                            Data = new { pageCount = count, totalPage = (int)totalPage, pageIndex = dto.PageIndex, pageSize = dto.PageSize, pageSource = _HotelData },
+                        };
+                    }
+
+                }
+                else if (dto.PortType == 2)
+                {
+                    string sql = string.Format(@"select * from Res_HotelData {0}", sqlWhere);
+                    List<Res_HotelData> HotelDataData = await _sqlSugar.SqlQueryable<Res_HotelData>(sql).ToListAsync();
+                    if (HotelDataData.Count == 0)
+                    {
+                        return result = new Result() { Code = -1, Msg = "暂无数据" };
+                    }
+                    HotelDataData = HotelDataData.OrderByDescending(x => x.CreateTime).ToList();
+
+                    if (dto.PageSize == 0 && dto.PageIndex == 0)
+                    {
+                        return result = new Result()
+                        {
+                            Code = 0,
+                            Msg = "查询成功",
+                            Data = HotelDataData,
+                        };
+                    }
+                    else
+                    {
+                        int count = HotelDataData.Count;
+                        float totalPage = (float)count / dto.PageSize;//总页数
+                        if (totalPage == 0) totalPage = 1;
+                        else totalPage = (int)Math.Ceiling((double)totalPage);
+
+                        List<Res_HotelData> _HotelData = new List<Res_HotelData>();
+                        for (int i = 0; i < dto.PageSize; i++)
+                        {
+                            var RowIndex = i + (dto.PageIndex - 1) * dto.PageSize;
+                            if (RowIndex < HotelDataData.Count)
+                            {
+                                _HotelData.Add(HotelDataData[RowIndex]);
+                            }
+                            else
+                            {
+                                break;
+                            }
+                        }
+                        return result = new Result()
+                        {
+                            Code = 0,
+                            Msg = "查询成功",
+                            Data = new { pageCount = count, totalPage = (int)totalPage, pageIndex = dto.PageIndex, pageSize = dto.PageSize, pageSource = _HotelData },
+                        };
+                    }
+                }
+                else
+                {
+                    return result = new Result() { Code = -2, Msg = "请传入PortType参数!1:Web,2:Android,3:IOS" };
+                }
+            }
+            catch (Exception)
+            {
+                return result;
+                throw;
+            }
+        }
     }
 }

+ 1 - 1
OASystem/OASystem.Infrastructure/Repositories/Resource/LocalGuideDataRepository.cs

@@ -171,7 +171,7 @@ namespace OASystem.Infrastructure.Repositories.Resource
                     }
                     LocalGuideData = LocalGuideData.OrderByDescending(x => x.CreateTime).ToList();
 
-                    if (dto.PageSize == 0 || dto.PageIndex == 0)
+                    if (dto.PageSize == 0 && dto.PageIndex == 0)
                     {
                         return result = new Result()
                         {