Commit 37f468dd authored by liudong1993's avatar liudong1993

1

parent 9f7b3a77
......@@ -141,6 +141,7 @@ namespace Edu.Common.Plugin
//微信服务器验证成功
res.openid = jo.GetStringValue("openid");
res.session_key = jo.GetStringValue("session_key");
res.unionid = jo.GetStringValue("unionid");
if (!string.IsNullOrWhiteSpace(res.openid))
{
if (!string.IsNullOrEmpty(encryptedData) && !string.IsNullOrEmpty(iv))
......
......@@ -96,5 +96,25 @@ namespace Edu.Model.ViewModel.Exam
/// 结束试卷
/// </summary>
public string QEndTime { get; set; }
/// <summary>
/// 得分
/// </summary>
public decimal TotalScore { get; set; }
/// <summary>
/// 考试耗时 (秒)
/// </summary>
public int ExamSecondTime { get; set; }
/// <summary>
/// 我的排名
/// </summary>
public int MyRank { get; set; }
/// <summary>
/// 最高得分
/// </summary>
public decimal MaxScore { get; set; }
}
}
......@@ -4811,7 +4811,7 @@ namespace Edu.Module.Course
RList.Add(new
{
item.ClassPlanId,
item.ClassDate,
ClassDate = item.ClassDate.ToString("yyyy-MM-dd"),
List = tlist.OrderBy(x => x.StartTime).Select(x => new
{
x.ClassTimeId,
......
......@@ -1215,6 +1215,19 @@ namespace Edu.Module.Exam
return examination_PublishRepository.GetGuestExaminationPublishPage(pageIndex, pageSize, out rowsCount, query);
}
/// <summary>
/// 获取学生发布试卷分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Examination_Publish_ViewModel> GetGuestExaminationPublishPage_V2(int pageIndex, int pageSize, out long rowsCount, RB_Examination_Publish_ViewModel query)
{
return examination_PublishRepository.GetGuestExaminationPublishPage_V2(pageIndex, pageSize, out rowsCount, query);
}
/// <summary>
/// 提交考试申请
/// </summary>
......
......@@ -182,5 +182,67 @@ WHERE 1=1 and a.ExamineStatus=2 and b.ExamineStatus=2
builder.AppendFormat(" order by a.{0} desc ", nameof(RB_Examination_Publish_ViewModel.ExamStartTime));
return GetPage<RB_Examination_Publish_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList();
}
/// <summary>
/// 获取学生的考试 + 得分 + 排名
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Examination_Publish_ViewModel> GetGuestExaminationPublishPage_V2(int pageIndex, int pageSize, out long rowsCount, RB_Examination_Publish_ViewModel query)
{
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.Id,A.ExamStartTime,A.ExamEndTime,A.ExamineStatus,A.PublishPic,
C.PaperId,IFNULL(B.PaperName,'') AS PaperName,C.Id AS Exam_Student_Id,C.ExamStatus,
C.GuestId,C.TotalScore,CASE WHEN C.ExamEndTime IS NOT NULL THEN TIMESTAMPDIFF(SECOND,C.CreateTime,C.ExamEndTime) ELSE 0 END AS ExamSecondTime,
CASE WHEN C.TotalScore >0 THEN (SELECT COUNT(0) FROM rb_examination_student s2 WHERE s2.TotalScore > C.TotalScore and s2.PublishId = C.PublishId) +1 ELSE -1 END AS MyRank,
(SELECT MAX(TotalScore) FROM rb_examination_student s2 WHERE s2.PublishId = C.PublishId) AS MaxScore
FROM rb_examination_student AS C
INNER JOIN RB_Examination_Publish AS A ON C.PublishId=A.Id
INNER JOIN rb_examination_paper AS B ON C.PaperId=B.PaperId
WHERE 1=1 and A.ExamineStatus=2 and B.ExamineStatus=2
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_Publish_ViewModel.Group_Id), query.Group_Id);
}
if (query.GuestId > 0)
{
builder.AppendFormat(" AND c.{0}={1} ", nameof(RB_Examination_Publish_ViewModel.GuestId), query.GuestId);
}
if (!string.IsNullOrEmpty(query.PaperName))
{
builder.AppendFormat(" AND B.{0} LIKE @PaperName ", nameof(RB_Examination_Publish_ViewModel.PaperName));
parameters.Add("PaperName", "%" + query.PaperName.Trim() + "%");
}
if (query.ExamStatus > 0)
{
if (query.ExamStatus == ExamTestStatusEnum.NotStarted)
{
builder.AppendFormat(" AND a.{0} > '{1}' ", nameof(RB_Examination_Publish_ViewModel.ExamStartTime), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
}
else if (query.ExamStatus == ExamTestStatusEnum.FinishStarted)
{
builder.AppendFormat(" AND a.{0} < '{1}' and a.{2} > '{1}' and c.{3}=1 ", nameof(RB_Examination_Publish_ViewModel.ExamStartTime), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), nameof(RB_Examination_Publish_ViewModel.ExamEndTime), nameof(RB_Examination_Publish_ViewModel.ExamStatus));
}
else if (query.ExamStatus == ExamTestStatusEnum.MissedTest)
{
builder.AppendFormat(" AND a.{0} < '{1}' and c.{2} NOT IN(3,5) ", nameof(RB_Examination_Publish_ViewModel.ExamEndTime), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), nameof(RB_Examination_Publish_ViewModel.ExamStatus));
}
else if (query.ExamStatus == ExamTestStatusEnum.FinishTest)
{
builder.AppendFormat(" AND c.{0} IN(3,5)", nameof(RB_Examination_Publish_ViewModel.ExamStatus));
}
}
}
builder.AppendFormat(" order by a.{0} desc ", nameof(RB_Examination_Publish_ViewModel.ExamStartTime));
return GetPage<RB_Examination_Publish_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList();
}
}
}
......@@ -374,6 +374,7 @@ namespace Edu.WebApi.Controllers.Applet
{
x.StuId,
x.Account_Id,
x.GuestId,
x.B2BIcon,
x.B2BBackground,
x.ClassId,
......@@ -392,16 +393,78 @@ namespace Edu.WebApi.Controllers.Applet
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetStudyCourseReview() {
public ApiResult GetMyStudyCourseInfo() {
var appletUserInfo = base.AppletUserInfo;
JObject parms = JObject.Parse(base.RequestParm.Msg.ToString());
int ClassId = parms.GetInt("ClassId", 0);
int ClassId = parms.GetInt("ClassId", 0);//班级ID
int GuestId = parms.GetInt("GuestId", 0);//订单GuestId
if (ClassId <= 0) {
return ApiResult.ParamIsNull("请传递班级ID");
}
int Day = 7;//默认最近7天
var Robj = classModule.GetStudyCourseReview(ClassId, Day, appletUserInfo.Group_Id);
return ApiResult.Success("", Robj);
//获取课程回顾
int Day = 7;//默认最近7次上课
var Review = classModule.GetStudyCourseReview(ClassId, Day, appletUserInfo.Group_Id);
//获取考试试卷
List<Model.ViewModel.Exam.RB_Examination_Publish_ViewModel> examinationPublishList = new List<Model.ViewModel.Exam.RB_Examination_Publish_ViewModel>();
if (GuestId > 0)
{
examinationPublishList = paperModule.GetGuestExaminationPublishPage_V2(1, 5, out long rowsCount, new RB_Examination_Publish_ViewModel { GuestId = GuestId, Group_Id = appletUserInfo.Group_Id });
if (examinationPublishList == null)
{
examinationPublishList = new List<Model.ViewModel.Exam.RB_Examination_Publish_ViewModel>();
}
else
{
foreach (var item in examinationPublishList)
{
if (item.ExamStartTime > System.DateTime.Now)
{
item.ExamStatus = ExamTestStatusEnum.NotStarted;
}
else if (item.ExamStartTime < System.DateTime.Now && item.ExamEndTime > System.DateTime.Now)
{
if (item.ExamStatus != ExamTestStatusEnum.FinishTest && item.ExamStatus != ExamTestStatusEnum.FinishScoring)
{
item.ExamStatus = ExamTestStatusEnum.FinishStarted;
}
}
else if (item.ExamEndTime < System.DateTime.Now)
{
if (item.ExamStatus != ExamTestStatusEnum.FinishTest && item.ExamStatus != ExamTestStatusEnum.FinishScoring)
{
item.ExamStatus = ExamTestStatusEnum.MissedTest;
}
}
item.ExamStatusStr = item.ExamStatus.ToName();
}
}
}
//获取单词积分
return ApiResult.Success("", new
{
Review,
ExamList = examinationPublishList.Select(x => new
{
x.Exam_Student_Id,
x.PaperId,
x.Id,
x.PaperName,
x.PublishPic,
x.PicList,
ExamStartTime = Common.ConvertHelper.FormatTime(x.ExamStartTime),
ExamEndTime = Common.ConvertHelper.FormatTime(x.ExamEndTime),
x.ExamStatus,
ExamStatusStr = x.ExamStatus.ToName(),
x.MyRank,
x.TotalScore,
x.ExamSecondTime,
x.MaxScore
})
});
}
#endregion
......@@ -783,6 +846,62 @@ namespace Edu.WebApi.Controllers.Applet
return ApiResult.Success(data: pageModel);
}
/// <summary>
/// 获取考卷列表分页列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetGuestPublishPage_V2()
{
var pageModel = Common.Plugin.JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var query = new Model.ViewModel.Exam.RB_Examination_Publish_ViewModel()
{
Group_Id = base.AppletUserInfo.Group_Id,
ExamStatus = (ExamTestStatusEnum)base.ParmJObj.GetInt("ExamStatus", 0),
GuestId = base.ParmJObj.GetInt("GuestId", 0),
};
var list = paperModule.GetGuestExaminationPublishPage_V2(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
foreach (var item in list)
{
if (item.ExamStartTime > System.DateTime.Now)
{
item.ExamStatus = ExamTestStatusEnum.NotStarted;
}
else if (item.ExamStartTime < System.DateTime.Now && item.ExamEndTime > System.DateTime.Now)
{
if (item.ExamStatus != ExamTestStatusEnum.FinishTest && item.ExamStatus != ExamTestStatusEnum.FinishScoring)
{
item.ExamStatus = ExamTestStatusEnum.FinishStarted;
}
}
else if (item.ExamEndTime < System.DateTime.Now)
{
if (item.ExamStatus != ExamTestStatusEnum.FinishTest && item.ExamStatus != ExamTestStatusEnum.FinishScoring)
{
item.ExamStatus = ExamTestStatusEnum.MissedTest;
}
}
}
pageModel.PageData = list.Select(x => new
{
x.Exam_Student_Id,
x.PaperId,
x.Id,
x.PaperName,
x.PublishPic,
x.PicList,
ExamStartTime = Common.ConvertHelper.FormatTime(x.ExamStartTime),
ExamEndTime = Common.ConvertHelper.FormatTime(x.ExamEndTime),
x.ExamStatus,
ExamStatusStr = x.ExamStatus.ToName(),
x.MyRank,
x.TotalScore,
x.ExamSecondTime,
x.MaxScore
});
pageModel.Count = rowsCount;
return ApiResult.Success(data: pageModel);
}
/// <summary>
/// 根据编号获取试卷信息
......
......@@ -190,8 +190,7 @@ namespace Edu.WebApi.Controllers.APP
TeacherName = studentModel.TeacherName,
CourseName = studentModel.CourseName,
StuSex = studentModel.StuSex,
StuBirth = studentModel.StuBirth.HasValue ? studentModel.StuBirth.Value.ToString("yyyy-MM-dd") : "",
EnterPhone = Cache.User.UserReidsCache.GetUserLoginInfo(studentModel.EnterID).UserMobile,
StuBirth = studentModel.StuBirth.HasValue ? studentModel.StuBirth.Value.ToString("yyyy-MM-dd") : "",
Token = token,
GroupLogo = model.GroupLogo,
UserIcon = model.UserIcon,
......@@ -217,7 +216,6 @@ namespace Edu.WebApi.Controllers.APP
}
}
/// <summary>
/// 根据手机号码一键登录
/// </summary>
......@@ -312,19 +310,21 @@ namespace Edu.WebApi.Controllers.APP
// return ApiResult.Failed(message: $"很抱歉,由于你已经退学,无法继续使用本系统", new { Error = 3 });
//}
RB_Student_ViewModel studentModel = new RB_Student_ViewModel();
studentModel = studentList.Where(x => x.ClassStatus == 2).FirstOrDefault();
if (studentModel == null || studentModel.StuId == 0)
if (studentList.Any())
{
studentModel = new RB_Student_ViewModel();
studentModel = studentList.Where(x => x.ClassStatus == 1).FirstOrDefault();
studentModel = studentList.Where(x => x.ClassStatus == 2).FirstOrDefault();
if (studentModel == null || studentModel.StuId == 0)
{
studentModel = new RB_Student_ViewModel();
studentModel = studentList.Where(x => x.ClassStatus == 3).FirstOrDefault();
studentModel = studentList.Where(x => x.ClassStatus == 1).FirstOrDefault();
if (studentModel == null || studentModel.StuId == 0)
{
studentModel = new RB_Student_ViewModel();
studentModel = studentList.Where(x => x.ClassStatus == 3).FirstOrDefault();
}
}
}
//生成教育token
EduUserInfoToken eduUserInfo = new EduUserInfoToken()
{
......@@ -381,7 +381,6 @@ namespace Edu.WebApi.Controllers.APP
Token = token,
GroupLogo = model.GroupLogo,
UserIcon = model.UserIcon,
EnterPhone = Cache.User.UserReidsCache.GetUserLoginInfo(studentModel.EnterID).UserMobile,
MallToken = mallUserToken,
ApiRequestFromEnum = Common.Enum.ApiRequestFromEnum.AppletStudent,
JHMallBaseId = Config.JHMallBaseId,
......@@ -484,9 +483,6 @@ namespace Edu.WebApi.Controllers.APP
return ApiResult.Success("", res);
}
/// <summary>
/// 获取用户信息
/// </summary>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment