public IActionResult ParkingList(ParkingQueryPayload payload) { using (_dbContext) { var response = ResponseModelFactory.CreateInstance; var list = _dbContext.Attractions.Where(x => x.UserUuid == payload.UserUuid).Select(x => x.SceientUuid).ToList(); var alllist = _dbContext.ScenicSpot.Where(x => x.IsDelete == 0 && x.State == 1).Select(x => x.ScenicSpotUuid).ToList(); for (int i = 0; i < list.Count; i++) { alllist.Remove(list[i].Value); } int ranking = alllist.Count(); var paiming = 0; if (ranking == 0) { if (_dbContext.AttractRanking.Count(x => x.UserUuid == payload.UserUuid) <= 0) { var entity = new AttractRanking(); entity.AttractRankingUuid = Guid.NewGuid(); entity.UserUuid = payload.UserUuid; _dbContext.AttractRanking.Add(entity); _dbContext.SaveChanges(); //int num = _dbContext.SaveChanges(); //if (num >0) { // var querys = _dbContext.AttractRanking.FirstOrDefault(x => x.UserUuid == payload.UserUuid); // paiming = querys.Id; //} } var querys = _dbContext.AttractRanking.FirstOrDefault(x => x.UserUuid == payload.UserUuid); paiming = querys.Id; } if (payload.Type == 0) { var query = _dbContext.ScenicSpot.Where(x => x.IsDelete == 0 && x.State == 1 && list.Contains(x.ScenicSpotUuid)).Select(x => new { x.Name, x.Address, Picture = GetDistance(x.Picture), ranking, paiming }); response.SetData(query.ToList()); } else if (payload.Type == 1) { var query = _dbContext.ScenicSpot.Where(x => x.IsDelete == 0 && x.State == 1 && alllist.Contains(x.ScenicSpotUuid)).Select(x => new { x.Name, x.Address, Picture = GetDistance(x.Picture) }); response.SetData(query.ToList()); } return(Ok(response)); } }
public IActionResult ParkingList(ParkingQueryPayload payload) { using (_dbContext) { var response = ResponseModelFactory.CreateInstance; var query = _dbContext.CarPark.Where(x => x.IsDelete == 0 && x.State == 1); var querydc = _dbContext.Sharing.Where(x => x.IsDelete == 0 && x.State == 1); var querybus = _dbContext.Bus.Where(x => x.IsDelete == 0 && x.State == 1); if (!string.IsNullOrEmpty(payload.Kw)) { if (payload.Type == 2) { querydc = querydc.Where(x => x.Name.Contains(payload.Kw)); } if (payload.Type == 1) { query = query.Where(x => x.Name.Contains(payload.Kw)); } else { querybus = querybus.Where(x => x.BegainSite.Contains(payload.Kw)); } } //List<ParkingLot> parkingLots = new List<ParkingLot>(); var query2 = query.Select(x => new ParkingLot { Lon = x.Lon.Value, Lat = x.Lat.Value, Id = x.Id, CarParkUuid = x.CarParkUuid, Name = x.Name, Picture = x.Picture, TruckSpace = x.TruckSpace, SurplusTs = x.SurplusTs, Distance = (int)(GetDistance2(payload.Lat, payload.Lon, (double)x.Lat.Value, (double)x.Lon.Value) / 1000) }); var query3 = querydc.Select(x => new Sharing { Id = x.Id, SharingUuid = x.SharingUuid, Name = x.Name, Address = x.Address, Picture = x.Picture, Lon = x.Lon, Lat = x.Lat, }); var query4 = querybus.Select(x => new Bus { Id = x.Id, BusUuid = x.BusUuid, Introduction = x.Introduction, Picture = x.Picture, BegainSite = x.BegainSite, EndSite = x.EndSite, }); if (payload.Type == 1) { var list = query2.ToList().AsQueryable().OrderBy(x => x.Distance).Paged(payload.CurrentPage, payload.PageSize).ToList(); response.SetData(list); } else if (payload.Type == 2) { var list = query3.Paged(payload.CurrentPage, payload.PageSize).ToList(); response.SetData(list); //var list = query2.ToList().AsQueryable().OrderByDescending(x => x.SurplusTs).Paged(payload.CurrentPage, payload.PageSize).ToList(); //response.SetData(list); } else { var list = query4.Paged(payload.CurrentPage, payload.PageSize).ToList(); response.SetData(list); } return(Ok(response)); } }