using Edu.Common.Enum; using Edu.Common.Enum.Sale; using Edu.Model.Entity.StudyAbroad; using Edu.Model.ViewModel.StudyAbroad; using System; using System.Collections.Generic; using System.Linq; using System.Text; using VT.FW.DB.Dapper; namespace Edu.Repository.StudyAbroad { /// /// 留学就业仓储层 /// public class RB_StudyAbroadRepository : BaseRepository { /// /// 获取留学就业分页列表 /// /// /// /// /// /// public List GetStudyAbroadPageRepository(int pageIndex, int pageSize, out long rowsCount, RB_StudyAbroad_ViewModel query) { rowsCount = 0; var parameters = new DynamicParameters(); StringBuilder builder = new StringBuilder(); builder.AppendFormat(@" SELECT A.*,IFNULL(B.`Name`,'') AS SupplierName,IFNULL(B.ContractUrl,'') AS ContractUrl,IFNULL(c.SName,'') AS SchoolName,IFNULL(D.`Name`,'') AS ProductTypeName,IFNULL(D.CountryId,'') AS TypeCountryId FROM RB_StudyAbroad AS A LEFT JOIN rb_supplier AS B ON A.SupplierId=B.Id LEFT JOIN rb_school AS C ON A.School_Id=C.SId LEFT JOIN rb_studyabroad_type AS D ON A.ProductType=D.Id WHERE 1=1 "); builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.Status), (int)DateStateEnum.Normal); if (query == null) { return new List(); } else { if (query.Group_Id > 0) { builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.Group_Id), query.Group_Id); } if (!string.IsNullOrEmpty(query.Name)) { builder.AppendFormat(" AND A.{0} LIKE @Name ", nameof(RB_StudyAbroad_ViewModel.Name)); parameters.Add("Name", "%" + query.Name.Trim() + "%"); } if (query.Type > 0) { builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.Type), query.Type); } if (query.SaleState > 0) { builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.SaleState),(int)query.SaleState); } if (query.ProductType > 0) { builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.ProductType), (int)query.ProductType); } if (query.StudyCountryId > 0) { builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.StudyCountryId), query.StudyCountryId); } builder.Append(" ORDER BY A.Id DESC "); return GetPage(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList(); } } /// /// 获取留学就业审核分页列表 /// /// /// /// /// /// public List GetStudyAbroadAuditPageRepository(int pageIndex, int pageSize, out long rowsCount, RB_StudyAbroad_ViewModel query) { rowsCount = 0; var parameters = new DynamicParameters(); StringBuilder builder = new StringBuilder(); builder.AppendFormat(@" SELECT A.*,IFNULL(B.`Name`,'') AS SupplierName,IFNULL(B.ContractUrl,'') AS ContractUrl FROM RB_StudyAbroad AS A LEFT JOIN rb_supplier AS B ON A.SupplierId=B.Id WHERE 1=1 "); builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.Status), (int)DateStateEnum.Normal); builder.AppendFormat(" AND A.{0}>{1}", nameof(RB_StudyAbroad_ViewModel.SaleState), (int)SaleStateEnum.NoPerfect); if (query == null) { return new List(); } else { if (query.Group_Id > 0) { builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.Group_Id), query.Group_Id); } if (!string.IsNullOrEmpty(query.Name)) { builder.AppendFormat(" AND A.{0} LIKE @Name ", nameof(RB_StudyAbroad_ViewModel.Name)); parameters.Add("Name", "%" + query.Name.Trim() + "%"); } if (query.Type > 0) { builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.Type), query.Type); } //待审核 if (query.AuditState == 1) { builder.AppendFormat(@" AND ( (A.SaleState=2 AND A.DirectorId>0 AND A.DirectorStatus=1 AND A.ManagerStatus=0 AND A.ManagerId={0}) OR (A.SaleState=2 AND A.DirectorStatus=0 AND A.DirectorId={0}) ) ", query.AuditManId); } //已审核 else if(query.AuditState == 2) { builder.AppendFormat(@" AND ( (A.ManagerStatus>0 AND A.ManagerId={0}) OR (A.DirectorStatus>0 AND A.DirectorId={0}) )", query.AuditManId); } return GetPage(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList(); } } /// /// 获取留学就业列表 /// /// /// public List GetStudyAbroadListRepository(RB_StudyAbroad_ViewModel query) { var parameters = new DynamicParameters(); StringBuilder builder = new StringBuilder(); builder.AppendFormat(@" SELECT A.* FROM RB_StudyAbroad AS A WHERE 1=1 "); builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.Status), (int)DateStateEnum.Normal); if (query == null) { return new List(); } else { if (query.Group_Id > 0) { builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.Group_Id), query.Group_Id); } if (!string.IsNullOrEmpty(query.Name)) { builder.AppendFormat(" AND A.{0} LIKE @Name ", nameof(RB_StudyAbroad_ViewModel.Name)); parameters.Add("Name", "%" + query.Name.Trim() + "%"); } if (query.SaleState > 0) { builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.SaleState), (int)query.SaleState); } if (!string.IsNullOrEmpty(query.QIds)) { builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_StudyAbroad_ViewModel.Id), query.QIds); } if (query.Type > 0) { builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_StudyAbroad_ViewModel.Type), query.Type); } return Get(builder.ToString(), parameters).ToList(); } } /// /// 获取留学就业列表扩展 /// /// /// public List GetStudyAbroadListExtRepository(RB_StudyAbroad_ViewModel query) { var parameters = new DynamicParameters(); StringBuilder builder = new StringBuilder(); builder.AppendFormat(@" SELECT A.*,IFNULL(B.`Name`,'') AS SupplierName,IFNULL(B.ContractUrl,'') AS ContractUrl,IFNULL(C.SName,'') AS SchoolName FROM RB_StudyAbroad AS A LEFT JOIN rb_supplier AS B ON A.SupplierId=B.Id LEFT JOIN rb_school AS C ON A.School_Id=C.SId WHERE 1=1 "); builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.Status), (int)DateStateEnum.Normal); if (query == null) { return new List(); } else { if (query.Group_Id > 0) { builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.Group_Id), query.Group_Id); } if (query.School_Id >= 0) { builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.School_Id), query.School_Id); } if (!string.IsNullOrEmpty(query.Name)) { builder.AppendFormat(" AND A.{0} LIKE @Name ", nameof(RB_StudyAbroad_ViewModel.Name)); parameters.Add("Name", "%" + query.Name.Trim() + "%"); } if (query.Type > 0) { builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.Type), query.Type); } if (query.AuditType == 1) { builder.AppendFormat(" AND A.SaleState=2 AND A.DirectorStatus=0 "); } else if (query.AuditType == 2) { builder.AppendFormat(" AND A.SaleState=2 AND A.DirectorId>0 AND A.DirectorStatus=1 AND A.ManagerStatus=0 "); } if (query.SaleState > 0) { builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.SaleState), (int)query.SaleState); } if (query.Id > 0) { builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.Id), query.Id); } if (!string.IsNullOrEmpty(query.StartTime)) { builder.AppendFormat(" AND A.{0} >='{1}'", nameof(RB_StudyAbroad_ViewModel.CreateTime), query.StartTime); } if (!string.IsNullOrEmpty(query.EndTime)) { builder.AppendFormat(" AND A.{0} <='{1} 23:59:59'", nameof(RB_StudyAbroad_ViewModel.CreateTime), query.EndTime); } return Get(builder.ToString(), parameters).ToList(); } } } }