示例#1
0
        /// <summary>
        ///   批量获取库存接口。批量查询在客户指定区域的库存信息,最多返回数量50,超过100统一返回有货。
        ///   <para>实际库存为50--100,但用户查询数量大于真实库存数量时显示“无货”,小于等于真实库存数量时显示“有货”。</para>
        ///   <para>举例:实际库存58;用户用59-100查的时候返回无货,1-58查的时候返回有货;实际库存超过100时,查询数量写多少都会返回有货。</para>
        /// </summary>
        /// <param name="token">授权时获取的 AccessToken</param>
        /// <param name="skuNums">商品和数量(最多传入5条记录)</param>
        /// <param name="province">京东一级地址编号</param>
        /// <param name="city">京东二级地址编号</param>
        /// <param name="county">京东三级地址编号</param>
        /// <param name="town">京东四级地址编号(三级下无四级地址传0)</param>
        public static async Task <RspResult <StockResult[]> > GetNewStockByIdAsync(string token, SkuNum[] skuNums, int province, int city, int county, int town = 0)
        {
            if (string.IsNullOrEmpty(token))
            {
                throw AccessTokenArgumentException;
            }

            var parameter = new Dictionary <string, string>
            {
                { "token", token },
                { "skuNums", $"[{string.Join(',', skuNums.Select(v => v.ToString()))}]" },
                { "area", $"{province}_{city}_{county}_{town}" },
            };
            var url = "/api/stock/getNewStockById";
            var rsp = await PostAsync <string>(url, parameter);

            var result = new RspResult <StockResult[]>()
            {
                Success       = rsp.Success,
                ResultCode    = rsp.ResultCode,
                ResultMessage = rsp.ResultMessage,
            };

            if (rsp.Success)
            {
                result.Result = JsonSerializer.Deserialize <StockResult[]>(rsp.Result, JsonSerializerOptions);
            }
            return(result);
        }
示例#2
0
        /// <summary>
        ///   查询商品在特定区域是否可售。
        /// </summary>
        /// <param name="token">授权时获取的 AccessToken</param>
        /// <param name="skuIds">商品编号 (最高支持100个商品)</param>
        /// <param name="province">京东一级地址编号</param>
        /// <param name="city">京东二级地址编号</param>
        /// <param name="county">京东三级地址编号</param>
        /// <param name="town">京东四级地址编号(三级下无四级地址传0)</param>
        public static async Task <RspResult <ProductAreaLimit[]> > CheckAreaLimitAsync(string token, string skuIds, int province, int city, int county, int town = 0)
        {
            if (string.IsNullOrEmpty(token))
            {
                throw AccessTokenArgumentException;
            }

            var parameter = new Dictionary <string, string>
            {
                { "token", token },
                { "skuIds", skuIds },
                { "province", province.ToString() },
                { "city", city.ToString() },
                { "county", county.ToString() },
                { "town", town.ToString() },
            };
            var url = "/api/product/checkAreaLimit";
            var rsp = await PostAsync <string>(url, parameter);

            var result = new RspResult <ProductAreaLimit[]>()
            {
                Success       = rsp.Success,
                ResultCode    = rsp.ResultCode,
                ResultMessage = rsp.ResultMessage,
            };

            if (rsp.Success)
            {
                result.Result = JsonSerializer.Deserialize <ProductAreaLimit[]>(rsp.Result, JsonSerializerOptions);
            }
            return(result);
        }
示例#3
0
        public ActionResult Register(IFormCollection collection)
        {
            try
            {
                string userName = collection["UserName"].ToString();
                string password = collection["Password"].ToString();
                if (_managerService.Exsit(userName))
                {
                    return(new JsonResult(new RspResult {
                        Code = 100, Status = 1, Msg = "用户名已存在"
                    }));
                }

                BaseManager user = new BaseManager
                {
                    UserName     = userName,
                    Password     = password,
                    DepartmentId = "35"
                };
                user.Password = Utils.MD5(user.Password);

                RspResult rsp = _managerService.Save(user);

                return(new JsonResult(rsp));
            }
            catch (Exception e)
            {
                return(new JsonResult(new
                {
                    Message = e.Message
                }));
            }
        }
示例#4
0
        /// <summary>
        ///   查询京东订单信息。
        /// </summary>
        /// <param name="token">授权时获取的 AccessToken</param>
        /// <param name="jdOrderId">京东订单号</param>
        /// <param name="queryExts">扩展参数(不提供时默认全部获取)</param>
        /// <param name="clientId">提供 <see cref="VopClient.ClientId"/> 以用于自动解密加密数据</param>
        public static async Task <RspResult <OrderDetail> > SelectJdOrderAsync(string token, long jdOrderId, string[] queryExts = null, string clientId = null)
        {
            if (string.IsNullOrEmpty(token))
            {
                throw AccessTokenArgumentException;
            }

            var queryExtsStr = string.Join(',', queryExts ?? new string[] {
                "orderType",        // 订单类型
                "jdOrderState",     // 京东订单状态
                "name",             // 商品名称
                "address",          // 收件人地址
                "mobile",           // 手机号
                "poNo",             // 采购单号
                "finishTime",       // 订单完成时间
                "createOrderTime",  // 订单创建时间
                "paymentType",      // 订单支付类型
                "outTime",          // 订单出库时间
                "invoiceType",      // 订单发票类型
            });
            var parameter = new Dictionary <string, string>
            {
                { "token", token },
                { "jdOrderId", jdOrderId.ToString() },
                { "queryExts", queryExtsStr },
            };
            var url     = "/api/order/selectJdOrder";
            var content = await PostAsync(url, parameter);

            using var stream = await content.ReadAsStreamAsync();

            var rsp = await JsonSerializer.DeserializeAsync <RspResult <JsonElement> >(stream, JsonSerializerOptions);

            var rst = new RspResult <OrderDetail>()
            {
                Success       = rsp.Success,
                ResultCode    = rsp.ResultCode,
                ResultMessage = rsp.ResultMessage,
            };

            if (rsp.Success)
            {
                var jsonElement = rsp.Result;
                stream.Position = 0;
                OrderDetail result;
                switch (jsonElement.GetProperty("type").GetInt32())
                {
                case 1:     // 父订单
                    result = (await JsonSerializer.DeserializeAsync <RspResult <OrderParent> >(stream, JsonSerializerOptions)).Result;
                    break;

                case 2:     // 子订单
                default:
                    result = (await JsonSerializer.DeserializeAsync <RspResult <OrderDetail> >(stream, JsonSerializerOptions)).Result;
                    break;
                }

                if (clientId is { Length : > 6 })