Quanxue.Zhanghao.Daochu/LearningOfficer.OA.Services/WorkProcess/ClassTask/Task_checklistService.cs

58 lines
2.4 KiB
C#

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<Task_checklist>, ITask_checklistService
{
private readonly SugarRepository<Task_checklist> _db;
public Task_checklistService(SugarRepository<Task_checklist> db) : base(db)
{
_db = db;
}
public async Task<List<ClassesResult>> GetBindClassesBySchoolId(long userId)
{
//学习官
var classes = await _db.Context.Queryable<OaClassesFollowRelationship>().AS<OaClassesFollowRelationship>("usercenter_v1.oa_classes_follow_relationship")
.LeftJoin<Classes>((u, c) => u.ClassesId == c.Id).AS<Classes>("usercenter_v1.classes")
.LeftJoin<School>((u, c, s) => c.SchoolId == s.Id).AS<School>("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;
}
}
}