using AlibabaSDK.Api;
|
using AlibabaSDK.Domain;
|
using AlibabaSDK.Request;
|
using CommonUtil;
|
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Mvc;
|
using Operater.DAL;
|
using Operater.DbModel;
|
using Operater.DTO.System;
|
using Operater.Service;
|
using SqlSugar;
|
using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Linq;
|
using System.Threading.Tasks;
|
|
namespace Api.Operater.Controllers
|
{
|
[Route(TopConstants.API_ROUTE)]
|
public class ProductInfoController : BaseController
|
{
|
private readonly ILoginUserInfoService _loginUserInfoService;
|
|
public ProductInfoController(ILoginUserInfoService loginUserInfoService)
|
{
|
_loginUserInfoService = loginUserInfoService;
|
}
|
|
/// <summary>
|
/// 精选货源商品查询标获取
|
/// </summary>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetProRules()
|
{
|
var userInfo = _loginUserInfoService.GetUserInfo();
|
PFTProductSearchTagListRequest request = new PFTProductSearchTagListRequest();
|
var response = AliabaClient.Execute(request, userInfo.AlibabaToken);
|
PFTProductSearchTagListDomainItem item = new PFTProductSearchTagListDomainItem()
|
{
|
ruleId = 0,
|
ruleName = "不限"
|
};
|
List<PFTProductSearchTagListDomainItem> list = new List<PFTProductSearchTagListDomainItem>();
|
list.Add(item);
|
list.AddRange(response.result.result);
|
|
return Success(list);
|
}
|
|
|
/// <summary>
|
/// 获取精品货源商品列表
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetProductList([FromBody] GetProductListRequest request)
|
{
|
var userInfo = _loginUserInfoService.GetUserInfo();
|
PFTProductListRequest proReq = new PFTProductListRequest()
|
{
|
pageNo = request.PageNo,
|
pageSize = request.PageSize
|
};
|
if (!request.KeyWords.IsNullOrEmpty())
|
{
|
proReq.keywords = request.KeyWords;
|
}
|
if (!request.RuleId.IsNullOrEmpty())
|
{
|
proReq.ruleId = request.RuleId;
|
}
|
if (request.CategoryId > 0)
|
{
|
proReq.categoryId = request.CategoryId.ToString();
|
}
|
var response = AliabaClient.Execute(proReq, userInfo.AlibabaToken);
|
if (!response.result.success)
|
{
|
return Success(new List<PFTProductListResultResultList>(), request.PageNo, request.PageSize, 0);
|
}
|
//查询已铺货的数据
|
var hasRelate = new DistributionRelationDAL().ListGet(t => t.ReStatus == 1);
|
foreach (var item in response.result.result.resultList)
|
{
|
if (!hasRelate.IsNull() && hasRelate.Count > 0)
|
{
|
item.ReType = hasRelate.Any(t => t.SourceProduct == item.itemId.ToString());
|
}
|
if (item.serviceList.IsNull())
|
{
|
continue;
|
}
|
item.serviceList = item.serviceList.OrderBy(t => t.name.Length).ToList();
|
}
|
return Success(response.result.result.resultList, request.PageNo, request.PageSize, response.result.result.totalRecords);
|
|
}
|
|
/// <summary>
|
/// 获取商品详情
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetProductDetail([FromBody] GetProductDetailRequest request)
|
{
|
var userInfo = _loginUserInfoService.GetUserInfo();
|
PFTProductDetailRequest req = new PFTProductDetailRequest()
|
{
|
offerIds = request.OfferIds
|
};
|
var response = AliabaClient.Execute(req, userInfo.AlibabaToken);
|
if (response.IsNull() || !response.result.success)
|
{
|
return Error("获取商品详情失败:" + response.result.message);
|
}
|
if (response.result.result[0].productInfo.skuInfos.IsNull())
|
{
|
response.result.result[0].productInfo.skuInfos = new List<SkuInfosItem>();
|
}
|
foreach (var item in response.result.result[0].productInfo.skuInfos)
|
{
|
var list = item.attributes.Where(t => !t.skuImageUrl.IsNullOrEmpty()).ToList();
|
if (!list.IsNull() && list.Count > 0)
|
{
|
item.attributes[0].skuImageUrl = "https://cbu01.alicdn.com/img/" + list[0].skuImageUrl;
|
}
|
}
|
|
|
return Success(response.result.result[0].productInfo);
|
}
|
|
/// <summary>
|
/// 获取商品类目
|
/// </summary>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetCategoryList([FromBody] GetCategoryListRequest request)
|
{
|
var userInfo = _loginUserInfoService.GetUserInfo();
|
List<Category> list = new List<Category>();
|
var cateList = new CategoryDAL().ListGet(t => t.Parentid == request.CateId);
|
Category nolimit = new Category()
|
{
|
Id = request.CateId,
|
Name = "不限",
|
Parentid = request.CateId
|
};
|
list.Add(nolimit);
|
if (!cateList.IsNull() && cateList.Count > 0)
|
{
|
list.AddRange(cateList);
|
}
|
return Success(list);
|
}
|
|
/// <summary>
|
/// 获取代发方案商品列表
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetDaiFaProductList([FromBody] GetDaiFaProductListRequset request)
|
{
|
var expression = Expressionable.Create<DaifaProduct>().AndIF(!request.Title.IsNull(), t => t.Subject.Contains(request.Title))
|
.ToExpression();
|
int totalCount = new DaifaProductDAL().Count(expression);
|
if (totalCount == 0)
|
{
|
return Success(new List<DaifaProduct>(), request.PageNo, request.PageSize, 0);
|
}
|
string where = "";
|
if (!request.Title.IsNullOrEmpty())
|
{
|
where = $" where subject like '%{request.Title}%' ";
|
}
|
string searchSql = $"select * from daifa_product {where} order by is_distribute asc,create_time desc limit {request.PageSize} offset {(request.PageNo - 1) * request.PageSize}";
|
|
DataTable dt = new DistributionHistoryDAL().GetDataBySql(searchSql);
|
return Success(dt, request.PageNo, request.PageSize, totalCount);
|
}
|
|
/// <summary>
|
/// 铺货单列表获取
|
/// </summary>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult DistributebillGet()
|
{
|
var userInfo = _loginUserInfoService.GetUserInfo();
|
//接口获取可铺货单商品id
|
AlibabaDistributebillListRequest billListRequest = new AlibabaDistributebillListRequest();
|
var billListResponse = AliabaClient.Execute(billListRequest, userInfo.AlibabaToken);
|
if (billListResponse.IsNull() || !billListResponse.Success)
|
{
|
return Error("接口获取可铺货单商品id错误:" + (billListResponse.IsNull() ? "null" : billListResponse.ErrorMsg));
|
}
|
return Success(billListResponse.result.IsNull() ? 0 : billListResponse.result.offerIds.Count);
|
}
|
|
/// <summary>
|
/// 清空铺货单
|
/// </summary>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult ClearDistributebill()
|
{
|
var task = new DaifaTaskDAL().ListGet(t => t.TaskStatus != 2);
|
if (!task.IsNull() && task.Count > 0)
|
{
|
return Error("当前有任务执行,请稍后操作清空!");
|
}
|
var userInfo = _loginUserInfoService.GetUserInfo();
|
//现获取现有铺货单
|
AlibabaDistributebillListRequest billListRequest = new AlibabaDistributebillListRequest();
|
var billListResponse = AliabaClient.Execute(billListRequest, userInfo.AlibabaToken);
|
if (!billListResponse.IsNull() && billListResponse.Success && !billListResponse.result.IsNull() && !billListResponse.result.offerIds.IsNull() && billListResponse.result.offerIds.Count > 0)
|
{
|
LogUtil.Info(string.Join(',', billListResponse.result.offerIds), "删除前记录铺货单");
|
}
|
FenXiaoDistributebillRemoveallRequest clearReq = new FenXiaoDistributebillRemoveallRequest();
|
var clearRsp = AliabaClient.Execute(clearReq, userInfo.AlibabaToken);
|
if (clearRsp.IsNull() || !clearRsp.Success)
|
{
|
return Error("接口清空铺货单错误:" + (clearRsp.IsNull() ? "null" : clearRsp.ErrorMsg));
|
}
|
return Success(true);
|
}
|
|
[HttpPost]
|
public IActionResult GetDaiFaDetail([FromBody] GetDaiFaDetailRequset request)
|
{
|
var userInfo = _loginUserInfoService.GetUserInfo();
|
//获取商品详情
|
FenXiaoProductInfoGetRequest proReq = new FenXiaoProductInfoGetRequest()
|
{
|
offerId = long.Parse(request.ProductId)
|
};
|
var proResponse = AliabaClient.Execute(proReq, userInfo.AlibabaToken);
|
if (proResponse.IsNull() || !proResponse.Success)
|
{
|
return Error("获取商品详情错误:" + (proResponse.IsNull() ? "null" : proResponse.ErrorMsg));
|
}
|
return Success(proResponse.productInfo);
|
}
|
}
|
}
|