/// <summary> /// 获取 未完成的拼团列表 /// </summary> /// <param name="inputDTO"></param> /// <returns></returns> public Deploy.CustomDTO.ResultDTO <List <UnfinishedDiyGroupOutputDTO> > UnfinishedDiyGrouplistExt(UnfinishedDiyGroupInputDTO inputDTO) { var appId = inputDTO.AppId; var outsidePromotionId = inputDTO.OutsidePromoId; var maxTakeCount = 10; var appinfos = ZPHSV.Instance.GetAppIdlist(new List <Guid>() { appId }); var appids = appinfos.Select(t => t.AppId).ToList(); appids.Add(appId); try { LogHelper.Debug(string.Format("查询到的未完成的拼团列表. Input:{0}", JsonHelper.JsonSerializer(inputDTO))); //计算未完成的拼团列表 var query = from g in DiyGroup.ObjectSet() join p in Promotion.ObjectSet() on g.PromotionId equals p.Id join go in (from o in DiyGroupOrder.ObjectSet() where o.State == 1 group o by o.DiyGroupId into og select new { Key = og.Key, MemberCount = og.Count() }) on g.Id equals go.Key where p.PromotionType == 3 && g.State == 1 && g.ExpireTime >= DateTime.Now && appids.Contains(g.AppId) && p.OutsideId == outsidePromotionId select new { GroupId = g.Id, OwnerId = g.SubId, LackMember = (p.GroupMinVolume ?? 0) - go.MemberCount, ExpireTime = g.ExpireTime }; var list = query .OrderByDescending(selector => selector.LackMember) .ThenBy(selector => selector.ExpireTime) .Take(maxTakeCount) .ToList(); //获取团长信息 var cbcFacade = new TPS.CBCSVFacade(); var userNameFunc = new Func <Guid, string>(userId => { var user = cbcFacade.GetUserNameIconDTO(userId); if (user != null) { return(user.Name); } return(string.Empty); }); var userIconFunc = new Func <Guid, string>(userId => { var user = cbcFacade.GetUserNameIconDTO(userId); if (user != null) { return(user.HeadIcon); } return(string.Empty); }); var data = list.Select(selector => new UnfinishedDiyGroupOutputDTO() { GroupId = selector.GroupId, LackMember = selector.LackMember, ExpireTime = selector.ExpireTime, OwnerIcon = userIconFunc(selector.OwnerId), OwnerName = userNameFunc(selector.OwnerId) }).ToList(); var result = new ResultDTO <List <UnfinishedDiyGroupOutputDTO> >() { isSuccess = true, ResultCode = 0, Data = data }; LogHelper.Debug(string.Format("查询到的未完成的拼团列表. Output:{0}", JsonHelper.JsonSerializer(result))); return(result); } catch (Exception ex) { LogHelper.Error(string.Format("查询未完成的拼团列表发生异常. {0}", ex.Message), ex); return(new ResultDTO <List <UnfinishedDiyGroupOutputDTO> > { Data = new List <UnfinishedDiyGroupOutputDTO>() }); } }
/// <summary> /// 获取 未完成的拼团列表 /// </summary> /// <param name="inputDTO"></param> /// <returns></returns> public ResultDTO <List <UnfinishedDiyGroupOutputDTO> > UnfinishedDiyGrouplist(UnfinishedDiyGroupInputDTO inputDTO) { base.Do(); return(this.Command.UnfinishedDiyGrouplist(inputDTO)); }