Ejemplo n.º 1
0
        public UserLevelRegForm GetView(long id, long userId)
        {
            var model      = new UserLevelRegForm();
            var parentUser = Resolve <IUserService>().GetSingle(r => r.Id == userId);

            if (parentUser != null)
            {
                model.ParentUserName = parentUser.UserName;
            }
            return(model);
        }
Ejemplo n.º 2
0
        public ServiceResult Reg(UserLevelRegForm regForm)
        {
            regForm.IdCard = regForm.IdCard.Trim().ToLower();
            var config = Resolve <IAutoConfigService>().GetValue <UserLevelRegConfig>();

            if (config.CardNumber > 0)
            {
                var cardList = Resolve <IUserLevelService>().GetIdList(r => r.IdCard == regForm.IdCard);
                if (cardList.Count >= config.CardNumber)
                {
                    return(ServiceResult.Failure($"同一号码注册不能超过{config.CardNumber}个"));
                }
            }
            if (config.MobileNumber > 0)
            {
                var cardList = Resolve <IUserLevelService>().GetIdList(r => r.Mobile == regForm.Mobile);
                if (cardList.Count >= config.MobileNumber)
                {
                    return(ServiceResult.Failure($"同一号码注册不能超过{config.MobileNumber}个"));
                }
            }

            var userLevelConfigList = Resolve <IAutoConfigService>().GetList <UserLevelConfig>();
            var userLevelConfig     = userLevelConfigList.FirstOrDefault(r => r.Id == regForm.ConfigId);

            if (userLevelConfig == null || userLevelConfig.Status != Status.Normal)
            {
                return(ServiceResult.Failure($"消费套餐不存在"));
            }

            var regInput = new RegInput {
                Name           = regForm.Name,
                UserName       = regForm.UserName,
                ParentUserName = regForm.ParentUserName,
                VerifiyCode    = regForm.VerifiyCode,
                Mobile         = regForm.Mobile,
                Status         = Status.Freeze,
                Password       = regForm.Password,
                PayPassword    = regForm.PayPassword,
            };

            // 注册会员
            var regResult = Resolve <IUserBaseService>().Reg(regInput);

            if (!regResult.Item1.Succeeded)
            {
                return(regResult.Item1);
            }

            // 添加会员消费记录
            var userOutput = regResult.Item2;

            var result  = ServiceResult.Success;
            var context = Repository <IUserLevelRepository>().RepositoryContext;

            try {
                context.BeginTransaction();
                var userLevel = regForm.MapTo <UserLevel>();
                userLevel.UserId    = userOutput.Id;
                userLevel.ParentId  = userOutput.ParentId;
                userLevel.LevelName = userLevelConfig.Name;
                userLevel.Status    = UserLevelStatus.NotActivated;

                Add(userLevel);
                var userLevelRecord = userLevelConfig.MapTo <UserLevelRecord>();
                userLevelRecord.ConfigId = userLevelConfig.Id;
                userLevelRecord.UserId   = userLevel.UserId;
                userLevelRecord.LevelId  = userLevel.Id;
                Resolve <IUserLevelRecordService>().Add(userLevelRecord);

                context.SaveChanges();
                context.CommitTransaction();
            } catch (Exception ex) {
                context.RollbackTransaction();
                result = ServiceResult.Failure(ex.Message);
            } finally {
                context.DisposeTransaction();
            }

            return(result);
        }