Ejemplo n.º 1
0
        /// <summary>
        /// 保存spreadinfo
        /// </summary>
        /// <param name="spreadInfo"></param>
        /// <param name="isDeleteOld">是否删除同类型的旧数据</param>
        public void BuildSaveSpreadInfo(SpreadInfoDTO spreadInfo, bool isDeleteOld = false)
        {
            if (spreadInfo == null || spreadInfo.SpreadId == Guid.Empty || spreadInfo.SpreadCode == Guid.Empty)
            {
                return;
            }
            ContextSession contextSession = ContextFactory.CurrentThreadContext;

            if (isDeleteOld)
            {
                //插入SpreadInfo数据库表
                var oldSpreadInfo = SpreadInfo.ObjectSet().FirstOrDefault(c => c.SpreadId == spreadInfo.SpreadId && c.IsDel == 0);

                if (oldSpreadInfo != null)
                {
                    if ((oldSpreadInfo.SpreadId == spreadInfo.SpreadId) && (oldSpreadInfo.SpreadType == spreadInfo.SpreadType))
                    {
                        oldSpreadInfo.EntityState = EntityState.Deleted;
                    }
                }
            }
            SpreadInfo newSpreadInfo = SpreadInfo.CreateSpreadInfo();

            newSpreadInfo.SpreadId   = spreadInfo.SpreadId;
            newSpreadInfo.SpreadCode = spreadInfo.SpreadCode;
            newSpreadInfo.SpreadUrl  = spreadInfo.SpreadUrl;
            newSpreadInfo.IsDel      = spreadInfo.IsDel;
            newSpreadInfo.SpreadType = spreadInfo.SpreadType;
            newSpreadInfo.SpreadDesc = spreadInfo.SpreadDesc;
            newSpreadInfo.AppId      = spreadInfo.AppId;
            contextSession.SaveObject(newSpreadInfo);
            UpdateRalationUserSpread(spreadInfo.SpreadId, spreadInfo.SpreadCode, spreadInfo.SpreadType);
        }
Ejemplo n.º 2
0
        /// <summary>
        ///  删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO DeleteExt(System.Guid id)
        {
            try
            {
                ResultDTO result = new ResultDTO {
                    isSuccess = true, Message = "success"
                };

                ContextSession contextSession = ContextFactory.CurrentThreadContext;
                var            spreadCategory = SpreadCategory.ObjectSet().FirstOrDefault(c => c.Id == id);
                if (spreadCategory == null)
                {
                    return(result);
                }
                var usedCount = SpreadInfo.ObjectSet().Count(c => c.IsDel == 1 && c.SpreadType == spreadCategory.SpreadType);
                if (usedCount > 0)
                {
                    result.ResultCode = 2;
                    result.isSuccess  = false;
                    result.Message    = "该分类已被使用,无法删除";
                }
                spreadCategory.EntityState = EntityState.Deleted;
                contextSession.SaveChanges();
                return(result);
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("SpreadCategoryBP.DeleteExt 异常:dto:{0}", id), ex);
                return(new ResultDTO {
                    ResultCode = -1, Message = "操作失败"
                });
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 更新用户为推广主
        /// </summary>
        /// <param name="spreaderDto">推广者dto</param>
        /// <returns></returns>
        public ResultDTO UpdateToSpreaderExt(SpreaderAndBuyerWxDTO spreaderDto)
        {
            ResultDTO result = new ResultDTO {
                Message = "Success"
            };

            if (spreaderDto == null || spreaderDto.SpreaderId == Guid.Empty || spreaderDto.SpreadCode == Guid.Empty)
            {
                return(new ResultDTO {
                    ResultCode = 1, Message = "id为空或推广码为空"
                });
            }
            try
            {
                ContextSession contextSession = ContextFactory.CurrentThreadContext;
                //插入SpreadInfo数据库表
                var oldSpreadInfo = SpreadInfo.ObjectSet().FirstOrDefault(c => c.SpreadId == spreaderDto.SpreaderId && c.SpreadCode == spreaderDto.SpreadCode && c.IsDel == 0);
                if (oldSpreadInfo == null)
                {
                    SpreadInfo newSpreadInfo = SpreadInfo.CreateSpreadInfo();
                    newSpreadInfo.SpreadId   = spreaderDto.SpreaderId;
                    newSpreadInfo.SpreadCode = spreaderDto.SpreadCode;
                    newSpreadInfo.IsDel      = 0;
                    newSpreadInfo.SpreadType = 0;
                    contextSession.SaveObject(newSpreadInfo);
                    contextSession.SaveChanges();
                }
                var createUser      = EBCSV.GetOrgCreateUser(spreaderDto.SpreaderId);
                var oldUserSpreader = UserSpreader.ObjectSet().FirstOrDefault(c => c.UserId == createUser);
                if (oldUserSpreader != null)
                {
                    var createUsers = EBCSV.GetMyCreateAccountList(createUser);
                    if (createUsers != null && createUsers.Contains(oldUserSpreader.SpreaderId))
                    {
                        return(result);
                    }
                    oldUserSpreader.EntityState = EntityState.Deleted;
                }
                UserSpreader newUserSpreader = UserSpreader.CreateUserSpreader();
                newUserSpreader.SpreaderId = spreaderDto.SpreaderId;
                newUserSpreader.UserId     = createUser;
                newUserSpreader.SpreadCode = spreaderDto.SpreadCode;
                contextSession.SaveObject(newUserSpreader);
                contextSession.SaveChanges();
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("UserSpreaderSV.UpdateToSpreaderExt异常:spreaderDto:{0}", JsonHelper.JsonSerializer(spreaderDto)), ex);
                return(result);
            }
            return(result);
        }
