old_flsystem/类库/Api.Framework/Tools/SNHelper.cs

296 lines
9.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Api.Framework.Cps;
using CsharpHttpHelper;
using CsharpHttpHelper.Enum;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace Api.Framework.Tools
{
/// <summary>
/// 苏宁助手
/// </summary>
public class SNHelper
{
/// <summary>
/// 获取苏宁链接中的商品ID
/// </summary>
/// <param name="mess">包含抖音链接的文本</param>
/// <returns></returns>
public static SNId GetSNGoodsID(string mess)
{
if (string.IsNullOrWhiteSpace(mess) ||
Regex.IsMatch(mess, @"\[图片=(.+?)\]") ||
Regex.IsMatch(mess, @"\[视频=(.+?)\]") ||
Regex.IsMatch(mess, @"\[卡片=(.+?)\]") ||
Regex.IsMatch(mess, @"\[公告=(.+?)\]") ||
Regex.IsMatch(mess, @"\[语音=(.+?)\]")
)
return null;
try
{
var reg = Regex.Match(mess, @"(?:(?:midfourth.html\?productId=(?<goodid>\d{10,})&amp;shop=(?<shop>\d+))|(?:suning.com/(?<shop>\d{10})/(?<goodid>\d+))|(?:m.suning.com/product/(?<shop>\d{10})/(?<goodid>\d+))|(?:from=APP&productId=(?<goodid>\d+)&shop=(?<shop>\d+)))|(?:shopId=(?<shop>\d{10})&storeId=(?<goodid>\d+))", RegexOptions.IgnoreCase);
if (reg.Success)
{
return new SNId() { goodid = reg.Groups["goodid"].ToString(), shop = reg.Groups["shop"].ToString() };
}
else
{
if (mess.ToLower().Contains("suning.com"))
{
var _url = HttpExtend.RegexMatchUrl(mess);
if (!string.IsNullOrWhiteSpace(_url))
{
var cps = new SuNingApi(new Model.fl_cps_member());
var snGInfo = cps.QuerySearchCommodity(_url);
if (snGInfo.sn_responseContent.sn_error != null)
throw new Exception(snGInfo.sn_responseContent.sn_error.error_msg);//查询没结果
else if (snGInfo.sn_responseContent.sn_body == null || snGInfo.sn_responseContent.sn_body.querySearchcommodity == null || snGInfo.sn_responseContent.sn_body.querySearchcommodity.Count == 0)
throw new Exception("查询没结果2");
else if (snGInfo.sn_responseContent.sn_body != null && snGInfo.sn_responseContent.sn_body.querySearchcommodity != null && snGInfo.sn_responseContent.sn_body.querySearchcommodity.Count != 0)
{
return new SNId() { goodid = snGInfo.sn_responseContent.sn_body.querySearchcommodity[0].commodityInfo.commodityCode, shop = snGInfo.sn_responseContent.sn_body.querySearchcommodity[0].commodityInfo.supplierCode };
}
}
}
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return null;
}
//private static SNId GetSnid(string mess)
//{
//}
#region
/// <summary>
/// 苏宁id,供应商id(自营为十个0)
/// </summary>
public class SNId
{
/// <summary>
/// 商品id
/// </summary>
public string goodid { get; set; }
/// <summary>
/// 供应商id
/// </summary>
public string shop { get; set; }
}
#endregion
}
#region
/// <summary>
/// 响应头
/// </summary>
public class Sn_head
{
/// <summary>
/// 总数量
/// </summary>
public string totalSize { get; set; }
/// <summary>
/// 总页数
/// </summary>
public string pageTotal { get; set; }
/// <summary>
/// 当前页
/// </summary>
public string pageNo { get; set; }
/// <summary>
/// 返回状态内容
/// </summary>
public string returnMessage { get; set; }
}
/// <summary>
/// 订单明细
/// </summary>
public class OrderDetail
{
/// <summary>
/// 支付时间格式yyyy-MM-dd HH:mm:ss
/// </summary>
public DateTime payTime { get; set; }
/// <summary>
/// 下单时间格式yyyy-MM-dd HH:mm:ss
/// </summary>
public DateTime orderSubmitTime { get; set; }
/// <summary>
/// 订单行项目号
/// </summary>
public string orderLineNumber { get; set; }
/// <summary>
/// 订单行项目状态 - 支付完成
/// </summary>
public string orderLineStatusDesc { get; set; }
/// <summary>
/// 行项目状态更新时间格式yyyy-MM-dd HH:mm:ss
/// </summary>
public DateTime orderLineStatusChangeTime { get; set; }
/// <summary>
/// 订单行来源PC端、无线端
/// </summary>
public string orderLineOrigin { get; set; }
/// <summary>
/// 商品名称
/// </summary>
public string productName { get; set; }
/// <summary>
/// 商品数量
/// </summary>
public string saleNum { get; set; }
/// <summary>
/// 实付金额
/// </summary>
public string payAmount { get; set; }
/// <summary>
/// 订单行标记
/// </summary>
public string orderLineFlag { get; set; }
/// <summary>
/// 子推广账号ID(对应sub_user)
/// </summary>
public string childAccountId { get; set; }
/// <summary>
/// 商户名称
/// </summary>
public string sellName { get; set; }
/// <summary>
/// 商户编码
/// </summary>
public string sellerCode { get; set; }
/// <summary>
/// 商品编码
/// </summary>
public string goodsNum { get; set; }
/// <summary>
/// 佣金比例
/// </summary>
public string commissionRatio { get; set; }
/// <summary>
/// 预估佣金
/// </summary>
public string prePayCommission { get; set; }
/// <summary>
/// 一级目录
/// </summary>
public string productFirstCatalog { get; set; }
/// <summary>
/// 二级目录
/// </summary>
public string productSecondCatalog { get; set; }
/// <summary>
/// 三级目录
/// </summary>
public string productThirdCatalog { get; set; }
/// <summary>
/// 商品归属 - 自营
/// </summary>
public string orderType { get; set; }
/// <summary>
/// 推广位ID
/// </summary>
public string positionId { get; set; }
/// <summary>
/// 商品组目录编码
/// </summary>
public string goodsGroupCatalog { get; set; }
/// <summary>
/// 推广类型 - 链接推广
/// </summary>
public string saleType { get; set; }
/// <summary>
/// 商品主图
/// </summary>
public string pictureUrl { get; set; }
/// <summary>
/// 1.风控订单
/// </summary>
public string promotion { get; set; }
/// <summary>
/// 是否违规,01
/// </summary>
public string violation { get; set; }
/// <summary>
/// 是否返佣01
/// </summary>
public string returnCommission { get; set; }
/// <summary>
/// 推广会员编码
/// </summary>
public string custNo { get; set; }
/// <summary>
///
/// </summary>
public string statParam { get; set; }
}
/// <summary>
/// 订单类
/// </summary>
public class QueryOrder
{
/// <summary>
/// 订单号
/// </summary>
public string orderCode { get; set; }
/// <summary>
/// 订单明细集合
/// </summary>
public List<OrderDetail> orderDetail { get; set; }
}
/// <summary>
/// 响应体
/// </summary>
public class Sn_body
{
/// <summary>
/// 订单集合
/// </summary>
public List<QueryOrder> queryOrder { get; set; }
}
/// <summary>
/// 响应结构
/// </summary>
public class Sn_responseContent
{
/// <summary>
/// 响应头
/// </summary>
public Sn_head sn_head { get; set; }
/// <summary>
/// 响应体
/// </summary>
public Sn_body sn_body { get; set; }
}
/// <summary>
/// 订单响应结果
/// </summary>
public class SNOrderResponseResult
{
/// <summary>
/// 响应结构
/// </summary>
public Sn_responseContent sn_responseContent { get; set; }
}
#endregion
}