예제 #1
0
        public BindAlipayPostValidator(IMemberInfosRepository memberInfoRepository)
        {
            this._IMemberInfoRepository = memberInfoRepository;

            //检查用户是否存在
            RuleFor(x => x.Id).NotEmpty().WithMessage("用户id不能为空").MustAsync(async(id, cancellation) => {
                bool exists = await this._IMemberInfoRepository.IsExistAsync(x => x.MemberId == id);
                return(exists);
            }).WithMessage("当前用户不存在,请检查");

            RuleFor(x => x.Name).NotEmpty().WithMessage("真实姓名不为空").Matches(@"[\u4E00-\u9FA5]+").WithMessage("真实姓名必须为中文");
            RuleFor(x => x.Alipay).NotEmpty().WithMessage("支付宝账号不能为空").Matches(@"0?(13|14|15|17|18|19)[0-9]{9}").WithMessage("支付宝账号格式不正确");

            //检查账号是否在其他账户绑定过
            RuleFor(x => new { x.Id, x.Alipay }).MustAsync(async(obj, collback) => {
                bool exists = await this._IMemberInfoRepository.IsExistAsync(x => x.Alipay == obj.Alipay && x.MemberId != obj.Id);
                return(!exists);
            }).WithMessage("该账号已在其他用户绑定过");

            //不能更新绑定,检测用户是否绑定过 已绑定则无法更改绑定
            RuleFor(x => x.Id).MustAsync(async(id, collback) => {
                var flag   = false;
                var entity = await this._IMemberInfoRepository.FirstOrDefaultAsync(x => x.MemberId == id);
                if (string.IsNullOrWhiteSpace(entity.Alipay))
                {
                    flag = true;
                }
                return(flag);
            }).WithMessage("每个用户只允许绑定一次(当前用户已绑定)");
        }
예제 #2
0
 public IncomeController(ILogger <SiteController> logger,
                         IMemberInfosRepository memberInfoRepository,
                         IMemberIncomeRepository memberIncomeRepository)
 {
     this._ILogger = logger;
     this._IMemberInfoRepository   = memberInfoRepository;
     this._IMemberIncomeRepository = memberIncomeRepository;
 }
예제 #3
0
 public MemberInfoPostValidator(IMemberInfosRepository memberInfosRepository)
 {
     this._IMemberInfosRepository = memberInfosRepository;
     When(x => x.IsEnable != 0, () => {
         RuleFor(x => x.Alipay).Matches(@"0?(13|14|15|17|18|19)[0-9]{9}").WithMessage("支付宝账号格式不正确")
         .MustAsync(AlipayRepeatValidator).WithMessage("支付宝已被绑定!").When(a => !string.IsNullOrEmpty(a.Alipay));
     });
 }
예제 #4
0
 public MemberWithdrawPostValidator(IMemberInfosRepository memberInfosRepository)
 {
     this._IMemberInfosRepository = memberInfosRepository;
     //检查用户是否存在
     RuleFor(x => x.id).NotEmpty().WithMessage("用户id不能为空").MustAsync(async(id, cancellation) => {
         bool exists = await this._IMemberInfosRepository.IsExistAsync(x => x.MemberId == id);
         return(exists);
     }).WithMessage("当前用户不存在,请检查");
 }
예제 #5
0
 /// <summary>
 /// 自动校验
 /// </summary>
 public PasswordPostValidator(IMemberInfosRepository memberInfoRepository)
 {
     this._IMemberInfoRepository = memberInfoRepository;
     RuleFor(x => x.LoginName).MustAsync(async(loginName, collback) => {
         return(await _IMemberInfoRepository.IsExistAsync(a => a.Uid == loginName || a.Phone == loginName));
     }).WithMessage("用户不存在!");
     RuleFor(x => new { x.Old, x.LoginName }).MustAsync(async(obj, collback) => {
         return(await _IMemberInfoRepository.IsExistAsync(a => (a.Uid == obj.LoginName || a.Phone == obj.LoginName) && a.Password == Tools.Md5(obj.Old)));
     }).WithMessage("原始密码有误!");
     RuleFor(x => x.New).NotEmpty().WithMessage("新密码不能为空!").Matches(@"^(?!(?:[^a-zA-Z]+|\D+|[a-zA-Z0-9]+)$).{6,50}$").WithMessage("新密码必须包含字母、数字和特殊字符");
     RuleFor(x => x.Affirm).NotEmpty().WithMessage("确认密码不能为空!").Must(ReEqualsNew).WithMessage("确认密码必须跟新密码一样!");
 }
예제 #6
0
        public TaskInfoApp(IMemberIncomeRepository memberIncomeRepository,
                           IMemberInfosRepository memberInfosRepository,
                           ITaskInfoRepository taskInfoRepository,
                           IConfiguration configuration)
        {
            this._IMemberIncomeRepository = memberIncomeRepository;
            this._IMemberInfosRepository  = memberInfosRepository;

            this._ITaskInfoRepository = taskInfoRepository;
            this._IConfiguration      = configuration;
            this._Before = Convert.ToInt32(_IConfiguration["ExchangeRatio:Before"]);
            this._After  = Convert.ToInt32(_IConfiguration["ExchangeRatio:After"]);
        }
