Commit c8fb1936 authored by 吴春's avatar 吴春

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

parents 960a9660 b6fd9db1
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_Study
{
/// <summary>
/// 主键编号
/// </summary>
public int ID { get; set; }
/// <summary>
/// 课程编号
/// </summary>
public int CourseId { get; set; }
/// <summary>
/// 订单编号
/// </summary>
public int OrderId { get; set; }
/// <summary>
/// 学员编号
/// </summary>
public int GuestId { get; set; }
/// <summary>
/// 学员ID
/// </summary>
public int StuId { get; set; }
/// <summary>
/// 类型(1-章节,2-考试,3-月度总结)
/// </summary>
public int StudyType { get; set; }
/// <summary>
/// 章节ID
/// </summary>
public int ChapterId { get; set; }
/// <summary>
/// StudyType=3使用,存月份
/// </summary>
public string StudyValue { get; set; }
/// <summary>
/// 单词得分
/// </summary>
public decimal Words { get; set; }
/// <summary>
/// 练习题得分
/// </summary>
public decimal Practice { get; set; }
/// <summary>
/// 朗读背诵得分
/// </summary>
public decimal ReadingAloud { get; set; }
/// <summary>
/// 其他得分(JSON格式)
/// </summary>
public string Other { get; set; }
/// <summary>
/// 总结
/// </summary>
public string Remarks { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 修改人
/// </summary>
public int UpdateBy { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public DateTime UpdateTime { get; set; }
}
}
......@@ -114,6 +114,11 @@ namespace Edu.Model.ViewModel.DataStatistics
/// </summary>
public bool IsShowFollowAll { get; set; }
/// <summary>
/// 最新约课情况
/// </summary>
public string NewLesson { get; set; }
/// <summary>
/// 续费订单
/// </summary>
......
......@@ -11,6 +11,11 @@ namespace Edu.Model.ViewModel.Scroll
[Serializable]
public class RB_Scroll_Appointment_ViewModel : RB_Scroll_Appointment
{
/// <summary>
/// 最新章节
/// </summary>
public string ChapterName { get; set; }
/// <summary>
/// 开始时间
/// </summary>
......
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_Study_ViewModel: RB_Student_Study
{
}
}
......@@ -500,5 +500,10 @@ namespace Edu.Model.ViewModel.User
/// 分配给我的线索
/// </summary>
public int IsQueryMyClue { get; set; }
/// <summary>
/// 毕业状态(1-未毕业,2-已毕业);
/// </summary>
public int QGuestState { get; set; }
}
}
\ No newline at end of file
......@@ -674,7 +674,7 @@ namespace Edu.Module.Course
m.CommissionMoeny = m.CommissionType == 1 ? courseModel.InnerRecommendRatio : courseModel.InnerRecommendReNewRatio;
}
m.CommissionReType = m.CommissionType == 1 ? courseModel.InnerRecommendRatioType.ToInt() : courseModel.InnerRecommendReNewRatioType.ToInt();
m.CommissionReValue = m.CommissionType == 1 ? courseModel.InnerRecommendRatioValue : courseModel.InnerRecommendReNewRatioValue.Value;
m.CommissionReValue = m.CommissionType == 1 ? courseModel.InnerRecommendRatioValue : (courseModel?.InnerRecommendReNewRatioValue ?? 0);
m.Remark = $"学员来源为:内部介绍,学员为{(m.CommissionType == 1 ? "首次报名" : "续费报名")},本次报名金额为:{sellPrice},本次返佣金额为:{m.CommissionMoeny:0.00}";
}
else if ((int)m.OrderSourceType == 4)
......@@ -4116,9 +4116,9 @@ namespace Edu.Module.Course
decimal validClassHours = cmodel.Unit_Price > 0 ? Math.Round(cmodel.Income / cmodel.Unit_Price, 2, MidpointRounding.AwayFromZero) : 0;
Dictionary<string, object> keyValues = new Dictionary<string, object>()
{
{ nameof(RB_Order_Guest.ValidClassHours),validClassHours}
};
{
{ nameof(RB_Order_Guest.ValidClassHours),validClassHours}
};
//HK2021-07-19新增【有效课时大于完成课时修改学员状态为正常】
string LogContent = "";
if (gmodel.CompleteHours <= validClassHours)
......@@ -4142,14 +4142,14 @@ namespace Edu.Module.Course
});
}
List<WhereHelper> wheres = new List<WhereHelper>()
{
new WhereHelper()
{
FiledName=nameof(RB_Order_Guest.Id),
FiledValue=guestId,
OperatorEnum= OperatorEnum.Equal
}
};
new WhereHelper()
{
FiledName=nameof(RB_Order_Guest.Id),
FiledValue=guestId,
OperatorEnum= OperatorEnum.Equal
}
};
order_GuestRepository.Update(keyValues, wheres);
}
}
......@@ -4161,10 +4161,16 @@ namespace Edu.Module.Course
});
if (studentMapping.Any())
{
UpdateReturnMoneyStatus(studentMapping.First().Student_Id, gmodel.OrderId, omodel);
try
{
UpdateReturnMoneyStatus(studentMapping.First().Student_Id, gmodel.OrderId, omodel);
}
catch (Exception ex)
{
Common.Plugin.LogHelper.Write(ex, string.Format("UpdateStudentValidClassHours__GuestId:{0} Money:{2} ", guestId, money));
}
}
}
return true;
}
......@@ -4198,26 +4204,26 @@ namespace Edu.Module.Course
{ nameof(RB_User_ReturnComission_ViewModel.UnSettlementMoney),userModel.UnSettlementMoney}
};
List<WhereHelper> userWheres = new List<WhereHelper>()
{
new WhereHelper()
{
FiledName=nameof(RB_User_ReturnComission_ViewModel.UserType),
FiledValue=model.OrderSourceType,
OperatorEnum= OperatorEnum.Equal
},
new WhereHelper()
{
FiledName=nameof(RB_User_ReturnComission_ViewModel.UserId),
FiledValue=model.OrderSourceId,
OperatorEnum= OperatorEnum.Equal
},
new WhereHelper()
{
FiledName=nameof(RB_User_ReturnComission_ViewModel.CommissionType),
FiledValue=model.CommissionType,
OperatorEnum= OperatorEnum.Equal
}
};
new WhereHelper()
{
FiledName=nameof(RB_User_ReturnComission_ViewModel.UserType),
FiledValue=model.OrderSourceType,
OperatorEnum= OperatorEnum.Equal
},
new WhereHelper()
{
FiledName=nameof(RB_User_ReturnComission_ViewModel.UserId),
FiledValue=model.OrderSourceId,
OperatorEnum= OperatorEnum.Equal
},
new WhereHelper()
{
FiledName=nameof(RB_User_ReturnComission_ViewModel.CommissionType),
FiledValue=model.CommissionType,
OperatorEnum= OperatorEnum.Equal
}
};
userReturnComissionRepository.Update(userKeyValues, userWheres);
}
else
......
......@@ -391,7 +391,6 @@ namespace Edu.Module.Customer
flag = newId > 0;
logTitle = "新增跟进";
logContent = model.Remark;
}
try
{
......
......@@ -7,6 +7,7 @@ using Edu.Model.ViewModel.Customer;
using Edu.Model.ViewModel.DataStatistics;
using Edu.Model.ViewModel.User;
using Edu.Repository.Customer;
using Edu.Repository.Scroll;
using Edu.Repository.System;
using Edu.Repository.User;
using System;
......@@ -79,6 +80,8 @@ namespace Edu.Module.User
/// </summary>
private readonly RB_Student_CompanyRepository student_CompanyRepository = new RB_Student_CompanyRepository();
private readonly RB_Scroll_AppointmentRepository scroll_AppointmentRepository = new RB_Scroll_AppointmentRepository();
#region 学员跟进
/// <summary>
......@@ -321,20 +324,19 @@ namespace Edu.Module.User
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public object GetStudentFollowUpPageModule_V2(int pageIndex, int pageSize, out long count, RB_Student_ViewModel demodel)
public object GetStudentFollowUpPageModule_V2Module(int pageIndex, int pageSize, out long count, RB_Student_ViewModel demodel)
{
object Robj = new object();
var slist = student_OrderGuestRepository.GetStudentFollowUpPageRepository_V2(pageIndex, pageSize, out count, demodel);
var slist = student_OrderGuestRepository.GetStudentFollowUpPageRepository_V2Repository(pageIndex, pageSize, out count, demodel);
if (slist.Any())
{
string stuIds = string.Join(",", slist.Select(x => x.StuId));
var appointmentList = scroll_AppointmentRepository.GetAppointListRepository(new Model.ViewModel.Scroll.RB_Scroll_Appointment_ViewModel() { Group_Id = demodel.Group_Id, StuIds = stuIds });
//查询学生每月的跟进情况
var flist = followRepository.GetStudentFollowListRepository(new RB_Student_Follow_Extend { QStuIds=stuIds,Group_Id=demodel.Group_Id});
var flist = followRepository.GetStudentFollowListRepository(new RB_Student_Follow_Extend { QStuIds = stuIds, Group_Id = demodel.Group_Id });
//查询续课 学员介绍
var xlist = student_OrderGuestRepository.GetStudentRenewRepository(demodel.Group_Id, stuIds);//续费
//查询汇总数据
// var TotalData = student_OrderGuestRepository.GetStudentFollowUpStat_V2(demodel);
//学习目的
string goalIds = string.Join(",", slist.Select(qitem => qitem.StuPurpose));
var goalList = learningGoalsRepository.GetLearningGoalsListRepository(new Model.ViewModel.System.RB_LearningGoals_Extend()
{
......@@ -379,12 +381,15 @@ namespace Edu.Module.User
item.CreateByName = accountList?.FirstOrDefault(qitem => qitem.Id == item.CreateBy)?.AccountName ?? "";
item.StuPurposeName = goalList?.FirstOrDefault(qitem => qitem.Id == item.StuPurpose)?.Name ?? "";
item.FollowList = flist?.Where(qitem => qitem.StuId == item.StuId)?.ToList();
var tempAppoint = appointmentList?.Where(qitem => qitem.StuId == item.StuId)?.FirstOrDefault();
//最新情况
string NewLesson = tempAppoint?.ChapterName ?? "";
var followModel = new StudentFollowStatic()
{
StuId = item.StuId,
StuName = item.StuName,//姓名
StuTel = item.StuTel,
CreateTime = item.CreateTime.ToString("yyyy-MM-dd"),//报名日期
CreateTime = Common.ConvertHelper.FormatDate(item.CreateTime),//报名日期
StuProfession = item.StuProfession,
StuPurpose = item.StuPurpose,
StuPurposeName = item.StuPurposeName,
......@@ -401,22 +406,13 @@ namespace Edu.Module.User
CreateTime = x.CreateTime.ToString("yy-MM-dd")
}),
IsShowFollowAll = false,
NewLesson = NewLesson,
};
RList.Add(followModel);
}
Robj = new
{
RList,
//Stat = new
//{
// StuTNum = TotalData.OrderCount,
// RenewNum = TotalData.RenewOrderCount,
// NewNum = TotalData.OrderCount - TotalData.RenewOrderCount,
// TotalData.StudyNum,
// TotalData.GraduateNum,
// TotalData.SuspendNum,
// TotalData.DropOutNum
//}
};
#endregion
}
......
......@@ -277,6 +277,40 @@ ORDER BY r.Id desc ";
return Get<RB_Scroll_Appointment_ViewModel>(sql, parameters).ToList();
}
/// <summary>
/// 获取列表
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Scroll_Appointment_ViewModel> GetAppointListRepository(RB_Scroll_Appointment_ViewModel demodel)
{
DynamicParameters parameters = new DynamicParameters();
string where = $@" and sa.{nameof(RB_Scroll_Appointment_ViewModel.Status)} =0 and sa.{nameof(RB_Scroll_Appointment_ViewModel.State)} <>5";
if (demodel.Group_Id > 0)
{
where += $@" and sa.{nameof(RB_Scroll_Appointment_ViewModel.Group_Id)} ={demodel.Group_Id}";
}
if (demodel.StuId > 0)
{
where += $@" and sa.{nameof(RB_Scroll_Appointment_ViewModel.StuId)} ={demodel.StuId}";
}
if (!string.IsNullOrEmpty(demodel.StuIds))
{
where += $@" and sa.{nameof(RB_Scroll_Appointment_ViewModel.StuId)} in({demodel.StuIds})";
}
string sql = $@"
SELECT A.*,cc.ChapterName
FROM
(
SELECT StuId,LearnCourseId,MAX(CourseGradeNo) AS CourseGradeNo
FROM RB_Scroll_Appointment AS sa
WHERE 1=1 {where}
GROUP BY StuId,LearnCourseId
) AS A LEFT JOIN rb_course_chapter as cc ON A.LearnCourseId=cc.CourseId and CONCAT(A.CourseGradeNo,'')=cc.ChapterNo ";
return Get<RB_Scroll_Appointment_ViewModel>(sql, parameters).ToList();
}
/// <summary>
/// 更新预约章节
/// </summary>
......
......@@ -925,6 +925,11 @@ WHERE 1=1 AND A.Status=0 AND class.Status=0 AND class.ClassStatus <>4 AND b.Or
builder.AppendFormat(" AND(st.CreateBy = {0} OR EXISTS(SELECT 1 FROM rb_student_assist WHERE StuId = st.StuId AND AssistId = {0})) ", demodel.CreateBy);
}
}
//班主任
if (demodel.Teacher_Id > 0)
{
builder.AppendFormat(" AND EXISTS(SELECT 1 FROM rb_student_assist WHERE AssistType=4 AND StuId=st.StuId AND AssistId={0}) ", demodel.Teacher_Id);
}
builder.AppendFormat($@" order by A.{nameof(RB_Order_Guest_Extend.Id)} desc");
var list= GetPage<RB_Order_Guest_Extend>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
if (list.Any())
......@@ -1171,6 +1176,10 @@ WHERE 1=1 AND A.Status=0 AND class.Status=0 AND class.ClassStatus <>4 AND b.Or
{
builder.AppendFormat($@" AND st.StuSourceId ={demodel.StuSourceId}");
}
if (demodel.Teacher_Id > 0)
{
builder.AppendFormat(" AND EXISTS(SELECT 1 FROM rb_student_assist WHERE AssistType=4 AND StuId=st.StuId AND AssistId={0}) ", demodel.Teacher_Id);
}
builder.AppendFormat($@" GROUP BY A.GuestState ");
return Get<RB_Order_Guest_Extend>(builder.ToString(),parameters).ToList();
}
......
......@@ -516,43 +516,49 @@ FROM rb_student s
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Student_ViewModel> GetStudentFollowUpPageRepository_V2(int pageIndex, int pageSize, out long count, RB_Student_ViewModel demodel)
public List<RB_Student_ViewModel> GetStudentFollowUpPageRepository_V2Repository(int pageIndex, int pageSize, out long count, RB_Student_ViewModel demodel)
{
string where = GetStudentFollowUpSql(demodel, out DynamicParameters parameters);
string joinType = "INNER JOIN";
if (demodel.QueryTpye == 3)
DynamicParameters parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT s.StuId,s.StuName,s.StuTel,s.StuProfession,s.StuPurpose,s.JapanBaseInfo,s.CreateBy
,o.CreateTime,o.PreferPrice,c.CourseName,c.CourseRate
FROM rb_student s INNER JOIN rb_student_orderguest sog on sog.Student_Id = s.StuId
INNER JOIN rb_order_guest AS og ON og.Id=sog.GuestId
INNER JOIN rb_order o on sog.OrderId = o.OrderId AND o.JoinType=1 AND o.OrderState<>3
INNER JOIN rb_course AS C ON O.CourseId=C.CourseId
WHERE 1=1
");
if (demodel.Group_Id > 0)
{
joinType = "LEFT JOIN";
builder.AppendFormat(" AND s.{0}={1} ", nameof(RB_Student_ViewModel.Group_Id), demodel.Group_Id);
}
string sql = $@"
SELECT o.CreateTime,s.StuId,s.StuName,s.StuTel,s.StuProfession,s.StuPurpose,c.CourseName,c.CourseRate,o.PreferPrice,s.JapanBaseInfo,s.CreateBy
FROM rb_student s
{joinType} rb_student_orderguest og on og.Student_Id = s.StuId
{joinType} (SELECT og.Student_Id,min(og.Id) as Id FROM rb_student_orderguest og INNER JOIN rb_order o on og.OrderId = o.OrderId WHERE o.OrderState <>3 GROUP BY og.Student_Id) stu on og.Id = stu.Id and og.Student_Id = s.StuId
{joinType} rb_order_guest org on org.Id = og.GuestId
{joinType} rb_order o on og.OrderId = o.OrderId
{joinType} rb_class cl on cl.ClassId = o.ClassId
{joinType} rb_course c on o.CourseId = c.CourseId
LEFT JOIN rb_education_contract ec on ec.GuestId = og.GuestId
LEFT JOIN rb_student_advisorconfig AS b ON s.AdvisorStatus=B.Id
LEFT JOIN (
SELECT B.Student_Id,MIN(A.ClassDate) AS ClassDate
FROM rb_class_check AS A INNER JOIN rb_student_orderguest AS B ON A.OrderGuestId=B.GuestId
WHERE A.Status=0 AND A.CheckStatus=0 GROUP BY B.Student_Id
) AS clcheck ON s.StuId=clcheck.Student_Id
";
if (!string.IsNullOrEmpty(demodel.SFTime) && !string.IsNullOrEmpty(demodel.EFTime))
if (demodel.School_Id > -1)
{
//增加跟进链表
sql += $@" LEFT JOIN rb_student_follow f on s.StuId = f.StuId and f.`Status` =0 and f.AssistType in(2,4) and f.CreateTime >='{demodel.SFTime}' and f.CreateTime <='{demodel.EFTime} 23:59:59'";
builder.AppendFormat(" AND s.{0}={1} ", nameof(RB_Student_ViewModel.School_Id), demodel.School_Id);
}
sql += $" where {where} and o.JoinType=1 ";
if ((!string.IsNullOrEmpty(demodel.SFTime) && !string.IsNullOrEmpty(demodel.EFTime)))
if (!string.IsNullOrEmpty(demodel.StuName))
{
sql += $" GROUP BY s.StuId";
builder.AppendFormat(" AND s.StuName LIKE @StuName ");
parameters.Add("StuName", "%" + demodel.StuName + "%");
}
sql += $" order by s.StuId desc";
return GetPage<RB_Student_ViewModel>(pageIndex, pageSize, out count, sql, parameters).ToList();
if (demodel.QGuestState > 0)
{
if (demodel.QGuestState == 1)
{
builder.AppendFormat(" AND og.GuestState<>7 ");
}
else if (demodel.QGuestState == 2)
{
builder.AppendFormat(" AND og.GuestState=7 ");
}
}
if (demodel.HeadTeacherId > 0)
{
builder.AppendFormat(" AND EXISTS(SELECT 1 FROM rb_student_assist WHERE AssistType=4 AND StuId=s.StuId AND AssistId={0}) ", demodel.HeadTeacherId);
}
builder.AppendFormat(" ORDER BY s.StuId DESC ");
return GetPage<RB_Student_ViewModel>(pageIndex, pageSize, out count, builder.ToString(), parameters).ToList();
}
......
using Edu.Model.Entity.User;
using Edu.Model.ViewModel.User;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Edu.Repository.User
{
/// <summary>
/// 学员学习章节、月度总结、考试仓储层
/// </summary>
public class RB_Student_StudyRepository:BaseRepository<RB_Student_Study>
{
/// <summary>
/// 获取学员学习章节,月度总结,考试列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Study_ViewModel> GetStudentStudyListRepository(RB_Student_Study_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM RB_Student_Study AS A
WHERE 1=1
");
return Get<RB_Student_Study_ViewModel>(builder.ToString()).ToList();
}
}
}
......@@ -308,6 +308,7 @@ namespace Edu.WebApi.Controllers.Course
StuChannelId = base.ParmJObj.GetInt("StuChannelId", 0),
CreateType = (Common.Enum.User.StuCreateTypeEnum)base.ParmJObj.GetInt("CreateType", 0),
StuSourceId = base.ParmJObj.GetInt("StuSourceId", 0),
Teacher_Id=base.ParmJObj.GetInt("Teacher_Id"),
};
model.School_Id = -1;
var schoolId = base.ParmJObj.GetStringValue("School_Id");
......
......@@ -194,6 +194,7 @@ namespace Edu.WebApi.Controllers.Customer
[HttpPost]
public ApiResult SetStudentBaseInfo()
{
int EditType = base.ParmJObj.GetInt("EditType");
var extModel = new RB_Student_Follow_Extend()
{
Id = base.ParmJObj.GetInt("Id"),
......@@ -207,7 +208,7 @@ namespace Edu.WebApi.Controllers.Customer
extModel.UpdateBy = base.UserInfo.Id;
extModel.UpdateTime = DateTime.Now;
extModel.Group_Id = base.UserInfo.Group_Id;
bool flag = customerStudentModule.SetStudentBaseInfoModule(extModel, StuProfession, StuPurpose);
bool flag = customerStudentModule.SetStudentBaseInfoModule(extModel, StuProfession, StuPurpose);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
......
......@@ -169,85 +169,23 @@ namespace Edu.WebApi.Controllers.User
var userInfo = base.UserInfo;
RB_Student_ViewModel demodel = new RB_Student_ViewModel()
{
BelongType = base.ParmJObj.GetInt("BelongType"),
ConsultantId = base.ParmJObj.GetInt("ConsultantId"),
CourseId = base.ParmJObj.GetInt("CourseId"),
CreateType = (StuCreateTypeEnum)base.ParmJObj.GetInt("CreateType"),
EFTime = base.ParmJObj.GetStringValue("EFTime"),
IsQueryMyStu = base.ParmJObj.GetInt("IsQueryMyStu"),
QQ = base.ParmJObj.GetStringValue("QQ"),
Q_FType = base.ParmJObj.GetInt("Q_FType"),
SFTime = base.ParmJObj.GetStringValue("SFTime"),
StuChannel = base.ParmJObj.GetInt("StuChannel"),
StuGuestState = (GuestStateEnum)base.ParmJObj.GetInt("StuGuestState"),
StuName = base.ParmJObj.GetStringValue("StuName"),
StuRealMobile = base.ParmJObj.GetStringValue("StuRealMobile"),
StuSourceId = base.ParmJObj.GetInt("StuSourceId"),
StuStage = base.ParmJObj.GetInt("StuStage"),
StuType = base.ParmJObj.GetInt("StuType"),
WeChatNo = base.ParmJObj.GetStringValue("WeChatNo"),
StuPurpose = base.ParmJObj.GetInt("StuPurpose"),
HeadTeacherId = base.ParmJObj.GetInt("HeadTeacherId"),
QueryTpye = base.ParmJObj.GetInt("QueryTpye"),
AdvisorStatus = base.ParmJObj.GetInt("AdvisorStatus"),
School_Id = -1,
QGuestState = base.ParmJObj.GetInt("QGuestState"),
};
string schoolId = base.ParmJObj.GetStringValue("School_Id");
if (schoolId != "-1")
{
demodel.School_Id = base.ParmJObj.GetInt("School_Id");
}
string CreateIds = base.ParmJObj.GetStringValue("CreateIds");
if (!string.IsNullOrEmpty(CreateIds))
{
demodel.CreateIds = Common.Plugin.JsonHelper.DeserializeObject<List<int>>(CreateIds);
}
demodel.Group_Id = userInfo.Group_Id;
//市场部
if (demodel.QueryTpye == 3)
{
demodel.BelongType = 1;
var markerUserList = employeeModule.GetEmployeeListModule(new Employee_ViewModel()
{
UserRole = UserRoleEnum.MarketPersion,
IsLeave = 1
});
string QCreateBys = "";
QCreateBys = string.Join(",", markerUserList?.Select(qitem => qitem.Id));
//普通市场人员
if (base.UserInfo.IsMarket == 1 && base.UserInfo.IsManager == 0)
{
demodel.CreateBy = base.UserInfo.Id;
}
int qCreateBy = base.ParmJObj.GetInt("CreateBy");
if (qCreateBy > 0)
{
QCreateBys = qCreateBy.ToString();
}
if (!string.IsNullOrEmpty(QCreateBys))
{
demodel.QCreateBys = QCreateBys.TrimStart(',').TrimEnd(',');
}
}
//课程顾问部
if (demodel.QueryTpye == 1)
{
demodel.BelongType = 0;
}
if (demodel.QueryTpye == 2)
{
}
var list = studentStatModule.GetStudentFollowUpPageModule_V2(pmodel.PageIndex, pmodel.PageSize, out long count, demodel);
var list = studentStatModule.GetStudentFollowUpPageModule_V2Module(pmodel.PageIndex, pmodel.PageSize, out long count, demodel);
pmodel.Count = count;
pmodel.PageData = list;
return ApiResult.Success("", pmodel);
}
/// <summary>
/// 下载学员跟进信息 2024-03-01 add by:w
/// </summary>
......@@ -260,77 +198,18 @@ namespace Edu.WebApi.Controllers.User
var userInfo = base.UserInfo;
RB_Student_ViewModel demodel = new RB_Student_ViewModel()
{
BelongType = base.ParmJObj.GetInt("BelongType"),
ConsultantId = base.ParmJObj.GetInt("ConsultantId"),
CourseId = base.ParmJObj.GetInt("CourseId"),
CreateType = (StuCreateTypeEnum)base.ParmJObj.GetInt("CreateType"),
EFTime = base.ParmJObj.GetStringValue("EFTime"),
IsQueryMyStu = base.ParmJObj.GetInt("IsQueryMyStu"),
QQ = base.ParmJObj.GetStringValue("QQ"),
Q_FType = base.ParmJObj.GetInt("Q_FType"),
SFTime = base.ParmJObj.GetStringValue("SFTime"),
StuChannel = base.ParmJObj.GetInt("StuChannel"),
StuGuestState = (GuestStateEnum)base.ParmJObj.GetInt("StuGuestState"),
StuName = base.ParmJObj.GetStringValue("StuName"),
StuRealMobile = base.ParmJObj.GetStringValue("StuRealMobile"),
StuSourceId = base.ParmJObj.GetInt("StuSourceId"),
StuStage = base.ParmJObj.GetInt("StuStage"),
StuType = base.ParmJObj.GetInt("StuType"),
WeChatNo = base.ParmJObj.GetStringValue("WeChatNo"),
StuPurpose = base.ParmJObj.GetInt("StuPurpose"),
HeadTeacherId = base.ParmJObj.GetInt("HeadTeacherId"),
QueryTpye = base.ParmJObj.GetInt("QueryTpye"),
AdvisorStatus = base.ParmJObj.GetInt("AdvisorStatus"),
School_Id = -1,
QGuestState = base.ParmJObj.GetInt("QGuestState"),
};
string schoolId = base.ParmJObj.GetStringValue("School_Id");
if (schoolId != "-1")
{
demodel.School_Id = base.ParmJObj.GetInt("School_Id");
}
string CreateIds = base.ParmJObj.GetStringValue("CreateIds");
if (!string.IsNullOrEmpty(CreateIds))
{
demodel.CreateIds = Common.Plugin.JsonHelper.DeserializeObject<List<int>>(CreateIds);
}
demodel.Group_Id = userInfo.Group_Id;
//市场部
if (demodel.QueryTpye == 3)
{
demodel.BelongType = 1;
var markerUserList = employeeModule.GetEmployeeListModule(new Employee_ViewModel()
{
UserRole = UserRoleEnum.MarketPersion,
IsLeave = 1
});
string QCreateBys = "";
QCreateBys = string.Join(",", markerUserList?.Select(qitem => qitem.Id));
//普通市场人员
if (base.UserInfo.IsMarket == 1 && base.UserInfo.IsManager == 0)
{
demodel.CreateBy = base.UserInfo.Id;
}
int qCreateBy = base.ParmJObj.GetInt("CreateBy");
if (qCreateBy > 0)
{
QCreateBys = qCreateBy.ToString();
}
if (!string.IsNullOrEmpty(QCreateBys))
{
demodel.QCreateBys = QCreateBys.TrimStart(',').TrimEnd(',');
}
}
//课程顾问部
if (demodel.QueryTpye == 1)
{
demodel.BelongType = 0;
}
if (demodel.QueryTpye == 2)
{
}
var list = studentStatModule.GetStudentFollowUpPageModule_V2(1, 1000000, out long count, demodel);
var list = studentStatModule.GetStudentFollowUpPageModule_V2Module(1, 1000000, out long count, demodel);
var QueryTpye = base.ParmJObj.GetInt("QueryTpye");
string excelName = "学员跟进表.xls";
try
......@@ -351,6 +230,7 @@ namespace Edu.WebApi.Controllers.User
new ExcelColumn("续费课程") { CellWidth = 15 },
new ExcelColumn("续费级别") { CellWidth = 15 },
new ExcelColumn("续费金额") { CellWidth = 15 },
new ExcelColumn("最新情况") { CellWidth = 15 },
new ExcelColumn("负责人") { CellWidth = 15 }
}
};
......@@ -366,7 +246,7 @@ namespace Edu.WebApi.Controllers.User
{
new ExcelColumn(item.StuName),
};
columns.Add(new ExcelColumn(item.CreateTime));
columns.Add(new ExcelColumn(Common.ConvertHelper.FormatDate(item.CreateTime)));
columns.Add(new ExcelColumn(item.StuProfession));
columns.Add(new ExcelColumn(item.StuPurposeName));
columns.Add(new ExcelColumn(teacherNamager));
......@@ -402,6 +282,7 @@ namespace Edu.WebApi.Controllers.User
columns.Add(new ExcelColumn(rCourseNameStr));
columns.Add(new ExcelColumn(rCourseLevelStr));
columns.Add(new ExcelColumn(rCoursePriceStr));
columns.Add(new ExcelColumn(item.NewLesson));
columns.Add(new ExcelColumn(item.CreateByName));
var dataRow = new ExcelDataSource()
......
......@@ -36,10 +36,10 @@
"WkHtmlToPdfPath": "D:/wkhtmltopdf/bin/",
"FinanceKey": "FinanceMallInsertToERPViitto2020",
"PaymentFinanceApi": "http://192.168.10.46/api/Mall/InsertFinanceBatchForMallOut",
"IncomeFinanceApi": "http://192.168.10.214/api/Mall/InsertFinanceBatchForMallIn",
"IncomeFinanceApi": "http://192.168.5.214/api/Mall/InsertFinanceBatchForMallIn",
"sTenpayNotifyUrl": "http://eduapi.oytour.com/api/WeChatPay/WxPayCallback", //�µ��ص���ַ
"sTenpayNotifyRefundUrl": "http://eduapi.oytour.com/api/WeChatPay/Refunds", //�˿�ص���ַ
"SellFinanceApi": "http://192.168.10.214/api/Mall/InsertFinanceBatchForEduOut",
"SellFinanceApi": "http://192.168.5.214/api/Mall/InsertFinanceBatchForEduOut",
"FinanceDateBase": "reborn_finance",
"EduDateBase": "reborn_edu",
"JHTenantId": "15",
......@@ -48,8 +48,6 @@
"WeChatAccountAppId": "wx7c2cedaebbfca211",
"WeChatAccountAppSecret": "6fd676c7f599bc2783fab6ae6c7a12d4",
"Notice_BaseKey": "Notice_BaseKey",
"EducationContractSchool": "EducationContractSchool",
"EducationContractAdmin": "EducationContractAdmin",
"QYWeiChatToken": "b3e0ebf63301f80cb8e741cf72fdaf3c",
"QYWeiChatEncodingAESKey": "ODRjOGEwYWQxNWJkNDRkMTg2NGJiOWY1ZTE4LCE0NmY",
"RabbitMqConfig": {
......@@ -65,73 +63,74 @@
"RedisPort": "6379",
"RedisPwd": "Viitto2018"
},
"VirtualDirectory": "WebFile",
//δ��д δ��� �½�����
"OKRMatterValue": "30,100,100",
//�Ƿ������ϻ���
"VirtualDirectory": "WebFile",
//是否是线上环境
"IsOnline": false,
//�˿����̱��
//退课流程编号
"BackClassFlowId": 1,
//����У����λ���
//分区校长岗位编号
"SchoolPostId": 3,
//����
//教务长
"JiaoWuZhang": 8,
//��ѧ��ҵ����������˱��[����]
"StudyAbroadDirectorId": 64,
//��ѧ��ҵ���Ÿ�������˱��[Ҧ˳��]
//留学就业部门主管审核编号[王涛]
"StudyAbroadDirectorId": 2602,
//留学就业部门负责人审核编号[姚顺先]
"StudyAbroadManagerId": 52,
//��ͬĬ��̧ͷ
//合同默认抬头
"ContractDefaultTitle": "JH-DZ-CD-",
//��Ϣ����AppId
//消息推送AppId
"PushAppId": "JiaHeJiaoYu",
//�Ƿ�������Ϣ
"IsPushMessage": "1",
//�����°�ʱ��60���Ӳ��ܴ�
//是否推送消息
"IsPushMessage": "0",
//超过下班时间60分钟不能打卡
"MoreThanMinutes": 60,
//����ȱ�ο�ʱ
//连续缺课课时
"AbsentHours": 12,
//ֵ��ʱ����֤����
"DutyDate": "2021-06-30",
//�������̱��
//值班时间验证日期
"DutyDate": "2021-09-24",
//调课流程编号
"ChangeClassFlowId": 2,
//ͣ�����̱��
//停课流程编号
"StopClassFlowId": 3,
//��ʱ�Ͽ��������̱��
//临时上课邀请流程编号
"TempInvitationClassFlowId": 4,
//����ת�����̱��
//订单转班流程编号
"OrderTransClassFlowId": 5,
//�����ֲ����̱��
//订单分拆流程编号
"OrderSplitClassFlowId": 6,
//�Ƿ������������֤
"EducationContractSchool": "EducationContractSchool",
"EducationContractAdmin": "EducationContractAdmin",
//是否开启调课数据验证
"IsOpenChangeClassVerify": 1,
//�Ƿ��DZ��ط���
"IsLocal": "1",
//��ʱToken
"TempToken": "53_OVLlSPNJ0hmSrsEUfnJ6kTxFRGxfkcuJJjpBjsDuaSGmtYu95vZNNyh-wIXbFSZ9DtxzFJ1eN0At2QmJ_aWLPFjz4yrz2VrWvmR3KrEQKqfwvxesG82V2WpAgDnxW_tvvWYXRRRX1oguxCtHXSShADAKFF",
//ѧ��������̱��
//是否是本地服务
"IsLocal": "0",
//临时Token
"TempToken": "",
//学生请假流程编号
"StudentLeaveFlowId": 7,
//����������̱��
//组卷审批流程编号
"ZuJuanFlowId": 8,
//�����������̱��
//考试申请流程编号
"ExamApplyFlowId": 9,
//Ͷ���������̱��
//投稿审批流程编号
"ContributeFlowId": 10,
//��ҵ���������ʱ��
//新业绩提成启用时间
"NewAchievementsEnable": "2022-01-01",
//Vip�γ��������̱��
//Vip课程申请流程编号
"VipCourseFlowId": 11,
//�׺��տ�������
//甲鹤收款手续费
"IncomeFeeRate": "0.0025,0.0054,0.006,0.04,0.004",
//��ʦ�����������̱��
//教师考核审批流程编号
"TeacherAssessmentFlowId": 12,
//����֤ѧԱ״̬�Ķ���(1382������������˵�ࡾ��ҵ�Ρ�)
"NoCheckOrders": "1382",
//chrome�������ַ
"chromePath": "C:/Users/Administrator/AppData/Local/Google/Chrome/Application/chrome.exe",
//�г�ͷ���ײ�ͼƬ
"FeaturePath": "E:\\WebFile\\Feature\\",
//1-����Chrome,0-������Chrome
"IsDownLoadChrome": "0",
//不验证学员状态的订单(1382:商务日语听说班【企业课】和武侯的订单不验证)
"NoCheckOrders": "1382,1502,1503,1504,1505,1508,1513,1522",
//chrome浏览器地址
"chromePath": "F:/reborn/eduapi.oytour.com/.local-chromium/Win64-970485/chrome-win/chrome.exe",
//行程头部底部图片
"FeaturePath": "Z:\\Feature",
//1-下载Chrome,0-不下载Chrome
"IsDownLoadChrome": "1",
//需要清0的订单编号
"FinishOrderIds": "1440,1429,1427,1396,1385,1384,1377,1356,1317,1313,1311,1301,1296,1290,1289,1267,1254,1247,1246,1237,1228,1174,1146,1108"
"FinishOrderIds": "1229,1191,1219,1366,1371,1399,1173,1238,1264,1380,1066"
}
\ 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