using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Edu.Common.API; using Edu.Common.Plugin; using Edu.Model.CacheModel; using Edu.Model.ViewModel.Advertising; using Edu.Module.Advertising; using Edu.WebApi.Filter; using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace Edu.WebApi.Controllers.Advertising { [Route("api/[controller]/[action]")] [ApiExceptionFilter] [ApiController] [EnableCors("AllowCors")] public class AdvertisingController : BaseController { /// <summary> /// 广告处理对象 /// </summary> private readonly AdvertisingModule advertisingModule = AOP.AOPHelper.CreateAOPObject<AdvertisingModule>(); #region 广告管理 /// <summary> /// 新增修改广告基础信息 /// </summary> /// <param name="request"></param> /// <returns></returns> [HttpPost] public ApiResult SetAdvertising() { UserInfo userInfo = base.UserInfo; Rb_Advertising_Extend dmodel = new Rb_Advertising_Extend { IsFee = base.ParmJObj.GetInt("IsFee"), ChargeAmount = base.ParmJObj.GetDecimal("ChargeAmount"), PictureUrl = base.ParmJObj.GetStringValue("PictureUrl"), SamplePicturesUrl = base.ParmJObj.GetStringValue("SamplePicturesUrl"), Title = base.ParmJObj.GetStringValue("Title"), ID = base.ParmJObj.GetInt("ID", 0) }; try { dmodel.LableList = Common.Plugin.JsonHelper.DeserializeObject<List<string>>(base.ParmJObj.GetStringValue("LableList")); } catch (Exception ex) { dmodel.LableList = new List<string>(); Common.Plugin.LogHelper.Write(ex, "SetAdvertising"); } if (dmodel.LableList != null && dmodel.LableList.Any()) { dmodel.Lable = Common.Plugin.JsonHelper.Serialize(dmodel.LableList); } else { dmodel.Lable = ""; } if (dmodel.IsFee == 1) { if (!dmodel.ChargeAmount.HasValue && dmodel.ChargeAmount <= 0) { return ApiResult.ParamIsNull("请输入收费金额!"); } } if (dmodel.ID == 0) { dmodel.CreateDate = System.DateTime.Now; dmodel.CreateBy = userInfo.Id; dmodel.Group_Id = userInfo.Group_Id; } bool flag = advertisingModule.SetAdvertising(dmodel); if (flag) { return ApiResult.Success(); } else { return ApiResult.Failed(); } } /// <summary> /// 删除广告 /// </summary> /// <param name="request"></param> /// <returns></returns> [HttpPost] public ApiResult DelAdvertising() { var BAID = base.ParmJObj.GetInt("BAID"); if (BAID <= 0) { return ApiResult.ParamIsNull(); } var flag = advertisingModule.DelAdvertising(BAID); if (flag) { return ApiResult.Success(); } else { return ApiResult.Failed(); } } /// <summary> /// 获取广告列表 /// </summary> /// <param name="request"></param> /// <returns></returns> [HttpPost] public ApiResult GetAdvertisingList() { UserInfo userInfo = base.UserInfo; ResultPageModel pmodel = JsonConvert.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString()); int IsFee = base.ParmJObj.GetInt("IsFee", 0); string AdvName = base.ParmJObj.GetStringValue("AdvName"); List<Rb_Advertising_Extend> list = advertisingModule.GetAdvertisingList(pmodel.PageIndex, pmodel.PageSize, out long count, AdvName, IsFee, userInfo.Group_Id); list.ForEach(x => x.LableList = !string.IsNullOrWhiteSpace(x.Lable) ? JsonConvert.DeserializeObject<List<string>>(x.Lable) : new List<string>()); pmodel.Count = Convert.ToInt32(count.ToString()); pmodel.PageData = list.Select(x => new { x.ID, x.Title, PictureUrl = x.PictureUrl ?? "", SamplePicturesUrl = x.SamplePicturesUrl ?? "", x.IsFee, x.ChargeAmount, x.AdvertisingCount, x.LableList }); return ApiResult.Success("", pmodel); } /// <summary> /// 获取广告详情 /// </summary> /// <param name="request"></param> /// <returns></returns> [HttpPost] public ApiResult GetAdvertsingInfo() { int BAID = base.ParmJObj.GetInt("BAID", 0); if (BAID <= 0) { return ApiResult.ParamIsNull(); } var model = advertisingModule.GetAdvertsingInfo(BAID); if (model != null) { List<string> LableList = new List<string>(); if (!string.IsNullOrWhiteSpace(model.Lable)) { LableList = JsonConvert.DeserializeObject<List<string>>(model.Lable); } var obj = new { model.ID, model.Lable, model.PictureUrl, model.SamplePicturesUrl, model.Status, model.Title, model.ChargeAmount, model.IsFee, model.Group_Id, CreateDate = model.CreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss"), model.CreateBy, LableList }; return ApiResult.Success("请求成功!", obj); } else { return ApiResult.Failed("请求失败,数据不存在!"); } } /// <summary> /// 根据where 查询列表 /// </summary> /// <param name="request"></param> /// <returns></returns> [HttpPost] public ApiResult GetAdvertsingListForComboBox() { UserInfo userInfo = base.UserInfo; string AdvName = base.ParmJObj.GetStringValue("AdvName"); List<Rb_Advertising_Extend> list = advertisingModule.GetAdvertsingListForComboBox(AdvName, userInfo.Group_Id); var list1 = list.Select(x => new { x.ID, x.Title }); return ApiResult.Success("", list1); } #endregion #region 制作广告 /// <summary> /// 获取分页列表 /// </summary> /// <param name="request"></param> /// <returns></returns> [HttpPost] public ApiResult GetPageList() { ResultPageModel pmodel = JsonConvert.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString()); Rb_Advertising_Make_Extend model = JsonConvert.DeserializeObject<Rb_Advertising_Make_Extend>(RequestParm.Msg.ToString()); UserInfo userInfo = base.UserInfo; model.UpdateBy = userInfo.Id; var data = advertisingModule.GetPageList(pmodel.PageIndex, pmodel.PageSize, model, out long count); var list = data.Select(x => new { x.ID, x.Title, x.Content, x.AdvertisingPicUrl, AdvertisingPicUrlStr = x.AdvertisingPicUrl ?? "", PictureUrl = x.PictureUrl ?? "", SamplePicturesUrl = x.SamplePicturesUrl ?? "", x.SecretKey, x.AdvertisingID }).ToList(); pmodel.Count = int.Parse(count.ToString()); pmodel.PageData = list; return ApiResult.Success("", data: pmodel); } /// <summary> /// 通过ID获取信息 /// </summary> /// <param name="request"></param> /// <returns></returns> [HttpPost] public ApiResult Get() { UserInfo userInfo = base.UserInfo; int ID = base.ParmJObj.GetInt("ID"); if (ID == 0) { return ApiResult.Failed("请求参数错误!"); } Rb_Advertising_Make_Extend model = advertisingModule.GetList(new Rb_Advertising_Make_Extend { ID = ID }).FirstOrDefault(); if (model != null) { var obj = new { model.ID, model.Title, model.SecretKey, model.Content, AdvertisingPicUrlStr = model.AdvertisingPicUrl ?? "", PictureUrl = model.PictureUrl ?? "", SamplePicturesUrl = model.SamplePicturesUrl ?? "", model.AdvertisingID }; return ApiResult.Success("请求成功!", data: obj); } else { return ApiResult.Failed("请求失败,数据不存在!"); } } /// <summary> /// 添加修改 /// </summary> /// <param name="request"></param> /// <returns></returns> [HttpPost] public ApiResult Set() { UserInfo userInfo = base.UserInfo; Rb_Advertising_Make_Extend model = JsonConvert.DeserializeObject<Rb_Advertising_Make_Extend>(RequestParm.Msg.ToString()); string fileName = base.ParmJObj.GetStringValue("fileName"); long fileSize = base.ParmJObj.GetLong("fileSize"); if (model.AdvertisingID == 0) { return ApiResult.Failed("请关联广告!"); } if (string.IsNullOrWhiteSpace(model.Content)) { return ApiResult.Failed("请填写广告内容!"); } model.School_Id = userInfo.School_Id; model.Group_Id = userInfo.Group_Id; model.UpdateBy = userInfo.Id; model.UpdateDate = System.DateTime.Now; model.Status = (int)Common.Enum.DateStateEnum.Normal; int ID = advertisingModule.Set(model, fileName, fileSize); if (ID > 0) return ApiResult.Success("保存成功", new { result = ID }); else return ApiResult.Failed("请求失败!"); } /// <summary> /// 删除 /// </summary> /// <param name="request"></param> /// <returns></returns> [HttpPost] public ApiResult Remove() { int ID = base.ParmJObj.GetInt("ID"); UserInfo userInfo = base.UserInfo; bool flag = advertisingModule.Remove(ID, userInfo.Id); if (flag) return ApiResult.Success(); else return ApiResult.Failed("请求失败!"); } #endregion } }