123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- using Long.Core.Query;
- using Long.DAO.Basedata;
- using Long.Common.Basedata;
- using Long.Utils.Encryptor;
- using Microsoft.Extensions.Configuration;
- using Long.DAO.System;
- using Long.Core.Extensions;
- namespace Long.Service.UserService.Basedata
- {
-
-
-
- public class UserService : IUserService
- {
- private readonly IConfiguration configuration;
- private readonly IUserDatabase _userDatabase = new UserDatabase();
- private readonly INextValueDatabase _nextValueDatabase = new NextValueDatabase();
- public UserService(IConfiguration configuration)
- {
- this.configuration = configuration;
- }
-
-
-
-
- public async Task<IEnumerable<User>> Get()
- {
- return await _userDatabase.GetAsync();
- }
-
-
-
-
-
- public async Task<IEnumerable<User>> Get(QueryParamenter queryParamenter)
- {
- return await _userDatabase.GetAsync(queryParamenter);
- }
-
-
-
-
-
- public async Task<User> GetById(long id)
- {
- return await _userDatabase.GetFirstAsync(id);
- }
-
-
-
-
-
- public async Task<User> GetByUserName(string userName)
- {
- return await _userDatabase.GetByUserNameAsync(userName);
- }
-
-
-
-
-
- public async Task<long> Regist(RegistInput input)
- {
- string key = configuration.GetSection("EncryptorKey").Value ?? "";
- var user = await _userDatabase.GetUserAsync(input.UserName);
- if (user != null)
- {
- throw new ApplicationException("该用户已注册。");
- }
- user = new User();
- if (input.UserName.IsEmail())
- {
- user.Email = input.UserName;
- }
- else if (input.UserName.IsPhone())
- {
- user.Phone = input.UserName;
- }
- else
- {
- throw new ApplicationException("请输入正确的账号。");
- }
- user.Password = DESEncryptor.Encrypt(input.Password, key);
- user.Opened = true;
- user.Activited = true;
- user.ActivationCode = new Random(999999).Next().ToString().PadLeft('0');
- user.ActivationCodeOn = DateTime.Now;
- long id = await _userDatabase.InsertAsync(user);
-
- var url = CreateActivetionUrl(user.PromotionCode);
- return id;
- }
-
-
-
-
-
-
- public async Task<int> UpdatePassword(long id, string password)
- {
- string key = this.configuration.GetSection("EncryptorKey").Value ?? "";
- return await _userDatabase.UpdatePassword(id, DESEncryptor.Encrypt(password, key));
- }
-
-
-
-
-
- public string CreateActivetionUrl(string code)
- {
- var str = Environment.UserDomainName;
- return $"https://";
- }
- }
- }
|