using System; using System.Collections.Generic; using System.Threading.Tasks; using Dapper; using Datory; using GxPress.Request.Navigation; using GxPress.Result.Navigation; namespace GxPress.Service.Implement.AppHomePage { public partial class AppHomePageService { /// /// 获取搜索作者 /// /// public async Task> GetNavigationSearchResultAysnc(int categoryId) { var result = new List(); var database = new Database(DatabaseType.MySql, Common.Tools.ConfigHelper.GetValue("Database:ConnectionString")); var connection = database.GetConnection(); var sql = $"SELECT TeacherId,Author,count(1) as Count FROM tede_media where id in(select MediaId from tede_system_lable_media where TypeValue=1) and Author is not null group by Author,TeacherId"; if (categoryId > 0) sql = $"SELECT TeacherId,Author,count(1) as Count FROM tede_media where id in(select MediaId from tede_system_lable_media where TypeValue=1 and lableId={categoryId}) and Author is not null group by Author,TeacherId"; return await connection.QueryAsync(sql); } /// /// 获取出版社 /// /// /// public async Task> GetNavigationPressAsync(int categoryId) { var sql = "SELECT Press FROM tede_media where id in(select MediaId from tede_system_lable_media where TypeValue=1) and Press is not null group by Press"; if (categoryId > 0) sql = "SELECT Press FROM tede_media where id in(select MediaId from tede_system_lable_media where TypeValue=1 and lableId={categoryId}) and Press is not null group by Press"; var result = new List(); var database = new Database(DatabaseType.MySql, Common.Tools.ConfigHelper.GetValue("Database:ConnectionString")); var connection = database.GetConnection(); return await connection.QueryAsync(sql); } /// /// 获取年份数据 /// /// /// public async Task> GetNavigationYearResult(NavigationYearRequest request) { var result = new List(); var database = new Database(DatabaseType.MySql, Common.Tools.ConfigHelper.GetValue("Database:ConnectionString")); var connection = database.GetConnection(); var str = ""; if (request.CategoryId > 0) str = $" and LableId={request.CategoryId} "; var maxYearSql = $"select max(AddDate) from tede_media where id in( SELECT MediaId FROM ccpph_tede.tede_system_lable_media where typevalue=1 {str})"; var maxYear = await connection.ExecuteScalarAsync(maxYearSql); var minYearSql = $"select min(AddDate) from tede_media where id in( SELECT MediaId FROM ccpph_tede.tede_system_lable_media where typevalue=1 {str})"; var minYear = await connection.ExecuteScalarAsync(minYearSql); // if (DateTime.TryParse(maxYear, out var maxYearDate) && DateTime.TryParse(minYear, out var minYearDate)) { var count = (maxYearDate.Year - minYearDate.Year); if (count > 0) { for (int i = 0; i < count; i++) { var sql = $"select count(1) from tede_media where AddDate>'{minYearDate.Year + i}' and AddDate<'{minYearDate.Year + (i + 1)}' and id in( SELECT MediaId FROM ccpph_tede.tede_system_lable_media where typevalue=1)"; var number = await connection.ExecuteScalarAsync(sql); result.Add(new NavigationYearResult() { Year = (minYearDate.Year + i) + "年", Count = number }); } } else { var sql = $"select count(1) from tede_media where AddDate>'{minYearDate.Year}' and AddDate<'{minYearDate.Year + 1}' and id in( SELECT MediaId FROM ccpph_tede.tede_system_lable_media where typevalue=1)"; var number = await connection.ExecuteScalarAsync(sql); result.Add(new NavigationYearResult() { Year = (minYearDate.Year) + "年", Count = number }); } } return result; } } }