Ejemplo n.º 4
0
        public ResultDTO BindWeChatQrCodeExt(SpreadBindWeChatQrCodeDTO search)
        {
            if (search == null || search.Id == Guid.Empty || search.AppId == Guid.Empty)
            {
                return new ResultDTO {
                           ResultCode = 1, Message = "参数为空"
                }
            }
            ;
            try
            {
                ContextSession contextSession = ContextFactory.CurrentThreadContext;

                var spreadInfo = SpreadInfo.ObjectSet().FirstOrDefault(c => c.IsDel != 1 && c.Id == search.Id);
                if (spreadInfo == null)
                {
                    return new ResultDTO {
                               ResultCode = 2, Message = "推广主不存在"
                    }
                }
                ;
                var weChatQrCode = WeChatQRCode.ObjectSet().Where(c => c.AppId == search.AppId && c.IsDel != 1 && !c.IsUse && c.QRType.Value == search.QRType && c.QRNo == search.QRNo).FirstOrDefault();
                if (weChatQrCode == null)
                {
                    return new ResultDTO {
                               ResultCode = 3, Message = "没有找到可使用的带参数二维码,请到“App后台-微信公众号”中生成二维码"
                    }
                }
                ;
                weChatQrCode.SpreadInfoId = search.Id;
                weChatQrCode.IsUse        = true;
                weChatQrCode.Name         = getQrCodeName(spreadInfo);
                weChatQrCode.ModifiedOn   = DateTime.Now;
                weChatQrCode.EntityState  = EntityState.Modified;
                contextSession.SaveChanges();
                return(new ResultDTO {
                    isSuccess = true, Message = "success"
                });
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("SpreadInfoBP.BindWeChatQrCodeExt异常,dto={0}", JsonHelper.JsonSerializer(search)), ex);
                return(new ResultDTO {
                    ResultCode = 1, Message = "Error"
                });
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 修改总代分佣比例
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO UpdateDividendPercentExt(Jinher.AMP.BTP.Deploy.CustomDTO.SpreadUpdateDividendPercentDTO dto)
        {
            if (dto == null || dto.Id == Guid.Empty)
            {
                return new ResultDTO {
                           ResultCode = 1, Message = "参数为空"
                }
            }
            ;
            if (dto.Percent < 0 || dto.Percent > 100)
            {
                return(new ResultDTO {
                    ResultCode = 1, Message = "分佣比例只能在0-100之间"
                });
            }
            try
            {
                ContextSession contextSession = ContextFactory.CurrentThreadContext;
                var            spreadInfo     = SpreadInfo.ObjectSet().FirstOrDefault(c => c.IsDel != 1 && c.Id == dto.Id);
                if (spreadInfo == null)
                {
                    return new ResultDTO {
                               ResultCode = 2, Message = "推广主不存在"
                    }
                }
                ;

                spreadInfo.DividendPercent = dto.Percent;
                spreadInfo.EntityState     = EntityState.Modified;
                contextSession.SaveChanges();
                return(new ResultDTO {
                    isSuccess = true, Message = "success"
                });
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("SpreadInfoBP.UpdateDividendPercentExt异常,search={0}", JsonHelper.JsonSerializer(dto)), ex);
                return(new ResultDTO {
                    ResultCode = 1, Message = "Error"
                });
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 时间处理
        /// </summary>
        /// <returns></returns>
        protected virtual void DealEvent()
        {
            if (string.IsNullOrEmpty(Log.Ticket))
            {
                return;
            }
            var qrcode = WeChatQRCode.ObjectSet().FirstOrDefault(c => c.QRType.Value == (int)QrType.SpreadManager && c.WeChatTicket == Log.Ticket);

            if (qrcode == null || qrcode.SpreadInfoId == Guid.Empty)
            {
                return;
            }
            var url = SpreadInfo.ObjectSet().Where(c => c.Id == qrcode.SpreadInfoId).Select(c => c.SpreadUrl).FirstOrDefault();

            Jinher.AMP.WCP.Deploy.CustomDTO.CusNewsPushDTO msgDto = new CusNewsPushDTO()
            {
                AppId   = CustomConfig.WeChatSpreader.AppId.ToString(),
                Content = getMessageContent(url),
            };
            WCPSV.Instance.PushSysMessageToUsers(msgDto);
        }
Ejemplo n.º 7
0
        public ResultDTO UpdateStateExt(SpreadUpdateStateDTO search)
        {
            if (search == null || search.Id == Guid.Empty)
            {
                return new ResultDTO {
                           ResultCode = 1, Message = "参数为空"
                }
            }
            ;
            try
            {
                ContextSession contextSession = ContextFactory.CurrentThreadContext;

                var spreadInfo = SpreadInfo.ObjectSet().FirstOrDefault(c => c.IsDel != 1 && c.Id == search.Id);
                if (spreadInfo == null)
                {
                    return new ResultDTO {
                               ResultCode = 2, Message = "推广主不存在"
                    }
                }
                ;

                spreadInfo.IsDel       = search.IsDel ? 2 : 0;
                spreadInfo.EntityState = EntityState.Modified;
                contextSession.SaveChanges();
                return(new ResultDTO {
                    isSuccess = true, Message = "success"
                });
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("SpreadInfoBP.UpdateStateExt异常,search={0}", JsonHelper.JsonSerializer(search)), ex);
                return(new ResultDTO {
                    ResultCode = 1, Message = "Error"
                });
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 查询一级代理指定APP的旺铺列表
        /// </summary>
        /// <param name="iwId">组织ID</param>
        /// <param name="appId">应用ID</param>
        /// <returns></returns>
        public ResultDTO <List <SpreadAppDTO> > GetLv1SpreadHotshopsExt(Guid iwId, Guid appId)
        {
            var data   = new List <SpreadAppDTO>();
            var appIds = SpreadInfo.ObjectSet().
                         Where(s => s.IsDel != 1 && s.SpreadType == 5 && s.IWId == iwId && s.SpreadAppId == appId).
                         Select(s => s.HotshopId).ToList();

            if (appIds.Count > 0)
            {
                var appDict = APPSV.GetAppNameListByIds(appIds);
                foreach (var item in appIds)
                {
                    data.Add(new SpreadAppDTO {
                        Id = item, Name = appDict.ContainsKey(item) ? appDict[item] : null
                    });
                }
            }
            return(new ResultDTO <List <SpreadAppDTO> >
            {
                isSuccess = true,
                Message = "success",
                Data = data
            });
        }
Ejemplo n.º 9
0
        /// <summary>
        /// 查询推广主信息
        /// </summary>
        /// <param name="spreadInfoSearchDTO"></param>
        /// <returns></returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.SpreadInfoResultDTO GetSpreadInfoExt(Jinher.AMP.BTP.Deploy.CustomDTO.SpreadInfoSearchDTO spreadInfoSearchDTO)
        {
            if (spreadInfoSearchDTO == null || spreadInfoSearchDTO.SpreadCode == Guid.Empty)
            {
                return(null);
            }
            var spreadInfo = SpreadInfo.ObjectSet().Where(t => t.SpreadCode == spreadInfoSearchDTO.SpreadCode && t.IsDel == 0).FirstOrDefault();

            if (spreadInfo == null)
            {
                return(null);
            }
            Jinher.AMP.BTP.Deploy.CustomDTO.SpreadInfoResultDTO result = new SpreadInfoResultDTO();

            result.SpreadId   = spreadInfo.SpreadId;
            result.SpreadUrl  = spreadInfo.SpreadUrl;
            result.SpreadCode = spreadInfo.SpreadCode;
            result.SpreadDesc = spreadInfo.SpreadDesc;
            result.SpreadType = spreadInfo.SpreadType;
            result.IsDel      = spreadInfo.IsDel;
            result.AppId      = spreadInfo.AppId;

            return(result);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 绑定关系
        /// </summary>
        /// <param name="userSpreaderBindDTO">参数只传SpreadCode、UserID</param>
        /// <returns></returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO SaveUserSpreaderCodeExt(Jinher.AMP.BTP.Deploy.CustomDTO.UserSpreaderBindDTO userSpreaderBindDTO)
        {
            ResultDTO result = new ResultDTO();

            if (userSpreaderBindDTO == null)
            {
                result.ResultCode = 1;
                result.Message    = "参数错误,参数不能为空!";
                return(result);
            }
            if (userSpreaderBindDTO.SpreadCode == Guid.Empty)
            {
                result.ResultCode = 2;
                result.Message    = "参数错误,推广码不能为空!";
                return(result);
            }

            if (userSpreaderBindDTO.UserId == Guid.Empty)
            {
                result.ResultCode = 2;
                result.Message    = "参数错误,买家ID不能为空!";
                return(result);
            }

            try
            {
                //一个买家只能属于一个推广主。
                var usCount = (from us in UserSpreader.ObjectSet()
                               where us.UserId == userSpreaderBindDTO.UserId
                               select us).Count();
                if (usCount > 0)
                {
                    result.ResultCode = 0;
                    result.Message    = "已存在当前买家和推广主信息!";
                    return(result);
                }

                var spreadInfo = SpreadInfo.ObjectSet().FirstOrDefault(t => t.SpreadCode == userSpreaderBindDTO.SpreadCode && t.IsDel == 0);
                if (spreadInfo == null)
                {
                    result.ResultCode = 3;
                    result.Message    = "没有此推广码的信息!";
                    return(result);
                }

                ContextSession contextSession = ContextFactory.CurrentThreadContext;

                UserSpreader uSpreaderNew = new UserSpreader();
                uSpreaderNew.Id            = Guid.NewGuid();
                uSpreaderNew.UserId        = userSpreaderBindDTO.UserId;
                uSpreaderNew.SpreaderId    = spreadInfo.SpreadId;
                uSpreaderNew.SpreadCode    = userSpreaderBindDTO.SpreadCode;
                uSpreaderNew.IsDel         = false;
                uSpreaderNew.CreateOrderId = new Guid("00000000-0000-0000-0000-000000000000");
                uSpreaderNew.SubTime       = DateTime.Now;
                uSpreaderNew.ModifiedOn    = DateTime.Now;
                uSpreaderNew.WxOpenId      = "";

                uSpreaderNew.EntityState = System.Data.EntityState.Added;
                contextSession.SaveObject(uSpreaderNew);
                contextSession.SaveChanges();

                result.ResultCode = 0;
                result.Message    = "成功!";
                return(result);
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("UserSpreaderSVExt异常。userSpreaderBindDTO:{0}", JsonHelper.JsonSerializer(userSpreaderBindDTO)), ex);
                result.ResultCode = 4;
                result.Message    = "接口异常,请稍后重试!";
                return(result);
            }
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 保存推广信息
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO SaveSpreadInfoExt(Jinher.AMP.BTP.Deploy.CustomDTO.SpreadSaveDTO dto)
        {
            if (dto == null || dto.SpreadAppId == Guid.Empty || dto.HotshopId == Guid.Empty)
            {
                return new ResultDTO {
                           ResultCode = 1, Message = "参数为空"
                }
            }
            ;

            Guid userId = Guid.Empty;
            Guid iwId   = Guid.Empty;

            // 一级代理
            if (dto.SpreadType == 5)
            {
                if (dto.SubSpreadCount < 0 || dto.SubSpreadCount > 999)
                {
                    return(new ResultDTO {
                        ResultCode = 1, Message = "子代理数量仅允许输入0~999"
                    });
                }
                if (dto.IWCode == null)
                {
                    return new ResultDTO {
                               ResultCode = 1, Message = "参数为空"
                    }
                }
                ;

                iwId = EBCSV.GetOrgIdByIwCode(dto.IWCode);
                if (iwId == Guid.Empty)
                {
                    return new ResultDTO {
                               ResultCode = 2, Message = "该组织不存在"
                    }
                }
                ;
                // 同一个推广主或推广组织,同一个推广App,同一个旺铺仅能生成一个推广码;已存在则提示:已存在相同的推广码;
                var spreadInfoCount = SpreadInfo.ObjectSet().Count(c => c.IsDel != 1 && c.SpreadType == 5 && c.IWId == iwId && c.SpreadAppId == dto.SpreadAppId && c.HotshopId == dto.HotshopId);
                if (spreadInfoCount > 0)
                {
                    return(new ResultDTO {
                        ResultCode = 2, Message = "已存在相同的推广码"
                    });
                }
            }
            // 二级代理
            else if (dto.SpreadType == 6)
            {
                if (dto.UserCode == null || dto.IWId == Guid.Empty || string.IsNullOrEmpty(dto.IWCode))
                {
                    return new ResultDTO {
                               ResultCode = 1, Message = "参数为空"
                    }
                }
                ;
                iwId   = dto.IWId;
                userId = CBCSV.GetUserIdByAccount(dto.UserCode);
                if (userId == Guid.Empty)
                {
                    return new ResultDTO {
                               ResultCode = 2, Message = "该用户未注册"
                    }
                }
                ;

                // 同一个推广主,同一个推广App,同一个旺铺仅能生成一个推广码;已存在则提示:已存在相同的推广码;
                var spreadUserCount = SpreadInfo.ObjectSet().Count(c => c.IsDel != 1 && c.SpreadType == 6 && c.SpreadId == userId && c.SpreadAppId == dto.SpreadAppId && c.HotshopId == dto.HotshopId);
                if (spreadUserCount > 0)
                {
                    return(new ResultDTO {
                        ResultCode = 2, Message = "已存在相同的推广码"
                    });
                }

                // 查询一级代理
                var lv1Spread = SpreadInfo.ObjectSet().FirstOrDefault(s => s.IsDel != 1 && s.SpreadType == 5 && s.IWId == iwId && s.SpreadAppId == dto.SpreadAppId && s.HotshopId == dto.HotshopId);
                if (lv1Spread == null)
                {
                    return(new ResultDTO {
                        ResultCode = 2, Message = "未创建一级代理"
                    });
                }
                // 同一组织、同一个推广App,同一个旺铺的子代理数量限制
                var lv2SpreadCount = SpreadInfo.ObjectSet().Count(c => c.IsDel != 1 && c.SpreadType == 6 && c.IWId == iwId && c.SpreadAppId == dto.SpreadAppId && c.HotshopId == dto.HotshopId);
                if (lv2SpreadCount >= lv1Spread.SubSpreadCount)
                {
                    return(new ResultDTO {
                        ResultCode = 2, Message = "生成的推广码已经达到限制数量"
                    });
                }
            }
            else
            {
                if (dto.UserCode == null)
                {
                    return new ResultDTO {
                               ResultCode = 1, Message = "参数为空"
                    }
                }
                ;
                userId = CBCSV.GetUserIdByAccount(dto.UserCode);
                if (userId == Guid.Empty)
                {
                    return new ResultDTO {
                               ResultCode = 2, Message = "该用户未注册"
                    }
                }
                ;
            }

            try
            {
                ContextSession contextSession = ContextFactory.CurrentThreadContext;
                Guid           spreadCode     = Guid.NewGuid();
                string         spreadUrl      = getSpreadUrl(dto.SpreadAppId, dto.HotshopId, spreadCode);
                var            qrCodeUrl      = BaseAppToolsSV.GenerateQrCode(spreadUrl, dto.QrCodeFileImg);
                if (string.IsNullOrEmpty(qrCodeUrl))
                {
                    return(new ResultDTO {
                        ResultCode = 2, Message = "生成二维码失败"
                    });
                }
                SpreadInfo spreadInfo = new SpreadInfo
                {
                    Id              = Guid.NewGuid(),
                    SpreadId        = userId,
                    SpreadUrl       = ShortUrlSV.Instance.GenShortUrl(spreadUrl),
                    SpreadCode      = spreadCode,
                    SpreadDesc      = dto.SpreadDesc,
                    SpreadType      = dto.SpreadType,
                    QrCodeUrl       = qrCodeUrl,
                    SpreadAppId     = dto.SpreadAppId,
                    HotshopId       = dto.HotshopId,
                    UserCode        = dto.UserCode,
                    Name            = dto.Name ?? "",
                    IWId            = iwId,
                    IWCode          = dto.IWCode,
                    SubSpreadCount  = dto.SubSpreadCount,
                    DividendPercent = dto.DividendPercent,
                    EntityState     = EntityState.Added
                };
                contextSession.SaveObject(spreadInfo);

                updateRalationUserSpread(contextSession, spreadInfo);

                contextSession.SaveChanges();

                return(new ResultDTO {
                    isSuccess = true, ResultCode = 0, Message = "Success"
                });
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("SpreadInfoBP.SaveSpreadInfoExt异常,dto={0}", JsonHelper.JsonSerializer(dto)), ex);
                return(new ResultDTO {
                    ResultCode = 1, Message = "Error"
                });
            }
        }
Ejemplo n.º 12
0
        public ResultDTO <ListResult <SpreadInfoShowDTO> > GetSpreadInfoListExt(SpreadSearchDTO search)
        {
            if (search == null)
            {
                return new ResultDTO <ListResult <SpreadInfoShowDTO> > {
                           ResultCode = 1, Message = "参数为空"
                }
            }
            ;
            if (search.PageIndex == 0)
            {
                search.PageIndex = 1;
            }
            if (search.PageSize == 0)
            {
                search.PageSize = 20;
            }
            var query = SpreadInfo.ObjectSet().Where(c => c.IsDel != 1);

            if (search.SpreadType.HasValue)
            {
                query = query.Where(c => c.SpreadType == search.SpreadType.Value);
            }
            if (!string.IsNullOrEmpty(search.UserCode))
            {
                query = query.Where(c => c.UserCode.Contains(search.UserCode));
            }
            if (search.SpreadAppId.HasValue && search.SpreadAppId != Guid.Empty)
            {
                query = query.Where(c => c.SpreadAppId == search.SpreadAppId.Value);
            }
            if (search.IWId.HasValue)
            {
                query = query.Where(c => c.IWId == search.IWId.Value);
            }
            ListResult <SpreadInfoShowDTO> data = new ListResult <SpreadInfoShowDTO> {
                List = new List <SpreadInfoShowDTO>()
            };

            data.Count = query.Count();
            data.List  = query.OrderByDescending(c => c.SubTime).Skip((search.PageIndex - 1) * search.PageSize).
                         Take(search.PageSize).Select(c => new SpreadInfoShowDTO
            {
                Id                 = c.Id,
                SpreadId           = c.SpreadId,
                Account            = c.UserCode,
                Name               = c.Name,
                SpreadType         = c.SpreadType,
                SpreadAppId        = c.SpreadAppId,
                HotshopId          = c.HotshopId,
                QrCodeUrl          = c.QrCodeUrl,
                SpreadDesc         = c.SpreadDesc,
                SpreadUrl          = c.SpreadUrl,
                SubTime            = c.SubTime,
                IsDel              = c.IsDel,
                HotshopName        = "",
                IsBindWeChatQrCode = false,
                SpreadAppName      = "",
                SpreadTypeDesc     = "",
                IWCode             = c.IWCode,
                SubSpreadCount     = c.SubSpreadCount,
                DividendPercent    = c.DividendPercent
            }).ToList();
            if (data.List.Any())
            {
                var spreadTypes        = data.List.Select(c => c.SpreadType).Distinct().ToList();
                var spreadCategoryList = SpreadCategory.ObjectSet()
                                         .Where(c => spreadTypes.Contains(c.SpreadType))
                                         .Select(m => new SpreadCategoryDTO {
                    SpreadType = m.SpreadType, CategoryDesc = m.CategoryDesc
                }).ToList();

                var ids       = data.List.Select(c => c.Id).ToList();
                var bindedIds = WeChatQRCode.ObjectSet().Where(c => ids.Contains(c.SpreadInfoId)).Select(m => m.SpreadInfoId).ToList();


                var appIds = data.List.Select(c => c.SpreadAppId).Distinct().ToList();
                appIds.AddRange(data.List.Select(c => c.HotshopId));
                appIds = appIds.Distinct().ToList();
                var appDict = APPSV.GetAppNameListByIds(appIds);
                foreach (var spreadInfoShowDTO in data.List)
                {
                    if (appDict.ContainsKey(spreadInfoShowDTO.SpreadAppId))
                    {
                        spreadInfoShowDTO.SpreadAppName = appDict[spreadInfoShowDTO.SpreadAppId];
                    }
                    if (appDict.ContainsKey(spreadInfoShowDTO.HotshopId))
                    {
                        spreadInfoShowDTO.HotshopName = appDict[spreadInfoShowDTO.HotshopId];
                    }
                    var spreadTypeDto = spreadCategoryList.FirstOrDefault(c => c.SpreadType == spreadInfoShowDTO.SpreadType);
                    if (spreadTypeDto != null)
                    {
                        spreadInfoShowDTO.SpreadTypeDesc = spreadTypeDto.CategoryDesc;
                    }
                    if (bindedIds.Contains(spreadInfoShowDTO.Id))
                    {
                        spreadInfoShowDTO.IsBindWeChatQrCode = true;
                    }
                }
            }

            return(new ResultDTO <ListResult <SpreadInfoShowDTO> >
            {
                isSuccess = true,
                Message = "success",
                Data = data
            });
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 删除多个自提点
        /// </summary>
        /// <param name="ids">自提点ID集合</param>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO DeleteSelfTakeStationsExt(System.Collections.Generic.List <System.Guid> ids)
        {
            if (ids == null || ids.Count < 1)
            {
                return(new ResultDTO {
                    ResultCode = 1, Message = "自提点实体不能为空"
                });
            }
            Guid cityOwnerId         = Guid.Empty;
            Guid appId               = Guid.Empty;
            int  selfTakeStationType = 0;

            try
            {
                ContextSession contextSession = ContextFactory.CurrentThreadContext;
                var            models         = SelfTakeStation.ObjectSet().Where(s => ids.Contains(s.Id) && !s.IsDel).ToList();
                if (models != null && models.Count > 0)
                {
                    var first = models.FirstOrDefault();
                    cityOwnerId         = first.CityOwnerId;
                    appId               = first.AppId.HasValue ? first.AppId.Value : Guid.Empty;
                    selfTakeStationType = first.SelfTakeStationType;
                    //删除自提点
                    foreach (var item in models)
                    {
                        item.IsDel       = true;
                        item.EntityState = System.Data.EntityState.Modified;
                        contextSession.SaveObject(item);
                    }

                    var selfTakeStationManager = SelfTakeStationManager.ObjectSet().Where(s => ids.Contains(s.SelfTakeStationId) && !s.IsDel).ToList();
                    if (selfTakeStationManager != null && selfTakeStationManager.Count > 0)
                    {
                        //删除负责人
                        foreach (var manager in selfTakeStationManager)
                        {
                            manager.IsDel       = true;
                            manager.EntityState = System.Data.EntityState.Modified;
                            contextSession.SaveObject(manager);
                        }
                    }

                    //删除推广表信息
                    List <Guid> spreadCodeList = models.Select(t => t.SpreadCode).ToList();
                    var         spreadInfo     = SpreadInfo.ObjectSet().Where(s => spreadCodeList.Contains(s.SpreadCode) && s.IsDel != 1).ToList();
                    foreach (var item in spreadInfo)
                    {
                        item.IsDel       = 1;
                        item.EntityState = System.Data.EntityState.Modified;
                        contextSession.SaveObject(item);
                    }

                    contextSession.SaveObject(spreadInfo);
                }
                contextSession.SaveChanges();
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("删除自提点服务异常。ids:{0}", JsonHelper.JsonSerializer(ids)), ex);
                return(new ResultDTO {
                    ResultCode = 1, Message = "Error"
                });
            }

            //更新已建体验柜数量
            try
            {
                int count = 0;
                Jinher.AMP.ZPH.Deploy.CustomDTO.ProxyCabinetNumParam prarm = new ZPH.Deploy.CustomDTO.ProxyCabinetNumParam();
                prarm.ChangeOrg = cityOwnerId;
                prarm.BelongTo  = appId;

                if (selfTakeStationType == 0)
                {
                    //总数量
                    count = SelfTakeStation.ObjectSet().Where(t => t.CityOwnerId == cityOwnerId && t.SelfTakeStationType == selfTakeStationType && !t.IsDel).Count();
                    prarm.IsSelfPavilion = false;
                }
                else if (selfTakeStationType == 1)
                {
                    //总数量
                    count = SelfTakeStation.ObjectSet().Where(t => t.CityOwnerId == cityOwnerId && t.SelfTakeStationType == selfTakeStationType && t.AppId == appId && !t.IsDel).Count();
                    prarm.IsSelfPavilion = true;
                }
                prarm.CabinetNum = count;
                LogHelper.Debug(string.Format("删除自提点时更新已建体验柜数量。prarm:{0}", JsonHelper.JsonSerializer(prarm)));
                var resultProxy = Jinher.AMP.BTP.TPS.ZPHSV.Instance.UpdateProxyCabinetNum(prarm);
                if (!resultProxy.isSuccess)
                {
                    LogHelper.Error(string.Format("删除自提点成功,但更新已建体验柜数量服务失败。ids:{0}", JsonHelper.JsonSerializer(ids)));
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("删除自提点时更新已建体验柜数量服务异常。ids:{0}", JsonHelper.JsonSerializer(ids)), ex);
            }

            return(new ResultDTO {
                ResultCode = 0, Message = "Success"
            });
        }