예제 #1
0
        public async Task <BaseApiResponse> UpdateGoods([FromBody] UpdateGoodsRequest request)
        {
            request.CheckNotNull(nameof(request));

            var command = new UpdateGoodsCommand(
                request.Name,
                request.Description,
                request.Pics,
                request.Price,
                request.Benevolence,
                request.SellOut,
                request.Status,
                request.RefusedReason)
            {
                AggregateRootId = request.Id
            };

            var result = await ExecuteCommandAsync(command);

            if (!result.IsSuccess())
            {
                return(new BaseApiResponse {
                    Code = 400, Message = "更新商品失败:{0}".FormatWith(result.GetErrorMessage())
                });
            }
            //更新规格
            var command2 = new UpdateSpecificationsCommand(
                request.Id,
                request.Specifications.Select(x => new Commands.Goodses.Specifications.SpecificationInfo(
                                                  x.Id,
                                                  x.Name,
                                                  x.Value,
                                                  x.Thumb,
                                                  x.Price,
                                                  x.OriginalPrice,
                                                  x.Benevolence,
                                                  x.Number,
                                                  x.BarCode,
                                                  x.Stock
                                                  )).ToList(),
                true);
            var result2 = await ExecuteCommandAsync(command2);

            if (!result2.IsSuccess())
            {
                return(new BaseApiResponse {
                    Code = 400, Message = "命令没有执行成功:{0}".FormatWith(result2.GetErrorMessage())
                });
            }
            return(new BaseApiResponse());
        }
예제 #2
0
        public async Task <IActionResult> Update([FromBody] UpdateGoodsRequest request)
        {
            try
            {
                var response = await _serviceProvider.HandlerAsync(request);

                return(new JsonResult(response));
            }
            catch (Exception ex)
            {
                return(new JsonResult(new ResponseBase()
                {
                    Result = -1, ResultInfo = ex.Message
                }));
            }
        }
예제 #3
0
 public Task <DeleteInRoomGoodsResponse> DeleteGoodsAsync(UpdateGoodsRequest request)
 {
     return(WeChatMiniProgramApiRequester.RequestAsync <DeleteInRoomGoodsResponse>(UpdateGoodsUrl,
                                                                                   HttpMethod.Post,
                                                                                   request));
 }
