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 System;
|
using System.Collections.Generic;
|
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);
|
}
|
}
|
}
|