using System; using System.Collections.Generic; using System.Linq; using System.Runtime.ConstrainedExecution; using System.Text; using System.Threading.Tasks; using LearningOfficer.OA.Common.Attributes; using LearningOfficer.OA.Common.Dtos.Classes; using LearningOfficer.OA.Common.Dtos.LoginMobile; using LearningOfficer.OA.Common.Dtos.OA.ManagerData; using LearningOfficer.OA.Common.Dtos.OA.WorkProcess; using LearningOfficer.OA.Common.Dtos.School; using LearningOfficer.OA.Common.Dtos.V2.WorkProcess; using LearningOfficer.OA.Common.Enums; using LearningOfficer.OA.Common.Exceptions; using LearningOfficer.OA.Core.Entities.OA.SystemInfo; using LearningOfficer.OA.Core.Entities.OA.WorkProcess.ClassesTask; using LearningOfficer.OA.Core.Entities.UserCenter; using LearningOfficer.OA.Core.ServicesInterfaces; using LearningOfficer.OA.Core.ServicesInterfaces.ClassTask; using LearningOfficer.OA.Infrastructure.DBContext; using Microsoft.EntityFrameworkCore.Internal; using StackExchange.Redis; using UserCenter.Model.Common; using UserCenter.Model.Enum; namespace LearningOfficer.OA.Services.WorkProcess.ClassTask { [Inject] public class Task_checklistService : BaseService, ITask_checklistService { private readonly SugarRepository _db; public Task_checklistService(SugarRepository db) : base(db) { _db = db; } public async Task> GetBindClassesBySchoolId(long userId) { //学习官 var classes = await _db.Context.Queryable().AS("usercenter_v1.oa_classes_follow_relationship") .LeftJoin((u, c) => u.ClassesId == c.Id).AS("usercenter_v1.classes") .LeftJoin((u, c, s) => c.SchoolId == s.Id).AS("usercenter_v1.school") .Where((u, c, s) => u.UserId == userId && c.DeleteState == false) .Select((u, c, s) => new ClassesResult { Id = c.Id, Name = c.ClassName, GradeLevel = c.GradeLevel, GraduationYear = c.GraduationYear, SchoolId = s.Id, SchoolName = s.Name, }) .ToListAsync(); return classes; } } }