예제 #4
0
        /// <summary>
        /// 微盟-商品信息-更新商品(ec/goods/updateGoods)
        /// </summary>
        public void UpdateGoodsToWm(DateTime startDate, DateTime endDate)
        {
            string preMsg = "微盟 更新商品 ";

            string sql = @"select a.F_GoodsID, a.F_SkuID, a.F_CategoryID, a.F_Name, a.F_ID, a.F_Stop, z.F_PosPrice, a.F_CostPrice, b.F_Qty
                            from v_Item_NoPic a 
                            left join (select F_ItemZID,F_PosPrice from t_ItemZonePriceOne where F_ZoneID = '01') z on a.F_ID = z.F_ItemZID 
                            left join t_StorageQty b on a.F_ID = b.F_ItemID and a.F_ColorID = b.F_ColorID and a.F_SizeID = b.F_SizeID 
                            where a.F_UpdateTime >= '" + startDate.ToString("yyyy-MM-dd HH:mm:ss") + @"'
                              and a.F_UpdateTime < '" + endDate.ToString("yyyy-MM-dd HH:mm:ss") + @"'
                              and a.F_GoodsID is not null ";

            DataTable dtItem = sd.GetDataTable(sql);

            Log.WriteLog(preMsg + "取得的记录数:" + dtItem.Rows.Count + "行。", 1);
            if (dtItem.Rows.Count == 0)
            {
                return;
            }

            foreach (DataRow drItem in dtItem.Rows)
            {
                QueryGoodsDetailRequest queryReq = new QueryGoodsDetailRequest();
                queryReq.goodsId = NumUtil.ToLong(drItem["F_GoodsID"]);
                QueryGoodsDetailResponse queryRsp = HttpPostToWm <QueryGoodsDetailResponse>("ec/goods/queryGoodsDetail", queryReq, preMsg);

                UpdateGoodsRequest   request = new UpdateGoodsRequest();
                PendingUpdateGoodsVo goods   = new PendingUpdateGoodsVo();
                goods.goodsId       = NumUtil.GetVal_Long(drItem["F_GoodsID"]);
                goods.title         = drItem["F_Name"].ToString();
                goods.isMultiSku    = 0;
                goods.goodsImageUrl = queryRsp.data.goods.goodsImageUrl;
                //goods.goodsDesc = "";
                goods.initialSales    = 0;
                goods.deductStockType = 1;
                goods.isPutAway       = NumUtil.ToInt(drItem["F_Stop"]);
                goods.Sort            = 0;
                goods.categoryId      = NumUtil.ToLong(drItem["F_CategoryID"]);
                goods.b2cGoods        = new PendingB2CGoodsVo
                {
                    freightTemplateId  = NumUtil.ToLong(G_INI.ReadValue("Local", "freightTemplateId")),
                    deliveryTypeIdList = new List <long> {
                        NumUtil.ToLong(G_INI.ReadValue("Local", "deliveryTypeId"))
                    },
                    b2cGoodsType = 0
                };
                goods.skuList = new List <PendingSkuVo>
                {
                    new PendingSkuVo {
                        skuId        = NumUtil.ToLong(drItem["F_SkuID"]),
                        outerSkuCode = drItem["F_ID"].ToString(),
                        salePrice    = NumUtil.ToDecimal(drItem["F_CostPrice"]),
                        costPrice    = NumUtil.ToInt(drItem["F_Qty"]),
                        editStockNum = 0,
                        b2cSku       = new PendingB2CSkuVo
                        {
                            weight = 0,
                            volume = 0
                        }
                    }
                };
                request.goods = goods;
                UpdateGoodsResponse response = HttpPostToWm <UpdateGoodsResponse>("ec/goods/updateGoods", request, preMsg);
            }
        }
예제 #5
0
        public async Task <BaseApiResponse> UpdateGoods(UpdateGoodsRequest request)
        {
            request.CheckNotNull(nameof(request));
            var goods = _goodsQueryService.GetGoodsAlias(request.Id);

            if (goods == null)
            {
                return(new BaseApiResponse {
                    Code = 400, Message = "未找到该商品"
                });
            }
            var command = new UpdateGoodsCommand(
                request.Name,
                request.Description,
                request.Pics,
                request.Price,
                request.Benevolence,
                request.SellOut,
                request.Status,
                request.RefusedReason)
            {
                AggregateRootId = request.Id
            };

            var result = await ExecuteCommandAsync(command);

            if (!result.IsSuccess())
            {
                return(new BaseApiResponse {
                    Code = 400, Message = "更新商品失败:{0}".FormatWith(result.GetErrorMessage())
                });
            }
            //更新规格
            var command2 = new UpdateSpecificationsCommand(
                request.Id,
                request.Specifications.Select(x => new Commands.Goodses.Specifications.SpecificationInfo(
                                                  x.Id,
                                                  x.Name,
                                                  x.Value,
                                                  x.Thumb,
                                                  x.Price,
                                                  x.OriginalPrice,
                                                  x.Benevolence,
                                                  x.Number,
                                                  x.BarCode,
                                                  x.Stock
                                                  )).ToList(),
                true);
            var result2 = await ExecuteCommandAsync(command2);

            if (!result2.IsSuccess())
            {
                return(new BaseApiResponse {
                    Code = 400, Message = "命令没有执行成功:{0}".FormatWith(result2.GetErrorMessage())
                });
            }
            //添加操作记录
            var currentAdmin = _contextService.GetCurrentAdmin(HttpContext.Current);

            RecordOperat(currentAdmin.AdminId.ToGuid(), "审核商品", request.Id, goods.Name);

            return(new BaseApiResponse());
        }