/// <summary> /// 是否可继续提交 /// </summary> /// <param name="order"></param> /// <param name="nextStatus"></param> /// <returns></returns> public RES CanContinue(YunOrder order, int currentStatus, int nextStatus) { if ((int)ENUM.订单及消费项状态.未支付 == currentStatus) { ///下一步有效状态 未使用 if (order.Status == (int)ENUM.订单及消费项状态.未支付 && order.QRCodeList.Count == order.QRCodeList.Count(p => p.Status == (int)ENUM.订单及消费项状态.未支付)) { return(RES.New.SetAsOK(true)); } } else if ((int)ENUM.订单及消费项状态.未使用 == currentStatus) { ///下一步有效状态 部分使用 无可用项目 退款处理中 if (order.Status == (int)ENUM.订单及消费项状态.未使用 && order.QRCodeList.Count == order.QRCodeList.Count(p => p.Status == (int)ENUM.订单及消费项状态.未使用)) { return(RES.New.SetAsOK(true)); } } else if ((int)ENUM.订单及消费项状态.部分使用 == currentStatus) { ///下一步有效状态 部分使用 无可用项目 } else if ((int)ENUM.订单及消费项状态.无可用项目 == currentStatus) { ///下一步有效状态 无可用项目 } else if ((int)ENUM.订单及消费项状态.全部已退款 == currentStatus) { ///下一步有效状态 无可用项目 } return(RES.New.SetAsOK(true)); }
/// <summary> /// 创建一个未支付订单 /// </summary> /// <param name="json"></param> /// <returns></returns> public RES CreatePrepayOrder(string goodsIDStr, long count, string sourceIDStr, string consumerIDStr) { var res = RES.New; if (!string.IsNullOrWhiteSpace(goodsIDStr) && 0 < count && !string.IsNullOrWhiteSpace(goodsIDStr) && !string.IsNullOrWhiteSpace(goodsIDStr)) { var db = ModelEF.GetInst(); ///若数据符合要求 var goodsID = new Guid(goodsIDStr); var sourceID = new Guid(sourceIDStr); var consumerID = new Guid(consumerIDStr); var yunOrder = new YunOrder(); yunOrder.GoodsID = goodsID; yunOrder.SourceID = sourceID; yunOrder.ConsumerID = consumerID; yunOrder.Count = (int)count; yunOrder.ID = Guid.NewGuid(); yunOrder.Status = (int)ENUM.订单及消费项状态.未支付; //yunOrder.OrderID =GUID. MD5.ToMD5( ORDER.NewOrderID); for (int k = 0; k < count; k++) { var item = new YunQRCode(); item.ID = Guid.NewGuid(); item.OrderID = yunOrder.ID; item.QRCode = item.OrderID.ToString() + k; //item.Status = (int)ENUM.EntityStatus.正常; item.Status = (int)ENUM.订单及消费项状态.未支付; db.YunQRCodes.Add(item); } db.YunOrders.Add(yunOrder); db.SaveChanges(); } return(res.SetAsOK()); }