예제 #7
0
        /// <summary>
        /// 自动验证
        /// </summary>
        public RegisterPostValidator(IMemberInfosRepository memberInfoRepository)
        {
            this._IMemberInfoRepository = memberInfoRepository;

            When(x => x.type == (int)RegisterType.wechat, () => {
                RuleFor(a => a.uid).NotEmpty().WithMessage("请传递uid!");
                RuleFor(a => a.openid).NotEmpty().WithMessage("请传递openid!");
            }).Otherwise(() => {
                RuleFor(a => a.phone).NotEmpty().WithMessage("请传递手机号!").MustAsync(async(phone, callback) => {
                    return(!await _IMemberInfoRepository.IsExistAsync(x => x.Phone == phone));
                }).WithMessage("该手机号已经被绑定!").
                Matches(@"0?(13|14|15|17|18|19)[0-9]{9}").WithMessage("手机号格式不正确!");
            });
        }
예제 #8
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="logger"></param>
 /// <param name="memberInfoRepository"></param>
 /// <param name="memberIncomeRepository"></param>
 /// <param name="jwtRedis"></param>
 /// <param name="configuration"></param>
 /// <param name="taskInfoApp"></param>
 public MemberController(ILogger <SiteController> logger,
                         IMemberInfosRepository memberInfoRepository,
                         IMemberIncomeRepository memberIncomeRepository,
                         IJwtRedis jwtRedis,
                         IConfiguration configuration,
                         ITaskInfoApp taskInfoApp)
 {
     this._IConfiguration          = configuration;
     this._ILogger                 = logger;
     this._IMemberInfoRepository   = memberInfoRepository;
     this._IMemberIncomeRepository = memberIncomeRepository;
     this._IJwtRedis               = jwtRedis;
     this._ITaskInfoApp            = taskInfoApp;
 }
예제 #9
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="logger"></param>
 /// <param name="memberInfoRepository"></param>
 /// <param name="memberIncomeRepository"></param>
 /// <param name="configuration"></param>
 public WithdrawController(ILogger <MemberWithdraw> logger,
                           IMemberInfosRepository memberInfoRepository,
                           IMemberIncomeRepository memberIncomeRepository,
                           IMemberWithdrawRepository memberWithdrawRepository,
                           IConfiguration configuration)
 {
     this._IConfiguration            = configuration;
     this._ILogger                   = logger;
     this._IMemberInfoRepository     = memberInfoRepository;
     this._IMemberIncomeRepository   = memberIncomeRepository;
     this._IMemberWithdrawRepository = memberWithdrawRepository;
     this._Before = Convert.ToInt32(_IConfiguration["ExchangeRatio:Before"]);
     this._After  = Convert.ToInt32(_IConfiguration["ExchangeRatio:After"]);
 }
예제 #10
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="logger"></param>
 /// <param name="webNewsRedis"></param>
 /// <param name="jwtRedis"></param>
 /// <param name="memberInfosRepository"></param>
 /// <param name="httpContextAccessor"></param>
 public AccountController(ILogger <AccountController> logger,
                          IWebNewsRedis webNewsRedis,
                          IJwtRedis jwtRedis,
                          IMemberInfosRepository memberInfosRepository,
                          IHttpContextAccessor httpContextAccessor,
                          ITaskInfoRepository taskInfoRepository,
                          ITaskNoviceLogRepository taskNoviceLogRepository,
                          ITaskInfoApp taskInfoApp)
 {
     this._ILogger                  = logger;
     this._IWebNewsRedis            = webNewsRedis;
     this._IJwtRedis                = jwtRedis;
     this._IMemberInfosRepository   = memberInfosRepository;
     this._IHttpContextAccessor     = httpContextAccessor;
     this._ITaskInfoRepository      = taskInfoRepository;
     this._ITaskNoviceLogRepository = taskNoviceLogRepository;
     this._ITaskInfoApp             = taskInfoApp;
 }
예제 #11
0
        public TaskInfoAppv2(IMemberIncomeRepository memberIncomeRepository,
                             IMemberInfosRepository memberInfosRepository,
                             ITaskUpperLogRepository taskUpperLogRepository,
                             ITaskInfoRepository taskInfoRepository,
                             ITaskDetailsRepository taskDetailsRepository,
                             IConfiguration configuration,
                             ITaskNoviceLogRepository taskNoviceLogRepository)
        {
            this._IMemberIncomeRepository = memberIncomeRepository;
            this._IMemberInfosRepository  = memberInfosRepository;
            this._ITaskInfoRepository     = taskInfoRepository;
            this._ITaskDetailsRepository  = taskDetailsRepository;

            this._ITaskUpperLogRepository = taskUpperLogRepository;

            this._ITaskNoviceLogRepository = taskNoviceLogRepository;

            this._IConfiguration = configuration;

            this._Before = Convert.ToInt32(_IConfiguration["ExchangeRatio:Before"]);
            this._After  = Convert.ToInt32(_IConfiguration["ExchangeRatio:After"]);
        }