Commit b9fe69b9 authored by liudong1993's avatar liudong1993

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

parents e2208bde a36b4184
...@@ -695,6 +695,18 @@ namespace Edu.Common ...@@ -695,6 +695,18 @@ namespace Edu.Common
} }
} }
//JHMallUserOpenId
/// <summary>
/// 甲鹤教育固定用户OpenId
/// </summary>
public static string JHMallUserOpenId
{
get
{
return ReadConfigKey("JHMallUserOpenId");
}
}
/// <summary> /// <summary>
/// 甲鹤教育小程序id /// 甲鹤教育小程序id
......
...@@ -43,6 +43,11 @@ namespace Edu.Common.Enum ...@@ -43,6 +43,11 @@ namespace Edu.Common.Enum
/// </summary> /// </summary>
[EnumField("Mall")] [EnumField("Mall")]
Mall = 7, Mall = 7,
/// <summary>
/// MallMiniProgram【生成Token使用】
/// </summary>
[EnumField("MallMiniProgram")]
MallMiniProgram = 8,
/// <summary> /// <summary>
......
...@@ -10,16 +10,34 @@ namespace Edu.Common.Enum.Exam ...@@ -10,16 +10,34 @@ namespace Edu.Common.Enum.Exam
/// </summary> /// </summary>
public enum ExamTestStatusEnum public enum ExamTestStatusEnum
{ {
/// <summary>
/// 未开始
/// </summary>
[EnumField("未开始")]
NotStarted = 1,
/// <summary>
/// 已开始
/// </summary>
[EnumField("已开始")]
FinishStarted = 2,
/// <summary> /// <summary>
/// 已考试 /// 已考试
/// </summary> /// </summary>
[EnumField("已考试")] [EnumField("已考试")]
FinishTest = 1, FinishTest = 3,
/// <summary>
/// 缺考
/// </summary>
[EnumField("缺考")]
MissedTest = 4,
/// <summary> /// <summary>
/// 未考试 /// 已阅卷
/// </summary> /// </summary>
[EnumField("未考试")] [EnumField("已阅卷")]
NotFinishTest = 2, FinishScoring = 5,
} }
} }
...@@ -103,5 +103,44 @@ namespace Edu.Model.CacheModel ...@@ -103,5 +103,44 @@ namespace Edu.Model.CacheModel
/// 服务人员电话 /// 服务人员电话
/// </summary> /// </summary>
public string EnterPhone { get; set; } public string EnterPhone { get; set; }
/// <summary>
/// 电商-token
/// </summary>
public string MallToken { get; set; }
/// <summary>
/// 电商-JHTenantId
/// </summary>
public string JHTenantId { get; set; }
/// <summary>
/// 电商-JHMallBaseId
/// </summary>
public string JHMallBaseId { get; set; }
/// <summary>
/// 电商-甲鹤用户id
/// </summary>
public int JHMallUserId { get; set; }
/// <summary>
/// 电商-甲鹤用户OpenId
/// </summary>
public string JHMallUserOpenId { get; set; }
/// <summary>
/// 性别
/// </summary>
public int StuSex { get; set; }
/// <summary>
/// 生日
/// </summary>
public string StuBirth { get; set; }
} }
} }
\ No newline at end of file
...@@ -61,7 +61,7 @@ namespace Edu.Model.Entity.Exam ...@@ -61,7 +61,7 @@ namespace Edu.Model.Entity.Exam
/// <summary> /// <summary>
/// 删除状态 /// 删除状态
/// </summary> /// </summary>
public int Status { get; set; } public Common.Enum.DateStateEnum Status { get; set; }
/// <summary> /// <summary>
/// 组卷类型(1-智能组卷,2-手动组卷,3-智能导入) /// 组卷类型(1-智能组卷,2-手动组卷,3-智能导入)
......
...@@ -74,7 +74,7 @@ namespace Edu.Model.Entity.Exam ...@@ -74,7 +74,7 @@ namespace Edu.Model.Entity.Exam
public int Status { get; set; } public int Status { get; set; }
/// <summary> /// <summary>
/// 考试状态,0-没考,1-已考 /// 考试状态(见枚举)
/// </summary> /// </summary>
public ExamTestStatusEnum ExamStatus { get; set; } public ExamTestStatusEnum ExamStatus { get; set; }
...@@ -87,5 +87,10 @@ namespace Edu.Model.Entity.Exam ...@@ -87,5 +87,10 @@ namespace Edu.Model.Entity.Exam
/// 总得分 /// 总得分
/// </summary> /// </summary>
public decimal TotalScore { get; set; } public decimal TotalScore { get; set; }
/// <summary>
/// 学员评语
/// </summary>
public string StuComment { get; set; }
} }
} }
...@@ -58,7 +58,7 @@ namespace Edu.Model.Entity.Exam ...@@ -58,7 +58,7 @@ namespace Edu.Model.Entity.Exam
/// <summary> /// <summary>
/// 题目得分 /// 题目得分
/// </summary> /// </summary>
public decimal StundetScore { get; set; } public decimal StudentScore { get; set; }
/// <summary> /// <summary>
/// 是否阅卷0-否,1-是 /// 是否阅卷0-否,1-是
......
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Edu.Model.Entity.Mall
{
/// <summary>
/// 商户用户表实体
/// </summary>
[Serializable]
[DB(ConnectionName = "MallConnection")]
public class RB_Member_User
{
/// <summary>
/// Id
/// </summary>
public int Id
{
get;
set;
}
/// <summary>
/// 用户名称
/// </summary>
public string Name
{
get;
set;
}
/// <summary>
/// 别名
/// </summary>
public string AliasName
{
get;
set;
}
/// <summary>
/// 头像
/// </summary>
public string Photo
{
get;
set;
}
/// <summary>
/// 来源 1微信 2支付宝
/// </summary>
public int? Source
{
get;
set;
}
/// <summary>
/// 唯一识别码
/// </summary>
public string OpenId
{
get;
set;
}
/// <summary>
/// 手机号码
/// </summary>
public string Moblie
{
get;
set;
}
/// <summary>
/// 会员等级 0 普通 根据会员等级表
/// </summary>
public int? MemberGrade
{
get;
set;
}
/// <summary>
/// 订单数量
/// </summary>
public int? OrderNum
{
get;
set;
}
/// <summary>
/// 优惠卷数量
/// </summary>
public int? CouponsNum
{
get;
set;
}
/// <summary>
/// 卡卷数量
/// </summary>
public int? CardVolumeNum
{
get;
set;
}
/// <summary>
/// 余额
/// </summary>
public decimal? Balance
{
get;
set;
}
/// <summary>
/// 积分
/// </summary>
public int? Integral
{
get;
set;
}
/// <summary>
/// 总消费
/// </summary>
public decimal? TotalConsumption { get; set; }
/// <summary>
/// CreateDate
/// </summary>
public DateTime? CreateDate
{
get;
set;
}
/// <summary>
/// 上级 0表示总部
/// </summary>
public int? SuperiorId
{
get;
set;
}
/// <summary>
/// 黑名单 1是 0否
/// </summary>
public int? Blacklist
{
get;
set;
}
/// <summary>
/// 是否是分销商 1是 2否
/// </summary>
public int IsDistributor { get; set; }
/// <summary>
/// 联系方式
/// </summary>
public string ContactWay
{
get;
set;
}
/// <summary>
/// 备注
/// </summary>
public string Remark
{
get;
set;
}
/// <summary>
/// 商户号id
/// </summary>
public int TenantId
{
get;
set;
}
/// <summary>
/// 修改时间
/// </summary>
public DateTime? UpdateDate
{
get;
set;
}
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId { get; set; }
/// <summary>
/// 秘钥
/// </summary>
public string SecretKey { get; set; }
/// <summary>
/// 成为下线条件
/// </summary>
public int? DownlineCondition { get; set; }
/// <summary>
/// 是否已成为下线 1是 2否
/// </summary>
public int? IsBeDownline { get; set; }
/// <summary>
/// 等待成为上线id
/// </summary>
public int? WaitSuperiorId { get; set; }
/// <summary>
/// 成为下线时间
/// </summary>
public DateTime? BeDownlineDate { get; set; }
public int SmallShopId { get; set; }
/// <summary>
/// 公司毛利利润比例
/// </summary>
public decimal CompanyProfitRate { get; set; }
/// <summary>
/// 职位Id,(1-领队导游)
/// </summary>
public int PostId { get; set; }
/// <summary>
/// 类型
/// </summary>
public int? UserPageType { get; set; }
/// <summary>
/// 2020-10-28号新增 (微信小程序获取的手机号码)
/// </summary>
public string PhoneNum { get; set; }
/// <summary>
/// 是否结算用户,1-是 2020-11-10 Addd By:w
/// </summary>
public int IsSettlement { get; set; }
/// <summary>
/// 教育点数(针对购买直播产品)
/// </summary>
public int PointNum { get; set; }
/// <summary>
/// 教育学校id
/// </summary>
public int EduSchoolId { get; set; }
/// <summary>
/// 是否管理员 1是
/// </summary>
public int IsAdmin { get; set; }
}
}
using Edu.Common.Enum.Question; using Edu.Common.Enum.Course;
using Edu.Common.Enum.Question;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
...@@ -36,7 +37,7 @@ namespace Edu.Model.ViewModel.Exam ...@@ -36,7 +37,7 @@ namespace Edu.Model.ViewModel.Exam
public string QuestionDesc { get; set; } public string QuestionDesc { get; set; }
/// <summary> /// <summary>
/// 选择类型(1-题库随机,2-题库难易程度) /// 选择类型(1-题库随机,2-题库难易程度,3-题库按照分类选题)
/// </summary> /// </summary>
public int ChooseType { get; set; } public int ChooseType { get; set; }
...@@ -49,6 +50,11 @@ namespace Edu.Model.ViewModel.Exam ...@@ -49,6 +50,11 @@ namespace Edu.Model.ViewModel.Exam
/// 难易程度选题【ChooseType=2时使用】 /// 难易程度选题【ChooseType=2时使用】
/// </summary> /// </summary>
public List<DifficultyTypeItem> ChooseList { get; set; } public List<DifficultyTypeItem> ChooseList { get; set; }
/// <summary>
/// 题目分类列表
/// </summary>
public List<CategoryItem> CategoryList { get; set; }
} }
/// <summary> /// <summary>
...@@ -66,4 +72,26 @@ namespace Edu.Model.ViewModel.Exam ...@@ -66,4 +72,26 @@ namespace Edu.Model.ViewModel.Exam
/// </summary> /// </summary>
public int ChooseNum { get; set; } public int ChooseNum { get; set; }
} }
/// <summary>
/// 题型分类
/// </summary>
public class CategoryItem
{
/// <summary>
/// 题型分类
/// </summary>
public QuestionCategoryEnum Category { get; set; }
/// <summary>
/// 选择题目数
/// </summary>
public int ChooseNum { get; set; }
/// <summary>
/// 难易程度选题【ChooseType=2时使用】
/// </summary>
public List<DifficultyTypeItem> ChooseList { get; set; }
}
} }
...@@ -35,6 +35,16 @@ namespace Edu.Model.ViewModel.Exam ...@@ -35,6 +35,16 @@ namespace Edu.Model.ViewModel.Exam
/// 学生答案 /// 学生答案
/// </summary> /// </summary>
public string StundetAnswer { get; set; } public string StundetAnswer { get; set; }
/// <summary>
/// 学员得分
/// </summary>
public decimal StudentScore { get; set; }
/// <summary>
/// 听力、阅读理解、完型填空、子项列表
/// </summary>
public List<SubAnswerItem> SubList { get; set; }
/// <summary> /// <summary>
/// 学生答案详情id(关联RB_Examination_StudentDetails表中的Id) /// 学生答案详情id(关联RB_Examination_StudentDetails表中的Id)
...@@ -50,5 +60,10 @@ namespace Edu.Model.ViewModel.Exam ...@@ -50,5 +60,10 @@ namespace Edu.Model.ViewModel.Exam
/// 知识点 /// 知识点
/// </summary> /// </summary>
public List<RB_Question_Point_ViewModel> QuestionPointList { get; set; } public List<RB_Question_Point_ViewModel> QuestionPointList { get; set; }
/// <summary>
/// 阅读理解、听力、完型,答案列表
/// </summary>
public List<object> QuestionAnswerList { get; set; }
} }
} }
using Edu.Model.Entity.Exam; using Edu.Common.Enum.Exam;
using Edu.Model.Entity.Exam;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
...@@ -46,9 +47,9 @@ namespace Edu.Model.ViewModel.Exam ...@@ -46,9 +47,9 @@ namespace Edu.Model.ViewModel.Exam
public int GuestId { get; set; } public int GuestId { get; set; }
/// <summary> /// <summary>
/// 考试状态,0-没考,1-已考(查询条件的时候,1-未开始,2-已开始,3-已缺考,4-已完成) /// 考试状态(见枚举)
/// </summary> /// </summary>
public int ExamStatus { get; set; } public ExamTestStatusEnum ExamStatus { get; set; }
/// <summary> /// <summary>
/// 考试状态 /// 考试状态
...@@ -70,5 +71,30 @@ namespace Edu.Model.ViewModel.Exam ...@@ -70,5 +71,30 @@ namespace Edu.Model.ViewModel.Exam
return list; return list;
} }
} }
/// <summary>
/// 学员考试表编号
/// </summary>
public int Exam_Student_Id { get; set; }
/// <summary>
/// 账号编号
/// </summary>
public string QAccountIds { get; set; }
/// <summary>
/// 查询考试状态【1-未开始,2-进行中,3-已结束】
/// </summary>
public int QTestStatus { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public string QStartTime { get; set; }
/// <summary>
/// 结束试卷
/// </summary>
public string QEndTime { get; set; }
} }
} }
...@@ -37,5 +37,14 @@ namespace Edu.Model.ViewModel.Exam ...@@ -37,5 +37,14 @@ namespace Edu.Model.ViewModel.Exam
/// </summary> /// </summary>
public string StuIcon { get; set; } public string StuIcon { get; set; }
/// <summary>
/// 考试开始时间
/// </summary>
public DateTime ExamStartTime { get; set; }
/// <summary>
/// 考试结束时间
/// </summary>
public DateTime EndTime { get; set; }
} }
} }
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.Text;
using Edu.Model.Entity.Mall;
using VT.FW.DB;
namespace Edu.Model.ViewModel.Mall
{
/// <summary>
/// 商户用户表扩展实体
/// </summary>
[Serializable]
[DB(ConnectionName = "MallConnection")]
public class RB_Member_User_Extend : RB_Member_User
{
/// <summary>
/// 是否查询电商利润 1是
/// </summary>
public int? IsSelectCommpany { get; set; }
/// <summary>
/// 是否用户头像为空 1是 2否
/// </summary>
public int? IsEmptyUserPhoto { get; set; }
/// <summary>
/// 会员等级名称
/// </summary>
public string MemberGradeName { get; set; }
/// <summary>
/// 导出枚举ids
/// </summary>
public List<int> ExcelEnumIds { get; set; }
/// <summary>
/// 用户ids
/// </summary>
public string UserIds { get; set; }
/// <summary>
/// 获取用户
/// </summary>
public int? MinUserId { get; set; }
/// <summary>
/// 粉象等级ID
/// </summary>
public int? FXGradeId { get; set; }
/// <summary>
/// 粉象等级ids
/// </summary>
public string FXGradeIds { get; set; }
/// <summary>
/// 用户名str
/// </summary>
public string UserNameStr { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public string StartTime { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public string EndTime { get; set; }
/// <summary>
/// 下线数量
/// </summary>
public int? ReferralsNum { get; set; }
/// <summary>
/// 分销商名称
/// </summary>
public string DistributorName { get; set; }
/// <summary>
/// 分销商电话
/// </summary>
public string DistributorMobile { get; set; }
#region 数据统计-分销排行字段
/// <summary>
/// 累计佣金
/// </summary>
public decimal TotalCommission { get; set; }
/// <summary>
/// 已提现佣金
/// </summary>
public decimal Price { get; set; }
/// <summary>
/// 待结算
/// </summary>
public decimal WaitCommission { get; set; }
/// <summary>
/// 总佣金
/// </summary>
public decimal Commission { get; set; }
/// <summary>
/// 直接下级数据
/// </summary>
public int ChildrenNum { get; set; }
/// <summary>
/// 总下级数
/// </summary>
public int AllChildrenNum { get; set; }
/// <summary>
/// 订单数
/// </summary>
public int AllOrderNum { get; set; }
/// <summary>
/// 排序
/// </summary>
public string OrderBy { get; set; }
/// <summary>
/// 上级名称
/// </summary>
public string PName1 { get; set; }
/// <summary>
/// 再上级名称
/// </summary>
public string PName2 { get; set; }
/// <summary>
/// 再在上级名称
/// </summary>
public string PName3 { get; set; }
#endregion
/// <summary>
/// 小程序排序
/// </summary>
public int SortNum { get; set; }
/// <summary>
/// 是否已提现 1是 2否
/// </summary>
public int IsRemit { get; set; }
/// <summary>
/// 用户等级头像
/// </summary>
public string Icon { get; set; }
/// <summary>
/// 是否赞羊使用0-否,1-是
/// </summary>
public int IsZanYangUse { get; set; }
/// <summary>
/// 是否直接下级[1-是]
/// </summary>
public int IsDirect { get; set; }
/// <summary>
/// 店铺Id
/// </summary>
public int ShopId { get; set; }
/// <summary>
/// 店铺名称
/// </summary>
public string ShopName { get; set; }
/// <summary>
/// 真实订单数量
/// </summary>
public int RealOrderNum { get; set; }
/// <summary>
/// 实收金额
/// </summary>
public decimal Income { get; set; }
/// <summary>
/// 口令优惠券=5其他都等于0
/// </summary>
public int CounponPassword { get; set; }
/// <summary>
/// 口令
/// </summary>
public string KeyWord { get; set; }
/// <summary>
/// 2021-05-08 Add By:W 针对教育是否绑定学员信息
/// </summary>
public int StudentId { get; set; }
/// <summary>
/// 性别0-保密,1-男,2-女
/// </summary>
public int Gender { get; set; }
}
}
...@@ -52,6 +52,58 @@ namespace Edu.Model.ViewModel.Question ...@@ -52,6 +52,58 @@ namespace Edu.Model.ViewModel.Question
public string ShowName { get; set; } public string ShowName { get; set; }
} }
/// <summary>
/// 完型填空
/// </summary>
public class colzeItem
{
/// <summary>
/// 题目分数
/// </summary>
public decimal SubScore { get; set; }
/// <summary>
/// 学生得分
/// </summary>
public decimal StudentScore { get; set; }
/// <summary>
/// 选项列表
/// </summary>
public List<optionItem> OptionList { get; set; }
}
/// <summary>
/// 完型填空、阅读理解、听力答案
/// </summary>
public class SubAnswerItem
{
/// <summary>
/// 小题编号
/// </summary>
public string SubQuestionId { get; set; }
/// <summary>
/// 小题问题类型
/// </summary>
public string SubQuestionKey { get; set; }
/// <summary>
/// 小题答案
/// </summary>
public string SubAnswer { get; set; }
/// <summary>
/// 小题分数
/// </summary>
public decimal SubScore { get; set; }
/// <summary>
/// 学生小题得分
/// </summary>
public decimal StudentScore { get; set; }
}
/// <summary> /// <summary>
/// 填空题、简答题 /// 填空题、简答题
/// </summary> /// </summary>
...@@ -104,6 +156,16 @@ namespace Edu.Model.ViewModel.Question ...@@ -104,6 +156,16 @@ namespace Edu.Model.ViewModel.Question
/// </summary> /// </summary>
public string SubTitle { get; set; } public string SubTitle { get; set; }
/// <summary>
/// 题目分数
/// </summary>
public decimal SubScore { get; set; }
/// <summary>
/// 学生得分
/// </summary>
public decimal StudentScore { get; set; }
/// <summary> /// <summary>
/// 题目答案内容 /// 题目答案内容
/// </summary> /// </summary>
......
...@@ -116,5 +116,11 @@ namespace Edu.Model.ViewModel.Question ...@@ -116,5 +116,11 @@ namespace Edu.Model.ViewModel.Question
/// 问题数量 /// 问题数量
/// </summary> /// </summary>
public int QuestionCount { get; set; } public int QuestionCount { get; set; }
/// <summary>
/// 阅读理解、听力、完型,答案列表
/// </summary>
public List<object> QuestionAnswerList { get; set; }
} }
} }
\ No newline at end of file
...@@ -1485,7 +1485,7 @@ namespace Edu.Module.Course ...@@ -1485,7 +1485,7 @@ namespace Edu.Module.Course
} }
list.Add(new list.Add(new
{ {
IsEndDate = item.ClassDate <= today, IsEndDate = item.ClassDate <= today&&item.ClassDate>=today.AddDays(-7),
item.ClassPlanId, item.ClassPlanId,
item.ClassId, item.ClassId,
item.ClassDate, item.ClassDate,
......
...@@ -1597,7 +1597,21 @@ namespace Edu.Module.EduTask ...@@ -1597,7 +1597,21 @@ namespace Edu.Module.EduTask
if (!string.IsNullOrEmpty(x.WorkUserId)) if (!string.IsNullOrEmpty(x.WorkUserId))
{ {
var recipientPath = HttpUtility.UrlEncode($"/teacher/change-class-manager?tab=3&id={receiptModel.Id}"); var recipientPath = HttpUtility.UrlEncode($"/teacher/change-class-manager?tab=3&id={receiptModel.Id}");
var content = $"待审通知 你有一张业务单据等待审核\n>**概要信息** \n>单据信息:<font color='comment'>{EnumHelper.ToName(receiptModel.ReceiptType)}单据 ({receiptModel.Id})</font>\n>创 建 人:<font color='comment'>{UserReidsCache.GetUserLoginInfo(receiptModel.CreateBy).AccountName}</font>\n>创建时间:<font color='comment'>{receiptModel.CreateTime.ToString("MM-dd HH-mm")}</font>\n>请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={x.Id}&target={recipientPath})"; string AccountName = "";
if (receiptModel.ReceiptType == Common.Enum.Finance.ReceiptTypeEnum.LeaveClass)
{
AccountName = studentLeaveRepository.GetStudentLeaveListRepository(new RB_Student_Leave_ViewModel()
{
Q_Student_Leave_Ids = receiptModel.RelationId.ToString(),
}).FirstOrDefault()?.Order_Guest_ViewModel?.GuestName ?? "";
}
else
{
AccountName = UserReidsCache.GetUserLoginInfo(receiptModel.CreateBy)?.AccountName;
}
var content = $"待审通知 你有一张业务单据等待审核\n>**概要信息** \n>单据信息:<font color='comment'>{EnumHelper.ToName(receiptModel.ReceiptType)}单据 ({receiptModel.Id})</font>\n>创 建 人:<font color='comment'>{AccountName}</font>\n>创建时间:<font color='comment'>{receiptModel.CreateTime.ToString("MM-dd HH-mm")}</font>\n>请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={x.Id}&target={recipientPath})";
PushWorkChatHelper.PushToWorkChat(content, x.WorkUserId, "业务单据待审通知"); PushWorkChatHelper.PushToWorkChat(content, x.WorkUserId, "业务单据待审通知");
} }
}); });
......
This diff is collapsed.
This diff is collapsed.
...@@ -165,6 +165,7 @@ namespace Edu.Module.Question ...@@ -165,6 +165,7 @@ namespace Edu.Module.Question
DifficultyTypeCount = qitem.QuestionCount, DifficultyTypeCount = qitem.QuestionCount,
ChooseNum = 0 ChooseNum = 0
}); });
var obj = new var obj = new
{ {
item.QuestionTypeId, item.QuestionTypeId,
...@@ -183,6 +184,79 @@ namespace Edu.Module.Question ...@@ -183,6 +184,79 @@ namespace Edu.Module.Question
return list; return list;
} }
/// <summary>
/// 根据题库编号获取题库题型分类列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<object> GetQuestionCategoryList_V2Module(RB_Question_ViewModel query)
{
List<object> list = new List<object>();
var dataList = questionRepository.GetQuestionStaticsListRepository(query);
if (dataList != null && dataList.Count > 0)
{
var questionTypeList = GetQuestionTypeListModule(new RB_Question_Type_ViewModel());
var groupList = dataList.GroupBy(qitem => new { qitem.QuestionTypeId, }).Select(qitem => new
{
qitem.Key.QuestionTypeId
});
foreach (var item in groupList)
{
var qType = questionTypeList?.Where(qitem => qitem.QId == item.QuestionTypeId)?.FirstOrDefault();
var diffTypeList = dataList.Where(qitem => qitem.QuestionTypeId == item.QuestionTypeId)
.GroupBy(qitem => new { qitem.QuestionTypeId,qitem.DifficultyType})
.Select(qitem => new
{
qitem.Key.DifficultyType,
DifficultyTypeName = qitem.Key.DifficultyType.ToName(),
DifficultyTypeCount = qitem.Sum(c=>c.QuestionCount),
ChooseNum = 0
});
var categoryList = dataList.Where(qitem => qitem.QuestionTypeId == item.QuestionTypeId).GroupBy(qitem => new { qitem.Category }).Select(qitem => new { qitem.Key.Category });
List<object> resultCategoryList = new List<object>();
foreach (var subItem in categoryList)
{
var tempCategoryList = dataList.Where(qitem => qitem.QuestionTypeId == item.QuestionTypeId && qitem.Category == subItem.Category)?.ToList();
if (tempCategoryList != null && tempCategoryList.Count > 0)
{
var cObj = new
{
subItem.Category,
CategoryName = subItem.Category.ToName(),
QuestionTypeNum = tempCategoryList.Sum(qitem=>qitem.QuestionCount),
ChooseNum = 0,
ChooseList= tempCategoryList?.Select(qitem => new
{
qitem.DifficultyType,
DifficultyTypeName = qitem.DifficultyType.ToName(),
DifficultyTypeCount = qitem.QuestionCount,
ChooseNum = 0
})
};
resultCategoryList.Add(cObj);
}
}
var obj = new
{
item.QuestionTypeId,
QuestionTypeKey = qType?.Key,
QuestionTypeName = qType?.Name,
QuestionScore = 0,
QuestionDesc = "",
ChooseType = 1,
ChooseNum = 0,
QuestionTypeNum = dataList.Where(qitem => qitem.QuestionTypeId == item.QuestionTypeId).Sum(qitem => qitem.QuestionCount),
CategoryList= resultCategoryList,
ChooseList = diffTypeList,
};
list.Add(obj);
}
}
return list;
}
/// <summary> /// <summary>
/// 新增修改题目 /// 新增修改题目
/// </summary> /// </summary>
...@@ -306,10 +380,27 @@ namespace Edu.Module.Question ...@@ -306,10 +380,27 @@ namespace Edu.Module.Question
extModel.QuestionTypeName = question_TypeRepository.GetEntity(extModel.QuestionTypeId)?.Name ?? ""; extModel.QuestionTypeName = question_TypeRepository.GetEntity(extModel.QuestionTypeId)?.Name ?? "";
} }
extModel.QuestionContentObj = ParsingQuestionModule(extModel.QuestionTypeKey, extModel.QuestionContent); extModel.QuestionContentObj = ParsingQuestionModule(extModel.QuestionTypeKey, extModel.QuestionContent);
List<object> questionAnswerList = new List<object>();
if (!string.IsNullOrEmpty(extModel.Knowledge)) if (!string.IsNullOrEmpty(extModel.Knowledge))
{ {
extModel.QuestionPointList = GetPointListModule(new RB_Question_Point_ViewModel() { QPointIds = extModel.Knowledge }); extModel.QuestionPointList = GetPointListModule(new RB_Question_Point_ViewModel() { QPointIds = extModel.Knowledge });
} }
if (extModel.QuestionTypeKey == "reading-comprehensio"|| extModel.QuestionTypeKey == "listening" || extModel.QuestionTypeKey == "cloze")
{
analysisQuestion.CheckQuestion(extModel.QuestionTypeKey, extModel.QuestionContent, extModel.Answer, out string newAnswer,IsRequire:false);
if (!string.IsNullOrEmpty(newAnswer))
{
var qAnsList = Common.Plugin.JsonHelper.DeserializeObject<List<SubAnswerItem>>(newAnswer);
if (qAnsList != null && qAnsList.Count() > 0)
{
foreach (var tItem in qAnsList)
{
questionAnswerList.Add(tItem);
}
}
}
}
extModel.QuestionAnswerList = questionAnswerList;
if (extModel.QuestionTypeKey == "cloze" && !string.IsNullOrEmpty(extModel.Title) && isReplaceClozeTitle == 1) if (extModel.QuestionTypeKey == "cloze" && !string.IsNullOrEmpty(extModel.Title) && isReplaceClozeTitle == 1)
{ {
string categoryRule1 = @"##[1234567890]##"; string categoryRule1 = @"##[1234567890]##";
......
...@@ -2,7 +2,9 @@ ...@@ -2,7 +2,9 @@
using Edu.Common.Enum; using Edu.Common.Enum;
using Edu.Common.Enum.User; using Edu.Common.Enum.User;
using Edu.Model.CacheModel; using Edu.Model.CacheModel;
using Edu.Model.ViewModel.Mall;
using Edu.Model.ViewModel.User; using Edu.Model.ViewModel.User;
using Edu.Repository.Mall;
using Edu.Repository.System; using Edu.Repository.System;
using Edu.Repository.User; using Edu.Repository.User;
using System; using System;
...@@ -34,6 +36,12 @@ namespace Edu.Module.User ...@@ -34,6 +36,12 @@ namespace Edu.Module.User
/// <summary>
/// 小程序用户仓储层对象 add by:W 2021-09-15
/// </summary>
private readonly RB_Member_UserRepository member_UserRepository = new RB_Member_UserRepository();
/// <summary> /// <summary>
/// 获取学生列表 /// 获取学生列表
/// </summary> /// </summary>
...@@ -279,5 +287,18 @@ namespace Edu.Module.User ...@@ -279,5 +287,18 @@ namespace Edu.Module.User
{ {
return studentRepository.GetStudentInfo(Student_Id, Group_Id); return studentRepository.GetStudentInfo(Student_Id, Group_Id);
} }
#region 小程序用户
/// <summary>
/// 根据条件获取用户实体
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public RB_Member_User_Extend GetMemberUserEntityModule(RB_Member_User_Extend query)
{
return member_UserRepository.GetMemberUserEntityRepository(query);
}
#endregion
} }
} }
...@@ -32,6 +32,7 @@ SELECT A.* ...@@ -32,6 +32,7 @@ SELECT A.*
FROM RB_Examination_Paper AS A FROM RB_Examination_Paper AS A
WHERE 1=1 WHERE 1=1
"); ");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_Paper_ViewModel.Status),(int)Common.Enum.DateStateEnum.Normal);
if (query != null) if (query != null)
{ {
if (query.Group_Id > 0) if (query.Group_Id > 0)
...@@ -103,7 +104,7 @@ WHERE 1=1 ...@@ -103,7 +104,7 @@ WHERE 1=1
builder.AppendFormat(tempSql); builder.AppendFormat(tempSql);
} }
} }
builder.AppendFormat(" ORDER BY A.{0} ASC,A.{0} DESC ", nameof(RB_Examination_Paper_ViewModel.PaperType),nameof(RB_Examination_Paper_ViewModel.PaperId)); builder.AppendFormat(" ORDER BY A.{0} ASC,A.{0} DESC,A.CreateTime DESC ", nameof(RB_Examination_Paper_ViewModel.PaperType),nameof(RB_Examination_Paper_ViewModel.PaperId));
return GetPage<RB_Examination_Paper_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList(); return GetPage<RB_Examination_Paper_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
} }
...@@ -121,6 +122,7 @@ SELECT A.* ...@@ -121,6 +122,7 @@ SELECT A.*
FROM RB_Examination_Paper AS A FROM RB_Examination_Paper AS A
WHERE 1=1 WHERE 1=1
"); ");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_Paper_ViewModel.Status), (int)Common.Enum.DateStateEnum.Normal);
if (query != null) if (query != null)
{ {
if (query.Group_Id > 0) if (query.Group_Id > 0)
......
using Edu.Common.Enum; using Edu.Common.Enum;
using Edu.Common.Enum.Exam;
using Edu.Model.Entity.Exam; using Edu.Model.Entity.Exam;
using Edu.Model.ViewModel.Exam; using Edu.Model.ViewModel.Exam;
using System; using System;
...@@ -47,9 +48,38 @@ WHERE 1=1 ...@@ -47,9 +48,38 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_Publish_ViewModel.CreateBy), query.CreateBy); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_Publish_ViewModel.CreateBy), query.CreateBy);
} }
if (!string.IsNullOrEmpty(query.QStartTime))
{
builder.AppendFormat(@" AND A.{0}>='{1}' ",nameof(RB_Examination_Publish_ViewModel.ExamStartTime),query.QStartTime);
}
if (!string.IsNullOrEmpty(query.QEndTime))
{
builder.AppendFormat(@" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Examination_Publish_ViewModel.ExamEndTime), query.QEndTime);
}
if (query.QTestStatus > 0)
{
//未开始
if (query.QTestStatus == 1)
{
builder.AppendFormat(" AND A.{0}>'{1}' ", nameof(RB_Examination_Publish_ViewModel.ExamStartTime), Common.ConvertHelper.FormatTime(DateTime.Now));
}
//进行中
if (query.QTestStatus == 2)
{
builder.AppendFormat(" AND A.{0}<='{1}' AND '{1}'<=A.{2} ", nameof(RB_Examination_Publish_ViewModel.ExamStartTime)
,Common.ConvertHelper.FormatTime(DateTime.Now)
,nameof(RB_Examination_Publish_ViewModel.ExamEndTime)
);
}
//已结束
if (query.QTestStatus == 3)
{
builder.AppendFormat(" AND A.{0}<'{1}' ", nameof(RB_Examination_Publish_ViewModel.ExamEndTime), Common.ConvertHelper.FormatTime(DateTime.Now));
}
}
} }
builder.AppendFormat(" ORDER BY A.{0} DESC ", nameof(RB_Examination_Publish_ViewModel.Id)); builder.AppendFormat(" ORDER BY A.{0} DESC ", nameof(RB_Examination_Publish_ViewModel.Id));
return GetPage<RB_Examination_Publish_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList(); return GetPage<RB_Examination_Publish_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
} }
...@@ -91,8 +121,6 @@ WHERE 1=1 ...@@ -91,8 +121,6 @@ WHERE 1=1
return Get<RB_Examination_Publish_ViewModel>(builder.ToString(), parameters).ToList(); return Get<RB_Examination_Publish_ViewModel>(builder.ToString(), parameters).ToList();
} }
/// <summary> /// <summary>
/// 获取学生发布试卷分页列表 /// 获取学生发布试卷分页列表
/// </summary> /// </summary>
...@@ -106,10 +134,11 @@ WHERE 1=1 ...@@ -106,10 +134,11 @@ WHERE 1=1
var parameters = new DynamicParameters(); var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT A.*,IFNULL(B.PaperName,'') AS PaperName,c.ExamStatus SELECT A.ExamStartTime,A.ExamEndTime,A.ExamineStatus,A.Id,A.PublishPic, C.PaperId,IFNULL(B.PaperName,'') AS PaperName,c.ExamStatus,C.Id AS Exam_Student_Id,C.GuestId
FROM RB_Examination_Publish AS A LEFT JOIN rb_examination_paper AS B ON A.PaperId=B.PaperId FROM rb_examination_student AS C INNER JOIN RB_Examination_Publish AS A ON C.PublishId=A.Id
LEFT JOIN rb_examination_student as c 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 LEFT JOIN rb_student_orderguest AS D ON C.GuestId=D.Id
WHERE 1=1 and a.ExamineStatus=2 and b.ExamineStatus=2
"); ");
if (query != null) if (query != null)
{ {
...@@ -121,6 +150,10 @@ WHERE 1=1 and a.ExamineStatus=2 and b.ExamineStatus=2 ...@@ -121,6 +150,10 @@ WHERE 1=1 and a.ExamineStatus=2 and b.ExamineStatus=2
{ {
builder.AppendFormat(" AND c.{0}={1} ", nameof(RB_Examination_Publish_ViewModel.GuestId), query.GuestId); builder.AppendFormat(" AND c.{0}={1} ", nameof(RB_Examination_Publish_ViewModel.GuestId), query.GuestId);
} }
if (!string.IsNullOrEmpty(query.QAccountIds))
{
builder.AppendFormat(" AND D.Account_Id IN({0}) ", query.QAccountIds);
}
if (!string.IsNullOrEmpty(query.PaperName)) if (!string.IsNullOrEmpty(query.PaperName))
{ {
builder.AppendFormat(" AND B.{0} LIKE @PaperName ", nameof(RB_Examination_Publish_ViewModel.PaperName)); builder.AppendFormat(" AND B.{0} LIKE @PaperName ", nameof(RB_Examination_Publish_ViewModel.PaperName));
...@@ -128,27 +161,26 @@ WHERE 1=1 and a.ExamineStatus=2 and b.ExamineStatus=2 ...@@ -128,27 +161,26 @@ WHERE 1=1 and a.ExamineStatus=2 and b.ExamineStatus=2
} }
if (query.ExamStatus > 0) if (query.ExamStatus > 0)
{ {
if (query.ExamStatus == 1) 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")); 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 == 2) else if (query.ExamStatus == ExamTestStatusEnum.FinishStarted)
{ {
builder.AppendFormat(" AND a.{0} < '{1}' and a.{2} > '{1}' ", nameof(RB_Examination_Publish_ViewModel.ExamStartTime), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), nameof(RB_Examination_Publish_ViewModel.ExamEndTime)); 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 == 3) else if (query.ExamStatus == ExamTestStatusEnum.MissedTest)
{ {
builder.AppendFormat(" AND a.{0} > '{1}' and c.{2}=0 ", nameof(RB_Examination_Publish_ViewModel.ExamEndTime), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), nameof(RB_Examination_Publish_ViewModel.ExamStatus)); 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 == 4) else if (query.ExamStatus == ExamTestStatusEnum.FinishTest)
{ {
builder.AppendFormat(" AND a.{0} > '{1}' and c.{2}=1 ", nameof(RB_Examination_Publish_ViewModel.ExamEndTime), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), nameof(RB_Examination_Publish_ViewModel.ExamStatus)); 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)); 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(); return GetPage<RB_Examination_Publish_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList();
} }
} }
} }
...@@ -24,11 +24,12 @@ namespace Edu.Repository.Exam ...@@ -24,11 +24,12 @@ namespace Edu.Repository.Exam
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT A.*,IFNULL(B.GuestName,'') AS GuestName,c.ClassName,b.Mobile,s.StuIcon SELECT A.*,IFNULL(B.GuestName,'') AS GuestName,c.ClassName,b.Mobile,s.StuIcon,p.ExamStartTime ,p.ExamEndTime AS EndTime
FROM RB_Examination_Student AS A LEFT JOIN rb_order_guest AS B ON A.GuestId=B.Id FROM RB_Examination_Student AS A LEFT JOIN rb_order_guest AS B ON A.GuestId=B.Id
LEFT JOIN rb_class as c on c.ClassId=a.ClassId LEFT JOIN rb_class as c on c.ClassId=a.ClassId
LEFT JOIN rb_student_orderguest as sog on sog.GuestId=a.GuestId LEFT JOIN rb_student_orderguest as sog on sog.GuestId=a.GuestId
LEFT JOIN rb_student as s on s.StuId = sog.Student_Id LEFT JOIN rb_student as s on s.StuId = sog.Student_Id
LEFT JOIN rb_examination_publish AS p ON A.PublishId=P.Id
WHERE 1=1 WHERE 1=1
"); ");
if (query != null) if (query != null)
...@@ -72,6 +73,14 @@ WHERE 1=1 ...@@ -72,6 +73,14 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_Student_ViewModel.PublishId), query.PublishId); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_Student_ViewModel.PublishId), query.PublishId);
} }
if (query.PaperId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_Student_ViewModel.PaperId), query.PaperId);
}
if (query.GuestId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_Student_ViewModel.GuestId), query.GuestId);
}
if (!string.IsNullOrEmpty(query.QPublishIds)) if (!string.IsNullOrEmpty(query.QPublishIds))
{ {
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Examination_Student_ViewModel.PublishId), query.QPublishIds); builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Examination_Student_ViewModel.PublishId), query.QPublishIds);
......
...@@ -732,7 +732,7 @@ SELECT A.* FROM ...@@ -732,7 +732,7 @@ SELECT A.* FROM
SELECT A.*,B.ClassTimeId,CONCAT(DATE_FORMAT(A.ClassDate,'%Y-%m-%d'),' ',B.StartTime,':00') AS StartTime,CONCAT(DATE_FORMAT(A.ClassDate,'%Y-%m-%d'),' ',B.EndTime,':00') AS EndTime SELECT A.*,B.ClassTimeId,CONCAT(DATE_FORMAT(A.ClassDate,'%Y-%m-%d'),' ',B.StartTime,':00') AS StartTime,CONCAT(DATE_FORMAT(A.ClassDate,'%Y-%m-%d'),' ',B.EndTime,':00') AS EndTime
FROM rb_class_plan AS A INNER JOIN rb_class_time AS B ON A.ClassPlanId=B.ClassPlanId FROM rb_class_plan AS A INNER JOIN rb_class_time AS B ON A.ClassPlanId=B.ClassPlanId
INNER JOIN rb_class AS C ON A.ClassId=C.ClassId INNER JOIN rb_class AS C ON A.ClassId=C.ClassId
WHERE A.`Status`=0 AND A.ClassDate>='{0}' AND C.ClassStatus IN(1,2) WHERE A.`Status`=0 AND C.Status=0 AND A.ClassDate>='{0}' AND C.ClassStatus IN(2)
) AS A ) AS A
WHERE 1=1 WHERE 1=1
", Common.ConvertHelper.FormatDate(DateTime.Now)); ", Common.ConvertHelper.FormatDate(DateTime.Now));
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Edu.Model.Entity.Mall;
using Edu.Model.ViewModel.Mall;
namespace Edu.Repository.Mall
{
public class RB_Member_UserRepository:BaseRepository<RB_Member_User>
{
/// <summary>
/// 根据查询条件获取用户实体类
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public RB_Member_User_Extend GetMemberUserEntityRepository(RB_Member_User_Extend query)
{
string where = " 1=1 ";
if (query.TenantId > 0)
{
where += $@" and {nameof(RB_Member_User.TenantId)}={query.TenantId}";
}
if (query.MallBaseId > 0)
{
where += $@" and {nameof(RB_Member_User.MallBaseId)}={query.MallBaseId}";
}
if (query.Id > 0)
{
where += $@" and {nameof(RB_Member_User.Id)}={query.Id}";
}
if (!string.IsNullOrEmpty(query.Name))
{
where += $@" and {nameof(RB_Member_User.Name)} like '%{query.Name}%'";
}
if (!string.IsNullOrEmpty(query.AliasName))
{
where += $@" and {nameof(RB_Member_User.AliasName)} like '%{query.AliasName}%'";
}
if (query.Source > 0)
{
where += $@" and {nameof(RB_Member_User.Source)} ={(int)query.Source}";
}
if (!string.IsNullOrEmpty(query.Moblie))
{
where += $@" and {nameof(RB_Member_User.Moblie)} like '%{query.Moblie}%'";
}
if (query.MemberGrade > 0)
{
where += $@" and {nameof(RB_Member_User.MemberGrade)}={query.MemberGrade}";
}
if (query.SuperiorId > 0)
{
where += $@" and {nameof(RB_Member_User.SuperiorId)}={query.SuperiorId}";
}
if (query.IsEmptyUserPhoto == 1)
{
where += $@" and IFNULL({nameof(RB_Member_User.Photo)},'')=''";
}
//HK06-01新增查询条件
if (query.OpenId != null && !string.IsNullOrWhiteSpace(query.OpenId))
{
where += $@" and {nameof(RB_Member_User.OpenId)} LIKE '{query.OpenId}%'";
}
string sql = $@"select * from RB_Member_User where {where} ";
return Get<RB_Member_User_Extend>(sql).FirstOrDefault();
}
}
}
...@@ -57,9 +57,9 @@ WHERE 1=1 ...@@ -57,9 +57,9 @@ WHERE 1=1
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT QuestionTypeId,DifficultyType,Count(QuestionId) AS QuestionCount SELECT QuestionTypeId,DifficultyType,Category,Count(QuestionId) AS QuestionCount
FROM RB_Question FROM RB_Question
WHERE 1=1 WHERE 1=1 AND `Status`=0
"); ");
if (query == null) if (query == null)
{ {
...@@ -79,7 +79,7 @@ WHERE 1=1 ...@@ -79,7 +79,7 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND {0} IN({1}) ", nameof(RB_Question_ViewModel.QuestionTypeId), query.Q_QuestionTypeIds); builder.AppendFormat(" AND {0} IN({1}) ", nameof(RB_Question_ViewModel.QuestionTypeId), query.Q_QuestionTypeIds);
} }
builder.AppendFormat(" GROUP BY QuestionTypeId,DifficultyType "); builder.AppendFormat(" GROUP BY QuestionTypeId,DifficultyType,Category ");
return Get<RB_Question_ViewModel>(builder.ToString()).ToList(); return Get<RB_Question_ViewModel>(builder.ToString()).ToList();
} }
} }
......
...@@ -142,7 +142,15 @@ ORDER BY {orderBy} ...@@ -142,7 +142,15 @@ ORDER BY {orderBy}
public List<RB_Order_ViewModel> GetOrderPageRepository(int pageIndex, int pageSize, out long rowsCount, RB_Order_ViewModel demodel) public List<RB_Order_ViewModel> GetOrderPageRepository(int pageIndex, int pageSize, out long rowsCount, RB_Order_ViewModel demodel)
{ {
string where = $@" 1=1"; string where = $@" 1=1";
where += $@" and o.{nameof(RB_Order_ViewModel.OrderType)} ={(int)OrderTypeEnum.CourseOrder} "; if (demodel.SourceId > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderType)} ={(int)OrderTypeEnum.StudyabroadOrder} ";
}
else
{
where += $@" and o.{nameof(RB_Order_ViewModel.OrderType)} ={(int)OrderTypeEnum.CourseOrder} ";
}
if (demodel.Group_Id > 0) if (demodel.Group_Id > 0)
{ {
where += $@" and o.{nameof(RB_Order_ViewModel.Group_Id)} ={demodel.Group_Id}"; where += $@" and o.{nameof(RB_Order_ViewModel.Group_Id)} ={demodel.Group_Id}";
...@@ -161,6 +169,10 @@ ORDER BY {orderBy} ...@@ -161,6 +169,10 @@ ORDER BY {orderBy}
{ {
where += $@" and o.{nameof(RB_Order_ViewModel.ClassId)} ={demodel.ClassId}"; where += $@" and o.{nameof(RB_Order_ViewModel.ClassId)} ={demodel.ClassId}";
} }
if (demodel.SourceId > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.SourceId)} ={demodel.SourceId}";
}
if (demodel.OrderState > 0) if (demodel.OrderState > 0)
{ {
where += $@" and o.{nameof(RB_Order_ViewModel.OrderState)} ={(int)demodel.OrderState}"; where += $@" and o.{nameof(RB_Order_ViewModel.OrderState)} ={(int)demodel.OrderState}";
......
...@@ -159,7 +159,7 @@ where b.`Status`=0 and b.ClassStatus in(1,2) and a.status=0 and a.Account_Id={ ...@@ -159,7 +159,7 @@ where b.`Status`=0 and b.ClassStatus in(1,2) and a.status=0 and a.Account_Id={
var parameters = new DynamicParameters(); var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat($@" builder.AppendFormat($@"
SELECT s.*,sog.GuestId,o.OrderState,cou.CourseName,cou.CourseId,c.ClassName,c.ClassId,c.ClassStatus,sch.SName,sch.SId,t.TeacherName,o.EnterID,(og.TotalHours-og.CompleteHours) as SurplusHours SELECT s.*,sog.GuestId,o.OrderState,cou.CourseName,cou.CourseId,c.ClassName,c.ClassId,c.ClassStatus,sch.SName,sch.SId,t.TeacherName,o.EnterID, if((og.ValidClassHours-og.CompleteHours)<0,0,(og.ValidClassHours-og.CompleteHours)) as SurplusHours
FROM rb_student as s LEFT JOIN rb_student_orderguest as sog on s.StuId=sog.Student_Id FROM rb_student as s LEFT JOIN rb_student_orderguest as sog on s.StuId=sog.Student_Id
LEFT JOIN rb_order_guest as og on og.Id=sog.GuestId LEFT JOIN rb_order_guest as og on og.Id=sog.GuestId
LEFT JOIN rb_order as o on og.OrderId=o.OrderId LEFT JOIN rb_order as o on og.OrderId=o.OrderId
......
...@@ -7,6 +7,7 @@ using Edu.Common.API; ...@@ -7,6 +7,7 @@ using Edu.Common.API;
using Edu.Common.Enum.App; using Edu.Common.Enum.App;
using Edu.Common.Plugin; using Edu.Common.Plugin;
using Edu.Model.CacheModel; using Edu.Model.CacheModel;
using Edu.Model.ViewModel.Mall;
using Edu.Model.ViewModel.User; using Edu.Model.ViewModel.User;
using Edu.Module.Public; using Edu.Module.Public;
using Edu.Module.User; using Edu.Module.User;
...@@ -144,6 +145,36 @@ namespace Edu.WebApi.Controllers.APP ...@@ -144,6 +145,36 @@ namespace Edu.WebApi.Controllers.APP
string token = WebApiTokenHelper.CreateToken(Common.GlobalKey.JWT_User_Key, eduUserInfo); string token = WebApiTokenHelper.CreateToken(Common.GlobalKey.JWT_User_Key, eduUserInfo);
#region 获取甲鹤小程序端token
//查询用户信息
var umodel = studentModule.GetMemberUserEntityModule(new RB_Member_User_Extend() { TenantId = Convert.ToInt32(Config.JHTenantId), MallBaseId = Convert.ToInt32(Config.JHMallBaseId), Source = 1, OpenId = Config.JHMallUserOpenId });
//if (umodel == null)
//{
// return ApiResult.Failed(message: "用户不存在", new { Error = -1 });
//}
IUserInfoToken mallUserInfo = new ErpTokenUserInfo { uid = umodel.Id.ToString(), requestFrom = Common.Enum.ApiRequestFromEnum.MallMiniProgram };
#region JWT
IDateTimeProvider provider = new UtcDateTimeProvider();
var now = provider.GetNow().AddMinutes(-1);
var unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); // or use JwtValidator.UnixEpoch
var secondsSinceEpoch = Math.Round((now - unixEpoch).TotalSeconds);
var payload = new Dictionary<string, object>
{
{"iat",secondsSinceEpoch },
{"exp",secondsSinceEpoch + Config.JwtExpirTime},
{"mall_userInfo",mallUserInfo }
};
IJwtAlgorithm algorithm = new HMACSHA256Algorithm();
IJsonSerializer serializer = new JsonNetSerializer();
IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
IJwtEncoder encoder = new JwtEncoder(algorithm, serializer, urlEncoder);
string secret = Config.JwtSecretKey;
string mallUserToken = encoder.Encode(payload, secret);
#endregion
#endregion
AppletStudentInfo obj = new AppletStudentInfo AppletStudentInfo obj = new AppletStudentInfo
{ {
Id = model.Id, Id = model.Id,
...@@ -155,12 +186,19 @@ namespace Edu.WebApi.Controllers.APP ...@@ -155,12 +186,19 @@ namespace Edu.WebApi.Controllers.APP
AccountName = model.AccountName, AccountName = model.AccountName,
SchoolName = studentModel.SName, SchoolName = studentModel.SName,
TeacherName = studentModel.TeacherName, TeacherName = studentModel.TeacherName,
CourseName= studentModel.CourseName, 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, EnterPhone = Cache.User.UserReidsCache.GetUserLoginInfo(studentModel.EnterID).UserMobile,
Token = token, Token = token,
GroupLogo = model.GroupLogo, GroupLogo = model.GroupLogo,
UserIcon = model.UserIcon, UserIcon = model.UserIcon,
ApiRequestFromEnum = Common.Enum.ApiRequestFromEnum.AppletStudent, ApiRequestFromEnum = Common.Enum.ApiRequestFromEnum.AppletStudent,
MallToken = mallUserToken,
JHMallBaseId = Config.JHMallBaseId,
JHTenantId = Config.JHTenantId,
JHMallUserId = umodel?.Id ?? 0,
JHMallUserOpenId = Config.JHMallUserOpenId,
UploadConfig = new UploadConfig = new
{ {
uploadConfig?.Bucket, uploadConfig?.Bucket,
...@@ -178,8 +216,6 @@ namespace Edu.WebApi.Controllers.APP ...@@ -178,8 +216,6 @@ namespace Edu.WebApi.Controllers.APP
} }
/// <summary> /// <summary>
/// 根据手机号码一键登录 /// 根据手机号码一键登录
/// </summary> /// </summary>
...@@ -189,7 +225,6 @@ namespace Edu.WebApi.Controllers.APP ...@@ -189,7 +225,6 @@ namespace Edu.WebApi.Controllers.APP
[AllowAnonymous] [AllowAnonymous]
public ApiResult LoginByAccount() public ApiResult LoginByAccount()
{ {
JObject jobj = JObject.Parse(RequestParm.Msg.ToString()); JObject jobj = JObject.Parse(RequestParm.Msg.ToString());
string account = jobj.GetStringValue("Account"); string account = jobj.GetStringValue("Account");
string UnionId = jobj.GetStringValue("UnionId"); string UnionId = jobj.GetStringValue("UnionId");
...@@ -269,7 +304,7 @@ namespace Edu.WebApi.Controllers.APP ...@@ -269,7 +304,7 @@ namespace Edu.WebApi.Controllers.APP
Token = token, Token = token,
GroupLogo = model.GroupLogo, GroupLogo = model.GroupLogo,
UserIcon = model.UserIcon, UserIcon = model.UserIcon,
EnterPhone= Cache.User.UserReidsCache.GetUserLoginInfo(studentModel.EnterID).UserMobile, EnterPhone = Cache.User.UserReidsCache.GetUserLoginInfo(studentModel.EnterID).UserMobile,
ApiRequestFromEnum = Common.Enum.ApiRequestFromEnum.AppletStudent, ApiRequestFromEnum = Common.Enum.ApiRequestFromEnum.AppletStudent,
UploadConfig = new UploadConfig = new
{ {
...@@ -287,8 +322,6 @@ namespace Edu.WebApi.Controllers.APP ...@@ -287,8 +322,6 @@ namespace Edu.WebApi.Controllers.APP
} }
} }
#region 小程序获取手机号码 #region 小程序获取手机号码
/// <summary> /// <summary>
/// 获取手机号码 /// 获取手机号码
......
...@@ -236,6 +236,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -236,6 +236,7 @@ namespace Edu.WebApi.Controllers.Course
StudentNumType = (StudentNumTypeEnum)base.ParmJObj.GetInt("StudentNumType"), StudentNumType = (StudentNumTypeEnum)base.ParmJObj.GetInt("StudentNumType"),
ClassHourMinute = base.ParmJObj.GetInt("ClassHourMinute"), ClassHourMinute = base.ParmJObj.GetInt("ClassHourMinute"),
}; };
extModel.ClassDateList = Common.Plugin.JsonHelper.DeserializeObject<List<string>>(base.ParmJObj.GetStringValue("ClassDateList")); extModel.ClassDateList = Common.Plugin.JsonHelper.DeserializeObject<List<string>>(base.ParmJObj.GetStringValue("ClassDateList"));
try try
{ {
...@@ -401,11 +402,19 @@ namespace Edu.WebApi.Controllers.Course ...@@ -401,11 +402,19 @@ namespace Edu.WebApi.Controllers.Course
{ {
extModel.ClassId = 0; extModel.ClassId = 0;
} }
if (string.IsNullOrEmpty(base.ParmJObj.GetStringValue("EndOrderTime")))
{
extModel.EndOrderTime = extModel.OpenTime;
}
flag = classModule.SetClassModule(extModel); flag = classModule.SetClassModule(extModel);
} }
} }
else else
{ {
if (string.IsNullOrEmpty(base.ParmJObj.GetStringValue("EndOrderTime")))
{
extModel.EndOrderTime = extModel.OpenTime;
}
flag = classModule.SetClassModule(extModel); flag = classModule.SetClassModule(extModel);
} }
return flag ? ApiResult.Success(data: extModel) : ApiResult.Failed(); return flag ? ApiResult.Success(data: extModel) : ApiResult.Failed();
...@@ -2231,7 +2240,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -2231,7 +2240,7 @@ namespace Edu.WebApi.Controllers.Course
{ {
var path = $"/course/prepareclassDetails?ClassId={query.ClassId}&ClassPlanId={query.ClassPlanId}"; var path = $"/course/prepareclassDetails?ClassId={query.ClassId}&ClassPlanId={query.ClassPlanId}";
path=HttpUtility.UrlEncode(path); path=HttpUtility.UrlEncode(path);
string markdownContent = $"`教师备课` 主管评论备课内容通知\n>**概要信息** \n>上课日期:<font color='info'>{query.ClassDate.Value.ToString("yyyy-MM-dd")}</font>\n>评价人:<font color='warning'>{model.CreateByName}</font>\n>评价日期:<font color='comment'>{DateTime.Now.ToString("MM-dd HH:mm")}</font>\n>\n>分数:<font color='comment'>{(query.Score == -1 ? "未评分" : query.Score + "分")}</font>\n>请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={query.TeacherId}&target={path}#target=out)"; string markdownContent = $"`教师备课` 主管评论备课内容通知\n>**概要信息** \n>上课日期:<font color='info'>{query.ClassDate.Value:yyyy-MM-dd}</font>\n>评价人:<font color='warning'>{model.CreateByName}</font>\n>评价日期:<font color='comment'>{DateTime.Now:MM-dd HH:mm}</font>\n>\n>分数:<font color='comment'>{(query.Score == -1 ? "未评分" : query.Score + "分")}</font>\n>请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={query.TeacherId}&target={path}#target=out)";
Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel() Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel()
{ {
CategoryId = PushMessageCategoryEnum.LessonComment, CategoryId = PushMessageCategoryEnum.LessonComment,
......
...@@ -257,7 +257,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -257,7 +257,7 @@ namespace Edu.WebApi.Controllers.Course
BankId = base.ParmJObj.GetInt("BankId"), BankId = base.ParmJObj.GetInt("BankId"),
QBankIds = base.ParmJObj.GetStringValue("QBankIds"), QBankIds = base.ParmJObj.GetStringValue("QBankIds"),
}; };
var data = questionModule.GetQuestionCategoryListModule(query); var data = questionModule.GetQuestionCategoryList_V2Module(query);
return ApiResult.Success(data: data); return ApiResult.Success(data: data);
} }
......
...@@ -2,10 +2,12 @@ ...@@ -2,10 +2,12 @@
using Edu.Common; using Edu.Common;
using Edu.Common.API; using Edu.Common.API;
using Edu.Common.Enum.Course; using Edu.Common.Enum.Course;
using Edu.Common.Enum.Exam;
using Edu.Common.Enum.Question; using Edu.Common.Enum.Question;
using Edu.Common.Plugin; using Edu.Common.Plugin;
using Edu.Model.ViewModel.Exam; using Edu.Model.ViewModel.Exam;
using Edu.Model.ViewModel.Flow; using Edu.Model.ViewModel.Flow;
using Edu.Model.ViewModel.Question;
using Edu.Module.Exam; using Edu.Module.Exam;
using Edu.Module.Question; using Edu.Module.Question;
using Edu.Module.System; using Edu.Module.System;
...@@ -508,15 +510,28 @@ namespace Edu.WebApi.Controllers.Exam ...@@ -508,15 +510,28 @@ namespace Edu.WebApi.Controllers.Exam
IsHalfScore = base.ParmJObj.GetInt("IsHalfScore"), IsHalfScore = base.ParmJObj.GetInt("IsHalfScore"),
PublishPic=base.ParmJObj.GetStringValue("PublishPic"), PublishPic=base.ParmJObj.GetStringValue("PublishPic"),
}; };
if (model.ExamStartTime > model.ExamEndTime)
{
return ApiResult.ParamIsNull("考试开始时间不能大于结束时间!");
}
var studentStr = base.ParmJObj.GetStringValue("StudentList"); var studentStr = base.ParmJObj.GetStringValue("StudentList");
if (!string.IsNullOrEmpty(studentStr)) if (!string.IsNullOrEmpty(studentStr))
{ {
model.StudentList = Common.Plugin.JsonHelper.DeserializeObject<List<RB_Examination_Student_ViewModel>>(studentStr); model.StudentList = Common.Plugin.JsonHelper.DeserializeObject<List<RB_Examination_Student_ViewModel>>(studentStr);
} }
if (model.StudentList == null || (model.StudentList != null && model.StudentList.Count == 0))
{
return ApiResult.ParamIsNull("请选择考试学员!");
}
if (string.IsNullOrEmpty(base.ParmJObj.GetStringValue("ExamStartTime")))
{
return ApiResult.ParamIsNull("请选择考试开始时间!");
}
if (string.IsNullOrEmpty(base.ParmJObj.GetStringValue("ExamEndTime")))
{
return ApiResult.ParamIsNull("请选择考试结束时间!");
}
if (model.ExamStartTime > model.ExamEndTime)
{
return ApiResult.ParamIsNull("考试开始时间不能大于结束时间!");
}
model.CreateBy = base.UserInfo.Id; model.CreateBy = base.UserInfo.Id;
model.CreateTime = DateTime.Now; model.CreateTime = DateTime.Now;
model.Group_Id = base.UserInfo.Group_Id; model.Group_Id = base.UserInfo.Group_Id;
...@@ -551,6 +566,9 @@ namespace Edu.WebApi.Controllers.Exam ...@@ -551,6 +566,9 @@ namespace Edu.WebApi.Controllers.Exam
PaperId = base.ParmJObj.GetInt("PaperId"), PaperId = base.ParmJObj.GetInt("PaperId"),
PaperName = base.ParmJObj.GetStringValue("PaperName"), PaperName = base.ParmJObj.GetStringValue("PaperName"),
IsQueryAll=base.ParmJObj.GetInt("IsQueryAll"), IsQueryAll=base.ParmJObj.GetInt("IsQueryAll"),
QTestStatus=base.ParmJObj.GetInt("QTestStatus"),
QStartTime=base.ParmJObj.GetStringValue("QStartTime"),
QEndTime=base.ParmJObj.GetStringValue("QEndTime"),
}; };
if (query.IsQueryAll != 1) if (query.IsQueryAll != 1)
{ {
...@@ -561,6 +579,24 @@ namespace Edu.WebApi.Controllers.Exam ...@@ -561,6 +579,24 @@ namespace Edu.WebApi.Controllers.Exam
var list = paperModule.GetExaminationPublishPageModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); var list = paperModule.GetExaminationPublishPageModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
foreach (var item in list) foreach (var item in list)
{ {
string TestStatusStr = "未开始";
var startTime = Convert.ToDateTime(item.ExamStartTime);
var endTime = Convert.ToDateTime(item.ExamEndTime);
//未开始
if (startTime > DateTime.Now)
{
TestStatusStr = "未开始";
}
//进行中
else if (startTime <= DateTime.Now && DateTime.Now <= endTime)
{
TestStatusStr = "进行中";
}
//已结束
else if (endTime < DateTime.Now)
{
TestStatusStr = "已结束";
}
var obj = new var obj = new
{ {
item.Id, item.Id,
...@@ -569,12 +605,14 @@ namespace Edu.WebApi.Controllers.Exam ...@@ -569,12 +605,14 @@ namespace Edu.WebApi.Controllers.Exam
CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? "", CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? "",
StartTime = Common.ConvertHelper.FormatTime(item.ExamStartTime), StartTime = Common.ConvertHelper.FormatTime(item.ExamStartTime),
EndTime = Common.ConvertHelper.FormatTime(item.ExamEndTime), EndTime = Common.ConvertHelper.FormatTime(item.ExamEndTime),
IsEdit = item.ExamStartTime > DateTime.Now ? 1 : 0,
item.ExamTimes, item.ExamTimes,
item.StudentCount, item.StudentCount,
ReviewerName = item.Reviewer > 0 ? (UserReidsCache.GetUserLoginInfo(item.Reviewer)?.AccountName ?? "") : "", ReviewerName = item.Reviewer > 0 ? (UserReidsCache.GetUserLoginInfo(item.Reviewer)?.AccountName ?? "") : "",
item.Reviewer, item.Reviewer,
item.ExamineStatus, item.ExamineStatus,
ExamineStatusStr =paperModule.GetExamineStatusStr(item.ExamineStatus) TestStatusStr,
ExamineStatusStr = paperModule.GetExamineStatusStr(item.ExamineStatus)
}; };
result.Add(obj); result.Add(obj);
} }
...@@ -800,6 +838,24 @@ namespace Edu.WebApi.Controllers.Exam ...@@ -800,6 +838,24 @@ namespace Edu.WebApi.Controllers.Exam
var list = paperModule.GetExaminationStudentPageRepository(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); var list = paperModule.GetExaminationStudentPageRepository(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
foreach (var item in list) foreach (var item in list)
{ {
if (item.ExamStartTime > System.DateTime.Now)
{
item.ExamStatus = ExamTestStatusEnum.NotStarted;
}
else if (item.ExamStartTime < System.DateTime.Now && item.EndTime > System.DateTime.Now)
{
if (item.ExamStatus != ExamTestStatusEnum.FinishTest && item.ExamStatus != ExamTestStatusEnum.FinishScoring)
{
item.ExamStatus = ExamTestStatusEnum.FinishStarted;
}
}
else if (item.EndTime < System.DateTime.Now)
{
if (item.ExamStatus != ExamTestStatusEnum.FinishTest && item.ExamStatus != ExamTestStatusEnum.FinishScoring)
{
item.ExamStatus = ExamTestStatusEnum.MissedTest;
}
}
var obj = new var obj = new
{ {
item.Id, item.Id,
...@@ -814,6 +870,10 @@ namespace Edu.WebApi.Controllers.Exam ...@@ -814,6 +870,10 @@ namespace Edu.WebApi.Controllers.Exam
item.CourseId, item.CourseId,
item.PublishId, item.PublishId,
CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? "", CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? "",
item.ExamStatus,
ExamStatusName = item.ExamStatus.ToName(),
ExamStartTime = Common.ConvertHelper.FormatTime(item.ExamStartTime),
EndTime = Common.ConvertHelper.FormatTime(item.EndTime),
}; };
result.Add(obj); result.Add(obj);
} }
...@@ -822,5 +882,62 @@ namespace Edu.WebApi.Controllers.Exam ...@@ -822,5 +882,62 @@ namespace Edu.WebApi.Controllers.Exam
return ApiResult.Success(data: pageModel); return ApiResult.Success(data: pageModel);
} }
#endregion #endregion
/// <summary>
/// 老师阅卷提交分数
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetTeacherScoring()
{
var PublishId = base.ParmJObj.GetInt("PublishId");
var GuestId = base.ParmJObj.GetInt("GuestId", 0);
var PaperId = base.ParmJObj.GetInt("PaperId");
//学生评语
string StuComment = base.ParmJObj.GetStringValue("StuComment");
List<RB_Examination_Details_ViewModel> paperDetailsList = new List<RB_Examination_Details_ViewModel>();
string groups = base.ParmJObj.GetStringValue("GroupList");
if (!string.IsNullOrEmpty(groups))
{
JArray jarray = JArray.Parse(groups);
if (jarray != null && jarray.Count > 0)
{
foreach (var jItem in jarray)
{
JObject jobj = JObject.Parse(jItem.ToString());
string details = jobj.GetStringValue("DetailsList");
if (!string.IsNullOrEmpty(details))
{
JArray subArray = JArray.Parse(details);
foreach (var sItem in subArray)
{
JObject sObj = JObject.Parse(sItem.ToString());
var qKey = sObj.GetStringValue("QuestionTypeKey");
string answer= sObj.GetStringValue("AnswerList");
List<SubAnswerItem> subList = new List<SubAnswerItem>();
if (qKey == "reading-comprehensio" || qKey == "listening" || qKey == "cloze")
{
if (!string.IsNullOrEmpty(answer))
{
subList = Common.Plugin.JsonHelper.DeserializeObject<List<SubAnswerItem>>(answer);
}
}
var detailModel = new RB_Examination_Details_ViewModel()
{
Id = sObj.GetInt("PaperDetailsId"),
StundetDetailsId = sObj.GetInt("StundetDetailsId"),
StudentScore = sObj.GetDecimal("StudentScore"),
SubList= subList,
};
paperDetailsList.Add(detailModel);
}
}
}
}
}
var result = paperModule.SetTeacherScoringModule(PublishId, GuestId, PaperId, StuComment, paperDetailsList);
return result ? ApiResult.Success("阅卷成功!") : ApiResult.Failed("阅卷失败!");
}
} }
} }
\ No newline at end of file
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks;
using Edu.Common.API; using Edu.Common.API;
using Edu.Common.Plugin; using Edu.Common.Plugin;
using Edu.Model.CacheModel; using Edu.Model.CacheModel;
...@@ -10,7 +9,6 @@ using Edu.Model.ViewModel.Grade; ...@@ -10,7 +9,6 @@ using Edu.Model.ViewModel.Grade;
using Edu.Module.System; using Edu.Module.System;
using Edu.WebApi.Filter; using Edu.WebApi.Filter;
using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
...@@ -44,7 +42,6 @@ namespace Edu.WebApi.Controllers.Public ...@@ -44,7 +42,6 @@ namespace Edu.WebApi.Controllers.Public
public ApiResult SetHoliday() public ApiResult SetHoliday()
{ {
UserInfo userInfo = base.UserInfo; UserInfo userInfo = base.UserInfo;
var startDate = base.ParmJObj.GetStringValue("StartTime"); var startDate = base.ParmJObj.GetStringValue("StartTime");
var endDate = base.ParmJObj.GetStringValue("EndTime"); var endDate = base.ParmJObj.GetStringValue("EndTime");
...@@ -72,9 +69,6 @@ namespace Edu.WebApi.Controllers.Public ...@@ -72,9 +69,6 @@ namespace Edu.WebApi.Controllers.Public
{ {
return ApiResult.Failed("节假日时间范围重合"); return ApiResult.Failed("节假日时间范围重合");
} }
if (dmodel.HolidayId == 0) if (dmodel.HolidayId == 0)
{ {
dmodel.CreateDate = System.DateTime.Now; dmodel.CreateDate = System.DateTime.Now;
...@@ -203,31 +197,65 @@ namespace Edu.WebApi.Controllers.Public ...@@ -203,31 +197,65 @@ namespace Edu.WebApi.Controllers.Public
} }
else else
{ {
return ApiResult.Failed("请求失败,数据不存在!"); return ApiResult.Failed("请求失败,数据不存在!");
} }
} }
/// <summary> /// <summary>
/// 批量新增节假日 /// 批量新增节假日
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[Microsoft.AspNetCore.Authorization.AllowAnonymous]
public ApiResult InsertHoliday() public ApiResult InsertHoliday()
{ {
string apiResult = Common.Plugin.HttpHelper.HttpGet("http://timor.tech/api/holiday/year/2021/"); string apiResult = Common.Plugin.HttpHelper.HttpGet("http://timor.tech/api/holiday/year/2021/");
JObject parmsJob = JObject.Parse(apiResult); JObject parmsJob = JObject.Parse(apiResult);
string resultCode = parmsJob.GetStringValue("code"); string resultCode = parmsJob.GetStringValue("code");
string holidayList = parmsJob.GetStringValue("holiday"); string holidayList = parmsJob.GetStringValue("holiday");
// JObject parmsHoliday = JObject.Parse(holidayList);
return ApiResult.Success(""); try
{
JObject jsonObject = JObject.Parse(holidayList);
foreach (var item in jsonObject.Children())
{
var test1 = item.Children();// JsonConvert.DeserializeObject<test>();
foreach (var item1 in test1)
{
var test = item1.ToObject<test>();
RB_System_Holiday dmodel = new RB_System_Holiday
{
StartTime = Convert.ToDateTime(test.date),
EndTime = Convert.ToDateTime(test.date)
};
if (test.holiday)//节假日
{
dmodel.DayType = 1;
}
else
{
dmodel.DayType = 2;
}
dmodel.CreateDate = System.DateTime.Now;
dmodel.Status = 0;
dmodel.Group_Id = 100000;
dmodel.School_Id = 0;
bool flag = holidayModule.SetHoliday(dmodel);
}
}
return ApiResult.Success("");
}
catch (Exception ex)
{
Common.Plugin.LogHelper.Write(ex, "InsertHoliday");
return ApiResult.Failed("转换失败");
}
} }
#endregion #endregion
}
public class test
{
public bool holiday { get; set; }
public string date { get; set; }
} }
} }
...@@ -176,20 +176,6 @@ namespace Edu.WebApi.Controllers.User ...@@ -176,20 +176,6 @@ namespace Edu.WebApi.Controllers.User
uid = JHTenantId, uid = JHTenantId,
groupId = model.Group_Id groupId = model.Group_Id
}; };
#region JWT
// string mallToken = WebApiTokenHelper.CreateToken(Common.GlobalKey.JWT_Mall_User_Key, mallJHUserInfo);
#endregion
#endregion
#region 获取甲鹤教育Token
#region JWT #region JWT
JWT.IDateTimeProvider provider2 = new JWT.UtcDateTimeProvider(); JWT.IDateTimeProvider provider2 = new JWT.UtcDateTimeProvider();
...@@ -210,9 +196,8 @@ namespace Edu.WebApi.Controllers.User ...@@ -210,9 +196,8 @@ namespace Edu.WebApi.Controllers.User
string malltokenJH = encoder2.Encode(payload2, secret2); string malltokenJH = encoder2.Encode(payload2, secret2);
#endregion #endregion
#endregion
#endregion
var treeList = menuModule.GetPostMenuTreeModule(new Model.ViewModel.System.RB_Menu_ViewModel() var treeList = menuModule.GetPostMenuTreeModule(new Model.ViewModel.System.RB_Menu_ViewModel()
{ {
MenuType = accountType MenuType = accountType
......
{ {
"ConnectionStrings": { "ConnectionStrings": {
"DefaultConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_edu;CharSet=utf8mb4; Convert Zero Datetime=true; ", "DefaultConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_edu;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"DefaultConnectionPName": "MySql.Data.MySqlClient", "DefaultConnectionPName": "MySql.Data.MySqlClient",
"FinanceConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_finance;CharSet=utf8mb4; Convert Zero Datetime=true; ", "FinanceConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_finance;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"FinanceConnectionPName": "MySql.Data.MySqlClient", "FinanceConnectionPName": "MySql.Data.MySqlClient",
"DataStatisticsConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_datastatistics;CharSet=utf8mb4; Convert Zero Datetime=true; ", "DataStatisticsConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_datastatistics;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"DataStatisticsConnectionPName": "MySql.Data.MySqlClient", "DataStatisticsConnectionPName": "MySql.Data.MySqlClient",
"LogConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_sys;CharSet=utf8mb4; Convert Zero Datetime=true; ", "LogConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_sys;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"LogConnectionPName": "MySql.Data.MySqlClient", "LogConnectionPName": "MySql.Data.MySqlClient",
"MallConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=test_reborn_mall;CharSet=utf8mb4; Convert Zero Datetime=true; ", "MallConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=test_reborn_mall;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"MallConnectionPName": "MySql.Data.MySqlClient" "MallConnectionPName": "MySql.Data.MySqlClient"
}, },
"Logging": { "Logging": {
"LogLevel": { "LogLevel": {
"Default": "Information", "Default": "Information",
"Microsoft": "Warning", "Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information" "Microsoft.Hosting.Lifetime": "Information"
} }
}, },
"SettlementRate": "0.60", "SettlementRate": "0.60",
"SellCommissionFFBL": "0.15", "SellCommissionFFBL": "0.15",
"JwtSecretKey": "@VIITTOREBORN*2018", "JwtSecretKey": "@VIITTOREBORN*2018",
"MallJwtSecretKey": "@VIITTOREBORN*2018123", "MallJwtSecretKey": "@VIITTOREBORN*2018123",
"JwtExpirTime": 86400, "JwtExpirTime": 86400,
"IsSendMsg": 2, "IsSendMsg": 2,
"AllowedHosts": "*", "AllowedHosts": "*",
"OpenValidation": "False", "OpenValidation": "False",
"UploadSiteUrl": "http://192.168.1.36:8120", "UploadSiteUrl": "http://192.168.1.36:8120",
"ViewFileSiteUrl": "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com", "ViewFileSiteUrl": "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com",
"ErpViewFileSiteUrl": "http://imgfile.oytour.com", "ErpViewFileSiteUrl": "http://imgfile.oytour.com",
"ErpUrl": "http://localhost:8181/#", "ErpUrl": "http://localhost:8181/#",
"Mongo": "mongodb://47.96.25.130:27017", "Mongo": "mongodb://47.96.25.130:27017",
"MongoDBName": "Edu", "MongoDBName": "Edu",
"WkHtmlToPdfPath": "D:/wkhtmltopdf/bin/", "WkHtmlToPdfPath": "D:/wkhtmltopdf/bin/",
"FinanceKey": "FinanceMallInsertToERPViitto2020", "FinanceKey": "FinanceMallInsertToERPViitto2020",
"PaymentFinanceApi": "http://192.168.20.6:8083/api/Mall/InsertFinanceBatchForMallOut", "PaymentFinanceApi": "http://192.168.20.6:8083/api/Mall/InsertFinanceBatchForMallOut",
"IncomeFinanceApi": "http://192.168.20.6:8083/api/Mall/InsertFinanceBatchForMallIn", "IncomeFinanceApi": "http://192.168.20.6:8083/api/Mall/InsertFinanceBatchForMallIn",
"sTenpayNotifyUrl": "http://eduapi.oytour.com/api/WeChatPay/WxPayCallback", //下单回调地址 "sTenpayNotifyUrl": "http://eduapi.oytour.com/api/WeChatPay/WxPayCallback", //下单回调地址
"sTenpayNotifyRefundUrl": "http://eduapi.oytour.com/api/WeChatPay/Refunds", //退款回调地址 "sTenpayNotifyRefundUrl": "http://eduapi.oytour.com/api/WeChatPay/Refunds", //退款回调地址
"FinanceDateBase": "reborn_finance", "FinanceDateBase": "reborn_finance",
"EduDateBase": "uat_reborn_edu", "EduDateBase": "uat_reborn_edu",
"JHTenantId": "15", "JHTenantId": "15",
"JHMallBaseId": "5", "JHMallBaseId": "5",
"Notice_BaseKey": "Notice_BaseKey", "JHMallUserOpenId": "oshxs5I-6uR1J91Rs3QVyi2rJIm4",
"EducationContractSchool": "EducationContractSchool", "Notice_BaseKey": "Notice_BaseKey",
"EducationContractAdmin": "EducationContractAdmin", "EducationContractSchool": "EducationContractSchool",
"QYWeiChatToken": "b3e0ebf63301f80cb8e741cf72fdaf3c", "EducationContractAdmin": "EducationContractAdmin",
"QYWeiChatEncodingAESKey": "ODRjOGEwYWQxNWJkNDRkMTg2NGJiOWY1ZTE4LCE0NmY", "QYWeiChatToken": "b3e0ebf63301f80cb8e741cf72fdaf3c",
"RabbitMqConfig": { "QYWeiChatEncodingAESKey": "ODRjOGEwYWQxNWJkNDRkMTg2NGJiOWY1ZTE4LCE0NmY",
"HostName": "47.96.25.130", "RabbitMqConfig": {
"VirtualHost": "/", "HostName": "47.96.25.130",
"Port": 5672, "VirtualHost": "/",
"UserName": "guest", "Port": 5672,
"Password": "viitto2019", "UserName": "guest",
"QueenName": "vt_sys_message_test" "Password": "viitto2019",
}, "QueenName": "vt_sys_message_test"
"RedisSetting": { },
"RedisServer": "47.96.23.199", "RedisSetting": {
"RedisPort": "6379", "RedisServer": "47.96.23.199",
"RedisPwd": "Viitto2018" "RedisPort": "6379",
}, "RedisPwd": "Viitto2018"
"VirtualDirectory": "WebFile", },
//未填写 未打分 下降比例 "VirtualDirectory": "WebFile",
"OKRMatterValue": "30,100,100", //未填写 未打分 下降比例
//是否是线上环境 "OKRMatterValue": "30,100,100",
"IsOnline": false, //是否是线上环境
//退课流程编号 "IsOnline": false,
"BackClassFlowId": 1, //退课流程编号
//分区校长岗位编号 "BackClassFlowId": 1,
"SchoolPostId": 3, //分区校长岗位编号
//教务长 "SchoolPostId": 3,
"JiaoWuZhang": 8, //教务长
//留学就业部门主管审核编号[王涛] "JiaoWuZhang": 8,
"StudyAbroadDirectorId": 64, //留学就业部门主管审核编号[王涛]
//留学就业部门负责人审核编号[姚顺先] "StudyAbroadDirectorId": 64,
"StudyAbroadManagerId": 52, //留学就业部门负责人审核编号[姚顺先]
//合同默认抬头 "StudyAbroadManagerId": 52,
"ContractDefaultTitle": "JH-DZ-CD-", //合同默认抬头
//消息推送AppId "ContractDefaultTitle": "JH-DZ-CD-",
"PushAppId": "JiaHeJiaoYu", //消息推送AppId
//是否推送消息 "PushAppId": "JiaHeJiaoYu",
"IsPushMessage": "1", //是否推送消息
//超过下班时间60分钟不能打卡 "IsPushMessage": "1",
"MoreThanMinutes": 60, //超过下班时间60分钟不能打卡
//连续缺课课时 "MoreThanMinutes": 60,
"AbsentHours": 12, //连续缺课课时
//值班时间验证日期 "AbsentHours": 12,
"DutyDate": "2021-06-30", //值班时间验证日期
//调课流程编号 "DutyDate": "2021-06-30",
"ChangeClassFlowId": 2, //调课流程编号
//停课流程编号 "ChangeClassFlowId": 2,
"StopClassFlowId": 3, //停课流程编号
//临时上课邀请流程编号 "StopClassFlowId": 3,
"TempInvitationClassFlowId": 4, //临时上课邀请流程编号
//订单转班流程编号 "TempInvitationClassFlowId": 4,
"OrderTransClassFlowId": 5, //订单转班流程编号
//订单分拆流程编号 "OrderTransClassFlowId": 5,
"OrderSplitClassFlowId": 6, //订单分拆流程编号
//是否开启调课数据验证 "OrderSplitClassFlowId": 6,
"IsOpenChangeClassVerify": 1, //是否开启调课数据验证
//是否是本地服务 "IsOpenChangeClassVerify": 1,
"IsLocal": "1", //是否是本地服务
//临时Token "IsLocal": "1",
"TempToken": "47_oXN2xrKRE9InhFMtcCuFx_8Psl2i9TgCYhdHIsvuii5TweFkXvM1J0miUS1sLiRO5GggPOSQqCL1mfVK_ZR9HzV0JAn12TUKctzrBf2p6cFN0gzSUP88Q-iEA3yNgVkL9-DtNpzPL2stAfD7GTRaAIAANL", //临时Token
//学生请假流程编号 "TempToken": "47_oXN2xrKRE9InhFMtcCuFx_8Psl2i9TgCYhdHIsvuii5TweFkXvM1J0miUS1sLiRO5GggPOSQqCL1mfVK_ZR9HzV0JAn12TUKctzrBf2p6cFN0gzSUP88Q-iEA3yNgVkL9-DtNpzPL2stAfD7GTRaAIAANL",
"StudentLeaveFlowId": 7, //学生请假流程编号
//组卷审批流程编号 "StudentLeaveFlowId": 7,
"ZuJuanFlowId": 8, //组卷审批流程编号
//考试申请流程编号 "ZuJuanFlowId": 8,
"ExamApplyFlowId": 9 //考试申请流程编号
"ExamApplyFlowId": 9
} }
\ 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