コード例 #1
0
        public async Task <IHttpActionResult> MainStones(string patternId, int colorFromId)
        {
            var manager       = new SpotGoodsManager();
            var mainStoneList = await manager.GetSpotGoodsMainStoneListAsync(patternId, colorFromId);

            return(Ok(mainStoneList));
        }
コード例 #2
0
        public async Task <JsonResult> DeleteSetStone(string spotGoodsId, int id)
        {
            var manager = new SpotGoodsManager(User);
            var result  = await manager.DeleteSpotGoodsSetStoneInfo(spotGoodsId, id);

            return(Json(result));
        }
コード例 #3
0
        public async Task <IHttpActionResult> ColorForms(string patternId)
        {
            var manager       = new SpotGoodsManager();
            var colorFormList = await manager.GetSpotGoodsColorFromListAsync(patternId);

            return(Ok(colorFormList));
        }
コード例 #4
0
        public async Task <IHttpActionResult> HandSizes(string patternId, int colorFromId, string mainStone)
        {
            var manager      = new SpotGoodsManager();
            var handSizeList = await manager.GetSpotGoodsHandSizeListAsync(patternId, colorFromId, mainStone);

            return(Ok(handSizeList));
        }
コード例 #5
0
        public async Task <IHttpActionResult> UpdateOrderCustomerInfo(CustomerAddressViewModel request)
        {
            var manager = new SpotGoodsManager();
            var result  = await manager.UpdateOrderCustomerInfo(request.SpotGoodsId, request.Address, request.CustomerPhone, request.CustomerName);

            await manager.UpdateSpotGoodsStatus(request.SpotGoodsId, request.IsSF?SpotGoodsStatus.SF : SpotGoodsStatus.PickBySelf);

            return(Ok(result));
        }
コード例 #6
0
        public async Task <ActionResult> EditOrder(string id)
        {
            var manager       = new SpotGoodsManager(User);
            var spotGoodOrder = await manager.GetSpotGoodsOrderAsync(id);

            var spotGoods = Mapper.Map <SpotGoodsOrder, SpotGoodsOrderViewModel>(spotGoodOrder);

            return(View(spotGoods));
        }
コード例 #7
0
        public async Task <JsonResult> EditOrder(SpotGoodsOrderEdit request)
        {
            var manager = new SpotGoodsManager(User);
            var result  = await manager.UpdateOrderCustomerInfo(request.SpotGoodsId, request.Address, request.CustomerPhone, request.CustomerName, request.SfNo);

            await manager.UpdateSpotGoodsStatus(request.SpotGoodsId, request.Status);

            return(Json(result));
        }
コード例 #8
0
        public async Task <ActionResult> Edit(string id)
        {
            var manager  = new SpotGoodsManager(User);
            var spotGood = await manager.GetSpotGoods(id);

            var spotGoodViewModel = Mapper.Map <SpotGoods, SpotGoodsViewModel>(spotGood);

            return(View("Create", spotGoodViewModel));
        }
コード例 #9
0
        public async Task <IHttpActionResult> Create(SpotGoodsOrderViewModel request)
        {
            var manager        = new SpotGoodsManager();
            var spotGoodsOrder = Mapper.Map <SpotGoodsOrderViewModel, SpotGoodsOrder>(request);

            spotGoodsOrder.Created = DateTime.Now;
            var result = await manager.CreateSpotGoodsOrder(spotGoodsOrder);

            return(Ok(result));
        }
コード例 #10
0
        public async Task <ActionResult> Detail(string id)
        {
            Requires.NotNullOrEmpty("id", nameof(id));

            var manager   = new SpotGoodsManager(User);
            var spotGoods = await manager.GetSpotGoods(id);

            var spotGoodViewModel = Mapper.Map <SpotGoods, SpotGoodsViewModel>(spotGoods);

            return(View(spotGoodViewModel));
        }
