Commit b6b905ae authored by 吴春's avatar 吴春

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

parents 9d4b991f 7244a907
using Edu.Common.Enum;
using Edu.Common.Enum.Course;
using System;
using VT.FW.DB;
namespace Edu.Model.Entity.Course
{
/// <summary>
/// 活动配置实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Activity_Config
{
/// <summary>
/// id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 类型 1按人头 2百分比
/// </summary>
public int Type { get; set; }
/// <summary>
/// 提成金额/比例
/// </summary>
public decimal CommissionMoney { get; set; }
/// <summary>
/// 删除状态
/// </summary>
public int Status { get; set; }
/// <summary>
/// 集团id
/// </summary>
public int Group_Id { 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; }
}
}
using Edu.Common.Enum;
using Edu.Common.Enum.Course;
using System;
using VT.FW.DB;
namespace Edu.Model.Entity.Course
{
/// <summary>
/// 活动期数实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Activity_Periods
{
/// <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; }
}
}
using Edu.Common.Enum;
using Edu.Common.Enum.Course;
using System;
using VT.FW.DB;
namespace Edu.Model.Entity.Course
{
/// <summary>
/// 活动期数明细实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Activity_PeriodsDetail
{
/// <summary>
/// 编号
/// </summary>
public int Id { get; set; }
/// <summary>
/// 关联用户
/// </summary>
public int UserId { get; set; }
/// <summary>
/// 活动id
/// </summary>
public int ActivityId { get; set; }
/// <summary>
/// 订单ID
/// </summary>
public int OrderId { get; set; }
/// <summary>
/// 提成金额
/// </summary>
public decimal CommissionMoney { get; set; }
/// <summary>
/// 期数id
/// </summary>
public int PeriodId { get; set; }
/// <summary>
/// 期号
/// </summary>
public string Periods { get; set; }
/// <summary>
/// 部门id
/// </summary>
public int Depart_Id { get; set; }
/// <summary>
/// 校区id
/// </summary>
public int School_Id { get; set; }
/// <summary>
/// 集团id
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 电商报名用户Id
/// </summary>
public int DSUserId { get; set; }
/// <summary>
/// 电商报名用户名称
/// </summary>
public string DSUserName { get; set; }
/// <summary>
/// 活动名称
/// </summary>
public string ActivityName { get; set; }
/// <summary>
/// 提成类型 1人头 2比例
/// </summary>
public int CType { get; set; }
/// <summary>
/// 提成金额/比例
/// </summary>
public decimal CMoney { get; set; }
/// <summary>
/// 活动时间
/// </summary>
public DateTime ActivityTime { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
using Edu.Common.Enum.Sale;
using Edu.Model.Entity.Course;
namespace Edu.Model.ViewModel.Course
{
/// <summary>
/// 活动配置视图实体类
/// </summary>
public class RB_Activity_PeriodsDetail_ViewModel : RB_Activity_PeriodsDetail
{
/// <summary>
/// 用户ids
/// </summary>
public string UserIds { get; set; }
/// <summary>
/// 订单ids
/// </summary>
public string OrderIds { get; set; }
/// <summary>
/// 用户名称
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 部门名称
/// </summary>
public string DeptName { get; set; }
/// <summary>
/// 校区名称
/// </summary>
public string SchoolName { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
using Edu.Common.Enum.Sale;
using Edu.Model.Entity.Course;
namespace Edu.Model.ViewModel.Course
{
/// <summary>
/// 活动期数视图实体类
/// </summary>
public class RB_Activity_Periods_ViewModel : RB_Activity_Periods
{
}
}
using System;
using System.Collections.Generic;
using System.Text;
using Edu.Common.Enum.Sale;
using Edu.Model.Entity.Course;
namespace Edu.Model.ViewModel.Course
{
/// <summary>
/// 活动配置视图实体类
/// </summary>
public class RB_Activity_Config_ViewModel : RB_Activity_Config
{
}
}
...@@ -247,5 +247,11 @@ namespace Edu.Model.ViewModel.Course ...@@ -247,5 +247,11 @@ namespace Edu.Model.ViewModel.Course
/// 上课计划id /// 上课计划id
/// </summary> /// </summary>
public int ClassPlanId { get; set; } public int ClassPlanId { get; set; }
/// <summary>
/// 合同总课时
/// </summary>
public int ContractTotalHours { get; set; }
} }
} }
\ No newline at end of file
using Edu.AOP.CustomerAttribute; using Edu.AOP.CustomerAttribute;
using Edu.Cache.User;
using Edu.Common.Enum; using Edu.Common.Enum;
using Edu.Common.Enum.Course; using Edu.Common.Enum.Course;
using Edu.Common.Plugin; using Edu.Common.Plugin;
...@@ -1279,7 +1280,7 @@ namespace Edu.Module.Course ...@@ -1279,7 +1280,7 @@ namespace Edu.Module.Course
/// </summary> /// </summary>
/// <param name="classId">班级编号</param> /// <param name="classId">班级编号</param>
/// <returns></returns> /// <returns></returns>
public object GetClassStudentListModule(int classId, int school_Id, int group_Id, int ClassTimeId, int QEffectStatus = 0) public object GetClassStudentListModule(int classId, int school_Id, int group_Id, int ClassTimeId, int QEffectStatus = 0,int QNoFinish=0)
{ {
List<object> list = new List<object>(); List<object> list = new List<object>();
var orderStudentList = order_GuestRepository.GetOrderGuestListRepository(new RB_Order_Guest_ViewModel() var orderStudentList = order_GuestRepository.GetOrderGuestListRepository(new RB_Order_Guest_ViewModel()
...@@ -1302,6 +1303,10 @@ namespace Edu.Module.Course ...@@ -1302,6 +1303,10 @@ namespace Edu.Module.Course
var classTimeModel = class_TimeRepository.GetClassTimeList_V2(new RB_Class_Time_ViewModel { ClassTimeId = ClassTimeId, Group_Id = group_Id }).FirstOrDefault(); var classTimeModel = class_TimeRepository.GetClassTimeList_V2(new RB_Class_Time_ViewModel { ClassTimeId = ClassTimeId, Group_Id = group_Id }).FirstOrDefault();
orderStudentList = orderStudentList.Where(x => x.GuestState == 1 || x.GuestState == 6 || ((x.GuestState == 5 || x.GuestState == 7) && x.ChangeEffectTime.HasValue && Convert.ToDateTime(Common.ConvertHelper.FormatDate(x.ChangeEffectTime)) >= Convert.ToDateTime(Common.ConvertHelper.FormatDate(classTimeModel.NewPlanDateTime)))).ToList(); orderStudentList = orderStudentList.Where(x => x.GuestState == 1 || x.GuestState == 6 || ((x.GuestState == 5 || x.GuestState == 7) && x.ChangeEffectTime.HasValue && Convert.ToDateTime(Common.ConvertHelper.FormatDate(x.ChangeEffectTime)) >= Convert.ToDateTime(Common.ConvertHelper.FormatDate(classTimeModel.NewPlanDateTime)))).ToList();
} }
if (QNoFinish == 1)
{
orderStudentList = orderStudentList.Where(qitem => qitem.GuestState == 1&&(qitem.TotalHours-qitem.CompleteHours)>0).ToList();
}
if (orderStudentList != null && orderStudentList.Count > 0) if (orderStudentList != null && orderStudentList.Count > 0)
{ {
foreach (var item in orderStudentList) foreach (var item in orderStudentList)
...@@ -1321,6 +1326,13 @@ namespace Edu.Module.Course ...@@ -1321,6 +1326,13 @@ namespace Edu.Module.Course
CreateTimeStr = Common.ConvertHelper.FormatTime(item.CreateTime), CreateTimeStr = Common.ConvertHelper.FormatTime(item.CreateTime),
item.Mobile, item.Mobile,
item.OrderId, item.OrderId,
EnterName= UserReidsCache.GetUserLoginInfo(item.EnterID)?.AccountName??"",
item.ContractTotalHours,
item.TotalHours,
item.CompleteHours,
item.ValidClassHours,
SurplusHours=item.TotalHours-item.CompleteHours,
item.MakeUpHours,
ClassHours = item.CompleteHours + "-" + (classModel?.ClassHours ?? 0), ClassHours = item.CompleteHours + "-" + (classModel?.ClassHours ?? 0),
IsRenew = item.IsRenewOrder, IsRenew = item.IsRenewOrder,
item.RenewOrderId, item.RenewOrderId,
......
...@@ -90,16 +90,13 @@ namespace Edu.Module.Course ...@@ -90,16 +90,13 @@ namespace Edu.Module.Course
backNum = totalBackCount.ToString(); backNum = totalBackCount.ToString();
} }
//基础课时分钟数
var BasicMinutes = class_ConfigRepository.GetClassMinutesRepository(orderModel.ClassId);
var stuCheckList = class_CheckRepository.GetGuestFinishMinutesRepository(GuestId.ToString()); var stuCheckList = class_CheckRepository.GetGuestFinishMinutesRepository(GuestId.ToString());
//总签到上课分钟数
var totalFinishMinutes = stuCheckList?.Sum(qitem => qitem.FinishMinutes) ?? 0;
//完成课时数 //完成课时数
var FinishHours = Convert.ToInt32(totalFinishMinutes) / BasicMinutes; var FinishHours = stuCheckList?.Sum(qitem => qitem.FinishClassHours) ?? 0;
//课时单价 //课时单价
var classHourPrice = Math.Round(orderModel.PreferPrice / orderModel.GuestNum / classModel.ClassHours, 2); var classHourPrice = orderModel.PreferPrice / orderModel.GuestNum / classModel.ClassHours;
//预计退款金额 //预计退款金额
decimal backMoney =0; decimal backMoney =0;
//backMoney = (classModel.ClassHours - FinishHours) * classHourPrice; //backMoney = (classModel.ClassHours - FinishHours) * classHourPrice;
...@@ -116,7 +113,7 @@ namespace Edu.Module.Course ...@@ -116,7 +113,7 @@ namespace Edu.Module.Course
ClassId = orderModel.ClassId, ClassId = orderModel.ClassId,
CreateBy = userinfo.Id, CreateBy = userinfo.Id,
CreateTime = DateTime.Now, CreateTime = DateTime.Now,
FinishHours = FinishHours, FinishHours = Convert.ToInt32(FinishHours),
Group_Id = userinfo.Group_Id, Group_Id = userinfo.Group_Id,
GuestId = GuestId, GuestId = GuestId,
SchoolId = guestModel.School_Id, SchoolId = guestModel.School_Id,
......
...@@ -31,8 +31,6 @@ namespace Edu.Module.Course ...@@ -31,8 +31,6 @@ namespace Edu.Module.Course
/// </summary> /// </summary>
private readonly RB_Student_BackClassRepository student_BackClassRepository = new RB_Student_BackClassRepository(); private readonly RB_Student_BackClassRepository student_BackClassRepository = new RB_Student_BackClassRepository();
/// <summary> /// <summary>
/// 旅客表仓储层对象 /// 旅客表仓储层对象
/// </summary> /// </summary>
...@@ -53,23 +51,16 @@ namespace Edu.Module.Course ...@@ -53,23 +51,16 @@ namespace Edu.Module.Course
/// </summary> /// </summary>
private readonly RB_SchoolRepository schoolRepository = new RB_SchoolRepository(); private readonly RB_SchoolRepository schoolRepository = new RB_SchoolRepository();
/// <summary> /// <summary>
/// 日志 /// 日志
/// </summary> /// </summary>
private readonly RB_User_ChangeLogRepository changeLogRepository = new RB_User_ChangeLogRepository(); private readonly RB_User_ChangeLogRepository changeLogRepository = new RB_User_ChangeLogRepository();
/// <summary>
/// 班级基础配置表仓储层对象
/// </summary>
private readonly RB_Class_ConfigRepository class_ConfigRepository = new RB_Class_ConfigRepository();
/// <summary> /// <summary>
/// 学员签到仓储层对象 /// 学员签到仓储层对象
/// </summary> /// </summary>
private readonly RB_Class_CheckRepository class_CheckRepository = new RB_Class_CheckRepository(); private readonly RB_Class_CheckRepository class_CheckRepository = new RB_Class_CheckRepository();
/// <summary> /// <summary>
/// 学员事件记录仓储层 /// 学员事件记录仓储层
/// </summary> /// </summary>
...@@ -98,21 +89,20 @@ namespace Edu.Module.Course ...@@ -98,21 +89,20 @@ namespace Edu.Module.Course
public object GetBackBillMoneyModule(int BackId) public object GetBackBillMoneyModule(int BackId)
{ {
var backModel = student_BackClassRepository.GetEntity(BackId); var backModel = student_BackClassRepository.GetEntity(BackId);
var guestModel = order_GuestRepository.GetEntity(backModel.GuestId);
var orderModel = orderRepository.GetEntity(backModel.OrderId); var orderModel = orderRepository.GetEntity(backModel.OrderId);
//班级实体类 //班级实体类
var classModel = classRepository.GetEntity(backModel.ClassId); var classModel = classRepository.GetEntity(backModel.ClassId);
//基础课时分钟数
var BasicMinutes = class_ConfigRepository.GetClassMinutesRepository(backModel.ClassId);
var stuCheckList = class_CheckRepository.GetGuestFinishMinutesRepository(backModel.GuestId.ToString()); var stuCheckList = class_CheckRepository.GetGuestFinishMinutesRepository(backModel.GuestId.ToString());
//总签到上课分钟数
var totalFinishMinutes = stuCheckList?.Sum(qitem => qitem.FinishMinutes) ?? 0;
//完成课时数 //完成课时数
var FinishHours = Convert.ToInt32(totalFinishMinutes) / BasicMinutes; var FinishHours = stuCheckList?.Sum(qitem => qitem.FinishClassHours) ?? 0;
//课时单价 //课时单价
var classHourPrice = Math.Round(orderModel.PreferPrice / orderModel.GuestNum / classModel.ClassHours, 2); var classHourPrice = orderModel.PreferPrice / orderModel.GuestNum / classModel.ClassHours;
//预计退款金额 //预计退款金额
var backMoney = (classModel.ClassHours - FinishHours) * classHourPrice; decimal backMoney = 0;
//违约金
decimal breakContractPrice = (classModel.ClassHours - FinishHours) * classHourPrice * Convert.ToDecimal(0.1);
backMoney = (orderModel.Income + orderModel.PlatformTax) - FinishHours * classHourPrice - breakContractPrice;
var obj = new var obj = new
{ {
orderModel.PreferPrice, orderModel.PreferPrice,
......
using System;
using System.Collections.Generic;
using System.Linq;
using Edu.Common;
using Edu.Common.API;
using Edu.Common.Enum.Finance;
using Edu.Common.Plugin;
using Edu.Model.CacheModel;
using Edu.Model.Entity.Finance;
using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.Finance;
using Edu.Model.ViewModel.User;
using Edu.Repository.Course;
using Edu.Repository.Finance;
using Edu.Repository.StudyAbroad;
using Edu.Repository.User;
using VT.FW.DB;
namespace Edu.Module.Finance
{
/// <summary>
/// 活动处理类
/// </summary>
public class ActivityModule
{
/// <summary>
/// 活动配置
/// </summary>
private readonly RB_Activity_ConfigRepository activity_ConfigRepository = new RB_Activity_ConfigRepository();
/// <summary>
/// 提成期数
/// </summary>
private readonly RB_Activity_PeriodsRepository activity_PeriodsRepository = new RB_Activity_PeriodsRepository();
/// <summary>
/// 提成期数明细
/// </summary>
private readonly RB_Activity_PeriodsDetailRepository activity_PeriodsDetailRepository = new RB_Activity_PeriodsDetailRepository();
/// <summary>
/// 财务
/// </summary>
private readonly RB_FinanceRepository financeRepository = new RB_FinanceRepository();
/// <summary>
/// 账户
/// </summary>
private readonly RB_AccountRepository accountRepository = new RB_AccountRepository();
/// <summary>
/// 部门
/// </summary>
private readonly RB_DepartmentRepository departmentRepository = new RB_DepartmentRepository();
/// <summary>
/// 校区
/// </summary>
private readonly RB_SchoolRepository schoolRepository = new RB_SchoolRepository();
#region 活动配置
/// <summary>
/// 获取活动配置列表
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public RB_Activity_Config_ViewModel GetActivityConfigModel(RB_Activity_Config_ViewModel model)
{
var dmodel = activity_ConfigRepository.GetList(model).FirstOrDefault();
if (dmodel == null) { dmodel = new RB_Activity_Config_ViewModel(); }
return dmodel;
}
/// <summary>
/// 新增/修改活动配置
/// </summary>
/// <param name="demdoel"></param>
/// <returns></returns>
public string SetActivityConfig(RB_Activity_Config_ViewModel demdoel)
{
if (demdoel.Id > 0)
{
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Activity_Config_ViewModel.Type),demdoel.Type},
{ nameof(RB_Activity_Config_ViewModel.CommissionMoney),demdoel.CommissionMoney},
{ nameof(RB_Activity_Config_ViewModel.UpdateBy),demdoel.UpdateBy},
{ nameof(RB_Activity_Config_ViewModel.UpdateTime),demdoel.UpdateTime},
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Activity_Config_ViewModel.Id),
FiledValue=demdoel.Id,
OperatorEnum=OperatorEnum.Equal
}
};
bool flag = activity_ConfigRepository.Update(keyValues, wheres);
return flag ? "" : "出错了,请联系管理员";
}
else {
bool flag = activity_ConfigRepository.Insert(demdoel) > 0;
return flag ? "" : "出错了,请联系管理员";
}
}
#endregion
#region 活动提成
/// <summary>
/// 获取列表
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Activity_Periods_ViewModel> GetActivityCommissionPeriodsList(RB_Activity_Periods_ViewModel dmodel)
{
return activity_PeriodsRepository.GetList(dmodel);
}
/// <summary>
/// 获取提成期数分页类别
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Activity_Periods_ViewModel> GetActivityCommissionPeriodsPageList(int pageIndex, int pageSize, out long count, RB_Activity_Periods_ViewModel dmodel)
{
var list = activity_PeriodsRepository.GetPageList(pageIndex, pageSize, out count, dmodel);
if (list.Any())
{
//查询财务单据
string periodsIds = string.Join(",", list.Select(x => x.Id));
var financeList = financeRepository.GetListSingle(new RB_Finance_Extend() { RB_Group_Id = dmodel.Group_Id, FinanceType = 2, OtherType = 42, ReFinanceIds = periodsIds, IsSelectNormal = 1 });
foreach (var item in list)
{
var flist = financeList.Where(x => x.ReFinanceId == item.Id).Select(x => x.FrID);
if (flist.Any())
{
item.Financials = string.Join(",", flist);
}
}
}
return list;
}
/// <summary>
/// 获取用户提成列表
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Activity_PeriodsDetail_ViewModel> GetActivityCommissionUserList(RB_Activity_PeriodsDetail_ViewModel dmodel)
{
var list = activity_PeriodsDetailRepository.GetActivityCommissionUserList(dmodel);
if (list.Any())
{
//查询用户 部门 校区
string userIds = string.Join(",", list.Select(x => x.UserId).Distinct());
string deptIds = string.Join(",", list.Select(x => x.Depart_Id).Distinct());
string schoolIds = string.Join(",", list.Select(x => x.School_Id).Distinct());
var ulist = accountRepository.GetEmployeeListRepository(new Employee_ViewModel() { Group_Id = dmodel.Group_Id, QIds = userIds });
var dlist = departmentRepository.GetDepartmentListRepository(new RB_Department_ViewModel() { Group_Id = dmodel.Group_Id, QDeptIds = deptIds });
var slist = schoolRepository.GetSchoolListRepository(new RB_School_ViewModel() { Group_Id = dmodel.Group_Id, QSIds = schoolIds });
foreach (var item in list)
{
var umodel = ulist.Where(x => x.Id == item.UserId).FirstOrDefault();
item.UserName = umodel.EmployeeName + (umodel.LeaveStatus == Common.Enum.User.LeaveStatusEnum.Departure ? "离职" : "");
item.DeptName = dlist.Where(x => x.DeptId == item.Depart_Id).FirstOrDefault()?.DeptName ?? "";
item.SchoolName = slist.Where(x => x.SId == item.School_Id).FirstOrDefault()?.SName ?? "";
}
}
return list;
}
/// <summary>
/// 获取用户提成明细列表
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Activity_PeriodsDetail_ViewModel> GetActivityCommissionUserDetailList(RB_Activity_PeriodsDetail_ViewModel dmodel)
{
var list = activity_PeriodsDetailRepository.GetList(dmodel);
if (list.Any())
{
//查询用户 部门 校区
string userIds = string.Join(",", list.Select(x => x.UserId).Distinct());
string deptIds = string.Join(",", list.Select(x => x.Depart_Id).Distinct());
string schoolIds = string.Join(",", list.Select(x => x.School_Id).Distinct());
var ulist = accountRepository.GetEmployeeListRepository(new Employee_ViewModel() { Group_Id = dmodel.Group_Id, QIds = userIds });
var dlist = departmentRepository.GetDepartmentListRepository(new RB_Department_ViewModel() { Group_Id = dmodel.Group_Id, QDeptIds = deptIds });
var slist = schoolRepository.GetSchoolListRepository(new RB_School_ViewModel() { Group_Id = dmodel.Group_Id, QSIds = schoolIds });
foreach (var item in list)
{
var umodel = ulist.Where(x => x.Id == item.UserId).FirstOrDefault();
item.UserName = umodel.EmployeeName + (umodel.LeaveStatus == Common.Enum.User.LeaveStatusEnum.Departure ? "离职" : "");
item.DeptName = dlist.Where(x => x.DeptId == item.Depart_Id).FirstOrDefault()?.DeptName ?? "";
item.SchoolName = slist.Where(x => x.SId == item.School_Id).FirstOrDefault()?.SName ?? "";
}
}
return list;
}
/// <summary>
/// 获取未发放提成用户列表 + 提成金额
/// </summary>
/// <param name="periodId"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
public object GetActivityCommissionSendEmployeeList(int periodId, UserInfo userInfo)
{
var model = activity_PeriodsRepository.GetEntity(periodId);
if (model == null) { return "周期不存在"; }
List<int> EmpIdList = new List<int>();
if (!string.IsNullOrEmpty(model.EmpIds))
{
EmpIdList = JsonHelper.DeserializeObject<List<int>>("[" + model.EmpIds + "]");
}
var list = GetActivityCommissionUserList(new RB_Activity_PeriodsDetail_ViewModel() { Group_Id = userInfo.Group_Id, PeriodId = periodId });
return ApiResult.Success("", list.Select(x => new
{
x.UserId,
x.UserName,
x.CommissionMoney,
IsGiveOut = EmpIdList.Contains(x.UserId) ? 1 : 2
}));
}
/// <summary>
/// 设置发放提成
/// </summary>
/// <param name="periodId"></param>
/// <param name="empIds"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
public string SetActivityCommissionSendEmployee(int periodId, string empIds, UserInfo userInfo)
{
var model = activity_PeriodsRepository.GetEntity(periodId);
if (model == null) { return "周期不存在"; }
if (model.Group_Id != userInfo.Group_Id) { return "集团不正确"; }
List<int> EmpIdList = new List<int>();
if (!string.IsNullOrEmpty(model.EmpIds))
{
EmpIdList = JsonHelper.DeserializeObject<List<int>>("[" + model.EmpIds + "]");
}
List<int> NewIdList = JsonHelper.DeserializeObject<List<int>>("[" + empIds + "]");
foreach (var item in NewIdList)
{
if (EmpIdList.Contains(item))
{
return "用户ID" + item + "已发放了提成,无法重复发放";
}
}
EmpIdList.AddRange(NewIdList);
string empids2 = string.Join(",", EmpIdList);
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Activity_Periods_ViewModel.EmpIds),empids2}
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName= nameof(RB_Activity_Periods_ViewModel.Id),
FiledValue=periodId,
OperatorEnum=OperatorEnum.Equal
}
};
bool flag = activity_PeriodsRepository.Update(keyValues, wheres);
return flag ? "" : "出错了,请联系管理员";
}
/// <summary>
/// 获取提成统计
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Activity_PeriodsDetail_ViewModel> GetActivityCommissionStatisticsPageList(int pageIndex, int pageSize, out long count, RB_Activity_PeriodsDetail_ViewModel dmodel)
{
var list = activity_PeriodsDetailRepository.GetPageList(pageIndex, pageSize, out count, dmodel);
if (list.Any())
{
//查询用户 部门 校区
string userIds = string.Join(",", list.Select(x => x.UserId).Distinct());
string deptIds = string.Join(",", list.Select(x => x.Depart_Id).Distinct());
string schoolIds = string.Join(",", list.Select(x => x.School_Id).Distinct());
var ulist = accountRepository.GetEmployeeListRepository(new Employee_ViewModel() { Group_Id = dmodel.Group_Id, QIds = userIds });
var dlist = departmentRepository.GetDepartmentListRepository(new RB_Department_ViewModel() { Group_Id = dmodel.Group_Id, QDeptIds = deptIds });
var slist = schoolRepository.GetSchoolListRepository(new RB_School_ViewModel() { Group_Id = dmodel.Group_Id, QSIds = schoolIds });
foreach (var item in list)
{
var umodel = ulist.Where(x => x.Id == item.UserId).FirstOrDefault();
item.UserName = umodel.EmployeeName + (umodel.LeaveStatus == Common.Enum.User.LeaveStatusEnum.Departure ? "离职" : "");
item.DeptName = dlist.Where(x => x.DeptId == item.Depart_Id).FirstOrDefault()?.DeptName ?? "";
item.SchoolName = slist.Where(x => x.SId == item.School_Id).FirstOrDefault()?.SName ?? "";
}
}
return list;
}
/// <summary>
/// 累计提成金额统计
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public decimal GetSellCommissionStatistics(RB_Activity_PeriodsDetail_ViewModel dmodel)
{
return activity_PeriodsDetailRepository.GetSellCommissionStatistics(dmodel);
}
#endregion
}
}
using Edu.Common.Enum;
using Edu.Model.Entity.Course;
using Edu.Model.ViewModel.Course;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB.Dapper;
namespace Edu.Repository.Course
{
/// <summary>
/// 活动配置仓储层
/// </summary>
public class RB_Activity_ConfigRepository : BaseRepository<RB_Activity_Config>
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="demodel"></param>
/// <param name="orderIds"></param>
/// <returns></returns>
public List<RB_Activity_Config_ViewModel> GetList(RB_Activity_Config_ViewModel demodel)
{
string where = $@" 1=1 and r.Status =0";
if (demodel.Group_Id > 0)
{
where += $@" and r.{nameof(RB_Activity_Config.Group_Id)} ={demodel.Group_Id}";
}
if (demodel.Type > 0)
{
where += $@" and r.{nameof(RB_Activity_Config.Type)} ={demodel.Type}";
}
string sql = $@"
SELECT * From RB_Activity_Config r
WHERE {where}
ORDER BY r.Id DESC ";
return Get<RB_Activity_Config_ViewModel>(sql).ToList();
}
}
}
using Edu.Common.Enum;
using Edu.Model.Entity.Course;
using Edu.Model.ViewModel.Course;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB.Dapper;
namespace Edu.Repository.Course
{
/// <summary>
/// 活动周期明细仓储层
/// </summary>
public class RB_Activity_PeriodsDetailRepository : BaseRepository<RB_Activity_PeriodsDetail>
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Activity_PeriodsDetail_ViewModel> GetList(RB_Activity_PeriodsDetail_ViewModel demodel)
{
string where = $@" 1=1";
if (demodel.Group_Id > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.Group_Id)} ={demodel.Group_Id}";
}
if (demodel.PeriodId > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.PeriodId)} ={demodel.PeriodId}";
}
if (demodel.UserId > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.UserId)} ={demodel.UserId}";
}
if (!string.IsNullOrEmpty(demodel.UserIds))
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.UserId)} in({demodel.UserIds})";
}
if (demodel.ActivityId > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.ActivityId)} ={demodel.ActivityId}";
}
if (demodel.OrderId > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.OrderId)} ={demodel.OrderId}";
}
if (!string.IsNullOrEmpty(demodel.OrderIds))
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.OrderId)} in({demodel.OrderIds})";
}
if (!string.IsNullOrEmpty(demodel.ActivityName))
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.ActivityName)} like '%{demodel.ActivityName}%'";
}
string sql = $@" select r.* from RB_Activity_PeriodsDetail r where {where} order by r.Id asc";
return Get<RB_Activity_PeriodsDetail_ViewModel>(sql).ToList();
}
/// <summary>
/// 获取分页列表
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Activity_PeriodsDetail_ViewModel> GetPageList(int pageIndex,int pageSize,out long count,RB_Activity_PeriodsDetail_ViewModel demodel)
{
string where = $@" 1=1";
if (demodel.Group_Id > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.Group_Id)} ={demodel.Group_Id}";
}
if (demodel.PeriodId > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.PeriodId)} ={demodel.PeriodId}";
}
if (demodel.UserId > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.UserId)} ={demodel.UserId}";
}
if (!string.IsNullOrEmpty(demodel.UserIds))
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.UserId)} in({demodel.UserIds})";
}
if (demodel.ActivityId > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.ActivityId)} ={demodel.ActivityId}";
}
if (demodel.OrderId > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.OrderId)} ={demodel.OrderId}";
}
if (!string.IsNullOrEmpty(demodel.OrderIds))
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.OrderId)} in({demodel.OrderIds})";
}
if (demodel.DSUserId > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.DSUserId)} ={demodel.DSUserId}";
}
if (!string.IsNullOrEmpty(demodel.ActivityName))
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.ActivityName)} like '%{demodel.ActivityName}%'";
}
if (!string.IsNullOrEmpty(demodel.DSUserName))
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.DSUserName)} like '%{demodel.DSUserName}%'";
}
string sql = $@" select r.* from RB_Activity_PeriodsDetail r where {where} order by r.Id asc";
return GetPage<RB_Activity_PeriodsDetail_ViewModel>(pageIndex, pageSize, out count, sql).ToList();
}
/// <summary>
/// 获取用户提成列表
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Activity_PeriodsDetail_ViewModel> GetActivityCommissionUserList(RB_Activity_PeriodsDetail_ViewModel demodel)
{
string where = $@" 1=1";
if (demodel.Group_Id > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.Group_Id)} ={demodel.Group_Id}";
}
if (demodel.School_Id >= 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.School_Id)} ={demodel.School_Id}";
}
if (demodel.PeriodId > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.PeriodId)} ={demodel.PeriodId}";
}
if (demodel.UserId > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.UserId)} ={demodel.UserId}";
}
if (demodel.ActivityId > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.ActivityId)} ={demodel.ActivityId}";
}
if (!string.IsNullOrEmpty(demodel.ActivityName))
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.ActivityName)} like '%{demodel.ActivityName}%'";
}
if (demodel.OrderId > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.OrderId)} ={demodel.OrderId}";
}
string sql = $@" select r.UserId,r.Depart_Id,r.School_Id,sum(r.CommissionMoney) as CommissionMoney
from RB_Activity_PeriodsDetail r where {where} group by r.UserId,r.Depart_Id,r.School_Id";
return Get<RB_Activity_PeriodsDetail_ViewModel>(sql).ToList();
}
/// <summary>
/// 累计提成金额
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public decimal GetSellCommissionStatistics(RB_Activity_PeriodsDetail_ViewModel demodel)
{
string where = $@" 1=1";
if (demodel.Group_Id > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.Group_Id)} ={demodel.Group_Id}";
}
if (demodel.PeriodId > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.PeriodId)} ={demodel.PeriodId}";
}
if (demodel.UserId > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.UserId)} ={demodel.UserId}";
}
if (!string.IsNullOrEmpty(demodel.UserIds))
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.UserId)} in({demodel.UserIds})";
}
if (demodel.ActivityId > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.ActivityId)} ={demodel.ActivityId}";
}
if (demodel.OrderId > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.OrderId)} ={demodel.OrderId}";
}
if (!string.IsNullOrEmpty(demodel.OrderIds))
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.OrderId)} in({demodel.OrderIds})";
}
if (demodel.DSUserId > 0)
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.DSUserId)} ={demodel.DSUserId}";
}
if (!string.IsNullOrEmpty(demodel.ActivityName))
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.ActivityName)} like '%{demodel.ActivityName}%'";
}
if (!string.IsNullOrEmpty(demodel.DSUserName))
{
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.DSUserName)} like '%{demodel.DSUserName}%'";
}
string sql = $@" select sum(r.CommissionMoney) from RB_Sell_Commission_Details r where {where}";
var obj = ExecuteScalar(sql);
return obj == null ? 0 : Convert.ToDecimal(obj);
}
}
}
using Edu.Common.Enum;
using Edu.Model.Entity.Course;
using Edu.Model.ViewModel.Course;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB.Dapper;
namespace Edu.Repository.Course
{
/// <summary>
/// 活动周期仓储层
/// </summary>
public class RB_Activity_PeriodsRepository : BaseRepository<RB_Activity_Periods>
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Activity_Periods_ViewModel> GetList(RB_Activity_Periods_ViewModel demodel)
{
string where = $@" 1=1";
if (demodel.Group_Id > 0)
{
where += $@" and r.{nameof(RB_Activity_Periods_ViewModel.Group_Id)} ={demodel.Group_Id}";
}
if (!string.IsNullOrEmpty(demodel.Name))
{
where += $@" and r.{nameof(RB_Activity_Periods_ViewModel.Name)} like '%{demodel.Name}%'";
}
if (!string.IsNullOrEmpty(demodel.Periods))
{
where += $@" and r.{nameof(RB_Activity_Periods_ViewModel.Periods)} ='{demodel.Periods}'";
}
string sql = $@" select r.* from RB_Activity_Periods r where {where} order by r.Id desc";
return Get<RB_Activity_Periods_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_Activity_Periods_ViewModel> GetPageList(int pageIndex, int pageSize, out long count, RB_Activity_Periods_ViewModel demodel)
{
string where = $@" 1=1";
if (demodel.Group_Id > 0)
{
where += $@" and r.{nameof(RB_Activity_Periods_ViewModel.Group_Id)} ={demodel.Group_Id}";
}
if (!string.IsNullOrEmpty(demodel.Name))
{
where += $@" and r.{nameof(RB_Activity_Periods_ViewModel.Name)} like '%{demodel.Name}%'";
}
string sql = $@" select r.* from RB_Activity_Periods r where {where} order by r.Id desc";
return GetPage<RB_Activity_Periods_ViewModel>(pageIndex, pageSize, out count, sql).ToList();
}
}
}
...@@ -114,11 +114,12 @@ namespace Edu.Repository.Course ...@@ -114,11 +114,12 @@ namespace Edu.Repository.Course
string sql = $@" string sql = $@"
SELECT A.*,IFNULL(B.JoinType,0) AS JoinType,IFNULL(B.TargetJoinType,0) AS TargetJoinType,IFNULL(B.StartClassHours,0) AS StartClassHours SELECT A.*,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 ,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 ,sc.StopClassEffectTime,B.SourceOrderId,B.TargetOrderId,IFNULL(D.FirstClassHours,0)+IFNULL(D.SecondClassHours,0)+IFNULL(D.ThirdClassHours,0) AS ContractTotalHours
FROM RB_Order_Guest AS A LEFT JOIN rb_order AS B ON A.OrderId=B.OrderId FROM RB_Order_Guest AS A LEFT JOIN rb_order AS B ON A.OrderId=B.OrderId
LEFT JOIN rb_course AS C ON (B.CourseId=C.CourseId AND B.CourseId>0 AND B.OrderType=1) LEFT JOIN rb_course AS C ON (B.CourseId=C.CourseId AND B.CourseId>0 AND B.OrderType=1)
LEFT JOIN (SELECT OrderGuestId,MAX(TakeEffectTime) as StopClassEffectTime from rb_student_stopclass where IsAuditThrough=1 GROUP BY OrderGuestId) as sc on sc.OrderGuestId=a.Id LEFT JOIN (SELECT OrderGuestId,MAX(TakeEffectTime) as StopClassEffectTime from rb_student_stopclass where IsAuditThrough=1 GROUP BY OrderGuestId) as sc on sc.OrderGuestId=a.Id
LEFT JOIN rb_education_contract AS D ON A.OrderId=D.OrderId AND A.Id=D.GuestId AND D.IsSystemUse=1
WHERE 1=1 and A.Status=0 {where}"; WHERE 1=1 and A.Status=0 {where}";
return Get<RB_Order_Guest_ViewModel>(sql).ToList(); return Get<RB_Order_Guest_ViewModel>(sql).ToList();
} }
......
...@@ -107,7 +107,7 @@ WHERE 1=1 ...@@ -107,7 +107,7 @@ WHERE 1=1
{ {
//待我审批 //待我审批
case Common.Enum.Course.EduReceiptConditionEnum.WaitAgree: case Common.Enum.Course.EduReceiptConditionEnum.WaitAgree:
builder.AppendFormat(" AND EXISTS (SELECT 1 FROM rb_education_record WHERE ConditionId=A.Id AND AuditStatus=1 AND AuditEmId={0}) ", query.CreateBy); builder.AppendFormat(" AND A.VerifyStatus NOT IN(6) AND EXISTS (SELECT 1 FROM rb_education_record WHERE ConditionId=A.Id AND AuditStatus=1 AND AuditEmId={0}) ", query.CreateBy);
break; break;
//已审批的 //已审批的
case Common.Enum.Course.EduReceiptConditionEnum.Agree: case Common.Enum.Course.EduReceiptConditionEnum.Agree:
......
...@@ -104,6 +104,14 @@ WHERE 1=1 AND A.Status=0 AND A.Id IN(SELECT Action_Id FROM rb_role_functionpermi ...@@ -104,6 +104,14 @@ WHERE 1=1 AND A.Status=0 AND A.Id IN(SELECT Action_Id FROM rb_role_functionpermi
/// <returns></returns> /// <returns></returns>
public bool CheckUserFunctionRepository(string actionCode, string postIds) public bool CheckUserFunctionRepository(string actionCode, string postIds)
{ {
if (string.IsNullOrEmpty(actionCode))
{
return false;
}
if (string.IsNullOrEmpty(postIds))
{
return false;
}
int result = 0; int result = 0;
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
......
...@@ -726,8 +726,8 @@ namespace Edu.WebApi.Controllers.Course ...@@ -726,8 +726,8 @@ namespace Edu.WebApi.Controllers.Course
var classId = base.ParmJObj.GetInt("ClassId"); var classId = base.ParmJObj.GetInt("ClassId");
var schoolId = 0; var schoolId = 0;
int QEffectStatus = base.ParmJObj.GetInt("QEffectStatus"); int QEffectStatus = base.ParmJObj.GetInt("QEffectStatus");
//var schoolId = base.ParmJObj.GetInt("School_Id"); int QNoFinish = base.ParmJObj.GetInt("QNoFinish");
var data = classModule.GetClassStudentListModule(classId, schoolId, base.UserInfo.Group_Id, 0, QEffectStatus: QEffectStatus); var data = classModule.GetClassStudentListModule(classId, schoolId, base.UserInfo.Group_Id, 0, QEffectStatus: QEffectStatus, QNoFinish: QNoFinish);
return ApiResult.Success(data: data); return ApiResult.Success(data: data);
} }
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Edu.Cache.User;
using Edu.Common.API;
using Edu.Common.Enum.Finance;
using Edu.Common.Plugin;
using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.Finance;
using Edu.Module.Course;
using Edu.Module.Finance;
using Edu.Module.StudyAbroad;
using Edu.WebApi.Filter;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
namespace Edu.WebApi.Controllers.Finance
{
/// <summary>
/// 教育活动接口
/// </summary>
[Route("api/[controller]/[action]")]
[ApiExceptionFilter]
[ApiController]
[EnableCors("AllowCors")]
public class ActivityController : BaseController
{
/// <summary>
/// 活动处理类对象
/// </summary>
private readonly ActivityModule activityModule = new ActivityModule();
#region 活动配置
/// <summary>
/// 获取活动配置
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetActivityConfigInfo() {
var userInfo = base.UserInfo;
var model = activityModule.GetActivityConfigModel(new RB_Activity_Config_ViewModel() { Group_Id = userInfo.Group_Id });
return ApiResult.Success("", new
{
model.Id,
model.Type,
model.CommissionMoney,
model.UpdateBy,
UpdateByName = Cache.User.UserReidsCache.GetUserLoginInfo(model.UpdateBy)?.AccountName ?? "",
UpdateTime = model.UpdateTime.ToString("yyyy-MM-dd HH:mm")
});
}
/// <summary>
/// 新增/修改 活动配置
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetActivityConfig() {
var userInfo = base.UserInfo;
RB_Activity_Config_ViewModel demdoel = JsonHelper.DeserializeObject<RB_Activity_Config_ViewModel>(RequestParm.Msg.ToString());
if (demdoel.CommissionMoney <= 0) {
return ApiResult.ParamIsNull("请输入提成比例/金额");
}
demdoel.Group_Id = userInfo.Group_Id;
demdoel.Status = 0;
demdoel.CreateBy = userInfo.Id;
demdoel.CreateTime = DateTime.Now;
demdoel.UpdateBy = userInfo.Id;
demdoel.UpdateTime = DateTime.Now;
string msg = activityModule.SetActivityConfig(demdoel);
if (msg == "")
{
return ApiResult.Success();
}
else {
return ApiResult.Failed(msg);
}
}
#endregion
#region 活动提成
/// <summary>
/// 获取提成期数分页列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetActivityCommissionPeriodsPageList()
{
var userInfo = base.UserInfo;
var pageModel = JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var dmodel = JsonHelper.DeserializeObject<RB_Activity_Periods_ViewModel>(RequestParm.Msg.ToString());
dmodel.Group_Id = userInfo.Group_Id;
var list = activityModule.GetActivityCommissionPeriodsPageList(pageModel.PageIndex, pageModel.PageSize, out long count, dmodel);
pageModel.Count = Convert.ToInt32(count);
pageModel.PageData = list.Select(x => new
{
x.Id,
x.Periods,
x.SumPrice,
x.Name,
FrIdList = string.IsNullOrEmpty(x.Financials) ? new List<string>() : x.Financials.Split(',').ToList(),
x.CreateBy,
CreateByName = UserReidsCache.GetUserLoginInfo(x.CreateBy)?.AccountName ?? "",
CreateTime = x.CreateTime.ToString("yyyy-MM-dd")
});
return ApiResult.Success("", pageModel);
}
/// <summary>
/// 获取期数列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetActivityCommissionPeriodsList()
{
var userInfo = base.UserInfo;
var dmodel = JsonHelper.DeserializeObject<RB_Activity_Periods_ViewModel>(RequestParm.Msg.ToString());
dmodel.Group_Id = userInfo.Group_Id;
var list = activityModule.GetActivityCommissionPeriodsList(dmodel);
return ApiResult.Success("", list.Select(x => new
{
x.Id,
x.Periods,
x.Name,
}));
}
/// <summary>
/// 获取提成用户列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetActivityCommissionUserList()
{
var userInfo = base.UserInfo;
var dmodel = JsonHelper.DeserializeObject<RB_Activity_PeriodsDetail_ViewModel>(RequestParm.Msg.ToString());
dmodel.Group_Id = userInfo.Group_Id;
if (dmodel.PeriodId <= 0)
{
return ApiResult.ParamIsNull("请传递期数id");
}
var list = activityModule.GetActivityCommissionUserList(dmodel);
return ApiResult.Success("", list.Select(x => new
{
x.School_Id,
x.SchoolName,
x.Depart_Id,
x.DeptName,
x.UserId,
x.UserName,
x.CommissionMoney
}));
}
/// <summary>
/// 获取提成用户明细列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetActivityCommissionUserDetailList()
{
var userInfo = base.UserInfo;
var dmodel = JsonHelper.DeserializeObject<RB_Activity_PeriodsDetail_ViewModel>(RequestParm.Msg.ToString());
dmodel.Group_Id = userInfo.Group_Id;
if (dmodel.PeriodId <= 0)
{
return ApiResult.ParamIsNull("请传递期数id");
}
var list = activityModule.GetActivityCommissionUserDetailList(dmodel);
return ApiResult.Success("", list.Select(x => new
{
x.School_Id,
x.SchoolName,
x.Depart_Id,
x.DeptName,
x.UserId,
x.UserName,
x.ActivityId,
x.ActivityName,
ActivityTime = x.ActivityTime.ToString("yyyy-MM-dd"),
x.OrderId,
x.Periods,
x.CommissionMoney,
x.Remark,
x.DSUserId,
x.DSUserName,
}));
}
/// <summary>
/// 获取提成订单明细列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetActivityCommissionForOrderList()
{
var userInfo = base.UserInfo;
var dmodel = JsonHelper.DeserializeObject<RB_Activity_PeriodsDetail_ViewModel>(RequestParm.Msg.ToString());
dmodel.Group_Id = userInfo.Group_Id;
if (dmodel.OrderId <= 0 && dmodel.ActivityId <=0)
{
return ApiResult.ParamIsNull("请传递订单id/活动id");
}
var list = activityModule.GetActivityCommissionUserDetailList(dmodel);
return ApiResult.Success("", list.Select(x => new
{
x.School_Id,
x.SchoolName,
x.Depart_Id,
x.DeptName,
x.UserId,
x.UserName,
x.ActivityId,
x.ActivityName,
ActivityTime = x.ActivityTime.ToString("yyyy-MM-dd"),
x.OrderId,
x.Periods,
x.CommissionMoney,
x.Remark,
x.DSUserId,
x.DSUserName,
}));
}
/// <summary>
/// 提成统计
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetActivityCommissionStatistics()
{
var userInfo = base.UserInfo;
var pageModel = JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var dmodel = JsonHelper.DeserializeObject<RB_Activity_PeriodsDetail_ViewModel>(RequestParm.Msg.ToString());
dmodel.Group_Id = userInfo.Group_Id;
var list = activityModule.GetActivityCommissionStatisticsPageList(pageModel.PageIndex, pageModel.PageSize, out long count, dmodel);
decimal TotalMoney = activityModule.GetSellCommissionStatistics(dmodel);
pageModel.Count = Convert.ToInt32(count);
pageModel.PageData = new
{
TotalCommission = TotalMoney,
List = list.Select(x => new
{
x.School_Id,
x.SchoolName,
x.Depart_Id,
x.DeptName,
x.UserId,
x.UserName,
x.ActivityId,
x.ActivityName,
ActivityTime = x.ActivityTime.ToString("yyyy-MM-dd"),
x.OrderId,
x.Periods,
x.CommissionMoney,
x.Remark,
x.DSUserId,
x.DSUserName,
})
};
return ApiResult.Success("", pageModel);
}
/// <summary>
/// 导出提成统计 Excel
/// </summary>
/// <returns></returns>
[HttpPost]
[Obsolete]
public FileContentResult GetActivityCommissionStatisticsToExcel()
{
var userInfo = base.UserInfo;
var dmodel = JsonHelper.DeserializeObject<RB_Activity_PeriodsDetail_ViewModel>(RequestParm.Msg.ToString());
dmodel.Group_Id = userInfo.Group_Id;
string ExcelName = "活动提成" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
List<ExcelDataSource> slist = new List<ExcelDataSource>();
ExcelDataSource header = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>(30) {
new ExcelColumn(value: "校区") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "部门") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "销售") { CellWidth = 25, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "订单号") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "活动名称") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "活动日期") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "报名用户") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "提成金额") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "期数") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "备注") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER }
}
};
slist.Add(header);
try
{
var list = activityModule.GetActivityCommissionStatisticsPageList(1, 1000000, out long count, dmodel);
decimal TotalMoney = activityModule.GetSellCommissionStatistics(dmodel);
#region 组装数据
foreach (var item in list)
{
ExcelDataSource datarow = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>(30) {
new ExcelColumn(value: item.SchoolName){ },
new ExcelColumn(value: item.DeptName){ },
new ExcelColumn(value: item.UserName){ },
new ExcelColumn(value: item.OrderId.ToString()){ },
new ExcelColumn(value: item.ActivityName){ },
new ExcelColumn(value: item.ActivityTime.ToString("yyyy-MM-dd")){ },
new ExcelColumn(value: item.DSUserName){ },
new ExcelColumn(value: (item.CommissionMoney).ToString("#0.00")){ },
new ExcelColumn(value: item.Periods){ },
new ExcelColumn(value: item.Remark){ },
},
ColumnHight = 30
};
slist.Add(datarow);
}
//统计
ExcelDataSource datarows = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>(30) {
new ExcelColumn(value: "汇总"){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: TotalMoney.ToString("#0.00")){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
},
ColumnHight = 30
};
slist.Add(datarows);
#endregion
var byteData = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData, "application/octet-stream", ExcelName);
}
catch (Exception ex)
{
LogHelper.Write(ex, string.Format("GetTeachingBonusDetailToExcel: {0}", JsonHelper.Serialize(RequestParm)));
var byteData1 = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData1, "application/octet-stream", ExcelName);
}
}
/// <summary>
/// 获取提成可发放人员列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetActivityCommissionSendEmployeeList()
{
var userInfo = base.UserInfo;
JObject parms = JObject.Parse(RequestParm.Msg.ToString());
int PeriodId = parms.GetInt("PeriodId", 0);//期数id
if (PeriodId <= 0)
{
return ApiResult.ParamIsNull();
}
var list = activityModule.GetActivityCommissionSendEmployeeList(PeriodId, userInfo);
return ApiResult.Success("", list);
}
/// <summary>
/// 设置提成发放人员
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetActivityCommissionSendEmployee()
{
var userInfo = base.UserInfo;
JObject parms = JObject.Parse(RequestParm.Msg.ToString());
int PeriodId = parms.GetInt("PeriodId", 0);//期数id
string EmpIds = parms.GetStringValue("EmpIds");//人员列表
if (PeriodId <= 0)
{
return ApiResult.ParamIsNull();
}
if (string.IsNullOrEmpty(EmpIds))
{
return ApiResult.ParamIsNull("请传递用户id");
}
string msg = activityModule.SetActivityCommissionSendEmployee(PeriodId, EmpIds, userInfo);
if (msg == "")
{
return ApiResult.Success("");
}
else
{
return ApiResult.Failed(msg);
}
}
#endregion
}
}
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