예제 #1
0
        /// <summary>
        /// 获取某应用的所有加入微小店的商品Id
        /// </summary>
        /// <param name="appId"></param>
        /// <returns></returns>
        public List <CommodityDistributionDTO> GetAppAllMicroshopCommoditysExt(Guid appId)
        {
            var entitys = (from commodity in Commodity.ObjectSet()
                           where commodity.AppId == appId
                           join commodityDistribution in CommodityDistribution.ObjectSet() on commodity.Id equals
                           commodityDistribution.Id
                           select commodityDistribution).ToList();

            return(entitys.Select(x => x.ToEntityData()).ToList());
        }
예제 #2
0
        /// <summary>
        /// 获取分销商微小店信息
        /// </summary>
        /// <param name="appId"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        public DistributionMicroShopDTO GetDistributionMicroShopExt(Guid appId, Guid userId)
        {
            DistributionMicroShopDTO distributionMicroShopDto = new DistributionMicroShopDTO();

            try
            {
                var temp = (from ms in Microshop.ObjectSet()
                            where ms.AppId == appId && ms.UserId == userId
                            select new DistributionMicroShopDTO
                {
                    Id = ms.Id,
                    SubTime = ms.SubTime,
                    ModifiedOn = ms.ModifiedOn,
                    AppId = ms.AppId,
                    UserId = ms.UserId,
                    Logo = ms.Logo,
                    QRCodeUrl = ms.QRCodeUrl,
                    Name = ms.Name,
                    Url = ms.Url,
                    Type = (MicroshopTypeEnum)ms.Type.Value,
                    Key = ms.Key
                });
                distributionMicroShopDto = temp.FirstOrDefault();
                if (distributionMicroShopDto != null)
                {
                    //获取下架商品
                    var commodityIds = MicroshopCom.ObjectSet().Where(t => !t.IsDel && t.MicroshopId == distributionMicroShopDto.AppId).Select(c => c.CommodityId).Distinct().ToArray();
                    var dc           = (from cd in CommodityDistribution.ObjectSet()
                                        join c in Commodity.ObjectSet() on cd.Id equals c.Id
                                        where commodityIds.Contains(c.Id)
                                        select new CommodityVM
                    {
                        Id = c.Id,
                        Name = c.Name,
                        Price = c.Price,
                        MarketPrice = c.MarketPrice,
                        Pic = c.PicturesPath,
                        L1Percent = Math.Round((decimal)(cd.L1Percent * c.Price), 2),
                        L2Percent = Math.Round((decimal)(cd.L2Percent * c.Price), 2),
                        L3Percent = Math.Round((decimal)(cd.L3Percent * c.Price), 2)
                    });
                    List <CommodityVM> commodityVmsD = new List <CommodityVM>();
                    foreach (var commodityVm in dc)
                    {
                        if (commodityVm.L1Percent == null || commodityVm.L2Percent == null || commodityVm.L3Percent == null)
                        {
                            var model = AppExtension.ObjectSet().FirstOrDefault(t => t.Id == appId);
                            commodityVm.L1Percent = Math.Round((decimal)(model.DistributeL1Percent * commodityVm.Price), 2);
                            commodityVm.L2Percent = Math.Round((decimal)(model.DistributeL2Percent * commodityVm.Price), 2);
                            commodityVm.L3Percent = Math.Round((decimal)(model.DistributeL3Percent * commodityVm.Price), 2);
                        }
                        commodityVmsD.Add(commodityVm);
                    }
                    distributionMicroShopDto.DownCommodityDtos = commodityVmsD.ToList();

                    //获取符合条件的上架商品
                    var uc = (from cd in CommodityDistribution.ObjectSet()
                              join c in Commodity.ObjectSet() on cd.Id equals c.Id
                              where c.AppId == appId && !c.IsDel && c.CommodityType == 0 && c.State == 0 && !commodityIds.Contains(c.Id)
                              select new CommodityVM
                    {
                        Id = c.Id,
                        Name = c.Name,
                        Price = c.Price,
                        MarketPrice = c.MarketPrice,
                        Pic = c.PicturesPath,
                        L1Percent = Math.Round((decimal)(cd.L1Percent * c.Price), 2),
                        L2Percent = Math.Round((decimal)(cd.L2Percent * c.Price), 2),
                        L3Percent = Math.Round((decimal)(cd.L3Percent * c.Price), 2)
                    });
                    List <CommodityVM> commodityVmsU = new List <CommodityVM>();
                    foreach (var commodityVm in uc)
                    {
                        if (commodityVm.L1Percent == null || commodityVm.L2Percent == null || commodityVm.L3Percent == null)
                        {
                            var model = AppExtension.ObjectSet().FirstOrDefault(t => t.Id == appId);
                            commodityVm.L1Percent = Math.Round((decimal)(model.DistributeL1Percent * commodityVm.Price), 2);
                            commodityVm.L2Percent = Math.Round((decimal)(model.DistributeL2Percent * commodityVm.Price), 2);
                            commodityVm.L3Percent = Math.Round((decimal)(model.DistributeL3Percent * commodityVm.Price), 2);
                        }
                        commodityVmsU.Add(commodityVm);
                    }
                    distributionMicroShopDto.UpCommodityDtos = commodityVmsU.ToList();
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error(ex.ToString());
            }
            return(distributionMicroShopDto);
        }
예제 #3
0
        /// <summary>
        /// 是否可以取消积分 (平台启用了分销并且设置了值,或启用了众销且设置了值,就不能取消。)
        /// </summary>
        /// <param name="appId"></param>
        /// <returns></returns>
        public bool IsEnableCancelScoreExt(Guid appId)
        {
            ////app是否有积分功能项
            //var isMyIntegral = BACBP.CheckMyIntegral(appId);
            //if (!isMyIntegral)
            //{
            //    return true;
            //}

            //获取全局配置
            var appExtention = AppExtension.ObjectSet().Where(t => t.Id == appId).FirstOrDefault();

            if (appExtention == null)
            {
                return(true);
            }

            //是否app启用分成推广,即众销
            var isEnableShare = BACBP.CheckSharePromotion(appId);

            if (isEnableShare)
            {
                //如果启用,并且有值,就返回false,即不能修改
                //全局
                if (appExtention.IsDividendAll == true && appExtention.SharePercent > 0)
                {
                    return(false);
                }

                //每个商品
                if (appExtention.IsDividendAll == false)
                {
                    var sharePercent = Commodity.ObjectSet().Where(t => t.AppId == appId).Select(t => t.SharePercent).ToList().Sum();
                    if (sharePercent > 0)
                    {
                        return(false);
                    }
                }
            }

            //是否启用三级分销功能
            var isEnableDistribute = BACBP.CheckAppDistribute(appId);

            if (isEnableDistribute)
            {
                //如果启用,并且有值,就返回false,即不能修改
                //全局
                if (appExtention.DistributeL1Percent > 0 || appExtention.DistributeL2Percent > 0 ||
                    appExtention.DistributeL3Percent > 0)
                {
                    return(false);
                }
                //每个商品
                var list = (from c in Commodity.ObjectSet()
                            join cd in CommodityDistribution.ObjectSet() on c.Id equals cd.Id
                            where c.AppId == appId
                            select cd).ToList();
                if (list.Count > 0)
                {
                    var count = list.Select(t => t.L1Percent + t.L2Percent + t.L3Percent).ToList().Sum();
                    if (count > 0)
                    {
                        return(false);
                    }
                }
            }
            return(true);
        }