Commit be1472b6 authored by liudong1993's avatar liudong1993

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

parents 88f570dc 08ebe0b7
......@@ -19,5 +19,26 @@ namespace Edu.Model.ViewModel.Mall
/// 创建人
/// </summary>
public string CreateByName { get; set; }
/// <summary>
/// 学员信息
/// </summary>
public List<GuestItem> GuestIdList { get; set; }
}
/// <summary>
/// 学员信息
/// </summary>
public class GuestItem
{
/// <summary>
/// 学员编号RB_Order_Guest表编号
/// </summary>
public int GuestId { get; set; }
/// <summary>
/// 学员姓名
/// </summary>
public string GuestName { get; set; }
}
}
......@@ -314,5 +314,10 @@ namespace Edu.Model.ViewModel.Sell
/// 学员数量
/// </summary>
public int StudentNum { get; set; }
/// <summary>
/// 学员账号编号
/// </summary>
public int Account_Id { get; set; }
}
}
\ No newline at end of file
......@@ -1127,6 +1127,7 @@ namespace Edu.Module.Course
qitem.OrderId,
GuestId = qitem.Id,
qitem.CourseId,
qitem.Account_Id,
IsCheck = false,
})
};
......
......@@ -52,23 +52,35 @@ namespace Edu.Module.Goods
public bool SetActivitySurveyGuestModule(RB_ActivitySurvey_Guest_Extend model)
{
bool flag = false;
if (model.Id > 0)
foreach (var item in model.GuestIdList)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
//var oldModel = activitySurvey_GuestRepository.GetActivitySurveyGuestListRepository(new RB_ActivitySurvey_Guest_Extend()
//{
// GuestId = item.GuestId,
// SurveyId = model.SurveyId
//})?.FirstOrDefault();
//model.Id = oldModel?.Id ?? 0;
model.GuestId = item.GuestId;
if (model.Id > 0)
{
{nameof(RB_ActivitySurvey_Guest_Extend.GuestType),model.GuestType },
{nameof(RB_ActivitySurvey_Guest_Extend.GuestId),model.GuestId },
{nameof(RB_ActivitySurvey_Guest_Extend.StartTime),model.StartTime },
{nameof(RB_ActivitySurvey_Guest_Extend.EndTime),model.EndTime },
};
flag = activitySurvey_GuestRepository.Update(fileds, new WhereHelper(nameof(RB_ActivitySurvey_Guest_Extend.Id), model.Id));
}
else
{
var newId = activitySurvey_GuestRepository.Insert(model);
model.Id = newId;
flag = newId > 0;
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_ActivitySurvey_Guest_Extend.GuestType),model.GuestType },
{nameof(RB_ActivitySurvey_Guest_Extend.GuestId),model.GuestId },
{nameof(RB_ActivitySurvey_Guest_Extend.StartTime),model.StartTime },
{nameof(RB_ActivitySurvey_Guest_Extend.EndTime),model.EndTime },
};
flag = activitySurvey_GuestRepository.Update(fileds, new WhereHelper(nameof(RB_ActivitySurvey_Guest_Extend.Id), model.Id));
}
else
{
var newId = activitySurvey_GuestRepository.Insert(model);
model.Id = newId;
flag = newId > 0;
}
}
return flag;
}
......@@ -95,6 +107,12 @@ namespace Edu.Module.Goods
public RB_ActivitySurvey_Guest_Extend GetActivitySurveyGuestModule(int Id)
{
var extModel = activitySurvey_GuestRepository.GetEntity<RB_ActivitySurvey_Guest_Extend>(Id);
if (extModel != null && extModel.GuestId > 0)
{
var stuModel = accountRepository.GetStudentExt(new RB_Account_ViewModel() { QIds = extModel.GuestId.ToString() }).FirstOrDefault();
extModel.GuestIdList = new List<GuestItem>();
extModel.GuestIdList.Add(new GuestItem() { GuestId = extModel.GuestId, GuestName = stuModel.AccountName });
}
return extModel;
}
......
This diff is collapsed.
using Edu.Common.Enum;
using Edu.Model.Entity.Customer;
using Edu.Model.ViewModel.Customer;
using Edu.Model.ViewModel.User;
using System;
using System.Collections.Generic;
using System.Linq;
......@@ -106,50 +107,54 @@ WHERE 1=1
return Get<RB_Student_Appointment_Extend>(builder.ToString()).ToList();
}
/// <summary>
/// 获取约访统计列表
/// 今日需联系学员(之前预约的跟进学员或本周期内需要跟进的学员)
/// </summary>
/// <param name="query"></param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name=""></param>
/// <returns></returns>
public List<RB_Student_Appointment_Extend> GetStudentVisitListRepository(RB_Student_Appointment_Extend query)
public List<RB_Student_ViewModel> GetTodayConnectPageRepository(int pageIndex,int pageSize,out long rowsCount,string date,int CreateBy)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,B.StuName
FROM RB_Student_Appointment AS A INNER JOIN rb_student AS B ON A.StuId=B.StuId
WHERE 1=1
");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Appointment_Extend.Status), (int)DateStateEnum.Normal);
if (query != null)
string where1="", where2="";
if (!string.IsNullOrEmpty(date))
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Appointment_Extend.Group_Id), query.Group_Id);
}
if (query.StuId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Appointment_Extend.StuId), query.StuId);
}
if (query.CreateBy > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Appointment_Extend.CreateBy), query.CreateBy);
}
//指定日期的约访统计
if (!string.IsNullOrEmpty(query.QueryDate))
{
builder.AppendFormat(" AND ( DATE_FORMAT(A.{0},'%y/%m/%d')= DATE_FORMAT('{2}','%y/%m/%d') OR DATE_FORMAT(A.{1},'%y/%m/%d')= DATE_FORMAT('{2}','%y/%m/%d')) ", nameof(RB_Student_Appointment_Extend.CreateTime), nameof(RB_Student_Appointment_Extend.AppointmentTime), Common.ConvertHelper.FormatDate(query.QueryDate));
}
if (!string.IsNullOrEmpty(query.StartDate))
{
builder.AppendFormat(" AND A.{0}>='{1}' ", nameof(RB_Student_Appointment_Extend.CreateTime), Common.ConvertHelper.FormatDate(query.StartDate));
}
if (!string.IsNullOrEmpty(query.EndDate))
{
builder.AppendFormat(" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Student_Appointment_Extend.CreateTime), Common.ConvertHelper.FormatDate(query.EndDate));
}
where1+=string.Format(" AND ( DATE_FORMAT(B.{0},'%y/%m/%d')= DATE_FORMAT('{2}','%y/%m/%d') OR DATE_FORMAT(B.{1},'%y/%m/%d')= DATE_FORMAT('{2}','%y/%m/%d')) "
, nameof(RB_Student_Appointment_Extend.CreateTime)
, nameof(RB_Student_Appointment_Extend.AppointmentTime),
date);
}
return Get<RB_Student_Appointment_Extend>(builder.ToString()).ToList();
if (CreateBy > 0)
{
where1 += string.Format(" AND B.{0}={1} ", nameof(RB_Student_Appointment_Extend.CreateBy), CreateBy);
where2 += string.Format(@"
AND ( A.CreateBy IN({0})
OR A.StuId IN (SELECT StuId FROM rb_student_assist WHERE AssistId IN({0}) AND `Status`=0)
)
", CreateBy);
}
builder.AppendFormat(@"
SELECT *
FROM
(
SELECT A.*
FROM rb_student AS A INNER JOIN RB_Student_Appointment AS B ON A.StuId=B.StuId
WHERE 1=1 {0}
UNION ALL
SELECT A.*
FROM rb_student AS A
LEFT JOIN (SELECT StuId,COUNT(1) AS FollowCount FROM rb_student_follow WHERE WEEK(CreateTime,1)=WEEK(NOW(),1) GROUP BY StuId ) AS B ON A.StuId=B.StuId
WHERE 1=1 AND IFNULL(B.FollowCount,0)=0 {1}
) AS A
", where1,where2);
return GetPage<RB_Student_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList();
}
}
}
......@@ -24,18 +24,18 @@ namespace Edu.Repository.Mall
/// <returns></returns>
public List<RB_ActivitySurvey> GetActivitySurveyListRepository(RB_ActivitySurvey where,string StuAccountId)
{
string dateStr = Common.ConvertHelper.FormatDate(DateTime.Now);
string dateStr = Common.ConvertHelper.FormatTime(DateTime.Now);
StringBuilder sb = new StringBuilder();
sb.AppendFormat(@"
SELECT A.*,(SELECT Id FROM RB_ActivitySurvey_Guest WHERE GuestType=2 AND IsFinish=0 AND SurveyId=A.ID AND StartTime<'{0}' AND EndTime>'{0}' AND GuestId={1} LIMIT 1) AS ActivitySurveyGuestId
SELECT A.*,(SELECT Id FROM RB_ActivitySurvey_Guest WHERE GuestType=2 AND IsFinish=0 AND SurveyId=A.ID AND StartTime<='{0}' AND '{0}'<=EndTime AND GuestId={1} LIMIT 1) AS ActivitySurveyGuestId
FROM RB_ActivitySurvey AS A
WHERE A.State=0 ",dateStr, StuAccountId);
WHERE A.State=0 ", dateStr, StuAccountId);
sb.AppendFormat(" AND A.StartDate<'{0}' AND A.EndDate>'{0}' ", dateStr);
sb.AppendFormat(" AND A.StartDate<='{0}' AND '{0}'<= A.EndDate ", dateStr);
if (!string.IsNullOrEmpty(StuAccountId))
{
//sb.AppendFormat(" AND NOT EXISTS(SELECT 1 FROM rb_guestsurvey WHERE UserType=2 AND ActivitySurveyId=A.ID AND UserId={0}) ", StuAccountId);
sb.AppendFormat(" AND EXISTS(SELECT 1 FROM RB_ActivitySurvey_Guest WHERE GuestType=2 AND IsFinish=0 AND SurveyId=A.ID AND GuestId={0} AND StartTime<'{1}' AND EndTime>'{1}' )", StuAccountId, dateStr);
sb.AppendFormat(" AND EXISTS(SELECT 1 FROM RB_ActivitySurvey_Guest WHERE GuestType=2 AND IsFinish=0 AND SurveyId=A.ID AND GuestId={0} AND StartTime<='{1}' AND '{1}'<=EndTime )", StuAccountId, dateStr);
}
if (where != null)
{
......
......@@ -75,6 +75,10 @@ WHERE 1=1
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_ActivitySurvey_Guest_Extend.SurveyId), query.SurveyId);
}
if (query.GuestId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_ActivitySurvey_Guest_Extend.GuestId), query.GuestId);
}
}
return Get<RB_ActivitySurvey_Guest_Extend>(builder.ToString()).ToList();
}
......
......@@ -190,7 +190,7 @@ namespace Edu.Repository.Sell
SELECT sog.Student_Id as StudentId,A.*,cs.ClassName,cs.Teacher_Id,cs.ClassNo,IFNULL(B.JoinType,0) AS JoinType,IFNULL(B.TargetJoinType,0) AS TargetJoinType,IFNULL(B.StartClassHours,0) AS StartClassHours
,IFNULL(C.CourseName,'') AS CourseName,B.EffectStatus,B.EffectTime,B.UpOrderId,B.OrderType,B.CourseId,B.IsRenewOrder,B.RenewOrderId,B.EnterID
,sc.StopClassEffectTime,B.SourceOrderId,B.TargetOrderId,IFNULL(D.FirstClassHours,0)+IFNULL(D.SecondClassHours,0)+IFNULL(D.ThirdClassHours,0) AS ContractTotalHours
,IFNULL(stu.StuIcon,'') AS UserIcon,stu.StuTel,stu.StuRealMobile
,IFNULL(stu.StuIcon,'') AS UserIcon,stu.StuTel,stu.StuRealMobile,sog.Account_Id
FROM RB_Order_Guest AS A LEFT JOIN rb_order AS B ON A.OrderId=B.OrderId
LEFT JOIN rb_class AS cs ON B.ClassId=cs.ClassId
LEFT JOIN rb_student_orderguest as sog on sog.GuestId=a.Id
......@@ -911,8 +911,11 @@ WHERE 1=1 AND A.Status=0 AND class.Status=0 AND class.ClassStatus <>4 AND b.Or
//查询快毕业的学生 HK 2022-05-09新增
if (demodel.IsImmediatelyGraduate == 1)
{
builder.AppendFormat(" AND A.GuestState<>7 AND (A.TotalHours-A.CompleteHours)<=100 ");
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 A.GuestState<>7 AND (A.TotalHours-A.CompleteHours)<=20 ");
if (demodel.CreateBy > 0)
{
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($@" order by A.{nameof(RB_Order_Guest_Extend.Id)} desc");
var list= GetPage<RB_Order_Guest_Extend>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList();
......
......@@ -76,7 +76,17 @@ namespace Edu.WebApi.Controllers.Goods
StartTime = base.ParmJObj.GetDateTime("StartTime"),
EndTime = base.ParmJObj.GetDateTime("EndTime"),
SurveyId = base.ParmJObj.GetInt("SurveyId"),
GuestIdList=new List<GuestItem> ()
};
string GuestIdList = base.ParmJObj.GetStringValue("GuestIdList");
if (!string.IsNullOrEmpty(GuestIdList))
{
extModel.GuestIdList = JsonHelper.DeserializeObject<List<GuestItem>>(GuestIdList);
}
if ((extModel.GuestIdList == null || extModel.GuestIdList.Count == 0) && extModel.GuestId > 0)
{
extModel.GuestIdList.Add(new GuestItem() { GuestId = extModel.GuestId });
}
extModel.Status = 0;
extModel.CreateBy = base.UserInfo.Id;
extModel.CreateDate = DateTime.Now;
......@@ -101,6 +111,7 @@ namespace Edu.WebApi.Controllers.Goods
Id = extModel?.Id ?? 0,
GuestId = extModel?.GuestId ?? 0,
GuestType = extModel?.GuestType ?? 0,
GuestIdList= extModel?.GuestIdList??new List<GuestItem> (),
StartTime = Common.ConvertHelper.FormatTime(extModel.StartTime),
EndTime = Common.ConvertHelper.FormatTime(extModel.EndTime),
};
......
......@@ -3326,7 +3326,7 @@ namespace Edu.WebApi.Controllers.User
{
var pageModel = Common.Plugin.JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var userId = 0;
userId = base.UserInfo.Id;
//userId = base.UserInfo.Id;
var list = studentModule.GetStudentAppointmentPageModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, userId);
pageModel.PageData = list;
pageModel.Count = rowsCount;
......@@ -3364,8 +3364,10 @@ namespace Edu.WebApi.Controllers.User
/// <returns></returns>
public ApiResult MyStudent()
{
var userId = 0;
//userId = base.UserInfo.Id;
var pageModel = Common.Plugin.JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var list = studentModule.GetMyStudentModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, base.UserInfo.Id);
var list = studentModule.GetMyStudentModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, userId);
pageModel.PageData = list;
pageModel.Count = rowsCount;
return ApiResult.Success(data: pageModel);
......@@ -3375,10 +3377,12 @@ namespace Edu.WebApi.Controllers.User
/// 待申领合同(正常订单,没有领取电子合同)
/// </summary>
/// <returns></returns>
public ApiResult MyContract()
public ApiResult MyOrderNotReceiveContract()
{
var pageModel = Common.Plugin.JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var list = studentModule.GetContractNotModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, base.UserInfo.Id);
var userId = 0;
//userId = base.UserInfo.Id;
var list = studentModule.GetContractNotModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, userId);
pageModel.PageData = list;
pageModel.Count = rowsCount;
return ApiResult.Success(data: pageModel);
......@@ -3388,10 +3392,12 @@ namespace Edu.WebApi.Controllers.User
/// 待收款提醒(正常订单,收支款未平衡的订单)
/// </summary>
/// <returns></returns>
public ApiResult MyPay()
public ApiResult MyOrderNotBalance()
{
var pageModel = Common.Plugin.JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var list = studentModule.GetOrderNotModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, base.UserInfo.Id);
var userId = 0;
//userId = base.UserInfo.Id;
var list = studentModule.GetOrderNotModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, userId);
pageModel.PageData = list;
pageModel.Count = rowsCount;
return ApiResult.Success(data: pageModel);
......@@ -3405,7 +3411,9 @@ namespace Edu.WebApi.Controllers.User
public ApiResult TodayFollow()
{
var pageModel = Common.Plugin.JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var list = studentModule.GetTodayFollowStudentModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, base.UserInfo.Id);
var userId = 0;
//userId = base.UserInfo.Id;
var list = studentModule.GetTodayFollowStudentModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, userId);
pageModel.PageData = list;
pageModel.Count = rowsCount;
return ApiResult.Success(data: pageModel);
......@@ -3417,8 +3425,10 @@ namespace Edu.WebApi.Controllers.User
/// <returns></returns>
public ApiResult GraduateStudent()
{
var userId = 0;
//userId = base.UserInfo.Id;
var pageModel = Common.Plugin.JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var list = studentModule.GetStraightwayGraduateStudentModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, base.UserInfo.Id);
var list = studentModule.GetStraightwayGraduateStudentModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, userId);
pageModel.PageData = list;
pageModel.Count = rowsCount;
return ApiResult.Success(data: pageModel);
......@@ -3430,26 +3440,12 @@ namespace Edu.WebApi.Controllers.User
/// <returns></returns>
public ApiResult NotBusinessBill()
{
var pageModel = Common.Plugin.JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var pageModel = JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var query = new EducationReceiptQuery()
{
Group_Id = base.UserInfo.Group_Id,
StartTime = base.ParmJObj.GetStringValue("StartTime"),
EndTime = base.ParmJObj.GetStringValue("EndTime"),
Conditon = (EduReceiptConditionEnum)base.ParmJObj.GetInt("Conditon"),
ReceiptType = base.ParmJObj.GetInt("ReceiptType"),
Title = base.ParmJObj.GetStringValue("Title"),
RelationId = base.ParmJObj.GetInt("RelationId")
Conditon = EduReceiptConditionEnum.WaitAgree,
};
if (!string.IsNullOrEmpty(base.ParmJObj.GetStringValue("VerifyStatus")))
{
query.VerifyStatus = base.ParmJObj.GetInt("VerifyStatus", -1);
}
var id = base.ParmJObj.GetInt("Id");
if (id > 0)
{
query.QIds = id.ToString();
}
query.CreateBy = base.UserInfo.Id;
var list = educationReceiptModule.GetEducationReceiptPageModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
pageModel.PageData = list;
......
......@@ -17,6 +17,7 @@ using Edu.Common.WeChatPayAPIv3.Model.RefundsCallback;
using Edu.Common.WeChatPayAPIv3.Model.WxPayCallback;
using Edu.Model.Entity.Finance;
using Edu.Model.ViewModel.Finance;
using Edu.Model.ViewModel.User;
using Edu.Module.Course;
using Edu.Module.User;
using Edu.WebApi.Filter;
......@@ -165,7 +166,21 @@ namespace Edu.WebApi.Controllers.WeChatPay
{
financeConfig = new RB_Finance_Config_ViewModel();
}
var userInfo = employeeModule.GetEmployeeListModule(new Model.ViewModel.User.Employee_ViewModel { Id = orderModel.EnterID, Group_Id = orderModel.Group_Id }).ToList().FirstOrDefault();
var userInfo = new Employee_ViewModel();
if (orderModel.CreateBy > 0)
{
userInfo = employeeModule.GetEmployeeListModule(new Model.ViewModel.User.Employee_ViewModel { Id = orderModel.CreateBy, Group_Id = orderModel.Group_Id }).ToList().FirstOrDefault();
}
else if (orderModel.EnterID > 0)
{
userInfo = employeeModule.GetEmployeeListModule(new Model.ViewModel.User.Employee_ViewModel { Id = orderModel.EnterID, Group_Id = orderModel.Group_Id }).ToList().FirstOrDefault();
}
else if (orderModel.CourseConsultantId > 0)
{
userInfo = employeeModule.GetEmployeeListModule(new Model.ViewModel.User.Employee_ViewModel { Id = orderModel.CourseConsultantId, Group_Id = orderModel.Group_Id }).ToList().FirstOrDefault();
}
var OriginalFee = Math.Round((Convert.ToDecimal(Config.SettlementRate) / 100) * (Convert.ToDecimal(payModel.amount.payer_total) / 100), 2, MidpointRounding.AwayFromZero);//手续费
RB_Online_Trade_Detail model = new RB_Online_Trade_Detail();
RB_Finance_OrderRecord orderRecordModel = new RB_Finance_OrderRecord
......
......@@ -147,7 +147,7 @@ namespace Edu.WebApi.Timers
marketTimer = new System.Timers.Timer()
{
Interval = (1000 * 60) * (60) //1小时执行一次
Interval = (1000 * 60) * (10) //10分钟执行一次
};
marketTimer.Elapsed += new System.Timers.ElapsedEventHandler(DealMarketConsultantData);
marketTimer.Enabled = true;
......
......@@ -18,7 +18,7 @@
"Microsoft.Hosting.Lifetime": "Information"
}
},
"SettlementRated": "0.60",
"SettlementRate": "0.54",
"SellCommissionFFBL": "0.15",
"JwtSecretKey": "@VIITTOREBORN*2018",
"MallJwtSecretKey": "@VIITTOREBORN*2018123",
......
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