Commit 0f68ce9c authored by liudong1993's avatar liudong1993

Merge branch 'master' of http://gitlab.oytour.com/Kui2/education

parents 9daa34b8 26aebfb7
......@@ -291,6 +291,37 @@ namespace Edu.Common
return minutes;
}
/// <summary>
/// 计算时分秒
/// </summary>
/// <param name="start"></param>
/// <param name="end"></param>
/// <returns></returns>
public static string CalcMinutesAndSeconds(DateTime start, DateTime end)
{
string dateDiff = null;
TimeSpan ts1 = new TimeSpan(start.Ticks);
TimeSpan ts2 = new TimeSpan(end.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
if (ts.Days > 0)
{
dateDiff += ts.Days.ToString() + "天";
}
if (ts.Hours > 0)
{
dateDiff += ts.Hours.ToString() + "小时";
}
if (ts.Minutes > 0)
{
dateDiff += ts.Minutes.ToString() + "分";
}
if (ts.Seconds > 0)
{
dateDiff += ts.Seconds.ToString() + "秒";
}
return dateDiff;
}
/// <summary>
/// 是否为时间型字符串
/// </summary>
......
......@@ -78,5 +78,10 @@ namespace Edu.Model.Entity.Exam
/// 是否作答错误(1-是)
/// </summary>
public int IsWrong { get; set; }
/// <summary>
/// 学生答案
/// </summary>
public string StudentAnswer { get; set; }
}
}
......@@ -33,5 +33,10 @@ namespace Edu.Model.ViewModel.Question
/// </summary>
public int QuestionCount { get; set; }
/// <summary>
/// 学员编号
/// </summary>
public int StudentId { get; set; }
}
}
......@@ -129,5 +129,15 @@ namespace Edu.Model.ViewModel.Question
/// 题库类型(见枚举)
/// </summary>
public LevelTypeEnum BankType { get; set; }
/// <summary>
/// 开始问题编号
/// </summary>
public int StartId { get; set; }
/// <summary>
/// 排序类型(1-问题编号)
/// </summary>
public int OrderByType { get; set; }
}
}
\ No newline at end of file
This diff is collapsed.
......@@ -39,6 +39,10 @@ WHERE 1=1
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Practice_Extend.LevelType), (int)query.LevelType);
}
if (query.QuestionId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Practice_Extend.QuestionId), query.QuestionId);
}
}
return Get<RB_Student_Practice_Extend>(builder.ToString()).ToList();
}
......
......@@ -147,7 +147,7 @@ WHERE 1=1 AND B.Status=0 AND A.Status=0
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.`Name` ,'') AS QuestionTypeName
SELECT A.*,IFNULL(B.`Name` ,'') AS QuestionTypeName,IFNULL(C.BankType,0) AS BankType
FROM RB_Question AS A LEFT JOIN RB_Question_Type B ON A.QuestionTypeId=B.QId
INNER JOIN rb_question_bank AS C ON A.BankId=C.BankId
WHERE 1=1
......@@ -197,7 +197,19 @@ WHERE 1=1
{
builder.AppendFormat(" AND C.{0}={1} ", nameof(RB_Question_ViewModel.BankType), (int)query.BankType);
}
builder.AppendFormat(" ORDER BY A.{0} ASC ", nameof(RB_Question_ViewModel.SortNum));
if (query.StartId > 0)
{
builder.AppendFormat(" AND A.{0}>{1} ", nameof(RB_Question_ViewModel.QuestionId), query.StartId);
}
if (query.OrderByType == 1)
{
builder.AppendFormat(" ORDER BY A.{0} ASC ", nameof(RB_Question_ViewModel.QuestionId));
}
else
{
builder.AppendFormat(" ORDER BY A.{0} ASC ", nameof(RB_Question_ViewModel.SortNum));
}
return GetPage<RB_Question_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
}
}
......
......@@ -51,6 +51,10 @@ WHERE 1=1 ");
builder.AppendFormat(" AND (A.{0} LIKE @BankName OR A.{1} LIKE @BankName)", nameof(RB_Question_Bank_ViewModel.BankName), nameof(RB_Question_Bank_ViewModel.BankNo));
parameters.Add("BankName", "%" + query.BankName.Trim() + "%");
}
if (query.BankType > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Question_Bank_ViewModel.BankType), (int)query.BankType);
}
builder.AppendFormat(" ORDER BY A.{0} ASC ", nameof(RB_Question_Bank_ViewModel.BankNo));
return GetPage<RB_Question_Bank_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
}
......
......@@ -24,38 +24,42 @@ namespace Edu.Repository.Sell
/// <returns></returns>
public List<RB_ReturnMoney_Batch_ViewModel> GetPageList(int pageIndex, int pageSize, out long count, int type, string month, int groupId)
{
string sql = $@"select IFNULL(SUM(b.CommissionMoeny),0) as TotalEmployee,IFNULL(SUM(c.CommissionMoeny),0) as TotalCustomer,a.FinanceIds,
IFNULL(SUM(d.CommissionMoeny),0) as TotalInternal,IFNULL(SUM(e.CommissionMoeny),0) as TotalTrans, a.Id,a.BatchName,TotalMoney,a.CreateBy,a.CreateDate,DATE_FORMAT(a.CreateDate,'%Y-%m-%d %H:%i:%S') as CreateDateStr";
sql += $@" from RB_ReturnMoney_Batch a LEFT JOIN
(SELECT SUM(CommissionMoeny) as CommissionMoeny,BatchId FROM rb_order_returncomission where OrderSourceType=1 and `Status` in(1,2) GROUP BY OrderSourceType) as b
on a.Id=b.BatchId
LEFT JOIN
(SELECT SUM(CommissionMoeny) as CommissionMoeny,BatchId FROM rb_order_returncomission where OrderSourceType=2 and `Status` in(1,2) GROUP BY OrderSourceType) as c
on a.Id=c.BatchId
LEFT JOIN
(SELECT SUM(CommissionMoeny) as CommissionMoeny,BatchId FROM rb_order_returncomission where OrderSourceType=3 and `Status` in(1,2) GROUP BY OrderSourceType ) as d
on a.Id=d.BatchId
LEFT JOIN
(SELECT SUM(CommissionMoeny) as CommissionMoeny,BatchId FROM rb_order_returncomission where OrderSourceType=4 and `Status` in(1,2) GROUP BY OrderSourceType ) as e
on a.Id=e.BatchId ";
sql += " where a.GroupId=@gid";
DynamicParameters parameters = new DynamicParameters();
parameters.Add("gid", groupId);
string sql = $@"";
sql += $@" ";
sql += " ";
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT IFNULL(SUM(b.CommissionMoeny),0) as TotalEmployee,IFNULL(SUM(c.CommissionMoeny),0) as TotalCustomer,a.FinanceIds
,IFNULL(SUM(d.CommissionMoeny),0) as TotalInternal,IFNULL(SUM(e.CommissionMoeny),0) as TotalTrans
,a.Id,a.BatchName,TotalMoney,a.CreateBy,a.CreateDate,DATE_FORMAT(a.CreateDate,'%Y-%m-%d %H:%i:%S') as CreateDateStr
FROM RB_ReturnMoney_Batch a LEFT JOIN
(SELECT SUM(CommissionMoeny) as CommissionMoeny,BatchId FROM rb_order_returncomission where OrderSourceType=1 and `Status` in(1,2) GROUP BY OrderSourceType,BatchId) as b
on a.Id=b.BatchId
LEFT JOIN
(SELECT SUM(CommissionMoeny) as CommissionMoeny,BatchId FROM rb_order_returncomission where OrderSourceType=2 and `Status` in(1,2) GROUP BY OrderSourceType,BatchId) as c
on a.Id=c.BatchId
LEFT JOIN
(SELECT SUM(CommissionMoeny) as CommissionMoeny,BatchId FROM rb_order_returncomission where OrderSourceType=3 and `Status` in(1,2) GROUP BY OrderSourceType,BatchId) as d
on a.Id=d.BatchId
LEFT JOIN
(SELECT SUM(CommissionMoeny) as CommissionMoeny,BatchId FROM rb_order_returncomission where OrderSourceType=4 and `Status` in(1,2) GROUP BY OrderSourceType,BatchId) as e
on a.Id=e.BatchId
WHERE 1=1
");
if (groupId > 0)
{
builder.AppendFormat(" AND a.GroupId={0} ", groupId);
}
if (!string.IsNullOrEmpty(month))
{
sql += " and DATE_FORMAT(a.CreateDate,'%Y-%m')=@month";
parameters.Add("month", month);
builder.AppendFormat(" AND DATE_FORMAT(a.CreateDate,'%Y-%m')=DATE_FORMAT('{0}-01','%Y-%m')", month);
}
if (type != 0)
{
sql += " and a.CommissionType=@type";
parameters.Add("type", type);
builder.AppendFormat(" and a.CommissionType={0} ", type);
}
sql += " order by a.CreateDate desc";
return GetPage<RB_ReturnMoney_Batch_ViewModel>(pageIndex, pageSize, out count, sql, parameters).ToList();
builder.Append(" order by a.CreateDate desc ");
return GetPage<RB_ReturnMoney_Batch_ViewModel>(pageIndex, pageSize, out count, builder.ToString()).ToList();
}
/// <summary>
......
......@@ -14,6 +14,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace Edu.WebApi.Controllers.Course
{
......@@ -402,6 +403,38 @@ namespace Edu.WebApi.Controllers.Course
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 重新修改问题答案
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult RunQuestion()
{
Task.Run(() => {
var list = questionModule.GetQuestionListModule(new RB_Question_ViewModel() { Q_QuestionTypeIds = "14,16", });
if (list != null && list.Count > 0)
{
foreach (var item in list)
{
try
{
var listenList = JsonHelper.DeserializeObject<List<SubAnswerItem>>(item.Answer);
}
catch
{
string str = analysisQuestion.CheckQuestion(item.QuestionTypeKey, item.QuestionContent, item.Answer, out string newAnswer, IsRequire: false);
if (!string.IsNullOrEmpty(newAnswer))
{
item.Answer = newAnswer;
bool flag = questionModule.SetQuestionModule(item);
}
}
}
}
});
return ApiResult.Success();
}
/// <summary>
/// 批量修改问题考级程度
/// </summary>
......
......@@ -904,7 +904,6 @@ namespace Edu.WebApi.Controllers.Exam
pageModel.PageData = result;
return ApiResult.Success(data: pageModel);
}
#endregion
/// <summary>
/// 老师阅卷提交分数
......@@ -963,6 +962,9 @@ namespace Edu.WebApi.Controllers.Exam
return result ? ApiResult.Success("阅卷成功!") : ApiResult.Failed("阅卷失败!");
}
#endregion
#region 小程序单词、语法、听力、阅读、模拟题
/// <summary>
/// 获取题目类型统计
/// </summary>
......@@ -991,6 +993,7 @@ namespace Edu.WebApi.Controllers.Exam
{
BankType = (LevelTypeEnum)base.ParmJObj.GetInt("BankType"),
QCategoryId = string.Format("{0},{1},{2}", (int)QuestionCategoryEnum.ChooseWord, (int)QuestionCategoryEnum.ChooseMean, (int)QuestionCategoryEnum.ChooseWordUse),
StartId = base.ParmJObj.GetInt("StartId"),
};
var list = courseExamModule.GetAppQuestionCategoryListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
pageModel.Count = rowsCount;
......@@ -1010,6 +1013,7 @@ namespace Edu.WebApi.Controllers.Exam
{
BankType = (LevelTypeEnum)base.ParmJObj.GetInt("BankType"),
QCategoryId = string.Format("{0}", (int)QuestionCategoryEnum.ChooseGrammarUse),
StartId = base.ParmJObj.GetInt("StartId"),
};
var list = courseExamModule.GetAppQuestionCategoryListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
pageModel.Count = rowsCount;
......@@ -1029,6 +1033,7 @@ namespace Edu.WebApi.Controllers.Exam
{
BankType = (LevelTypeEnum)base.ParmJObj.GetInt("BankType"),
QCategoryId = string.Format("{0}", (int)QuestionCategoryEnum.Listening),
StartId = base.ParmJObj.GetInt("StartId"),
};
var list = courseExamModule.GetAppQuestionCategoryListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
pageModel.Count = rowsCount;
......@@ -1048,6 +1053,7 @@ namespace Edu.WebApi.Controllers.Exam
{
BankType = (LevelTypeEnum)base.ParmJObj.GetInt("BankType"),
QCategoryId = string.Format("{0}", (int)QuestionCategoryEnum.ReadingChoose),
StartId = base.ParmJObj.GetInt("StartId"),
};
var list = courseExamModule.GetAppQuestionCategoryListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
pageModel.Count = rowsCount;
......@@ -1067,6 +1073,7 @@ namespace Edu.WebApi.Controllers.Exam
{
BankType = (LevelTypeEnum)base.ParmJObj.GetInt("BankType"),
};
query.StudentId = base.ParmJObj.GetInt("StudentId");
var list = courseExamModule.GetAppBankPageModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
pageModel.Count = rowsCount;
pageModel.PageData = list;
......@@ -1096,6 +1103,7 @@ namespace Edu.WebApi.Controllers.Exam
/// </summary>
/// <returns></returns>
[HttpPost]
[AllowRepeat]
public ApiResult SetStudentPractice()
{
var model = new RB_Student_Practice_Extend()
......@@ -1113,9 +1121,36 @@ namespace Edu.WebApi.Controllers.Exam
AnswerParse=base.ParmJObj.GetStringValue("AnswerParse"),
IsAnswer=base.ParmJObj.GetInt("IsAnswer"),
IsWrong=base.ParmJObj.GetInt("IsWrong"),
StudentAnswer=base.ParmJObj.GetStringValue("StudentAnswer"),
};
bool flag = courseExamModule.SetStudentPracticeModule(model);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 新增修改学员考试
/// </summary>
/// <returns></returns>
[HttpPost]
[AllowRepeat]
public ApiResult SetStudentExam()
{
var model = new RB_Student_Exam_Extend()
{
Id=base.ParmJObj.GetInt("Id"),
BankId=base.ParmJObj.GetInt("BankId"),
StudentId=base.ParmJObj.GetInt("StudentId"),
StartTime=base.ParmJObj.GetDateTime("StartTime"),
EndTime=base.ParmJObj.GetDateTime("EndTime"),
Score=base.ParmJObj.GetDecimal("Score"),
Times=base.ParmJObj.GetInt("Times"),
CreateTime=DateTime.Now,
GroupId=base.ParmJObj.GetInt("GroupId")
};
bool flag = courseExamModule.SetStudentExamModule(model);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
#endregion
}
}
\ No newline at end of file
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