/// <summary> /// 获取s the group buy product records. /// 获取拼团商品记录 /// </summary> /// <param name="productId">The product identifier.</param> public Tuple <ServiceResult, IList <GroupBuyProductRecord> > GetGroupBuyProductRecords(long productId) { IList <GroupBuyProductRecord> productRecords = new List <GroupBuyProductRecord>(); var product = Resolve <IProductService>().GetSingle(r => r.Id == productId); if (product == null) { return(Tuple.Create(ServiceResult.Failure("商品不存在"), productRecords)); } var activityId = product.ProductActivityExtension?.Activitys ?.FirstOrDefault(r => r.Key == typeof(GroupBuyActivity).FullName)?.Id; var activity = Resolve <IActivityService>().GetSingle(r => r.Id == activityId); if (activity == null) { return(Tuple.Create(ServiceResult.Failure("拼团活动不存在"), productRecords)); } var groupBuyActivity = activity.Value.ToObject <GroupBuyActivity>(); //所有活动记录 var activityRecoreds = Resolve <IActivityRecordService>() .GetList(r => r.ActivityId == activity.Id && r.Status == ActivityRecordStatus.IsPay); foreach (var item in activityRecoreds.Where(r => r.ParentId == 0)) { var groupBuyProductRecord = new GroupBuyProductRecord { ActivityRecordId = item.Id }; var productRecordUser = new GroupBuyRecordUser { UserId = item.ActivityRecordExtension.User.Id, UserName = item.ActivityRecordExtension.User.UserName, Avator = Resolve <IApiService>().ApiUserAvator(item.ActivityRecordExtension.User.Id), IsFather = true }; groupBuyProductRecord.Users.Add(productRecordUser); var childRecords = activityRecoreds.Where(r => r.ParentId == item.Id); foreach (var child in childRecords) { productRecordUser = new GroupBuyRecordUser { UserId = child.ActivityRecordExtension.User.Id, UserName = child.ActivityRecordExtension.User.UserName, Avator = Resolve <IApiService>().ApiUserAvator(child.ActivityRecordExtension.User.Id), IsFather = false }; groupBuyProductRecord.Users.Add(productRecordUser); } groupBuyProductRecord.TotalCount = groupBuyActivity.BuyerCount; // 拼团总人数 groupBuyProductRecord.RemainCount = groupBuyActivity.BuyerCount - activityRecoreds.Count(); // 剩余人数 groupBuyProductRecord.RemainTime = (item.CreateTime.AddDays(1) - DateTime.Now).TotalSeconds; // 剩余时间 groupBuyProductRecord.EndTime = activity.EndTime.ToString("yyyy-MM-dd HH:mm:ss"); //剩余人数不为0 if (groupBuyProductRecord.RemainCount > 0) { productRecords.Add(groupBuyProductRecord); } } return(Tuple.Create(ServiceResult.Success, productRecords)); }
/// <summary> /// 获取s the grouy buy 会员 by order identifier. /// 根据订单Id,获取商品订单记录 /// </summary> /// <param name="orderId">The order identifier.</param> public Tuple <ServiceResult, IList <GroupBuyRecordUser> > GetGrouyBuyUserByOrderId(long orderId) { IList <GroupBuyRecordUser> orderRecordUsers = new List <GroupBuyRecordUser>(); var order = Resolve <IOrderService>().GetSingle(r => r.Id == orderId); if (order == null) { return(Tuple.Create(ServiceResult.Failure("订单不存在"), orderRecordUsers)); } var orderRecord = Resolve <IActivityRecordService>().GetSingle(r => r.OrderId == order.Id); if (orderRecord == null) { return(Tuple.Create(ServiceResult.Failure("该订单不是拼团订单"), orderRecordUsers)); } //获取拼团记录订单 var activityRecords = new List <ActivityRecord>(); if (orderRecord.ParentId == 0) { activityRecords = Resolve <IActivityRecordService>() .GetList(r => r.ParentId == orderRecord.Id || r.Id == orderRecord.Id).ToList(); } else { activityRecords = Resolve <IActivityRecordService>() .GetList(r => r.ParentId == orderRecord.ParentId || r.Id == orderRecord.ParentId).ToList(); } var users = Resolve <IUserService>() .GetList(e => activityRecords.Select(r => r.UserId).Distinct().Contains(e.Id)); #region//暂时传时间 过后修改 var activity = Resolve <IActivityService>().GetSingle(u => u.Id == orderRecord.ActivityId); var endTime = activity.EndTime.ToString("yyyy-MM-dd HH:mm:ss"); var groupBuyActivity = activity.Value.ToObject <GroupBuyActivity>(); #endregion activityRecords.ForEach(r => { var user = users.FirstOrDefault(e => e.Id == r.UserId); if (user != null) { var groupBuyRecordUser = new GroupBuyRecordUser { UserId = user.Id, UserName = user.UserName, Avator = Resolve <IApiService>().ApiUserAvator(user.Id), ActivityRecordId = orderRecord.Id, IsFather = r.ParentId == 0 ? true : false, EndTime = endTime, RemainCount = groupBuyActivity.BuyerCount - activityRecords.Count() }; orderRecordUsers.Add(groupBuyRecordUser); } }); return(Tuple.Create(ServiceResult.Success, orderRecordUsers)); }