using Dapper; using Ewide.Core; using Ewide.Core.Extension; using Furion.DatabaseAccessor; using Furion.DependencyInjection; using Furion.DynamicApiController; using Furion.FriendlyException; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Ewide.Application.Service { /// /// 房屋任务(巡查任务/建档任务) /// [ApiDescriptionSettings(Name = "HouseTask", Order = 190)] public class HouseTaskService : IHouseTaskService, IDynamicApiController, ITransient { private readonly IRepository _houseTaskRep; private readonly IDapperRepository _dapperRepository; private readonly IUserManager _userManager; public HouseTaskService(IRepository HouseTaskRep, IDapperRepository dapperRepository, IUserManager userManager) { _houseTaskRep = HouseTaskRep; _dapperRepository = dapperRepository; _userManager = userManager; } [HttpPost("/houseTask/page")] public async Task QueryPage([FromBody] QueryHouseTaskInput input) { var sql = @"SELECT T.Id,AA.Name AreaName,RA.Name RoadName,CA.Name CommName,Proj.AreaCode,Proj.Note,Proj.Name,CONCAT(Proj.Name,'(',Proj.Note,')') FullProjName,HC.HouseCode,HC.Address,T.EndTime,HC.Type,HC.Industry,HC.No FROM `bs_house_task` T LEFT JOIN bs_house_code HC ON T.HouseCodeId = HC.Id LEFT JOIN bs_house_info HI ON HI.HouseCodeId = T.HouseCodeId 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 T.UserID=@UserID"; var user = await _userManager.CheckUserAsync(); if (user == null) throw Oops.Oh("登录信息丢失"); var param = new DynamicParameters(); param.Add("UserID", user.Id); return await _dapperRepository.QueryPageDataDynamic(sql, input, param, filterFields: new string[] { "Type", "Address", "HouseCode" }); } } }