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 ...@@ -114,6 +114,11 @@ namespace Edu.Model.ViewModel.DataStatistics
/// </summary> /// </summary>
public bool IsShowFollowAll { get; set; } public bool IsShowFollowAll { get; set; }
/// <summary>
/// 最新约课情况
/// </summary>
public string NewLesson { get; set; }
/// <summary> /// <summary>
/// 续费订单 /// 续费订单
/// </summary> /// </summary>
......
...@@ -11,6 +11,11 @@ namespace Edu.Model.ViewModel.Scroll ...@@ -11,6 +11,11 @@ namespace Edu.Model.ViewModel.Scroll
[Serializable] [Serializable]
public class RB_Scroll_Appointment_ViewModel : RB_Scroll_Appointment public class RB_Scroll_Appointment_ViewModel : RB_Scroll_Appointment
{ {
/// <summary>
/// 最新章节
/// </summary>
public string ChapterName { get; set; }
/// <summary> /// <summary>
/// 开始时间 /// 开始时间
/// </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 ...@@ -500,5 +500,10 @@ namespace Edu.Model.ViewModel.User
/// 分配给我的线索 /// 分配给我的线索
/// </summary> /// </summary>
public int IsQueryMyClue { get; set; } 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 ...@@ -674,7 +674,7 @@ namespace Edu.Module.Course
m.CommissionMoeny = m.CommissionType == 1 ? courseModel.InnerRecommendRatio : courseModel.InnerRecommendReNewRatio; m.CommissionMoeny = m.CommissionType == 1 ? courseModel.InnerRecommendRatio : courseModel.InnerRecommendReNewRatio;
} }
m.CommissionReType = m.CommissionType == 1 ? courseModel.InnerRecommendRatioType.ToInt() : courseModel.InnerRecommendReNewRatioType.ToInt(); 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}"; m.Remark = $"学员来源为:内部介绍,学员为{(m.CommissionType == 1 ? "首次报名" : "续费报名")},本次报名金额为:{sellPrice},本次返佣金额为:{m.CommissionMoeny:0.00}";
} }
else if ((int)m.OrderSourceType == 4) else if ((int)m.OrderSourceType == 4)
...@@ -4116,9 +4116,9 @@ namespace Edu.Module.Course ...@@ -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; 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>() Dictionary<string, object> keyValues = new Dictionary<string, object>()
{ {
{ nameof(RB_Order_Guest.ValidClassHours),validClassHours} { nameof(RB_Order_Guest.ValidClassHours),validClassHours}
}; };
//HK2021-07-19新增【有效课时大于完成课时修改学员状态为正常】 //HK2021-07-19新增【有效课时大于完成课时修改学员状态为正常】
string LogContent = ""; string LogContent = "";
if (gmodel.CompleteHours <= validClassHours) if (gmodel.CompleteHours <= validClassHours)
...@@ -4142,14 +4142,14 @@ namespace Edu.Module.Course ...@@ -4142,14 +4142,14 @@ namespace Edu.Module.Course
}); });
} }
List<WhereHelper> wheres = new List<WhereHelper>() List<WhereHelper> wheres = new List<WhereHelper>()
{
new WhereHelper()
{ {
FiledName=nameof(RB_Order_Guest.Id), new WhereHelper()
FiledValue=guestId, {
OperatorEnum= OperatorEnum.Equal FiledName=nameof(RB_Order_Guest.Id),
} FiledValue=guestId,
}; OperatorEnum= OperatorEnum.Equal
}
};
order_GuestRepository.Update(keyValues, wheres); order_GuestRepository.Update(keyValues, wheres);
} }
} }
...@@ -4161,10 +4161,16 @@ namespace Edu.Module.Course ...@@ -4161,10 +4161,16 @@ namespace Edu.Module.Course
}); });
if (studentMapping.Any()) 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; return true;
} }
...@@ -4198,26 +4204,26 @@ namespace Edu.Module.Course ...@@ -4198,26 +4204,26 @@ namespace Edu.Module.Course
{ nameof(RB_User_ReturnComission_ViewModel.UnSettlementMoney),userModel.UnSettlementMoney} { nameof(RB_User_ReturnComission_ViewModel.UnSettlementMoney),userModel.UnSettlementMoney}
}; };
List<WhereHelper> userWheres = new List<WhereHelper>() List<WhereHelper> userWheres = new List<WhereHelper>()
{
new WhereHelper()
{ {
FiledName=nameof(RB_User_ReturnComission_ViewModel.UserType), new WhereHelper()
FiledValue=model.OrderSourceType, {
OperatorEnum= OperatorEnum.Equal FiledName=nameof(RB_User_ReturnComission_ViewModel.UserType),
}, FiledValue=model.OrderSourceType,
new WhereHelper() OperatorEnum= OperatorEnum.Equal
{ },
FiledName=nameof(RB_User_ReturnComission_ViewModel.UserId), new WhereHelper()
FiledValue=model.OrderSourceId, {
OperatorEnum= OperatorEnum.Equal FiledName=nameof(RB_User_ReturnComission_ViewModel.UserId),
}, FiledValue=model.OrderSourceId,
new WhereHelper() OperatorEnum= OperatorEnum.Equal
{ },
FiledName=nameof(RB_User_ReturnComission_ViewModel.CommissionType), new WhereHelper()
FiledValue=model.CommissionType, {
OperatorEnum= OperatorEnum.Equal FiledName=nameof(RB_User_ReturnComission_ViewModel.CommissionType),
} FiledValue=model.CommissionType,
}; OperatorEnum= OperatorEnum.Equal
}
};
userReturnComissionRepository.Update(userKeyValues, userWheres); userReturnComissionRepository.Update(userKeyValues, userWheres);
} }
else else
......
...@@ -391,7 +391,6 @@ namespace Edu.Module.Customer ...@@ -391,7 +391,6 @@ namespace Edu.Module.Customer
flag = newId > 0; flag = newId > 0;
logTitle = "新增跟进"; logTitle = "新增跟进";
logContent = model.Remark; logContent = model.Remark;
} }
try try
{ {
......
...@@ -7,6 +7,7 @@ using Edu.Model.ViewModel.Customer; ...@@ -7,6 +7,7 @@ using Edu.Model.ViewModel.Customer;
using Edu.Model.ViewModel.DataStatistics; using Edu.Model.ViewModel.DataStatistics;
using Edu.Model.ViewModel.User; using Edu.Model.ViewModel.User;
using Edu.Repository.Customer; using Edu.Repository.Customer;
using Edu.Repository.Scroll;
using Edu.Repository.System; using Edu.Repository.System;
using Edu.Repository.User; using Edu.Repository.User;
using System; using System;
...@@ -79,6 +80,8 @@ namespace Edu.Module.User ...@@ -79,6 +80,8 @@ namespace Edu.Module.User
/// </summary> /// </summary>
private readonly RB_Student_CompanyRepository student_CompanyRepository = new RB_Student_CompanyRepository(); private readonly RB_Student_CompanyRepository student_CompanyRepository = new RB_Student_CompanyRepository();
private readonly RB_Scroll_AppointmentRepository scroll_AppointmentRepository = new RB_Scroll_AppointmentRepository();
#region 学员跟进 #region 学员跟进
/// <summary> /// <summary>
...@@ -321,20 +324,19 @@ namespace Edu.Module.User ...@@ -321,20 +324,19 @@ namespace Edu.Module.User
/// <param name="count"></param> /// <param name="count"></param>
/// <param name="demodel"></param> /// <param name="demodel"></param>
/// <returns></returns> /// <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(); 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()) if (slist.Any())
{ {
string stuIds = string.Join(",", slist.Select(x => x.StuId)); 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 xlist = student_OrderGuestRepository.GetStudentRenewRepository(demodel.Group_Id, stuIds);//续费
//查询汇总数据
// var TotalData = student_OrderGuestRepository.GetStudentFollowUpStat_V2(demodel);
//学习目的
string goalIds = string.Join(",", slist.Select(qitem => qitem.StuPurpose)); string goalIds = string.Join(",", slist.Select(qitem => qitem.StuPurpose));
var goalList = learningGoalsRepository.GetLearningGoalsListRepository(new Model.ViewModel.System.RB_LearningGoals_Extend() var goalList = learningGoalsRepository.GetLearningGoalsListRepository(new Model.ViewModel.System.RB_LearningGoals_Extend()
{ {
...@@ -379,12 +381,15 @@ namespace Edu.Module.User ...@@ -379,12 +381,15 @@ namespace Edu.Module.User
item.CreateByName = accountList?.FirstOrDefault(qitem => qitem.Id == item.CreateBy)?.AccountName ?? ""; item.CreateByName = accountList?.FirstOrDefault(qitem => qitem.Id == item.CreateBy)?.AccountName ?? "";
item.StuPurposeName = goalList?.FirstOrDefault(qitem => qitem.Id == item.StuPurpose)?.Name ?? ""; item.StuPurposeName = goalList?.FirstOrDefault(qitem => qitem.Id == item.StuPurpose)?.Name ?? "";
item.FollowList = flist?.Where(qitem => qitem.StuId == item.StuId)?.ToList(); 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() var followModel = new StudentFollowStatic()
{ {
StuId = item.StuId, StuId = item.StuId,
StuName = item.StuName,//姓名 StuName = item.StuName,//姓名
StuTel = item.StuTel, StuTel = item.StuTel,
CreateTime = item.CreateTime.ToString("yyyy-MM-dd"),//报名日期 CreateTime = Common.ConvertHelper.FormatDate(item.CreateTime),//报名日期
StuProfession = item.StuProfession, StuProfession = item.StuProfession,
StuPurpose = item.StuPurpose, StuPurpose = item.StuPurpose,
StuPurposeName = item.StuPurposeName, StuPurposeName = item.StuPurposeName,
...@@ -401,22 +406,13 @@ namespace Edu.Module.User ...@@ -401,22 +406,13 @@ namespace Edu.Module.User
CreateTime = x.CreateTime.ToString("yy-MM-dd") CreateTime = x.CreateTime.ToString("yy-MM-dd")
}), }),
IsShowFollowAll = false, IsShowFollowAll = false,
NewLesson = NewLesson,
}; };
RList.Add(followModel); RList.Add(followModel);
} }
Robj = new Robj = new
{ {
RList, RList,
//Stat = new
//{
// StuTNum = TotalData.OrderCount,
// RenewNum = TotalData.RenewOrderCount,
// NewNum = TotalData.OrderCount - TotalData.RenewOrderCount,
// TotalData.StudyNum,
// TotalData.GraduateNum,
// TotalData.SuspendNum,
// TotalData.DropOutNum
//}
}; };
#endregion #endregion
} }
......
...@@ -277,6 +277,40 @@ ORDER BY r.Id desc "; ...@@ -277,6 +277,40 @@ ORDER BY r.Id desc ";
return Get<RB_Scroll_Appointment_ViewModel>(sql, parameters).ToList(); 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>
/// 更新预约章节 /// 更新预约章节
/// </summary> /// </summary>
......
...@@ -925,6 +925,11 @@ WHERE 1=1 AND A.Status=0 AND class.Status=0 AND class.ClassStatus <>4 AND b.Or ...@@ -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); 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"); 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(); var list= GetPage<RB_Order_Guest_Extend>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
if (list.Any()) 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 ...@@ -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}"); 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 "); builder.AppendFormat($@" GROUP BY A.GuestState ");
return Get<RB_Order_Guest_Extend>(builder.ToString(),parameters).ToList(); return Get<RB_Order_Guest_Extend>(builder.ToString(),parameters).ToList();
} }
......
...@@ -516,43 +516,49 @@ FROM rb_student s ...@@ -516,43 +516,49 @@ FROM rb_student s
/// <param name="count"></param> /// <param name="count"></param>
/// <param name="demodel"></param> /// <param name="demodel"></param>
/// <returns></returns> /// <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); DynamicParameters parameters = new DynamicParameters();
string joinType = "INNER JOIN"; StringBuilder builder = new StringBuilder();
if (demodel.QueryTpye == 3) 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 = $@" if (demodel.School_Id > -1)
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))
{ {
//增加跟进链表 builder.AppendFormat(" AND s.{0}={1} ", nameof(RB_Student_ViewModel.School_Id), demodel.School_Id);
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'";
} }
sql += $" where {where} and o.JoinType=1 "; if (!string.IsNullOrEmpty(demodel.StuName))
if ((!string.IsNullOrEmpty(demodel.SFTime) && !string.IsNullOrEmpty(demodel.EFTime)))
{ {
sql += $" GROUP BY s.StuId"; builder.AppendFormat(" AND s.StuName LIKE @StuName ");
parameters.Add("StuName", "%" + demodel.StuName + "%");
} }
sql += $" order by s.StuId desc"; if (demodel.QGuestState > 0)
return GetPage<RB_Student_ViewModel>(pageIndex, pageSize, out count, sql, parameters).ToList(); {
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 ...@@ -308,6 +308,7 @@ namespace Edu.WebApi.Controllers.Course
StuChannelId = base.ParmJObj.GetInt("StuChannelId", 0), StuChannelId = base.ParmJObj.GetInt("StuChannelId", 0),
CreateType = (Common.Enum.User.StuCreateTypeEnum)base.ParmJObj.GetInt("CreateType", 0), CreateType = (Common.Enum.User.StuCreateTypeEnum)base.ParmJObj.GetInt("CreateType", 0),
StuSourceId = base.ParmJObj.GetInt("StuSourceId", 0), StuSourceId = base.ParmJObj.GetInt("StuSourceId", 0),
Teacher_Id=base.ParmJObj.GetInt("Teacher_Id"),
}; };
model.School_Id = -1; model.School_Id = -1;
var schoolId = base.ParmJObj.GetStringValue("School_Id"); var schoolId = base.ParmJObj.GetStringValue("School_Id");
......
...@@ -194,6 +194,7 @@ namespace Edu.WebApi.Controllers.Customer ...@@ -194,6 +194,7 @@ namespace Edu.WebApi.Controllers.Customer
[HttpPost] [HttpPost]
public ApiResult SetStudentBaseInfo() public ApiResult SetStudentBaseInfo()
{ {
int EditType = base.ParmJObj.GetInt("EditType");
var extModel = new RB_Student_Follow_Extend() var extModel = new RB_Student_Follow_Extend()
{ {
Id = base.ParmJObj.GetInt("Id"), Id = base.ParmJObj.GetInt("Id"),
...@@ -207,7 +208,7 @@ namespace Edu.WebApi.Controllers.Customer ...@@ -207,7 +208,7 @@ namespace Edu.WebApi.Controllers.Customer
extModel.UpdateBy = base.UserInfo.Id; extModel.UpdateBy = base.UserInfo.Id;
extModel.UpdateTime = DateTime.Now; extModel.UpdateTime = DateTime.Now;
extModel.Group_Id = base.UserInfo.Group_Id; 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(); return flag ? ApiResult.Success() : ApiResult.Failed();
} }
......
...@@ -169,85 +169,23 @@ namespace Edu.WebApi.Controllers.User ...@@ -169,85 +169,23 @@ namespace Edu.WebApi.Controllers.User
var userInfo = base.UserInfo; var userInfo = base.UserInfo;
RB_Student_ViewModel demodel = new RB_Student_ViewModel() 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"), 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"), HeadTeacherId = base.ParmJObj.GetInt("HeadTeacherId"),
QueryTpye = base.ParmJObj.GetInt("QueryTpye"), School_Id = -1,
AdvisorStatus = base.ParmJObj.GetInt("AdvisorStatus"), QGuestState = base.ParmJObj.GetInt("QGuestState"),
}; };
string schoolId = base.ParmJObj.GetStringValue("School_Id"); string schoolId = base.ParmJObj.GetStringValue("School_Id");
if (schoolId != "-1") if (schoolId != "-1")
{ {
demodel.School_Id = base.ParmJObj.GetInt("School_Id"); 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; demodel.Group_Id = userInfo.Group_Id;
var list = studentStatModule.GetStudentFollowUpPageModule_V2Module(pmodel.PageIndex, pmodel.PageSize, out long count, demodel);
//市场部
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);
pmodel.Count = count; pmodel.Count = count;
pmodel.PageData = list; pmodel.PageData = list;
return ApiResult.Success("", pmodel); return ApiResult.Success("", pmodel);
} }
/// <summary> /// <summary>
/// 下载学员跟进信息 2024-03-01 add by:w /// 下载学员跟进信息 2024-03-01 add by:w
/// </summary> /// </summary>
...@@ -260,77 +198,18 @@ namespace Edu.WebApi.Controllers.User ...@@ -260,77 +198,18 @@ namespace Edu.WebApi.Controllers.User
var userInfo = base.UserInfo; var userInfo = base.UserInfo;
RB_Student_ViewModel demodel = new RB_Student_ViewModel() 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"), 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"), HeadTeacherId = base.ParmJObj.GetInt("HeadTeacherId"),
QueryTpye = base.ParmJObj.GetInt("QueryTpye"), School_Id = -1,
AdvisorStatus = base.ParmJObj.GetInt("AdvisorStatus"), QGuestState = base.ParmJObj.GetInt("QGuestState"),
}; };
string schoolId = base.ParmJObj.GetStringValue("School_Id"); string schoolId = base.ParmJObj.GetStringValue("School_Id");
if (schoolId != "-1") if (schoolId != "-1")
{ {
demodel.School_Id = base.ParmJObj.GetInt("School_Id"); 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; demodel.Group_Id = userInfo.Group_Id;
var list = studentStatModule.GetStudentFollowUpPageModule_V2Module(1, 1000000, out long count, demodel);
//市场部
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 QueryTpye = base.ParmJObj.GetInt("QueryTpye"); var QueryTpye = base.ParmJObj.GetInt("QueryTpye");
string excelName = "学员跟进表.xls"; string excelName = "学员跟进表.xls";
try try
...@@ -351,6 +230,7 @@ namespace Edu.WebApi.Controllers.User ...@@ -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 }, 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 ...@@ -366,7 +246,7 @@ namespace Edu.WebApi.Controllers.User
{ {
new ExcelColumn(item.StuName), 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.StuProfession));
columns.Add(new ExcelColumn(item.StuPurposeName)); columns.Add(new ExcelColumn(item.StuPurposeName));
columns.Add(new ExcelColumn(teacherNamager)); columns.Add(new ExcelColumn(teacherNamager));
...@@ -402,6 +282,7 @@ namespace Edu.WebApi.Controllers.User ...@@ -402,6 +282,7 @@ namespace Edu.WebApi.Controllers.User
columns.Add(new ExcelColumn(rCourseNameStr)); columns.Add(new ExcelColumn(rCourseNameStr));
columns.Add(new ExcelColumn(rCourseLevelStr)); columns.Add(new ExcelColumn(rCourseLevelStr));
columns.Add(new ExcelColumn(rCoursePriceStr)); columns.Add(new ExcelColumn(rCoursePriceStr));
columns.Add(new ExcelColumn(item.NewLesson));
columns.Add(new ExcelColumn(item.CreateByName)); columns.Add(new ExcelColumn(item.CreateByName));
var dataRow = new ExcelDataSource() var dataRow = new ExcelDataSource()
......
...@@ -36,10 +36,10 @@ ...@@ -36,10 +36,10 @@
"WkHtmlToPdfPath": "D:/wkhtmltopdf/bin/", "WkHtmlToPdfPath": "D:/wkhtmltopdf/bin/",
"FinanceKey": "FinanceMallInsertToERPViitto2020", "FinanceKey": "FinanceMallInsertToERPViitto2020",
"PaymentFinanceApi": "http://192.168.10.46/api/Mall/InsertFinanceBatchForMallOut", "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", //�µ��ص���ַ "sTenpayNotifyUrl": "http://eduapi.oytour.com/api/WeChatPay/WxPayCallback", //�µ��ص���ַ
"sTenpayNotifyRefundUrl": "http://eduapi.oytour.com/api/WeChatPay/Refunds", //�˿�ص���ַ "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", "FinanceDateBase": "reborn_finance",
"EduDateBase": "reborn_edu", "EduDateBase": "reborn_edu",
"JHTenantId": "15", "JHTenantId": "15",
...@@ -48,8 +48,6 @@ ...@@ -48,8 +48,6 @@
"WeChatAccountAppId": "wx7c2cedaebbfca211", "WeChatAccountAppId": "wx7c2cedaebbfca211",
"WeChatAccountAppSecret": "6fd676c7f599bc2783fab6ae6c7a12d4", "WeChatAccountAppSecret": "6fd676c7f599bc2783fab6ae6c7a12d4",
"Notice_BaseKey": "Notice_BaseKey", "Notice_BaseKey": "Notice_BaseKey",
"EducationContractSchool": "EducationContractSchool",
"EducationContractAdmin": "EducationContractAdmin",
"QYWeiChatToken": "b3e0ebf63301f80cb8e741cf72fdaf3c", "QYWeiChatToken": "b3e0ebf63301f80cb8e741cf72fdaf3c",
"QYWeiChatEncodingAESKey": "ODRjOGEwYWQxNWJkNDRkMTg2NGJiOWY1ZTE4LCE0NmY", "QYWeiChatEncodingAESKey": "ODRjOGEwYWQxNWJkNDRkMTg2NGJiOWY1ZTE4LCE0NmY",
"RabbitMqConfig": { "RabbitMqConfig": {
...@@ -65,73 +63,74 @@ ...@@ -65,73 +63,74 @@
"RedisPort": "6379", "RedisPort": "6379",
"RedisPwd": "Viitto2018" "RedisPwd": "Viitto2018"
}, },
"VirtualDirectory": "WebFile",
//δ��д δ��� �½�����
"OKRMatterValue": "30,100,100", "OKRMatterValue": "30,100,100",
//�Ƿ������ϻ��� "VirtualDirectory": "WebFile",
//是否是线上环境
"IsOnline": false, "IsOnline": false,
//�˿����̱�� //退课流程编号
"BackClassFlowId": 1, "BackClassFlowId": 1,
//����У����λ��� //分区校长岗位编号
"SchoolPostId": 3, "SchoolPostId": 3,
//���� //教务长
"JiaoWuZhang": 8, "JiaoWuZhang": 8,
//��ѧ��ҵ����������˱��[����] //留学就业部门主管审核编号[王涛]
"StudyAbroadDirectorId": 64, "StudyAbroadDirectorId": 2602,
//��ѧ��ҵ���Ÿ�������˱��[Ҧ˳��] //留学就业部门负责人审核编号[姚顺先]
"StudyAbroadManagerId": 52, "StudyAbroadManagerId": 52,
//��ͬĬ��̧ͷ //合同默认抬头
"ContractDefaultTitle": "JH-DZ-CD-", "ContractDefaultTitle": "JH-DZ-CD-",
//��Ϣ����AppId //消息推送AppId
"PushAppId": "JiaHeJiaoYu", "PushAppId": "JiaHeJiaoYu",
//�Ƿ�������Ϣ //是否推送消息
"IsPushMessage": "1", "IsPushMessage": "0",
//�����°�ʱ��60���Ӳ��ܴ� //超过下班时间60分钟不能打卡
"MoreThanMinutes": 60, "MoreThanMinutes": 60,
//����ȱ�ο�ʱ //连续缺课课时
"AbsentHours": 12, "AbsentHours": 12,
//ֵ��ʱ����֤���� //值班时间验证日期
"DutyDate": "2021-06-30", "DutyDate": "2021-09-24",
//�������̱�� //调课流程编号
"ChangeClassFlowId": 2, "ChangeClassFlowId": 2,
//ͣ�����̱�� //停课流程编号
"StopClassFlowId": 3, "StopClassFlowId": 3,
//��ʱ�Ͽ��������̱�� //临时上课邀请流程编号
"TempInvitationClassFlowId": 4, "TempInvitationClassFlowId": 4,
//����ת�����̱�� //订单转班流程编号
"OrderTransClassFlowId": 5, "OrderTransClassFlowId": 5,
//�����ֲ����̱�� //订单分拆流程编号
"OrderSplitClassFlowId": 6, "OrderSplitClassFlowId": 6,
//�Ƿ������������֤ "EducationContractSchool": "EducationContractSchool",
"EducationContractAdmin": "EducationContractAdmin",
//是否开启调课数据验证
"IsOpenChangeClassVerify": 1, "IsOpenChangeClassVerify": 1,
//�Ƿ��DZ��ط��� //是否是本地服务
"IsLocal": "1", "IsLocal": "0",
//��ʱToken //临时Token
"TempToken": "53_OVLlSPNJ0hmSrsEUfnJ6kTxFRGxfkcuJJjpBjsDuaSGmtYu95vZNNyh-wIXbFSZ9DtxzFJ1eN0At2QmJ_aWLPFjz4yrz2VrWvmR3KrEQKqfwvxesG82V2WpAgDnxW_tvvWYXRRRX1oguxCtHXSShADAKFF", "TempToken": "",
//ѧ��������̱�� //学生请假流程编号
"StudentLeaveFlowId": 7, "StudentLeaveFlowId": 7,
//����������̱�� //组卷审批流程编号
"ZuJuanFlowId": 8, "ZuJuanFlowId": 8,
//�����������̱�� //考试申请流程编号
"ExamApplyFlowId": 9, "ExamApplyFlowId": 9,
//Ͷ���������̱�� //投稿审批流程编号
"ContributeFlowId": 10, "ContributeFlowId": 10,
//��ҵ���������ʱ�� //新业绩提成启用时间
"NewAchievementsEnable": "2022-01-01", "NewAchievementsEnable": "2022-01-01",
//Vip�γ��������̱�� //Vip课程申请流程编号
"VipCourseFlowId": 11, "VipCourseFlowId": 11,
//�׺��տ������� //甲鹤收款手续费
"IncomeFeeRate": "0.0025,0.0054,0.006,0.04,0.004", "IncomeFeeRate": "0.0025,0.0054,0.006,0.04,0.004",
//��ʦ�����������̱�� //教师考核审批流程编号
"TeacherAssessmentFlowId": 12, "TeacherAssessmentFlowId": 12,
//����֤ѧԱ״̬�Ķ���(1382������������˵�ࡾ��ҵ�Ρ�) //不验证学员状态的订单(1382:商务日语听说班【企业课】和武侯的订单不验证)
"NoCheckOrders": "1382", "NoCheckOrders": "1382,1502,1503,1504,1505,1508,1513,1522",
//chrome�������ַ //chrome浏览器地址
"chromePath": "C:/Users/Administrator/AppData/Local/Google/Chrome/Application/chrome.exe", "chromePath": "F:/reborn/eduapi.oytour.com/.local-chromium/Win64-970485/chrome-win/chrome.exe",
//�г�ͷ���ײ�ͼƬ //行程头部底部图片
"FeaturePath": "E:\\WebFile\\Feature\\", "FeaturePath": "Z:\\Feature",
//1-����Chrome,0-������Chrome //1-下载Chrome,0-不下载Chrome
"IsDownLoadChrome": "0", "IsDownLoadChrome": "1",
//需要清0的订单编号 //需要清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