old_flsystem/应用/Weixin.TBCirclePromotion/SendCircleFriendThread.cs

831 lines
64 KiB
C#
Raw Normal View History

2022-09-20 03:10:29 +00:00
using Api.Framework;
using Api.Framework.Enums;
using Api.Framework.Model;
using Api.Framework.SDK;
using Api.Framework.Tools;
using Chat.Framework;
using SqlSugar;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using Api.Framework.Data.TB;
using Weixin.TBCirclePromotion.Entitys;
using Weixin.TBCirclePromotion.Properties;
using static Api.Framework.Tools.TBHelper;
using static Weixin.TBCirclePromotion.Enums;
namespace Weixin.TBCirclePromotion
{
public class SendCircleFriendThread : TimerTask
{
AnalyzeGoods analyzegoods = new AnalyzeGoods();
TbAnalysis tbAnalysis = new TbAnalysis();
AnalyzeGoods analyzeGoods = new AnalyzeGoods();
StringBuilder strb = new StringBuilder();
bool isSend = false;
bool isSendTime = false;//这里是用来判断是否在任务时间段里面,如果满足这会赋值为true
//private static DateTime RecordSendTime = DateTime.MinValue;
SqlSugarClient session = ApiClient.GetSession();
private static object objLock = new object();
public override void Run(object state, bool timedOut)
{
#region
#region
if (!string.IsNullOrWhiteSpace(Class1.Config.HDK_AutoClearTaskTimes))
{
if (Class1.Config.HDK_Auto_IsClear == SwitchType.)
{
try
{
if (DateTime.Now.AddSeconds(-3).ToString("HHmm") == DateTime.Parse(Class1.Config.HDK_AutoClearTaskTimes).ToString("HHmm"))
{
session.ExcuteSQL("Delete from fl_plugin_tbcirclepromotion_goodsinfos", new { });
}
}
catch (Exception ex)
{
EventClient.OnEvent(this, "定时清理异常" + ex.Message + "-" + ex.StackTrace);
}
}
}
#endregion
isSendTime = false;
var now = DateTime.Now;
for (int i = 0; i < Class1.Config.HDK_SendTaskTimes.Length; i++)
{
if (!string.IsNullOrWhiteSpace(Class1.Config.HDK_SendTaskTimes[i]))
{
var times = Class1.Config.HDK_SendTaskTimes[i].Trim().Split('-');
if (times.Length == 2)
{
var begin = DateTime.Parse(times[0].Trim());
var end = DateTime.Parse(times[1].Trim());
if (begin <= now && now <= end)
{
isSendTime = true;
break;
}
}
}
}
if (!isSendTime) return;
if ((DateTime.Now - Class1.Config.HDK_RecordSendTime).TotalMinutes < Class1.Config.HDK_Interval_Circle) return;
var sb = new StringBuilder();
try
{
lock (objLock)
{
//删除N天前的数据
session.ExcuteSQL("Delete from fl_plugin_tbcirclepromotion_goodsinfos where cur_time <= @time", new { time = DateTime.Today.AddDays(-3) });
isSend = false;
#region
if (Class1.Config.HDK_Switch == SwitchType.)
{
var num = session.Find<fl_plugin_tbcirclepromotion_goodsinfos>("select * from fl_plugin_tbcirclepromotion_goodsinfos where state = @state", new { state = StateType.广 }).Count();
if (num <= Class1.Config.HDK_GatherTouchNum) analyzeGoods.GatherFactory();
}
#endregion
var goods_infos_temp = new List<fl_plugin_tbcirclepromotion_goodsinfos>();
#region
if (Class1.Config.HDK_SendMode == SendModeType.)
{
//EventClient.OnEvent(this, $"【淘宝发单】5555");
var goods_infos = session.Find<fl_plugin_tbcirclepromotion_goodsinfos>($"select * from fl_plugin_tbcirclepromotion_goodsinfos where state = 1 order by cur_time desc limit {(Class1.Config.HDK_Multi_SendGoodsImageNum <= 0 ? 1 : Class1.Config.HDK_Multi_SendGoodsImageNum)}");
if (goods_infos != null && goods_infos.Count != 0)
{
var clients = Chat.Framework.ChatClient.WXClient.Values.ToList().Where(f => (f.WeixinType == Chat.Framework.WXSdk.Implement.WeixinType.Grpc微信 || f.WeixinType == Chat.Framework.WXSdk.Implement.WeixinType.Hook微信) && f.Status == Chat.Framework.WXSdk.WxStatus.线);
foreach (var item in clients)
{
try
{
var robot_info = session.FindRobots().FirstOrDefault(f => f.name == item.WeixinHao && f.type == ChatType.);
if (robot_info != null)
{
var tb_circle_promotion_temp = session.FindTBCirclePromotions().Where(f => f.onoff).ToList();
if (tb_circle_promotion_temp != null)
{
if (tb_circle_promotion_temp.FirstOrDefault(f => f.name == robot_info.name) != null) continue;
}
var adzone = session.FindAdzoneInfos().FirstOrDefault(f => f.alliance_id == (int)CpsType. && f.custom_type == Resources.SoftwareType && f.robot_id == robot_info.id);
if (adzone != null)
{
var member = CpsClient.Members.FirstOrDefault(f => f.cpstype == CpsType. && f.username == adzone.adzone_pid_cps_name);
if (member != null)
{
var api = CpsClient.CreateAlimamaRequest(member);
if (api == null) { continue; }
strb.Length = 0;
strb.AppendLine(Class1.Config.HDK_Multi_ContentCircle);
int count = 0;
int _count = goods_infos.Count;
for (int i = 0; i < _count; i++)
{
try
{
goods_infos_temp.Add(goods_infos[i]);
var goodsinfo = goods_infos[i];
count = 0;
Next:
var result = analyzegoods.FindGoodsInfoToGoodsId(goodsinfo.goods_id, adzone.adzone_pid_cps_name, adzone.adzone_pid, goodsinfo.goods_quan);//获取到自己返利链接等信息
if (result == null)
{
count++;
if (count <= 7 && goods_infos_temp.Count < goods_infos.Count)
{
goodsinfo = session.FindSingle<fl_plugin_tbcirclepromotion_goodsinfos>("select * from fl_plugin_tbcirclepromotion_goodsinfos where state = @state order by cur_time desc", new { state = StateType.广 });
goods_infos_temp.Add(goodsinfo);
goto Next;
}
else
continue;
}
else
{
var tklInfo = tbAnalysis.FindTKL(result.shopping_url, api);
if (tklInfo == null)
continue; //生成淘口令失败
//var shortUrl = tbAnalysis.FindShortUrlBySrcUrl(result.shopping_url, api);
var short_url = api.ComposeTbClick(result.goods_id, result.goods_thumbnail_url, tklInfo.tkl, tklInfo.isoUrl, ApiClient.Setting.SystemConfig.ZjyComposeType == ComposeType., (int)DwzType., isCircleZjy: true);//短连接
var cprice = ((decimal)result.normal_price - (decimal)result.coupon_discount).ToString();//券后价
var goods_desc = string.IsNullOrWhiteSpace(Class1.Config.HDK_Multi_GoodsDesc) ? result.goods_desc : Class1.Config.HDK_Multi_GoodsDesc
.Replace("[商品标题]", result.goods_name)
.Replace("[商品描述]", goodsinfo.goods_desc)
.Replace("[已售数量]", result.sold_quantity.ToString())
.Replace("[店铺名称]", result.mall_name)
.Replace("[优惠券金额]", result.coupon_discount.ToString())
.Replace("[优惠券数量]", result.coupon_remain_quantity.ToString())
.Replace("[商品单价]", result.normal_price.ToString())
.Replace("[券后价]", cprice)
.Replace("[劵后价]", cprice)
.Replace("[购买地址]", short_url);// result.shopping_url);
var image = ApiClient.GetQRImage(result.goods_name, result.normal_price.ToString(), result.coupon_discount.ToString(), cprice, result.goods_thumbnail_url, short_url, Class1.Config.HDK_Model, CpsType., string.IsNullOrWhiteSpace(Class1.Config.HDK_Single_GoodsQRCodePicDesc) ? goodsinfo.goods_desc : Class1.Config.HDK_Single_GoodsQRCodePicDesc); //合成附带二维码等信息的宝贝图片
strb.Append($"[图片={image}]");
}
}
catch
{ }
}
var json = item.SendCircle(strb.ToString());
if (!string.IsNullOrWhiteSpace(Class1.Config.HDK_Multi_AdditionalComment))
{
var reg = Regex.Match(json.Replace("<![CDATA[", "").Replace("]]>", ""), @"<id>(?<id>\d{15,})</id>");//获取返回的朋友圈id
if (reg.Success)
item.SendCircleComment(item.User.Username, reg.Groups["id"].Value, Class1.Config.HDK_Multi_AdditionalComment);
}
if (string.IsNullOrWhiteSpace(json))
EventClient.OnEvent(this, $"【淘宝发单】多({clients.Count()}){item.WeixinHao},发单失败");
else
EventClient.OnEvent(this, $"【淘宝发单】多({clients.Count()}){item.WeixinHao},发单成功");
isSend = true;//认定发送过了...
}
}
}
}
catch (Exception ex)
{
EventClient.OnEvent(this, $"淘宝推广 - 多产品:{item.WeixinHao},朋友圈推广失败,{ex.Message}");
}
}
}
}
#endregion
#region
else
{
//获取一个宝贝
var goods_info = session.FindSingle<fl_plugin_tbcirclepromotion_goodsinfos>("select * from fl_plugin_tbcirclepromotion_goodsinfos where state = @state order by id desc", new { state = StateType.广 });
//.Where(f => f.state == StateType.未推广).OrderBy(f => f.cur_time, OrderByType.Desc).First();
if (goods_info != null)
{
var html = string.Empty;
var shopIcon = string.Empty;
var QRCodeUrl = string.Empty;//获取其中一张图片用于合成二维码
var Content = string.Empty;//内容
sb.AppendLine($"a");
#region
var memberTmp = CpsClient.Members.FirstOrDefault(f => f.cpstype == CpsType.);
if (memberTmp != null)
{
var api = CpsClient.CreateAlimamaRequest(memberTmp);
if (api == null) { return; }
GetItemInfosData itemInfo = null;
try
{
sb.AppendLine($"b = " + goods_info.goods_id);
//objData = api.SendTaobao("taobao.tbk.item.info.get", new { num_iids = goods_info.goods_id });
itemInfo = api.GetItemInfo(goods_info.goods_id, "2");
}
catch
{ }
if (itemInfo != null && itemInfo.n_tbk_item != null && itemInfo.n_tbk_item.Count > 0)
{
var tbk_item = itemInfo.n_tbk_item[0];
if (tbk_item.small_images != null && tbk_item.small_images.@string.Count > 0)
{
foreach (string _small_image in tbk_item.small_images.@string)
{
string small_image = _small_image;
if (string.IsNullOrEmpty(shopIcon)) shopIcon = small_image;
if (Class1.Config.HDK_Single_IsQRCodePic == SwitchType. && string.IsNullOrWhiteSpace(QRCodeUrl))
QRCodeUrl = small_image;
Content += $"[图片={small_image}]";
}
}
}
}
#endregion
sb.AppendLine($"d");
if (string.IsNullOrWhiteSpace(Content))
{
session.Deleteable(goods_info).ExecuteCommand();
return;
}
sb.AppendLine($"e");
var clients = ChatClient.WXClient.Values.ToList().Where(f => (f.WeixinType == Chat.Framework.WXSdk.Implement.WeixinType.Grpc微信 || f.WeixinType == Chat.Framework.WXSdk.Implement.WeixinType.Hook微信) && f.Status == Chat.Framework.WXSdk.WxStatus.线);
foreach (var item in clients)
{
sb.AppendLine($"{item.WeixinHao}");
try
{
var robot_info = session.FindRobots().FirstOrDefault(f => f.name == item.WeixinHao && f.type == ChatType.);
if (robot_info != null)
{
var tb_circle_promotion_temp = session.FindTBCirclePromotions().Where(f => f.onoff);
if (tb_circle_promotion_temp != null)
{
sb.AppendLine($"A");
if (tb_circle_promotion_temp.FirstOrDefault(f => f.name == robot_info.name) != null) continue;
}
var adzone = session.FindAdzoneInfos().FirstOrDefault(f => f.alliance_id == (int)CpsType. && f.custom_type == Resources.SoftwareType && f.robot_id == robot_info.id);
if (adzone != null)
{
sb.AppendLine($"B");
var member = CpsClient.Members.FirstOrDefault(f => f.cpstype == CpsType. && f.username == adzone.adzone_pid_cps_name);
if (member != null)
{
sb.AppendLine($"C");
var api = CpsClient.CreateAlimamaRequest(member);
if (api == null) { continue; }
strb.Length = 0;
strb.Append(Content);
//获取的预览图不为空
if (strb.Length != 0)
{
sb.AppendLine($"D");
//朋友圈评语
var goodsInfo = analyzegoods.FindGoodsInfoToGoodsId(goods_info.goods_id, adzone.adzone_pid_cps_name, adzone.adzone_pid, goods_info.goods_quan);//获取到自己返利链接等信息
if (goodsInfo != null)
{
sb.AppendLine($"E");
var tklInfo = tbAnalysis.FindTKL(goodsInfo.shopping_url, api);
if (tklInfo == null)
continue; //生成淘口令失败
//var shortUrl = tbAnalysis.FindShortUrlBySrcUrl(goodsInfo.shopping_url, api);
var short_url = api.ComposeTbClick(goodsInfo.goods_id, goodsInfo.goods_thumbnail_url, tklInfo.tkl, tklInfo.isoUrl, ApiClient.Setting.SystemConfig.ZjyComposeType == ComposeType., (int)DwzType., isCircleZjy: true);//短连接
var cprice = ((decimal)goodsInfo.normal_price - (decimal)goodsInfo.coupon_discount).ToString();//券后价
strb.Append(Class1.Config.HDK_Single_ContentCircle
.Replace("[商品标题]", goods_info.goods_name)
.Replace("[优惠券金额]", goods_info.coupon_discount.ToString())
.Replace("[券后价]", ((decimal)goods_info.normal_price - (decimal)goods_info.coupon_discount).ToString())
.Replace("[劵后价]", ((decimal)goods_info.normal_price - (decimal)goods_info.coupon_discount).ToString())
.Replace("[商品描述]", goods_info.goods_desc)
.Replace("[已售数量]", goods_info.sold_quantity.ToString())
.Replace("[店铺名称]", goods_info.mall_name)
.Replace("[商品单价]", goods_info.normal_price.ToString())
.Replace("[购买地址]", short_url)
.Replace("[淘口令]", tklInfo.tkl)
);
////朋友圈评语
//var goodsInfo = analyzegoods.FindGoodsInfoToGoodsId(goods_info.goods_id, adzone.adzone_pid_cps_name, adzone.adzone_pid, goods_info.goods_quan);//获取到自己返利链接等信息
//if (goodsInfo != null)
//{
// var tkl = tbAnalysis.FindTKL(goodsInfo.shopping_url, goodsInfo.goods_name, goodsInfo.goods_thumbnail_url, api);
// if (string.IsNullOrEmpty(tkl)) { continue; }//生成淘口令失败
// var shortUrl = tbAnalysis.FindShortUrlBySrcUrl(goodsInfo.shopping_url, api);
// var short_url = api.ComposeTbClick(goodsInfo.goods_id, goodsInfo.goods_thumbnail_url, tkl, shortUrl, true, (int)DwzType.快站短网址);//短连接
// var cprice = ((decimal)goodsInfo.normal_price - (decimal)goodsInfo.coupon_discount).ToString();//券后价
//合成二维码图片
if (!string.IsNullOrEmpty(QRCodeUrl))
{
sb.AppendLine($"F");
var QRCodeimage = ApiClient.GetQRImage(goodsInfo.goods_name, goodsInfo.normal_price.ToString(), goodsInfo.coupon_discount.ToString(), cprice, QRCodeUrl, short_url, Class1.Config.HDK_Model, CpsType., string.IsNullOrWhiteSpace(Class1.Config.HDK_Single_GoodsQRCodePicDesc) ? goods_info.goods_desc : Class1.Config.HDK_Single_GoodsQRCodePicDesc); //合成附带二维码等信息的宝贝图片
strb.Append($"[图片={QRCodeimage}]");
}
if (Class1.Config.HDK_Single_IsSynthCoupon == SwitchType.)
{
sb.AppendLine($"G");
#region
if (string.IsNullOrEmpty(shopIcon) || goodsInfo.mall_name == "天猫超市")
shopIcon = "https://ss2.bdstatic.com/8_V1bjqh_Q23odCf/pacific/1659832877.jpg";
#endregion
if (!File.Exists(Tools.PosterPathImgUrl))
Tools.GetBaseIco();
//合成优惠券图片
var shopimage_temp = Util.MapFile(Guid.NewGuid().ToString() + ".jpg", "Cache\\Image");
try
{
FileTools.DownloadImage(shopIcon, shopimage_temp);
}
catch (Exception ex)
{
FileTools.DownloadImage("https://ss2.bdstatic.com/8_V1bjqh_Q23odCf/pacific/1659832877.jpg", shopimage_temp);
}
var shopimage = Tools.ReadImageFile(shopimage_temp);
shopimage = Tools.getnew(shopimage, 150, 150);
var goodsImage_temp = Util.MapFile(Guid.NewGuid().ToString() + ".jpg", "Cache\\Image");
FileTools.DownloadImage(goodsInfo.goods_thumbnail_url, goodsImage_temp);
var goodsImage = Tools.ReadImageFile(goodsImage_temp);
goodsImage = Tools.getnew(goodsImage, 150, 150);
strb.Append($"[图片={ApiClient.GetCouponImage2(Tools.PosterPathImgUrl2, goodsInfo.mall_name, shopimage, goodsInfo.goods_name, goodsInfo.normal_price.ToString(), goodsInfo.coupon_discount.ToString(), goodsImage, $"{DateTime.Today.ToString("yyyy.MM.dd")} - {DateTime.Today.AddMonths(1).ToString("yyyy.MM.dd")}", goodsInfo.sold_quantity.ToString())}]");
}
sb.AppendLine($"H");
//淘口令的前/后符号有没有设置.有设置将替换掉
var tkl = new TBHelper.TbAnalysis().ReplaceTklModifier(tklInfo.tkl);
var comment = Class1.Config.HDK_Single_AdditionalComment
.Replace("[商品标题]", goodsInfo.goods_name)
//.Replace("[商品描述]", goodsInfo.goods_desc)
.Replace("[已售数量]", goodsInfo.sold_quantity.ToString())
.Replace("[店铺名称]", goodsInfo.mall_name)
.Replace("[优惠券金额]", goodsInfo.coupon_discount.ToString())
.Replace("[优惠券数量]", goodsInfo.coupon_remain_quantity.ToString())
.Replace("[商品单价]", goodsInfo.normal_price.ToString())
.Replace("[券后价]", cprice)
.Replace("[劵后价]", cprice)
.Replace("[购买地址]", short_url)
.Replace("[淘口令]", tkl);//评语内容
goods_infos_temp.Add(goods_info);
var json = item.SendCircle(strb.ToString().Replace("[购买地址]", short_url));
if (!string.IsNullOrWhiteSpace(Class1.Config.HDK_Single_AdditionalComment))
{
sb.AppendLine($"I");
var reg = Regex.Match(json.Replace("<![CDATA[", "").Replace("]]>", ""), @"<id>(?<id>\d{15,})</id>");//获取返回的朋友圈id
if (reg.Success)
item.SendCircleComment(item.User.Username, reg.Groups["id"].Value, comment);
}
if (string.IsNullOrWhiteSpace(json))
EventClient.OnEvent(this, $"【淘宝发单】单({clients.Count()}){item.WeixinHao},发单失败");
else
EventClient.OnEvent(this, $"【淘宝发单】单({clients.Count()}){item.WeixinHao},发单成功");
isSend = true;//认定发送过了...
}
}
}
}
}
}
catch (Exception ex)
{
EventClient.OnEvent(this, $"淘宝推广 - 单产品:{item.WeixinHao},朋友圈推广失败,{ex.Message} - {ex.StackTrace}");
}
}
}
}
#endregion
if (isSend)
{
//RecordSendTime = DateTime.Now;
for (int i = 0; i < goods_infos_temp.Count; i++)
{
session.ExcuteSQL("update fl_plugin_tbcirclepromotion_goodsinfos set state = @state where id = @id", new { state = Enums.StateType.广, id = goods_infos_temp[i].id });
}
Class1.Config.HDK_RecordSendTime = DateTime.Now;
Util.Save(Class1.Config);
}
}
}
catch (Exception ex)
{
//EventClient.OnEvent(this, $"淘宝推广:{ex.Message},{ex.StackTrace}");
}
finally
{
//EventClient.OnEvent(this, $"【淘宝发单】({sb.ToString()})");
}
#endregion
#region xxx
//#region 定时清空采集的数据
//if (!string.IsNullOrWhiteSpace(Class1.Config.AutoClearTaskTimes))
//{
// if (Class1.Config.Auto_IsClear == SwitchType.开启)
// {
// try
// {
// if (DateTime.Now.AddSeconds(-3).ToString("HHmm") == DateTime.Parse(Class1.Config.AutoClearTaskTimes).ToString("HHmm"))
// {
// session.ExcuteSQL("Delete from fl_plugin_tbcirclepromotion_goodsinfos", new { });
// }
// }
// catch (Exception ex)
// {
// EventClient.OnEvent(this, "定时清理异常" + ex.Message + "-" + ex.StackTrace);
// }
// }
//}
//#endregion
//isSendTime = false;
//var now = DateTime.Now;
//for (int i = 0; i < Class1.Config.SendTaskTimes.Length; i++)
//{
// if (!string.IsNullOrWhiteSpace(Class1.Config.SendTaskTimes[i]))
// {
// var times = Class1.Config.SendTaskTimes[i].Trim().Split('-');
// if (times.Length == 2)
// {
// var begin = DateTime.Parse(times[0].Trim());
// var end = DateTime.Parse(times[1].Trim());
// if (begin <= now && now <= end)
// {
// isSendTime = true;
// break;
// }
// }
// }
//}
//if (!isSendTime) return;
//if ((DateTime.Now - Class1.Config.RecordSendTime).TotalMinutes < Class1.Config.Interval_Circle) return;
//try
//{
// lock (objLock)
// {
// //删除N天前的数据
// session.ExcuteSQL("Delete from fl_plugin_tbcirclepromotion_goodsinfos where cur_time <= @time", new { time = DateTime.Today.AddDays(-3) });
// isSend = false;
// #region 采集数据
// if (Class1.Config.Switch == SwitchType.开启)
// {
// var num = session.Queryable<fl_plugin_tbcirclepromotion_goodsinfos>().Count(f => f.state == StateType.未推广);
// if (num <= Class1.Config.GatherTouchNum) analyzeGoods.GatherFactory();
// }
// #endregion
// var goods_infos_temp = new List<fl_plugin_tbcirclepromotion_goodsinfos>();
// #region 发送多产品模式
// if (Class1.Config.SendMode == SendModeType.多产品)
// {
// //var goods_infos = session.Find<fl_plugin_tbcirclepromotion_goodsinfos>($"select * from fl_plugin_tbcirclepromotion_goodsinfos where state = 1 order by cur_time desc limit {(Class1.Config.Multi_SendGoodsImageNum <= 0 ? 1 : Class1.Config.Multi_SendGoodsImageNum)}");
// var goods_infos = session.Queryable<fl_plugin_tbcirclepromotion_goodsinfos>().Where(f => f.state == StateType.未推广).OrderBy(f => f.cur_time, OrderByType.Desc).ToPageList(1, (Class1.Config.Multi_SendGoodsImageNum <= 0 ? 1 : Class1.Config.Multi_SendGoodsImageNum));
// if (goods_infos != null && goods_infos.Count != 0)
// {
// var clients = Chat.Framework.ChatClient.WXClient.Values;
// foreach (var item in clients)
// {
// try
// {
// if (item.WeixinType == Chat.Framework.WXSdk.Implement.WeixinType.Grpc微信 && item.Status == Chat.Framework.WXSdk.WxStatus.在线)
// {
// var robot_info = session.FindRobotInfo(item.WeixinHao, ChatType.微信);
// if (robot_info != null)
// {
// var tb_circle_promotion_temp = session.FindTBCirclePromotions().Where(f => f.onoff).ToList();
// if (tb_circle_promotion_temp != null)
// {
// if (tb_circle_promotion_temp.FirstOrDefault(f => f.name == robot_info.name) != null) continue;
// }
// var adzone = session.FindAdzoneInfos().FirstOrDefault(f => f.alliance_id == (int)CpsType.阿里妈妈 && f.custom_type == Resources.SoftwareType && f.robot_id == robot_info.id);
// if (adzone != null)
// {
// var member = CpsClient.Members.FirstOrDefault(f => f.cpstype == CpsType.阿里妈妈 && f.username == adzone.adzone_pid_cps_name);
// if (member != null)
// {
// var api = CpsClient.CreateAlimamaRequest(member);
// if (api == null) { continue; }
// strb.Length = 0;
// strb.AppendLine(Class1.Config.Multi_ContentCircle);
// int count = 0;
// for (int i = 0; i < goods_infos.Count; i++)
// {
// try
// {
// goods_infos_temp.Add(goods_infos[i]);
// var goodsinfo = goods_infos[i];
// count = 0;
// Next:
// //var result = analyzegoods.FindGoodsInfoToGoodsId(goodsinfo.goods_id, GoodsSourceType.对象, adzone.adzone_pid_cps_name, adzone.adzone_pid);//获取到自己返利链接等信息
// var result = analyzegoods.FindGoodsInfoToGoodsId(goodsinfo.goods_id, adzone.adzone_pid_cps_name, adzone.adzone_pid, goodsinfo.goods_quan);//获取到自己返利链接等信息
// if (result == null)
// {
// count++;
// if (count <= 7 && goods_infos_temp.Count < goods_infos.Count)
// {
// goodsinfo = session.Queryable<fl_plugin_tbcirclepromotion_goodsinfos>().Where(f => f.state == StateType.未推广).OrderBy(f => f.cur_time, OrderByType.Desc).First();
// goods_infos_temp.Add(goodsinfo);
// goto Next;
// }
// else
// continue;
// }
// else
// {
// var shortUrl = tbAnalysis.FindShortUrlBySrcUrl(result.shopping_url, api);
// if (string.IsNullOrEmpty(shortUrl)) { continue; }//生成短连接失败
// var tkl = tbAnalysis.FindTKL(shortUrl, result.goods_name, result.goods_thumbnail_url, api);
// if (string.IsNullOrEmpty(tkl)) { continue; }//生成淘口令失败
// var short_url = ApiClient.ShortURL(api.ComposeTbClick(result.goods_id, result.goods_thumbnail_url, tkl, result.shopping_url), DwzType.新浪短网址).Result;//短连接
// var cprice = ((decimal)result.normal_price - (decimal)result.coupon_discount).ToString();//券后价
// var goods_desc = string.IsNullOrWhiteSpace(Class1.Config.Multi_GoodsDesc) ? result.goods_desc : Class1.Config.Multi_GoodsDesc
// .Replace("[商品标题]", result.goods_name)
// .Replace("[商品描述]", result.goods_desc)
// .Replace("[已售数量]", result.sold_quantity.ToString())
// .Replace("[店铺名称]", result.mall_name)
// .Replace("[优惠券金额]", result.coupon_discount.ToString())
// .Replace("[优惠券数量]", result.coupon_remain_quantity.ToString())
// .Replace("[商品单价]", result.normal_price.ToString())
// .Replace("[券后价]", cprice)
// .Replace("[劵后价]", cprice)
// .Replace("[购买地址]", short_url);// result.shopping_url);
// var image = ApiClient.GetQRImage(result.goods_name, result.normal_price.ToString(), result.coupon_discount.ToString(), cprice, result.goods_thumbnail_url, short_url, Class1.Config.Model, CpsType.阿里妈妈, Class1.Config.Single_GoodsQRCodePicDesc); //合成附带二维码等信息的宝贝图片
// strb.Append($"[图片={image}]");
// }
// }
// catch
// { }
// }
// var json = item.SendCircle(strb.ToString());
// if (!string.IsNullOrWhiteSpace(Class1.Config.Multi_AdditionalComment))
// {
// var reg = Regex.Match(json.Replace("<![CDATA[", "").Replace("]]>", ""), @"<id>(?<id>\d{15,})</id>");//获取返回的朋友圈id
// if (reg.Success)
// item.SendCircleComment(item.User.Username, reg.Groups["id"].Value, Class1.Config.Multi_AdditionalComment);
// }
// isSend = true;//认定发送过了...
// }
// }
// }
// }
// }
// catch (Exception ex)
// {
// EventClient.OnEvent(this, $"淘宝推广 - 多产品:{item.WeixinHao},朋友圈推广失败,{ex.Message}");
// }
// }
// }
// }
// #endregion
// #region 发送单品【多图】模式
// else
// {
// //获取一个宝贝
// var goods_info = session.Queryable<fl_plugin_tbcirclepromotion_goodsinfos>().Where(f => f.state == StateType.未推广).OrderBy(f => f.cur_time, OrderByType.Desc).First();
// if (goods_info != null)
// {
// var clients = Chat.Framework.ChatClient.WXClient.Values;
// foreach (var item in clients)
// {
// try
// {
// if (item.WeixinType == Chat.Framework.WXSdk.Implement.WeixinType.Grpc微信 && item.Status == Chat.Framework.WXSdk.WxStatus.在线)
// {
// var robot_info = session.FindRobotInfo(item.WeixinHao, ChatType.微信);
// if (robot_info != null)
// {
// var tb_circle_promotion_temp = session.FindTBCirclePromotions().Where(f => f.onoff);
// if (tb_circle_promotion_temp != null)
// {
// if (tb_circle_promotion_temp.FirstOrDefault(f => f.name == robot_info.name) != null) continue;
// }
// var adzone = session.FindAdzoneInfos().FirstOrDefault(f => f.alliance_id == (int)CpsType.阿里妈妈 && f.custom_type == Resources.SoftwareType && f.robot_id == robot_info.id);
// if (adzone != null)
// {
// var member = CpsClient.Members.FirstOrDefault(f => f.cpstype == CpsType.阿里妈妈 && f.username == adzone.adzone_pid_cps_name);
// if (member != null)
// {
// var api = CpsClient.CreateAlimamaRequest(member);
// if (api == null) { continue; }
// int num = 0;
// Next:
// HttpItem httpItem = new HttpItem()
// {
// URL = @"https://item.taobao.com/item.htm?id=" + goods_info.goods_id,//宝贝的链接
// Method = "get",
// IsToLower = false,
// Timeout = 10000,
// ReadWriteTimeout = 10000,
// Allowautoredirect = true,
// UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0",
// ContentType = "application/x-www-form-urlencoded"
// };
// HttpHelper http = new HttpHelper();
// var result = http.GetHtml(httpItem);
// if (result != null && result.Html == "操作超时" && num <= 3)
// {
// num++;
// goto Next;
// }
// var regs = Regex.Matches(result.Html, @"<a href=""#""><img ([^=]+?)=""(?<商品预览图>.+?.jpg)_([^""]*?)""");
// if (regs.Count != 0)
// {
// strb.Length = 0;
// //var previewPicUrls = new List<string>();//保存商品预览图
// var shopIcon = string.Empty;
// var QRCodeUrl = string.Empty;//获取其中一张图片用于合成二维码
// for (int i = 0; i < regs.Count; i++)
// {
// var previewPic = regs[i].Groups["商品预览图"].Value;
// if (!previewPic.StartsWith("http"))
// {
// previewPic = $"http:{previewPic}";
// if (string.IsNullOrEmpty(shopIcon)) shopIcon = previewPic;
// }
// if (Class1.Config.Single_IsQRCodePic == SwitchType.开启 && i == (regs.Count - 1))
// QRCodeUrl = previewPic;
// else
// strb.Append($"[图片={previewPic}]");
// }
// //获取的预览图不为空
// if (strb.Length != 0)
// {
// strb.Append(Class1.Config.Single_ContentCircle
// .Replace("[商品标题]", goods_info.goods_name)
// .Replace("[优惠券金额]", goods_info.coupon_discount.ToString())
// .Replace("[券后价]", ((decimal)goods_info.normal_price - (decimal)goods_info.coupon_discount).ToString())
// .Replace("[劵后价]", ((decimal)goods_info.normal_price - (decimal)goods_info.coupon_discount).ToString())
// .Replace("[商品描述]", goods_info.goods_desc)
// .Replace("[已售数量]", goods_info.sold_quantity.ToString())
// .Replace("[店铺名称]", goods_info.mall_name)
// .Replace("[商品单价]", goods_info.normal_price.ToString()));
// //朋友圈评语
// //var goodsInfo = analyzegoods.FindGoodsInfoToGoodsId(goods_info.goods_id, GoodsSourceType.对象, adzone.adzone_pid_cps_name, adzone.adzone_pid);//获取到自己返利链接等信息
// var goodsInfo = analyzegoods.FindGoodsInfoToGoodsId(goods_info.goods_id, adzone.adzone_pid_cps_name, adzone.adzone_pid, goods_info.goods_quan);//获取到自己返利链接等信息
// if (goodsInfo != null)
// {
// var shortUrl = tbAnalysis.FindShortUrlBySrcUrl(goodsInfo.shopping_url, api);
// if (string.IsNullOrEmpty(shortUrl)) { continue; }//生成短连接失败
// var tkl = tbAnalysis.FindTKL(shortUrl, goodsInfo.goods_name, goodsInfo.goods_thumbnail_url, api);
// if (string.IsNullOrEmpty(tkl)) { continue; }//生成淘口令失败
// var short_url = ApiClient.ShortURL(api.ComposeTbClick(goodsInfo.goods_id, goodsInfo.goods_thumbnail_url, tkl, goodsInfo.shopping_url), DwzType.新浪短网址).Result;//短连接
// var cprice = ((decimal)goodsInfo.normal_price - (decimal)goodsInfo.coupon_discount).ToString();//券后价
// //合成二维码图片
// if (!string.IsNullOrEmpty(QRCodeUrl))
// {
// var QRCodeimage = ApiClient.GetQRImage(goodsInfo.goods_name, goodsInfo.normal_price.ToString(), goodsInfo.coupon_discount.ToString(), cprice, QRCodeUrl, short_url, Class1.Config.Model, CpsType.阿里妈妈, Class1.Config.Single_GoodsQRCodePicDesc); //合成附带二维码等信息的宝贝图片
// strb.Append($"[图片={QRCodeimage}]");
// }
// if (Class1.Config.Single_IsSynthCoupon == SwitchType.开启)
// {
// #region 获取头像
// // B
// //var shopIcon = string.Empty;
// //var objDate = api.SendTaobao("taobao.tbk.item.info.get", new { num_iids = goods_info.goods_id });
// //if (objDate != null && objDate.Count != 0)
// //{
// // var tbk_temp_info = ((objDate["n_tbk_item"]) as ArrayList)[0];
// // var tbk_item = tbk_temp_info as Dictionary<string, object>;
// // //商品主图
// // shopIcon = tbk_item["pict_url"].ToString();
// //}
// if (string.IsNullOrEmpty(shopIcon) || goodsInfo.mall_name == "天猫超市")
// shopIcon = "https://ss2.bdstatic.com/8_V1bjqh_Q23odCf/pacific/1659832877.jpg";
// #endregion
// if (!File.Exists(Tools.PosterPathImgUrl))
// Tools.GetBaseIco();
// //strb.Append($"[图片={ApiClient.GetCouponImage(Tools.PosterPathImgUrl, goodsInfo.mall_name, shopIcon, goodsInfo.coupon_discount.ToString(), $"{DateTime.Today.ToString("yyyy.MM.dd")} - {DateTime.Today.AddMonths(1).ToString("yyyy.MM.dd")}")}]");
// //合成优惠券图片
// var shopimage_temp = Util.MapFile(Guid.NewGuid().ToString() + ".jpg", "Cache\\Image");
// try
// {
// Tools.DownloadImage(shopIcon, shopimage_temp);
// }
// catch (Exception ex)
// {
// Tools.DownloadImage("https://ss2.bdstatic.com/8_V1bjqh_Q23odCf/pacific/1659832877.jpg", shopimage_temp);
// }
// var shopimage = Tools.ReadImageFile(shopimage_temp);
// shopimage = Tools.getnew(shopimage, 150, 150);
// var goodsImage_temp = Util.MapFile(Guid.NewGuid().ToString() + ".jpg", "Cache\\Image");
// Tools.DownloadImage(goodsInfo.goods_thumbnail_url, goodsImage_temp);
// var goodsImage = Tools.ReadImageFile(goodsImage_temp);
// goodsImage = Tools.getnew(goodsImage, 150, 150);
// strb.Append($"[图片={ApiClient.GetCouponImage2(Tools.PosterPathImgUrl2, goodsInfo.mall_name, shopimage, goodsInfo.goods_name, goodsInfo.normal_price.ToString(), goodsInfo.coupon_discount.ToString(), goodsImage, $"{DateTime.Today.ToString("yyyy.MM.dd")} - {DateTime.Today.AddMonths(1).ToString("yyyy.MM.dd")}", goodsInfo.sold_quantity.ToString())}]");
// }
// Random rd = new Random();
// if (!string.IsNullOrWhiteSpace(ApiClient.Setting.SystemConfig.TklStr_First))
// {
// var fh = ApiClient.Setting.SystemConfig.TklStr_First.Split('|');//符号
// tkl = fh[rd.Next(0, fh.Length)] + tkl.Substring(1, tkl.Length - 1);
// }
// if (!string.IsNullOrWhiteSpace(ApiClient.Setting.SystemConfig.TKLStr_End))
// {
// var fh = ApiClient.Setting.SystemConfig.TKLStr_End.Split('|');//符号
// tkl = tkl.Substring(0, tkl.Length - 1) + fh[rd.Next(0, fh.Length)];
// }
// var comment = Class1.Config.Single_AdditionalComment
// .Replace("[商品标题]", goodsInfo.goods_name)
// //.Replace("[商品描述]", goodsInfo.goods_desc)
// .Replace("[已售数量]", goodsInfo.sold_quantity.ToString())
// .Replace("[店铺名称]", goodsInfo.mall_name)
// .Replace("[优惠券金额]", goodsInfo.coupon_discount.ToString())
// .Replace("[优惠券数量]", goodsInfo.coupon_remain_quantity.ToString())
// .Replace("[商品单价]", goodsInfo.normal_price.ToString())
// .Replace("[券后价]", cprice)
// .Replace("[劵后价]", cprice)
// .Replace("[购买地址]", short_url)
// .Replace("[淘口令]", tkl);//评语内容
// goods_infos_temp.Add(goods_info);
// var json = item.SendCircle(strb.ToString().Replace("[购买地址]", short_url));
// //EventClient.OnEvent(this,$"发送成功:{json}");
// if (!string.IsNullOrWhiteSpace(Class1.Config.Single_AdditionalComment))
// {
// var reg = Regex.Match(json.Replace("<![CDATA[", "").Replace("]]>", ""), @"<id>(?<id>\d{15,})</id>");//获取返回的朋友圈id
// if (reg.Success)
// item.SendCircleComment(item.User.Username, reg.Groups["id"].Value, comment);
// }
// isSend = true;//认定发送过了...
// }
// }
// }
// }
// }
// }
// }
// }
// catch (Exception ex)
// {
// EventClient.OnEvent(this, $"淘宝推广 - 单产品:{item.WeixinHao},朋友圈推广失败,{ex.Message} - {ex.StackTrace}");
// }
// }
// }
// }
// #endregion
// if (isSend)
// {
// //RecordSendTime = DateTime.Now;
// for (int i = 0; i < goods_infos_temp.Count; i++)
// {
// //goods_infos_temp[i].state = Enums.StateType.已推广;
// //session.Updateable(goods_infos_temp[i]).ExecuteCommand();
// session.ExcuteSQL("update fl_plugin_tbcirclepromotion_goodsinfos set state = @state where id = @id", new { state = Enums.StateType.已推广, id = goods_infos_temp[i].id });
// }
// Class1.Config.RecordSendTime = DateTime.Now;
// Api.Framework.Tools.Util.Save(Class1.Config);
// }
// }
//}
//catch (Exception ex)
//{
// EventClient.OnEvent(this, $"淘宝推广:{ex.Message},{ex.StackTrace}");
//}
#endregion
}
}
}