Ejemplo n.º 1
0
        public HttpResponseMessage GiveToOtherRider(GiveToOtherRider req)
        {
            var riderId = Convert.ToInt32(req.riderId);

            var   tokenStr = req.Token;
            Token token    = CacheHelper.GetRiderToken(tokenStr);

            if (token == null)
            {
                return(ControllerHelper.Instance.JsonResult(400, "token失效"));
            }
            if (token.Payload.UserID != riderId)
            {
                return(ControllerHelper.Instance.JsonResult(400, "token错误"));
            }

            var list_foods = JsonConvert.DeserializeObject <List <foodId_Amount> >(req.listFoods);
            var listRs     = CacheHelper.GetByCondition <RiderStock>("RiderStock", " isdeleted=0 and riderid=" + riderId);
            var ids        = list_foods.Select(p => p.foodId).Distinct().ToArray();
            var tempList   = listRs.Where(p => ids.Contains((int)p.foodId)).ToList();

            foreach (var item in list_foods)
            {
                var amount = tempList.Where(p => p.foodId == item.foodId).First().amount;
                if (amount < item.amount)
                {
                    return(ControllerHelper.Instance.JsonResult(500, "库存不够"));
                }
            }
            var targetRiderId = Convert.ToInt32(req.targetRiderId);

            RiderStockOper.Instance.RemoveRs(riderId, list_foods);
            RiderStockOper.Instance.AddRs(targetRiderId, list_foods);
            return(ControllerHelper.Instance.JsonResult(200, "调配成功"));
        }
Ejemplo n.º 2
0
        public HttpResponseMessage ApplyToOtherRider(GiveToOtherRider req)
        {
            //-txy 这里要不要判断请求的人够不够呢
            var riderId = Convert.ToInt32(req.riderId);

            var   tokenStr = req.Token;
            Token token    = CacheHelper.GetRiderToken(tokenStr);

            if (token == null)
            {
                return(ControllerHelper.Instance.JsonResult(400, "token失效"));
            }
            if (token.Payload.UserID != riderId)
            {
                return(ControllerHelper.Instance.JsonResult(400, "token错误"));
            }

            var list_foods = JsonConvert.DeserializeObject <List <foodId_Amount> >(req.listFoods);



            var targetRiderId   = Convert.ToInt32(req.targetRiderId);
            var targetListFoods = RiderStockOper.Instance.GetByRiderId(targetRiderId);

            if (targetListFoods.Count < 1)
            {
                return(ControllerHelper.Instance.JsonResult(500, "对方库存不足"));
            }
            foreach (var item in list_foods)
            {
                var temp = targetListFoods.Where(p => p.foodId == item.foodId).ToList();
                if (temp.Count < 1)
                {
                    return(ControllerHelper.Instance.JsonResult(500, "对方库存不足"));
                }
                if (temp.First().amount < item.amount)
                {
                    return(ControllerHelper.Instance.JsonResult(500, "对方库存不足"));
                }
            }


            var timestamp  = StringHelperHere.Instance.GetTimeStamp() + StringHelperHere.Instance.GetLastFiveStr(riderId.ToString());
            var allocateId = 0;

            foreach (var item in list_foods)
            {
                AllocateRecord ar = new AllocateRecord();
                ar.riderId       = riderId;
                ar.foodId        = item.foodId;
                ar.amount        = item.amount;
                ar.targetRiderId = targetRiderId;
                ar.status        = 0;
                ar.timestamp     = timestamp;
                allocateId       = AllocateRecordOper.Instance.Add(ar);
            }

            //推送消息
            UPushHelper.Instance.PushRiderApply(targetRiderId, list_foods, riderId, timestamp);

            return(ControllerHelper.Instance.JsonResult(200, "已发送调配请求"));
        }