using BBWY.Server.Business;
using BBWY.Server.Model.Dto;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using NLog;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace BBWY.Server.API.Controllers
{

    public class VenderController : BaseApiController
    {
        private VenderBusiness venderBusiness;
        private ILogger logger;

        public VenderController(IHttpContextAccessor httpContextAccessor,
                                VenderBusiness venderBusiness,
                                ILogger logger) : base(httpContextAccessor)
        {
            this.venderBusiness = venderBusiness;
            this.logger = logger;
        }

        /// <summary>
        /// 获取商家信息
        /// </summary>
        /// <param name="platformRequest"></param>
        /// <returns></returns>
        [HttpPost]
        public VenderResponse GetVenderInfo([FromBody] PlatformRequest platformRequest)
        {
            return venderBusiness.GetVenderInfo(platformRequest);
        }

        /// <summary>
        /// 获取物流公司
        /// </summary>
        /// <param name="platformRequest"></param>
        /// <returns></returns>
        [HttpPost]
        public IList<LogisticsResponse> GetLogisticsList([FromBody] PlatformRequest platformRequest)
        {
            return venderBusiness.GetLogisticsList(platformRequest);
        }

        /// <summary>
        /// 接收JD店铺Token更新
        /// </summary>
        /// <param name="jDShopToken"></param>
        [HttpPost]
        public void AcceptJDShopToken([FromBody] JDShopToken jDShopToken)
        {
            var httpContext = httpContextAccessor.HttpContext;
            var stringBuilder = new StringBuilder();
            stringBuilder.AppendLine("AcceptJDShopToken");
            stringBuilder.AppendLine($"ContentType:{httpContext.Request.ContentType}");
            stringBuilder.Append($"jDShopToken:{JsonConvert.SerializeObject(jDShopToken)}");
            logger.Info(stringBuilder.ToString());
            venderBusiness.AcceptJDShopToken(jDShopToken);
        }
    }
}