Commit 3b62dd09 authored by liudong1993's avatar liudong1993

1

parents 5d9906f5 4d42b7f5
...@@ -176,10 +176,8 @@ namespace Edu.Common.Plugin ...@@ -176,10 +176,8 @@ namespace Edu.Common.Plugin
System.Net.WebResponse wResp = wReq.GetResponse(); System.Net.WebResponse wResp = wReq.GetResponse();
System.IO.Stream respStream = wResp.GetResponseStream(); System.IO.Stream respStream = wResp.GetResponseStream();
// Dim reader As StreamReader = New StreamReader(respStream) // Dim reader As StreamReader = New StreamReader(respStream)
using (System.IO.StreamReader reader = new System.IO.StreamReader(respStream, Encoding.GetEncoding(type))) using System.IO.StreamReader reader = new System.IO.StreamReader(respStream, Encoding.GetEncoding(type));
{ return reader.ReadToEnd();
return reader.ReadToEnd();
}
} }
catch (System.Exception ex) catch (System.Exception ex)
{ {
......
...@@ -167,6 +167,11 @@ namespace Edu.Model.CacheModel ...@@ -167,6 +167,11 @@ namespace Edu.Model.CacheModel
/// 客服Token /// 客服Token
/// </summary> /// </summary>
public TenCccTokenItem TenCccToken { get; set; } public TenCccTokenItem TenCccToken { get; set; }
/// <summary>
/// 是否是课程顾问(1-是)
/// </summary>
public int IsCourseConsultant { get; set; }
} }
/// <summary> /// <summary>
......
using Edu.Common.Enum;
using System;
using VT.FW.DB;
namespace Edu.Model.Entity.Exam
{
/// <summary>
/// 单词测试实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_StuWords_Exam
{
/// <summary>
/// 学员单词考试主键编号
/// </summary>
public int Id { get; set; }
/// <summary>
/// 班级编号
/// </summary>
public int ClassId { get; set; }
/// <summary>
/// 课程编号
/// </summary>
public int CourseId { get; set; }
/// <summary>
/// Account表(Id字段)学员账号
/// </summary>
public int Stu_Account_Id { get; set; }
/// <summary>
/// 章节编号
/// </summary>
public int ChapterId { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 学校Id
/// </summary>
public int School_Id { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int? Group_Id { get; set; }
/// <summary>
/// 状态
/// </summary>
public DateStateEnum Status { get; set; }
/// <summary>
/// 得分
/// </summary>
public decimal Score { get; set; }
/// <summary>
/// 考试开始时间
/// </summary>
public DateTime? ExamStartTime { get; set; }
/// <summary>
/// 考试结束时间
/// </summary>
public DateTime? ExamEndTime { get; set; }
}
}
using System;
using VT.FW.DB;
namespace Edu.Model.Entity.Exam
{
/// <summary>
/// 单词测试详情实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_StuWords_ExamDetail
{
/// <summary>
/// 单词考试详情主键编号
/// </summary>
public int DetailId { get; set; }
/// <summary>
/// 单词考试编号
/// </summary>
public int ExamId { get; set; }
/// <summary>
/// 单词编号
/// </summary>
public int WordId { get; set; }
/// <summary>
/// 问题标题
/// </summary>
public string Title { get; set; }
/// <summary>
/// 问题内容
/// </summary>
public string QuestionContent { get; set; }
/// <summary>
/// 问题类型编号
/// </summary>
public int? QuestionTypeId { get; set; }
/// <summary>
/// 问题类型Key
/// </summary>
public string QuestionTypeKey { get; set; }
/// <summary>
/// 是否回答正确(1-是)
/// </summary>
public int IsRight { get; set; }
/// <summary>
/// 学生答案
/// </summary>
public string Answer { get; set; }
}
}
...@@ -63,6 +63,16 @@ namespace Edu.Model.Entity.Exam ...@@ -63,6 +63,16 @@ namespace Edu.Model.Entity.Exam
/// </summary> /// </summary>
public DateStateEnum Status { get; set; } public DateStateEnum Status { get; set; }
/// <summary>
/// 当前章节单词学习数量
/// </summary>
public int PrepNum { get; set; }
/// <summary>
/// 上一章节复习单词数量
/// </summary>
public int ReviewNum { get; set; }
/// <summary> /// <summary>
/// 学习单词数量 /// 学习单词数量
/// </summary> /// </summary>
......
...@@ -19,5 +19,10 @@ namespace Edu.Model.ViewModel.Course ...@@ -19,5 +19,10 @@ namespace Edu.Model.ViewModel.Course
/// 章节编号 /// 章节编号
/// </summary> /// </summary>
public string QChapterIds { get; set; } public string QChapterIds { get; set; }
/// <summary>
/// 小于等于当前章节
/// </summary>
public int LessThanOrEqualChapterId { get; set; }
} }
} }
using Edu.Model.Entity.Exam;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Model.ViewModel.Exam
{
/// <summary>
/// 单词测试详情扩展实体类
/// </summary>
public class RB_StuWords_ExamDetail_Extend: RB_StuWords_ExamDetail
{
/// <summary>
/// 考试编号
/// </summary>
public string QExamIds { get; set; }
}
}
using Edu.Model.Entity.Exam;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Model.ViewModel.Exam
{
/// <summary>
/// 单词测试扩展实体类
/// </summary>
public class RB_StuWords_Exam_Extend : RB_StuWords_Exam
{
/// <summary>
/// 单词考试详情
/// </summary>
public List<RB_StuWords_ExamDetail_Extend> ExamDetailList { get; set; }
/// <summary>
/// 学习分钟数
/// </summary>
public string ExamMinutes
{
get
{
string str = "";
if (this.ExamStartTime != null && this.ExamEndTime != null)
{
str = Common.ConvertHelper.CalcMinutes(Convert.ToDateTime(this.ExamStartTime), Convert.ToDateTime(this.ExamEndTime)).ToString();
}
return str;
}
}
}
}
...@@ -11,6 +11,16 @@ namespace Edu.Model.ViewModel.Exam ...@@ -11,6 +11,16 @@ namespace Edu.Model.ViewModel.Exam
/// </summary> /// </summary>
public class RB_StuWords_Prep_Extend: RB_StuWords_Prep public class RB_StuWords_Prep_Extend: RB_StuWords_Prep
{ {
/// <summary>
/// 复习章节编号
/// </summary>
public int ReviewCourseChapterId { get; set; }
/// <summary>
/// 学习类型(1-预习,2-复习)
/// </summary>
public int StudyType { get; set; }
/// <summary> /// <summary>
/// 学习分钟数 /// 学习分钟数
/// </summary> /// </summary>
......
...@@ -10,6 +10,20 @@ namespace Edu.Model.ViewModel.Exam ...@@ -10,6 +10,20 @@ namespace Edu.Model.ViewModel.Exam
/// </summary> /// </summary>
public class RB_StuWords_Review_Extend : RB_StuWords_Review public class RB_StuWords_Review_Extend : RB_StuWords_Review
{ {
/// <summary>
/// 学习分钟数
/// </summary>
public string StartMinutes
{
get
{
string str = "";
if (this.StartTime != null && this.EndTime != null)
{
str = Common.ConvertHelper.CalcMinutes(Convert.ToDateTime(this.StartTime), Convert.ToDateTime(this.EndTime)).ToString();
}
return str;
}
}
} }
} }
...@@ -157,6 +157,11 @@ namespace Edu.Model.ViewModel.Grade ...@@ -157,6 +157,11 @@ namespace Edu.Model.ViewModel.Grade
/// </summary> /// </summary>
public object Ranks { get; set; } public object Ranks { get; set; }
/// <summary>
/// 完成计划数量
/// </summary>
public int FinishNum { get; set; }
/// <summary> /// <summary>
/// 总的上课次数 /// 总的上课次数
......
using System; using Edu.Common.Enum.User;
using System;
namespace Edu.Model.ViewModel.User namespace Edu.Model.ViewModel.User
{ {
...@@ -92,5 +93,10 @@ namespace Edu.Model.ViewModel.User ...@@ -92,5 +93,10 @@ namespace Edu.Model.ViewModel.User
/// 是否是电话客服 /// 是否是电话客服
/// </summary> /// </summary>
public int IsTenCccUser { get; set; } public int IsTenCccUser { get; set; }
/// <summary>
/// 用户角色
/// </summary>
public UserRoleEnum UserRole { get; set; }
} }
} }
\ No newline at end of file
...@@ -326,5 +326,10 @@ namespace Edu.Model.ViewModel.User ...@@ -326,5 +326,10 @@ namespace Edu.Model.ViewModel.User
/// </summary> /// </summary>
public int Q_EnrollState { get; set; } public int Q_EnrollState { get; set; }
#endregion #endregion
/// <summary>
/// 是否存在课程顾问(1-存在,2-不存在)
/// </summary>
public int ExistCourseConsultant { get; set; }
} }
} }
\ No newline at end of file
...@@ -31,6 +31,8 @@ using Edu.Repository.Sell; ...@@ -31,6 +31,8 @@ using Edu.Repository.Sell;
using Edu.Module.User; using Edu.Module.User;
using System.Web; using System.Web;
using Edu.Common.Enum.System; using Edu.Common.Enum.System;
using Edu.Repository.Exam;
using Edu.Model.ViewModel.Exam;
namespace Edu.Module.Course namespace Edu.Module.Course
{ {
...@@ -205,6 +207,11 @@ namespace Edu.Module.Course ...@@ -205,6 +207,11 @@ namespace Edu.Module.Course
/// </summary> /// </summary>
private readonly RB_Class_FeedBackRepository class_FeedBackRepository = new RB_Class_FeedBackRepository(); private readonly RB_Class_FeedBackRepository class_FeedBackRepository = new RB_Class_FeedBackRepository();
/// <summary>
/// 学员单词预习仓储层对象
/// </summary>
private readonly RB_StuWords_PrepRepository stuWords_PrepRepository = new RB_StuWords_PrepRepository();
/// <summary> /// <summary>
/// 获取班级列表 /// 获取班级列表
/// </summary> /// </summary>
...@@ -1823,7 +1830,7 @@ namespace Edu.Module.Course ...@@ -1823,7 +1830,7 @@ namespace Edu.Module.Course
} }
list.Add(new list.Add(new
{ {
UserIcon = item.UserIcon, item.UserIcon,
item.Id, item.Id,
SexStr = item.Sex == 1 ? "男" : "女", SexStr = item.Sex == 1 ? "男" : "女",
item.GuestName, item.GuestName,
...@@ -3721,6 +3728,11 @@ namespace Edu.Module.Course ...@@ -3721,6 +3728,11 @@ namespace Edu.Module.Course
{ {
tempTimeGuestList.AddRange(tempGuestList.Where(qitem => qitem.ClassId == subItem.ClassId && subItem.ClassPlanId == qitem.ClassPlanId && (qitem.GuestState == GuestStateEnum.Normal || qitem.GuestState == GuestStateEnum.StopClassesApplyIng || ((qitem.GuestState == GuestStateEnum.StopClasses || qitem.GuestState == GuestStateEnum.Graduate) && qitem.ChangeEffectTime.HasValue && Convert.ToDateTime(Common.ConvertHelper.FormatDate(qitem.ChangeEffectTime)) >= subItem.ClassDate)))); tempTimeGuestList.AddRange(tempGuestList.Where(qitem => qitem.ClassId == subItem.ClassId && subItem.ClassPlanId == qitem.ClassPlanId && (qitem.GuestState == GuestStateEnum.Normal || qitem.GuestState == GuestStateEnum.StopClassesApplyIng || ((qitem.GuestState == GuestStateEnum.StopClasses || qitem.GuestState == GuestStateEnum.Graduate) && qitem.ChangeEffectTime.HasValue && Convert.ToDateTime(Common.ConvertHelper.FormatDate(qitem.ChangeEffectTime)) >= subItem.ClassDate))));
} }
int CompleteProgress = 0;
if (subItem.TotalPlanNum > 0)
{
CompleteProgress = (int)((Convert.ToDecimal(subItem.FinishNum) / Convert.ToDecimal(subItem.TotalPlanNum)) * 100);
}
subList.Add(new subList.Add(new
{ {
ClassType = 1, ClassType = 1,
...@@ -3729,7 +3741,7 @@ namespace Edu.Module.Course ...@@ -3729,7 +3741,7 @@ namespace Edu.Module.Course
subItem.CourseName, subItem.CourseName,
subItem.RoomName, subItem.RoomName,
subItem.TeacherName, subItem.TeacherName,
subItem.CompleteProgress, CompleteProgress,
subItem.Ranks, subItem.Ranks,
subItem.TotalPlanNum, subItem.TotalPlanNum,
TimeStr = Common.ConvertHelper.GetTimeStr(currentDate), TimeStr = Common.ConvertHelper.GetTimeStr(currentDate),
...@@ -4176,6 +4188,12 @@ namespace Edu.Module.Course ...@@ -4176,6 +4188,12 @@ namespace Edu.Module.Course
} }
} }
int CompleteProgress = 0;
if(subItem.TotalPlanNum>0)
{
CompleteProgress = (int)(Convert.ToDecimal(subItem.FinishNum) / Convert.ToDecimal(subItem.TotalPlanNum) * 100);
}
subList.Add(new subList.Add(new
{ {
Id = item?.ClassTimeId ?? 0, Id = item?.ClassTimeId ?? 0,
...@@ -4185,7 +4203,7 @@ namespace Edu.Module.Course ...@@ -4185,7 +4203,7 @@ namespace Edu.Module.Course
subItem.CourseName, subItem.CourseName,
subItem.RoomName, subItem.RoomName,
subItem.TeacherName, subItem.TeacherName,
subItem.CompleteProgress, CompleteProgress,
subItem.TotalPlanNum, subItem.TotalPlanNum,
subItem.Ranks, subItem.Ranks,
TimeStr = Common.ConvertHelper.GetTimeStr(currentDate), TimeStr = Common.ConvertHelper.GetTimeStr(currentDate),
...@@ -4850,7 +4868,7 @@ namespace Edu.Module.Course ...@@ -4850,7 +4868,7 @@ namespace Edu.Module.Course
/// </summary> /// </summary>
/// <param name="classId"></param> /// <param name="classId"></param>
/// <returns></returns> /// <returns></returns>
public object GetIndexWords(int classId, int courseId, int groupId) public object GetIndexWords(int classId, int courseId, int groupId,int Stu_Account_Id=0)
{ {
int NextCourseNo = 0, ReviewCourseNo = 0; int NextCourseNo = 0, ReviewCourseNo = 0;
var planModel = class_PlanRepository.GetToDayClassPlan(classId, groupId); var planModel = class_PlanRepository.GetToDayClassPlan(classId, groupId);
...@@ -4900,13 +4918,23 @@ namespace Edu.Module.Course ...@@ -4900,13 +4918,23 @@ namespace Edu.Module.Course
{ {
ReviewNum = course_WordsRepository.GetCourseWordsNum(courseId, ReviewCourseNo, groupId); ReviewNum = course_WordsRepository.GetCourseWordsNum(courseId, ReviewCourseNo, groupId);
} }
decimal TotalScore = 0;
if (Stu_Account_Id > 0)
{
TotalScore= stuWords_PrepRepository.GetStuWordsPrepScoreRepository(new RB_StuWords_Prep_Extend()
{
CourseId = courseId,
Stu_Account_Id = Stu_Account_Id
});
}
return new return new
{ {
NextWord = NextNum, NextWord = NextNum,
NextCourseNo, NextCourseNo,
ReviewWord = ReviewNum, ReviewWord = ReviewNum,
ReviewCourseNo, ReviewCourseNo,
CourseId= courseId CourseId = courseId,
TotalScore
}; };
} }
...@@ -4919,7 +4947,8 @@ namespace Edu.Module.Course ...@@ -4919,7 +4947,8 @@ namespace Edu.Module.Course
public List<RB_Class_Plan_ViewModel> GetMyStudyCourseList(int classId, int group_Id) public List<RB_Class_Plan_ViewModel> GetMyStudyCourseList(int classId, int group_Id)
{ {
var planList = class_PlanRepository.GetStudyClassPlanList(classId, group_Id); var planList = class_PlanRepository.GetStudyClassPlanList(classId, group_Id);
if (planList.Any()) { if (planList.Any())
{
string planIds = string.Join(",", planList.Select(x => x.ClassPlanId)); string planIds = string.Join(",", planList.Select(x => x.ClassPlanId));
var timeList = class_TimeRepository.GetClassTimeListRepository(new RB_Class_Time_ViewModel() { Group_Id = group_Id, QClassPlanIds = planIds }); var timeList = class_TimeRepository.GetClassTimeListRepository(new RB_Class_Time_ViewModel() { Group_Id = group_Id, QClassPlanIds = planIds });
var MaxPlan = planList.OrderByDescending(x => x.ClassDate).FirstOrDefault(); var MaxPlan = planList.OrderByDescending(x => x.ClassDate).FirstOrDefault();
...@@ -4935,7 +4964,8 @@ namespace Edu.Module.Course ...@@ -4935,7 +4964,8 @@ namespace Edu.Module.Course
} }
} }
planList = planList.OrderByDescending(x => x.ClassDate).ToList(); planList = planList.OrderByDescending(x => x.ClassDate).ToList();
foreach (var item in planList) { foreach (var item in planList)
{
item.PlanTimeList = timeList.Where(x => x.ClassPlanId == item.ClassPlanId).ToList(); item.PlanTimeList = timeList.Where(x => x.ClassPlanId == item.ClassPlanId).ToList();
} }
} }
......
This diff is collapsed.
...@@ -423,7 +423,6 @@ namespace Edu.Module.Course ...@@ -423,7 +423,6 @@ namespace Edu.Module.Course
{ {
Id = 0, Id = 0,
OrderId = orderModel.OrderId, OrderId = orderModel.OrderId,
ClassId = orderModel.ClassId,
GuestName = item.StuName, GuestName = item.StuName,
GuestState = GuestStateEnum.Normal, GuestState = GuestStateEnum.Normal,
Profession = item?.StuProfession ?? "", Profession = item?.StuProfession ?? "",
...@@ -456,9 +455,20 @@ namespace Edu.Module.Course ...@@ -456,9 +455,20 @@ namespace Edu.Module.Course
CompleteHours = 0, CompleteHours = 0,
MakeUpHours = 0, MakeUpHours = 0,
StuIcon = item.StuIcon, StuIcon = item.StuIcon,
TotalHours = Convert.ToInt32(courseModel.ClassHours),
RenewState = 1 RenewState = 1
}; };
if (orderModel.OrderType == OrderTypeEnum.CourseOrder)
{
guestModel.ClassId = orderModel.ClassId;
guestModel.SourceId = 0;
guestModel.TotalHours = Convert.ToInt32(courseModel?.ClassHours ?? 0);
}
else if (orderModel.OrderType == OrderTypeEnum.StudyabroadOrder)
{
guestModel.ClassId = 0;
guestModel.CourseId = 0;
guestModel.SourceId = orderModel.SourceId;
}
SetOrderGuestInfo(guestModel, out string Nmessage); SetOrderGuestInfo(guestModel, out string Nmessage);
} }
return ""; return "";
......
This diff is collapsed.
...@@ -298,11 +298,12 @@ namespace Edu.Module.User ...@@ -298,11 +298,12 @@ namespace Edu.Module.User
{ {
List<WhereHelper> where = new List<WhereHelper>() List<WhereHelper> where = new List<WhereHelper>()
{ {
new WhereHelper(nameof(RB_Student_ViewModel.Group_Id),model.Group_Id), new WhereHelper(nameof(RB_Student_ViewModel.Group_Id),model.Group_Id),
new WhereHelper(nameof(RB_Student_ViewModel.Status),(int)DateStateEnum.Normal),
}; };
if (Type == 1) if (Type == 1)
{ {
where.Add(new WhereHelper(nameof(RB_Student_ViewModel.StuTel), model.StuTel)); where.Add(new WhereHelper(nameof(RB_Student_ViewModel.StuRealMobile), model.StuRealMobile));
} }
if (Type == 2) if (Type == 2)
{ {
...@@ -321,7 +322,8 @@ namespace Edu.Module.User ...@@ -321,7 +322,8 @@ namespace Edu.Module.User
OperatorEnum = OperatorEnum.NotEqual OperatorEnum = OperatorEnum.NotEqual
}); });
} }
return studentRepository.Exists(where); var NewId= studentRepository.Exists("StuId", where);
return NewId > 0;
} }
/// <summary> /// <summary>
......
...@@ -86,6 +86,10 @@ WHERE 1=1 ...@@ -86,6 +86,10 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Course_Words_Extend.ChapterId), query.QChapterIds); builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Course_Words_Extend.ChapterId), query.QChapterIds);
} }
if (query.LessThanOrEqualChapterId > 0)
{
builder.AppendFormat(" AND A.{0}<={1} ", nameof(RB_Course_Words_Extend.ChapterId), query.LessThanOrEqualChapterId);
}
} }
return Get<RB_Course_Words_Extend>(builder.ToString()).ToList(); return Get<RB_Course_Words_Extend>(builder.ToString()).ToList();
} }
......
using Edu.Model.Entity.Exam;
using Edu.Model.ViewModel.Exam;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Edu.Repository.Exam
{
/// <summary>
/// 单词测试详情仓储层
/// </summary>
public class RB_StuWords_ExamDetailRepository : BaseRepository<RB_StuWords_ExamDetail>
{
/// <summary>
/// 获取学员单词测试详情列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_StuWords_ExamDetail_Extend> GetStuWordsExamDetailListRepository(RB_StuWords_ExamDetail_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM RB_StuWords_ExamDetail AS A
WHERE 1=1
");
if (query != null)
{
if (query.ExamId > 0)
{
builder.AppendFormat(" A.{0}={1} ", nameof(RB_StuWords_ExamDetail_Extend.ExamId), query.ExamId);
}
if (!string.IsNullOrEmpty(query.QExamIds))
{
builder.AppendFormat(" A.{0} IN({1}) ", nameof(RB_StuWords_ExamDetail_Extend.ExamId), query.QExamIds);
}
}
return Get<RB_StuWords_ExamDetail_Extend>(builder.ToString()).ToList();
}
}
}
using Edu.Model.Entity.Exam;
using Edu.Model.ViewModel.Exam;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Edu.Repository.Exam
{
/// <summary>
/// 单词测试仓储层
/// </summary>
public class RB_StuWords_ExamRepository : BaseRepository<RB_StuWords_Exam>
{
/// <summary>
/// 获取学员单词考试分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_StuWords_Exam_Extend> GetStuWordsExamPageRepository(int pageIndex, int pageSize, out long rowsCount, RB_StuWords_Exam_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM RB_StuWords_Exam AS A
WHERE 1=1
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_StuWords_Exam_Extend.Group_Id), query.Group_Id);
}
if (query.Stu_Account_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_StuWords_Exam_Extend.Stu_Account_Id), query.Stu_Account_Id);
}
if (query.CourseId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_StuWords_Exam_Extend.CourseId), query.CourseId);
}
if (query.ChapterId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_StuWords_Exam_Extend.ChapterId), query.ChapterId);
}
}
return GetPage<RB_StuWords_Exam_Extend>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList();
}
}
}
...@@ -49,10 +49,10 @@ namespace Edu.Repository.Exam ...@@ -49,10 +49,10 @@ namespace Edu.Repository.Exam
/// </summary> /// </summary>
/// <param name="query"></param> /// <param name="query"></param>
/// <returns></returns> /// <returns></returns>
public List<RB_StuWords_Prep_Extend> GetStuWordsPrepPageRepository(int pageIndex,int pageSize,out long rowsCount, RB_StuWords_Prep_Extend query) public decimal GetStuWordsPrepScoreRepository(RB_StuWords_Prep_Extend query)
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" SELECT A.* FROM RB_StuWords_Prep AS A WHERE 1=1 "); builder.AppendFormat(@" SELECT SUM(A.Score) AS Score FROM RB_StuWords_Prep AS A WHERE 1=1 ");
if (query != null) if (query != null)
{ {
if (query.Group_Id > 0) if (query.Group_Id > 0)
...@@ -72,7 +72,13 @@ namespace Edu.Repository.Exam ...@@ -72,7 +72,13 @@ namespace Edu.Repository.Exam
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_StuWords_Prep_Extend.Stu_Account_Id), query.Stu_Account_Id); builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_StuWords_Prep_Extend.Stu_Account_Id), query.Stu_Account_Id);
} }
} }
return GetPage<RB_StuWords_Prep_Extend>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList(); decimal totalScore = 0;
object obj = base.ExecuteScalar(builder.ToString());
if (obj != null)
{
decimal.TryParse(obj.ToString(), out totalScore);
}
return totalScore;
} }
} }
} }
...@@ -20,7 +20,7 @@ namespace Edu.Repository.Exam ...@@ -20,7 +20,7 @@ namespace Edu.Repository.Exam
public List<RB_StuWords_Review_Extend> GetStuWordsReviewListRepository(RB_StuWords_Review_Extend query) public List<RB_StuWords_Review_Extend> GetStuWordsReviewListRepository(RB_StuWords_Review_Extend query)
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" SELECT A.* FROM RB_StuWords_Prep AS A WHERE 1=1 "); builder.AppendFormat(@" SELECT A.* FROM RB_StuWords_Review AS A WHERE 1=1 ");
if (query != null) if (query != null)
{ {
if (query.Group_Id > 0) if (query.Group_Id > 0)
......
...@@ -580,22 +580,24 @@ where sog.Account_Id={query.StuId} and c.ClassStatus in(1,2) and c.`Status`=0 an ...@@ -580,22 +580,24 @@ where sog.Account_Id={query.StuId} and c.ClassStatus in(1,2) and c.`Status`=0 an
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT A.ClassPlanId,A.ClassId,A.ClassDate,A.ClassRoomId,A.ClassName,A.CourseName,A.CourseId,A.Teacher_Id,A.TeacherName,A.UserIcon,A.RoomName SELECT A.ClassPlanId,A.ClassId,A.ClassDate,A.ClassRoomId,A.ClassName,A.CourseName,A.CourseId,A.Teacher_Id,A.TeacherName,A.UserIcon,A.RoomName
,SUM(A.minNum) AS ClassMinutes,MIN(A.StartTime) AS StartTime,MAX(A.EndTime) AS EndTime,A.CompleteProgress,a.TotalPlanNum, ,SUM(A.minNum) AS ClassMinutes,MIN(A.StartTime) AS StartTime,MAX(A.EndTime) AS EndTime,A.CompleteProgress,a.TotalPlanNum,A.FinishNum,
(SELECT COUNT(*) from rb_class_plan where `Status`=0 and DATE_FORMAT(ClassDate,'%Y-%m-%d') <=DATE_FORMAT(a.ClassDate,'%Y-%m-%d') and ClassId=a.ClassId) as Ranks (SELECT COUNT(*) from rb_class_plan where `Status`=0 and DATE_FORMAT(ClassDate,'%Y-%m-%d') <=DATE_FORMAT(a.ClassDate,'%Y-%m-%d') and ClassId=a.ClassId) as Ranks
FROM FROM
( (
SELECT A.ClassPlanId, A.ClassId,A.ClassDate,A.ClassRoomId,B.ClassName,C.CourseName,c.CourseId,B.Teacher_Id,IFNULL(D.TeacherName,'') AS TeacherName,IFNULL(D.TeacherHead,'') AS UserIcon,E.RoomName SELECT A.ClassPlanId, A.ClassId,A.ClassDate,A.ClassRoomId,B.ClassName,C.CourseName,c.CourseId,B.Teacher_Id,IFNULL(D.TeacherName,'') AS TeacherName
,TIMESTAMPDIFF(MINUTE, CONCAT('2020-12-16',' ',F.StartTime), CONCAT('2020-12-16',' ',F.EndTime)) AS minNum,F.StartTime,F.EndTime,B.CompleteProgress,plan.TotalPlanNum ,IFNULL(D.TeacherHead,'') AS UserIcon,E.RoomName,TIMESTAMPDIFF(MINUTE, CONCAT('2020-12-16',' ',F.StartTime), CONCAT('2020-12-16',' ',F.EndTime)) AS minNum
,F.StartTime,F.EndTime,B.CompleteProgress,plan.TotalPlanNum,finishPlan.TotalPlanNum AS FinishNum
FROM rb_class_plan AS A INNER JOIN rb_class AS B ON A.ClassId=B.ClassId FROM rb_class_plan AS A INNER JOIN rb_class AS B ON A.ClassId=B.ClassId
LEFT JOIN rb_course AS C ON B.CouseId=C.CourseId LEFT JOIN rb_course AS C ON B.CouseId=C.CourseId
LEFT JOIN rb_teacher AS D ON A.TeacherId=D.TId LEFT JOIN rb_teacher AS D ON A.TeacherId=D.TId
LEFT JOIN rb_class_room AS E ON A.ClassRoomId=E.RoomId LEFT JOIN rb_class_room AS E ON A.ClassRoomId=E.RoomId
LEFT JOIN rb_class_time F on A.ClassPlanId = F.ClassPlanId LEFT JOIN rb_class_time F on A.ClassPlanId = F.ClassPlanId
LEFT JOIN ((SELECT ClassId,COUNT(*) as TotalPlanNum from rb_class_plan where `Status`=0 GROUP BY ClassId)) as plan on plan.ClassId=a.ClassId LEFT JOIN (SELECT ClassId,COUNT(*) as TotalPlanNum from rb_class_plan where `Status`=0 AND ClassDate<='{1}' GROUP BY ClassId) as finishPlan on finishPlan.ClassId=a.ClassId
LEFT JOIN (SELECT ClassId,COUNT(*) as TotalPlanNum from rb_class_plan where `Status`=0 GROUP BY ClassId) as plan on plan.ClassId=a.ClassId
WHERE 1=1 AND A.`Status`=0 AND B.`Status`=0 {0} WHERE 1=1 AND A.`Status`=0 AND B.`Status`=0 {0}
) AS A ) AS A
GROUP BY A.ClassPlanId,A.ClassId ,A.ClassDate,A.ClassRoomId,A.CompleteProgress GROUP BY A.ClassPlanId,A.ClassId ,A.ClassDate,A.ClassRoomId,A.CompleteProgress
", where.ToString()); ", where.ToString(),Common.ConvertHelper.FormatDate(DateTime.Now));
return Get<RB_Class_Plan_ViewModel>(builder.ToString()).ToList(); return Get<RB_Class_Plan_ViewModel>(builder.ToString()).ToList();
} }
...@@ -1187,7 +1189,7 @@ WHERE a.`Status`=0 "); ...@@ -1187,7 +1189,7 @@ WHERE a.`Status`=0 ");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassId), classId); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassId), classId);
} }
builder.AppendFormat(@$" And a.ClassDate <='{DateTime.Now.ToString("yyyy-MM-dd")} 23:59:59'"); builder.AppendFormat(@$" And a.ClassDate <='{Common.ConvertHelper.FormatDate(DateTime.Now)} 23:59:59'");
builder.AppendFormat(@" ORDER BY ClassDate DESC limit " + day); builder.AppendFormat(@" ORDER BY ClassDate DESC limit " + day);
return Get<RB_Class_Plan_ViewModel>(builder.ToString()).ToList(); return Get<RB_Class_Plan_ViewModel>(builder.ToString()).ToList();
} }
...@@ -1203,7 +1205,7 @@ WHERE a.`Status`=0 "); ...@@ -1203,7 +1205,7 @@ WHERE a.`Status`=0 ");
string sql = $@"SELECT a.*,(select count(0) from rb_class_plan p where p.`Status`=0 and p.Group_Id ={groupId} and p.ClassId ={classId} and p.ClassDate < a.ClassDate) as LessonPlanNum string sql = $@"SELECT a.*,(select count(0) from rb_class_plan p where p.`Status`=0 and p.Group_Id ={groupId} and p.ClassId ={classId} and p.ClassDate < a.ClassDate) as LessonPlanNum
FROM rb_class_plan as a FROM rb_class_plan as a
WHERE a.`Status`=0 and a.Group_Id ={groupId} and a.ClassId ={classId} WHERE a.`Status`=0 and a.Group_Id ={groupId} and a.ClassId ={classId}
and a.ClassDate <='{DateTime.Now.ToString("yyyy-MM-dd")} 23:59:59' and a.ClassDate <='{Common.ConvertHelper.FormatDate(DateTime.Now)} 23:59:59'
order by a.ClassDate desc limit 1"; order by a.ClassDate desc limit 1";
return Get<RB_Class_Plan_ViewModel>(sql).FirstOrDefault(); return Get<RB_Class_Plan_ViewModel>(sql).FirstOrDefault();
} }
...@@ -1219,7 +1221,7 @@ order by a.ClassDate desc limit 1"; ...@@ -1219,7 +1221,7 @@ order by a.ClassDate desc limit 1";
string sql = $@"SELECT a.*,(select count(0) from rb_class_plan p where p.`Status`=0 and p.Group_Id ={groupId} and p.ClassId ={classId} and p.ClassDate < a.ClassDate) as LessonPlanNum string sql = $@"SELECT a.*,(select count(0) from rb_class_plan p where p.`Status`=0 and p.Group_Id ={groupId} and p.ClassId ={classId} and p.ClassDate < a.ClassDate) as LessonPlanNum
FROM rb_class_plan as a FROM rb_class_plan as a
WHERE a.`Status`=0 and a.Group_Id ={groupId} and a.ClassId ={classId} WHERE a.`Status`=0 and a.Group_Id ={groupId} and a.ClassId ={classId}
and a.ClassDate <='{DateTime.Now.ToString("yyyy-MM-dd")} 23:59:59' and a.ClassDate <='{Common.ConvertHelper.FormatDate(DateTime.Now)} 23:59:59'
order by a.ClassDate desc"; order by a.ClassDate desc";
return Get<RB_Class_Plan_ViewModel>(sql).ToList(); return Get<RB_Class_Plan_ViewModel>(sql).ToList();
} }
......
...@@ -150,16 +150,19 @@ FROM ...@@ -150,16 +150,19 @@ FROM
( (
SELECT A.Id,A.Account,A.WorkUserId,A.`Password`,A.AccountType,A.AccountId,A.CreateBy,A.CreateTime,A.UpdateBy,A.UpdateTime,A.Group_Id,B.School_Id,A.`Status`,B.LeaveStatus SELECT A.Id,A.Account,A.WorkUserId,A.`Password`,A.AccountType,A.AccountId,A.CreateBy,A.CreateTime,A.UpdateBy,A.UpdateTime,A.Group_Id,B.School_Id,A.`Status`,B.LeaveStatus
,A.AnnualLeaveDay, A.DirectSupervisor,A.OpenId,A.ActivationStatus,IFNULL(B.MName,'') AS AccountName,B.MHead AS UserIcon,B.Dept_Id,B.Post_Id,IFNULL(B.Email,'') AS Email,B.IsTenCccUser ,A.AnnualLeaveDay, A.DirectSupervisor,A.OpenId,A.ActivationStatus,IFNULL(B.MName,'') AS AccountName,B.MHead AS UserIcon,B.Dept_Id,B.Post_Id,IFNULL(B.Email,'') AS Email,B.IsTenCccUser
,B.UserRole
FROM rb_account AS A INNER JOIN rb_manager AS B ON A.AccountId=B.MId AND A.AccountType=1 FROM rb_account AS A INNER JOIN rb_manager AS B ON A.AccountId=B.MId AND A.AccountType=1
WHERE 1=1 {0} WHERE 1=1 {0}
UNION ALL UNION ALL
SELECT A.Id,A.Account,A.WorkUserId,A.`Password`,A.AccountType,A.AccountId,A.CreateBy,A.CreateTime,A.UpdateBy,A.UpdateTime,A.Group_Id,B.School_Id,A.`Status`,B.LeaveStatus SELECT A.Id,A.Account,A.WorkUserId,A.`Password`,A.AccountType,A.AccountId,A.CreateBy,A.CreateTime,A.UpdateBy,A.UpdateTime,A.Group_Id,B.School_Id,A.`Status`,B.LeaveStatus
,A.AnnualLeaveDay, A.DirectSupervisor,A.OpenId,A.ActivationStatus,IFNULL(B.TeacherName,'') AS AccountName,B.TeacherIcon AS UserIcon,B.Dept_Id,B.Post_Id,IFNULL(B.Email,'') AS Email,B.IsTenCccUser ,A.AnnualLeaveDay, A.DirectSupervisor,A.OpenId,A.ActivationStatus,IFNULL(B.TeacherName,'') AS AccountName,B.TeacherIcon AS UserIcon,B.Dept_Id,B.Post_Id,IFNULL(B.Email,'') AS Email,B.IsTenCccUser
,B.UserRole
FROM rb_account AS A INNER JOIN rb_teacher AS B ON A.AccountId=B.TId AND A.AccountType=2 FROM rb_account AS A INNER JOIN rb_teacher AS B ON A.AccountId=B.TId AND A.AccountType=2
WHERE 1=1 {0} WHERE 1=1 {0}
UNION ALL UNION ALL
SELECT A.Id,A.Account,A.WorkUserId,A.`Password`,A.AccountType,A.AccountId,A.CreateBy,A.CreateTime,A.UpdateBy,A.UpdateTime,A.Group_Id,B.School_Id,A.`Status`,B.LeaveStatus SELECT A.Id,A.Account,A.WorkUserId,A.`Password`,A.AccountType,A.AccountId,A.CreateBy,A.CreateTime,A.UpdateBy,A.UpdateTime,A.Group_Id,B.School_Id,A.`Status`,B.LeaveStatus
,A.AnnualLeaveDay, A.DirectSupervisor,A.OpenId,A.ActivationStatus,IFNULL(B.AssistName,'') AS AccountName,B.AssistIcon AS UserIcon,B.Dept_Id,B.Post_Id,IFNULL(B.Email,'') AS Email,0 AS IsTenCccUser ,A.AnnualLeaveDay, A.DirectSupervisor,A.OpenId,A.ActivationStatus,IFNULL(B.AssistName,'') AS AccountName,B.AssistIcon AS UserIcon,B.Dept_Id,B.Post_Id,IFNULL(B.Email,'') AS Email,0 AS IsTenCccUser
,0 AS UserRole
FROM rb_account AS A INNER JOIN rb_assist AS B ON A.AccountId=B.AId AND A.AccountType=3 FROM rb_account AS A INNER JOIN rb_assist AS B ON A.AccountId=B.AId AND A.AccountType=3
WHERE 1=1 {0} WHERE 1=1 {0}
) AS A LEFT JOIN rb_group AS g ON A.Group_Id=g.GId ) AS A LEFT JOIN rb_group AS g ON A.Group_Id=g.GId
...@@ -355,10 +358,10 @@ FROM ...@@ -355,10 +358,10 @@ FROM
{ {
where.AppendFormat(" AND B.{0}={1} ", nameof(Employee_ViewModel.Group_Id), query.Group_Id); where.AppendFormat(" AND B.{0}={1} ", nameof(Employee_ViewModel.Group_Id), query.Group_Id);
} }
if (query.School_Id > -1) //if (query.School_Id > -1)
{ //{
where.AppendFormat(" AND B.{0}={1} ", nameof(Employee_ViewModel.School_Id), query.School_Id); // where.AppendFormat(" AND B.{0}={1} ", nameof(Employee_ViewModel.School_Id), query.School_Id);
} //}
if (!string.IsNullOrWhiteSpace(query.Account)) if (!string.IsNullOrWhiteSpace(query.Account))
{ {
where.AppendFormat(" AND A.{0}='{1}' ", nameof(Employee_ViewModel.Account), query.Account.Trim()); where.AppendFormat(" AND A.{0}='{1}' ", nameof(Employee_ViewModel.Account), query.Account.Trim());
......
...@@ -28,11 +28,6 @@ namespace Edu.Repository.User ...@@ -28,11 +28,6 @@ namespace Edu.Repository.User
/// </summary> /// </summary>
private readonly RB_Student_LogRepository student_LogRepository = new RB_Student_LogRepository(); private readonly RB_Student_LogRepository student_LogRepository = new RB_Student_LogRepository();
/// <summary>
/// 学员协同人员仓储层对象
/// </summary>
private readonly RB_Student_AssistRepository student_AssistRepository = new RB_Student_AssistRepository();
/// <summary> /// <summary>
/// 客户阶段仓储层对象 /// 客户阶段仓储层对象
/// </summary> /// </summary>
...@@ -302,6 +297,18 @@ WHERE 1=1 ...@@ -302,6 +297,18 @@ WHERE 1=1
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_ViewModel.CreateBy), query.CreateBy); builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_ViewModel.CreateBy), query.CreateBy);
} }
} }
if (query.ExistCourseConsultant > 0)
{
if (query.ExistCourseConsultant == 1)
{
builder.AppendFormat(" AND Exists (SELECT StuId FROM rb_student_assist WHERE AssistType=2 AND `Status`=0 AND t.StuId=StuId) ");
}
if (query.ExistCourseConsultant == 2)
{
builder.AppendFormat(" AND NOT Exists (SELECT StuId FROM rb_student_assist WHERE AssistType=2 AND `Status`=0 AND t.StuId=StuId) ");
}
}
} }
builder.AppendFormat(" ORDER BY t.{0} DESC ", nameof(RB_Student_ViewModel.StuId)); builder.AppendFormat(" ORDER BY t.{0} DESC ", nameof(RB_Student_ViewModel.StuId));
return GetPage<RB_Student_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList(); return GetPage<RB_Student_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
...@@ -364,10 +371,11 @@ WHERE o.OrderState=1 and og.`Status`=0 and sog.`Status`=0 and og.GuestState <>2 ...@@ -364,10 +371,11 @@ WHERE o.OrderState=1 and og.`Status`=0 and sog.`Status`=0 and og.GuestState <>2
string logContent = ""; string logContent = "";
string logTitle = ""; string logTitle = "";
int createBy = 0; int createBy = 0;
if (model.CreateType == Common.Enum.User.StuCreateTypeEnum.CustomerInput || model.CreateType == Common.Enum.User.StuCreateTypeEnum.EmployeeInput) if (model.CreateType == Common.Enum.User.StuCreateTypeEnum.EmployeeInput)
{ {
model.StuSourceId = 0; model.StuSourceId = 0;
} }
model.StuTel = Common.Plugin.StringHelper.ReplaceMobile(model.StuRealMobile); model.StuTel = Common.Plugin.StringHelper.ReplaceMobile(model.StuRealMobile);
if (model.StuId > 0) if (model.StuId > 0)
{ {
......
...@@ -25,34 +25,34 @@ namespace Edu.ThirdCore.TenCloud ...@@ -25,34 +25,34 @@ namespace Edu.ThirdCore.TenCloud
/// <returns></returns> /// <returns></returns>
public async Task<(bool result, string message)> SetUserToCCCUser(Employee_ViewModel employee) public async Task<(bool result, string message)> SetUserToCCCUser(Employee_ViewModel employee)
{ {
CreateStaffRequest req = new CreateStaffRequest(); CreateStaffRequest req = new CreateStaffRequest
req.SdkAppId = SDKAPPID; {
SeatUserInfo seatUserInfo1 = new SeatUserInfo(); SdkAppId = SDKAPPID
seatUserInfo1.Name = employee.EmployeeName; };
seatUserInfo1.Mail = employee.Email; SeatUserInfo seatUserInfo1 = new SeatUserInfo
seatUserInfo1.Phone = employee.EmployeeTel; {
seatUserInfo1.Nick = employee.EmployeeName.ToCharArray()[0] + "老师"; Name = employee.EmployeeName,
seatUserInfo1.UserId = employee.Id.ToString(); Mail = employee.Email,
seatUserInfo1.StaffNumber = employee.Id.ToString(); Phone = employee.EmployeeTel,
Nick = employee.EmployeeName.ToCharArray()[0] + "老师",
UserId = employee.Id.ToString(),
StaffNumber = employee.Id.ToString()
};
req.Staffs = new SeatUserInfo[] { seatUserInfo1 }; req.Staffs = new SeatUserInfo[] { seatUserInfo1 };
var credential = TenCloudCredential._instance; var credential = TenCloudCredential._instance;
CreateStaffResponse resp = credential.CreateStaffSync(req); CreateStaffResponse resp = credential.CreateStaffSync(req);
//JObject result = JObject.Parse(AbstractModel.ToJsonString(resp)); if (resp.ErrorStaffList != null && resp.ErrorStaffList.Length > 0)
if (resp.ErrorStaffList!=null && resp.ErrorStaffList.Length>0)
{ {
return (false, resp.ErrorStaffList[0].Message); return (false, resp.ErrorStaffList[0].Message);
} }
else else
{ {
var groupId = QueryDescribeSkillGroup(); var groupId = QueryDescribeSkillGroup();
if (groupId == null) if (groupId == null)
{ {
return (false, "电话客服添加成功,但是关联技能组失败"); return (false, "电话客服添加成功,但是关联技能组失败");
} }
else else
{ {
SetTenUserStaffSkillGroupList(employee.Email, groupId); SetTenUserStaffSkillGroupList(employee.Email, groupId);
} }
...@@ -63,10 +63,12 @@ namespace Edu.ThirdCore.TenCloud ...@@ -63,10 +63,12 @@ namespace Edu.ThirdCore.TenCloud
public void SetTenUserStaffSkillGroupList(string mail, long?[] list) public void SetTenUserStaffSkillGroupList(string mail, long?[] list)
{ {
var credential = TenCloudCredential._instance; var credential = TenCloudCredential._instance;
BindStaffSkillGroupListRequest req = new BindStaffSkillGroupListRequest(); BindStaffSkillGroupListRequest req = new BindStaffSkillGroupListRequest
req.SdkAppId = SDKAPPID; {
req.StaffEmail = mail; SdkAppId = SDKAPPID,
req.SkillGroupList = list; StaffEmail = mail,
SkillGroupList = list
};
BindStaffSkillGroupListResponse resp = credential.BindStaffSkillGroupListSync(req); BindStaffSkillGroupListResponse resp = credential.BindStaffSkillGroupListSync(req);
} }
...@@ -74,19 +76,21 @@ namespace Edu.ThirdCore.TenCloud ...@@ -74,19 +76,21 @@ namespace Edu.ThirdCore.TenCloud
/// 获取技能组数组 /// 获取技能组数组
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public long?[] QueryDescribeSkillGroup() public long?[] QueryDescribeSkillGroup()
{ {
var credential = TenCloudCredential._instance; var credential = TenCloudCredential._instance;
DescribeSkillGroupInfoListRequest req = new DescribeSkillGroupInfoListRequest(); DescribeSkillGroupInfoListRequest req = new DescribeSkillGroupInfoListRequest
req.SdkAppId = SDKAPPID; {
req.PageSize = 1; SdkAppId = SDKAPPID,
req.PageNumber = 100; PageSize = 1,
PageNumber = 100
};
DescribeSkillGroupInfoListResponse resp = credential.DescribeSkillGroupInfoListSync(req); DescribeSkillGroupInfoListResponse resp = credential.DescribeSkillGroupInfoListSync(req);
if (resp.SkillGroupList != null && resp.SkillGroupList.Length > 0) if (resp.SkillGroupList != null && resp.SkillGroupList.Length > 0)
{ {
return resp.SkillGroupList.Select(x => x.SkillGroupId).ToArray(); return resp.SkillGroupList.Select(x => x.SkillGroupId).ToArray();
} }
else else
{ {
return null; return null;
} }
...@@ -100,11 +104,12 @@ namespace Edu.ThirdCore.TenCloud ...@@ -100,11 +104,12 @@ namespace Edu.ThirdCore.TenCloud
public async Task<(bool result, string message)> DelUserToCCCUser(Employee_ViewModel employee) public async Task<(bool result, string message)> DelUserToCCCUser(Employee_ViewModel employee)
{ {
var credential = TenCloudCredential._instance; var credential = TenCloudCredential._instance;
DeleteStaffRequest req = new DeleteStaffRequest(); DeleteStaffRequest req = new DeleteStaffRequest
req.SdkAppId = SDKAPPID; {
req.StaffList = new string[] { employee.Email }; SdkAppId = SDKAPPID,
StaffList = new string[] { employee.Email }
};
DeleteStaffResponse resp = credential.DeleteStaffSync(req); DeleteStaffResponse resp = credential.DeleteStaffSync(req);
return (resp.OnlineStaffList == null, ""); return (resp.OnlineStaffList == null, "");
} }
...@@ -116,14 +121,15 @@ namespace Edu.ThirdCore.TenCloud ...@@ -116,14 +121,15 @@ namespace Edu.ThirdCore.TenCloud
{ {
var credential = TenCloudCredential._instance; var credential = TenCloudCredential._instance;
var tenCccTokenItem = new TenCccTokenItem(); var tenCccTokenItem = new TenCccTokenItem();
CreateSDKLoginTokenRequest req = new CreateSDKLoginTokenRequest(); CreateSDKLoginTokenRequest req = new CreateSDKLoginTokenRequest
req.SdkAppId = SDKAPPID; {
req.SeatUserId = mail; SdkAppId = SDKAPPID,
SeatUserId = mail
};
CreateSDKLoginTokenResponse resp = credential.CreateSDKLoginTokenSync(req); CreateSDKLoginTokenResponse resp = credential.CreateSDKLoginTokenSync(req);
tenCccTokenItem.SdkURL = resp.SdkURL; tenCccTokenItem.SdkURL = resp.SdkURL;
tenCccTokenItem.Token = resp.Token; tenCccTokenItem.Token = resp.Token;
return tenCccTokenItem; return tenCccTokenItem;
} }
} }
} }
...@@ -14,6 +14,7 @@ using Edu.Model.ViewModel.LearningGarden; ...@@ -14,6 +14,7 @@ using Edu.Model.ViewModel.LearningGarden;
using Edu.Model.ViewModel.User; using Edu.Model.ViewModel.User;
using Edu.Module.Course; using Edu.Module.Course;
using Edu.Module.EduTask; using Edu.Module.EduTask;
using Edu.Module.Exam;
using Edu.Module.Public; using Edu.Module.Public;
using Edu.Module.User; using Edu.Module.User;
using Edu.WebApi.Filter; using Edu.WebApi.Filter;
...@@ -58,10 +59,11 @@ namespace Edu.WebApi.Controllers.Applet ...@@ -58,10 +59,11 @@ namespace Edu.WebApi.Controllers.Applet
/// 学习园地处理类对象 /// 学习园地处理类对象
/// </summary> /// </summary>
private readonly LearningGardenModule learningGardenModule = AOP.AOPHelper.CreateAOPObject<LearningGardenModule>(); private readonly LearningGardenModule learningGardenModule = AOP.AOPHelper.CreateAOPObject<LearningGardenModule>();
/// <summary> /// <summary>
/// 课程单词 /// 课程单词学习、测试处理类对象
/// </summary> /// </summary>
private readonly CourseWordsModule courseWordsModule = new CourseWordsModule(); private readonly CourseExamModule courseExamModule = new CourseExamModule();
#region 小程序首页 #region 小程序首页
...@@ -413,13 +415,15 @@ namespace Edu.WebApi.Controllers.Applet ...@@ -413,13 +415,15 @@ namespace Edu.WebApi.Controllers.Applet
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public ApiResult GetMyStudyCourseInfo() { public ApiResult GetMyStudyCourseInfo()
{
var appletUserInfo = base.AppletUserInfo; var appletUserInfo = base.AppletUserInfo;
JObject parms = JObject.Parse(base.RequestParm.Msg.ToString()); JObject parms = JObject.Parse(base.RequestParm.Msg.ToString());
int ClassId = parms.GetInt("ClassId", 0);//班级ID int ClassId = parms.GetInt("ClassId", 0);//班级ID
int CourseId = parms.GetInt("CourseId", 0);//课程ID int CourseId = parms.GetInt("CourseId", 0);//课程ID
int GuestId = parms.GetInt("GuestId", 0);//订单GuestId int GuestId = parms.GetInt("GuestId", 0);//订单GuestId
if (ClassId <= 0) { if (ClassId <= 0)
{
return ApiResult.ParamIsNull("请传递班级ID"); return ApiResult.ParamIsNull("请传递班级ID");
} }
//获取课程回顾 //获取课程回顾
...@@ -467,14 +471,17 @@ namespace Edu.WebApi.Controllers.Applet ...@@ -467,14 +471,17 @@ namespace Edu.WebApi.Controllers.Applet
var Words = new object(); var Words = new object();
if (ClassId > 0 && CourseId > 0) if (ClassId > 0 && CourseId > 0)
{ {
Words = classModule.GetIndexWords(ClassId, CourseId, appletUserInfo.Group_Id); Words = classModule.GetIndexWords(ClassId, CourseId, appletUserInfo.Group_Id,appletUserInfo.Id);
} }
else else
{ {
Words = new Words = new
{ {
NextWord = 0, NextWord = 0,
ReviewWord = 0 NextCourseNo=0,
ReviewWord = 0,
ReviewCourseNo=0,
CourseId = CourseId
}; };
} }
...@@ -507,7 +514,8 @@ namespace Edu.WebApi.Controllers.Applet ...@@ -507,7 +514,8 @@ namespace Edu.WebApi.Controllers.Applet
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public ApiResult GetMyStudyCourseChapterList() { public ApiResult GetMyStudyCourseChapterList()
{
var appletUserInfo = base.AppletUserInfo; var appletUserInfo = base.AppletUserInfo;
JObject parms = JObject.Parse(base.RequestParm.Msg.ToString()); JObject parms = JObject.Parse(base.RequestParm.Msg.ToString());
int ClassId = parms.GetInt("ClassId", 0);//班级ID int ClassId = parms.GetInt("ClassId", 0);//班级ID
...@@ -516,7 +524,8 @@ namespace Edu.WebApi.Controllers.Applet ...@@ -516,7 +524,8 @@ namespace Edu.WebApi.Controllers.Applet
{ {
return ApiResult.ParamIsNull("请传递班级ID"); return ApiResult.ParamIsNull("请传递班级ID");
} }
if (CourseId <= 0) { if (CourseId <= 0)
{
return ApiResult.ParamIsNull("请传递课程ID"); return ApiResult.ParamIsNull("请传递课程ID");
} }
...@@ -528,13 +537,24 @@ namespace Edu.WebApi.Controllers.Applet ...@@ -528,13 +537,24 @@ namespace Edu.WebApi.Controllers.Applet
var chapterTreeList = courseModule.GetChapterTreeListModule_V2(new Model.ViewModel.Course.RB_Course_Chapter_ViewModel() { Group_Id = appletUserInfo.Group_Id, CourseId = CourseId }); var chapterTreeList = courseModule.GetChapterTreeListModule_V2(new Model.ViewModel.Course.RB_Course_Chapter_ViewModel() { Group_Id = appletUserInfo.Group_Id, CourseId = CourseId });
var ctList = chapterTreeList.Where(x => Convert.ToInt32(x.ChapterNo) <= MaxChapterNo).ToList(); var ctList = chapterTreeList.Where(x => Convert.ToInt32(x.ChapterNo) <= MaxChapterNo).ToList();
//章节单词得分 //章节单词得分
var prepWordsList = courseExamModule.GetStuWordsPrepListModule(new RB_StuWords_Prep_Extend()
{
CourseId = CourseId,
Group_Id = appletUserInfo.Group_Id,
Stu_Account_Id = appletUserInfo.Id
});
//组装数据 //组装数据
var RList = new List<object>(); var RList = new List<object>();
foreach (var item in ctList) foreach (var item in ctList)
{ {
//判断是否已经学习 //判断是否已经学习
var planModel = planList.Where(x => item.ChapterNo == x.LessonPlanNum.ToString()).FirstOrDefault(); var planModel = planList.Where(x => item.ChapterNo == x.LessonPlanNum.ToString()).FirstOrDefault();
var tempPrepWords = prepWordsList?.Where(qitem => qitem.ChapterId.ToString() == item.ChapterNo)?.FirstOrDefault();
decimal StudyProgress = 0;
if (tempPrepWords != null && tempPrepWords.TotalNum > 0)
{
StudyProgress = Math.Round(Convert.ToDecimal(tempPrepWords.StudyNum) / Convert.ToDecimal(tempPrepWords.TotalNum) * 100, 2); ;
}
int Num = 1; int Num = 1;
RList.Add(new RList.Add(new
{ {
...@@ -548,6 +568,8 @@ namespace Edu.WebApi.Controllers.Applet ...@@ -548,6 +568,8 @@ namespace Edu.WebApi.Controllers.Applet
x.VideoUrl x.VideoUrl
}), }),
ChapterTree = item, ChapterTree = item,
Score=tempPrepWords?.Score??0,
StudyProgress,
NextChapterNo = chapterTreeList.Where(x => Convert.ToInt32(x.ChapterNo) > Convert.ToInt32(item.ChapterNo)).OrderBy(x => Convert.ToInt32(x.ChapterNo)).FirstOrDefault()?.ChapterNo ?? "" NextChapterNo = chapterTreeList.Where(x => Convert.ToInt32(x.ChapterNo) > Convert.ToInt32(item.ChapterNo)).OrderBy(x => Convert.ToInt32(x.ChapterNo)).FirstOrDefault()?.ChapterNo ?? ""
}); });
} }
......
...@@ -5,6 +5,7 @@ using Edu.Module.Exam; ...@@ -5,6 +5,7 @@ using Edu.Module.Exam;
using Edu.WebApi.Filter; using Edu.WebApi.Filter;
using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
...@@ -29,8 +30,8 @@ namespace Edu.WebApi.Controllers.Applet ...@@ -29,8 +30,8 @@ namespace Edu.WebApi.Controllers.Applet
{ {
var CourseId = base.ParmJObj.GetInt("CourseId"); var CourseId = base.ParmJObj.GetInt("CourseId");
var ChapterId = base.ParmJObj.GetInt("ChapterId"); var ChapterId = base.ParmJObj.GetInt("ChapterId");
var PrevChapterId = base.ParmJObj.GetInt("PrevChapterId"); var ReviewChapterId = base.ParmJObj.GetInt("ReviewChapterId");
var list = courseExamModule.GetStudyCourseWords(CourseId, ChapterId, PrevChapterId); var list = courseExamModule.GetStudyCourseWords(CourseId, ChapterId, ReviewChapterId,base.AppletUserInfo.Id);
return ApiResult.Success(data: list); return ApiResult.Success(data: list);
} }
...@@ -49,7 +50,11 @@ namespace Edu.WebApi.Controllers.Applet ...@@ -49,7 +50,11 @@ namespace Edu.WebApi.Controllers.Applet
CourseId = base.ParmJObj.GetInt("CourseId"), CourseId = base.ParmJObj.GetInt("CourseId"),
Stu_Account_Id = base.ParmJObj.GetInt("Stu_Account_Id"), Stu_Account_Id = base.ParmJObj.GetInt("Stu_Account_Id"),
ChapterId=base.ParmJObj.GetInt("ChapterId"), ChapterId=base.ParmJObj.GetInt("ChapterId"),
PrepNum=base.ParmJObj.GetInt("PrepNum"),
ReviewNum=base.ParmJObj.GetInt("ReviewNum"),
StudyNum=base.ParmJObj.GetInt("StudyNum"), StudyNum=base.ParmJObj.GetInt("StudyNum"),
ReviewCourseChapterId=base.ParmJObj.GetInt("ReviewCourseChapterId"),
StudyType=base.ParmJObj.GetInt("StudyType"),
}; };
model.CreateBy = base.AppletUserInfo.Id; model.CreateBy = base.AppletUserInfo.Id;
model.CreateTime = DateTime.Now; model.CreateTime = DateTime.Now;
...@@ -82,7 +87,7 @@ namespace Edu.WebApi.Controllers.Applet ...@@ -82,7 +87,7 @@ namespace Edu.WebApi.Controllers.Applet
model.Group_Id = base.AppletUserInfo.Group_Id; model.Group_Id = base.AppletUserInfo.Group_Id;
model.Status = Common.Enum.DateStateEnum.Normal; model.Status = Common.Enum.DateStateEnum.Normal;
bool flag = courseExamModule.SetStuWordsReviewModule(model); bool flag = courseExamModule.SetStuWordsReviewModule(model);
return flag ? ApiResult.Success() : ApiResult.Failed(); return flag ? ApiResult.Success(data:model) : ApiResult.Failed();
} }
/// <summary> /// <summary>
...@@ -98,5 +103,63 @@ namespace Edu.WebApi.Controllers.Applet ...@@ -98,5 +103,63 @@ namespace Edu.WebApi.Controllers.Applet
var obj = courseExamModule.CreateCourseExamModule(CourseId, ChapterId, NextChapterId); var obj = courseExamModule.CreateCourseExamModule(CourseId, ChapterId, NextChapterId);
return ApiResult.Success(data: obj); return ApiResult.Success(data: obj);
} }
/// <summary>
/// 提交单词测试
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SubmitWordsExam()
{
var model = new RB_StuWords_Exam_Extend()
{
Id = base.ParmJObj.GetInt("Id"),
ClassId = base.ParmJObj.GetInt("ClassId"),
CourseId=base.ParmJObj.GetInt("CourseId"),
ChapterId=base.ParmJObj.GetInt("ChapterId"),
ExamStartTime = base.ParmJObj.GetDateTime("ExamStartTime"),
};
model.Stu_Account_Id = base.AppletUserInfo.Id;
model.CreateBy = base.AppletUserInfo.Id;
model.CreateTime = DateTime.Now;
model.School_Id = base.AppletUserInfo.School_Id;
model.Group_Id = base.AppletUserInfo.Group_Id;
model.Status = Common.Enum.DateStateEnum.Normal;
model.Score = 0;
model.ExamEndTime = DateTime.Now;
model.ExamDetailList = new List<RB_StuWords_ExamDetail_Extend>();
string details = base.ParmJObj.GetStringValue("Details");
if (!string.IsNullOrEmpty(details))
{
JArray jArray = JArray.Parse(details);
if (jArray != null && jArray.Count > 0)
{
foreach (var obj in jArray)
{
JObject jobj = JObject.Parse(obj.ToString());
model.ExamDetailList.Add(new RB_StuWords_ExamDetail_Extend()
{
DetailId = 0,
ExamId = 0,
WordId = jobj.GetInt("WordId"),
Title = jobj.GetStringValue("Title"),
QuestionContent = jobj.GetStringValue("QuestionContent"),
QuestionTypeId = jobj.GetInt("QuestionTypeId"),
QuestionTypeKey=jobj.GetStringValue("QuestionTypeKey"),
IsRight = jobj.GetInt("IsTrue"),
Answer=jobj.GetStringValue("Answer"),
});
}
}
}
var flag = courseExamModule.SubmitStuWordsExamModule(model);
return flag ? ApiResult.Success(data: new
{
model.Id,
model.Score,
model.ExamMinutes
}) : ApiResult.Failed();
}
} }
} }
...@@ -461,10 +461,11 @@ namespace Edu.WebApi.Controllers.Course ...@@ -461,10 +461,11 @@ namespace Edu.WebApi.Controllers.Course
{ {
ClassId = parms.GetInt("ClassId", 0), ClassId = parms.GetInt("ClassId", 0),
OrderId = parms.GetInt("OrderId"), OrderId = parms.GetInt("OrderId"),
SourceId=parms.GetInt("SourceId"),
Group_Id = base.UserInfo.Group_Id, Group_Id = base.UserInfo.Group_Id,
OrderState = OrderStateEnum.Normal OrderState = OrderStateEnum.Normal
}; };
if (query.ClassId <= 0) if (query.ClassId <= 0&&query.SourceId<=0)
{ {
return ApiResult.ParamIsNull(); return ApiResult.ParamIsNull();
} }
...@@ -1250,7 +1251,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -1250,7 +1251,7 @@ namespace Edu.WebApi.Controllers.Course
dmodel.CreateTime = DateTime.Now; dmodel.CreateTime = DateTime.Now;
dmodel.UpdateBy = userInfo.Id; dmodel.UpdateBy = userInfo.Id;
dmodel.UpdateTime = DateTime.Now; dmodel.UpdateTime = DateTime.Now;
bool flag = orderModule.SetOrderGuestInfo(dmodel, out string message); bool flag = orderModule.SetOrderGuestInfo_V2(dmodel, out string message);
return flag ? ApiResult.Success() : ApiResult.Failed(message); return flag ? ApiResult.Success() : ApiResult.Failed(message);
} }
......
...@@ -51,7 +51,6 @@ namespace Edu.WebApi.Controllers.User ...@@ -51,7 +51,6 @@ namespace Edu.WebApi.Controllers.User
/// </summary> /// </summary>
private readonly TeacherModule teacherModule = new TeacherModule(); private readonly TeacherModule teacherModule = new TeacherModule();
private readonly EmployeeBonusModule employeeBonusModule = new EmployeeBonusModule();
private readonly StudentModule studentModule = new StudentModule(); private readonly StudentModule studentModule = new StudentModule();
...@@ -227,6 +226,7 @@ namespace Edu.WebApi.Controllers.User ...@@ -227,6 +226,7 @@ namespace Edu.WebApi.Controllers.User
PostName = model.PostName, PostName = model.PostName,
Email = model.Email, Email = model.Email,
IsTenCccUser = model.IsTenCccUser, IsTenCccUser = model.IsTenCccUser,
IsCourseConsultant = (model != null && model.UserRole == UserRoleEnum.CourseConsultant) ? 1 : 0,
ActionMenuList = actionList?.Select(qitem => new { qitem.FunctionCode, qitem.FunctionName, qitem.MenuName, qitem.MenuUrl }), ActionMenuList = actionList?.Select(qitem => new { qitem.FunctionCode, qitem.FunctionName, qitem.MenuName, qitem.MenuUrl }),
UploadConfig = new UploadConfig = new
{ {
...@@ -240,7 +240,7 @@ namespace Edu.WebApi.Controllers.User ...@@ -240,7 +240,7 @@ namespace Edu.WebApi.Controllers.User
}, },
StudyAbroadObj = publicModule.GetStudyAbroadListModule() StudyAbroadObj = publicModule.GetStudyAbroadListModule()
}; };
if (model.IsTenCccUser == 1) if (model.IsTenCccUser == 1)
{ {
var tObj = new TenCloudCCCHelper().GetTenCccUserToken(model.Email).Result; var tObj = new TenCloudCCCHelper().GetTenCccUserToken(model.Email).Result;
obj.TenCccToken = new TenCccTokenItem() obj.TenCccToken = new TenCccTokenItem()
......
...@@ -678,6 +678,7 @@ namespace Edu.WebApi.Controllers.User ...@@ -678,6 +678,7 @@ namespace Edu.WebApi.Controllers.User
QQ = base.ParmJObj.GetStringValue("QQ"), QQ = base.ParmJObj.GetStringValue("QQ"),
WeChatNo = base.ParmJObj.GetStringValue("WeChatNo"), WeChatNo = base.ParmJObj.GetStringValue("WeChatNo"),
StuType = base.ParmJObj.GetInt("StuType"), StuType = base.ParmJObj.GetInt("StuType"),
ExistCourseConsultant=base.ParmJObj.GetInt("ExistCourseConsultant"),
}; };
if (query.IsQueryMyStu == 1) if (query.IsQueryMyStu == 1)
{ {
......
...@@ -13,6 +13,7 @@ using Edu.Common.API; ...@@ -13,6 +13,7 @@ using Edu.Common.API;
using Edu.Cache.User; using Edu.Cache.User;
using Edu.WebApi.Helper; using Edu.WebApi.Helper;
using System.Reflection; using System.Reflection;
using System.Collections.Generic;
namespace Edu.WebApi.Filter namespace Edu.WebApi.Filter
{ {
...@@ -58,9 +59,15 @@ namespace Edu.WebApi.Filter ...@@ -58,9 +59,15 @@ namespace Edu.WebApi.Filter
string cachedKey = SecurityHelper.MD5(string.Format("cmd={0}&token={1}", actionUrl, token)); string cachedKey = SecurityHelper.MD5(string.Format("cmd={0}&token={1}", actionUrl, token));
try try
{ {
//不验证重复提交的方法名称
List<string> notValidateList = new List<string>()
{
"course/setchapter",
"appletwords/setstuwordsprep",
};
if (UserReidsCache.Exists(cachedKey))//判断表单是否重复提交 if (UserReidsCache.Exists(cachedKey))//判断表单是否重复提交
{ {
if (actionUrl != "course/setchapter") if (!notValidateList.Contains(actionUrl))
{ {
actionContext.Result = new Microsoft.AspNetCore.Mvc.JsonResult(new ApiResult actionContext.Result = new Microsoft.AspNetCore.Mvc.JsonResult(new ApiResult
{ {
......
...@@ -70,7 +70,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Edu.Module.QYWeChat", "Edu. ...@@ -70,7 +70,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Edu.Module.QYWeChat", "Edu.
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Edu.Module.Exam", "Edu.Module.Exam\Edu.Module.Exam.csproj", "{81C24D63-1109-4476-99AB-590EF54972E5}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Edu.Module.Exam", "Edu.Module.Exam\Edu.Module.Exam.csproj", "{81C24D63-1109-4476-99AB-590EF54972E5}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Edu.Module.Customer", "Edu.Module.Customer\Edu.Module.Customer.csproj", "{11365608-C76C-4CF7-9DBE-78A61A934448}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Edu.Module.Customer", "Edu.Module.Customer\Edu.Module.Customer.csproj", "{11365608-C76C-4CF7-9DBE-78A61A934448}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
......
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