Commit 0c95d704 authored by liudong1993's avatar liudong1993

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

parents 4bddd649 35a40709
......@@ -80,6 +80,12 @@ namespace Edu.Common.Enum.Course
/// 其他耗材出库
/// </summary>
[EnumField("其他耗材出库")]
OtherSuppliesStockOut = 13
OtherSuppliesStockOut = 13,
/// <summary>
/// 销售返佣批量生成财务单据
/// </summary>
[EnumField("销售返佣批量生成财务单据")]
SellCommission = 14
}
}
......@@ -42,5 +42,10 @@ namespace Edu.Model.Entity.Bonus
/// 订单金额
/// </summary>
public decimal OrderMoney { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remarks { get; set; }
}
}
......@@ -5,102 +5,108 @@ using VT.FW.DB;
namespace Edu.Model.Entity.Customer
{
/// <summary>
/// 同业提现实体类
/// </summary>
[Serializable]
/// <summary>
/// 同业提现实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Customer_Remit
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 同业id
/// </summary>
public int CustomerId { get; set; }
/// <summary>
/// 类型 1佣金 2幸福存折
/// </summary>
public int Type { get; set; }
/// <summary>
/// 申请金额
/// </summary>
public decimal AppliedMoney { get; set; }
/// <summary>
/// 打款金额
/// </summary>
public decimal RemitMoney { get; set; }
/// <summary>
/// 审核状态 1申请中 2同意申请,待打款 3已打款 4拒绝
/// </summary>
public int AuditStatus { get; set; }
/// <summary>
/// 审核时间
/// </summary>
public DateTime? AuditDate { get; set; }
/// <summary>
/// 打款时间
/// </summary>
public DateTime? RemitDate { get; set; }
/// <summary>
/// 驳回时间
/// </summary>
public DateTime? RejectDate { get; set; }
/// <summary>
/// 审核备注
/// </summary>
public string AuditRemark { get; set; }
/// <summary>
/// 打款备注
/// </summary>
public string RemitRemark { get; set; }
/// <summary>
/// 拒绝备注
/// </summary>
public string RejectRemark { get; set; }
/// <summary>
/// 集团ID
/// </summary>
public int GroupId { get; set; }
/// <summary>
/// CreateDate
/// </summary>
public DateTime CreateDate { get; set; }
/// <summary>
/// 提款账户Id
/// </summary>
public int BankAccountId { get; set; }
/// <summary>
/// 财务单据id
/// </summary>
public int FinanceId { get; set; }
/// <summary>
/// 关联的订单id
/// </summary>
public string ReOrderIds { get; set; }
/// <summary>
/// 幸福存折年份
/// </summary>
public int Year { get; set; }
}
public class RB_Customer_Remit
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 同业id
/// </summary>
public int CustomerId { get; set; }
/// <summary>
/// 类型 1佣金 2幸福存折
/// </summary>
public int Type { get; set; }
/// <summary>
/// 申请金额
/// </summary>
public decimal AppliedMoney { get; set; }
/// <summary>
/// 打款金额
/// </summary>
public decimal RemitMoney { get; set; }
/// <summary>
/// 审核状态 1申请中 2同意申请,待打款 3已打款 4拒绝
/// </summary>
public int AuditStatus { get; set; }
/// <summary>
/// 审核时间
/// </summary>
public DateTime? AuditDate { get; set; }
/// <summary>
/// 打款时间
/// </summary>
public DateTime? RemitDate { get; set; }
/// <summary>
/// 驳回时间
/// </summary>
public DateTime? RejectDate { get; set; }
/// <summary>
/// 审核备注
/// </summary>
public string AuditRemark { get; set; }
/// <summary>
/// 打款备注
/// </summary>
public string RemitRemark { get; set; }
/// <summary>
/// 拒绝备注
/// </summary>
public string RejectRemark { get; set; }
/// <summary>
/// 集团ID
/// </summary>
public int GroupId { get; set; }
/// <summary>
/// CreateDate
/// </summary>
public DateTime CreateDate { get; set; }
/// <summary>
/// 提款账户Id
/// </summary>
public int BankAccountId { get; set; }
/// <summary>
/// 财务单据id
/// </summary>
public int FinanceId { get; set; }
/// <summary>
/// 关联的订单id
/// </summary>
public string ReOrderIds { get; set; }
/// <summary>
/// 幸福存折年份
/// </summary>
public int Year { get; set; }
/// <summary>
/// 用户类型 0-客户,1-内部员工
/// </summary>
public int UserType { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Edu.Model.Entity.Customer
{
/// <summary>
/// 课程顾问跟进实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Student_Advisor
{
/// <summary>
/// 主键编号
/// </summary>
public int Id { get; set; }
/// <summary>
/// 学员编号
/// </summary>
public int StuId { get; set; }
/// <summary>
/// 跟进状态
/// </summary>
public int AdvisorStatus { get; set; }
/// <summary>
/// 跟进日期
/// </summary>
public string AdvisorDate { get; set; }
/// <summary>
/// 跟进备注
/// </summary>
public string AdvisorRemark { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
}
}
using Edu.Common.Enum;
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Edu.Model.Entity.Customer
{
/// <summary>
/// 课程顾问跟进配置实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Student_AdvisorConfig
{
/// <summary>
/// 达成配置编号
/// </summary>
public int Id { get; set; }
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 百分百
/// </summary>
public decimal Rate { get; set; }
/// <summary>
/// 排序
/// </summary>
public int Num { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 学校编号
/// </summary>
public int School_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; }
/// <summary>
/// 删除状态(0-正常,1-禁用)
/// </summary>
public DateStateEnum Status { get; set; }
}
}
......@@ -43,5 +43,10 @@ namespace Edu.Model.Entity.Sell
/// 1。返佣;2.幸福存折
/// </summary>
public int CommissionType { get; set; }
/// <summary>
/// 财务单据
/// </summary>
public string FinanceIds { get; set; }
}
}
......@@ -36,7 +36,7 @@ namespace Edu.Model.Entity.StudyAbroad
/// <summary>
/// 国家编号
/// </summary>
public int CountryId { get; set; }
public string CountryId { get; set; }
/// <summary>
/// 集团编号
......
......@@ -251,5 +251,20 @@ namespace Edu.Model.Entity.User
/// 首次报名时间
/// </summary>
public DateTime? FirstEnrollDate { get; set; }
/// <summary>
/// 课程顾问跟进状态
/// </summary>
public int AdvisorStatus { get; set; }
/// <summary>
/// 课程顾问胜率
/// </summary>
public decimal AdvisorWinRate { get; set; }
/// <summary>
/// 课程顾问期望达成协议日期
/// </summary>
public string AdvisorExpectDate { get; set; }
}
}
......@@ -34,5 +34,10 @@ namespace Edu.Model.ViewModel.Customer
/// 是否查询全部
/// </summary>
public int IsQueryAll { get; set; }
/// <summary>
/// 创建人
/// </summary>
public string CreateByName { get; set; }
}
}
using Edu.Model.Entity.Customer;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Model.ViewModel.Customer
{
/// <summary>
/// 课程顾问跟进配置扩展实体类
/// </summary>
public class RB_Student_AdvisorConfig_Extend : RB_Student_AdvisorConfig
{
}
}
using Edu.Model.Entity.Customer;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Model.ViewModel.Customer
{
/// <summary>
/// 课程顾问跟进扩展实体类
/// </summary>
public class RB_Student_Advisor_Extend : RB_Student_Advisor
{
/// <summary>
/// 学员编号
/// </summary>
public string QStuIds { get; set; }
/// <summary>
/// 跟进状态名称
/// </summary>
public string AdvisorStatusName { get; set; }
/// <summary>
/// 跟进状态完成百分比
/// </summary>
public decimal AdvisorRate { get; set; }
/// <summary>
/// 课程顾问期望达成协议日期
/// </summary>
public string AdvisorExpectDate { get; set; }
}
}
using System;
using Edu.Common.Enum.Customer;
using System;
using System.Collections.Generic;
using System.Text;
......@@ -19,6 +20,11 @@ namespace Edu.Model.ViewModel.DataStatistics
/// </summary>
public int ChannelId { get; set; }
/// <summary>
/// 渠道类型
/// </summary>
public int ChannelType { get; set; }
/// <summary>
/// 回单(新增学员数量)
/// </summary>
......@@ -38,5 +44,10 @@ namespace Edu.Model.ViewModel.DataStatistics
/// 订单业绩金额
/// </summary>
public decimal OrderIncome { get; set; }
/// <summary>
/// 客户类型
/// </summary>
public CatetoryTypeEnum CustomerType { get; set; }
}
}
......@@ -29,6 +29,17 @@ namespace Edu.Model.ViewModel.Sell
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 用户部门
/// </summary>
public int UserDept { get; set; }
/// <summary>
/// 用户部门
/// </summary>
public string UserDeptName { get; set; }
/// <summary>
/// 返佣期数
/// </summary>
......@@ -68,5 +79,10 @@ namespace Edu.Model.ViewModel.Sell
/// 同行编号
/// </summary>
public int CategoryId { get; set; }
/// <summary>
/// 员工id
/// </summary>
public int EnterID { get; set; }
}
}
......@@ -15,5 +15,31 @@ namespace Edu.Model.ViewModel.Sell
/// 月份
/// </summary>
public string Month { get; set; }
/// <summary>
/// 个人直客期数总金额
/// </summary>
public decimal TotalEmployee { get; set; }
/// <summary>
/// 同业录入期数总金额
/// </summary>
public decimal TotalCustomer { get; set; }
/// <summary>
/// 内部介绍期数总金额
/// </summary>
public decimal TotalInternal { get; set; }
/// <summary>
/// 学员转介绍期数总金额
/// </summary>
public decimal TotalTrans { get; set; }
}
}
......@@ -94,5 +94,10 @@ namespace Edu.Model.ViewModel.StudyAbroad
/// 产品类型名称
/// </summary>
public string ProductTypeName { get; set; }
/// <summary>
/// 留学就业分类配置国家编号
/// </summary>
public string TypeCountryId { get; set; }
}
}
......@@ -24,5 +24,21 @@ namespace Edu.Model.ViewModel.StudyAbroad
/// 留学国家名称
/// </summary>
public string CountryName { get; set; }
/// <summary>
/// 国家编号
/// </summary>
public List<int> CountryIdList
{
get
{
List<int> list = new List<int>();
if (!string.IsNullOrEmpty(this.CountryId))
{
list = Common.ConvertHelper.StringToList(this.CountryId);
}
return list;
}
}
}
}
......@@ -380,5 +380,20 @@ namespace Edu.Model.ViewModel.User
/// 同业编号
/// </summary>
public int CategoryId { get; set; }
/// <summary>
/// 课程顾问跟进状态名称
/// </summary>
public string AdvisorStatusName { get; set; }
/// <summary>
/// 课程顾问跟进信息列表
/// </summary>
public List<RB_Student_Advisor_Extend> AdvisorList { get; set; }
/// <summary>
/// 客户状态(1-有效,2-无效)
/// </summary>
public int QStudentStatus { get; set; }
}
}
\ No newline at end of file
......@@ -15,6 +15,7 @@ using Edu.AOP.CustomerAttribute;
using Edu.Model.ViewModel.User;
using Edu.Repository.Finance;
using Edu.Model.ViewModel.Finance;
using Edu.Repository.Course;
namespace Edu.Module.Course
{
......@@ -73,6 +74,11 @@ namespace Edu.Module.Course
/// </summary>
private readonly RB_FinanceRepository financeRepository = new RB_FinanceRepository();
/// <summary>
/// 课程仓储层对象
/// </summary>
private readonly RB_CourseRepository courseRepository = new RB_CourseRepository();
/// <summary>
/// 获取人头奖金期数分页列表
......@@ -357,9 +363,10 @@ namespace Edu.Module.Course
/// <param name="saleId"></param>
private void CalcPersionBonusModule(RB_Personnel_Period period, RB_Bonus_PlanExtend item, int GroupId, string startDate, string endDate, int saleId)
{
var orderList = GetSaleOrderList(item, GroupId,startDate,endDate, saleId, out List<RB_Order_ViewModel> allOrderList);
var curNum = orderList?.Sum(qitem => qitem.GuestNum) ?? 0;
var curOrderMoney = orderList?.Sum(qitem => qitem.OrderMoney) ?? 0;
var orderList = GetSaleOrderList(item, GroupId,startDate,endDate, saleId, out List<RB_Order_ViewModel> allOrderList,out int IsOpenOrder);
var curNum = orderList?.Where(qitem => !item.NotUseCourseIds.Contains(qitem.CourseId.ToString())).Sum(qitem => qitem.GuestNum) ?? 0;
var curOrderMoney = orderList?.Where(qitem=>!item.NotUseCourseIds.Contains(qitem.CourseId.ToString())).Sum(qitem => qitem.OrderMoney) ?? 0;
//查询未平账的人员
var saleBonusList = personnel_BonusRepository.GetPersonnelBonusListRepository(new RB_Personnel_Bonus_Extend()
......@@ -392,7 +399,7 @@ namespace Edu.Module.Course
UpdateBy = 1,
UpdateTime = DateTime.Now,
DeductionMoney = DeductionMoney,
OpenBonus = curNum > 0 ? item.OpenBonus : 0,
OpenBonus = IsOpenOrder > 0 ? item.OpenBonus : 0,
ClueNum = ClueCount,
ClueNumSalary = ClueCount > 5 ? item.ClueNumSalary : 0,
IsIssue = 0
......@@ -501,6 +508,7 @@ namespace Edu.Module.Course
OrderState = oItem.OrderState,
OrderMoney = oItem.Income - oItem.Refund - oItem.PlatformTax,
OrderGuestNum = oItem.GuestNum,
Remarks = (item.NotUseCourseIds.Contains(oItem.CourseId.ToString()) ? "【不适用】" : "") + courseRepository.GetEntity(oItem.CourseId)?.CourseName ?? "",
};
var newDetailId = personnel_BonusDetailRepository.Insert(detailModel);
detailModel.Id = newDetailId;
......@@ -536,10 +544,13 @@ namespace Edu.Module.Course
/// </summary>
/// <param name="item"></param>
/// <param name="GroupId"></param>
/// <param name="startDate"></param>
/// <param name="endDate"></param>
/// <param name="SaleId"></param>
/// <param name="orderList"></param>
/// <param name="isOpenOrder">是否有开单</param>
/// <returns></returns>
private List<PersionOrderItem> GetSaleOrderList(RB_Bonus_PlanExtend item, int GroupId,string startDate,string endDate, int SaleId, out List<RB_Order_ViewModel> orderList)
private List<PersionOrderItem> GetSaleOrderList(RB_Bonus_PlanExtend item, int GroupId,string startDate,string endDate, int SaleId, out List<RB_Order_ViewModel> orderList,out int isOpenOrder)
{
List<PersionOrderItem> list = new List<PersionOrderItem>();
//所有当前人员订单列表
......@@ -549,18 +560,16 @@ namespace Edu.Module.Course
{
orderList = orderList?.Where(qitem => item.UseCourseIds.Contains(qitem.CourseId.ToString()))?.ToList();
}
//不适用课程
if (!string.IsNullOrEmpty(item.NotUseCourseIds))
{
orderList = orderList?.Where(qitem => !item.NotUseCourseIds.Contains(qitem.CourseId.ToString()))?.ToList();
}
isOpenOrder= orderList.Count>0?1:0;
//按照年份、月份统计订单人数和金额
var groupList = orderList
.GroupBy(qitem => new { qitem.CreateTime.Year, qitem.CreateTime.Month })
.GroupBy(qitem => new { qitem.CreateTime.Year, qitem.CreateTime.Month,qitem.CourseId, })
.Select(qitem => new
{
qitem.Key.Year,
qitem.Key.Month,
qitem.Key.CourseId,
GuestNum = qitem.Sum(s => s.GuestNum),
OrderMoney = qitem.Sum(s => s.Income - s.Refund - s.PlatformTax)
});
......@@ -572,7 +581,8 @@ namespace Edu.Module.Course
Year = gItem.Year,
Month = gItem.Month,
GuestNum = gItem.GuestNum,
OrderMoney = gItem.OrderMoney
OrderMoney = gItem.OrderMoney,
CourseId=gItem.CourseId,
});
}
return list;
......@@ -684,15 +694,15 @@ namespace Edu.Module.Course
if (saleId == user.Id)
{
string endDate = Common.ConvertHelper.FormatDate(endTime);
var orderList = GetSaleOrderList(item, user.Group_Id,startDate,endDate, saleId, out List<RB_Order_ViewModel> allOrderList);
monthData.GuestNum = orderList?.Sum(qitem => qitem.GuestNum) ?? 0;
var orderList = GetSaleOrderList(item, user.Group_Id,startDate,endDate, saleId, out List<RB_Order_ViewModel> allOrderList,out int IsOpenOrder);
monthData.GuestNum = orderList?.Where(qitem=>!item.NotUseCourseIds.Contains(qitem.CourseId.ToString())).Sum(qitem => qitem.GuestNum) ?? 0;
monthData.OrderCount = allOrderList?.Count() ?? 0;
monthData.ReachCount = item.MonthGoalMoney > (orderList?.Sum(qitem => qitem.OrderMoney) ?? 0) ? 1 : 0;
monthData.ReachCount = item.MonthGoalMoney > (orderList?.Where(qitem=>!item.NotUseCourseIds.Contains(qitem.CourseId.ToString()))?.Sum(qitem => qitem.OrderMoney) ?? 0) ? 1 : 0;
//当月梯度奖励金额
decimal CurRewardMoney = GetStepAwardAmount(item, monthData.GuestNum);
//开单奖金
decimal OpenBonus = monthData.GuestNum > 0 ? item.OpenBonus : 0;
decimal OpenBonus = IsOpenOrder > 0 ? item.OpenBonus : 0;
//线索奖励
var stuModel = studentRepository.GetStudentStaticRepository(saleId.ToString(), startDate, endDate)?.FirstOrDefault();
decimal ClueNumSalary = stuModel?.ClueCount > 5 ? item.ClueNumSalary : 0;
......@@ -960,5 +970,10 @@ namespace Edu.Module.Course
/// 订单金额
/// </summary>
public decimal OrderMoney { get; set; }
/// <summary>
/// 课程编号
/// </summary>
public int CourseId { get; set; }
}
}
......@@ -96,7 +96,7 @@ namespace Edu.Module.Course
/// </summary>
private readonly RB_FinanceRepository financeRepository = new RB_FinanceRepository();
private readonly RB_Customer_RemitRepository customer_RemitRepository = new RB_Customer_RemitRepository();
#region 首页返佣
/// <summary>
/// 获取首页返佣同级
......@@ -153,7 +153,7 @@ namespace Edu.Module.Course
{
//分成三个部门 内部人员 同行 学员
//查询用户 部门 校区
string userIds = string.Join(",", list.Where(x=>x.OrderSourceType== Common.Enum.User.StuCreateTypeEnum.EmployeeInput || x.OrderSourceType == Common.Enum.User.StuCreateTypeEnum.InternalIntroduction).Select(x => x.OrderSourceId).Distinct());
string userIds = string.Join(",", list.Where(x => x.OrderSourceType == Common.Enum.User.StuCreateTypeEnum.EmployeeInput || x.OrderSourceType == Common.Enum.User.StuCreateTypeEnum.InternalIntroduction).Select(x => x.OrderSourceId).Distinct());
string customerIds = string.Join(",", list.Where(x => x.OrderSourceType == Common.Enum.User.StuCreateTypeEnum.CustomerInput).Select(x => x.OrderSourceId).Distinct());
string stuIds = string.Join(",", list.Where(x => x.OrderSourceType == Common.Enum.User.StuCreateTypeEnum.TransIntroduction).Select(x => x.OrderSourceId).Distinct());
string schoolIds = string.Join(",", list.Select(x => x.SchoolId).Distinct());
......@@ -169,16 +169,19 @@ namespace Edu.Module.Course
clist = customerRepository.GetCustomerListRepository(new RB_Customer_Extend() { Group_Id = dmodel.GroupId, CustomerIds = customerIds });
}
List<RB_Student_ViewModel> stulist = new List<RB_Student_ViewModel>();
if (!string.IsNullOrEmpty(stuIds)) {
if (!string.IsNullOrEmpty(stuIds))
{
stulist = studentRepository.GetStudentListRepository(new RB_Student_ViewModel() { Group_Id = dmodel.GroupId, StuIds = stuIds });
}
foreach (var item in list)
{
{
item.SchoolName = slist.Where(x => x.SId == item.SchoolId).FirstOrDefault()?.SName ?? "";
if (item.OrderSourceType == Common.Enum.User.StuCreateTypeEnum.EmployeeInput || item.OrderSourceType == Common.Enum.User.StuCreateTypeEnum.InternalIntroduction)
{
var umodel = ulist.Where(x => x.Id == item.OrderSourceId).FirstOrDefault();
item.UserDept = umodel.Dept_Id;
item.UserDeptName = umodel.DeptName;
item.UserName = umodel.EmployeeName + (umodel.LeaveStatus == Common.Enum.User.LeaveStatusEnum.Departure ? "离职" : "");
}
else if (item.OrderSourceType == Common.Enum.User.StuCreateTypeEnum.CustomerInput)
......@@ -268,7 +271,7 @@ namespace Edu.Module.Course
/// <param name="commissionType"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
public object GetCustomerCommissionStat(int orderSourceType, int orderSourceId,int CategoryId, int commissionType, UserInfo userInfo)
public object GetCustomerCommissionStat(int orderSourceType, int orderSourceId, int CategoryId, int commissionType, UserInfo userInfo)
{
var model = user_ReturnComissionRepository.GetCustomerCommissionStat(userInfo.Group_Id, orderSourceType, orderSourceId, CategoryId, commissionType);
return new
......@@ -280,5 +283,79 @@ namespace Edu.Module.Course
};
}
#endregion
#region 更新返佣财务单据
/// <summary>
/// 更新返佣财务单据
/// </summary>
/// <param name="CustomerId"></param>
/// <returns></returns>
public bool UdateReturnMoneyModule(object FinanceIds, int Id)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_ReturnMoney_Batch.FinanceIds),FinanceIds},
};
var flag = returnMoney_BatchRepository.Update(fileds, new WhereHelper(nameof(RB_ReturnMoney_Batch.Id), Id));
return flag;
}
#endregion
#region 员工提现申请获取提现金额校验
/// <summary>
/// 获取首页返佣同级
/// </summary>
/// <param name="userInfo"></param>
/// <returns></returns>
public RB_User_ReturnComission_ViewModel GetWithdrawal(UserInfo userInfo)
{
var model = user_ReturnComissionRepository.GetCenterCommissionStatistics(userInfo.Group_Id, userInfo.Id);
return model;
}
/// <summary>
/// 获取用户返佣列表
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Order_ReturnComission_ViewModel> GetCommissionEnterList(RB_Order_ReturnComission_ViewModel demodel)
{
return order_ReturnComissionRepository.GetCommissionEnterList(demodel);
}
/// <summary>
/// 获取首页返佣同级
/// </summary>
/// <param name="userInfo"></param>
/// <returns></returns>
[TransactionCallHandler]
public bool SetWithdrawalInfo(RB_Customer_Remit_Extend model, decimal afterRemit)
{
bool flag = false;
//更新提现表数据
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_User_ReturnComission_ViewModel.CanCashOutMoney),0 },
{nameof(RB_User_ReturnComission_ViewModel.CashOutMoney),afterRemit},
};
flag = user_ReturnComissionRepository.Update(fileds, new WhereHelper(nameof(RB_User_ReturnComission_ViewModel.Id), model.CustomerId));
//新增提现申请
if (flag)
{
flag = customer_RemitRepository.Insert(model);
if (flag)
{
}
}
return flag;
}
#endregion
}
}
......@@ -57,6 +57,11 @@ namespace Edu.Module.Customer
/// </summary>
private readonly RB_Customer_CategoryRepository customer_CategoryRepository = new RB_Customer_CategoryRepository();
/// <summary>
/// 员工账号仓储层
/// </summary>
private readonly RB_AccountRepository accountRepository = new RB_AccountRepository();
/// <summary>
/// 获取客户分页列表..
......@@ -269,6 +274,13 @@ namespace Edu.Module.Customer
if (list.Any())
{
string customerIds = string.Join(",", list.Select(x => x.CustomerId));
string createByIds = string.Join(",", list.Where(qitem => qitem.CreateBy > 0).Select(qitem => qitem.CreateBy));
var empList = new List<Employee_ViewModel>();
if (!string.IsNullOrEmpty(createByIds))
{
empList= accountRepository.GetEmployeeListRepository(new Employee_ViewModel() { QIds = createByIds });
}
//查询客户数量
var StuNumList = customerRepository.GetCustomerStuNum(customerIds, query.Group_Id);
//查询订单数量 及 交易额
......@@ -281,6 +293,10 @@ namespace Edu.Module.Customer
item.StuNum = stuList?.Sum(qitem=>qitem.StuNum)??0;
item.OrderNum = orderList?.Sum(qitem => qitem.OrderNum) ?? 0;
item.OrderSales = orderList?.Sum(qitem => qitem.OrderSales) ?? 0;
if (item.CreateBy > 0)
{
item.CreateByName = empList?.FirstOrDefault(qitem => qitem.Id == item.CreateBy)?.EmployeeName ?? "";
}
}
}
return list;
......@@ -505,6 +521,15 @@ namespace Edu.Module.Customer
if (list != null && list.Count > 0)
{
string Ids = string.Join(",", list.Select(qitem => qitem.CategoryId));
string userIds = string.Join(",", list.Where(qitem => qitem.CreateBy > 0).Select(qitem => qitem.CreateBy));
var empList = new List<Employee_ViewModel>();
if (!string.IsNullOrEmpty(userIds))
{
empList= accountRepository.GetEmployeeListRepository(new Employee_ViewModel()
{
QIds = userIds
});
}
List<RB_Customer_Extend> customerLinkList = new List<RB_Customer_Extend>();
List<RB_Customer_Extend> StuNumList = new List<RB_Customer_Extend>();
List<RB_Customer_Extend> OrderNumList = new List<RB_Customer_Extend>();
......@@ -535,6 +560,7 @@ namespace Edu.Module.Customer
item.OrderCount = orderList?.Sum(qitem => qitem.OrderNum) ?? 0;
item.OrderSales= orderList?.Sum(qitem => qitem.OrderSales) ?? 0;
item.StudentCount = stuList?.Sum(qitem=>qitem.StuNum)??0;
item.CreateByName = empList?.FirstOrDefault(qitem => qitem.Id == item.CreateBy)?.EmployeeName ?? "";
}
}
return list;
......
......@@ -169,6 +169,7 @@ namespace Edu.Module.Customer
var assistModel = assistList.Where(x => x.AssistId == model.CreateBy).FirstOrDefault();
var AssistType = assistModel?.AssistType ?? 0;
#endregion
student_FollowRepository.Insert(new Model.Entity.Customer.RB_Student_Follow()
{
StuId = model.StuId,
......@@ -177,7 +178,7 @@ namespace Edu.Module.Customer
CreateTime = model.CreateTime,
Group_Id = model.Group_Id,
Id = 0,
Remark = $"客人约访:约访时间【{model.AppointmentTime.ToString("yyyy-MM-dd HH:mm")}】,约访地点【{model.AppointmentPoint}】,备注【{model.Remark}】",
Remark = $"客人约访:约访时间【{ Common.ConvertHelper.FormatTimeStr2(model.AppointmentTime)}】,约访地点【{model.AppointmentPoint}】,备注【{model.Remark}】",
Status = DateStateEnum.Normal,
UpdateBy = model.UpdateBy,
UpdateTime = model.UpdateTime
......
......@@ -109,7 +109,8 @@ namespace Edu.Module.Customer
//市场部编号4,课程顾问部编号13
QDeptIds = "4",
Group_Id = 100000,
IsLeave = 1
IsLeave = 1,
UserRole= UserRoleEnum.MarketPersion,
});
if (empList != null && empList.Count > 0)
{
......@@ -321,7 +322,8 @@ namespace Edu.Module.Customer
//市场部编号4,课程顾问部编号13
QDeptIds = "13",
Group_Id = 100000,
IsLeave = 1
IsLeave = 1,
UserRole= UserRoleEnum.CourseConsultant,
});
if (empList != null && empList.Count > 0)
{
......@@ -1333,9 +1335,9 @@ namespace Edu.Module.Customer
/// <param name="StartTime"></param>
/// <param name="EndTime"></param>
/// <returns></returns>
public object MarketChannelStaticModule(List<int> queryEmployeeList,string StartTime, string EndTime)
public List<MarketChannelStaticModel> MarketChannelStaticModule(List<int> queryEmployeeList,string StartTime, string EndTime)
{
List<object> list = new List<object>();
List<MarketChannelStaticModel> list = new List<MarketChannelStaticModel>();
var channelList = channelRepository.GetChannelListRepository(new RB_Channel_Extend() { });
var dataList = studentRepository.GetStudentChannelStaticRepository(new RB_Student_ViewModel()
{
......@@ -1348,14 +1350,15 @@ namespace Edu.Module.Customer
foreach (var item in channelList)
{
var channelTempList = dataList?.Where(qitem => qitem.CreateType == StuCreateTypeEnum.EmployeeInput && qitem.StuChannel == item.Id)?.ToList();
list.Add(new
list.Add(new MarketChannelStaticModel()
{
ChannelName = item.Name,
ChannelId = item.Id,
ClueCount = channelTempList?.Count(),
VisitCount = channelTempList?.Sum(qitem => qitem.VisitCount),
OrderCount = channelTempList?.Sum(qitem => qitem.OrderCount),
OrderIncome = channelTempList?.Sum(qitem => qitem.OrderIncome)
ChannelType =1,
ClueCount = channelTempList?.Count()??0,
VisitCount = channelTempList?.Sum(qitem => qitem.VisitCount)??0,
OrderCount = channelTempList?.Sum(qitem => qitem.OrderCount)??0,
OrderIncome = channelTempList?.Sum(qitem => qitem.OrderIncome)??0
});
}
}
......@@ -1382,29 +1385,31 @@ namespace Edu.Module.Customer
//企业同行
if (sItem.CustomerType == Common.Enum.Customer.CatetoryTypeEnum.Company)
{
list.Add(new
list.Add(new MarketChannelStaticModel()
{
ChannelName = "(企业)" + (customerList?.FirstOrDefault(qitem => qitem.CustomerId == subItem.StuSourceId)?.CustomerName ?? ""),
ChannelId= subItem.StuSourceId,
sItem.CustomerType,
ClueCount = tempCusList?.Count(),
VisitCount = tempCusList?.Sum(qitem => qitem.VisitCount),
OrderCount = tempCusList?.Sum(qitem => qitem.OrderCount),
OrderIncome = tempCusList?.Sum(qitem => qitem.OrderIncome)
CustomerType= sItem.CustomerType,
ChannelType = 2,
ClueCount = tempCusList?.Count()??0,
VisitCount = tempCusList?.Sum(qitem => qitem.VisitCount)??0,
OrderCount = tempCusList?.Sum(qitem => qitem.OrderCount)??0,
OrderIncome = tempCusList?.Sum(qitem => qitem.OrderIncome)??0
});
}
//校代同行
if (sItem.CustomerType == Common.Enum.Customer.CatetoryTypeEnum.School)
{
list.Add(new
list.Add(new MarketChannelStaticModel()
{
ChannelName = "(校代)" + (customerList?.FirstOrDefault(qitem => qitem.CustomerId == subItem.StuSourceId)?.CustomerName ?? ""),
ChannelId=subItem.StuSourceId,
sItem.CustomerType,
ClueCount = tempCusList?.Count(),
VisitCount = tempCusList?.Sum(qitem => qitem.VisitCount),
OrderCount = tempCusList?.Sum(qitem => qitem.OrderCount),
OrderIncome = tempCusList?.Sum(qitem => qitem.OrderIncome)
CustomerType=sItem.CustomerType,
ChannelType = 2,
ClueCount = tempCusList?.Count()??0,
VisitCount = tempCusList?.Sum(qitem => qitem.VisitCount)??0,
OrderCount = tempCusList?.Sum(qitem => qitem.OrderCount)??0,
OrderIncome = tempCusList?.Sum(qitem => qitem.OrderIncome)??0
});
}
}
......@@ -1423,14 +1428,15 @@ namespace Edu.Module.Customer
foreach (var sItem in groupDataList)
{
var tempInnerList = dataList?.Where(qitem => qitem.CreateType == StuCreateTypeEnum.InternalIntroduction && qitem.StuSourceId == sItem.StuSourceId)?.ToList();
list.Add(new
list.Add(new MarketChannelStaticModel()
{
ChannelName = "(内部介绍)" + (empList?.FirstOrDefault(qitem => qitem.Id == sItem.StuSourceId)?.EmployeeName ?? ""),
ChannelId=sItem.StuSourceId,
ClueCount = tempInnerList?.Count(),
VisitCount = tempInnerList?.Sum(qitem => qitem.VisitCount),
OrderCount = tempInnerList?.Sum(qitem => qitem.OrderCount),
OrderIncome = tempInnerList?.Sum(qitem => qitem.OrderIncome)
ChannelType = 3,
ClueCount = tempInnerList?.Count()??0,
VisitCount = tempInnerList?.Sum(qitem => qitem.VisitCount)??0,
OrderCount = tempInnerList?.Sum(qitem => qitem.OrderCount)??0,
OrderIncome = tempInnerList?.Sum(qitem => qitem.OrderIncome)??0
});
}
......@@ -1446,25 +1452,26 @@ namespace Edu.Module.Customer
foreach (var sItem in transTypeList)
{
var tempTransList = dataList?.Where(qitem => qitem.CreateType == StuCreateTypeEnum.TransIntroduction && qitem.StuSourceId == sItem.StuSourceId)?.ToList();
list.Add(new
list.Add(new MarketChannelStaticModel()
{
ChannelName = "(学员转介绍)" + stuList?.FirstOrDefault(qitem => qitem.StuId == sItem.StuSourceId)?.StuName ?? "",
ChannelId = sItem.StuSourceId,
ClueCount = tempTransList?.Count(),
VisitCount = tempTransList?.Sum(qitem => qitem.VisitCount),
OrderCount = tempTransList?.Sum(qitem => qitem.OrderCount),
OrderIncome = tempTransList?.Sum(qitem => qitem.OrderIncome)
ChannelType = 4,
ClueCount = tempTransList?.Count()??0,
VisitCount = tempTransList?.Sum(qitem => qitem.VisitCount)??0,
OrderCount = tempTransList?.Sum(qitem => qitem.OrderCount)??0,
OrderIncome = tempTransList?.Sum(qitem => qitem.OrderIncome)??0
});
}
list.Add(new
list.Add(new MarketChannelStaticModel()
{
ChannelName = "合计",
ChannelId = 10005,
ClueCount = dataList?.Count(),
VisitCount = dataList?.Sum(qitem => qitem.VisitCount),
OrderCount = dataList?.Sum(qitem => qitem.OrderCount),
OrderIncome = dataList?.Sum(qitem => qitem.OrderIncome)
ClueCount = dataList?.Count() ?? 0,
VisitCount = dataList?.Sum(qitem => qitem.VisitCount) ?? 0,
OrderCount = dataList?.Sum(qitem => qitem.OrderCount) ?? 0,
OrderIncome = dataList?.Sum(qitem => qitem.OrderIncome) ?? 0
});
return list;
}
......
......@@ -61,7 +61,7 @@ namespace Edu.Module.StudyAbroad
if (list != null && list.Count > 0)
{
string ids = string.Join(",", list.Select(qitem => qitem.Id));
string countryIds = string.Join(",", list.Select(qitem => qitem.StudyCountryId));
string countryIds = string.Join(",", list.Where(qitem=>!string.IsNullOrEmpty(qitem.TypeCountryId)).Select(qitem => qitem.TypeCountryId));
List<RB_StudyaBroad_Preferential_ViewModel> preferentialList = new List<RB_StudyaBroad_Preferential_ViewModel>();
if (query.IsQPrice == 1)
{
......@@ -81,7 +81,19 @@ namespace Edu.Module.StudyAbroad
foreach (var item in list)
{
item.StudyCountryName = areaList?.Where(qitem => qitem.ID == item.StudyCountryId)?.FirstOrDefault()?.Name ?? "";
string tempCountryName = "";
if (!string.IsNullOrEmpty(item.TypeCountryId))
{
var countryList = Common.ConvertHelper.StringToList(item.TypeCountryId);
if (countryList != null && countryList.Count > 0)
{
foreach (var subItem in countryList)
{
tempCountryName += (areaList?.Where(qitem => qitem.ID == subItem)?.FirstOrDefault()?.Name ?? "") + ",";
}
}
}
item.StudyCountryName = tempCountryName.TrimEnd(',');
item.PreferentialList = preferentialList?.Where(qitem => qitem.StudyabroadId == item.Id)?.ToList() ?? new List<RB_StudyaBroad_Preferential_ViewModel>();
}
}
......@@ -471,7 +483,15 @@ namespace Edu.Module.StudyAbroad
}
foreach (var item in list)
{
item.CountryName = countryList?.FirstOrDefault(qitem => qitem.ID == item.CountryId)?.Name ?? "";
string tempStr = "";
if (item.CountryIdList != null && item.CountryIdList.Count > 0)
{
foreach (var subItem in item.CountryIdList)
{
tempStr+= (countryList?.FirstOrDefault(qitem => qitem.ID == subItem)?.Name ?? "")+",";
}
}
item.CountryName = tempStr.TrimEnd(',');
}
}
return list;
......
This diff is collapsed.
......@@ -62,6 +62,11 @@ namespace Edu.Module.User
/// </summary>
private readonly RB_LearningGoalsRepository learningGoalsRepository = new RB_LearningGoalsRepository();
/// <summary>
/// 课程顾问跟进仓储层对象
/// </summary>
private readonly RB_Student_AdvisorRepository student_AdvisorRepository = new RB_Student_AdvisorRepository();
#region 学员跟进
......@@ -73,10 +78,11 @@ namespace Edu.Module.User
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public object GetStudentFollowUpPageList(int pageIndex, int pageSize, out long count, RB_Student_ViewModel demodel)
public object GetStudentFollowUpPageModule(int pageIndex, int pageSize, out long count, RB_Student_ViewModel demodel)
{
object Robj = new object();
var slist = student_OrderGuestRepository.GetStudentFollowUpPageList(pageIndex, pageSize, out count, demodel);
var slist = student_OrderGuestRepository.GetStudentFollowUpPageRepository(pageIndex, pageSize, out count, demodel);
if (slist.Any())
{
string stuIds = string.Join(",", slist.Select(x => x.StuId));
......@@ -121,7 +127,7 @@ namespace Edu.Module.User
}
//同业录入列表
List<Model.ViewModel.Customer.RB_Customer_Extend> customerList = new List<Model.ViewModel.Customer.RB_Customer_Extend>();
List<RB_Customer_Extend> customerList = new List<Model.ViewModel.Customer.RB_Customer_Extend>();
List<int> customerIdList = Common.ConvertHelper.StringToList(string.Join(",", slist.Where(qitem => qitem.CreateType == StuCreateTypeEnum.CustomerInput).Select(qitem => qitem.StuSourceId)));
if (customerIdList != null && customerIdList.Count > 0)
{
......@@ -147,6 +153,8 @@ namespace Edu.Module.User
QChannelIds = channelIds
});
//课程顾问跟进信息
List<RB_Student_Advisor_Extend> advisorList = student_AdvisorRepository.GetStudentAdvisorListRepository(new RB_Student_Advisor_Extend() { QStuIds = stuIds });
#region 组装数据
int MaxMonth = 2;//最大月份
//数据
......@@ -220,10 +228,11 @@ namespace Edu.Module.User
{
item.StuSourceIdName = transStudentList?.FirstOrDefault(qitem => qitem.StuId == item.StuSourceId)?.StuName ?? "";
}
item.CreateByName = accountList?.FirstOrDefault(qitem => qitem.Id == item.CreateBy)?.AccountName ?? "";
item.StuChannelName = channelList?.FirstOrDefault(qitem => qitem.Id == item.StuChannel)?.Name ?? "";
item.StuPurposeName = goalList?.FirstOrDefault(qitem => qitem.Id == item.StuPurpose)?.Name ?? "";
item.AdvisorList = advisorList?.Where(qitem => qitem.StuId == item.StuId)?.ToList();
var StuObj = new
{
item.StuId,
......@@ -257,6 +266,11 @@ namespace Edu.Module.User
item.EnterpriseName,
item.StuPurpose,
item.StuPurposeName,
item.AdvisorWinRate,
item.AdvisorExpectDate,
item.AdvisorStatus,
item.AdvisorStatusName,
item.AdvisorList,
};
RList.Add(StuObj);
}
......@@ -307,7 +321,7 @@ namespace Edu.Module.User
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public object GetStudentConsultPageList(int pageIndex, int pageSize, out long count, RB_Student_ViewModel demodel)
public List<object> GetStudentConsultPageList(int pageIndex, int pageSize, out long count, RB_Student_ViewModel demodel)
{
List<object> RList = new List<object>();
var slist = student_OrderGuestRepository.GetStudentConsultPageList(pageIndex, pageSize, out count, demodel);
......
......@@ -183,11 +183,11 @@ WHERE 1=1
public List<RB_Customer_Extend> GetCustomerStuNum(string customerIds, int group_Id)
{
string sql = $@"
SELECT s.CustomerId,C.CategoryId,COUNT(0) as StuNum
SELECT c.CustomerId,C.CategoryId,COUNT(0) as StuNum
FROM rb_student s INNER JOIN rb_customer AS c ON (s.StuSourceId=C.CustomerId AND s.CreateType=2)
WHERE s.`Status`=0 and s.Group_Id ={group_Id}
and s.CustomerId in({customerIds})
GROUP BY s.CustomerId,C.CategoryId
and c.CustomerId in({customerIds})
GROUP BY c.CustomerId,C.CategoryId
";
return Get<RB_Customer_Extend>(sql).ToList();
}
......
using Edu.Common.Enum;
using Edu.Model.Entity.Customer;
using Edu.Model.ViewModel.Customer;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB.Dapper;
namespace Edu.Repository.Customer
{
/// <summary>
/// 课程顾问跟进配置仓储层
/// </summary>
public class RB_Student_AdvisorConfigRepository : BaseRepository<RB_Student_AdvisorConfig>
{
/// <summary>
/// 获取课程顾问跟进配置分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_AdvisorConfig_Extend> GetStudentAdvisorConfigPageRepository(int pageIndex, int pageSize, out long rowsCount, RB_Student_AdvisorConfig_Extend query)
{
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM RB_Student_AdvisorConfig AS A
WHERE 1=1
");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_AdvisorConfig_Extend.Status), (int)DateStateEnum.Normal);
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_AdvisorConfig_Extend.Group_Id), query.Group_Id);
}
if (!string.IsNullOrEmpty(query.Name))
{
builder.AppendFormat(" AND A.{0} LIKE @Name ", nameof(RB_Student_AdvisorConfig_Extend.Name));
parameters.Add("Name", "%" + query.Name.Trim() + "%");
}
}
builder.AppendFormat(" ORDER BY A.{0} ASC ", nameof(RB_Student_AdvisorConfig_Extend.Num));
return GetPage<RB_Student_AdvisorConfig_Extend>(pageIndex,pageSize,out rowsCount,builder.ToString(),parameters).ToList();
}
/// <summary>
/// 获取课程顾问跟进配置列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_AdvisorConfig_Extend> GetStudentAdvisorConfigListRepository(RB_Student_AdvisorConfig_Extend query)
{
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM RB_Student_AdvisorConfig AS A
WHERE 1=1
");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_AdvisorConfig_Extend.Status), (int)DateStateEnum.Normal);
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_AdvisorConfig_Extend.Group_Id), query.Group_Id);
}
if (!string.IsNullOrEmpty(query.Name))
{
builder.AppendFormat(" AND A.{0} LIKE @Name ", nameof(RB_Student_AdvisorConfig_Extend.Name));
parameters.Add("Name", "%" + query.Name.Trim() + "%");
}
}
builder.AppendFormat(" ORDER BY A.{0} ASC ", nameof(RB_Student_AdvisorConfig_Extend.Num));
return Get<RB_Student_AdvisorConfig_Extend>(builder.ToString(),parameters).ToList();
}
}
}
using Edu.Model.Entity.Customer;
using Edu.Model.ViewModel.Customer;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Edu.Repository.Customer
{
/// <summary>
/// 课程顾问跟进仓储层
/// </summary>
public class RB_Student_AdvisorRepository : BaseRepository<RB_Student_Advisor>
{
/// <summary>
/// 获取课程顾问跟进分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Advisor_Extend> GetStudentAdvisorPageRepository(int pageIndex, int pageSize, out long rowsCount, RB_Student_Advisor_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,B.Name AS AdvisorStatusName,B.Rate AS AdvisorRate
FROM RB_Student_Advisor AS A LEFT JOIN rb_student_advisorconfig AS B ON A.AdvisorStatus=B.Id
WHERE 1=1
");
if (query != null)
{
if (query.StuId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Advisor_Extend.StuId), query.StuId);
}
if (!string.IsNullOrEmpty(query.QStuIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Student_Advisor_Extend.StuId), query.QStuIds);
}
}
builder.AppendFormat(" ORDER BY A.{0} DESC ", nameof(RB_Student_Advisor_Extend.Id));
return GetPage<RB_Student_Advisor_Extend>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList();
}
/// <summary>
/// 获取课程顾问跟进列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Advisor_Extend> GetStudentAdvisorListRepository(RB_Student_Advisor_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,B.Name AS AdvisorStatusName,B.Rate AS AdvisorRate
FROM RB_Student_Advisor AS A LEFT JOIN rb_student_advisorconfig AS B ON A.AdvisorStatus=B.Id
WHERE 1=1
");
if (query != null)
{
if (query.StuId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Advisor_Extend.StuId), query.StuId);
}
if (!string.IsNullOrEmpty(query.QStuIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Student_Advisor_Extend.StuId), query.QStuIds);
}
}
builder.AppendFormat(" ORDER BY A.{0} DESC ", nameof(RB_Student_Advisor_Extend.Id));
return Get<RB_Student_Advisor_Extend>(builder.ToString()).ToList();
}
}
}
......@@ -1196,7 +1196,7 @@ WHERE 1=1
");
builder.AppendFormat(" AND o.OrderState IN({0}) ", (int)OrderStateEnum.Normal);
builder.AppendFormat(" AND o.{0}={1} ", nameof(RB_Order_ViewModel.OrderType), (int)OrderTypeEnum.CourseOrder);
builder.AppendFormat(" AND o.CreateTime >= '{0}' ", Common.Config.NewAchievementsEnable);
builder.AppendFormat(" AND o.CreateTime >= '2021-12-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.PreferPrice = (o.Income - o.Refund + o.DiscountMoney + o.PlatformTax) ");
......
......@@ -13,7 +13,7 @@ using VT.FW.DB.Dapper;
namespace Edu.Repository.Sell
{
public class RB_Order_ReturnComissionRepository:BaseRepository<RB_Order_ReturnComission>
public class RB_Order_ReturnComissionRepository : BaseRepository<RB_Order_ReturnComission>
{
/// <summary>
/// 员工处理类对象
......@@ -36,7 +36,7 @@ namespace Edu.Repository.Sell
/// <param name="orderid"></param>
/// <param name="stuid"></param>
/// <returns></returns>
public RB_Order_ReturnComission_ViewModel GetModelByOrderIdStuId(int orderid,int stuid)
public RB_Order_ReturnComission_ViewModel GetModelByOrderIdStuId(int orderid, int stuid)
{
var sql = "select * from RB_Order_ReturnComission where OrderId=@oid and StuId=@sid";
......@@ -53,7 +53,7 @@ namespace Edu.Repository.Sell
/// <param name="groupId"></param>
/// <param name="type"></param>
/// <returns></returns>
public List<RB_Order_ReturnComission_ViewModel> GetListBySetBatch(int groupId,int type)
public List<RB_Order_ReturnComission_ViewModel> GetListBySetBatch(int groupId, int type)
{
var sql = "select a.* from rb_order_returncomission a left join rb_student_orderguest b on a.OrderId=b.OrderId and a.StuId=b.Student_Id left join rb_order_guest c on b.GuestId=c.Id where (c.CompleteHours/c.TotalHours)>=(a.CommissionReValue/100) and a.`Status`=0 and c.CreateTime<date_add(curdate(),interval -day(curdate())+1 day) and a.GroupId=@gid and a.CommissionType=@type";
......@@ -70,7 +70,7 @@ namespace Edu.Repository.Sell
/// <param name="batchId"></param>
/// <param name="ids"></param>
/// <returns></returns>
public bool UpdateModelByBatch(int batchId,string ids)
public bool UpdateModelByBatch(int batchId, string ids)
{
var sql = $"update rb_order_returncomission set Status=1,BatchId={batchId} where Id in({ids})";
......@@ -311,14 +311,14 @@ WHERE 1=1
{
if (query.OrderId > 0)
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Order_ReturnComission_ViewModel.OrderId),query.OrderId);
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Order_ReturnComission_ViewModel.OrderId), query.OrderId);
}
if (!string.IsNullOrEmpty(query.QOrderIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Order_ReturnComission_ViewModel.OrderId), query.QOrderIds);
}
}
var list= Get<RB_Order_ReturnComission_ViewModel>(builder.ToString()).ToList();
var list = Get<RB_Order_ReturnComission_ViewModel>(builder.ToString()).ToList();
if (list != null && list.Count > 0)
{
var employeeIds = string.Join(",", list.Where(qitem => qitem.OrderSourceType == StuCreateTypeEnum.EmployeeInput || qitem.OrderSourceType == StuCreateTypeEnum.InternalIntroduction).Select(qitem => qitem.OrderSourceId));
......@@ -329,18 +329,18 @@ WHERE 1=1
List<RB_Student_ViewModel> stuList = new List<RB_Student_ViewModel>();
if (!string.IsNullOrEmpty(employeeIds))
{
empList= accountRepository.GetEmployeeListRepository(new Employee_ViewModel() { QIds = employeeIds });
empList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel() { QIds = employeeIds });
}
if (!string.IsNullOrEmpty(customerIds))
{
customerList= customerRepository.GetCustomerListRepository(new RB_Customer_Extend()
customerList = customerRepository.GetCustomerListRepository(new RB_Customer_Extend()
{
CustomerIds = customerIds
});
}
if (!string.IsNullOrEmpty(stuIds))
{
stuList= studentRepository.GetStudentListRepository(new RB_Student_ViewModel()
stuList = studentRepository.GetStudentListRepository(new RB_Student_ViewModel()
{
StuIds = stuIds
});
......@@ -379,5 +379,71 @@ WHERE 1=1
}
return list;
}
/// <summary>
/// 获取用户返佣列表
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Order_ReturnComission_ViewModel> GetCommissionEnterList(RB_Order_ReturnComission_ViewModel demodel)
{
string where = $@" 1=1";
if (demodel.GroupId > 0)
{
where += $@" and r.{nameof(RB_Order_ReturnComission_ViewModel.GroupId)} ={demodel.GroupId}";
}
if (demodel.SchoolId >= 0)
{
where += $@" and r.{nameof(RB_Order_ReturnComission_ViewModel.SchoolId)} ={demodel.SchoolId}";
}
if (demodel.BatchId > 0)
{
where += $@" and r.{nameof(RB_Order_ReturnComission_ViewModel.BatchId)} ={demodel.BatchId}";
}
if (demodel.CommissionType > 0)
{
where += $@" and r.{nameof(RB_Order_ReturnComission_ViewModel.CommissionType)} ={demodel.CommissionType}";
}
if (demodel.EnterID > 0)
{
where += $@" and b.EnterID ={demodel.EnterID}";
}
if (demodel.Status > -2)
{
where += $@" and r.{nameof(RB_Order_ReturnComission_ViewModel.Status)} ={demodel.Status}";
}
if (demodel.OrderId > 0)
{
where += $@" and r.{nameof(RB_Order_ReturnComission_ViewModel.OrderId)} ={demodel.OrderId}";
}
if (demodel.UnionCashOutId > 0)
{
where += $@" and r.{nameof(RB_Order_ReturnComission_ViewModel.UnionCashOutId)} ={demodel.UnionCashOutId}";
}
if (demodel.OrderSourceType > 0)
{
where += $@" and r.{nameof(RB_Order_ReturnComission_ViewModel.OrderSourceType)} ={(int)demodel.OrderSourceType}";
}
if (demodel.OrderSourceId > 0)
{
where += $@" and r.{nameof(RB_Order_ReturnComission_ViewModel.OrderSourceId)} ={demodel.OrderSourceId}";
}
if (demodel.Q_SelectNormal == 1)
{
where += $@" and r.{nameof(RB_Order_ReturnComission_ViewModel.Status)} in(0,1,2)";
}
else if (demodel.Q_SelectNormal == 2)
{
where += $@" and r.{nameof(RB_Order_ReturnComission_ViewModel.Status)} in(1,2)";
}
string sql = $@" SELECT r.* from rb_order_returncomission as r LEFT JOIN rb_order as b on r.OrderId=b.OrderId where {where} ";
return Get<RB_Order_ReturnComission_ViewModel>(sql).ToList();
}
}
}
......@@ -24,8 +24,20 @@ namespace Edu.Repository.Sell
/// <returns></returns>
public List<RB_ReturnMoney_Batch_ViewModel> GetPageList(int pageIndex, int pageSize, out long count, int type, string month, int groupId)
{
string sql = "select a.Id,a.BatchName,TotalMoney,a.CreateBy,a.CreateDate,DATE_FORMAT(a.CreateDate,'%Y-%m-%d %H:%i:%S') as CreateDateStr";
sql += " from RB_ReturnMoney_Batch a";
string sql = $@"select IFNULL(SUM(b.CommissionMoeny),0) as TotalEmployee,IFNULL(SUM(c.CommissionMoeny),0) as TotalCustomer,a.FinanceIds,
IFNULL(SUM(d.CommissionMoeny),0) as TotalInternal,IFNULL(SUM(e.CommissionMoeny),0) as TotalTrans, a.Id,a.BatchName,TotalMoney,a.CreateBy,a.CreateDate,DATE_FORMAT(a.CreateDate,'%Y-%m-%d %H:%i:%S') as CreateDateStr";
sql += $@" from RB_ReturnMoney_Batch a LEFT JOIN
(SELECT SUM(CommissionMoeny) as CommissionMoeny,BatchId FROM rb_order_returncomission where OrderSourceType=1 and `Status` in(1,2) GROUP BY OrderSourceType) as b
on a.Id=b.BatchId
LEFT JOIN
(SELECT SUM(CommissionMoeny) as CommissionMoeny,BatchId FROM rb_order_returncomission where OrderSourceType=2 and `Status` in(1,2) GROUP BY OrderSourceType) as c
on a.Id=c.BatchId
LEFT JOIN
(SELECT SUM(CommissionMoeny) as CommissionMoeny,BatchId FROM rb_order_returncomission where OrderSourceType=3 and `Status` in(1,2) GROUP BY OrderSourceType ) as d
on a.Id=d.BatchId
LEFT JOIN
(SELECT SUM(CommissionMoeny) as CommissionMoeny,BatchId FROM rb_order_returncomission where OrderSourceType=4 and `Status` in(1,2) GROUP BY OrderSourceType ) as e
on a.Id=e.BatchId ";
sql += " where a.GroupId=@gid";
DynamicParameters parameters = new DynamicParameters();
parameters.Add("gid", groupId);
......
......@@ -29,7 +29,7 @@ namespace Edu.Repository.StudyAbroad
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.`Name`,'') AS SupplierName,IFNULL(B.ContractUrl,'') AS ContractUrl,IFNULL(c.SName,'') AS SchoolName,IFNULL(D.`Name`,'') AS ProductTypeName
SELECT A.*,IFNULL(B.`Name`,'') AS SupplierName,IFNULL(B.ContractUrl,'') AS ContractUrl,IFNULL(c.SName,'') AS SchoolName,IFNULL(D.`Name`,'') AS ProductTypeName,IFNULL(D.CountryId,'') AS TypeCountryId
FROM RB_StudyAbroad AS A LEFT JOIN rb_supplier AS B ON A.SupplierId=B.Id
LEFT JOIN rb_school AS C ON A.School_Id=C.SId
LEFT JOIN rb_studyabroad_type AS D ON A.ProductType=D.Id
......@@ -67,6 +67,7 @@ WHERE 1=1
{
builder.AppendFormat(" AND A.{0}={1}", nameof(RB_StudyAbroad_ViewModel.StudyCountryId), query.StudyCountryId);
}
builder.Append(" ORDER BY A.Id DESC ");
return GetPage<RB_StudyAbroad_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
}
}
......
......@@ -42,9 +42,9 @@ WHERE 1=1
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Studyabroad_Type_Extend.Type), query.Type);
}
if (query.CountryId > 0)
if (!string.IsNullOrEmpty(query.CountryId))
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Studyabroad_Type_Extend.CountryId), query.CountryId);
builder.AppendFormat(" AND FIND_IN_SET('{0}', A.CountryId) ", query.CountryId);
}
if (!string.IsNullOrEmpty(query.Name))
{
......@@ -83,9 +83,9 @@ WHERE 1=1
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Studyabroad_Type_Extend.Type), query.Type);
}
if (query.CountryId > 0)
if (!string.IsNullOrEmpty(query.CountryId))
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Studyabroad_Type_Extend.CountryId), query.CountryId);
builder.AppendFormat(" AND FIND_IN_SET('{0}',A.CountryId ) ", query.CountryId);
}
if (!string.IsNullOrEmpty(query.Name))
{
......@@ -93,7 +93,7 @@ WHERE 1=1
parameters.Add("Name", "%" + query.Name.Trim() + "%");
}
}
builder.AppendFormat(" OR A.CountryId=0 ");
//builder.AppendFormat(" OR A.CountryId=0 ");
builder.AppendFormat(" ORDER BY A.{0} ", nameof(RB_Studyabroad_Type_Extend.Num));
return Get<RB_Studyabroad_Type_Extend>(builder.ToString(), parameters).ToList();
}
......
......@@ -240,11 +240,12 @@ WHERE 1=1
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT t.*,g.GroupName,s.SName,IFNULL(a.Account,'') AS StudentAccount ,c.CustomerName
SELECT t.*,g.GroupName,s.SName,IFNULL(a.Account,'') AS StudentAccount ,c.CustomerName,IFNULL(B.Name,'') AS AdvisorStatusName
FROM rb_student AS t LEFT JOIN rb_group AS g ON t.Group_Id=g.GId
LEFT JOIN rb_school AS s ON t.School_Id=s.SId
left join rb_customer c on c.CustomerId = t.CustomerId
LEFT JOIN rb_customer c on c.CustomerId = t.CustomerId
LEFT JOIN rb_account as a ON (t.StuId=a.AccountId AND a.AccountType=4 )
LEFT JOIN rb_student_advisorconfig AS b ON t.AdvisorStatus=B.Id
WHERE 1=1
");
if (query != null)
......@@ -261,10 +262,7 @@ WHERE 1=1
{
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_ViewModel.School_Id), query.School_Id);
}
if (query.CustomerId > 0)
{
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_ViewModel.CustomerId), query.CustomerId);
}
if (query.QStudentType == 1)
{
builder.AppendFormat(" AND t.{0}=0 ", nameof(RB_Student_ViewModel.CustomerId));
......@@ -321,11 +319,11 @@ WHERE 1=1
}
if (query.CustomerId > 0)
{
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_ViewModel.CustomerId), query.CustomerId);
builder.AppendFormat(" AND (t.{0}={1} OR (t.StuSourceId={1} AND t.CreateType=2) ) ", nameof(RB_Student_ViewModel.CustomerId), query.CustomerId);
}
if (query.StuStage > 0)
{
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_ViewModel.StuStage), (int)query.StuStage);
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_ViewModel.StuStage), query.StuStage);
}
if (!string.IsNullOrEmpty(query.StartTime))
{
......@@ -400,6 +398,20 @@ WHERE 1=1
{
builder.AppendFormat(" AND C.{0}={1} ", nameof(RB_Student_ViewModel.CategoryId), query.CategoryId);
}
if (query.AdvisorStatus > 0)
{
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_ViewModel.AdvisorStatus), query.AdvisorStatus);
}
//有效客户
if (query.QStudentStatus == 1)
{
builder.AppendFormat(" AND t.{0}<>{1} ", nameof(RB_Student_ViewModel.StuStage), 7);
}
//无效客户
if (query.QStudentStatus == 2)
{
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_ViewModel.StuStage), 7);
}
}
builder.AppendFormat(" ORDER BY t.{0} DESC ", nameof(RB_Student_ViewModel.StuId));
return GetPage<RB_Student_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
......
......@@ -337,7 +337,7 @@ where sog.Status =0 and o.Group_Id ={group_Id} and o.OrderState <>3 and IFNULL(o
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Student_ViewModel> GetStudentFollowUpPageList(int pageIndex, int pageSize, out long count, RB_Student_ViewModel demodel)
public List<RB_Student_ViewModel> GetStudentFollowUpPageRepository(int pageIndex, int pageSize, out long count, RB_Student_ViewModel demodel)
{
DynamicParameters parameters = new DynamicParameters();
string where = " 1=1 and s.Status =0 and c.CourseId <>1";//排除内部班课程
......@@ -456,18 +456,19 @@ where sog.Status =0 and o.Group_Id ={group_Id} and o.OrderState <>3 and IFNULL(o
}
string sql = $@"
SELECT s.StuId,s.StuName,s.StuTel,s.FirstEnrollDate,s.StuRealMobile,s.StuPurpose,s.QQ,DATE_FORMAT(ec.CreateTime,'%Y-%m-%d') as followUpTime,
c.CourseId,c.CourseName,s.JapanBaseInfo,s.StuBirth,org.GuestState as StuGuestState,s.StuChannel,s.CreateType,s.StuSourceId,s.CreateBy
SELECT s.StuId,s.StuName,s.StuTel,s.FirstEnrollDate,s.StuRealMobile,s.StuPurpose,s.QQ,DATE_FORMAT(ec.CreateTime,'%Y-%m-%d') as followUpTime
,c.CourseId,c.CourseName,s.JapanBaseInfo,s.StuBirth,org.GuestState as StuGuestState,s.StuChannel,s.CreateType,s.StuSourceId,s.CreateBy
,s.AdvisorStatus,s.AdvisorWinRate,s.AdvisorExpectDate,IFNULL(B.Name,'') AS AdvisorStatusName
FROM rb_student s
INNER JOIN rb_student_orderguest og on og.Student_Id = s.StuId
INNER JOIN (SELECT og.Student_Id,MAX(og.Id) as Id FROM rb_student_orderguest og
INNER JOIN rb_order o on og.OrderId = o.OrderId
WHERE o.OrderState <>3 GROUP BY og.Student_Id) stu on og.Id = stu.Id and og.Student_Id = s.StuId
INNER JOIN rb_order_guest org on org.Id = og.GuestId
INNER JOIN rb_order o on og.OrderId = o.OrderId
inner join rb_class cl on cl.ClassId = o.ClassId
INNER JOIN rb_course c on o.CourseId = c.CourseId
LEFT JOIN rb_education_contract ec on ec.GuestId = og.GuestId";
INNER JOIN rb_student_orderguest og on og.Student_Id = s.StuId
INNER JOIN (SELECT og.Student_Id,MAX(og.Id) as Id FROM rb_student_orderguest og INNER JOIN rb_order o on og.OrderId = o.OrderId WHERE o.OrderState <>3 GROUP BY og.Student_Id) stu on og.Id = stu.Id and og.Student_Id = s.StuId
INNER JOIN rb_order_guest org on org.Id = og.GuestId
INNER JOIN rb_order o on og.OrderId = o.OrderId
inner join rb_class cl on cl.ClassId = o.ClassId
INNER JOIN rb_course c on o.CourseId = c.CourseId
LEFT JOIN rb_education_contract ec on ec.GuestId = og.GuestId
LEFT JOIN rb_student_advisorconfig AS b ON s.AdvisorStatus=B.Id
";
if (!string.IsNullOrEmpty(demodel.SFTime) && !string.IsNullOrEmpty(demodel.EFTime)) {
//增加跟进链表
sql += $@" LEFT JOIN rb_student_follow f on s.StuId = f.StuId and f.`Status` =0 and f.AssistType in(2,4) and f.CreateTime >='{demodel.SFTime}' and f.CreateTime <='{demodel.EFTime} 23:59:59'";
......
......@@ -11,6 +11,7 @@ using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Edu.WebApi.Controllers.Customer
{
......@@ -511,13 +512,7 @@ namespace Edu.WebApi.Controllers.Customer
};
query.CreateBy = userInfo.Id;
var list = customerModule.GetCustomerPageModule_V2(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
foreach (var item in list)
{
if (item.CreateBy > 0)
{
item.CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? "";
}
}
pageModel.PageData = list.Select(x => new
{
x.CustomerId,
......@@ -563,13 +558,7 @@ namespace Edu.WebApi.Controllers.Customer
CategoryId=base.ParmJObj.GetInt("CategoryId"),
};
var list = customerModule.GetCustomerPageModule_V2(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
foreach (var item in list)
{
if (item.CreateBy > 0)
{
item.CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? "";
}
}
pageModel.PageData = list.Select(x => new
{
x.CustomerId,
......@@ -595,6 +584,86 @@ namespace Edu.WebApi.Controllers.Customer
return ApiResult.Success(data: pageModel);
}
/// <summary>
/// 导出同行联系人信息
/// </summary>
/// <returns></returns>
[HttpPost]
[Obsolete]
public FileContentResult DownLoadCustomerLinkMan()
{
var query = new RB_Customer_Extend()
{
Group_Id = base.UserInfo.Group_Id,
CustomerId = base.ParmJObj.GetInt("CustomerId"),
CustomerName = base.ParmJObj.GetStringValue("CustomerName"),
ContactNumber = base.ParmJObj.GetStringValue("ContactNumber"),
ApproveState = base.ParmJObj.GetInt("ApproveState"),
QCustomerState = base.ParmJObj.GetInt("QCustomerState"),
CreateBy = base.ParmJObj.GetInt("CreateBy"),
CategoryName = base.ParmJObj.GetStringValue("CategoryName"),
CategoryId = base.ParmJObj.GetInt("CategoryId"),
};
string excelName = "同行联系人.xls";
Common.Plugin.StopwatchHelper stopwatch = new StopwatchHelper();
stopwatch.Start();
var list = customerModule.GetCustomerPageModule_V2(1, 100000, out long rowsCount, query);
var xx = stopwatch.Stop();
List<ExcelDataSource> slist = new List<ExcelDataSource>();
try
{
ExcelDataSource header = new ExcelDataSource();
header.ExcelRows = new List<ExcelColumn>()
{
new ExcelColumn("联系人名称"){ CellWidth=20},
new ExcelColumn("类型"){ CellWidth=20},
new ExcelColumn("同行名称"){ CellWidth=20},
new ExcelColumn("电话"){ CellWidth=20},
new ExcelColumn("QQ号"){ CellWidth=20},
new ExcelColumn("微信号"){ CellWidth=20},
new ExcelColumn("客户数量"){ CellWidth=20},
new ExcelColumn("订单数量"){ CellWidth=20},
new ExcelColumn("交易额"){ CellWidth=20},
new ExcelColumn("审核状态"){ CellWidth=20},
new ExcelColumn("加入时间"){ CellWidth=20},
new ExcelColumn("负责人"){ CellWidth=20},
};
slist.Add(header);
foreach (var item in list)
{
var dataRow = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>()
{
new ExcelColumn(item.CustomerName),
new ExcelColumn(item.CustomerType.ToName()),
new ExcelColumn(item.CategoryName),
new ExcelColumn(item.ContactNumber),
new ExcelColumn(item.QQ),
new ExcelColumn(item.WeChatNo),
new ExcelColumn(item.StuNum.ToString()),
new ExcelColumn(item.OrderNum.ToString()),
new ExcelColumn(item.OrderSales.ToString()),
new ExcelColumn(item.ApproveStateStr),
new ExcelColumn(item.CreateTimeStr),
new ExcelColumn(item.CreateByName),
}
};
slist.Add(dataRow);
}
stopwatch.Start();
var byteData = ExcelTempLateHelper.ToExcelExtend(slist);
var yy = stopwatch.Stop();
return File(byteData, "application/octet-stream", excelName);
}
catch (Exception ex)
{
LogHelper.Write(ex, "DownLoadCustomerLinkMan");
var byteData1 = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData1, "application/octet-stream", excelName);
}
}
/// <summary>
/// 获取同行佣金幸福存折
/// </summary>
......@@ -854,12 +923,12 @@ namespace Edu.WebApi.Controllers.Customer
List<object> result = new List<object>();
foreach (var item in list)
{
string CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? "";
result.Add(new
{
item.CategoryId,
item.CategoryName,
CreateByName,
CreateByName=item.CreateByName,
item.CatetoryType,
item.LinkManCount,
item.StudentCount,
......@@ -873,6 +942,73 @@ namespace Edu.WebApi.Controllers.Customer
return ApiResult.Success(data: pageModel);
}
/// <summary>
/// 同行信息下载
/// </summary>
/// <returns></returns>
[HttpPost]
[Obsolete]
public FileContentResult DownLoadCustomer()
{
var query = new RB_Customer_Category_Extend()
{
Group_Id = base.UserInfo.Group_Id,
CategoryName = base.ParmJObj.GetStringValue("CategoryName"),
CatetoryType = (CatetoryTypeEnum)base.ParmJObj.GetInt("CatetoryType"),
};
int IsQueryAll = base.ParmJObj.GetInt("IsQueryAll");
if (IsQueryAll == 0)
{
query.CreateBy = base.UserInfo.Id;
}
var list = customerModule.GetCustomerCategoryPageModule(1, 100000, out long rowsCount, query);
string excelName = "同行资料.xls";
List<ExcelDataSource> slist = new List<ExcelDataSource>();
try
{
ExcelDataSource header = new ExcelDataSource();
header.ExcelRows = new List<ExcelColumn>()
{
new ExcelColumn("同业名称"){ CellWidth=40},
new ExcelColumn("类型"){ CellWidth=20},
new ExcelColumn("联系人数量"){ CellWidth=20},
new ExcelColumn("客户数量"){ CellWidth=20},
new ExcelColumn("订单数量"){ CellWidth=20},
new ExcelColumn("加入时间"){ CellWidth=30},
new ExcelColumn("负责人"){ CellWidth=20},
};
slist.Add(header);
foreach (var item in list)
{
var dataRow = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>()
{
new ExcelColumn(item.CategoryName),
new ExcelColumn(item.CatetoryType.ToName()),
new ExcelColumn(item.LinkManCount.ToString()),
new ExcelColumn(item.StudentCount.ToString()),
new ExcelColumn(item.OrderCount.ToString()),
new ExcelColumn(Common.ConvertHelper.FormatTime(item.CreateTime)),
new ExcelColumn(item.CreateByName),
}
};
slist.Add(dataRow);
}
var byteData = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData, "application/octet-stream", excelName);
}
catch (Exception ex)
{
LogHelper.Write(ex, "OutToExcelOrderStudentClassHoursList");
var byteData1 = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData1, "application/octet-stream", excelName);
}
}
/// <summary>
/// 获取同行列表
/// </summary>
......
......@@ -78,7 +78,7 @@ namespace Edu.WebApi.Controllers.Finance
{
return ApiResult.Success(result.message);
}
else
else
{
return ApiResult.Failed(result.message);
}
......@@ -111,7 +111,7 @@ namespace Edu.WebApi.Controllers.Finance
return ApiResult.Success("", pageModel);
}
else
else
{
return ApiResult.Failed("请传入指定的返佣类型");
}
......@@ -160,10 +160,12 @@ namespace Edu.WebApi.Controllers.Finance
//提成
decimal SaleCommission = (orderList != null && orderList.Any()) ? orderList.Where(x => x.IsCommissionGive == 1).Sum(x => x.CommissionMoney + x.ExtraCommissionMoney) : 0;//销售提成
if (orderList.Any()) {
if (orderList.Any())
{
string OrderIds = string.Join(",", orderList.Select(x => x.OrderId));
var achList = financeModule.GetAchListForOrderIds(OrderIds, base.UserInfo.Group_Id);
if (achList.Any()) {
if (achList.Any())
{
SaleCommission += achList.Sum(x => x.GiveOutMoney);// 业绩提成
}
}
......@@ -596,7 +598,7 @@ namespace Edu.WebApi.Controllers.Finance
//查询月结老师的课时费
var monthModel = financeModule.GetReserveClassHours(ReserveClassId, base.UserInfo.Group_Id);
var recultFiniceList = financeList.Select(x => new
{
x.FrID,
......@@ -688,7 +690,7 @@ namespace Edu.WebApi.Controllers.Finance
string subtitle = "试听班级名称";
string thirdTitle = "试听课程名称:";
string fourTitle = "试听开班时间:";
List<RB_Finance_Extend> financeReciveList = financeList.Where(t => t.Type == WFTempLateClassEnum.IN).ToList();
List<RB_Finance_Extend> financePayList = financeList.Where(t => t.Type == WFTempLateClassEnum.OUT).ToList();
......@@ -726,7 +728,7 @@ namespace Edu.WebApi.Controllers.Finance
{
HAlignmentEnum= HAlignmentEnum.LEFT
},
}
};
slist.Add(firstRow);
......@@ -1733,7 +1735,8 @@ namespace Edu.WebApi.Controllers.Finance
/// <returns></returns>
[AllowAnonymous]
[HttpPost]
public ApiResult UpdateStudentValidClassHours() {
public ApiResult UpdateStudentValidClassHours()
{
JObject jObj = JObject.Parse(RequestParm.Msg.ToString());
int GuestId = jObj.GetInt("GuestId", 0);
decimal Money = jObj.GetDecimal("Money");
......@@ -2083,7 +2086,7 @@ namespace Edu.WebApi.Controllers.Finance
string StartMonth = base.ParmJObj.GetStringValue("StartMonth");
string EndMonth = base.ParmJObj.GetStringValue("EndMonth");
string StudentName = base.ParmJObj.GetStringValue("StudentName");//学生名称
int StudentId = base.ParmJObj.GetInt("StudentId",0);//学员id
int StudentId = base.ParmJObj.GetInt("StudentId", 0);//学员id
int OrderId = base.ParmJObj.GetInt("OrderId", 0);//订单
string ContractNo = base.ParmJObj.GetStringValue("ContractNo");//合同编号
if (string.IsNullOrEmpty(StartMonth))
......@@ -2466,7 +2469,8 @@ namespace Edu.WebApi.Controllers.Finance
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetReceiptConfigInfo() {
public ApiResult GetReceiptConfigInfo()
{
var userInfo = base.UserInfo;
var model = financeModule.GetReceiptConfigInfo(userInfo);
......@@ -2485,7 +2489,8 @@ namespace Edu.WebApi.Controllers.Finance
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetReceiptConfigInfo() {
public ApiResult SetReceiptConfigInfo()
{
var userInfo = base.UserInfo;
RB_Receipt_Config_ViewModel demodel = JsonHelper.DeserializeObject<RB_Receipt_Config_ViewModel>(base.RequestParm.Msg.ToString());
if (string.IsNullOrEmpty(demodel.TempleteIds))
......@@ -2504,7 +2509,8 @@ namespace Edu.WebApi.Controllers.Finance
{
return ApiResult.Success();
}
else {
else
{
return ApiResult.Failed(msg);
}
}
......@@ -2514,7 +2520,8 @@ namespace Edu.WebApi.Controllers.Finance
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetReceiptInfoPageList() {
public ApiResult GetReceiptInfoPageList()
{
var userInfo = base.UserInfo;
ResultPageModel pmodel = JsonHelper.DeserializeObject<ResultPageModel>(base.RequestParm.Msg.ToString());
RB_Receipt_Info_ViewModel demodel = JsonHelper.DeserializeObject<RB_Receipt_Info_ViewModel>(base.RequestParm.Msg.ToString());
......@@ -2546,11 +2553,13 @@ namespace Edu.WebApi.Controllers.Finance
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetReceiptInfoForFinanceId() {
public ApiResult GetReceiptInfoForFinanceId()
{
var userInfo = base.UserInfo;
JObject parms = JObject.Parse(base.RequestParm.Msg.ToString());
int FinanceId = parms.GetInt("FinanceId", 0);
if (FinanceId <= 0) {
if (FinanceId <= 0)
{
return ApiResult.ParamIsNull();
}
......@@ -2579,16 +2588,20 @@ namespace Edu.WebApi.Controllers.Finance
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetReceiptInfo() {
public ApiResult SetReceiptInfo()
{
var userInfo = base.UserInfo;
RB_Receipt_Info_ViewModel demodel = JsonHelper.DeserializeObject<RB_Receipt_Info_ViewModel>(base.RequestParm.Msg.ToString());
if (demodel.FinanceId <= 0) {
if (demodel.FinanceId <= 0)
{
return ApiResult.ParamIsNull("请传递财务单据ID");
}
if (string.IsNullOrEmpty(demodel.Remitter)) {
if (string.IsNullOrEmpty(demodel.Remitter))
{
return ApiResult.ParamIsNull("请传递汇款人");
}
if (demodel.Money <= 0) {
if (demodel.Money <= 0)
{
return ApiResult.ParamIsNull("请传递收据金额");
}
......@@ -2607,7 +2620,8 @@ namespace Edu.WebApi.Controllers.Finance
{
return ApiResult.Success();
}
else {
else
{
return ApiResult.Failed(msg);
}
}
......@@ -2617,11 +2631,13 @@ namespace Edu.WebApi.Controllers.Finance
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult DelReceiptInfo() {
public ApiResult DelReceiptInfo()
{
var userInfo = base.UserInfo;
JObject parms = JObject.Parse(base.RequestParm.Msg.ToString());
int ReceiptId = parms.GetInt("ReceiptId", 0);
if (ReceiptId <= 0) {
if (ReceiptId <= 0)
{
return ApiResult.ParamIsNull();
}
......@@ -2630,10 +2646,14 @@ namespace Edu.WebApi.Controllers.Finance
{
return ApiResult.Success();
}
else {
else
{
return ApiResult.Failed(msg);
}
}
#endregion
}
}
......@@ -704,7 +704,7 @@ namespace Edu.WebApi.Controllers.StudyAbroad
{
Name = base.ParmJObj.GetStringValue("Name"),
Type = base.ParmJObj.GetInt("Type"),
CountryId = base.ParmJObj.GetInt("CountryId"),
CountryId = base.ParmJObj.GetStringValue("CountryId"),
};
query.Group_Id = base.UserInfo.Group_Id;
List<object> result = new List<object>();
......@@ -726,6 +726,7 @@ namespace Edu.WebApi.Controllers.StudyAbroad
item.Type,
item.Name,
item.CountryId,
item.CountryIdList,
item.CountryName,
item.CreateBy,
item.CreateByName,
......@@ -753,7 +754,7 @@ namespace Edu.WebApi.Controllers.StudyAbroad
{
Name = base.ParmJObj.GetStringValue("Name"),
Type = base.ParmJObj.GetInt("Type"),
CountryId = base.ParmJObj.GetInt("CountryId"),
CountryId = base.ParmJObj.GetStringValue("CountryId"),
};
query.Group_Id = base.UserInfo.Group_Id;
var list = studyAbroadModule.GetStudyabroadTypeListModule(query);
......@@ -772,9 +773,16 @@ namespace Edu.WebApi.Controllers.StudyAbroad
Id = base.ParmJObj.GetInt("Id"),
Type = base.ParmJObj.GetInt("Type"),
Name = base.ParmJObj.GetStringValue("Name"),
CountryId = base.ParmJObj.GetInt("CountryId"),
Num = base.ParmJObj.GetInt("Num"),
};
List<int> countryList = new List<int>();
var idList = base.ParmJObj.GetStringValue("CountryIdList");
if (!string.IsNullOrEmpty(idList))
{
countryList = JsonHelper.DeserializeObject<List<int>>(idList);
}
extModel.CountryId = string.Join(",", countryList);
extModel.CreateBy = base.UserInfo.Id;
extModel.CreateTime = DateTime.Now;
extModel.UpdateBy = base.UserInfo.Id;
......
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