コード例 #11
0
        public async Task <IHttpActionResult> Patterns(SpotGoodsType type)
        {
            var manager           = new SpotGoodsManager();
            var spotGoodsPatterns = await manager.GetSpotGoodsPatternListAsync(type);

            var spotGoodsPatternViewModels = spotGoodsPatterns.Select(u =>
            {
                return(new SpotGoodsPatternViewModel(u));
            });

            return(Ok(spotGoodsPatternViewModels));
        }
コード例 #12
0
        public async Task <JsonResult> Edit(SpotGoodsEditViewModel request)
        {
            if (!ModelState.IsValid)
            {
                return(Json(false, data: ErrorToDictionary()));
            }

            var manager   = new SpotGoodsManager(User);
            var spotGoods = Mapper.Map <SpotGoodsEditViewModel, SpotGoods>(request);
            var result    = await manager.CreateSpotGoods(spotGoods);

            return(Json(result));
        }
コード例 #13
0
        public async Task <IHttpActionResult> GetNewSfAddress(string openId)
        {
            var manager = new SpotGoodsManager();
            var result  = await manager.GetNewSfSpotGoodsOrder(openId);

            if (result == null)
            {
                return(Ok(new CustomerAddressViewModel()));
            }

            return(Ok(new CustomerAddressViewModel
            {
                Address = result.Address,
                CustomerName = result.CustomerName,
                CustomerPhone = result.CustomerPhone
            }));
        }
コード例 #14
0
        public async Task <JsonResult> AddSetStone(SpotGoodsSetStoneInfoViewModel spotGoodsSetStoneInfoViewModel)
        {
            var manager = new SpotGoodsManager(User);
            var spotGoodsSetStoneInfo = Mapper.Map <SpotGoodsSetStoneInfoViewModel, SpotGoodsSetStoneInfo>(spotGoodsSetStoneInfoViewModel);
            var basicDataManager      = new BasicDataManager();
            var matchStone            = await basicDataManager.GetMatchStoneAsync(spotGoodsSetStoneInfoViewModel.MatchStoneId);

            if (matchStone == null)
            {
                return(Json(false, SaleManagentConstants.Errors.InvalidRequest));
            }

            spotGoodsSetStoneInfo.MatchStoneName = matchStone.Name;
            spotGoodsSetStoneInfo.Price          = matchStone.Price;
            spotGoodsSetStoneInfo.CreatorId      = User.Id;
            var result = await manager.AddSpotGoodsSetStoneInfo(spotGoodsSetStoneInfo);

            return(Json(true, data: result));
        }
コード例 #15
0
        public async Task <JsonResult> Create(SpotGoodsEditViewModel request)
        {
            if (!ModelState.IsValid)
            {
                return(Json(false, data: ErrorToDictionary()));
            }

            var basicDataManager = new BasicDataManager();
            var matchStones      = await basicDataManager.GetMatchStonesAsync();

            JArray jarry = JArray.Parse(Request.Form["SetStoneInfos"]);
            List <SpotGoodsSetStoneInfo> SpotGoodsSetStoneInfos = new List <SpotGoodsSetStoneInfo>();

            var spotGoods = Mapper.Map <SpotGoodsEditViewModel, SpotGoods>(request);

            var serialNumberManager = new SerialNumberManager(User);
            var manager             = new SpotGoodsManager(User);

            if (string.IsNullOrEmpty(spotGoods.Id))
            {
                spotGoods.Id = SaleManagentConstants.Misc.SpotGoodsPrefix + await serialNumberManager.NextSNAsync(SaleManagentConstants.SerialNames.SpotGoods);
            }
            for (int i = 0; i < jarry.Count; ++i)  //遍历JArray
            {
                var setStoneInfo = Newtonsoft.Json.JsonConvert.DeserializeObject <SpotGoodsSetStoneInfo>(jarry[i].ToString());
                var matchStone   = matchStones.FirstOrDefault(r => r.Id == setStoneInfo.MatchStoneId);
                if (matchStone == null)
                {
                    break;
                }

                setStoneInfo.Price       = matchStone.Price;
                setStoneInfo.WorkingCost = (int)matchStone.WorkingCost * setStoneInfo.Number;
                setStoneInfo.CreatorId   = User.Id;
                setStoneInfo.SpotGoodsId = spotGoods.Id;
                SpotGoodsSetStoneInfos.Add(setStoneInfo);
            }
            spotGoods.SetStoneInfos = SpotGoodsSetStoneInfos;
            var result = await manager.CreateSpotGoods(spotGoods);

            return(Json(result));
        }
