Commit 9e6c987a authored by 罗超's avatar 罗超

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

# Conflicts:
#	Edu.Module.Course/OrderModule.cs
parents 21cb35bf 936a73e0
...@@ -16,7 +16,12 @@ namespace Edu.Model.Entity.Bonus ...@@ -16,7 +16,12 @@ namespace Edu.Model.Entity.Bonus
/// 主键编号 /// 主键编号
/// </summary> /// </summary>
public int Id { get; set; } public int Id { get; set; }
/// <summary>
/// 期数编号
/// </summary>
public int PeriodId { get; set; }
/// <summary> /// <summary>
/// 关联方案编号 /// 关联方案编号
/// </summary> /// </summary>
...@@ -104,21 +109,11 @@ namespace Edu.Model.Entity.Bonus ...@@ -104,21 +109,11 @@ namespace Edu.Model.Entity.Bonus
/// </summary> /// </summary>
public int IsReach { get; set; } public int IsReach { get; set; }
/// <summary>
/// 基本工资
/// </summary>
public decimal BasicSalary { get; set; }
/// <summary> /// <summary>
/// 开单奖金 /// 开单奖金
/// </summary> /// </summary>
public decimal OpenBonus { get; set; } public decimal OpenBonus { get; set; }
/// <summary>
/// 工龄工资
/// </summary>
public decimal WorkAgeSalary { get; set; }
/// <summary> /// <summary>
/// 每5条线索奖金 /// 每5条线索奖金
/// </summary> /// </summary>
...@@ -128,5 +123,10 @@ namespace Edu.Model.Entity.Bonus ...@@ -128,5 +123,10 @@ namespace Edu.Model.Entity.Bonus
/// 以前月份的冲抵金额 /// 以前月份的冲抵金额
/// </summary> /// </summary>
public decimal BeforeMoney { get; set; } public decimal BeforeMoney { get; set; }
/// <summary>
/// 当月人头奖励配置数据Json格式
/// </summary>
public string HisBonusData { get; set; }
} }
} }
...@@ -36,5 +36,10 @@ namespace Edu.Model.Entity.Bonus ...@@ -36,5 +36,10 @@ namespace Edu.Model.Entity.Bonus
/// 日志内容 /// 日志内容
/// </summary> /// </summary>
public string LogContent { get; set; } public string LogContent { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
} }
} }
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Edu.Model.Entity.Bonus
{
/// <summary>
/// 人头奖金发放期数实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Personnel_Period
{
/// <summary>
/// 主键编号
/// </summary>
public int Id { get; set; }
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 期数
/// </summary>
public string Periods { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建日期
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 累计金额
/// </summary>
public decimal SumPrice { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 关联财务单据ids
/// </summary>
public string Financials { get; set; }
/// <summary>
/// 已发放人员的列表
/// </summary>
public string EmpIds { get; set; }
/// <summary>
/// 期数备注
/// </summary>
public string Remark { get; set; }
}
}
...@@ -81,5 +81,10 @@ namespace Edu.Model.Entity.Sell ...@@ -81,5 +81,10 @@ namespace Edu.Model.Entity.Sell
/// 备注 /// 备注
/// </summary> /// </summary>
public string Remark { get; set; } public string Remark { get; set; }
/// <summary>
/// 订单业绩
/// </summary>
public decimal OrderSaleMoney { get; set; }
} }
} }
using Edu.Model.Entity.Bonus; using Edu.Common.Plugin;
using Edu.Model.Entity.Bonus;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
...@@ -14,5 +15,10 @@ namespace Edu.Model.ViewModel.Bonus ...@@ -14,5 +15,10 @@ namespace Edu.Model.ViewModel.Bonus
/// 奖励主表编号【查询使用】 /// 奖励主表编号【查询使用】
/// </summary> /// </summary>
public string QBonusIds { get; set; } public string QBonusIds { get; set; }
/// <summary>
/// 订单状态字符串
/// </summary>
public string OrderStateName { get { return this.OrderState.ToName(); } }
} }
} }
...@@ -10,5 +10,14 @@ namespace Edu.Model.ViewModel.Bonus ...@@ -10,5 +10,14 @@ namespace Edu.Model.ViewModel.Bonus
/// </summary> /// </summary>
public class RB_Personnel_BonusLog_Extend : RB_Personnel_BonusLog public class RB_Personnel_BonusLog_Extend : RB_Personnel_BonusLog
{ {
/// <summary>
/// 奖励主表编号【查询使用】
/// </summary>
public string QBonusIds { get; set; }
/// <summary>
/// 创建时间字符串
/// </summary>
public string CreateTimeStr { get { return Common.ConvertHelper.FormatTime(this.CreateTime); } }
} }
} }
...@@ -14,10 +14,82 @@ namespace Edu.Model.ViewModel.Bonus ...@@ -14,10 +14,82 @@ namespace Edu.Model.ViewModel.Bonus
/// 人头奖励详情列表 /// 人头奖励详情列表
/// </summary> /// </summary>
public List<RB_Personnel_BonusDetail_Extend> DetailList { get; set; } public List<RB_Personnel_BonusDetail_Extend> DetailList { get; set; }
/// <summary>
/// 抵扣列表
/// </summary>
public List<RB_Personnel_Deduction_Extend> DeductionList { get; set; }
/// <summary>
/// 变更日志列表
/// </summary>
public List<RB_Personnel_BonusLog_Extend> BonusLogList { get; set; }
/// <summary> /// <summary>
/// 是否查询未平账 /// 是否查询未平账
/// </summary> /// </summary>
public int IsNoBalance { get; set; } public int IsNoBalance { get; set; }
/// <summary>
/// 查询员工编号
/// </summary>
public string QEmployeeIds { get; set; }
/// <summary>
/// 期数编号【查询使用】
/// </summary>
public string QPeriodIds { get; set; }
/// <summary>
/// 员工姓名
/// </summary>
public string EmployeeName { get; set; }
}
/// <summary>
/// 当月人头奖励配置数据
/// </summary>
public class CurrentMonthBonusData
{
/// <summary>
/// 开单奖金
/// </summary>
public decimal OpenBonus { get; set; }
/// <summary>
/// 每5条线索奖金
/// </summary>
public decimal ClueNumSalary { get; set; }
/// <summary>
/// 当月目标金额
/// </summary>
public decimal MonthGoalMoney { get; set; }
/// <summary>
/// 人头梯度详情
/// </summary>
public List<CurrentMonthBonusDataDetails> DetailList { get; set; }
}
/// <summary>
/// 当月人头奖励梯度配置数据
/// </summary>
public class CurrentMonthBonusDataDetails
{
/// <summary>
/// 开始人数
/// </summary>
public decimal StartNum { get; set; }
/// <summary>
/// 结束人数
/// </summary>
public decimal EndNum { get; set; }
/// <summary>
/// 奖励金额
/// </summary>
public decimal Money { get; set; }
} }
} }
...@@ -14,5 +14,10 @@ namespace Edu.Model.ViewModel.Bonus ...@@ -14,5 +14,10 @@ namespace Edu.Model.ViewModel.Bonus
/// 奖励主表编号【查询使用】 /// 奖励主表编号【查询使用】
/// </summary> /// </summary>
public string QBonusIds { get; set; } public string QBonusIds { get; set; }
/// <summary>
/// 创建时间字符串
/// </summary>
public string CreateTimeStr { get { return Common.ConvertHelper.FormatTime(this.CreateTime); } }
} }
} }
\ No newline at end of file
using Edu.Model.Entity.Bonus;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Model.ViewModel.Bonus
{
/// <summary>
/// 人头奖金发放期数扩展实体类
/// </summary>
public class RB_Personnel_Period_Extend : RB_Personnel_Period
{
/// <summary>
/// 提成数据
/// </summary>
public List<RB_Personnel_Bonus_Extend> BonusList { get; set; }
}
}
...@@ -103,5 +103,15 @@ namespace Edu.Model.ViewModel.Customer ...@@ -103,5 +103,15 @@ namespace Edu.Model.ViewModel.Customer
/// 查询创建人 /// 查询创建人
/// </summary> /// </summary>
public int QCreateBy { get; set; } public int QCreateBy { get; set; }
/// <summary>
/// 查询日期
/// </summary>
public string QDate { get; set; }
/// <summary>
/// 同行数量
/// </summary>
public int CustomerCount { get; set; }
} }
} }
...@@ -10,5 +10,14 @@ namespace Edu.Model.ViewModel.Customer ...@@ -10,5 +10,14 @@ namespace Edu.Model.ViewModel.Customer
/// </summary> /// </summary>
public class RB_Student_Appointment_Extend: RB_Student_Appointment public class RB_Student_Appointment_Extend: RB_Student_Appointment
{ {
/// <summary>
/// 查询日期
/// </summary>
public string QueryDate { get; set; }
/// <summary>
/// 约访次数
/// </summary>
public int AppointmentCount { get; set; }
} }
} }
...@@ -155,5 +155,10 @@ namespace Edu.Model.ViewModel.Reserve ...@@ -155,5 +155,10 @@ namespace Edu.Model.ViewModel.Reserve
/// 试听次数 /// 试听次数
/// </summary> /// </summary>
public int TrialLessonCount { get; set; } public int TrialLessonCount { get; set; }
/// <summary>
/// 查询日期
/// </summary>
public string QDate { get; set; }
} }
} }
...@@ -273,5 +273,16 @@ namespace Edu.Model.ViewModel.Sell ...@@ -273,5 +273,16 @@ namespace Edu.Model.ViewModel.Sell
/// 学习目的 /// 学习目的
/// </summary> /// </summary>
public string LearningGoalsName { get; set; } public string LearningGoalsName { get; set; }
/// <summary>
/// QQ号码
/// </summary>
public string QQ { get; set; }
/// <summary>
/// 微信号
/// </summary>
public string WeChatNo { get; set; }
} }
} }
\ No newline at end of file
...@@ -49,6 +49,11 @@ namespace Edu.Model.ViewModel.Sell ...@@ -49,6 +49,11 @@ namespace Edu.Model.ViewModel.Sell
/// </summary> /// </summary>
public string ClassTypeName { get; set; } public string ClassTypeName { get; set; }
/// <summary>
/// 班级Ids
/// </summary>
public string ClassIds { get; set; }
/// <summary> /// <summary>
/// 订单ids /// 订单ids
/// </summary> /// </summary>
......
...@@ -14,5 +14,10 @@ namespace Edu.Model.ViewModel.Sell ...@@ -14,5 +14,10 @@ namespace Edu.Model.ViewModel.Sell
/// 只查询正常的 /// 只查询正常的
/// </summary> /// </summary>
public int IsSelectNor { get; set; } public int IsSelectNor { get; set; }
/// <summary>
/// 订单ids
/// </summary>
public string OrderIds { get; set; }
} }
} }
\ No newline at end of file
This diff is collapsed.
...@@ -134,6 +134,12 @@ namespace Edu.Module.Course ...@@ -134,6 +134,12 @@ namespace Edu.Module.Course
/// </summary> /// </summary>
//private readonly RB_Customer_BalanceDetailRepository customer_BalanceDetailRepository = new RB_Customer_BalanceDetailRepository(); //private readonly RB_Customer_BalanceDetailRepository customer_BalanceDetailRepository = new RB_Customer_BalanceDetailRepository();
/// <summary>
/// 业绩提成
/// </summary>
private readonly RB_Sell_Achievements_EmpRepository sell_Achievements_EmpRepository = new RB_Sell_Achievements_EmpRepository();
/// <summary> /// <summary>
/// 学生关联 /// 学生关联
/// </summary> /// </summary>
...@@ -1346,7 +1352,9 @@ namespace Edu.Module.Course ...@@ -1346,7 +1352,9 @@ namespace Edu.Module.Course
MakeUpHours = 0, MakeUpHours = 0,
StuIcon = item.StuIcon, StuIcon = item.StuIcon,
TotalHours = Convert.ToInt32(courseModel.ClassHours), TotalHours = Convert.ToInt32(courseModel.ClassHours),
RenewState = item.IsRenewGuest == 1 ? 2 : 1 RenewState = item.IsRenewGuest == 1 ? 2 : 1,
QQ=item.QQ,
WeChatNo=item.WeChatNo,
}; };
SetOrderGuestInfo(guestModel, out string Nmessage); SetOrderGuestInfo(guestModel, out string Nmessage);
...@@ -2714,14 +2722,37 @@ namespace Edu.Module.Course ...@@ -2714,14 +2722,37 @@ namespace Edu.Module.Course
} }
#region 新增修改学员账号 #region 新增修改学员账号
if (flag &&!string.IsNullOrEmpty(dmodel.Mobile)) if (flag )
{ {
//学员表 RB_Student_ViewModel stuModel = null;
var stuModel = studentRepository.GetStuByTelRepository(new RB_Student_ViewModel() if (!string.IsNullOrEmpty(dmodel.Mobile))
{ {
Group_Id = dmodel.Group_Id, //学员表
StuTel = dmodel.Mobile stuModel = studentRepository.GetStuByTelRepository(new RB_Student_ViewModel()
}); {
Group_Id = dmodel.Group_Id,
StuTel = dmodel.Mobile
});
}
if (stuModel == null && !string.IsNullOrEmpty(dmodel.QQ))
{
//学员表
stuModel = studentRepository.GetStuByTelRepository(new RB_Student_ViewModel()
{
Group_Id = dmodel.Group_Id,
QQ = dmodel.QQ
});
}
if (stuModel == null && !string.IsNullOrEmpty(dmodel.WeChatNo))
{
//学员表
stuModel = studentRepository.GetStuByTelRepository(new RB_Student_ViewModel()
{
Group_Id = dmodel.Group_Id,
WeChatNo = dmodel.WeChatNo
});
}
//不存在存在学员基本信息 //不存在存在学员基本信息
if (stuModel == null) if (stuModel == null)
{ {
...@@ -2932,6 +2963,9 @@ namespace Edu.Module.Course ...@@ -2932,6 +2963,9 @@ namespace Edu.Module.Course
//获取合同列表 //获取合同列表
var clist = education_ContractRepository.GetList(new RB_Education_Contract_ViewModel() { Group_Id = demodel.Group_Id, OrderIds = orderIds, Status = -1 }).Where(x => x.Status != 4).ToList(); var clist = education_ContractRepository.GetList(new RB_Education_Contract_ViewModel() { Group_Id = demodel.Group_Id, OrderIds = orderIds, Status = -1 }).Where(x => x.Status != 4).ToList();
//获取新的业绩提成
//var achList = sell_Achievements_EmpRepository.GetList(new RB_Sell_Achievements_Emp_ViewModel() { Group_Id = demodel.Group_Id, OrderIds = orderIds });
foreach (var item in orderList) foreach (var item in orderList)
{ {
if (item.SourceOrderId > 0) if (item.SourceOrderId > 0)
......
...@@ -336,25 +336,37 @@ namespace Edu.Module.Course ...@@ -336,25 +336,37 @@ namespace Edu.Module.Course
int EnterId = 0; int EnterId = 0;
string EnterName = ""; string EnterName = "";
var empModel = accountRepository.GetEmployeeInfo(userInfo.Id); int SaleId = StuList.FirstOrDefault().CreateBy;
if (empModel.UserRole == UserRoleEnum.MarketPersion) if (SaleId >0)
{ {
EnterId = empModel.Id; //自己负责的
EnterName = empModel.EmployeeName; var empModel = accountRepository.GetEmployeeInfo(SaleId);
} if (empModel.UserRole == UserRoleEnum.MarketPersion)
else {
int SaleId = StuList.FirstOrDefault().CreateBy;
if (SaleId != userInfo.Id)
{ {
//自己负责的 EnterId = empModel.Id;
empModel = accountRepository.GetEmployeeInfo(SaleId); EnterName = empModel.EmployeeName;
if (empModel.UserRole == UserRoleEnum.MarketPersion)
{
EnterId = empModel.Id;
EnterName = empModel.EmployeeName;
}
} }
} }
//2021-12-24 取消
//var empModel = accountRepository.GetEmployeeInfo(userInfo.Id);
//if (empModel.UserRole == UserRoleEnum.MarketPersion)
//{
// EnterId = empModel.Id;
// EnterName = empModel.EmployeeName;
//}
//else {
// int SaleId = StuList.FirstOrDefault().CreateBy;
// if (SaleId != userInfo.Id)
// {
// //自己负责的
// empModel = accountRepository.GetEmployeeInfo(SaleId);
// if (empModel.UserRole == UserRoleEnum.MarketPersion)
// {
// EnterId = empModel.Id;
// EnterName = empModel.EmployeeName;
// }
// }
//}
return new return new
{ {
CustomerId, CustomerId,
......
This diff is collapsed.
...@@ -101,7 +101,8 @@ namespace Edu.Module.Customer ...@@ -101,7 +101,8 @@ namespace Edu.Module.Customer
{nameof(RB_Customer_Extend.WeChatNo),model.WeChatNo }, {nameof(RB_Customer_Extend.WeChatNo),model.WeChatNo },
}; };
flag = customerRepository.Update(fileds, new WhereHelper(nameof(RB_Customer_Extend.CustomerId), model.CustomerId)); flag = customerRepository.Update(fileds, new WhereHelper(nameof(RB_Customer_Extend.CustomerId), model.CustomerId));
if (flag) { if (flag)
{
#region 操作记录 #region 操作记录
string LogContent = "后台修改同业信息:"; string LogContent = "后台修改同业信息:";
if (oldModel.CustomerName != model.CustomerName) if (oldModel.CustomerName != model.CustomerName)
...@@ -112,6 +113,19 @@ namespace Edu.Module.Customer ...@@ -112,6 +113,19 @@ namespace Edu.Module.Customer
{ {
LogContent += "电话由'" + oldModel.ContactNumber + "'修改为'" + model.ContactNumber + "';"; LogContent += "电话由'" + oldModel.ContactNumber + "'修改为'" + model.ContactNumber + "';";
} }
if (oldModel.Fax != model.Fax)
{
LogContent += "传真由'" + oldModel.Fax + "'修改为'" + model.Fax + "';";
}
if (oldModel.QQ != model.QQ)
{
LogContent += "QQ由'" + oldModel.QQ + "'修改为'" + model.QQ + "';";
}
if (oldModel.Email != model.Email)
{
LogContent += "邮箱由'" + oldModel.Email + "'修改为'" + model.Email + "';";
}
if (oldModel.Address != model.Address) if (oldModel.Address != model.Address)
{ {
LogContent += "地址由'" + oldModel.Address + "'修改为'" + model.Address + "';"; LogContent += "地址由'" + oldModel.Address + "'修改为'" + model.Address + "';";
...@@ -128,7 +142,10 @@ namespace Edu.Module.Customer ...@@ -128,7 +142,10 @@ namespace Edu.Module.Customer
{ {
LogContent += "类型由'" + (oldModel.CustomerType == 1 ? "企业" : "学校") + "'修改为'" + (model.CustomerType == 1 ? "企业" : "学校") + "';"; LogContent += "类型由'" + (oldModel.CustomerType == 1 ? "企业" : "学校") + "'修改为'" + (model.CustomerType == 1 ? "企业" : "学校") + "';";
} }
if (oldModel.WeChatNo != model.WeChatNo)
{
LogContent += "微信号由'" + oldModel.WeChatNo + "'修改为'" + model.WeChatNo + "';";
}
//记录操作日志 //记录操作日志
changeLogRepository.Insert(new Model.Entity.Log.RB_User_ChangeLog() changeLogRepository.Insert(new Model.Entity.Log.RB_User_ChangeLog()
{ {
......
...@@ -123,6 +123,10 @@ namespace Edu.Module.Finance ...@@ -123,6 +123,10 @@ namespace Edu.Module.Finance
/// </summary> /// </summary>
private readonly RB_Sell_Commission_DetailsRepository sell_Commission_DetailsRepository = new RB_Sell_Commission_DetailsRepository(); private readonly RB_Sell_Commission_DetailsRepository sell_Commission_DetailsRepository = new RB_Sell_Commission_DetailsRepository();
/// <summary> /// <summary>
/// 业绩提成
/// </summary>
private readonly RB_Sell_Achievements_EmpRepository sell_Achievements_EmpRepository = new RB_Sell_Achievements_EmpRepository();
/// <summary>
/// 学校仓储层对象 /// 学校仓储层对象
/// </summary> /// </summary>
private readonly RB_SchoolRepository schoolRepository = new RB_SchoolRepository(); private readonly RB_SchoolRepository schoolRepository = new RB_SchoolRepository();
...@@ -342,6 +346,7 @@ namespace Edu.Module.Finance ...@@ -342,6 +346,7 @@ namespace Edu.Module.Finance
List<RB_Teaching_Perf_ViewModel> meritsProfitList = new List<RB_Teaching_Perf_ViewModel>(); List<RB_Teaching_Perf_ViewModel> meritsProfitList = new List<RB_Teaching_Perf_ViewModel>();
List<RB_Class_Check_ViewModel> classHoursList = new List<RB_Class_Check_ViewModel>(); List<RB_Class_Check_ViewModel> classHoursList = new List<RB_Class_Check_ViewModel>();
List<RB_Class_Check_ViewModel> classStuList = new List<RB_Class_Check_ViewModel>(); List<RB_Class_Check_ViewModel> classStuList = new List<RB_Class_Check_ViewModel>();
List<RB_Sell_Achievements_Emp_ViewModel> AchDetailList = new List<RB_Sell_Achievements_Emp_ViewModel>();
if (classList.Any()) if (classList.Any())
{ {
string classIds = string.Join(",", classList.Select(x => x.ClassId)); string classIds = string.Join(",", classList.Select(x => x.ClassId));
...@@ -355,6 +360,13 @@ namespace Edu.Module.Finance ...@@ -355,6 +360,13 @@ namespace Edu.Module.Finance
classHoursList = class_CheckRepository.GetClassLearnHoursList(GroupId, classIds); classHoursList = class_CheckRepository.GetClassLearnHoursList(GroupId, classIds);
//查询班级下所有学生的上课金额 //查询班级下所有学生的上课金额
classStuList = class_CheckRepository.GetClassStuLearnMoneyList(GroupId, classIds); classStuList = class_CheckRepository.GetClassStuLearnMoneyList(GroupId, classIds);
#region 查询订单下所有的业绩提成
if (orderAllList.Any())
{
string orderIds = string.Join(",", orderAllList.Select(x => x.OrderId));
AchDetailList = sell_Achievements_EmpRepository.GetList(new RB_Sell_Achievements_Emp_ViewModel() { Group_Id = GroupId, OrderIds = orderIds });
}
#endregion
} }
//排序取消/删除班级 //排序取消/删除班级
var oldlist = edu_RevenueReportRepository.GetList(new RB_Edu_RevenueReport_Extend() { StartTime = STime, EndTime = ETime, DateType = 1, Rb_Group_Id = GroupId }); var oldlist = edu_RevenueReportRepository.GetList(new RB_Edu_RevenueReport_Extend() { StartTime = STime, EndTime = ETime, DateType = 1, Rb_Group_Id = GroupId });
...@@ -421,6 +433,10 @@ namespace Edu.Module.Finance ...@@ -421,6 +433,10 @@ namespace Edu.Module.Finance
demodel.QTShouRu -= cfinanceList.Where(x => x.Is_Cashier == 1 && x.Fee > 0).GroupBy(x => new { x.FrID, x.Fee }).Sum(x => x.Key.Fee ?? 0); demodel.QTShouRu -= cfinanceList.Where(x => x.Is_Cashier == 1 && x.Fee > 0).GroupBy(x => new { x.FrID, x.Fee }).Sum(x => x.Key.Fee ?? 0);
//支出 //支出
demodel.TiCheng = orderList.Where(x => x.IsCommissionGive == 1).Sum(x => x.CommissionMoney + x.ExtraCommissionMoney);//销售提成 demodel.TiCheng = orderList.Where(x => x.IsCommissionGive == 1).Sum(x => x.CommissionMoney + x.ExtraCommissionMoney);//销售提成
var achList = AchDetailList.Where(x => orderList.Select(x => x.OrderId).Contains(x.OrderId)).ToList();
if (achList.Any()) {
demodel.TiCheng += achList.Sum(x => x.GiveOutMoney);// 业绩提成
}
demodel.ClassFee = teacherBonusList.Where(x => x.ClassId == item.ClassId).Sum(x => x.Money);//老师提成 demodel.ClassFee = teacherBonusList.Where(x => x.ClassId == item.ClassId).Sum(x => x.Money);//老师提成
demodel.JiXiaoMoney = meritsProfitList.Where(x => x.ClassId == item.ClassId && x.PerfState == Common.Enum.Course.PerfStateEnum.Confirmed).OrderByDescending(x => x.CreateTime).FirstOrDefault()?.Money ?? 0;//绩效提成 demodel.JiXiaoMoney = meritsProfitList.Where(x => x.ClassId == item.ClassId && x.PerfState == Common.Enum.Course.PerfStateEnum.Confirmed).OrderByDescending(x => x.CreateTime).FirstOrDefault()?.Money ?? 0;//绩效提成
...@@ -2889,6 +2905,19 @@ namespace Edu.Module.Finance ...@@ -2889,6 +2905,19 @@ namespace Edu.Module.Finance
#endregion #endregion
#region 业绩提成
/// <summary>
/// 获取订单提成明细
/// </summary>
/// <param name="orderIds"></param>
/// <param name="group_Id"></param>
/// <returns></returns>
public List<RB_Sell_Achievements_Emp_ViewModel> GetAchListForOrderIds(string orderIds, int group_Id)
{
return sell_Achievements_EmpRepository.GetList(new RB_Sell_Achievements_Emp_ViewModel() { Group_Id = group_Id, OrderIds = orderIds });
}
#endregion
#region 月结窗口 #region 月结窗口
......
...@@ -43,8 +43,6 @@ namespace Edu.Module.User ...@@ -43,8 +43,6 @@ namespace Edu.Module.User
/// </summary> /// </summary>
private readonly AccountModule accountModule = new AccountModule(); private readonly AccountModule accountModule = new AccountModule();
/// <summary> /// <summary>
/// 小程序用户仓储层对象 add by:W 2021-09-15 /// 小程序用户仓储层对象 add by:W 2021-09-15
/// </summary> /// </summary>
...@@ -101,6 +99,12 @@ namespace Edu.Module.User ...@@ -101,6 +99,12 @@ namespace Edu.Module.User
/// </summary> /// </summary>
private readonly RB_NeedsRepository needsRepository = new RB_NeedsRepository(); private readonly RB_NeedsRepository needsRepository = new RB_NeedsRepository();
/// <summary>
/// 学员约访仓储层对象
/// </summary>
private readonly RB_Student_AppointmentRepository student_AppointmentRepository = new RB_Student_AppointmentRepository();
/// <summary> /// <summary>
/// 获取学生列表 /// 获取学生列表
/// </summary> /// </summary>
...@@ -592,20 +596,20 @@ namespace Edu.Module.User ...@@ -592,20 +596,20 @@ namespace Edu.Module.User
var assistList = GetStuAssistListModule(model.StuId); var assistList = GetStuAssistListModule(model.StuId);
var customerModel = customerRepository.GetEntity(model.CustomerId); var customerModel = customerRepository.GetEntity(model.CustomerId);
string searchContent = model.StuTel; string searchContent = model.StuTel + "(学员电话)";
if (type == 2) if (type == 2)
{ {
searchContent = model.QQ; searchContent = model.QQ + "(学员电话)";
} }
if (type == 3) if (type == 3)
{ {
searchContent = model.WeChatNo; searchContent = model.WeChatNo + "(学员微信)";
} }
string createByName = accountModule.GetAccountListExtModule(new RB_Account_ViewModel() string createByName = accountModule.GetAccountListExtModule(new RB_Account_ViewModel()
{ {
Id = model.CreateBy Id = model.CreateBy
})?.FirstOrDefault()?.AccountName ?? ""; })?.FirstOrDefault()?.AccountName ?? "";
string markdownContent = $"`同业查重通知` \n>**概要信息** \n>同业名称:{customerModel?.CustomerName ?? ""}({customerModel?.ContactNumber ?? ""})\n>查询内容:{searchContent} \n>关联学员:{model.StuName}\n>关联学员电话:{model.StuTel}\n>"; string markdownContent = $"`同业查重通知` \n>**概要信息** \n>同业名称:{customerModel?.CustomerName ?? ""}({customerModel?.ContactNumber ?? ""})\n>查询内容:{searchContent} \n>关联学员:{model.StuName}\n>";
markdownContent += $"关联同事:{ createByName}\n> "; markdownContent += $"关联同事:{ createByName}\n> ";
Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel() Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel()
{ {
...@@ -647,6 +651,57 @@ namespace Edu.Module.User ...@@ -647,6 +651,57 @@ namespace Edu.Module.User
{ {
return member_UserRepository.GetMemberUserEntityRepository(query); return member_UserRepository.GetMemberUserEntityRepository(query);
} }
#endregion #endregion
/// <summary>
/// 今日新名单
/// </summary>
/// <returns></returns>
public object GetStudentTodayStaticModule(int createBy)
{
var today = Common.ConvertHelper.FormatDate(DateTime.Now);
//今日新增名单
int todayAdd = studentRepository.GetStudentStaticRepository(createBy.ToString(), today, today)?.FirstOrDefault()?.ClueCount ?? 0;
//今日到访
int todayVisit = student_VisitRepository.GetStudentVisitStaticRepository(new RB_Student_Visit_Extend() { CreateBy = createBy, QueryDate = today })?.Count() ?? 0;
//今日预约
int appointmentCount = student_AppointmentRepository.GetStudentVisitStaticRepository(new RB_Student_Appointment_Extend()
{
CreateBy = createBy,
QueryDate = today
})?.FirstOrDefault()?.AppointmentCount ?? 0;
//今日新增同行
var customerCount = customerRepository.GetCustomerStaticRepository(new RB_Customer_Extend()
{
CreateBy = createBy,
QDate = today
})?.FirstOrDefault()?.CustomerCount ?? 0;
//今日试听
var trialLessonCount = visitor_ReserveRepository.GetVisitorReserveStaticRepository(new Model.ViewModel.Reserve.RB_Visitor_Reserve_Extend()
{
CreateBy = createBy,
QDate = today
})?.FirstOrDefault()?.TrialLessonCount ?? 0;
//未沟通人数
var notCommunicateCount = studentRepository.GetStudentListRepository(new RB_Student_ViewModel()
{
CreateBy = createBy,
StuStage = 1
})?.Count();
object obj = new
{
todayAdd,
todayVisit,
appointmentCount,
customerCount,
trialLessonCount,
notCommunicateCount
};
return obj;
}
} }
} }
...@@ -20,7 +20,7 @@ namespace Edu.Repository.Bonus ...@@ -20,7 +20,7 @@ namespace Edu.Repository.Bonus
/// <param name="rowsCount"></param> /// <param name="rowsCount"></param>
/// <param name="query"></param> /// <param name="query"></param>
/// <returns></returns> /// <returns></returns>
public List<RB_Personnel_BonusLog_Extend> GetPersonnelBonusLogPageRepository(int pageIndex, int pageSize, out long rowsCount, RB_Personnel_BonusLog_Extend query) public List<RB_Personnel_BonusLog_Extend> GetPersonnelBonusLogListRepository(RB_Personnel_BonusLog_Extend query)
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
...@@ -34,6 +34,10 @@ WHERE 1=1 ...@@ -34,6 +34,10 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Personnel_BonusLog_Extend.BonusId), query.BonusId); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Personnel_BonusLog_Extend.BonusId), query.BonusId);
} }
if (!string.IsNullOrEmpty(query.QBonusIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Personnel_BonusLog_Extend.BonusId), query.QBonusIds);
}
if (query.LogType > 0) if (query.LogType > 0)
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Personnel_BonusLog_Extend.LogType), query.LogType); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Personnel_BonusLog_Extend.LogType), query.LogType);
...@@ -42,8 +46,9 @@ WHERE 1=1 ...@@ -42,8 +46,9 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Personnel_BonusLog_Extend.OrderId), query.OrderId); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Personnel_BonusLog_Extend.OrderId), query.OrderId);
} }
} }
return GetPage<RB_Personnel_BonusLog_Extend>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList(); return Get<RB_Personnel_BonusLog_Extend>( builder.ToString()).ToList();
} }
/// <summary> /// <summary>
...@@ -61,7 +66,8 @@ WHERE 1=1 ...@@ -61,7 +66,8 @@ WHERE 1=1
BonusId = BonusId, BonusId = BonusId,
LogType = LogType, LogType = LogType,
OrderId = OrderId, OrderId = OrderId,
LogContent = LogContent LogContent = LogContent,
CreateTime=DateTime.Now,
}; };
var newId = base.Insert(newModel); var newId = base.Insert(newModel);
return newId > 0; return newId > 0;
......
...@@ -36,6 +36,7 @@ WHERE 1=1 ...@@ -36,6 +36,7 @@ WHERE 1=1
"); ");
if (query != null) if (query != null)
{ {
if (query.Group_Id > 0) if (query.Group_Id > 0)
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Personnel_Bonus_Extend.Group_Id), query.Group_Id); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Personnel_Bonus_Extend.Group_Id), query.Group_Id);
...@@ -48,6 +49,10 @@ WHERE 1=1 ...@@ -48,6 +49,10 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Personnel_Bonus_Extend.MonthNum), query.MonthNum); builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Personnel_Bonus_Extend.MonthNum), query.MonthNum);
} }
if (query.PeriodId > 0)
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Personnel_Bonus_Extend.PeriodId), query.PeriodId);
}
} }
return GetPage<RB_Personnel_Bonus_Extend>(pageIndex,pageSize,out rowsCount,builder.ToString()).ToList(); return GetPage<RB_Personnel_Bonus_Extend>(pageIndex,pageSize,out rowsCount,builder.ToString()).ToList();
} }
...@@ -85,6 +90,10 @@ WHERE 1=1 ...@@ -85,6 +90,10 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Personnel_Bonus_Extend.EmployeeId), query.EmployeeId); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Personnel_Bonus_Extend.EmployeeId), query.EmployeeId);
} }
if (!string.IsNullOrEmpty(query.QEmployeeIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Personnel_Bonus_Extend.EmployeeId), query.QEmployeeIds);
}
if (query.PlanType > 0) if (query.PlanType > 0)
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Personnel_Bonus_Extend.PlanType), query.PlanType); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Personnel_Bonus_Extend.PlanType), query.PlanType);
...@@ -93,6 +102,14 @@ WHERE 1=1 ...@@ -93,6 +102,14 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.DeductionMoney<>A.FinishDeductionMoney "); builder.AppendFormat(" AND A.DeductionMoney<>A.FinishDeductionMoney ");
} }
if (query.PeriodId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Personnel_Bonus_Extend.PeriodId), query.PeriodId);
}
if (!string.IsNullOrEmpty(query.QPeriodIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Personnel_Bonus_Extend.PeriodId), query.QPeriodIds);
}
} }
var list= Get<RB_Personnel_Bonus_Extend>(builder.ToString()).ToList(); var list= Get<RB_Personnel_Bonus_Extend>(builder.ToString()).ToList();
if (list != null && list.Count > 0) if (list != null && list.Count > 0)
......
using Edu.Model.Entity.Bonus;
using Edu.Model.ViewModel.Bonus;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Edu.Repository.Bonus
{
/// <summary>
/// 人头奖金发放期数仓储层
/// </summary>
public class RB_Personnel_PeriodRepository : BaseRepository<RB_Personnel_Period>
{
/// <summary>
/// 获取人头奖金期数分页列表
/// </summary>
/// <param name="pageIdex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Personnel_Period_Extend> GetPersonnelPeriodPageRepository(int pageIdex, int pageSize, out long rowsCount, RB_Personnel_Period_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM RB_Personnel_Period AS A
WHERE 1=1
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Personnel_Period_Extend.Group_Id), query.Group_Id);
}
}
builder.AppendFormat(" ORDER BY A.{0} DESC ", nameof(RB_Personnel_Period_Extend.Id));
return GetPage<RB_Personnel_Period_Extend>(pageIdex, pageSize, out rowsCount, builder.ToString()).ToList();
}
}
}
\ No newline at end of file
...@@ -181,5 +181,39 @@ WHERE s.`Status`=0 and s.Group_Id ={group_Id} and s.CustomerId in({customerIds}) ...@@ -181,5 +181,39 @@ WHERE s.`Status`=0 and s.Group_Id ={group_Id} and s.CustomerId in({customerIds})
WHERE o.OrderState in(1,2) and o.Group_Id ={group_Id} and o.CustomerId in({customerIds}) GROUP BY o.CustomerId"; WHERE o.OrderState in(1,2) and o.Group_Id ={group_Id} and o.CustomerId in({customerIds}) GROUP BY o.CustomerId";
return Get<RB_Customer_Extend>(sql).ToList(); return Get<RB_Customer_Extend>(sql).ToList();
} }
/// <summary>
/// 同行统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Customer_Extend> GetCustomerStaticRepository(RB_Customer_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.CreateBy,COUNT(1) AS CustomerCount
FROM RB_Customer AS A
WHERE 1=1
");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Customer_Extend.Status), (int)DateStateEnum.Normal);
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Customer_Extend.Group_Id), query.Group_Id);
}
if (query.CreateBy > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Customer_Extend.CreateBy), query.CreateBy);
}
if (!string.IsNullOrEmpty(query.QDate))
{
//指定日期新增同行数量
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y/%m/%d')= DATE_FORMAT('{1}','%y/%m/%d') ", nameof(RB_Customer_Extend.CreateTime), query.QDate);
}
}
builder.AppendFormat(@" GROUP BY A.CreateBy ");
return Get<RB_Customer_Extend>(builder.ToString()).ToList();
}
} }
} }
...@@ -45,5 +45,45 @@ WHERE 1=1 ...@@ -45,5 +45,45 @@ WHERE 1=1
return GetPage<RB_Student_Appointment_Extend>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList(); return GetPage<RB_Student_Appointment_Extend>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList();
} }
/// <summary>
/// 获取约访统计列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Appointment_Extend> GetStudentVisitStaticRepository(RB_Student_Appointment_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.CreateBy,Count(1) AS AppointmentCount
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)
{
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('{1}','%y/%m/%d') ", nameof(RB_Student_Visit_Extend.CreateTime), Common.ConvertHelper.FormatDate(query.QueryDate));
}
}
builder.AppendFormat(" GROUP BY A.CreateBy ");
return Get<RB_Student_Appointment_Extend>(builder.ToString()).ToList();
}
} }
} }
...@@ -108,6 +108,10 @@ WHERE 1=1 ...@@ -108,6 +108,10 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Student_Visit_Extend.StuId), query.QStuIds); builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Student_Visit_Extend.StuId), query.QStuIds);
} }
if (query.CreateBy > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Visit_Extend.CreateBy), query.CreateBy);
}
if (!string.IsNullOrEmpty(query.QueryDate)) if (!string.IsNullOrEmpty(query.QueryDate))
{ {
//今日到访 //今日到访
......
...@@ -254,5 +254,39 @@ WHERE 1=1 ...@@ -254,5 +254,39 @@ WHERE 1=1
return Get<RB_Visitor_Reserve_Extend>(builder.ToString(), parameters).ToList(); return Get<RB_Visitor_Reserve_Extend>(builder.ToString(), parameters).ToList();
} }
/// <summary>
/// 试听课统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Visitor_Reserve_Extend> GetVisitorReserveStaticRepository(RB_Visitor_Reserve_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.CreateBy,COUNT(1) AS TrialLessonCount
FROM RB_Visitor_Reserve AS A
WHERE 1=1
");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Visitor_Reserve_Extend.Status), (int)DateStateEnum.Normal);
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Visitor_Reserve_Extend.Group_Id), query.Group_Id);
}
if (query.CreateBy > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Visitor_Reserve_Extend.CreateBy), query.CreateBy);
}
if (!string.IsNullOrEmpty(query.QDate))
{
//指定日期的试听课数量
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y/%m/%d')= DATE_FORMAT('{1}','%y/%m/%d') ", nameof(RB_Visitor_Reserve_Extend.CreateTime), query.QDate);
}
}
builder.AppendFormat(@" GROUP BY A.CreateBy ");
return Get<RB_Visitor_Reserve_Extend>(builder.ToString()).ToList();
}
} }
} }
...@@ -1196,7 +1196,7 @@ WHERE 1=1 ...@@ -1196,7 +1196,7 @@ WHERE 1=1
"); ");
builder.AppendFormat(" AND o.OrderState IN({0},{1}) ", (int)OrderStateEnum.Normal, (int)OrderStateEnum.DropOut); builder.AppendFormat(" AND o.OrderState IN({0},{1}) ", (int)OrderStateEnum.Normal, (int)OrderStateEnum.DropOut);
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-11-01' "); builder.AppendFormat(" AND o.CreateTime >= '2021-09-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);
//帐平 //帐平
builder.AppendFormat(" AND o.PreferPrice = (o.Income - o.Refund + o.DiscountMoney + o.PlatformTax) "); builder.AppendFormat(" AND o.PreferPrice = (o.Income - o.Refund + o.DiscountMoney + o.PlatformTax) ");
......
...@@ -45,6 +45,10 @@ namespace Edu.Repository.Sell ...@@ -45,6 +45,10 @@ namespace Edu.Repository.Sell
{ {
where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.ClassId)} ={demodel.ClassId}"; where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.ClassId)} ={demodel.ClassId}";
} }
if (!string.IsNullOrEmpty(demodel.ClassIds))
{
where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.ClassId)} in({demodel.ClassIds})";
}
if (demodel.OrderId > 0) if (demodel.OrderId > 0)
{ {
where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.OrderId)} ={demodel.OrderId}"; where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.OrderId)} ={demodel.OrderId}";
...@@ -115,7 +119,7 @@ namespace Edu.Repository.Sell ...@@ -115,7 +119,7 @@ namespace Edu.Repository.Sell
string sql = $@" select r.*, string sql = $@" select r.*,
(select count(0) from RB_Sell_Achievements_Details r1 where r1.UserId = r.UserId and r1.OrderId = r.OrderId and r1.Id <= r.Id) as IssueNum (select count(0) from RB_Sell_Achievements_Details r1 where r1.UserId = r.UserId and r1.OrderId = r.OrderId and r1.IsDept = r.IsDept and r1.Id <= r.Id) as IssueNum
from RB_Sell_Achievements_Details r where {where} order by r.Id asc"; from RB_Sell_Achievements_Details r where {where} order by r.Id asc";
return Get<RB_Sell_Achievements_Details_ViewModel>(sql).ToList(); return Get<RB_Sell_Achievements_Details_ViewModel>(sql).ToList();
} }
......
...@@ -41,6 +41,10 @@ namespace Edu.Repository.Sell ...@@ -41,6 +41,10 @@ namespace Edu.Repository.Sell
{ {
where += $@" and r.{nameof(RB_Sell_Achievements_Emp_ViewModel.EmpId)} ={demodel.EmpId}"; where += $@" and r.{nameof(RB_Sell_Achievements_Emp_ViewModel.EmpId)} ={demodel.EmpId}";
} }
if (demodel.IsDept > 0)
{
where += $@" and r.{nameof(RB_Sell_Achievements_Emp_ViewModel.IsDept)} ={demodel.IsDept}";
}
if (demodel.PeriodsId > 0) if (demodel.PeriodsId > 0)
{ {
where += $@" and r.{nameof(RB_Sell_Achievements_Emp_ViewModel.PeriodsId)} ={demodel.PeriodsId}"; where += $@" and r.{nameof(RB_Sell_Achievements_Emp_ViewModel.PeriodsId)} ={demodel.PeriodsId}";
...@@ -53,9 +57,109 @@ namespace Edu.Repository.Sell ...@@ -53,9 +57,109 @@ namespace Edu.Repository.Sell
{ {
where += $@" and r.{nameof(RB_Sell_Achievements_Emp_ViewModel.PeriodsId)} >0"; where += $@" and r.{nameof(RB_Sell_Achievements_Emp_ViewModel.PeriodsId)} >0";
} }
if (!string.IsNullOrEmpty(demodel.OrderIds))
{
where += $@" and r.{nameof(RB_Sell_Achievements_Emp_ViewModel.OrderId)} in({demodel.OrderIds})";
}
string sql = $@" select r.* from RB_Sell_Achievements_Emp r where {where} order by r.Id desc"; string sql = $@" select r.* from RB_Sell_Achievements_Emp r where {where} order by r.Id desc";
return Get<RB_Sell_Achievements_Emp_ViewModel>(sql).ToList(); return Get<RB_Sell_Achievements_Emp_ViewModel>(sql).ToList();
} }
/// <summary>
/// 获取分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Sell_Achievements_Emp_ViewModel> GetPageList(int pageIndex,int pageSize,out long count,RB_Sell_Achievements_Emp_ViewModel demodel)
{
string where = $@" 1=1";
if (demodel.Group_Id > 0)
{
where += $@" and r.{nameof(RB_Sell_Achievements_Emp_ViewModel.Group_Id)} ={demodel.Group_Id}";
}
if (demodel.OrderId > 0)
{
where += $@" and r.{nameof(RB_Sell_Achievements_Emp_ViewModel.OrderId)} ={demodel.OrderId}";
}
if (demodel.Type > 0)
{
where += $@" and r.{nameof(RB_Sell_Achievements_Emp_ViewModel.Type)} ={demodel.Type}";
}
if (demodel.EmpId > 0)
{
where += $@" and r.{nameof(RB_Sell_Achievements_Emp_ViewModel.EmpId)} ={demodel.EmpId}";
}
if (demodel.IsDept > 0)
{
where += $@" and r.{nameof(RB_Sell_Achievements_Emp_ViewModel.IsDept)} ={demodel.IsDept}";
}
if (demodel.PeriodsId > 0)
{
where += $@" and r.{nameof(RB_Sell_Achievements_Emp_ViewModel.PeriodsId)} ={demodel.PeriodsId}";
}
if (demodel.GiveOutState > 0)
{
where += $@" and r.{nameof(RB_Sell_Achievements_Emp_ViewModel.GiveOutState)} ={demodel.GiveOutState}";
}
if (demodel.IsSelectNor == 1)
{
where += $@" and r.{nameof(RB_Sell_Achievements_Emp_ViewModel.PeriodsId)} >0";
}
if (!string.IsNullOrEmpty(demodel.OrderIds))
{
where += $@" and r.{nameof(RB_Sell_Achievements_Emp_ViewModel.OrderId)} in({demodel.OrderIds})";
}
string sql = $@" select r.* from RB_Sell_Achievements_Emp r where {where} order by r.OrderId desc";
return GetPage<RB_Sell_Achievements_Emp_ViewModel>(pageIndex, pageSize, out count, sql).ToList();
}
/// <summary>
/// 获取当月业绩(个人)
/// </summary>
/// <param name="empId"></param>
/// <param name="periodsId"></param>
/// <param name="group_Id"></param>
/// <returns></returns>
public RB_Sell_Achievements_Emp_ViewModel GetMonthSaleMoney(int empId, int periodsId, int group_Id)
{
string sql = $@"SELECT MAX(SaleMoney) as SaleMoney,SUM(PushMoney) as PushMoney FROM rb_sell_achievements_emp WHERE Group_Id ={group_Id} and EmpId ={empId} and IsDept =2 and PeriodsId ={periodsId}";
return Get<RB_Sell_Achievements_Emp_ViewModel>(sql).FirstOrDefault();
}
/// <summary>
/// 获取当月新收/续费业绩金额(个人)
/// </summary>
/// <param name="empId"></param>
/// <param name="periodsId"></param>
/// <param name="group_Id"></param>
/// <returns></returns>
public List<RB_Sell_Achievements_Emp_ViewModel> GetMonthNorOrderMoney(int empId, int periodsId, int group_Id)
{
string sql = $@"
SELECT g.RenewState as Type,SUM(e.OrderSaleMoney) as OrderSaleMoney FROM rb_sell_achievements_emp e
INNER JOIN rb_order_guest g on e.OrderId = g.OrderId
WHERE e.Group_Id ={group_Id} and e.EmpId ={empId} and e.IsDept =2 and e.PeriodsId ={periodsId}
GROUP BY g.RenewState";
return Get<RB_Sell_Achievements_Emp_ViewModel>(sql).ToList();
}
/// <summary>
/// 获取用户累计已发提成(个人)
/// </summary>
/// <param name="id"></param>
/// <param name="group_Id"></param>
/// <returns></returns>
public RB_Sell_Achievements_Emp_ViewModel GetEmpTotalCommission(int empId, int group_Id)
{
string sql = $@"SELECT SUM(PushMoney) as PushMoney,SUM(GiveOutMoney) as GiveOutMoney FROM rb_sell_achievements_emp WHERE Group_Id ={group_Id} and EmpId ={empId} and IsDept =2";
return Get<RB_Sell_Achievements_Emp_ViewModel>(sql).FirstOrDefault();
}
} }
} }
...@@ -115,6 +115,14 @@ WHERE 1=1 ...@@ -115,6 +115,14 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND t.{0} in({1}) ", nameof(RB_Student_ViewModel.StuId), query.StuIds); builder.AppendFormat(" AND t.{0} in({1}) ", nameof(RB_Student_ViewModel.StuId), query.StuIds);
} }
if (query.StuStage > 0)
{
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_ViewModel.StuStage), (int)query.StuStage);
}
if (query.CreateBy > 0)
{
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_ViewModel.CreateBy), query.CreateBy);
}
} }
return Get<RB_Student_ViewModel>(builder.ToString(), parameters).ToList(); return Get<RB_Student_ViewModel>(builder.ToString(), parameters).ToList();
} }
...@@ -737,12 +745,12 @@ WHERE 1=1 ...@@ -737,12 +745,12 @@ WHERE 1=1
public List<RB_Student_ViewModel> GetStudentStaticRepository(string createByIds,string startDate,string endDate) public List<RB_Student_ViewModel> GetStudentStaticRepository(string createByIds,string startDate,string endDate)
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT CreateBy,Count(1) AS ClueCount SELECT CreateBy,Count(1) AS ClueCount
FROM RB_Student FROM RB_Student
WHERE Status=0 AND CreateBy IN({0}) and CreateTime>='{1}' and CreateTime<='{2} 23:59:59' WHERE Status=0 AND CreateBy IN({0}) and CreateTime>='{1}' and CreateTime<='{2} 23:59:59'
", createByIds, startDate, endDate); ", createByIds, startDate, endDate);
builder.AppendFormat(" GROUP BY CreateBy ");
var list = Get<RB_Student_ViewModel>(builder.ToString()).ToList(); var list = Get<RB_Student_ViewModel>(builder.ToString()).ToList();
return list; return list;
} }
......
using Edu.Cache.User; using Edu.Cache.User;
using Edu.Common.API; using Edu.Common.API;
using Edu.Common.Plugin; using Edu.Common.Plugin;
using Edu.Model.ViewModel.Bonus;
using Edu.Model.ViewModel.Sell; using Edu.Model.ViewModel.Sell;
using Edu.Module.Course; using Edu.Module.Course;
using Edu.WebApi.Filter; using Edu.WebApi.Filter;
...@@ -26,6 +27,12 @@ namespace Edu.WebApi.Controllers.Bonus ...@@ -26,6 +27,12 @@ namespace Edu.WebApi.Controllers.Bonus
/// </summary> /// </summary>
private readonly BonusConfigModule bonusConfigModule = new BonusConfigModule(); private readonly BonusConfigModule bonusConfigModule = new BonusConfigModule();
/// <summary>
/// 员工人头奖励仓储层对象
/// </summary>
private readonly EmployeeBonusModule employeeBonusModule = AOP.AOPHelper.CreateAOPObject<EmployeeBonusModule>();
#region 人头奖励配置
/// <summary> /// <summary>
/// 获取课程顾问、市场达标奖金配置分页列表 /// 获取课程顾问、市场达标奖金配置分页列表
/// </summary> /// </summary>
...@@ -81,7 +88,7 @@ namespace Edu.WebApi.Controllers.Bonus ...@@ -81,7 +88,7 @@ namespace Edu.WebApi.Controllers.Bonus
var query = new RB_Bonus_PlanExtend() var query = new RB_Bonus_PlanExtend()
{ {
Id = base.ParmJObj.GetInt("Id"), Id = base.ParmJObj.GetInt("Id"),
PlanType=base.ParmJObj.GetInt("PlanType"), PlanType = base.ParmJObj.GetInt("PlanType"),
PlanName = base.ParmJObj.GetStringValue("PlanName"), PlanName = base.ParmJObj.GetStringValue("PlanName"),
BasicSalary = base.ParmJObj.GetDecimal("BasicSalary"), BasicSalary = base.ParmJObj.GetDecimal("BasicSalary"),
OpenBonus = base.ParmJObj.GetDecimal("OpenBonus"), OpenBonus = base.ParmJObj.GetDecimal("OpenBonus"),
...@@ -90,7 +97,7 @@ namespace Edu.WebApi.Controllers.Bonus ...@@ -90,7 +97,7 @@ namespace Edu.WebApi.Controllers.Bonus
SaleIds = base.ParmJObj.GetStringValue("SaleIds"), SaleIds = base.ParmJObj.GetStringValue("SaleIds"),
UseCourseIds = base.ParmJObj.GetStringValue("UseCourseIds"), UseCourseIds = base.ParmJObj.GetStringValue("UseCourseIds"),
NotUseCourseIds = base.ParmJObj.GetStringValue("NotUseCourseIds"), NotUseCourseIds = base.ParmJObj.GetStringValue("NotUseCourseIds"),
MonthGoalMoney=base.ParmJObj.GetDecimal("MonthGoalMoney"), MonthGoalMoney = base.ParmJObj.GetDecimal("MonthGoalMoney"),
}; };
query.CreateBy = base.UserInfo.Id; query.CreateBy = base.UserInfo.Id;
query.UpdateBy = base.UserInfo.Id; query.UpdateBy = base.UserInfo.Id;
...@@ -148,5 +155,124 @@ namespace Edu.WebApi.Controllers.Bonus ...@@ -148,5 +155,124 @@ namespace Edu.WebApi.Controllers.Bonus
var flag = bonusConfigModule.RemoveBonusPlanModule(Id); var flag = bonusConfigModule.RemoveBonusPlanModule(Id);
return flag ? ApiResult.Success() : ApiResult.Failed(); return flag ? ApiResult.Success() : ApiResult.Failed();
} }
#endregion
#region 员工人头奖励
/// <summary>
/// 生成员工人头奖励
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult CreateEmpBonus()
{
var userInfo = base.UserInfo;
var startDate = base.ParmJObj.GetStringValue("StartDate");
bool flag= employeeBonusModule.CreateEmployeeBonusModule(userInfo, out string message, startDate);
return flag ? ApiResult.Success() : ApiResult.Failed(message: message);
}
/// <summary>
/// 订单金额发生改变
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult ChangeOrder()
{
//订单改变
var OrderId = base.ParmJObj.GetInt("OrderId");
employeeBonusModule.ChangeEmployeeBonusModule(OrderId);
return ApiResult.Success();
}
/// <summary>
/// 获取人头奖励分页列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetPersonnelPeriodPage()
{
var pageModel = Common.Plugin.JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var query = new RB_Personnel_Period_Extend()
{
};
query.Group_Id = base.UserInfo.Group_Id;
List<object> result = new List<object>();
var list = employeeBonusModule.GetPersonnelPeriodPageModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
foreach (var item in list)
{
string CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? "";
result.Add(new
{
item.Id,
item.Name,
item.Periods,
item.SumPrice,
item.Remark,
CreateByName,
item.Financials,
CreateTime = Common.ConvertHelper.FormatTime(item.CreateTime),
item.BonusList,
});
}
pageModel.Count = rowsCount;
pageModel.PageData = result;
return ApiResult.Success(data: pageModel);
}
/// <summary>
/// 获取员工期数提成明细
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetPersonnelPeriodDetails()
{
var pageModel = Common.Plugin.JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var query = new RB_Personnel_Bonus_Extend()
{
PeriodId = base.ParmJObj.GetInt("PeriodId")
};
query.Group_Id = base.UserInfo.Group_Id;
List<object> result = new List<object>();
var list = employeeBonusModule.GetPersonnelBonusPageModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
foreach (var item in list)
{
string EmployeeName = UserReidsCache.GetUserLoginInfo(item.EmployeeId)?.AccountName ?? "";
string CreateByName= UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? "";
result.Add(new
{
item.Id,
item.PeriodId,
item.PlanId,
item.PlanType,
item.YearNum,
item.MonthNum,
item.EmployeeId,
EmployeeName,
item.CurGuestNum,
item.CurRewardMoney,
item.CurOrderMoney,
item.DeductionMoney,
item.FinishDeductionMoney,
item.CreateBy,
CreateByName,
CreateTime=Common.ConvertHelper.FormatTime(item.CreateTime),
item.IsReach,
IsReachStr= item.IsReach==1?"已达标":"未达标",
item.OpenBonus,
item.ClueNumSalary,
item.BeforeMoney,
item.DetailList,
item.DeductionList,
item.BonusLogList,
});
}
pageModel.Count = rowsCount;
pageModel.PageData = result;
return ApiResult.Success(data: pageModel);
}
#endregion
} }
} }
...@@ -586,6 +586,80 @@ namespace Edu.WebApi.Controllers.Course ...@@ -586,6 +586,80 @@ namespace Edu.WebApi.Controllers.Course
} }
} }
/// <summary>
/// 获取应发提成变更记录
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetSellAchievementsChangeLog() {
var userInfo = base.UserInfo;
JObject parms = JObject.Parse(RequestParm.Msg.ToString());
int OrderId = parms.GetInt("OrderId", 0);
int UserId = parms.GetInt("UserId", 0);
int UserType = parms.GetInt("UserType", 0);
int IsDept = parms.GetInt("IsDept", 0);
if (OrderId <= 0 || UserId <= 0 || UserType <= 0 || IsDept <= 0) {
return ApiResult.ParamIsNull();
}
var Robj = sellAchievementsModule.GetSellAchievementsChangeLog(OrderId, UserId, UserType, IsDept, userInfo.Group_Id, out string msg);
if (msg == "")
{
return ApiResult.Success("", Robj);
}
else {
return ApiResult.Failed(msg);
}
}
#endregion
#region 销售中心
/// <summary>
/// 获取市场中心业绩提成
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetSellCenterAchievementsStatistics() {
var userInfo = base.UserInfo;
JObject parms = JObject.Parse(base.RequestParm.Msg.ToString());
string Month = parms.GetStringValue("Month");
if (string.IsNullOrEmpty(Month)) {
return ApiResult.ParamIsNull();
}
Month = Convert.ToDateTime(Month).ToString("yyyy-MM");
var Robj = sellAchievementsModule.GetSellCenterAchievementsStatistics(Month, userInfo);
return ApiResult.Success("", Robj);
}
/// <summary>
/// 获取业绩发放明细分页列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetAchievementsEmpPageList() {
var userInfo = base.UserInfo;
ResultPageModel pmodel = JsonHelper.DeserializeObject<ResultPageModel>(base.RequestParm.Msg.ToString());
RB_Sell_Achievements_Emp_ViewModel demodel = JsonHelper.DeserializeObject<RB_Sell_Achievements_Emp_ViewModel>(base.RequestParm.Msg.ToString());
demodel.Group_Id = userInfo.Group_Id;
demodel.EmpId = userInfo.Id;
demodel.IsDept = 2;//非部门的
var list = sellAchievementsModule.GetAchievementsEmpPageList(pmodel.PageIndex, pmodel.PageSize, out long count, demodel);
pmodel.Count = Convert.ToInt32(count);
pmodel.PageData = list.Select(x => new
{
x.Id,
x.OrderId,
x.Rate,
x.PushMoney,
x.GiveOutMoney,
x.SaleMoney,
x.Remark
});
return ApiResult.Success("", pmodel);
}
#endregion #endregion
} }
} }
...@@ -154,6 +154,13 @@ namespace Edu.WebApi.Controllers.Finance ...@@ -154,6 +154,13 @@ namespace Edu.WebApi.Controllers.Finance
//提成 //提成
decimal SaleCommission = (orderList != null && orderList.Any()) ? orderList.Where(x => x.IsCommissionGive == 1).Sum(x => x.CommissionMoney + x.ExtraCommissionMoney) : 0;//销售提成 decimal SaleCommission = (orderList != null && orderList.Any()) ? orderList.Where(x => x.IsCommissionGive == 1).Sum(x => x.CommissionMoney + x.ExtraCommissionMoney) : 0;//销售提成
if (orderList.Any()) {
string OrderIds = string.Join(",", orderList.Select(x => x.OrderId));
var achList = financeModule.GetAchListForOrderIds(OrderIds, base.UserInfo.Group_Id);
if (achList.Any()) {
SaleCommission += achList.Sum(x => x.GiveOutMoney);// 业绩提成
}
}
decimal TeacherProfitNow = 0, MeritsProfit = 0; decimal TeacherProfitNow = 0, MeritsProfit = 0;
if (classId > 0) if (classId > 0)
......
...@@ -57,21 +57,6 @@ namespace Edu.WebApi.Controllers.User ...@@ -57,21 +57,6 @@ namespace Edu.WebApi.Controllers.User
[AllowAnonymous] [AllowAnonymous]
public ApiResult Test() public ApiResult Test()
{ {
//new DutyPlanModule().TransVisitorToStu();
var userInfo = base.UserInfo;
var startDate = base.ParmJObj.GetStringValue("StartDate");
employeeBonusModule.CreateEmployeeBonusModule(100000, startDate);
return ApiResult.Success();
}
[HttpGet]
[HttpPost]
[AllowAnonymous]
public ApiResult ChenageOrder()
{
var OrderId = base.ParmJObj.GetInt("OrderId");
employeeBonusModule.ChangeEmployeeBonusModule(OrderId);
return ApiResult.Success(); return ApiResult.Success();
} }
......
...@@ -14,6 +14,7 @@ using Edu.Common.Plugin; ...@@ -14,6 +14,7 @@ using Edu.Common.Plugin;
using Edu.Model.CacheModel; using Edu.Model.CacheModel;
using Edu.Model.Public; using Edu.Model.Public;
using Edu.Model.ViewModel.User; using Edu.Model.ViewModel.User;
using Edu.Module.Course;
using Edu.Module.User; using Edu.Module.User;
using Edu.WebApi.Filter; using Edu.WebApi.Filter;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
...@@ -57,6 +58,16 @@ namespace Edu.WebApi.Controllers.User ...@@ -57,6 +58,16 @@ namespace Edu.WebApi.Controllers.User
/// </summary> /// </summary>
private readonly AccountModule accountModule = new AccountModule(); private readonly AccountModule accountModule = new AccountModule();
/// <summary>
/// 学员处理类对象
/// </summary>
private readonly StudentModule studentModule = new StudentModule();
/// <summary>
/// 员工人头奖励处理类对象
/// </summary>
private readonly EmployeeBonusModule employeeBonusModule = new EmployeeBonusModule();
#region 字典管理 #region 字典管理
/// <summary> /// <summary>
...@@ -2474,5 +2485,34 @@ namespace Edu.WebApi.Controllers.User ...@@ -2474,5 +2485,34 @@ namespace Edu.WebApi.Controllers.User
return ApiResult.Success("获取成功", data: result); return ApiResult.Success("获取成功", data: result);
} }
#endregion #endregion
#region 用户中心 学员和奖金统计
/// <summary>
/// 人员统计
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult PersonnelStatic()
{
var obj = studentModule.GetStudentTodayStaticModule(base.UserInfo.Id);
return ApiResult.Success(data: obj);
}
/// <summary>
/// 人员奖励统计
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult PersonnelBonusStatic()
{
int Type = base.ParmJObj.GetInt("Type");
int Year = base.ParmJObj.GetInt("Year");
int Month = base.ParmJObj.GetInt("Month");
var obj = employeeBonusModule.GetEmpBonusStaticModule(base.UserInfo, Type,Year, Month);
return ApiResult.Success(data: obj);
}
#endregion
} }
} }
\ 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