using Edu.Cache.User; using Edu.Common.API; using Edu.Common.Enum.Sale; using Edu.Common.Plugin; using Edu.Model.ViewModel.Course; using Edu.Module.Course; using Edu.WebApi.Filter; using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; namespace Edu.WebApi.Controllers.Course { /// <summary> /// 课程报价单控制器 /// </summary> [Route("api/[controller]/[action]")] [ApiExceptionFilter] [ApiController] [EnableCors("AllowCors")] public class CourseOfferController : BaseController { /// <summary> /// 课程报价单处理类对象 /// </summary> private readonly CourseOfferModule courseOfferModule = AOP.AOPHelper.CreateAOPObject<CourseOfferModule>(); #region 课程报价单管理 /// <summary> /// 获取课程报价单分页列表 /// </summary> /// <returns></returns> [HttpPost] public ApiResult GetCourseOfferPage() { var pageModel = Common.Plugin.JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString()); var query = new RB_Course_Offer_ViewModel() { Name = base.ParmJObj.GetStringValue("Name"), CreateBy = base.ParmJObj.GetInt("CreateBy"), QStart = base.ParmJObj.GetStringValue("QStart"), QEnd = base.ParmJObj.GetStringValue("QEnd"), CustomerInfo = base.ParmJObj.GetStringValue("CustomerInfo"), CustomerSource = (CustomerSourceEnum)base.ParmJObj.GetInt("CustomerSource"), CustomerType = (CustomerTypeEnum)base.ParmJObj.GetInt("CustomerType"), CustomerStatus = (CustomerStatusEnum)base.ParmJObj.GetInt("CustomerStatus"), SerialNum=base.ParmJObj.GetStringValue("SerialNum"), IsGetDetails=base.ParmJObj.GetInt("IsGetDetails"), CustomerName=base.ParmJObj.GetStringValue("CustomerName"), CustomerTel=base.ParmJObj.GetStringValue("CustomerTel") }; query.Group_Id = base.UserInfo.Group_Id; query.School_Id = base.UserInfo.School_Id; var list = courseOfferModule.GetCourseOfferPageModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); foreach (var item in list) { if (item.CreateBy > 0) { item.CreateByName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? ""; } if (item.UpdateBy > 0) { item.UpdateByName = UserReidsCache.GetUserLoginInfo(item.UpdateBy)?.AccountName ?? ""; } } pageModel.Count = rowsCount; pageModel.PageData = list.Select(qitem => new { qitem.Id, qitem.SerialNum, qitem.Name, EffectiveStart = qitem.EffectiveStartStr, EffectiveEnd = qitem.EffectiveEndStr, qitem.CustomerType, qitem.CustomerTypeName, qitem.CustomerSource, qitem.CustomerSourceName, qitem.TotalOriginalPrice, qitem.TotalPrice, qitem.TotalDiscountPrice, qitem.CustomerStatus, qitem.CustomerStatusName, qitem.CustomerInfo, qitem.CreateBy, qitem.CreateByName, qitem.CreateTimeStr, qitem.UpdateBy, qitem.UpdateByName, qitem.UpdateTimeStr, qitem.OfferDetails, qitem.CustomerName, qitem.CustomerTel, qitem.JoinNum, }); return ApiResult.Success(data: pageModel); } /// <summary> /// 获取课程报价单列表 /// </summary> /// <returns></returns> [HttpPost] public ApiResult GetCourseOfferList() { var query = new RB_Course_Offer_ViewModel() { Name = base.ParmJObj.GetStringValue("Name") }; query.Group_Id = base.UserInfo.Group_Id; query.School_Id = base.UserInfo.School_Id; var list = courseOfferModule.GetCourseOfferListModule(query); return ApiResult.Success(data: list); } /// <summary> /// 新增修改课程报价单 /// </summary> /// <returns></returns> [HttpPost] public ApiResult SetCourseOffer() { var extModel = new RB_Course_Offer_ViewModel() { Id = base.ParmJObj.GetInt("Id"), Name = base.ParmJObj.GetStringValue("Name"), EffectiveStart = base.ParmJObj.GetDateTime("EffectiveStart"), EffectiveEnd = base.ParmJObj.GetDateTime("EffectiveEnd"), CustomerType = (CustomerTypeEnum)base.ParmJObj.GetInt("CustomerType"), CustomerSource = (CustomerSourceEnum)base.ParmJObj.GetInt("CustomerSource"), TotalOriginalPrice = base.ParmJObj.GetDecimal("TotalOriginalPrice"), TotalPrice = base.ParmJObj.GetDecimal("TotalPrice"), TotalDiscountPrice = base.ParmJObj.GetDecimal("TotalDiscountPrice"), CustomerInfo = base.ParmJObj.GetStringValue("CustomerInfo"), CustomerName=base.ParmJObj.GetStringValue("CustomerName"), CustomerTel=base.ParmJObj.GetStringValue("CustomerTel"), JoinNum=base.ParmJObj.GetInt("JoinNum") }; try { extModel.OfferDetails = Common.Plugin.JsonHelper.DeserializeObject<List<RB_Course_OfferDetails_ViewModel>>(base.ParmJObj.GetStringValue("OfferDetails")); } catch (Exception ex) { Common.Plugin.LogHelper.Write(ex, "SetCourseCategory"); } extModel.CustomerStatus = CustomerStatusEnum.NoSure; extModel.CreateTime = DateTime.Now; extModel.CreateBy = UserInfo.Id; extModel.UpdateBy = UserInfo.Id; extModel.UpdateTime = DateTime.Now; extModel.Group_Id = this.UserInfo.Group_Id; extModel.School_Id = this.UserInfo.School_Id; extModel.Status = Common.Enum.DateStateEnum.Normal; bool flag = courseOfferModule.SetCourseOfferModule(extModel); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// <summary> /// 获取课程报价单实体 /// </summary> /// <returns></returns> [HttpPost] public ApiResult GetCourseOffer() { var Id = base.ParmJObj.GetInt("Id", 0); var extModel = courseOfferModule.GetCourseOfferModule(Id); var obj = new { extModel?.Id, extModel?.Name, EffectiveStart = extModel?.EffectiveStartStr, EffectiveEnd = extModel?.EffectiveEndStr, extModel?.CustomerType, extModel?.CustomerSource, extModel?.TotalOriginalPrice, extModel?.TotalPrice, extModel?.TotalDiscountPrice, extModel?.CustomerInfo, extModel?.CustomerStatus, extModel?.CreateBy, extModel?.CustomerTel, extModel?.CustomerName, extModel?.JoinNum, CreateByName = extModel.CreateBy>0 ? UserReidsCache.GetUserLoginInfo(extModel.CreateBy)?.AccountName ?? "":"", extModel?.SerialNum, OfferDetails = extModel?.OfferDetails ?? new List<RB_Course_OfferDetails_ViewModel>() }; return ApiResult.Success(data: obj); } /// <summary> /// 删除课程报价单 /// </summary> /// <returns></returns> [HttpPost] public ApiResult RemoveCourseOffer() { var Id = base.ParmJObj.GetInt("Id", 0); int Status = base.ParmJObj.GetInt("Status", 0); var flag = courseOfferModule.RemoveCourseOfferModule(Id, Status); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// <summary> /// 客户修改课程报价单确认状态 /// </summary> /// <returns></returns> [HttpPost] public ApiResult SetCourseOfferCustomerStatus() { var Id = base.ParmJObj.GetInt("Id", 0); int CustomerStatus = base.ParmJObj.GetInt("CustomerStatus", 0); var flag = courseOfferModule.SetCourseOfferCustomerStatusModule(Id, CustomerStatus); return flag ? ApiResult.Success() : ApiResult.Failed(); } /// <summary> /// 获取枚举相关列表 /// </summary> /// <returns></returns> public ApiResult GetCustomerEnum() { var CustomerTypeList = Common.Plugin.EnumHelper.EnumToList(typeof(CustomerTypeEnum)); var CustomerSourceList = Common.Plugin.EnumHelper.EnumToList(typeof(CustomerSourceEnum)); var CustomerStatusList = Common.Plugin.EnumHelper.EnumToList(typeof(CustomerStatusEnum)); var data = new { CustomerTypeList, CustomerSourceList, CustomerStatusList, }; return ApiResult.Success(data: data); } #endregion } }