コード例 #16
0
        public async Task <ActionResult> SellList(SpotGoodsQueryRequest request)
        {
            if (!Request.IsAjaxRequest())
            {
                return(View(request));
            }

            var manager = new SpotGoodsManager(User);
            var paging  = await manager.GetSpotGoodsOrderListAsync(request.Start, request.Take, request.GetSpotGoodsOrderListQueryFilter());

            var spotGoodList = paging.List.Select(u =>
            {
                var spotGoods = Mapper.Map <SpotGoodsOrder, SpotGoodsOrderViewModel>(u);
                return(spotGoods);
            });

            return(Json(true, string.Empty, new
            {
                paging.Total,
                List = spotGoodList
            }));
        }
コード例 #17
0
        public async Task <IHttpActionResult> SpotGoods(SpotGoodsQueryRequest request)
        {
            var manager   = new SpotGoodsManager();
            var spotGoods = await manager.GetSpotGoodsAsync(request.GetSpotGoodsListQueryFilter());

            if (spotGoods == null)
            {
                return(NotFound("现货不存在"));
            }

            var spotGoodsViewModel    = new SpotGoodListItemViewModel(spotGoods);
            var dailyGoldPriceManager = new DailyGoldPriceManager();
            var dailyGoldPrice        = await dailyGoldPriceManager.GetNewDailyGoldPriceAsync(spotGoodsViewModel.ColorFormId);

            spotGoodsViewModel.DailyGoldPrice = dailyGoldPrice.Price;
            if (spotGoodsViewModel.Price == 0)
            {
                var goldCost = dailyGoldPrice.Price * spotGoodsViewModel.GoldWeight * (1 + (double)spotGoodsViewModel.Loss18KRate / 100);
                spotGoodsViewModel.Price = decimal.Round(((decimal)(spotGoodsViewModel.BasicCost + goldCost + spotGoods.SetStoneInfos.Sum(r => r.Price * r.Weight + r.Number * r.WorkingCost))), 2);
            }
            return(Ok(spotGoodsViewModel));
        }
コード例 #18
0
        public async Task <IHttpActionResult> GetSpotGoodsOrders(string openId, LogisticType logisticType)
        {
            var manager = new SpotGoodsManager();

            Func <IQueryable <SpotGoodsOrder>, IQueryable <SpotGoodsOrder> > filter = query =>
            {
                query = query.Where(r => r.OpenId == openId);
                if (logisticType == LogisticType.Self)
                {
                    query = query.Where(r => r.SpotGoods.Status == SpotGoodsStatus.PickBySelf || r.SpotGoods.Status == SpotGoodsStatus.HasTaken);
                }
                if (logisticType == LogisticType.SF)
                {
                    query = query.Where(r => r.SpotGoods.Status == SpotGoodsStatus.SF || r.SpotGoods.Status == SpotGoodsStatus.HasSendGoods);
                }
                return(query);
            };
            var result = await manager.GetSpotGoodsOrderListAsync(filter);

            var orders = result.Select(r => new SpotGoodListItemViewModel(r)).ToList();

            return(Ok(orders));
        }
コード例 #19
0
        public async Task <IHttpActionResult> UpdateLockStatus(string orderId, bool isLock)
        {
            var manager   = new SpotGoodsManager();
            var spotGoods = await manager.GetSpotGoods(orderId);

            if (spotGoods == null)
            {
                return(NotFound("商品不存在"));
            }

            if (spotGoods.Status != SpotGoodsStatus.New)
            {
                return(NotFound("商品已出售"));
            }

            if (spotGoods.IsLock && isLock)
            {
                return(NotFound("商品已锁定"));
            }

            var result = await manager.UpdateSpotGoodLock(orderId, isLock);

            return(Ok(result));
        }