コード例 #1
0
        /// <summary>
        /// 获取拼团详情
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <Jinher.AMP.BTP.Deploy.CustomDTO.DiyGroupDetailDTO> GetDiyGroupDetailExt(Jinher.AMP.BTP.Deploy.CustomDTO.DiyGroupDetailSearchDTO search)
        {
            ResultDTO <Jinher.AMP.BTP.Deploy.CustomDTO.DiyGroupDetailDTO> result = new ResultDTO <DiyGroupDetailDTO>();

            if (search == null || search.DiyGoupId == Guid.Empty)
            {
                result.ResultCode = 1;
                result.Message    = "参数错误";
                return(result);
            }
            var query = (from dg in DiyGroup.ObjectSet()
                         join c in Commodity.ObjectSet() on dg.CommodityId equals c.Id
                         join p in Promotion.ObjectSet() on dg.PromotionId equals p.Id
                         where dg.Id == search.DiyGoupId
                         select new
            {
                DiyGroup = dg,
                Commodity = c,
                Promotion = p
            }).FirstOrDefault();

            if (query == null || query.Commodity == null || query.DiyGroup == null || query.Promotion == null)
            {
                result.ResultCode = 2;
                result.Message    = "没有获取到相应的拼团详情";
                return(result);
            }
            var commodity     = query.Commodity;
            var diyGroup      = query.DiyGroup;
            var promotion     = query.Promotion;
            var promotionItem = PromotionItems.ObjectSet().Where(t => t.PromotionId == diyGroup.PromotionId).FirstOrDefault();

            if (promotionItem == null)
            {
                result.ResultCode = 2;
                result.Message    = "没有获取到相应的拼团详情";
                return(result);
            }
            var productDetailPicture = ProductDetailsPicture.ObjectSet().Where(n => n.CommodityId == commodity.Id).OrderBy(n => n.Sort).Select(c => c.PicturesPath).FirstOrDefault();

            result.Data = new DiyGroupDetailDTO()
            {
                Id                 = diyGroup.Id,
                Name               = diyGroup.Name,
                Code               = diyGroup.Code,
                SubTime            = diyGroup.SubTime,
                SubId              = diyGroup.SubId,
                AppId              = diyGroup.AppId,
                CommodityId        = diyGroup.CommodityId,
                PromotionId        = diyGroup.PromotionId,
                ModifiedOn         = diyGroup.ModifiedOn,
                ExpireTime         = diyGroup.ExpireTime,
                State              = diyGroup.State,
                JoinNumber         = diyGroup.JoinNumber,
                SuccessProcessorId = diyGroup.SuccessProcessorId,
                SuccessTime        = diyGroup.SuccessTime,
                FailProcessorId    = diyGroup.FailProcessorId,
                FailTime           = diyGroup.FailTime,
                EsAppId            = diyGroup.EsAppId,
                //commodity
                PicturesPath         = commodity.PicturesPath,
                CommodityName        = commodity.Name,
                ProductDetailPicture = productDetailPicture,
                //promotion
                StartTime      = promotion.StartTime,
                EndTime        = promotion.EndTime,
                GroupMinVolume = promotion.GroupMinVolume ?? -1,
                ExpireSecond   = promotion.ExpireSecond ?? -1,
                Description    = promotion.Description,
                OutsideId      = promotion.OutsideId.Value,
                //promotionitem
                LimitBuyEach         = promotionItem.LimitBuyEach ?? -1,
                LimitBuyTotal        = promotionItem.LimitBuyTotal ?? -1,
                DiscountPrice        = promotionItem.DiscountPrice,
                SurplusLimitBuyTotal = promotionItem.SurplusLimitBuyTotal ?? -1
            };
            result.Data.DiyGroupOrderList = new List <DiyGroupOrderDetailDTO>();
            var diyGroupOrder = (from dgOrder in DiyGroupOrder.ObjectSet()
                                 join co in CommodityOrder.ObjectSet() on dgOrder.OrderId equals co.Id
                                 where dgOrder.DiyGroupId == search.DiyGoupId && (dgOrder.Role == 0 || dgOrder.Role == 1 && dgOrder.State == 1)
                                 orderby dgOrder.SubTime ascending
                                 select new DiyGroupOrderDetailDTO
            {
                Id = dgOrder.Id,
                SubTime = dgOrder.SubTime,
                SubId = dgOrder.SubId,
                AppId = dgOrder.AppId,
                OrderId = dgOrder.OrderId,
                OrderCode = dgOrder.OrderCode,
                Role = dgOrder.Role,
                DiyGroupId = dgOrder.DiyGroupId,
                SubCode = dgOrder.SubCode,
                ModifiedOn = dgOrder.ModifiedOn,
                DiyGroupPrice = (decimal)co.RealPrice
            }).ToList();

            result.Data.DiyGroupOrderList.AddRange(diyGroupOrder);

            //提取用户信息
            var userIdList   = result.Data.DiyGroupOrderList.Select(t => t.SubId).ToList();
            var userInfolist = CBCSV.Instance.GetUserInfoWithAccountList(userIdList);

            if (userInfolist != null && userInfolist.Count > 0)
            {
                foreach (var item in result.Data.DiyGroupOrderList)
                {
                    var tmpUserInfo = userInfolist.Where(t => t.UserId == item.SubId).FirstOrDefault();
                    if (tmpUserInfo != null)
                    {
                        item.UserCode    = CBCSV.EncodeUserCode(tmpUserInfo.Account);
                        item.UserPicture = tmpUserInfo.HeadIcon;
                    }
                }
            }

            //var diyHeadOrder = diyGroupOrder.Where(t => t.Role == 0).FirstOrDefault();
            //if (diyHeadOrder != null && diyHeadOrder.State == 0)
            //{
            //    result.Data.JoinNumber = result.Data.JoinNumber + 1;
            //}

            //系统当前时间,倒计时用
            result.Data.DateTimeNow = DateTime.Now;
            return(result);
        }
コード例 #2
0
ファイル: DiyGroupSV.cs プロジェクト: GSIL-Monitor/BTP
 /// <summary>
 /// 获取拼团详情
 /// </summary>
 /// <param name="search"></param>
 /// <returns></returns>
 public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <Jinher.AMP.BTP.Deploy.CustomDTO.DiyGroupDetailDTO> GetDiyGroupDetail(Jinher.AMP.BTP.Deploy.CustomDTO.DiyGroupDetailSearchDTO search)
 {
     base.Do(false);
     return(this.GetDiyGroupDetailExt(search));
 }