Commit ea95149a authored by liudong1993's avatar liudong1993

Merge branch 'master' of http://gitlab.oytour.com/Kui2/mall.oytour.com into sdzq-ld

parents 004ac541 f6c5ff82
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Common.Plugin;
namespace Mall.Common.Enum.Point
{
/// <summary>
/// 订单状态 0-待付款,1-已支付,2-已确认,3已完成
/// </summary>
public enum OrderStausEnum
{
/// <summary>
/// 待付款
/// </summary>
[EnumField("待付款")]
NoPaid = 0,
/// <summary>
/// 待确认
/// </summary>
[EnumField("待确认")]
Paid = 1,
/// <summary>
/// 待上课
/// </summary>
[EnumField("待上课")]
NoClass = 2,
/// <summary>
/// 完成
/// </summary>
[EnumField("完成")]
Complete = 4
}
}
......@@ -64,6 +64,12 @@ namespace Mall.Model.Entity.Point
/// </summary>
public decimal StudyDuration { get; set; }
/// <summary>
/// 时长单位
/// </summary>
public DurationUnitEnum DurationUnit { get; set; }
/// <summary>
/// 删除状态
/// </summary>
......
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Common.Enum.Point;
using VT.FW.DB;
namespace Mall.Model.Entity.Point
{
/// <summary>
/// 老师课程
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Point_TeacherCourseOrder
{
public int ID { get; set; }
/// <summary>
/// 课程分类id
/// </summary>
public int CourseClassId { get; set; }
/// <summary>
/// 课程Id
/// </summary>
public string CourseId { get; set; }
/// <summary>
/// 老师id
/// </summary>
public int TeacherId { get; set; }
public int UserId { get; set; }
/// <summary>
/// 学习时间
/// </summary>
public DateTime StudyDate { get; set; }
/// <summary>
/// 时长
/// </summary>
public decimal StudyDuration { get; set; }
/// <summary>
/// 时长
/// </summary>
public decimal TotalStudyDuration { get; set; }
/// <summary>
/// 时长单位
/// </summary>
public DurationUnitEnum DurationUnit { get; set; }
/// <summary>
/// 订单状态 0-代付款,1-已支付,2-已确认,3已完成
/// </summary>
public OrderStausEnum OrderStaus { get; set; }
/// <summary>
/// 是否推送放假信息0-否,1-是
/// </summary>
public int IsSendRoom { get; set; }
/// <summary>
/// 房间信息
/// </summary>
public string RoomInfo { get; set; }
/// <summary>
/// 总点数
/// </summary>
public int TotalPointNum { get; set; }
/// <summary>
/// 实际总点数
/// </summary>
public int ActualPointNum { get; set; }
/// <summary>
/// 基础点数
/// </summary>
public int BasePointNum { get; set; }
/// <summary>
/// 删除状态
/// </summary>
public int? State
{
get;
set;
}
/// <summary>
/// 商户号
/// </summary>
public int TenantId
{
get;
set;
}
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId
{
get;
set;
}
/// <summary>
/// CreateDate
/// </summary>
public DateTime? CreateDate
{
get;
set;
}
/// <summary>
/// UpdateDate
/// </summary>
public DateTime? UpdateDate
{
get;
set;
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Model.Entity.Point;
namespace Mall.Model.Extend.Point
{
public class RB_Point_TeacherCourseOrder_Extend: RB_Point_TeacherCourseOrder
{
}
}
......@@ -20,22 +20,35 @@ namespace Mall.Model.Extend.Point
/// </summary>
public StudentNumTypeEnum StudentNumType { get; set; }
/// <summary>
/// 是否为公开课0-否,1-是
/// 分类名称
/// </summary>
public int IsPublic { get; set; }
public string ClassName { get; set; }
/// <summary>
/// 是否免费0-否,1-是
/// 学生人数名称
/// </summary>
public int IsFree { get; set; }
public string StudentNumTypeName { get; set; }
/// <summary>
/// 时长单位
/// 时长名称
/// </summary>
public DurationUnitEnum DurationUnit { get; set; }
public string DurationUnitName { get; set; }
/// <summary>
/// 是否为公开课0-否,1-是
/// </summary>
public int IsPublic { get; set; }
/// <summary>
/// 是否免费0-否,1-是
/// </summary>
public int IsFree { get; set; }
......
......@@ -374,7 +374,7 @@ namespace Mall.Module.Education
{ nameof(RB_Point_CourseClass_Extend.Sort), model.Sort },
{ nameof(RB_Point_CourseClass_Extend.PointNum), model.PointNum },
{ nameof(RB_Point_CourseClass_Extend.Duration), model.Duration },
{ nameof(RB_Point_CourseClass_Extend.DurationUnit), (int)model.Duration }
{ nameof(RB_Point_CourseClass_Extend.DurationUnit), model.DurationUnit }
};
IList<WhereHelper> auditrecordWhereHelpers = new List<WhereHelper>
{
......@@ -465,6 +465,97 @@ namespace Mall.Module.Education
{
return pointTeacherCourseRepository.GetTeacherCoursePageList(pageIndex, pageSize, out rowsCount, where);
}
/// <summary>
/// 新增/修改老师排课
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool SetTeacherCourse(RB_Point_TeacherCourse_Extend model)
{
if (model.ID == 0)
{
return pointTeacherCourseRepository.Insert(model) > 0;
}
else
{
IDictionary<string, object> fileds = new Dictionary<string, object>
{
{ nameof(RB_Point_TeacherCourse_Extend.UpdateDate), model.UpdateDate },
{ nameof(RB_Point_TeacherCourse_Extend.CourseClassId), model.CourseClassId },
{ nameof(RB_Point_TeacherCourse_Extend.TeacherId), model.TeacherId },
{ nameof(RB_Point_TeacherCourse_Extend.StudyDate), model.StudyDate },
{ nameof(RB_Point_TeacherCourse_Extend.StudyStartDate), model.StudyStartDate },
{ nameof(RB_Point_TeacherCourse_Extend.StudyEndDate), model.StudyEndDate },
{ nameof(RB_Point_TeacherCourse_Extend.PointNum), model.PointNum },
{ nameof(RB_Point_TeacherCourse_Extend.CourseName), model.CourseName },
{ nameof(RB_Point_TeacherCourse_Extend.MinDuration), model.MinDuration },
{ nameof(RB_Point_TeacherCourse_Extend.StudyDuration), model.StudyDuration }
};
IList<WhereHelper> auditrecordWhereHelpers = new List<WhereHelper>
{
new WhereHelper()
{
FiledName = nameof(RB_Point_TeacherCourse_Extend.ID),
FiledValue = model.ID,
OperatorEnum = OperatorEnum.Equal
},
new WhereHelper()
{
FiledName = nameof(RB_Point_TeacherCourse_Extend.TenantId),
FiledValue = model.TenantId,
OperatorEnum = OperatorEnum.Equal
},
new WhereHelper()
{
FiledName = nameof(RB_Point_TeacherCourse_Extend.MallBaseId),
FiledValue = model.MallBaseId,
OperatorEnum = OperatorEnum.Equal
}
};
return pointTeacherCourseRepository.Update(fileds, auditrecordWhereHelpers);
}
}
/// <summary>
/// 删除老师排课
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool DeleteTeacherCourse(RB_Point_TeacherCourse_Extend model)
{
IDictionary<string, object> fileds = new Dictionary<string, object>
{
{ nameof(RB_Point_TeacherCourse_Extend.UpdateDate), model.UpdateDate },
{ nameof(RB_Point_TeacherCourse_Extend.State),1 }
};
IList<WhereHelper> auditrecordWhereHelpers = new List<WhereHelper>
{
new WhereHelper()
{
FiledName = nameof(RB_Point_TeacherCourse_Extend.ID),
FiledValue = model.ID,
OperatorEnum = OperatorEnum.Equal
},
new WhereHelper()
{
FiledName = nameof(RB_Point_TeacherCourse_Extend.TenantId),
FiledValue = model.TenantId,
OperatorEnum = OperatorEnum.Equal
},
new WhereHelper()
{
FiledName = nameof(RB_Point_TeacherCourse_Extend.MallBaseId),
FiledValue = model.MallBaseId,
OperatorEnum = OperatorEnum.Equal
}
};
return pointTeacherCourseRepository.Update(fileds, auditrecordWhereHelpers);
}
#endregion
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Mall.Model.Entity.Point;
using Mall.Model.Extend.Point;
namespace Mall.Repository.Point
{
public class RB_Point_TeacherCourseOrderRepository:BaseRepository<RB_Point_TeacherCourseOrder>
{
/// <summary>
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Point_TeacherCourseOrder); } }
/// <summary>
/// 获取列表
/// </summary>
/// <param name="where"></param>
/// <returns></returns>
public List<RB_Point_TeacherCourseOrder_Extend> GetPointOrderList(RB_Point_TeacherCourseOrder_Extend where)
{
StringBuilder sb = new StringBuilder();
sb.Append($@"SELECT * from RB_Point_TeacherCourseOrder where state=0");
if (where != null)
{
if (where.TenantId > 0)
{
sb.AppendFormat(" and TenantId={0}", where.TenantId);
}
if (where.MallBaseId > 0)
{
sb.AppendFormat(" and MallBaseId={0}", where.MallBaseId);
}
if (where.ID > 0)
{
sb.AppendFormat(" and ID={0}", where.ID);
}
}
return Get<RB_Point_TeacherCourseOrder_Extend>(sb.ToString()).ToList();
}
/// <summary>
/// 分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="where"></param>
/// <returns></returns>
public List<RB_Point_TeacherCourseOrder_Extend> GetPointOrderPageList(int pageIndex, int pageSize, out long rowsCount, RB_Point_TeacherCourseOrder_Extend where)
{
StringBuilder sb = new StringBuilder();
sb.Append($@"SELECT a.*,b.`Name` as UserName from RB_Point_TeacherCourseOrder as a LEFT JOIN rb_member_user as b on a.UserId=b.Id where a.state=0 ");
if (where != null)
{
if (where.TenantId > 0)
{
sb.AppendFormat(" and a.TenantId={0}", where.TenantId);
}
if (where.MallBaseId > 0)
{
sb.AppendFormat(" and a.MallBaseId={0}", where.MallBaseId);
}
if (where.ID > 0)
{
sb.AppendFormat(" and a.ID={0}", where.ID);
}
if (where.OrderStaus > 0)
{
sb.AppendFormat(" and a.OrderStaus={0}", where.OrderStaus);
}
}
return GetPage<RB_Point_TeacherCourseOrder_Extend>(pageIndex, pageSize, out rowsCount, sb.ToString()).ToList();
}
}
}
......@@ -23,7 +23,7 @@ namespace Mall.Repository.Point
{
StringBuilder sb = new StringBuilder();
sb.Append($@"SELECT tc.*,et.`Name` as TeacherName,et.TeacherLogo,cc.CourseClassType,
cc.StudentNumType,cc.IsPublic,cc.IsFree,cc.DurationUnit
cc.StudentNumType,cc.IsPublic,cc.IsFree
from RB_Point_TeacherCourse as tc
LEFT JOIN rb_point_courseclass as cc on tc.CourseClassId=cc.ID
LEFT JOIN rb_education_teacher as et on tc.TeacherId=et.ID
......
......@@ -275,7 +275,8 @@ namespace Mall.WebApi.Controllers.Education
{
oldPointGoodsModel = new RB_Point_CourseClass_Extend();
}
else {
else
{
oldPointGoodsModel.ClassName = EnumHelper.GetEnumName(oldPointGoodsModel.CourseClassType);
oldPointGoodsModel.StudentNumTypeName = EnumHelper.GetEnumName(oldPointGoodsModel.StudentNumType);
oldPointGoodsModel.DurationUnitName = EnumHelper.GetEnumName(oldPointGoodsModel.DurationUnit);
......@@ -284,6 +285,27 @@ namespace Mall.WebApi.Controllers.Education
}
/// <summary>
/// 获取下拉
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetPointCourseClassList()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Point_CourseClass_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
var oldPointGoodsList = pointModule.GetPointCourseClassList(query);
oldPointGoodsList.ForEach(x => x.ClassName = EnumHelper.GetEnumName(x.CourseClassType));
oldPointGoodsList.ForEach(x => x.StudentNumTypeName = EnumHelper.GetEnumName(x.StudentNumType));
oldPointGoodsList.ForEach(x => x.DurationUnitName = EnumHelper.GetEnumName(x.DurationUnit));
return ApiResult.Success("", oldPointGoodsList);
}
/// <summary>
/// 保存课程分类信息
/// </summary>
......@@ -416,5 +438,233 @@ namespace Mall.WebApi.Controllers.Education
}));
}
#endregion
#region 老师排课
[HttpPost]
public ApiResult GetTeacherCourseList()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Point_TeacherCourse_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
if (string.IsNullOrWhiteSpace(query.SelectStartTime) || string.IsNullOrWhiteSpace(query.SelectEndTime))
{
return ApiResult.Failed("请传入查询时间范围");
}
var oldPointGoodsList = pointModule.GetTeacherCourseList(query);
if (oldPointGoodsList != null && oldPointGoodsList.Any())
{
oldPointGoodsList.ForEach(x => x.ClassName = EnumHelper.GetEnumName(x.CourseClassType));
oldPointGoodsList.ForEach(x => x.StudentNumTypeName = EnumHelper.GetEnumName(x.StudentNumType));
oldPointGoodsList.ForEach(x => x.DurationUnitName = EnumHelper.GetEnumName(x.DurationUnit));
}
List<object> result = new List<object>();
DateTime startTime = Convert.ToDateTime(query.SelectStartTime);
DateTime endTime = Convert.ToDateTime(query.SelectEndTime);
TimeSpan sp = endTime.Subtract(startTime);
for (int i = 0; i <= sp.Days; i++)
{
string DayTime = string.Empty;
List<object> planList = new List<object>();
var nowDayList = oldPointGoodsList.Where(x => x.StudyDate.ToString("yyyy-MM-dd") == startTime.AddDays(i).ToString("yyyy-MM-dd"));
foreach (var item in nowDayList)
{
planList.Add(new
{
item.ID,
item.OrderNum,
item.TeacherId,
item.TeacherLogo,
item.TeacherName,
item.StudyDuration,
item.CourseClassId,
item.StudyStartDate,
item.StudyEndDate,
item.PointNum,
item.CourseName,
item.ClassName,
item.MinDuration,
item.StudentNumTypeName,
item.DurationUnitName
});
}
result.Add(new
{
DayTime,
DateYear = startTime.AddDays(i).ToString("yyyy"),
DateMonth = startTime.AddDays(i).ToString("MM"),
DateDay = startTime.AddDays(i).ToString("dd"),
WeekStr = StringHelper.GetWeekChar(startTime.AddDays(i)),
PlanList = planList
});
}
return ApiResult.Success("", result);
}
/// <summary>
/// 获取详情
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetTeacherCourseModel()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Point_TeacherCourse_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
var oldPointGoodsModel = pointModule.GetTeacherCourseList(query).FirstOrDefault();
if (oldPointGoodsModel == null)
{
oldPointGoodsModel = new RB_Point_TeacherCourse_Extend();
}
else
{
oldPointGoodsModel.ClassName = EnumHelper.GetEnumName(oldPointGoodsModel.CourseClassType);
oldPointGoodsModel.StudentNumTypeName = EnumHelper.GetEnumName(oldPointGoodsModel.StudentNumType);
oldPointGoodsModel.DurationUnitName = EnumHelper.GetEnumName(oldPointGoodsModel.DurationUnit);
}
return ApiResult.Success("", oldPointGoodsModel);
}
/// <summary>
/// 保存老师排课信息
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetSetTeacherCourse()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Point_TeacherCourse_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
if (query == null)
{
return ApiResult.Failed("请传入排课信息");
}
else
{
if (query.ID == 0)
{
query.CreateDate = System.DateTime.Now;
}
if (query.CourseClassId == 0)
{
return ApiResult.Failed("请选择课程类型");
}
if (query.TeacherId == 0)
{
return ApiResult.Failed("请选择老师");
}
if (query.PointNum == 0)
{
return ApiResult.Failed("请输入点数");
}
if (query.StudyDuration == 0)
{
return ApiResult.Failed("请输入课时时长");
}
if (query.MinDuration == 0)
{
return ApiResult.Failed("请输入最少约课时长");
}
if (string.IsNullOrWhiteSpace(query.CourseName))
{
return ApiResult.Failed("请输入课程名称");
}
//判断时间范围内是否有重复的排课
var oldPointGoodsList = pointModule.GetTeacherCourseList(new RB_Point_TeacherCourse_Extend
{
TenantId = UserInfo.TenantId,
MallBaseId = parms.MallBaseId,
TeacherId = query.TeacherId,
SelectEndTime = query.StudyDate.ToString("yyyy-MM-dd"),
SelectStartTime = query.StudyDate.ToString("yyyy-MM-dd")
}).Where(x => x.ID != query.ID).ToList();
query.StudyStartTime = Convert.ToDateTime(query.StudyDate.ToString("yyyy-MM-dd") + " " + query.StudyStartDate);
query.StudyEndTime = Convert.ToDateTime(query.StudyDate.ToString("yyyy-MM-dd") + " " + query.StudyEndDate);
oldPointGoodsList.ForEach(x => x.StudyStartTime = Convert.ToDateTime(x.StudyDate.ToString("yyyy-MM-dd") + " " + x.StudyStartDate));
oldPointGoodsList.ForEach(x => x.StudyEndTime = Convert.ToDateTime(x.StudyDate.ToString("yyyy-MM-dd") + " " + x.StudyEndDate));
foreach (var item in oldPointGoodsList)
{
if (GetTimeSpan(query.StudyStartTime, item.StudyStartDate, item.StudyEndDate))
{
return ApiResult.Failed("排课时间不能交叉,已存在" + item.StudyStartDate + "~" + item.StudyEndDate);
}
}
query.State = 0;
query.UpdateDate = System.DateTime.Now;
bool result = pointModule.SetTeacherCourse(query);
if (result)
{
return ApiResult.Success("老师排课信息保存成功");
}
else
{
return ApiResult.Failed("老师排课信息保存失败");
}
}
}
public bool GetTimeSpan(DateTime timeStr, string StartTime, string EndTime)
{
//判断当前时间是否在工作时间段内
TimeSpan dspWorkingDayAM = DateTime.Parse(StartTime).TimeOfDay;
TimeSpan dspWorkingDayPM = DateTime.Parse(EndTime).TimeOfDay;
TimeSpan dspNow = timeStr.TimeOfDay;
if (dspNow > dspWorkingDayAM && dspNow < dspWorkingDayPM)
{
return true;
}
return false;
}
/// <summary>
/// 删除老师排课
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult DeleteTeacherCourse()
{
var parms = RequestParm;
JObject parmsJob = JObject.Parse(RequestParm.msg.ToString());
int Id = parmsJob.GetInt("Id", 0);
if (Id == 0)
{
return ApiResult.Failed("请选择您要删除的老师排课信息");
}
bool flag = pointModule.DeleteTeacherCourse(new RB_Point_TeacherCourse_Extend { ID = Id, TenantId = UserInfo.TenantId, MallBaseId = parms.MallBaseId });
if (flag)
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed();
}
}
#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