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;
}
///
/// 精选货源商品查询标获取
///
///
[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 list = new List();
list.Add(item);
list.AddRange(response.result.result);
return Success(list);
}
///
/// 获取精品货源商品列表
///
///
///
[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(), 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);
}
///
/// 获取商品详情
///
///
///
[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();
}
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);
}
///
/// 获取商品类目
///
///
[HttpPost]
public IActionResult GetCategoryList([FromBody] GetCategoryListRequest request)
{
var userInfo = _loginUserInfoService.GetUserInfo();
List list = new List();
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);
}
///
/// 获取代发方案商品列表
///
///
///
[HttpPost]
public IActionResult GetDaiFaProductList([FromBody] GetDaiFaProductListRequset request)
{
var expression = Expressionable.Create().AndIF(!request.Title.IsNull(), t => t.Subject.Contains(request.Title))
.ToExpression();
int totalCount = new DaifaProductDAL().Count(expression);
if (totalCount == 0)
{
return Success(new List(), 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);
}
///
/// 铺货单列表获取
///
///
[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);
}
///
/// 清空铺货单
///
///
[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);
}
}
}