using Dapper; using Ewide.Core.Extension; using Furion.DatabaseAccessor; using Furion.DependencyInjection; using Furion.DynamicApiController; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Ewide.Application.Service.HouseSafety.HouseQuery { /// /// 住宅查询 /// [ApiDescriptionSettings(Name = "HouseQuery", Order = 210)] public class HouseQueryService : IHouseQueryService, IDynamicApiController, ITransient { private readonly IRepository _houseCodeRep; private readonly IRepository _houseInfoRep; private readonly IRepository _houseTaskRep; private readonly IDapperRepository _dapperRepository; public HouseQueryService(IRepository HouseCodeRep, IRepository HouseInfoRep, IRepository HouseTaskRep, IDapperRepository dapperRepository) { _houseCodeRep = HouseCodeRep; _houseInfoRep = HouseInfoRep; _houseTaskRep = HouseTaskRep; _dapperRepository = dapperRepository; } [HttpPost("/houseQuery/page")] public async Task QueryPage([FromBody] HouseQueryInput input) { var sql = @"SELECT HC.ID, HC.HouseCode, AA.Name AreaName, RA.Name RoadName, CA.Name CommName, Proj.AreaCode, Proj.Note, Proj.Name, CONCAT(Proj.Name,'(',Proj.Note,')') FullProjName, HC.Address, IFNULL(HI.BuildingName,'') BuildingName, IFNULL(HI.TotalFloor,0) TotalFloor, IFNULL(HI.TotalArea,0) TotalArea, HI.LandAttribute, IFNULL(HI.HouseGrade,0) HouseGrade, HC.Type, HC.No, HI.State, HI.CompletedDate, HI.CreatedTime FROM bs_house_code HC LEFT JOIN bs_house_info HI ON HI.HouseCodeId = HC.Id LEFT JOIN bs_house_projectinfo Proj ON Proj.Id=HC.ProjectId LEFT JOIN sys_area_code CA ON CA.Code = Proj.AreaCode LEFT JOIN sys_area_code RA ON RA.AdCode = SUBSTR(CA.AdCode,1,9) LEFT JOIN sys_area_code AA ON AA.AdCode = SUBSTR(CA.AdCode,1,6) WHERE 1=1"; return await _dapperRepository.QueryPageDataDynamic(sql, input, filterFields: new string[] { "HouseCode", "Address", "BuildingName", "State", "AreaCode", "LandAttribute", "HouseGrade", "CompletedDate", "CreatedTime", "TotalArea", "TotalFloor" }); } } }