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,CA.AdCode AreaCode,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 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" }); } } }