/// <summary> /// 完成订单 /// </summary> /// <param name="order"></param> /// <returns></returns> public bool OrderComplete(OrderItemBase order) { /// bool= is overTime Action <int, bool> GenerateOrderStatistics = (i, b) => { var time = PlayerManager.Instance.getCurrentTime(); if (b) { OrderStatisticsItem item = new OrderStatisticsItem(i, null, 1); OrderStatisticsDic.Add(i, item); } else { OrderStatisticsItem item = new OrderStatisticsItem(i, time); OrderStatisticsDic.Add(i, item); } }; if (!PlayerReceivedOrders.ContainsKey(order.dataModel.GUID)) { ///首个订单超时 if (order.orderState == OrderItemBase.OrderState.OverTime) { GenerateOrderStatistics(order.OrderID, true); return(true); }///首个订单完成 else if (order.orderState == OrderItemBase.OrderState.Complete) { AddOrderCompleteReward(order); GenerateOrderStatistics(order.OrderID, false); return(true); } } else///已有订单数据 { var item = GetOrderStatisticsItem(order.OrderID); if (item == null) { return(false); } if (order.orderState == OrderItemBase.OrderState.OverTime) { item.OverTimeCount++; return(true); } else if (order.orderState == OrderItemBase.OrderState.Complete) { var time = PlayerManager.Instance.getCurrentTime(); AddOrderCompleteReward(order); item.orderCompleteData.Add(new OrderStatisticsItem.OrderCompleteItem { completeID = item.OrderCompleteCount + 1, completeMonth = time.date.Month, completeYear = time.date.Year }); return(true); } } return(false); }
/// <summary> /// 注册订单 /// </summary> /// <param name="order"></param> public bool RegisterOrder(OrderItemBase order) { if (AllOrderDic.ContainsKey(order.dataModel.GUID)) { return(false); } AllOrderDic.Add(order.dataModel.GUID, order); return(true); }
public void AddOrderCompleteReward(OrderItemBase order) { if (order.rewardData.Reward_Currency != 0) { PlayerManager.Instance.AddCurrency_Current(order.rewardData.Reward_Currency); } //Add material Reward var ma = OrderModule.Instance.GetOrderRewardMaterial(order.rewardData); foreach (KeyValuePair <Material, ushort> kvp in ma) { PlayerManager.Instance.AddMaterialData(kvp.Key.MaterialID, kvp.Value); } }
private OrderItemBase GetOrderItem(string GUID, OrderDicType type) { OrderItemBase item = null; switch (type) { case OrderDicType.All: AllOrderDic.TryGetValue(GUID, out item); break; case OrderDicType.Received: PlayerReceivedOrders.TryGetValue(GUID, out item); break; } if (item == null) { Debug.LogError("OrderItem not Exists! GUID=" + GUID); } return(item); }