Commit daf88ea1 authored by liudong1993's avatar liudong1993

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

parents 6e85a8c3 f1970a59
...@@ -286,8 +286,16 @@ namespace Edu.Common ...@@ -286,8 +286,16 @@ namespace Edu.Common
/// <returns></returns> /// <returns></returns>
public static int CalcMinutes(DateTime start, DateTime end) public static int CalcMinutes(DateTime start, DateTime end)
{ {
int minutes = Convert.ToInt32((end - start).TotalSeconds); int minutes = 0;
minutes /= 60; try
{
minutes = Convert.ToInt32((end - start).TotalSeconds);
minutes /= 60;
}
catch
{
}
return minutes; return minutes;
} }
......
...@@ -63,5 +63,15 @@ namespace Edu.Model.Entity.Customer ...@@ -63,5 +63,15 @@ namespace Edu.Model.Entity.Customer
/// 状态 /// 状态
/// </summary> /// </summary>
public DateStateEnum Status { get; set; } public DateStateEnum Status { get; set; }
/// <summary>
/// 是否签约(1-已签约)
/// </summary>
public int IsContract { get; set; }
/// <summary>
/// 合同附件
/// </summary>
public string ContractUrl { get; set; }
} }
} }
...@@ -66,5 +66,20 @@ namespace Edu.Model.Entity.Exam ...@@ -66,5 +66,20 @@ namespace Edu.Model.Entity.Exam
/// 是否作答错误(1-是) /// 是否作答错误(1-是)
/// </summary> /// </summary>
public int IsWrong { get; set; } public int IsWrong { get; set; }
/// <summary>
/// 学生答案
/// </summary>
public string StudentAnswer { get; set; }
/// <summary>
/// 学生得分
/// </summary>
public decimal Score { get; set; }
/// <summary>
/// 学生得分
/// </summary>
public decimal StudentScore { get; set; }
} }
} }
...@@ -83,5 +83,10 @@ namespace Edu.Model.Entity.Exam ...@@ -83,5 +83,10 @@ namespace Edu.Model.Entity.Exam
/// 学生答案 /// 学生答案
/// </summary> /// </summary>
public string StudentAnswer { get; set; } public string StudentAnswer { get; set; }
/// <summary>
/// 是否复习
/// </summary>
public int IsReview { get; set; }
} }
} }
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Edu.Model.Entity.User
{
/// <summary>
/// 全公司客户数据统计实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Student_Company
{
/// <summary>
/// 主键
/// </summary>
public int Id { get; set; }
/// <summary>
/// 日期
/// </summary>
public DateTime Date { get; set; }
/// <summary>
/// 推送人数
/// </summary>
public decimal PushCount { get; set; }
/// <summary>
/// 新客户
/// </summary>
public decimal NewCount { get; set; }
/// <summary>
/// 初步沟通/二次沟通
/// </summary>
public decimal CommunicationCount { get; set; }
/// <summary>
/// 预约试听(已到店,已试听)
/// </summary>
public decimal TrialLessonCount { get; set; }
/// <summary>
/// 待联系
/// </summary>
public decimal NotContacted { get; set; }
/// <summary>
/// 日本语培
/// </summary>
public decimal JPCount { get; set; }
/// <summary>
/// 韩国语培
/// </summary>
public decimal KRCount { get; set; }
/// <summary>
/// 法国语培
/// </summary>
public decimal FRCount { get; set; }
/// <summary>
/// 日本留学
/// </summary>
public decimal JPStudyCount { get; set; }
/// <summary>
/// 韩国留学
/// </summary>
public decimal KRStudyCount { get; set; }
/// <summary>
/// 英港澳留学
/// </summary>
public decimal YGAStudyCount { get; set; }
/// <summary>
/// 美国留学
/// </summary>
public decimal USStudyCount { get; set; }
/// <summary>
/// 新加坡留学
/// </summary>
public decimal SGStudyCount { get; set; }
/// <summary>
/// 澳新留学
/// </summary>
public decimal AXStudyCount { get; set; }
/// <summary>
/// 其他
/// </summary>
public decimal OtherCount { get; set; }
/// <summary>
/// A类客户
/// </summary>
public decimal ClassACount { get; set; }
/// <summary>
/// B类客户
/// </summary>
public decimal ClassBCount { get; set; }
/// <summary>
/// C类客户
/// </summary>
public decimal ClassCCount { get; set; }
/// <summary>
/// D类客户
/// </summary>
public decimal ClassDCount { get; set; }
/// <summary>
/// 同行介绍
/// </summary>
public decimal CustomerCount { get; set; }
/// <summary>
/// 直客
/// </summary>
public decimal B2CCount { get; set; }
/// <summary>
/// 学员转介绍
/// </summary>
public decimal TransCount { get; set; }
/// <summary>
/// 内部介绍
/// </summary>
public decimal InnerCount { get; set; }
/// <summary>
/// 无效
/// </summary>
public decimal InvalidCount { get; set; }
/// <summary>
/// 疑似
/// </summary>
public decimal SuspectedCount { get; set; }
/// <summary>
/// 意向
/// </summary>
public decimal IntentionCount { get; set; }
/// <summary>
/// 近期可邀约
/// </summary>
public decimal InvitationCount { get; set; }
/// <summary>
/// 谈判
/// </summary>
public decimal NegotiationCount { get; set; }
/// <summary>
/// 签约(成交、续费)
/// </summary>
public decimal ContractCount { get; set; }
/// <summary>
/// 语培签约金额
/// </summary>
public decimal OrderMoney { get; set; }
/// <summary>
/// 留学签约金额
/// </summary>
public decimal StudyOrderMoney { get; set; }
/// <summary>
/// 年
/// </summary>
public int YearStr { get; set; }
/// <summary>
/// 月
/// </summary>
public int MonthStr { get; set; }
/// <summary>
/// 次(0-上旬,1-中旬,2-下旬)
/// </summary>
public int Times { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 学校编号
/// </summary>
public int School_Id { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
}
}
...@@ -133,5 +133,10 @@ namespace Edu.Model.ViewModel.Customer ...@@ -133,5 +133,10 @@ namespace Edu.Model.ViewModel.Customer
/// 同业名称 /// 同业名称
/// </summary> /// </summary>
public string CategoryName { get; set; } public string CategoryName { get; set; }
/// <summary>
/// 是否签约
/// </summary>
public int IsContract { get; set; }
} }
} }
...@@ -14,5 +14,15 @@ namespace Edu.Model.ViewModel.Exam ...@@ -14,5 +14,15 @@ namespace Edu.Model.ViewModel.Exam
/// 考试编号【查询使用】 /// 考试编号【查询使用】
/// </summary> /// </summary>
public string QExamIds { get; set; } public string QExamIds { get; set; }
/// <summary>
/// 题库编号
/// </summary>
public int BankId { get; set; }
/// <summary>
/// 学员编号
/// </summary>
public int StudentId { get; set; }
} }
} }
using Edu.Model.Entity.Exam; using Edu.Common.Enum.Question;
using Edu.Model.Entity.Exam;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
...@@ -35,5 +36,9 @@ namespace Edu.Model.ViewModel.Exam ...@@ -35,5 +36,9 @@ namespace Edu.Model.ViewModel.Exam
/// </summary> /// </summary>
public int ExamMinutes { get { return Common.ConvertHelper.CalcMinutes(this.StartTime, this.EndTime); } } public int ExamMinutes { get { return Common.ConvertHelper.CalcMinutes(this.StartTime, this.EndTime); } }
/// <summary>
/// 题库类型(见枚举)
/// </summary>
public LevelTypeEnum BankType { get; set; }
} }
} }
...@@ -10,5 +10,29 @@ namespace Edu.Model.ViewModel.Exam ...@@ -10,5 +10,29 @@ namespace Edu.Model.ViewModel.Exam
/// </summary> /// </summary>
public class RB_Student_Practice_Extend : RB_Student_Practice public class RB_Student_Practice_Extend : RB_Student_Practice
{ {
/// <summary>
/// 错题数量
/// </summary>
public int WrongCount { get; set; }
/// <summary>
/// 开始编号
/// </summary>
public int StartId { get; set; }
/// <summary>
/// 是否只查询错题
/// </summary>
public int IsQueryWrong { get; set; }
/// <summary>
/// 是否查询已复习的
/// </summary>
public int IsQueryReview { get; set; }
/// <summary>
/// 分类编号
/// </summary>
public string QCategoryIds { get; set; }
} }
} }
...@@ -139,5 +139,10 @@ namespace Edu.Model.ViewModel.Question ...@@ -139,5 +139,10 @@ namespace Edu.Model.ViewModel.Question
/// 排序类型(1-问题编号) /// 排序类型(1-问题编号)
/// </summary> /// </summary>
public int OrderByType { get; set; } public int OrderByType { get; set; }
/// <summary>
/// 问题编号
/// </summary>
public string QuestionIds { get; set; }
} }
} }
\ No newline at end of file
using Edu.Model.Entity.User;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Model.ViewModel.User
{
/// <summary>
/// 全公司客户数据统计扩展实体类
/// </summary>
public class RB_Student_Company_Extend : RB_Student_Company
{
/// <summary>
/// 月份
/// </summary>
public string ShowMonthStr { get; set; }
/// <summary>
/// 日期字符串
/// </summary>
public string DateStr
{
get
{
return Common.ConvertHelper.FormatDate2(this.Date);
}
}
}
}
...@@ -546,12 +546,11 @@ namespace Edu.Module.Course ...@@ -546,12 +546,11 @@ namespace Edu.Module.Course
{ {
foreach (var sItem in subItem.WordsList) foreach (var sItem in subItem.WordsList)
{ {
Int32.TryParse(subItem.ChapterNo, out int ChapterId);
wordsList.Add(new RB_Course_Words_Extend() wordsList.Add(new RB_Course_Words_Extend()
{ {
Id = 0, Id = 0,
CourseId = query.NewCourseId, CourseId = query.NewCourseId,
ChapterId = ChapterId, ChapterId = maxLength,
WordType = sItem.WordType, WordType = sItem.WordType,
WordContent = sItem.WordContent, WordContent = sItem.WordContent,
WordTone = sItem.WordTone, WordTone = sItem.WordTone,
......
...@@ -646,6 +646,10 @@ namespace Edu.Module.Customer ...@@ -646,6 +646,10 @@ namespace Edu.Module.Customer
public bool SetCustomerCategoryModule(RB_Customer_Category_Extend model) public bool SetCustomerCategoryModule(RB_Customer_Category_Extend model)
{ {
bool flag = false; bool flag = false;
if (model.IsContract == 0)
{
model.ContractUrl = "";
}
if (model.CategoryId > 0) if (model.CategoryId > 0)
{ {
Dictionary<string, object> fileds = new Dictionary<string, object>() Dictionary<string, object> fileds = new Dictionary<string, object>()
...@@ -654,6 +658,8 @@ namespace Edu.Module.Customer ...@@ -654,6 +658,8 @@ namespace Edu.Module.Customer
{ nameof(RB_Customer_Category_Extend.CatetoryType),model.CatetoryType}, { nameof(RB_Customer_Category_Extend.CatetoryType),model.CatetoryType},
{ nameof(RB_Customer_Category_Extend.UpdateBy),model.UpdateBy}, { nameof(RB_Customer_Category_Extend.UpdateBy),model.UpdateBy},
{ nameof(RB_Customer_Category_Extend.UpdateTime),model.UpdateTime}, { nameof(RB_Customer_Category_Extend.UpdateTime),model.UpdateTime},
{ nameof(RB_Customer_Category_Extend.IsContract),model.IsContract},
{ nameof(RB_Customer_Category_Extend.ContractUrl),model.ContractUrl},
}; };
flag = customer_CategoryRepository.Update(fileds, new WhereHelper(nameof(RB_Customer_Category_Extend.CategoryId), model.CategoryId)); flag = customer_CategoryRepository.Update(fileds, new WhereHelper(nameof(RB_Customer_Category_Extend.CategoryId), model.CategoryId));
} }
......
...@@ -1335,6 +1335,8 @@ namespace Edu.Module.Customer ...@@ -1335,6 +1335,8 @@ namespace Edu.Module.Customer
List<MarketChannelStaticModel> schoolDataList = new List<MarketChannelStaticModel>(); List<MarketChannelStaticModel> schoolDataList = new List<MarketChannelStaticModel>();
List<MarketChannelStaticModel> innerDataList = new List<MarketChannelStaticModel>(); List<MarketChannelStaticModel> innerDataList = new List<MarketChannelStaticModel>();
List<MarketChannelStaticModel> transDataList = new List<MarketChannelStaticModel>(); List<MarketChannelStaticModel> transDataList = new List<MarketChannelStaticModel>();
//签约渠道
List<MarketChannelStaticModel> contractDataList = new List<MarketChannelStaticModel>();
foreach (var item in enumList) foreach (var item in enumList)
{ {
if (item.Id == (int)StuCreateTypeEnum.EmployeeInput) if (item.Id == (int)StuCreateTypeEnum.EmployeeInput)
...@@ -1363,10 +1365,10 @@ namespace Edu.Module.Customer ...@@ -1363,10 +1365,10 @@ namespace Edu.Module.Customer
var tempCusList = dataList?.Where(qitem => qitem.CreateType == StuCreateTypeEnum.CustomerInput && qitem.CategoryId == subItem.CategoryId)?.ToList(); var tempCusList = dataList?.Where(qitem => qitem.CreateType == StuCreateTypeEnum.CustomerInput && qitem.CategoryId == subItem.CategoryId)?.ToList();
var tempCustomer = customerList?.FirstOrDefault(qitem => qitem.CategoryId == subItem.CategoryId); var tempCustomer = customerList?.FirstOrDefault(qitem => qitem.CategoryId == subItem.CategoryId);
string channelName = tempCustomer?.CategoryName ?? "其他"; string channelName = tempCustomer?.CategoryName ?? "其他";
//舒翰
if (sItem.CatetoryType == CatetoryTypeEnum.Company) if ((tempCustomer?.IsContract??0)==1)
{ {
customerDataList.Add(new MarketChannelStaticModel() contractDataList.Add(new MarketChannelStaticModel()
{ {
ChannelName = channelName, ChannelName = channelName,
ChannelId = subItem.CategoryId, ChannelId = subItem.CategoryId,
...@@ -1376,17 +1378,32 @@ namespace Edu.Module.Customer ...@@ -1376,17 +1378,32 @@ namespace Edu.Module.Customer
OrderIncome = tempCusList?.Sum(qitem => qitem.OrderIncome) ?? 0 OrderIncome = tempCusList?.Sum(qitem => qitem.OrderIncome) ?? 0
}); });
} }
if (sItem.CatetoryType == CatetoryTypeEnum.School) else
{ {
schoolDataList.Add(new MarketChannelStaticModel() if (sItem.CatetoryType == CatetoryTypeEnum.Company)
{ {
ChannelName = channelName, customerDataList.Add(new MarketChannelStaticModel()
ChannelId = subItem.CategoryId, {
ClueCount = tempCusList?.Count() ?? 0, ChannelName = channelName,
VisitCount = tempCusList?.Sum(qitem => qitem.VisitCount) ?? 0, ChannelId = subItem.CategoryId,
OrderCount = tempCusList?.Sum(qitem => qitem.OrderCount) ?? 0, ClueCount = tempCusList?.Count() ?? 0,
OrderIncome = tempCusList?.Sum(qitem => qitem.OrderIncome) ?? 0 VisitCount = tempCusList?.Sum(qitem => qitem.VisitCount) ?? 0,
}); OrderCount = tempCusList?.Sum(qitem => qitem.OrderCount) ?? 0,
OrderIncome = tempCusList?.Sum(qitem => qitem.OrderIncome) ?? 0
});
}
if (sItem.CatetoryType == CatetoryTypeEnum.School)
{
schoolDataList.Add(new MarketChannelStaticModel()
{
ChannelName = channelName,
ChannelId = subItem.CategoryId,
ClueCount = tempCusList?.Count() ?? 0,
VisitCount = tempCusList?.Sum(qitem => qitem.VisitCount) ?? 0,
OrderCount = tempCusList?.Sum(qitem => qitem.OrderCount) ?? 0,
OrderIncome = tempCusList?.Sum(qitem => qitem.OrderIncome) ?? 0
});
}
} }
} }
} }
...@@ -1448,6 +1465,7 @@ namespace Edu.Module.Customer ...@@ -1448,6 +1465,7 @@ namespace Edu.Module.Customer
schoolDataList, schoolDataList,
innerDataList, innerDataList,
transDataList, transDataList,
contractDataList,
}; };
} }
......
This diff is collapsed.
...@@ -448,13 +448,13 @@ namespace Edu.Module.User ...@@ -448,13 +448,13 @@ namespace Edu.Module.User
/// <summary> /// <summary>
/// 学员转交 /// 学员转交
/// </summary> /// </summary>
/// <param name="StuId">学员编号</param> /// <param name="StuIds">学员编号</param>
/// <param name="CreateBy">负责人</param> /// <param name="CreateBy">负责人</param>
/// <param name="OperateId">操作人</param> /// <param name="OperateId">操作人</param>
/// <returns></returns> /// <returns></returns>
public bool ForwardStudentModule(int StuId, int CreateBy, int OperateId) public bool ForwardStudentModule(string StuIds, int CreateBy, int OperateId)
{ {
return studentRepository.ForwardStudentRepository(StuId, CreateBy, OperateId); return studentRepository.ForwardStudentRepository(StuIds, CreateBy, OperateId);
} }
/// <summary> /// <summary>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -114,7 +114,7 @@ WHERE 1=1 ...@@ -114,7 +114,7 @@ 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.CategoryName,'') AS CategoryName SELECT A.*,IFNULL(B.CategoryName,'') AS CategoryName,IFNULL(B.IsContract,0) AS IsContract
FROM RB_Customer AS A LEFT JOIN rb_customer_category AS B ON A.CategoryId=B.CategoryId FROM RB_Customer AS A LEFT JOIN rb_customer_category AS B ON A.CategoryId=B.CategoryId
WHERE 1=1 WHERE 1=1
"); ");
......
...@@ -25,18 +25,22 @@ SELECT A.* ...@@ -25,18 +25,22 @@ SELECT A.*
FROM RB_Student_ExamDetails AS A FROM RB_Student_ExamDetails AS A
WHERE 1=1 WHERE 1=1
"); ");
if (query != null) builder.AppendFormat(@" AND ExamId IN(SELECT MAX(id) FROM rb_student_exam WHERE StudentId IN({0}) AND BankId={1} AND Score>0) ", query.StudentId, query.BankId);
{
if (query.ExamId > 0)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Student_ExamDetails_Extend.ExamId), query.ExamId);
}
if (!string.IsNullOrEmpty(query.QExamIds))
{
builder.AppendFormat(@" AND A.{0} IN ({1}) ", nameof(RB_Student_ExamDetails_Extend.ExamId), query.QExamIds);
}
}
return Get<RB_Student_ExamDetails_Extend>(builder.ToString()).ToList(); return Get<RB_Student_ExamDetails_Extend>(builder.ToString()).ToList();
} }
/// <summary>
/// 批量提交考试
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
public bool BatchStudentExamDetailsRepository(List<RB_Student_ExamDetails_Extend> list)
{
StringBuilder builder = new StringBuilder();
builder.Append("INSERT INTO RB_Student_ExamDetails (ExamId,QuestionId,Title,QuestionContent,QuestionTypeId,QuestionTypeKey,Answer,AnswerParse,IsAnswer,IsWrong,StudentAnswer,Score,StudentScore) ");
builder.Append(" VALUES(@ExamId,@QuestionId,@Title,@QuestionContent,@QuestionTypeId,@QuestionTypeKey,@Answer,@AnswerParse,@IsAnswer,@IsWrong,@StudentAnswer,@Score,@StudentScore) ");
return base.Execute(builder.ToString(), list) > 0;
}
} }
} }
...@@ -13,19 +13,16 @@ namespace Edu.Repository.Exam ...@@ -13,19 +13,16 @@ namespace Edu.Repository.Exam
public class RB_Student_ExamRepository : BaseRepository<RB_Student_Exam> public class RB_Student_ExamRepository : BaseRepository<RB_Student_Exam>
{ {
/// <summary> /// <summary>
/// 获取学员练习考试分页列表 /// 获取学员练习考试参与人数统计
/// </summary> /// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param> /// <param name="query"></param>
/// <returns></returns> /// <returns></returns>
public List<RB_Student_Exam_Extend> GetStudentExamPageRepository(int pageIndex, int pageSize, out long rowsCount, RB_Student_Exam_Extend query) public List<RB_Student_Exam_Extend> GetStudentExamStaticRepository(RB_Student_Exam_Extend query)
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT A.* SELECT B.BankType,A.StudentId
FROM RB_Student_Exam AS A FROM RB_Student_Exam AS A INNER JOIN rb_question_bank AS B ON A.BankId=B.BankId
WHERE 1=1 WHERE 1=1
"); ");
if (query != null) if (query != null)
...@@ -47,7 +44,8 @@ WHERE 1=1 ...@@ -47,7 +44,8 @@ WHERE 1=1
builder.AppendFormat(@" AND A.{0} IN({1}) ", nameof(RB_Student_Exam_Extend.BankId), query.QBankIds); builder.AppendFormat(@" AND A.{0} IN({1}) ", nameof(RB_Student_Exam_Extend.BankId), query.QBankIds);
} }
} }
return GetPage<RB_Student_Exam_Extend>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList(); builder.Append(" GROUP BY B.BankType,A.StudentId ");
return Get<RB_Student_Exam_Extend>(builder.ToString()).ToList();
} }
......
...@@ -35,6 +35,10 @@ WHERE 1=1 ...@@ -35,6 +35,10 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Practice_Extend.Category), query.Category); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Practice_Extend.Category), query.Category);
} }
if (!string.IsNullOrEmpty(query.QCategoryIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Student_Practice_Extend.Category), query.QCategoryIds);
}
if (query.LevelType > 0) if (query.LevelType > 0)
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Practice_Extend.LevelType), (int)query.LevelType); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Practice_Extend.LevelType), (int)query.LevelType);
...@@ -43,6 +47,10 @@ WHERE 1=1 ...@@ -43,6 +47,10 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Practice_Extend.QuestionId), query.QuestionId); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Practice_Extend.QuestionId), query.QuestionId);
} }
if (query.IsQueryReview == 1)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Practice_Extend.IsReview), 1);
}
} }
return Get<RB_Student_Practice_Extend>(builder.ToString()).ToList(); return Get<RB_Student_Practice_Extend>(builder.ToString()).ToList();
} }
...@@ -77,8 +85,53 @@ WHERE 1=1 ...@@ -77,8 +85,53 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Practice_Extend.LevelType), (int)query.LevelType); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Practice_Extend.LevelType), (int)query.LevelType);
} }
if (query.IsQueryWrong == 1)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Practice_Extend.IsWrong), 1);
}
if (!string.IsNullOrEmpty(query.QCategoryIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Student_Practice_Extend.Category), query.QCategoryIds);
}
if (query.StartId > 0)
{
builder.AppendFormat(" AND A.{0}>{1} ", nameof(RB_Student_Practice_Extend.Id), query.StartId);
}
} }
return GetPage<RB_Student_Practice_Extend>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList(); return GetPage<RB_Student_Practice_Extend>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList();
} }
/// <summary>
/// 获取学员练习错题统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Practice_Extend> GetStudentPracticeWrongStaticRepository(RB_Student_Practice_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT Category,COUNT(1) AS WrongCount
FROM rb_student_practice
WHERE 1=1
");
builder.AppendFormat(" AND IsWrong=1 ");
if (query != null)
{
if (query.StudentId > 0)
{
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Student_Practice_Extend.StudentId), query.StudentId);
}
if (query.LevelType > 0)
{
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Student_Practice_Extend.LevelType), (int)query.LevelType);
}
if (!string.IsNullOrEmpty(query.QCategoryIds))
{
builder.AppendFormat(" AND {0} IN({1}) ", nameof(RB_Student_Practice_Extend.Category), query.QCategoryIds);
}
}
builder.AppendFormat(" GROUP BY Category ");
return Get<RB_Student_Practice_Extend>(builder.ToString()).ToList();
}
} }
} }
...@@ -52,6 +52,10 @@ WHERE 1=1 AND B.Status=0 ...@@ -52,6 +52,10 @@ WHERE 1=1 AND B.Status=0
{ {
builder.AppendFormat(" AND B.{0}={1} ", nameof(RB_Question_ViewModel.BankType), (int)query.BankType); builder.AppendFormat(" AND B.{0}={1} ", nameof(RB_Question_ViewModel.BankType), (int)query.BankType);
} }
if (!string.IsNullOrEmpty(query.QuestionIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Question_ViewModel.QuestionId), query.QuestionIds);
}
return Get<RB_Question_ViewModel>(builder.ToString()).ToList(); return Get<RB_Question_ViewModel>(builder.ToString()).ToList();
} }
} }
......
...@@ -195,10 +195,6 @@ ORDER BY {orderBy} ...@@ -195,10 +195,6 @@ ORDER BY {orderBy}
{ {
where += $@" and o.{nameof(RB_Order_ViewModel.OrderForm)} ={(int)demodel.OrderForm}"; where += $@" and o.{nameof(RB_Order_ViewModel.OrderForm)} ={(int)demodel.OrderForm}";
} }
if (demodel.EnterID > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.EnterID)} ={demodel.EnterID}";
}
if (demodel.Dept_Id > 0) if (demodel.Dept_Id > 0)
{ {
where += $@" and o.{nameof(RB_Order_ViewModel.Dept_Id)} ={demodel.Dept_Id}"; where += $@" and o.{nameof(RB_Order_ViewModel.Dept_Id)} ={demodel.Dept_Id}";
...@@ -275,9 +271,19 @@ ORDER BY {orderBy} ...@@ -275,9 +271,19 @@ ORDER BY {orderBy}
{ {
where += $@" and o.{nameof(RB_Order_ViewModel.CustomerId)} = {demodel.CustomerId}"; where += $@" and o.{nameof(RB_Order_ViewModel.CustomerId)} = {demodel.CustomerId}";
} }
if (demodel.CreateBy > 0) //HK 03 - 15修改
if (demodel.CreateBy > 0|| demodel.EnterID > 0)
{ {
where += $@" and o.{nameof(RB_Order_ViewModel.CreateBy)} = {demodel.CreateBy}"; var createBy = 0;
if (demodel.CreateBy > 0)
{
createBy = demodel.CreateBy;
}
if (createBy <= 0 && demodel.EnterID > 0)
{
createBy = demodel.EnterID;
}
where += $@" and (o.{nameof(RB_Order_ViewModel.CreateBy)} = {createBy} OR o.{nameof(RB_Order_ViewModel.EnterID)}={createBy} )";
} }
if (demodel.CategoryId > 0) if (demodel.CategoryId > 0)
{ {
...@@ -349,10 +355,7 @@ WHERE {where} ORDER BY {orderBy} ...@@ -349,10 +355,7 @@ WHERE {where} ORDER BY {orderBy}
{ {
where += $@" and o.{nameof(RB_Order_ViewModel.OrderForm)} ={(int)demodel.OrderForm}"; where += $@" and o.{nameof(RB_Order_ViewModel.OrderForm)} ={(int)demodel.OrderForm}";
} }
if (demodel.EnterID > 0)
{
where += $@" and o.{nameof(RB_Order_ViewModel.EnterID)} ={demodel.EnterID}";
}
if (demodel.Dept_Id > 0) if (demodel.Dept_Id > 0)
{ {
where += $@" and o.{nameof(RB_Order_ViewModel.Dept_Id)} ={demodel.Dept_Id}"; where += $@" and o.{nameof(RB_Order_ViewModel.Dept_Id)} ={demodel.Dept_Id}";
...@@ -405,9 +408,19 @@ WHERE {where} ORDER BY {orderBy} ...@@ -405,9 +408,19 @@ WHERE {where} ORDER BY {orderBy}
{ {
where += $@" and o.{nameof(RB_Order_ViewModel.CustomerId)} ={demodel.CustomerId}"; where += $@" and o.{nameof(RB_Order_ViewModel.CustomerId)} ={demodel.CustomerId}";
} }
if (demodel.CreateBy > 0) //HK 03-15修改
if (demodel.CreateBy > 0 || demodel.EnterID > 0)
{ {
where += $@" and o.{nameof(RB_Order_ViewModel.CreateBy)} ={demodel.CreateBy}"; var createBy = 0;
if (demodel.CreateBy > 0)
{
createBy = demodel.CreateBy;
}
if (createBy <= 0 && demodel.EnterID > 0)
{
createBy = demodel.EnterID;
}
where += $@" and (o.{nameof(RB_Order_ViewModel.CreateBy)} = {createBy} OR o.{nameof(RB_Order_ViewModel.EnterID)}={createBy} )";
} }
if (demodel.CourseSubject > 0) if (demodel.CourseSubject > 0)
{ {
...@@ -1203,7 +1216,8 @@ FROM rb_order o ...@@ -1203,7 +1216,8 @@ FROM rb_order o
WHERE 1=1 WHERE 1=1
"); ");
builder.AppendFormat(" AND o.OrderState IN({0}) ", (int)OrderStateEnum.Normal); builder.AppendFormat(" AND o.OrderState IN({0}) ", (int)OrderStateEnum.Normal);
builder.AppendFormat(" AND o.{0}={1} ", nameof(RB_Order_ViewModel.OrderType), (int)OrderTypeEnum.CourseOrder);
//builder.AppendFormat(" AND o.{0}={1} ", nameof(RB_Order_ViewModel.OrderType), (int)OrderTypeEnum.CourseOrder);
builder.AppendFormat(" AND o.CreateTime >= '2021-12-01' "); builder.AppendFormat(" AND o.CreateTime >= '2021-12-01' ");
builder.AppendFormat(" AND o.OrderId NOT IN(SELECT B.OrderId FROM rb_personnel_bonus AS A INNER JOIN rb_personnel_bonusdetail AS B ON A.Id=B.BonusId WHERE A.PlanType={0} AND A.EmployeeId ={1}) ", PlanType, SaleId); builder.AppendFormat(" AND o.OrderId NOT IN(SELECT B.OrderId FROM rb_personnel_bonus AS A INNER JOIN rb_personnel_bonusdetail AS B ON A.Id=B.BonusId WHERE A.PlanType={0} AND A.EmployeeId ={1}) ", PlanType, SaleId);
//帐平 //帐平
......
...@@ -806,32 +806,40 @@ WHERE o.OrderState=1 and og.`Status`=0 and sog.`Status`=0 and og.GuestState <>2 ...@@ -806,32 +806,40 @@ WHERE o.OrderState=1 and og.`Status`=0 and sog.`Status`=0 and og.GuestState <>2
/// <summary> /// <summary>
/// 学员转交 /// 学员转交
/// </summary> /// </summary>
/// <param name="StuId">学员编号</param> /// <param name="StuIds">学员编号</param>
/// <param name="CreateBy">负责人</param> /// <param name="CreateBy">负责人</param>
/// <param name="OperateId">操作人</param> /// <param name="OperateId">操作人</param>
/// <returns></returns> /// <returns></returns>
public bool ForwardStudentRepository(int StuId, int CreateBy, int OperateId) public bool ForwardStudentRepository(string StuIds, int CreateBy, int OperateId)
{ {
bool flag = false;
string logTitle = "客户转交"; string logTitle = "客户转交";
string logContent = ""; string logContent = "";
var oldModel = base.GetEntity(StuId); var stuList = GetStudentListRepository(new RB_Student_ViewModel() { StuIds = StuIds });
Dictionary<string, object> fileds = new Dictionary<string, object>() if (stuList != null && stuList.Count > 0)
{
{nameof(RB_Student_ViewModel.CreateBy),CreateBy },
};
if (oldModel.CreateBy != CreateBy)
{ {
string createByIds = string.Join(",", stuList.Select(qitem => qitem.CreateBy)) + "," + CreateBy;
var empList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel() var empList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel()
{ {
QIds = oldModel.CreateBy + "," + CreateBy QIds = createByIds.TrimStart(',').TrimEnd(',')
}); });
logContent = string.Format("负责人:由【{0}】=>【{1}】", foreach (var oldModel in stuList)
empList?.FirstOrDefault(qitem => qitem.CreateBy == oldModel.CreateBy)?.EmployeeName, {
empList?.FirstOrDefault(qitem => qitem.CreateBy == CreateBy)?.EmployeeName Dictionary<string, object> fileds = new Dictionary<string, object>()
); {
{nameof(RB_Student_ViewModel.CreateBy),CreateBy },
};
if (oldModel.CreateBy != CreateBy)
{
logContent = string.Format("负责人:由【{0}】=>【{1}】",
empList?.FirstOrDefault(qitem => qitem.Id == oldModel.CreateBy)?.EmployeeName,
empList?.FirstOrDefault(qitem => qitem.Id == CreateBy)?.EmployeeName
);
}
flag = base.Update(fileds, new WhereHelper(nameof(RB_Student_ViewModel.StuId), oldModel.StuId));
student_LogRepository.AddStuLogRepository(oldModel.StuId, Common.Enum.Log.StudentLogTypeEnum.BasicInfo, logTitle, logContent, OperateId);
}
} }
var flag = base.Update(fileds, new WhereHelper(nameof(RB_Student_ViewModel.StuId), StuId));
student_LogRepository.AddStuLogRepository(oldModel.StuId, Common.Enum.Log.StudentLogTypeEnum.BasicInfo, logTitle, logContent, OperateId);
return flag; return flag;
} }
......
using Edu.Model.Entity.User;
using Edu.Model.ViewModel.User;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using VT.FW.DB.Dapper;
namespace Edu.Repository.User
{
/// <summary>
/// 全公司客户数据统计仓储层
/// </summary>
public class RB_Student_CompanyRepository : BaseRepository<RB_Student_Company>
{
/// <summary>
/// 全公司客户数据统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Company_Extend> GetStudentCompanyListRepository(RB_Student_Company_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM RB_Student_Company AS A
WHERE 1=1
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Company_Extend.Group_Id), query.Group_Id);
}
if (query.YearStr > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Company_Extend.YearStr), query.YearStr);
}
if (query.MonthStr > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Company_Extend.MonthStr), query.MonthStr);
}
if (query.Times > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Company_Extend.Times), query.Times);
}
}
builder.AppendFormat(" ORDER BY A.{0} ASC ", nameof(RB_Student_Company_Extend.Id));
return Get<RB_Student_Company_Extend>(builder.ToString()).ToList();
}
/// <summary>
/// 全公司客户数据月份统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Company_Extend> GetStudentCompanyMonthListRepository(RB_Student_Company_Extend query,bool isYear=false)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT CONCAT(DATE_FORMAT(A.Date, '%Y-%m'),'-01') AS Date,A.YearStr,A.MonthStr,SUM(A.PushCount) AS PushCount,SUM(A.NewCount) AS NewCount,SUM(A.CommunicationCount) AS CommunicationCount
,SUM(A.TrialLessonCount) AS TrialLessonCount,SUM(A.NotContacted) AS NotContacted,SUM(A.JPCount) AS JPCount,SUM(A.KRCount) AS KRCount,SUM(A.FRCount) AS FRCount
,SUM(A.JPStudyCount) AS JPStudyCount,SUM(A.KRStudyCount) AS KRStudyCount,SUM(A.YGAStudyCount) AS YGAStudyCount,SUM(A.USStudyCount) AS USStudyCount
,SUM(A.SGStudyCount) AS SGStudyCount,SUM(A.AXStudyCount) AS AXStudyCount,SUM(A.OtherCount) AS OtherCount,SUM(A.ClassACount) AS ClassACount,SUM(A.ClassBCount) AS ClassBCount
,SUM(A.ClassCCount) AS ClassCCount,SUM(A.ClassDCount) AS ClassDCount,SUM(A.CustomerCount) AS CustomerCount,SUM(A.B2CCount) AS B2CCount,SUM(A.TransCount) AS TransCount
,SUM(A.InnerCount) AS InnerCount,SUM(A.InvalidCount) AS InvalidCount,SUM(A.SuspectedCount) AS SuspectedCount,SUM(A.IntentionCount) AS IntentionCount
,SUM(A.InvitationCount) AS InvitationCount,SUM(A.NegotiationCount) AS NegotiationCount,SUM(A.ContractCount) AS ContractCount,SUM(A.OrderMoney) AS OrderMoney
,SUM(A.StudyOrderMoney) AS StudyOrderMoney
FROM RB_Student_Company AS A
WHERE 1=1 AND A.Date<>'0001-01-01 00:00:00'
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Company_Extend.Group_Id), query.Group_Id);
}
if (query.YearStr > 0)
{
if (isYear)
{
builder.AppendFormat(" AND A.{0}<={1} ", nameof(RB_Student_Company_Extend.YearStr), query.YearStr);
}
else
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Company_Extend.YearStr), query.YearStr);
}
}
}
builder.AppendFormat(" GROUP BY DATE_FORMAT(A.Date, '%Y-%m') ");
builder.AppendFormat(" ORDER BY DATE_FORMAT(A.Date, '%Y-%m') ASC ");
return Get<RB_Student_Company_Extend>(builder.ToString()).ToList();
}
/// <summary>
/// 全公司客户数据年份统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Company_Extend> GetStudentCompanyYearListRepository(RB_Student_Company_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT CONCAT(A.YearStr,'-01','-01') AS Date,A.YearStr,SUM(A.PushCount) AS PushCount,SUM(A.NewCount) AS NewCount,SUM(A.CommunicationCount) AS CommunicationCount
,SUM(A.TrialLessonCount) AS TrialLessonCount,SUM(A.NotContacted) AS NotContacted,SUM(A.JPCount) AS JPCount,SUM(A.KRCount) AS KRCount,SUM(A.FRCount) AS FRCount
,SUM(A.JPStudyCount) AS JPStudyCount,SUM(A.KRStudyCount) AS KRStudyCount,SUM(A.YGAStudyCount) AS YGAStudyCount,SUM(A.USStudyCount) AS USStudyCount
,SUM(A.SGStudyCount) AS SGStudyCount,SUM(A.AXStudyCount) AS AXStudyCount,SUM(A.OtherCount) AS OtherCount,SUM(A.ClassACount) AS ClassACount,SUM(A.ClassBCount) AS ClassBCount
,SUM(A.ClassCCount) AS ClassCCount,SUM(A.ClassDCount) AS ClassDCount,SUM(A.CustomerCount) AS CustomerCount,SUM(A.B2CCount) AS B2CCount,SUM(A.TransCount) AS TransCount
,SUM(A.InnerCount) AS InnerCount,SUM(A.InvalidCount) AS InvalidCount,SUM(A.SuspectedCount) AS SuspectedCount,SUM(A.IntentionCount) AS IntentionCount
,SUM(A.InvitationCount) AS InvitationCount,SUM(A.NegotiationCount) AS NegotiationCount,SUM(A.ContractCount) AS ContractCount,SUM(A.OrderMoney) AS OrderMoney
,SUM(A.StudyOrderMoney) AS StudyOrderMoney
FROM RB_Student_Company AS A
WHERE 1=1 AND A.Date<>'0001-01-01 00:00:00'
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Company_Extend.Group_Id), query.Group_Id);
}
if (query.YearStr > 0)
{
builder.AppendFormat(" AND A.{0}<={1} ", nameof(RB_Student_Company_Extend.YearStr), query.YearStr);
}
}
builder.AppendFormat(" GROUP BY A.YearStr ");
builder.AppendFormat(" ORDER BY A.YearStr ASC ");
return Get<RB_Student_Company_Extend>(builder.ToString()).ToList();
}
/// <summary>
/// 根据存储过程统计全公司客户信息
/// </summary>
/// <param name="DateStr"></param>
/// <returns></returns>
public RB_Student_Company_Extend GetStudentCompanyByProcRepository(string DateStr,string empIds)
{
string sql = string.Format("call proc_student_company('{0}') ", DateStr);
var list = Get<RB_Student_Company_Extend>(sql);
return list?.FirstOrDefault();
}
/// <summary>
/// 清楚全公司客户统计数据
/// </summary>
public void DeleteStudentCompanyByProcRepository()
{
string sql = "TRUNCATE TABLE RB_Student_Company";
base.Execute(sql);
}
}
}
...@@ -98,10 +98,10 @@ namespace Edu.WebApi.Controllers.Course ...@@ -98,10 +98,10 @@ namespace Edu.WebApi.Controllers.Course
{ {
var extModel = new RB_Question_Bank_ViewModel() var extModel = new RB_Question_Bank_ViewModel()
{ {
BankId=base.ParmJObj.GetInt("BankId"), BankId = base.ParmJObj.GetInt("BankId"),
BankNo=base.ParmJObj.GetStringValue("BankNo"), BankNo = base.ParmJObj.GetStringValue("BankNo"),
BankName=base.ParmJObj.GetStringValue("BankName"), BankName = base.ParmJObj.GetStringValue("BankName"),
BankType=(LevelTypeEnum)base.ParmJObj.GetInt("BankType"), BankType = (LevelTypeEnum)base.ParmJObj.GetInt("BankType"),
}; };
extModel.CreateTime = DateTime.Now; extModel.CreateTime = DateTime.Now;
extModel.CreateBy = base.UserInfo.Id; extModel.CreateBy = base.UserInfo.Id;
...@@ -122,7 +122,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -122,7 +122,7 @@ namespace Edu.WebApi.Controllers.Course
public ApiResult GetBankTypeList() public ApiResult GetBankTypeList()
{ {
var list = Common.Plugin.EnumHelper.EnumToList(typeof(LevelTypeEnum)); var list = Common.Plugin.EnumHelper.EnumToList(typeof(LevelTypeEnum));
return ApiResult.Success(data:list); return ApiResult.Success(data: list);
} }
/// <summary> /// <summary>
...@@ -234,7 +234,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -234,7 +234,7 @@ namespace Edu.WebApi.Controllers.Course
item.QuestionId, item.QuestionId,
item.CourseId, item.CourseId,
Title = newTitle, Title = newTitle,
SourceTitle=item.Title, SourceTitle = item.Title,
item.QuestionTypeId, item.QuestionTypeId,
item.QuestionTypeKey, item.QuestionTypeKey,
QuestionTypeName = item.QuestionTypeKey != "single-number" ? item.QuestionTypeName : "选择题", QuestionTypeName = item.QuestionTypeKey != "single-number" ? item.QuestionTypeName : "选择题",
...@@ -386,7 +386,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -386,7 +386,7 @@ namespace Edu.WebApi.Controllers.Course
{ {
return ApiResult.Failed(message: "请填写问题题干!"); return ApiResult.Failed(message: "请填写问题题干!");
} }
string str = analysisQuestion.CheckQuestion(extModel.QuestionTypeKey, extModel.QuestionContent,extModel.Answer,out string newAnswer); string str = analysisQuestion.CheckQuestion(extModel.QuestionTypeKey, extModel.QuestionContent, extModel.Answer, out string newAnswer);
if (!string.IsNullOrEmpty(str)) if (!string.IsNullOrEmpty(str))
{ {
return ApiResult.Failed(message: str); return ApiResult.Failed(message: str);
...@@ -410,15 +410,28 @@ namespace Edu.WebApi.Controllers.Course ...@@ -410,15 +410,28 @@ namespace Edu.WebApi.Controllers.Course
[HttpPost] [HttpPost]
public ApiResult RunQuestion() public ApiResult RunQuestion()
{ {
Task.Run(() => { Task.Run(() =>
var list = questionModule.GetQuestionListModule(new RB_Question_ViewModel() { Q_QuestionTypeIds = "14,16", }); {
var list = questionModule.GetQuestionListModule(new RB_Question_ViewModel() { Q_QuestionTypeIds = "16", });
if (list != null && list.Count > 0) if (list != null && list.Count > 0)
{ {
foreach (var item in list) foreach (var item in list)
{ {
try try
{ {
var listenList = JsonHelper.DeserializeObject<List<SubAnswerItem>>(item.Answer); if (!string.IsNullOrEmpty(item.Answer))
{
var listenList = JsonHelper.DeserializeObject<List<SubAnswerItem>>(item.Answer);
}
else
{
string str = analysisQuestion.CheckQuestion(item.QuestionTypeKey, item.QuestionContent, item.Answer, out string newAnswer, IsRequire: false);
if (!string.IsNullOrEmpty(newAnswer))
{
item.Answer = newAnswer;
bool flag = questionModule.SetQuestionModule(item);
}
}
} }
catch catch
{ {
......
...@@ -948,6 +948,8 @@ namespace Edu.WebApi.Controllers.Customer ...@@ -948,6 +948,8 @@ namespace Edu.WebApi.Controllers.Customer
Group_Id = base.UserInfo.Group_Id, Group_Id = base.UserInfo.Group_Id,
CategoryName = base.ParmJObj.GetStringValue("CategoryName"), CategoryName = base.ParmJObj.GetStringValue("CategoryName"),
CatetoryType=(CatetoryTypeEnum)base.ParmJObj.GetInt("CatetoryType"), CatetoryType=(CatetoryTypeEnum)base.ParmJObj.GetInt("CatetoryType"),
IsContract=base.ParmJObj.GetInt("IsContract"),
ContractUrl=base.ParmJObj.GetStringValue("ContractUrl"),
}; };
int IsQueryAll = base.ParmJObj.GetInt("IsQueryAll"); int IsQueryAll = base.ParmJObj.GetInt("IsQueryAll");
if (IsQueryAll ==0) if (IsQueryAll ==0)
...@@ -969,6 +971,8 @@ namespace Edu.WebApi.Controllers.Customer ...@@ -969,6 +971,8 @@ namespace Edu.WebApi.Controllers.Customer
item.LinkManCount, item.LinkManCount,
item.StudentCount, item.StudentCount,
item.OrderCount, item.OrderCount,
item.IsContract,
item.ContractUrl,
CatetoryTypeName = item.CatetoryType.ToName(), CatetoryTypeName = item.CatetoryType.ToName(),
CreateTime = Common.ConvertHelper.FormatTime(item.CreateTime), CreateTime = Common.ConvertHelper.FormatTime(item.CreateTime),
}); });
...@@ -992,6 +996,8 @@ namespace Edu.WebApi.Controllers.Customer ...@@ -992,6 +996,8 @@ namespace Edu.WebApi.Controllers.Customer
Group_Id = base.UserInfo.Group_Id, Group_Id = base.UserInfo.Group_Id,
CategoryName = base.ParmJObj.GetStringValue("CategoryName"), CategoryName = base.ParmJObj.GetStringValue("CategoryName"),
CatetoryType = (CatetoryTypeEnum)base.ParmJObj.GetInt("CatetoryType"), CatetoryType = (CatetoryTypeEnum)base.ParmJObj.GetInt("CatetoryType"),
IsContract = base.ParmJObj.GetInt("IsContract"),
ContractUrl = base.ParmJObj.GetStringValue("ContractUrl"),
}; };
int IsQueryAll = base.ParmJObj.GetInt("IsQueryAll"); int IsQueryAll = base.ParmJObj.GetInt("IsQueryAll");
if (IsQueryAll == 0) if (IsQueryAll == 0)
...@@ -1087,6 +1093,8 @@ namespace Edu.WebApi.Controllers.Customer ...@@ -1087,6 +1093,8 @@ namespace Edu.WebApi.Controllers.Customer
CategoryId= CategoryId, CategoryId= CategoryId,
CategoryName = base.ParmJObj.GetStringValue("CategoryName").Trim(), CategoryName = base.ParmJObj.GetStringValue("CategoryName").Trim(),
CatetoryType = (CatetoryTypeEnum)base.ParmJObj.GetInt("CatetoryType"), CatetoryType = (CatetoryTypeEnum)base.ParmJObj.GetInt("CatetoryType"),
IsContract=base.ParmJObj.GetInt("IsContract"),
ContractUrl=base.ParmJObj.GetStringValue("ContractUrl"),
}; };
var linkMan = base.ParmJObj.GetStringValue("linkMan"); var linkMan = base.ParmJObj.GetStringValue("linkMan");
var linkTel = base.ParmJObj.GetStringValue("linkTel"); var linkTel = base.ParmJObj.GetStringValue("linkTel");
...@@ -1167,6 +1175,8 @@ namespace Edu.WebApi.Controllers.Customer ...@@ -1167,6 +1175,8 @@ namespace Edu.WebApi.Controllers.Customer
extModel?.CategoryName, extModel?.CategoryName,
extModel?.CatetoryType, extModel?.CatetoryType,
CatetoryTypeName=extModel?.CatetoryType.ToName()??"", CatetoryTypeName=extModel?.CatetoryType.ToName()??"",
extModel?.ContractUrl,
extModel?.IsContract,
}; };
return ApiResult.Success(data: obj); return ApiResult.Success(data: obj);
} }
......
...@@ -1061,6 +1061,17 @@ namespace Edu.WebApi.Controllers.Exam ...@@ -1061,6 +1061,17 @@ namespace Edu.WebApi.Controllers.Exam
return ApiResult.Success(data: pageModel); return ApiResult.Success(data: pageModel);
} }
/// <summary>
/// 获取考级题库参与人数统计
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetAppBankStatic()
{
var obj = courseExamModule.GetAppBankStaticModule();
return ApiResult.Success(data: obj);
}
/// <summary> /// <summary>
/// 获取考级题库分页列表 /// 获取考级题库分页列表
/// </summary> /// </summary>
...@@ -1092,7 +1103,8 @@ namespace Edu.WebApi.Controllers.Exam ...@@ -1092,7 +1103,8 @@ namespace Edu.WebApi.Controllers.Exam
{ {
BankId = base.ParmJObj.GetInt("BankId"), BankId = base.ParmJObj.GetInt("BankId"),
}; };
var list = courseExamModule.GetAppBankDetailsPageModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); int StudentId = base.ParmJObj.GetInt("StudentId");
var list = courseExamModule.GetAppBankDetailsPageModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query, StudentId: StudentId);
pageModel.Count = rowsCount; pageModel.Count = rowsCount;
pageModel.PageData = list; pageModel.PageData = list;
return ApiResult.Success(data: pageModel); return ApiResult.Success(data: pageModel);
...@@ -1140,7 +1152,6 @@ namespace Edu.WebApi.Controllers.Exam ...@@ -1140,7 +1152,6 @@ namespace Edu.WebApi.Controllers.Exam
Id = base.ParmJObj.GetInt("Id"), Id = base.ParmJObj.GetInt("Id"),
BankId = base.ParmJObj.GetInt("BankId"), BankId = base.ParmJObj.GetInt("BankId"),
StudentId = base.ParmJObj.GetInt("StudentId"), StudentId = base.ParmJObj.GetInt("StudentId"),
StartTime = base.ParmJObj.GetDateTime("StartTime"),
CreateTime = DateTime.Now, CreateTime = DateTime.Now,
GroupId = base.ParmJObj.GetInt("GroupId") GroupId = base.ParmJObj.GetInt("GroupId")
}; };
...@@ -1191,6 +1202,8 @@ namespace Edu.WebApi.Controllers.Exam ...@@ -1191,6 +1202,8 @@ namespace Edu.WebApi.Controllers.Exam
AnswerParse=sObj.GetStringValue("AnswerParse"), AnswerParse=sObj.GetStringValue("AnswerParse"),
IsAnswer=sObj.GetInt("IsAnswer"), IsAnswer=sObj.GetInt("IsAnswer"),
IsWrong=sObj.GetInt("IsWrong"), IsWrong=sObj.GetInt("IsWrong"),
StudentAnswer = sObj.GetStringValue("StudentAnswer"),
Score=sObj.GetDecimal("Score"),
}; };
model.ExamDetailsList.Add(sModel); model.ExamDetailsList.Add(sModel);
} }
...@@ -1200,6 +1213,60 @@ namespace Edu.WebApi.Controllers.Exam ...@@ -1200,6 +1213,60 @@ namespace Edu.WebApi.Controllers.Exam
return flag ? ApiResult.Success() : ApiResult.Failed(); return flag ? ApiResult.Success() : ApiResult.Failed();
} }
/// <summary>
/// 获取错题练习统计
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetPracticeWrongStatic()
{
var query = new RB_Student_Practice_Extend()
{
StudentId= base.ParmJObj.GetInt("StudentId"),
LevelType= (LevelTypeEnum)base.ParmJObj.GetInt("LevelType"),
};
var obj = courseExamModule.GetPracticeWrongStaticModule(query);
return ApiResult.Success(data: obj);
}
/// <summary>
/// 获取错题分页列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetPracticeWrongPage()
{
var pageModel = JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var query = new RB_Student_Practice_Extend()
{
StudentId = base.ParmJObj.GetInt("StudentId"),
LevelType = (LevelTypeEnum)base.ParmJObj.GetInt("LevelType"),
StartId=base.ParmJObj.GetInt("StartId"),
QCategoryIds = base.ParmJObj.GetStringValue("QCategoryIds"),
};
query.IsQueryWrong = 1;
var list = courseExamModule.GetPracticeWrongPageModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
pageModel.Count = rowsCount;
pageModel.PageData = list;
return ApiResult.Success(data: pageModel);
}
/// <summary>
/// 设置错题复习
/// </summary>
/// <returns></returns>
[HttpPost]
[AllowRepeat]
public ApiResult SetPracticeReview()
{
var model = new RB_Student_Practice_Extend()
{
Id = base.ParmJObj.GetInt("Id"),
IsReview = 1
};
bool flag = courseExamModule.SetPracticeReviewModule(model);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
#endregion #endregion
} }
} }
\ No newline at end of file
...@@ -3128,6 +3128,11 @@ namespace Edu.WebApi.Controllers.User ...@@ -3128,6 +3128,11 @@ namespace Edu.WebApi.Controllers.User
{ {
list = JsonHelper.DeserializeObject<List<MarketChannelStaticModel>>(dataObj.GetStringValue("transDataList")); list = JsonHelper.DeserializeObject<List<MarketChannelStaticModel>>(dataObj.GetStringValue("transDataList"));
} }
//签约渠道
if (queryType == 5)
{
list = JsonHelper.DeserializeObject<List<MarketChannelStaticModel>>(dataObj.GetStringValue("contractDataList"));
}
int index = 1; int index = 1;
foreach (var item in list) foreach (var item in list)
......
...@@ -1354,7 +1354,20 @@ namespace Edu.WebApi.Controllers.User ...@@ -1354,7 +1354,20 @@ namespace Edu.WebApi.Controllers.User
{ {
var StuId = base.ParmJObj.GetInt("StuId"); var StuId = base.ParmJObj.GetInt("StuId");
var CreateBy = base.ParmJObj.GetInt("CreateBy"); var CreateBy = base.ParmJObj.GetInt("CreateBy");
bool flag = studentModule.ForwardStudentModule(StuId, CreateBy, base.UserInfo.Id); bool flag = studentModule.ForwardStudentModule(StuId.ToString(), CreateBy, base.UserInfo.Id);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 批量学员转交
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult BatchForwardStudent()
{
var StuIds = base.ParmJObj.GetStringValue("StuIds");
var CreateBy = base.ParmJObj.GetInt("CreateBy");
bool flag = studentModule.ForwardStudentModule(StuIds, CreateBy, base.UserInfo.Id);
return flag ? ApiResult.Success() : ApiResult.Failed(); return flag ? ApiResult.Success() : ApiResult.Failed();
} }
......
...@@ -139,7 +139,7 @@ namespace Edu.WebApi.Timers ...@@ -139,7 +139,7 @@ namespace Edu.WebApi.Timers
marketTimer = new System.Timers.Timer() marketTimer = new System.Timers.Timer()
{ {
Interval = (1000 * 60) * (10) //10分钟执行一次 Interval = (1000 * 60) * (5) //5分钟执行一次
}; };
marketTimer.Elapsed += new System.Timers.ElapsedEventHandler(DealMarketConsultantData); marketTimer.Elapsed += new System.Timers.ElapsedEventHandler(DealMarketConsultantData);
marketTimer.Enabled = true; marketTimer.Enabled = true;
...@@ -217,22 +217,23 @@ namespace Edu.WebApi.Timers ...@@ -217,22 +217,23 @@ namespace Edu.WebApi.Timers
{ {
if (Interlocked.Exchange(ref marketconsultant_Timer, 1) == 0) if (Interlocked.Exchange(ref marketconsultant_Timer, 1) == 0)
{ {
var currentDate = DateTime.Now; var today = DateTime.Now;
var currentDate = Common.ConvertHelper.FormatDate(today);
string cacheData = redis.Get(createMarkDataKey); string cacheData = redis.Get(createMarkDataKey);
if (string.IsNullOrEmpty(cacheData)) if (string.IsNullOrEmpty(cacheData))
{ {
redis.Set(createMarkDataKey, Common.ConvertHelper.FormatDate(currentDate)); redis.Set(createMarkDataKey, currentDate);
cacheData = Common.ConvertHelper.FormatDate(currentDate); cacheData = currentDate;
} }
if (!string.IsNullOrEmpty(cacheData) && cacheData != Common.ConvertHelper.FormatDate(currentDate)) if (!string.IsNullOrEmpty(cacheData) && cacheData != currentDate)
{ {
redis.Set(createMarkDataKey, Common.ConvertHelper.FormatDate(currentDate)); marketConsultantModule.CreateConsultantDataModule(today);
marketConsultantModule.CreateConsultantDataModule(currentDate); marketConsultantModule.CreateMarketDataModule(today);
marketConsultantModule.CreateMarketDataModule(currentDate);
UserInfo user = UserReidsCache.GetUserLoginInfo("1"); UserInfo user = UserReidsCache.GetUserLoginInfo("1");
studentStatModule.CreateStudentStaticModule(user, Common.ConvertHelper.FormatDate(currentDate.AddDays(-1)), Common.ConvertHelper.FormatDate(currentDate), isInit: false); studentStatModule.CreateStudentStaticModule(user, Common.ConvertHelper.FormatDate(today.AddDays(-1)), currentDate, isInit: false);
studentStatModule.CreateStudentMarketModule(user, Common.ConvertHelper.FormatDate(currentDate.AddDays(-1)), Common.ConvertHelper.FormatDate(currentDate), isInit: false); studentStatModule.CreateStudentMarketModule(user, Common.ConvertHelper.FormatDate(today.AddDays(-1)), currentDate, isInit: false);
studentStatModule.CreateStudentCompanyModule(user, Common.ConvertHelper.FormatDate(today.AddDays(-1)), currentDate, isInit: false);
redis.Set(createMarkDataKey, currentDate);
} }
Interlocked.Exchange(ref marketconsultant_Timer, 0); Interlocked.Exchange(ref marketconsultant_Timer, 0);
} }
......
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