96 lines
4.1 KiB
C#
96 lines
4.1 KiB
C#
using Castle.Core.Logging;
|
|
using Dm.util;
|
|
using LearningOfficer.OA.Common.Attributes;
|
|
using LearningOfficer.OA.Common.Configs;
|
|
using LearningOfficer.OA.Common.Dtos.Classes;
|
|
using LearningOfficer.OA.Common.Dtos.LoginMobile;
|
|
using LearningOfficer.OA.Common.Dtos.OA.ManagerData;
|
|
using LearningOfficer.OA.Common.Dtos.School;
|
|
using LearningOfficer.OA.Common.Dtos.TencentIM;
|
|
using LearningOfficer.OA.Common.Dtos.User;
|
|
using LearningOfficer.OA.Common.Enums;
|
|
using LearningOfficer.OA.Common.Exceptions;
|
|
using LearningOfficer.OA.Common.Helpers;
|
|
using LearningOfficer.OA.Common.Request;
|
|
using LearningOfficer.OA.Common.Response;
|
|
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 LearningOfficer.OA.Services.WorkProcess.ClassTask;
|
|
using Mapster;
|
|
using Masuit.Tools;
|
|
using Masuit.Tools.Security;
|
|
using Meeting.Infrastructure;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.Extensions.Logging;
|
|
using Microsoft.Extensions.Options;
|
|
using MiniExcelLibs;
|
|
using Nacos.V2.Utils;
|
|
using SqlSugar;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Runtime.ConstrainedExecution;
|
|
using UserCenter.Model;
|
|
using UserCenter.Model.Common;
|
|
using UserCenter.Model.Enum;
|
|
using Yitter.IdGenerator;
|
|
using Classes = LearningOfficer.OA.Core.Entities.UserCenter.Classes;
|
|
using Position = LearningOfficer.OA.Core.Entities.UserCenter.Position;
|
|
using School = LearningOfficer.OA.Core.Entities.UserCenter.School;
|
|
using User = LearningOfficer.OA.Core.Entities.UserCenter.User;
|
|
using Cloudschool = LearningOfficer.OA.Core.Entities.UserCenter.Cloudschool;
|
|
|
|
namespace LearningOfficer.OA.Services
|
|
{
|
|
[Inject]
|
|
public class UserService : BaseService<User>, IUserService
|
|
{
|
|
private readonly SugarRepository<User> _userRepository;
|
|
public UserService(SugarRepository<User> userRepository) : base(userRepository)
|
|
{
|
|
this._userRepository = userRepository;
|
|
}
|
|
public async Task<List<StudentResult>> GetStudentResults(long ClassesId, int IsBackOutStudent)
|
|
{
|
|
//获取班级下的学生职级
|
|
var result = await _userRepository.Context.Queryable<Position>()
|
|
.LeftJoin<Positionrelation>((p, pr) => p.Id == pr.PositionId)
|
|
.LeftJoin<User>((p, pr, u) => pr.UserId == u.Id)
|
|
.LeftJoin<Classes>((p, pr, u, c) => p.ClassId == c.Id)
|
|
.LeftJoin<School>((p, pr, u, c, s) => c.SchoolId == s.Id)
|
|
.Where((p, pr, u, c, s) => p.ClassId == ClassesId && p.DeleteState == false && u.State == 1 && p.Enable == true && p.PositionType == 1 && u.DeleteState == false)
|
|
.WhereIF(IsBackOutStudent == 1, (p, pr, u, c, s) => (pr.Status == PositionRelationStatusEnum.就读任职 || pr.Status == PositionRelationStatusEnum.退学休学))
|
|
.WhereIF(IsBackOutStudent == 0, (p, pr, u, c, s) => pr.Status == PositionRelationStatusEnum.就读任职)
|
|
.Select((p, pr, u, c, s) => new StudentResult
|
|
{
|
|
Id = u.Id,
|
|
Name = u.RealName,
|
|
Status = pr.Status,
|
|
SchoolId = s.Id,
|
|
ClassName = c.ClassName,
|
|
GradeLevel = c.GradeLevel,
|
|
GraduationYear = c.GraduationYear,
|
|
SchoolName = s.Name,
|
|
Account = u.Account
|
|
}).ToListAsync();
|
|
return result;
|
|
}
|
|
public async Task<bool> ResetStudentPwd(long userId, string pwd)
|
|
{
|
|
var user = await _userRepository.GetByIdAsync(userId);
|
|
if (user == null)
|
|
{
|
|
throw new BusinessException("用户不存在");
|
|
}
|
|
user.Password = MD5EncryptionHelper.MD5Encryption(pwd);
|
|
//大写MD5
|
|
user.Password = user.Password.ToUpper();
|
|
return await _userRepository.UpdateAsync(user);
|
|
}
|
|
|
|
}
|
|
}
|