1356 lines
55 KiB
C#
1356 lines
55 KiB
C#
using Common.DbExtends;
|
||
using Common.DbExtends.Extends;
|
||
using Common.Models.Enums;
|
||
using Common.Models.UnqTables;
|
||
using Common.Requests.Lianmengs;
|
||
using CsharpHttpHelper;
|
||
using Newtonsoft.Json.Linq;
|
||
using Server.MyClass.Views;
|
||
using Server.MyClass.Views.medias;
|
||
using Server.Utils;
|
||
using Server.Winforms.LoginForms;
|
||
using SqlSugar;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Threading;
|
||
using System.Threading.Tasks;
|
||
using System.Web;
|
||
using System.Web.Http;
|
||
|
||
namespace Server.Controllers.AccountManagement
|
||
{
|
||
public partial class LianmengController : DefaultController
|
||
{
|
||
private const string VipAppId = "9f7a9b3d";
|
||
private const string VipAppSecret = "074B0E1FFB94334FDEC993913884EC7F";
|
||
|
||
static object lockObj = new object();
|
||
/// <summary>
|
||
/// 登录联盟 - 未完成
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
[System.Web.Http.HttpPost, ErrorFilter]
|
||
public WebResult Login()
|
||
{
|
||
///TODO:未完成联盟登录
|
||
var type = GetEnum<LianmengType>("LianmengType");
|
||
var callBack = GetUrl() + "lianmeng/";
|
||
string url = "";
|
||
var token = Guid.NewGuid().ToString("N");
|
||
|
||
switch (type)
|
||
{
|
||
case LianmengType.淘宝联盟:
|
||
{
|
||
var time = DateTime.Now.AddSeconds(30);
|
||
var login = LianMengWebViewLoginHelper.Instance.GetViewLogin();
|
||
if (login == null)
|
||
{
|
||
return PutData("服务启动失败,请重试。");
|
||
}
|
||
|
||
login.Start(LianmengType.淘宝联盟);
|
||
while (DateTime.Now < time)
|
||
{
|
||
if (!string.IsNullOrEmpty(login.QRCodeUrl))
|
||
{
|
||
CacheHelper.GetIntance().SetCache(login.Msgid, login, 60 * 5);
|
||
return PutData(new { Msgid = login.Msgid, QRCodeUrl = login.QRCodeUrl });
|
||
}
|
||
Thread.Sleep(100);
|
||
}
|
||
login.Dispose();
|
||
return PutData("获取二维码失败,请稍后重试!");
|
||
}
|
||
case LianmengType.京东联盟:
|
||
try
|
||
{
|
||
var authId = GetLong("authId", true);
|
||
var authUser = authId.ToString();
|
||
var authKey = GetString("authKey", true).Trim();
|
||
var remark = GetString("remark");
|
||
var et = GetString("et", true);
|
||
var exTime = DateTime.ParseExact(et, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture);
|
||
var jdApi = new JingdongRequest(new Lianmeng() { Username = authId.ToString(), Token = authKey, LianmengType = LianmengType.京东联盟 });
|
||
var result = jdApi.SendData("jd.union.open.position.query", new { positionReq = new { unionType = 1, pageSize = 1, pageIndex = 1, unionId = authId, key = authKey } });
|
||
JObject res = JObject.Parse(result.ToString());
|
||
if ((int)res["code"] == 200)
|
||
{
|
||
string auIdStr = authId.ToString();
|
||
|
||
var tar = Db.Queryable<Lianmeng>().First(p => p.Username == auIdStr && p.LianmengType == LianmengType.京东联盟);
|
||
if (tar == null)
|
||
{
|
||
tar = new Lianmeng() { LianmengType = LianmengType.京东联盟, ExpirationTime = exTime, Nickname = authUser, Username = authUser, Token = authKey, Cookies = "", Remark = remark };
|
||
}
|
||
else
|
||
{
|
||
tar.Username = authUser;
|
||
tar.Nickname = authUser;
|
||
tar.Token = authKey;
|
||
tar.Remark = remark;
|
||
tar.ExpirationTime = exTime;
|
||
}
|
||
Db.Save(tar);
|
||
if (tar.Id != 0)
|
||
{
|
||
GetJdAds(authUser, authKey, jdApi, tar);
|
||
return PutSuccess;
|
||
}
|
||
}
|
||
return PutError;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return PutData(ex);
|
||
}
|
||
case LianmengType.拼多多联盟:
|
||
callBack += "Pinduoduo";
|
||
url = $"https://jinbao.pinduoduo.com/open.html?client_id=4ca7ddf2678b4ba39ecbc60c9d60b4ed&response_type=code&redirect_uri={HttpUtility.UrlEncode(callBack)}";
|
||
break;
|
||
case LianmengType.唯品会联盟:
|
||
callBack += "vip";
|
||
url = $"https://auth.vip.com/oauth2/authorize?client_id={VipAppId}&response_type=code&redirect_uri={HttpUtility.UrlEncode(callBack)}";
|
||
break;
|
||
case LianmengType.苏宁联盟:
|
||
{
|
||
LoginSuningClass login = new LoginSuningClass();
|
||
var qrurl = login.GetQRCodeUrl();
|
||
if (!string.IsNullOrEmpty(qrurl))
|
||
{
|
||
var guid = Guid.NewGuid().ToString("N");
|
||
CacheHelper.GetIntance().SetCache(guid, login, 60 * 5);
|
||
return PutData(new { Msgid = guid, QRCodeUrl = login.QRCodeUrl });
|
||
}
|
||
return PutData("获取二维码失败,请稍后重试!");
|
||
}
|
||
|
||
case LianmengType.抖音联盟:
|
||
{
|
||
var time = DateTime.Now.AddSeconds(30);
|
||
var login = LianMengWebViewLoginHelper.Instance.GetViewLogin();
|
||
if (login == null)
|
||
{
|
||
return PutData("服务启动失败,请重试。");
|
||
}
|
||
login.Start(LianmengType.抖音联盟);
|
||
while (DateTime.Now < time)
|
||
{
|
||
if (!string.IsNullOrEmpty(login.QRCodeUrl))
|
||
{
|
||
CacheHelper.GetIntance().SetCache(login.Msgid, login, 60 * 5);
|
||
return PutData(new { Msgid = login.Msgid, QRCodeUrl = login.QRCodeUrl });
|
||
}
|
||
Thread.Sleep(1000);
|
||
}
|
||
login.Dispose();
|
||
//var login = Client.Form.GetLoginForm();
|
||
//Client.Form.Invoke(new Action(delegate ()
|
||
//{
|
||
// login.Show();
|
||
// login.Hide();
|
||
// login.Start(LianmengType.抖音联盟);
|
||
//}));
|
||
//while (DateTime.Now < time)
|
||
//{
|
||
// if (!string.IsNullOrEmpty(login.QRCodeUrl))
|
||
// {
|
||
// CacheHelper.GetIntance().SetCache(login.Msgid, login, 60 * 5);
|
||
// return PutData(new { Msgid = login.Msgid, QRCodeUrl = login.QRCodeUrl });
|
||
|
||
// }
|
||
// Thread.Sleep(100);
|
||
//}
|
||
//login?.CloseUI();
|
||
//if (string.IsNullOrEmpty(login.ErrorMsg)) return PutData(login.ErrorMsg);
|
||
return PutData("获取二维码失败,请稍后重试!");
|
||
}
|
||
case LianmengType.美团联盟:
|
||
try
|
||
{
|
||
#region 第二版、自动登录 聂红利
|
||
var loginType = GetInt("LoginType");
|
||
if (loginType == 1)
|
||
{
|
||
var telNumber = GetString("TelNumber", true);
|
||
var mtLoginReq = new LoginMeituanClass();
|
||
var errorMsg = mtLoginReq.SendLoginCode(telNumber);
|
||
if (!string.IsNullOrWhiteSpace(errorMsg)) return PutData(errorMsg);
|
||
var guid = Guid.NewGuid().ToString("N");
|
||
CacheHelper.GetIntance().SetCache(guid, mtLoginReq, 60 * 5);
|
||
return PutData(new { Msgid = guid, QRCodeUrl = string.Empty });
|
||
}
|
||
else if (loginType == 2)
|
||
{
|
||
var Msgid = GetString("Msgid", true);
|
||
var Code = GetString("Code", true);
|
||
var req = CacheHelper.GetIntance().GetCache(Msgid);
|
||
if (req == null) return PutData("登录失败,验证码已过期!");
|
||
var mtReq = req as LoginMeituanClass;
|
||
if (mtReq == null) return PutData("登录失败,验证码已过期!");
|
||
var loginResult = mtReq.VerifyLoginCode(Code);
|
||
if (!string.IsNullOrEmpty(loginResult)) return PutData(loginResult);
|
||
var tar = Db.Queryable<Lianmeng>().First(p => p.Username == mtReq.mobile && p.LianmengType == LianmengType.美团联盟);
|
||
if (tar == null)
|
||
{
|
||
tar = new Lianmeng()
|
||
{
|
||
LianmengType = LianmengType.美团联盟,
|
||
Username = mtReq.mobile
|
||
};
|
||
}
|
||
|
||
tar.Nickname = mtReq.nickName;
|
||
tar.Cookies = mtReq.Cookies;
|
||
tar.ExpirationTime = DateTime.Now.AddYears(100);
|
||
tar.Token = mtReq.appkey;
|
||
tar.ReToken = mtReq.utmSource;
|
||
Db.Save(tar);
|
||
|
||
Task.Factory.StartNew(() =>
|
||
{
|
||
var db = Db;
|
||
try
|
||
{
|
||
db.BeginTran();
|
||
var medias = mtReq.GetMedias();
|
||
foreach (var item in medias)
|
||
{
|
||
var media = db.Queryable<MtMedia>().Where(f => f.LianmengId == tar.Id && f.AdzoneId == item.promotionId && f.MediaPId == item.mediaId).First();
|
||
if (media == null)
|
||
media = new MtMedia() { LianmengId = tar.Id, AdzoneId = item.promotionId, MediaPId = item.mediaId };
|
||
else if (media.UpdateTime == item.updateTime) continue;
|
||
|
||
media.MediaType = (MTMediaType)item.mediaType;
|
||
media.AdzoneName = item.promotionName;
|
||
media.MediaName = item.mediaName;
|
||
media.UpdateTime = item.updateTime;
|
||
if (media.Id == 0)
|
||
db.Insertable(media).ExecuteCommand();
|
||
else
|
||
db.Updateable(media).ExecuteCommand();
|
||
}
|
||
db.CommitTran();
|
||
}
|
||
catch (Exception)
|
||
{
|
||
db.RollbackTran();
|
||
}
|
||
});
|
||
return PutData(tar);
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 第一版、人工录入 赵家保
|
||
else
|
||
{
|
||
|
||
var appKey = GetString("appKey", true);
|
||
var utmSource = GetString("utmSource", true);
|
||
var username = GetString("username", true);
|
||
var remark = GetString("remark", false);
|
||
var item = Db.Queryable<Lianmeng>().First(p => p.Username == username && p.LianmengType == LianmengType.美团联盟);
|
||
if (item == null)
|
||
{
|
||
item = new Lianmeng()
|
||
{
|
||
LianmengType = LianmengType.美团联盟,
|
||
ExpirationTime = DateTime.Now.AddYears(100),
|
||
Cookies = "",
|
||
Username = username,
|
||
Nickname = "",
|
||
Remark = remark,
|
||
ReToken = utmSource,
|
||
Token = appKey
|
||
};
|
||
}
|
||
else
|
||
{
|
||
item.Username = username;
|
||
item.Remark = remark;
|
||
item.ReToken = utmSource;
|
||
item.Token = appKey;
|
||
}
|
||
var res = new MTRequest(item).CPSOrderList(DateTime.Now, DateTime.Now, 1, 50, out _);
|
||
if (res == null)
|
||
{
|
||
return PutData("登录失败,您输入的appKey或utmSource不正确!");
|
||
}
|
||
Db.Save(item);
|
||
if (item.Id != 0)
|
||
{
|
||
return PutSuccess;
|
||
}
|
||
return PutError;
|
||
|
||
}
|
||
#endregion
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return PutData(ex);
|
||
}
|
||
default:
|
||
return PutData("暂不支持该联盟账号登录");
|
||
}
|
||
return PutData(new { Url = url, Token = token });
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// 获取京东的推广位(同步获取)
|
||
/// </summary>
|
||
/// <param name="authUser"></param>
|
||
/// <param name="authKey"></param>
|
||
/// <param name="jdApi"></param>
|
||
/// <param name="lianmeng"></param>
|
||
private void GetJdAds(string authUser, string authKey, JingdongRequest jdApi, Lianmeng lianmeng)
|
||
{
|
||
Task.Factory.StartNew(() =>
|
||
{
|
||
//TODO 使用API获取京东推广位
|
||
var req = new JingdongRequest(lianmeng);
|
||
req.GetPositionListAll(items =>
|
||
{
|
||
var db = Db;
|
||
db.BeginTran();
|
||
try
|
||
{
|
||
foreach (JToken token in items)
|
||
{
|
||
var adzoneId = token["id"].Value<string>();
|
||
var adzonename = token["spaceName"].Value<string>();
|
||
var info = db.Queryable<JdMedia>().Where(w => w.LianmengId == lianmeng.Id && w.AdzoneId == adzoneId).First();
|
||
if (info == null)
|
||
{
|
||
info = new JdMedia();
|
||
info.AdzoneId = adzoneId;
|
||
info.LianmengId = lianmeng.Id;
|
||
info.AdzoneName = adzonename;
|
||
info.IsRemove = false;
|
||
info.Remark = "";
|
||
db.Insertable(info).ExecuteCommand();
|
||
}
|
||
else if (info.AdzoneName != adzonename)
|
||
{
|
||
info.AdzoneName = adzonename;
|
||
db.Updateable(info).ExecuteCommand();
|
||
}
|
||
}
|
||
db.CommitTran();
|
||
}
|
||
catch (Exception e)
|
||
{
|
||
Db.OnLog("同步推广位", e);
|
||
db.RollbackTran();
|
||
}
|
||
return false;
|
||
});
|
||
});
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获得登录状态
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
[System.Web.Http.HttpPost, ErrorFilter]
|
||
public WebResult GetLoginStatus()
|
||
{
|
||
var msgId = GetString("Msgid", true);
|
||
var result = CacheHelper.GetIntance().GetCache(msgId);
|
||
if (result == null)
|
||
{
|
||
return PutData(new { Msgid = msgId, QRCodeStatus = LoginQRCodeStatus.操作超时 });
|
||
}
|
||
var login = result as LianmengWebViewLogin;
|
||
|
||
if (login == null)
|
||
{
|
||
if (result is LoginSuningClass login2)
|
||
{
|
||
return PutData(new { Msgid = msgId, QRCodeStatus = login2.QRCodeStatus, ErrorMsg = login2.ErrorMsg });
|
||
}
|
||
return PutData("二维码获取失败!");
|
||
}
|
||
else
|
||
{
|
||
return PutData(new { Msgid = login.Msgid, QRCodeStatus = login.QRCodeStatus, ErrorMsg = login.ErrorMsg });
|
||
}
|
||
}
|
||
private string GetUrl()
|
||
{
|
||
var url = $"http://{Client.InternetIP}:{Client.Config.Port}/";
|
||
#if DEBUG
|
||
url = $"http://127.0.0.1/";
|
||
#endif
|
||
return url;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 拼多多回调
|
||
/// </summary>
|
||
[HttpGet]
|
||
public IHttpActionResult Pinduoduo()
|
||
{
|
||
var url = GetUrl();
|
||
try
|
||
{
|
||
var Params = HttpUtility.ParseQueryString(Request.RequestUri.Query);
|
||
var code = Params.Get("code");
|
||
var state = Params.Get("state");
|
||
|
||
string json = HttpHelper.ObjectToJson(new
|
||
{
|
||
client_id = "4ca7ddf2678b4ba39ecbc60c9d60b4ed",
|
||
code = code,
|
||
grant_type = "authorization_code",
|
||
client_secret = "c05574e5bbb450bb1ad66e08cdccf05a8a274161"
|
||
});
|
||
|
||
HttpHelper http = new HttpHelper();
|
||
var item = http.GetItem("http://open-api.pinduoduo.com/oauth/token", "", json);
|
||
item.ContentType = "application/json";
|
||
var html = http.GetHtml(item).Html;
|
||
Newtonsoft.Json.Linq.JObject target = Newtonsoft.Json.Linq.JObject.Parse(html);
|
||
var UserId = target["owner_id"].ToString();
|
||
var Lianmeng = Db.Queryable<Lianmeng>().First(f => f.Username == UserId && f.LianmengType == LianmengType.拼多多联盟);
|
||
if (Lianmeng == null)
|
||
{
|
||
Lianmeng = new Lianmeng() { Username = UserId, LianmengType = LianmengType.拼多多联盟 };
|
||
}
|
||
Lianmeng.Nickname = target["owner_name"].ToString();
|
||
Lianmeng.Token = target["access_token"].ToString();
|
||
Lianmeng.ExpirationTime = DateTime.Now.AddDays(30);
|
||
Lianmeng.ReToken = target["refresh_token"].ToString();
|
||
Db.Save(Lianmeng);
|
||
//同步推广位
|
||
var req = new PinduoRequest(Lianmeng);
|
||
req.GetPositionList(items =>
|
||
{
|
||
var db = Db;
|
||
db.BeginTran();
|
||
try
|
||
{
|
||
foreach (JToken token in items)
|
||
{
|
||
//var adzoneId = token["p_id_list"].First["p_id"].Value<string>();
|
||
//var adzonename = token["p_id_list"].First["pid_name"].Value<string>();
|
||
var adzoneId = token["p_id"].Value<string>();
|
||
var adzonename = token["pid_name"].Value<string>();
|
||
var info = db.Queryable<PddMedia>().Where(w => w.LianmengId == Lianmeng.Id && w.AdzoneId == adzoneId).First();
|
||
if (info == null)
|
||
{
|
||
info = new PddMedia();
|
||
info.AdzoneId = adzoneId;
|
||
info.LianmengId = Lianmeng.Id;
|
||
info.AdzoneName = adzonename;
|
||
info.IsRemove = false;
|
||
info.Remark = "";
|
||
db.Insertable(info).ExecuteCommand();
|
||
}
|
||
else if (info.AdzoneName != adzonename)
|
||
{
|
||
info.AdzoneName = adzonename;
|
||
db.Updateable(info).ExecuteCommand();
|
||
}
|
||
}
|
||
db.CommitTran();
|
||
}
|
||
catch (Exception e)
|
||
{
|
||
Db.OnLog("同步推广位", e);
|
||
db.RollbackTran();
|
||
}
|
||
return false;
|
||
});
|
||
|
||
return Redirect($"{url}?t={LianmengType.拼多多联盟}&f=true");
|
||
}
|
||
catch
|
||
{
|
||
return Redirect($"{url}?t={LianmengType.拼多多联盟}&f=false");
|
||
}
|
||
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// 淘宝回调
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
[HttpGet]
|
||
public WebResult LoginTaobaoCallback()
|
||
{
|
||
var url = GetUrl();
|
||
try
|
||
{
|
||
//http://127.0.0.1:81/lianmeng/logintaobaoresult/?access_token=6100a011713579cffde010fc5c5faa734a72a17bcf96283824166474&token_type=Bearer&expires_in=2592000&refresh_token=6100a01171d612063de010fc5c5faa734a72a17bcf96283824166474&re_expires_in=2592000&r1_expires_in=2592000&r2_expires_in=86400&taobao_open_uid=AAHwsrlwAJVa5gTotY3c-Pas&taobao_user_id=824166474&taobao_user_nick=oreoa&w1_expires_in=2592000&w2_expires_in=300&state=http%3A%2F%2F127.0.0.1%3A81%2Flianmeng%2Flogintaobaoresult&top_sign=37E502E07685C07A0DFB104A30837A6B
|
||
var Params = HttpUtility.ParseQueryString(Request.RequestUri.Query);
|
||
var Token = Params.Get("access_token");
|
||
var UserId = Params.Get("taobao_user_id");
|
||
var UserNick = Params.Get("taobao_user_nick");
|
||
|
||
var Lianmeng = Db.Queryable<Lianmeng>().WithCache().First(f => f.Username == UserId && f.LianmengType == LianmengType.淘宝联盟);
|
||
if (Lianmeng == null)
|
||
{
|
||
Lianmeng = new Lianmeng() { Username = UserId, LianmengType = LianmengType.淘宝联盟 };
|
||
}
|
||
|
||
Lianmeng.Nickname = UserNick;
|
||
Lianmeng.Token = Token;
|
||
Lianmeng.ExpirationTime = DateTime.Now.AddDays(30);
|
||
Db.Storageable(Lianmeng).ExecuteCommand();
|
||
//Db.Save(Lianmeng);
|
||
return PutSuccess;
|
||
}
|
||
catch (Exception)
|
||
{
|
||
return PutError;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 唯品会回调
|
||
/// </summary>
|
||
[HttpGet]
|
||
public IHttpActionResult Vip()
|
||
{
|
||
var url = GetUrl();
|
||
try
|
||
{
|
||
var Params = HttpUtility.ParseQueryString(Request.RequestUri.Query);
|
||
var code = Params.Get("code");
|
||
var state = Params.Get("state");
|
||
|
||
var http = new HttpHelper();
|
||
var item = new HttpItem() { Method = "post", URL = $"https://auth.vip.com/oauth2/token?client_id={VipAppId}&client_secret={VipAppSecret}&grant_type=authorization_code&redirect_uri={HttpUtility.UrlEncode(url)}&request_client_ip=127.0.0.1&code={code}" };
|
||
var html = http.GetHtml(item).Html;
|
||
|
||
Newtonsoft.Json.Linq.JObject target = Newtonsoft.Json.Linq.JObject.Parse(html);
|
||
|
||
var UserId = target["open_id"].ToString();
|
||
|
||
var Lianmeng = Db.Queryable<Lianmeng>().First(f => f.Username == UserId && f.LianmengType == LianmengType.唯品会联盟);
|
||
if (Lianmeng == null)
|
||
{
|
||
Lianmeng = new Lianmeng() { Username = UserId, LianmengType = LianmengType.唯品会联盟 };
|
||
}
|
||
|
||
Lianmeng.Nickname = "";
|
||
Lianmeng.Token = target["access_token"].ToString();
|
||
Lianmeng.ExpirationTime = DateTime.Now.AddSeconds((int)target["expires_in"]);
|
||
Lianmeng.ReToken = target["refresh_token"].ToString();
|
||
|
||
Db.Save(Lianmeng);
|
||
GetVipAds(Lianmeng);
|
||
|
||
return Redirect($"{url}?t={LianmengType.唯品会联盟}&f=true");
|
||
}
|
||
catch
|
||
{
|
||
return Redirect($"{url}?t={LianmengType.唯品会联盟}&f=false");
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取唯品会推广位信息
|
||
/// </summary>
|
||
private void GetVipAds(Lianmeng Lianmeng)
|
||
{
|
||
Task.Factory.StartNew(() =>
|
||
{
|
||
var req = new WeipinhuiRequest(Lianmeng);
|
||
req.GetWphTgwAll(items =>
|
||
{
|
||
var db = Db;
|
||
db.UseTran(() =>
|
||
{
|
||
foreach (var token in items)
|
||
{
|
||
string adzoneName = token["pidName"].Value<string>();
|
||
var item = Db.Queryable<WphMedia>().Where(f => f.AdzoneName == adzoneName && f.LianmengId == Lianmeng.Id).First();
|
||
if (item != null)
|
||
{
|
||
continue;
|
||
}
|
||
item = new WphMedia();
|
||
item.AdzoneId = token["pid"].Value<string>();
|
||
item.AdzoneName = adzoneName;
|
||
item.LianmengId = Lianmeng.Id;
|
||
item.Remark = "";
|
||
Db.Insertable(item).ExecuteCommand();
|
||
}
|
||
}, (ex) =>
|
||
{
|
||
db.OnLog("登陆同步唯品会推广位", ex);
|
||
});
|
||
return false;
|
||
});
|
||
});
|
||
}
|
||
|
||
/// <summary>
|
||
/// 分页查询联盟
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
[System.Web.Http.HttpPost, ErrorFilter]
|
||
public WebResult GetLianmengs()
|
||
{
|
||
var Keyword = GetString("Keyword");
|
||
var PageIndex = GetInt("PageIndex");
|
||
var PageSize = GetInt("PageSize");
|
||
var LmType = GetEnum<LianmengType>("Type");
|
||
if (PageSize > 100) PageSize = 100;
|
||
var TotalNumber = 0;
|
||
var exp = Expressionable.Create<Lianmeng>();
|
||
if (!string.IsNullOrEmpty(Keyword))
|
||
{
|
||
exp.And(f => f.Nickname.Contains(Keyword) || f.Username.Contains(Keyword) || f.Remark.Contains(Keyword));
|
||
}
|
||
if (LmType != LianmengType.无)
|
||
{
|
||
exp.And(f => f.LianmengType == LmType);
|
||
}
|
||
var DataList = Db.Queryable<Lianmeng>().Where(exp.ToExpression()).ToPageList(PageIndex, PageSize, ref TotalNumber);
|
||
return PutData(new PageResult<Lianmeng>(DataList, TotalNumber, PageSize, PageIndex));
|
||
}
|
||
|
||
/// <summary>
|
||
/// 更新联盟
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
[System.Web.Http.HttpPost, ErrorFilter]
|
||
public WebResult UpdLianmeng()
|
||
{
|
||
//TODO:编辑联盟信息,目前值做了备注修改
|
||
var Id = GetInt("Id", true);
|
||
var Remark = GetString("Remark");
|
||
var Lianmeng = Db.GetLianmeng(Id);
|
||
if (Lianmeng == null) return PutData("联盟账号不存在!");
|
||
Lianmeng.Remark = Remark;
|
||
Db.Save(Lianmeng);
|
||
return PutSuccess;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 删除联盟
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
[System.Web.Http.HttpPost, ErrorFilter]
|
||
public WebResult DelLianmeng()
|
||
{
|
||
var Id = GetInt("Id", true);
|
||
var Data = Db.GetLianmeng(Id);
|
||
if (Data != null && Db.Delete(Data) > 0) return PutSuccess;
|
||
else return PutData("删除失败,未找到数据!");
|
||
}
|
||
|
||
/// <summary>
|
||
/// 新增推广位
|
||
/// </summary>
|
||
[System.Web.Http.HttpPost, ErrorFilter]
|
||
public WebResult AddTaobaoMedia()
|
||
{
|
||
try
|
||
{
|
||
var LianmengId = GetInt("LianmengId", true);
|
||
var SiteId = GetString("SiteId", true);
|
||
var AdzoneId = GetString("AdzoneId", true);
|
||
var Remark = GetString("Remark");
|
||
var AppKey = GetString("AppKey");
|
||
var AppSecret = GetString("AppSecret");
|
||
|
||
var Lianmeng = Db.Queryable<Lianmeng>().Where(f => f.Id == LianmengId).First();
|
||
if (Lianmeng == null) return PutData("新增失败,联盟ID不存在!");
|
||
|
||
var TbMedia = Db.Queryable<TbMedia>().Where(f => f.LianmengId == LianmengId && f.SiteId == SiteId && f.AdzoneId == AdzoneId).First();
|
||
if (TbMedia != null) return PutData("新增失败,该推广位已存在!");
|
||
|
||
TbMedia = new TbMedia()
|
||
{
|
||
LianmengId = LianmengId,
|
||
SiteId = SiteId,
|
||
AdzoneId = AdzoneId,
|
||
Remark = Remark,
|
||
AppKey = AppKey,
|
||
AppSecret = AppSecret
|
||
};
|
||
|
||
Db.Save(TbMedia);
|
||
return PutData(TbMedia);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return PutData(ex);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 修改推广位
|
||
/// </summary>
|
||
[System.Web.Http.HttpPost, ErrorFilter]
|
||
public WebResult UpdTaobaoMedia()
|
||
{
|
||
try
|
||
{
|
||
var MediaId = GetInt("MediaId", true);
|
||
var TbMedia = Db.GetTbMedia(MediaId);
|
||
if (TbMedia == null) return PutData("修改失败,该推广位不存在!");
|
||
|
||
|
||
var LianmengId = GetInt("LianmengId", true);
|
||
var SiteId = GetString("SiteId", true);
|
||
var AdzoneId = GetString("AdzoneId", true);
|
||
var Remark = GetString("Remark");
|
||
var AppKey = GetString("AppKey");
|
||
var AppSecret = GetString("AppSecret");
|
||
|
||
var Lianmeng = Db.Queryable<Lianmeng>().Where(f => f.Id == LianmengId).First();
|
||
if (Lianmeng == null) return PutData("修改失败,联盟ID不存在!");
|
||
|
||
var DbTbMedia = Db.Queryable<TbMedia>().Where(f => f.LianmengId == LianmengId && f.SiteId == SiteId && f.AdzoneId == AdzoneId).First();
|
||
if (DbTbMedia != null)
|
||
{
|
||
if (DbTbMedia.Id != MediaId)
|
||
return PutData("修改失败,该推广位已存在!");
|
||
}
|
||
|
||
TbMedia.LianmengId = LianmengId;
|
||
TbMedia.SiteId = SiteId;
|
||
TbMedia.AdzoneId = AdzoneId;
|
||
TbMedia.Remark = Remark;
|
||
TbMedia.AppKey = AppKey;
|
||
TbMedia.AppSecret = AppSecret;
|
||
|
||
|
||
Db.Save(TbMedia);
|
||
return PutData(TbMedia);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return PutData(ex);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 删除推广位
|
||
/// </summary>
|
||
[System.Web.Http.HttpPost, ErrorFilter]
|
||
public WebResult DelTaobaoMedia()
|
||
{
|
||
var MediaId = GetInt("MediaId", true);
|
||
Db.Updateable<TbMedia>()
|
||
.Where(f => f.Id == MediaId)
|
||
.SetColumns(f => f.IsRemove == true)
|
||
.ExecuteCommand();
|
||
return PutSuccess;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 删除推广位
|
||
/// </summary>
|
||
[System.Web.Http.HttpPost, ErrorFilter]
|
||
public WebResult DelTaobaoMedias()
|
||
{
|
||
try
|
||
{
|
||
var Ids = GetIntList("Ids", true);
|
||
Db.Updateable<TbMedia>()
|
||
.Where(f => Ids.Contains(f.Id))
|
||
.SetColumns(f => f.IsRemove == true)
|
||
.ExecuteCommand();
|
||
return PutSuccess;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return PutData(ex);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 查询推广位列表
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
[HttpPost, ErrorFilter]
|
||
public WebResult GetTaobaoMedias()
|
||
{
|
||
try
|
||
{
|
||
var pageSize = GetInt("PageSize", true);
|
||
var index = GetInt("PageIndex", true);
|
||
|
||
var LianmengId = GetInt("LianmengId");
|
||
var SiteId = GetString("SiteId");
|
||
var AdzoneId = GetString("AdzoneId");
|
||
var Remark = GetString("Remark");
|
||
|
||
|
||
|
||
|
||
var exp = Expressionable.Create<TbMedia>();
|
||
if (LianmengId > 0)
|
||
{
|
||
exp.And(f => f.LianmengId == LianmengId);
|
||
}
|
||
|
||
if (!string.IsNullOrEmpty(SiteId))
|
||
{
|
||
exp.And(f => f.SiteId == SiteId);
|
||
}
|
||
|
||
if (!string.IsNullOrEmpty(AdzoneId))
|
||
{
|
||
exp.And(f => f.AdzoneId == AdzoneId);
|
||
}
|
||
|
||
if (!string.IsNullOrEmpty(Remark))
|
||
{
|
||
exp.And(f => f.Remark.Contains(Remark));
|
||
}
|
||
|
||
|
||
exp.And(f => f.IsRemove == false);
|
||
var tNumber = 0;
|
||
|
||
var DataList = Db.Queryable<TbMedia>()
|
||
.LeftJoin<Lianmeng>((f, r) => f.LianmengId == r.Id)
|
||
.Where(exp.ToExpression())
|
||
.Select((f, r) => new TbMediaShow
|
||
{
|
||
Id = f.Id,
|
||
LianmengId = f.LianmengId,
|
||
SiteName = f.SiteName,
|
||
AdzoneId = f.AdzoneId,
|
||
AdzoneName = f.AdzoneName,
|
||
AppKey = f.AppKey,
|
||
AppSecret = f.AppSecret,
|
||
IsSpecial = f.IsSpecial,
|
||
IsTlj = !string.IsNullOrEmpty(f.AppKey) && !string.IsNullOrEmpty(f.AppSecret),
|
||
LmName = r.Nickname,
|
||
LmAcc = r.Username,
|
||
Pid = f.Pid,
|
||
Remark = f.Remark,
|
||
SiteId = f.SiteId,
|
||
//UseCnt = Db.Queryable<Robot>().Where(p => p.TbMediaId1 == f.Id || p.TbMediaId2 == f.Id).Count(),
|
||
//Db.Queryable<Robot>().Count(p=>p.TbMediaId1 == f.Id || p.TbMediaId2 == f.Id)
|
||
})
|
||
.ToPageList(index, pageSize, ref tNumber);
|
||
foreach (var item in DataList)
|
||
{
|
||
item.UseCnt = Db.Queryable<Robot>().Count(p => p.TbMediaId1 == item.Id || p.TbMediaId2 == item.Id);
|
||
}
|
||
|
||
|
||
return PutData(new PageResult<TbMediaShow>(DataList, tNumber, pageSize, index));
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return PutData(ex);
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 新增美团推广位
|
||
/// </summary>
|
||
[System.Web.Http.HttpPost, ErrorFilter]
|
||
public WebResult AddMtMedia()
|
||
{
|
||
try
|
||
{
|
||
var adzoneId = GetString("AdzoneId", true);
|
||
var lianmengId = GetInt("LianmengId", true);
|
||
var adzoneName = GetString("AdzoneName", true);
|
||
var remark = GetString("Remark", false);
|
||
var mediaType = GetEnum<MTMediaType>("MediaType", true);
|
||
var mediaPId = GetString("MediaPId", true);
|
||
var mediaName = GetString("MediaName", true);
|
||
var item = Db.Queryable<MtMedia>().Where(f => f.AdzoneId == adzoneId && f.LianmengId == lianmengId).First();
|
||
if (item != null)
|
||
{
|
||
return PutData("新增失败,该推广位已存在!");
|
||
}
|
||
var lianmeng = Db.Queryable<Lianmeng>().Where(w => w.Id == lianmengId).First();
|
||
if (lianmeng == null)
|
||
{
|
||
return PutData("联盟不存在!");
|
||
}
|
||
|
||
var req = new MTRequest(lianmeng);
|
||
var result = req.PromotionLink("吃货天天省", "0AlN4OtEIa", adzoneId, 2, 1, false);
|
||
if (result.code != 200)
|
||
{
|
||
return PutData(result.msg);
|
||
}
|
||
|
||
|
||
item = new MtMedia()
|
||
{
|
||
AdzoneId = adzoneId,
|
||
AdzoneName = adzoneName,
|
||
LianmengId = lianmengId,
|
||
MediaName = mediaName,
|
||
MediaPId = mediaPId,
|
||
MediaType = mediaType,
|
||
Remark = remark
|
||
};
|
||
Db.Insertable(item).ExecuteReturnEntityAsync();
|
||
return PutData(new MTMediaShow()
|
||
{
|
||
Id = item.Id,
|
||
LianmengId = item.LianmengId,
|
||
AdzoneId = item.AdzoneId,
|
||
AdzoneName = item.AdzoneName,
|
||
Remark = item.Remark,
|
||
MediaName = item.MediaName,
|
||
MediaPId = item.MediaPId,
|
||
MediaType = item.MediaType
|
||
});
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return PutData(ex);
|
||
}
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 编辑美团推广位
|
||
/// </summary>
|
||
[System.Web.Http.HttpPost, ErrorFilter]
|
||
public WebResult UdpMtMedia()
|
||
{
|
||
try
|
||
{
|
||
var adzoneId = GetString("AdzoneId", true);
|
||
var lianmengId = GetInt("LianmengId", true);
|
||
var adzoneName = GetString("AdzoneName", true);
|
||
var remark = GetString("Remark", false);
|
||
var mediaType = GetEnum<MTMediaType>("MediaType", true);
|
||
var mediaPId = GetString("MediaPId", true);
|
||
var mediaName = GetString("MediaName", true);
|
||
var item = Db.Queryable<MtMedia>().Where(f => f.AdzoneId == adzoneId && f.LianmengId == lianmengId).First();
|
||
if (item == null)
|
||
{
|
||
return PutData("编辑失败,该推广位不存在!");
|
||
}
|
||
var lianmeng = Db.Queryable<Lianmeng>().Where(w => w.Id == lianmengId).First();
|
||
if (lianmeng == null)
|
||
{
|
||
return PutData("联盟不存在!");
|
||
}
|
||
var req = new MTRequest(lianmeng);
|
||
var result = req.PromotionLink("吃货天天省", "0AlN4OtEIa", adzoneId, 2, 1, false);
|
||
if (result.code != 200)
|
||
{
|
||
return PutData(result.msg);
|
||
}
|
||
item.AdzoneId = adzoneId;
|
||
item.AdzoneName = adzoneName;
|
||
item.LianmengId = lianmengId;
|
||
item.MediaName = mediaName;
|
||
item.MediaPId = mediaPId;
|
||
item.MediaType = mediaType;
|
||
item.Remark = remark;
|
||
Db.Insertable(item).ExecuteReturnEntityAsync();
|
||
return PutSuccess;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return PutData(ex);
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 删除美团推广位
|
||
/// </summary>
|
||
[System.Web.Http.HttpPost, ErrorFilter]
|
||
public WebResult RemoveMtMedia()
|
||
{
|
||
try
|
||
{
|
||
var adzoneId = GetString("AdzoneId", true);
|
||
var lianmengId = GetInt("LianmengId", true);
|
||
var item = Db.Queryable<MtMedia>().Where(f => f.AdzoneId == adzoneId && f.LianmengId == lianmengId).First();
|
||
if (item == null)
|
||
{
|
||
return PutData("推广位不存在");
|
||
}
|
||
else
|
||
{
|
||
item.IsDelete = true;
|
||
Db.Updateable(item).ExecuteCommand();
|
||
}
|
||
|
||
return PutSuccess;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return PutData(ex);
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 查询美团推广位列表
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
[HttpPost, ErrorFilter]
|
||
public WebResult GetMTMedias()
|
||
{
|
||
try
|
||
{
|
||
var pageSize = GetInt("PageSize", true);
|
||
var index = GetInt("PageIndex", true);
|
||
var lianmengId = GetInt("LianmengId");
|
||
var keyword = GetString("Keyword");
|
||
var exp = Expressionable.Create<MtMedia>();
|
||
if (!string.IsNullOrEmpty(keyword))
|
||
{
|
||
exp.And(f => f.AdzoneName.Contains(keyword) || f.Remark.Contains(keyword));
|
||
}
|
||
exp.And(f => f.IsDelete == false);
|
||
var tNumber = 0;
|
||
var DataList = Db.Queryable<MtMedia>()
|
||
.Where(f => f.LianmengId == lianmengId)
|
||
.Where(exp.ToExpression())
|
||
.Select(f => new MTMediaShow
|
||
{
|
||
Id = f.Id,
|
||
LianmengId = f.LianmengId,
|
||
AdzoneId = f.AdzoneId,
|
||
AdzoneName = f.AdzoneName,
|
||
Remark = f.Remark,
|
||
MediaName = f.MediaName,
|
||
MediaPId = f.MediaPId,
|
||
MediaType = f.MediaType
|
||
})
|
||
.ToPageList(index, pageSize, ref tNumber);
|
||
foreach (var item in DataList)
|
||
{
|
||
item.UseCnt = Db.Queryable<Robot>().Count(p => p.MtMediaId1 == item.Id || p.MtMediaId2 == item.Id);
|
||
}
|
||
return PutData(new PageResult<MTMediaShow>(DataList, tNumber, pageSize, index));
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return PutData(ex);
|
||
}
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 新增京东推广位
|
||
/// </summary>
|
||
[System.Web.Http.HttpPost, ErrorFilter]
|
||
public WebResult AddJDMedia()
|
||
{
|
||
try
|
||
{
|
||
var lianmengId = GetInt("LianmengId", true);
|
||
var lianmeng = Db.Queryable<Lianmeng>().Where(w => w.Id == lianmengId).First();
|
||
if (lianmeng == null)
|
||
{
|
||
return PutData("联盟不存在!");
|
||
}
|
||
var adzoneName = GetString("AdzoneName", true);
|
||
var siteId = GetLong("SiteId");
|
||
var remark = GetString("Remark");
|
||
var item = Db.Queryable<JdMedia>().Where(f => f.AdzoneName == adzoneName && f.LianmengId == lianmengId).First();
|
||
if (item != null)
|
||
{
|
||
return PutData("新增失败,该推广位名称相同!");
|
||
}
|
||
var req = new JingdongRequest(lianmeng);
|
||
var jobj = req.CreatePosition(4, 4, new string[] { adzoneName }, siteId);
|
||
if (jobj["code"].Value<int>() != 200)
|
||
{
|
||
return PutData(jobj["message"].Value<string>());
|
||
}
|
||
item = new JdMedia();
|
||
var property = jobj["data"]["resultList"][adzoneName] as JValue;
|
||
item.AdzoneId = property.Value?.ToString();
|
||
item.AdzoneName = adzoneName;
|
||
item.LianmengId = lianmengId;
|
||
item.Remark = remark;
|
||
item.PId = jobj["data"]["pid"][adzoneName].Value<string>();
|
||
item.IsRemove = false;
|
||
Db.Insertable(item).ExecuteReturnEntityAsync();
|
||
return PutSuccess;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return PutData(ex);
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 删除京东推广位
|
||
/// </summary>
|
||
[System.Web.Http.HttpPost, ErrorFilter]
|
||
public WebResult RemoveJDMedia()
|
||
{
|
||
var lianmengId = GetInt("LianmengId", true);
|
||
var lianmeng = Db.Queryable<Lianmeng>().Where(w => w.Id == lianmengId).First();
|
||
if (lianmeng == null)
|
||
{
|
||
return PutData("联盟不存在!");
|
||
}
|
||
var adzoneName = GetString("AdzoneName", true);
|
||
var item = Db.Queryable<JdMedia>().Where(f => f.AdzoneName == adzoneName && f.LianmengId == lianmengId).First();
|
||
if (item == null)
|
||
{
|
||
return PutData("删除失败,推广位不存在");
|
||
}
|
||
item.IsRemove = true;
|
||
Db.Updateable(item).ExecuteCommand();
|
||
return PutSuccess;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 查询京东推广位列表
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
[HttpPost, ErrorFilter]
|
||
public WebResult GetJDMedias()
|
||
{
|
||
try
|
||
{
|
||
var pageSize = GetInt("PageSize", true);
|
||
var index = GetInt("PageIndex", true);
|
||
var lianmengId = GetInt("LianmengId");
|
||
var keyword = GetString("Keyword");
|
||
var exp = Expressionable.Create<JdMedia>();
|
||
if (!string.IsNullOrEmpty(keyword))
|
||
{
|
||
exp.And(f => f.AdzoneName.Contains(keyword) || f.Remark.Contains(keyword));
|
||
}
|
||
var tNumber = 0;
|
||
var DataList = Db.Queryable<JdMedia>()
|
||
.Where(f => f.LianmengId == lianmengId && f.IsRemove == false)
|
||
.Where(exp.ToExpression())
|
||
.Select(f => f)
|
||
.ToPageList(index, pageSize, ref tNumber);
|
||
return PutData(new PageResult<JdMedia>(DataList, tNumber, pageSize, index));
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return PutData(ex);
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 新增拼多多推广位
|
||
/// </summary>
|
||
[System.Web.Http.HttpPost, ErrorFilter]
|
||
public WebResult AddPDDMedia()
|
||
{
|
||
try
|
||
{
|
||
var lianmengId = GetInt("LianmengId", true);
|
||
var lianmeng = Db.Queryable<Lianmeng>().Where(w => w.Id == lianmengId).First();
|
||
if (lianmeng == null)
|
||
{
|
||
return PutData("联盟不存在!");
|
||
}
|
||
var adzoneName = GetString("AdzoneName", true);
|
||
var remark = GetString("Remark", false);
|
||
var item = Db.Queryable<PddMedia>().Where(f => f.AdzoneName == adzoneName && f.LianmengId == lianmengId).First();
|
||
if (item != null)
|
||
{
|
||
return PutData("新增失败,该推广位名称相同!");
|
||
}
|
||
var req = new PinduoRequest(lianmeng);
|
||
var jobj = req.CreatePosition(adzoneName);
|
||
if (jobj["sub_code"] != null && jobj["sub_code"]?.Value<int>() != 200)
|
||
{
|
||
return PutData(jobj["sub_msg"].Value<string>());
|
||
}
|
||
item = new PddMedia();
|
||
item.AdzoneId = jobj["p_id_list"].First["p_id"].Value<string>();
|
||
item.AdzoneName = adzoneName;
|
||
item.LianmengId = lianmengId;
|
||
item.Remark = remark;
|
||
item.IsRemove = false;
|
||
Db.Insertable(item).ExecuteReturnEntityAsync();
|
||
return PutSuccess;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return PutData(ex);
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 删除拼多多推广位
|
||
/// </summary>
|
||
[System.Web.Http.HttpPost, ErrorFilter]
|
||
public WebResult RemovePDDMedia()
|
||
{
|
||
var lianmengId = GetInt("LianmengId", true);
|
||
var lianmeng = Db.Queryable<Lianmeng>().Where(w => w.Id == lianmengId).First();
|
||
if (lianmeng == null)
|
||
{
|
||
return PutData("联盟不存在!");
|
||
}
|
||
var adzoneName = GetString("AdzoneName", true);
|
||
var item = Db.Queryable<PddMedia>().Where(f => f.AdzoneName == adzoneName && f.LianmengId == lianmengId).First();
|
||
if (item == null)
|
||
{
|
||
return PutData("删除失败,推广位不存在");
|
||
}
|
||
item.IsRemove = true;
|
||
Db.Updateable(item).ExecuteCommand();
|
||
return PutSuccess;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 查询拼多多推广位列表
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
[HttpPost, ErrorFilter]
|
||
public WebResult GetPDDMedias()
|
||
{
|
||
try
|
||
{
|
||
var pageSize = GetInt("PageSize", true);
|
||
var index = GetInt("PageIndex", true);
|
||
var lianmengId = GetInt("LianmengId");
|
||
var keyword = GetString("Keyword");
|
||
var exp = Expressionable.Create<PddMedia>();
|
||
if (!string.IsNullOrEmpty(keyword))
|
||
{
|
||
exp.And(f => f.AdzoneName.Contains(keyword) || f.Remark.Contains(keyword));
|
||
}
|
||
var tNumber = 0;
|
||
var DataList = Db.Queryable<PddMedia>()
|
||
.Where(f => f.LianmengId == lianmengId && f.IsRemove == false)
|
||
.Where(exp.ToExpression())
|
||
.Select(f => f)
|
||
.ToPageList(index, pageSize, ref tNumber);
|
||
return PutData(new PageResult<PddMedia>(DataList, tNumber, pageSize, index));
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return PutData(ex);
|
||
}
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 新增唯品会推广位
|
||
/// </summary>
|
||
[System.Web.Http.HttpPost, ErrorFilter]
|
||
public WebResult AddWPHMedia()
|
||
{
|
||
try
|
||
{
|
||
var lianmengId = GetInt("LianmengId", true);
|
||
var lianmeng = Db.Queryable<Lianmeng>().Where(w => w.Id == lianmengId).First();
|
||
if (lianmeng == null)
|
||
{
|
||
return PutData("联盟不存在!");
|
||
}
|
||
var adzoneName = GetString("AdzoneName", true);
|
||
var remark = GetString("Remark", false);
|
||
var item = Db.Queryable<WphMedia>().Where(f => f.AdzoneName == adzoneName && f.LianmengId == lianmengId).First();
|
||
if (item != null)
|
||
{
|
||
return PutData("新增失败,该推广位名称相同!");
|
||
}
|
||
var req = new WeipinhuiRequest(lianmeng);
|
||
var jobj = req.CreateWphTgw(new List<string>() { adzoneName });
|
||
if (jobj["returnCode"] != null && jobj["returnCode"]?.Value<int>() != 0)
|
||
{
|
||
return PutData("创建推广位失败");
|
||
}
|
||
item = new WphMedia();
|
||
item.AdzoneId = jobj["result"]["pidInfoList"].First["pid"].Value<string>();
|
||
item.AdzoneName = adzoneName;
|
||
item.LianmengId = lianmengId;
|
||
item.Remark = remark;
|
||
Db.Insertable(item).ExecuteCommand();
|
||
return PutSuccess;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return PutData(ex);
|
||
}
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 删除唯品会推广位
|
||
/// </summary>
|
||
[System.Web.Http.HttpPost, ErrorFilter]
|
||
public WebResult RemoveWPHMedia()
|
||
{
|
||
var lianmengId = GetInt("LianmengId", true);
|
||
var lianmeng = Db.Queryable<Lianmeng>().Where(w => w.Id == lianmengId).First();
|
||
if (lianmeng == null)
|
||
{
|
||
return PutData("联盟不存在!");
|
||
}
|
||
var adzoneName = GetString("AdzoneName", true);
|
||
var item = Db.Queryable<WphMedia>().Where(f => f.AdzoneName == adzoneName && f.LianmengId == lianmengId).First();
|
||
if (item == null)
|
||
{
|
||
return PutData("删除失败,推广位不存在");
|
||
}
|
||
Db.Deleteable(item).ExecuteCommand();
|
||
return PutSuccess;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 查询唯品会推广位列表
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
[HttpPost, ErrorFilter]
|
||
public WebResult GetWPHMedias()
|
||
{
|
||
try
|
||
{
|
||
var pageSize = GetInt("PageSize", true);
|
||
var index = GetInt("PageIndex", true);
|
||
var lianmengId = GetInt("LianmengId");
|
||
var keyword = GetString("Keyword");
|
||
var exp = Expressionable.Create<WphMedia>();
|
||
if (!string.IsNullOrEmpty(keyword))
|
||
{
|
||
exp.And(f => f.AdzoneName.Contains(keyword) || f.Remark.Contains(keyword));
|
||
}
|
||
var tNumber = 0;
|
||
var DataList = Db.Queryable<WphMedia>()
|
||
.Where(f => f.LianmengId == lianmengId)
|
||
.Where(exp.ToExpression())
|
||
.Select(f => new VipMediaShow() {
|
||
Remark = f.Remark,
|
||
AdzoneId = f.AdzoneId,
|
||
AdzoneName = f.AdzoneName,
|
||
Id = f.Id,
|
||
LianmengId = f.LianmengId,
|
||
UseCnt = Db.Queryable<Robot>().Count(p => p.TbMediaId1 == f.Id || p.TbMediaId2 == f.Id)
|
||
})
|
||
.ToPageList(index, pageSize, ref tNumber);
|
||
//var result = new List<VipMediaShow>();
|
||
//DataList.ForEach(f =>
|
||
//{
|
||
// var data = new VipMediaShow()
|
||
// {
|
||
// Remark = f.Remark,
|
||
// AdzoneId = f.AdzoneId,
|
||
// AdzoneName = f.AdzoneName,
|
||
// Id = f.Id,
|
||
// LianmengId = f.LianmengId,
|
||
// UseCnt = Db.Queryable<Robot>().Count(p => p.TbMediaId1 == f.Id || p.TbMediaId2 == f.Id)
|
||
// };
|
||
// result.Add(data);
|
||
//});
|
||
return PutData(new PageResult<VipMediaShow>(DataList, tNumber, pageSize, index));
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return PutData(ex);
|
||
}
|
||
}
|
||
}
|
||
}
|