using Common.DbExtends.Extends; using Common.DbExtends.Others; using Common.Models.Enums; using Common.Models.UnqTables; using Common.Requests.Lianmengs; using Server.MyClass.Views; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.Http; namespace Server.Controllers.AccountManagement { public partial class LianmengController { #region 抖音代码 /// /// 抖音- 查询 /// /// [HttpPost, ErrorFilter] public WebResult GetDouyinMedias() { try { var pageSize = GetInt("PageSize", true); var index = GetInt("PageIndex", true); var LianmengId = GetInt("LianmengId"); var KeyWord = GetString("KeyWord"); var exp = Expressionable.Create(); if (LianmengId > 0) { exp.And(f => f.LianmengId == LianmengId); } if (!string.IsNullOrEmpty(KeyWord)) { exp.And(f => f.Pid.Contains(KeyWord) || f.AdzoneName.Contains(KeyWord) || f.Remark.Contains(KeyWord)); } exp.And(f => f.IsDelete == false); var tNumber = 0; var DataList = Db.Queryable() .LeftJoin((f, r) => f.LianmengId == r.Id) .Where(exp.ToExpression()) .Select((f, r) => new DyMediaShow { Id = f.Id, LianmengId = f.LianmengId, LianmengNick = r.Nickname, Pid = f.Pid, AdzoneName = f.AdzoneName, MediaType = f.MediaType, MediaName = f.MediaName, Remark = f.Remark }) .ToPageList(index, pageSize, ref tNumber); //计算使用人数 foreach (var item in DataList) { item.UseCnt = Db.Queryable().Count(p => p.TbMediaId1 == item.Id || p.TbMediaId2 == item.Id); } return PutData(new PageResult(DataList, tNumber, pageSize, index)); } catch (Exception ex) { return PutData(ex); } } /// /// 抖音-新增 /// /// [HttpPost, ErrorFilter] public WebResult AddDouyinMedia() { var LianmengId = GetInt("LianmengId", true); var AdzoneName = GetString("AdzoneName", true); var MediaName = GetString("MediaName", true); var MediaType = GetEnum("MediaType", true); var Remark = GetString("Remark", false); var lm = Db.GetLianmeng(LianmengId); DouyinRequest req = new DouyinRequest(lm); var Pid = req.CreateDouyinPidAdzone(AdzoneName, MediaName, MediaType, true); var media = new DyMedia() { AdzoneName = AdzoneName, MediaName = MediaName, IsDelete = false, LianmengId = LianmengId, MediaType = MediaType, Pid = Pid, Remark = Remark, UpdateTime = 0 }; Db.Save(media); return PutData(media); } /// /// 抖音-修改推广位名称 /// /// [HttpPost, ErrorFilter] public WebResult UpdDouyinAdzoneName() { var id = GetInt("MediaId", true); var dyMedia = Db.GetDyMedia(id); if (dyMedia == null) return PutData("编辑失败,未找到该推广位信息"); var dyLianmeng = Db.GetLianmeng(dyMedia.LianmengId); if (dyLianmeng == null) return PutData("编辑失败,未找到该联盟信息"); var AdzoneName = GetString("AdzoneName", true); DouyinRequest req = new DouyinRequest(dyLianmeng, dyMedia); req.UpdateDouyinPidAdzone(dyMedia.Pid, AdzoneName, true); dyMedia.AdzoneName = AdzoneName; var remark = GetString("Remark"); if (!string.IsNullOrEmpty(remark)) dyMedia.Remark = remark; Db.Save(dyMedia); return PutSuccess; } /// /// 抖音 - 删除推广位 /// /// public WebResult DelDouyinMedia() { var lianmengId = GetInt("LianmengId", true); var dyPids = GetStringList("DyPids", true); if (dyPids != null && dyPids.Count > 0) { //去抖音API执行真实删除 var dyLianmeng = Db.GetLianmeng(lianmengId); if (dyLianmeng != null) { var req = new DouyinRequest(dyLianmeng); req.DeleteDouyinPidAdzone(dyPids.ToArray(), false); } var rst =Db.Deleteable().Where(f => dyPids.Contains(f.Pid) && f.LianmengId == lianmengId).ExecuteCommand(); DataCache.RemoveByPattern(@"cache_dymedia_[\d]+"); } return PutSuccess; } #endregion } }