예제 #1
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);
        }
예제 #2
0
        private void updateRalationUserSpread(ContextSession contextSession, SpreadInfo spreadInfo)
        {
            var createOrgUserId = EBCSV.GetOrgCreateUser(spreadInfo.SpreadId);

            var userSpreader = UserSpreader.ObjectSet().FirstOrDefault(c => c.UserId == createOrgUserId);

            if (userSpreader == null)
            {
                UserSpreader uSpreaderNew = UserSpreader.CreateUserSpreader();
                uSpreaderNew.UserId        = createOrgUserId;
                uSpreaderNew.SpreaderId    = spreadInfo.SpreadId;
                uSpreaderNew.SpreadCode    = spreadInfo.SpreadCode;
                uSpreaderNew.CreateOrderId = new Guid("00000000-0000-0000-0000-000000000000");
                contextSession.SaveObject(uSpreaderNew);
            }
        }
예제 #3
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"
                });
            }
        }