using FreeSql; using MAX.Core.DependencyInjection; using Store.Users.Contracts.Dtos; using Store.Users.Entities; using Store.Users.Mappers; using System; using System.Collections.Generic; using System.Text; namespace Store.Users.Repositories { public interface IUserRepository : IBaseRepository { Task GetUser(string userName); } internal class UserRepository : BaseRepository, IUserRepository, ITransientDependency { private readonly IFreeSql _freeSql; public UserRepository(IFreeSql freeSql) : base(freeSql) { _freeSql = freeSql; } public async Task GetUser(string userName) { var sql = Where(a => a.UserName == userName).ToSql(); var user = await Where(a => a.UserName == userName).FirstAsync(); if (user != null) { if (user.IsMainUser == false) { var mainUser = await Where(a => a.UserName == user.ParentUserName).FirstAsync(); if (mainUser != null) { user.OemId = mainUser.OemId; user.PostagePerOrder = mainUser.PostagePerOrder; user.RefundPostagePerOrder = mainUser.RefundPostagePerOrder; user.GiftOemAmountPerOrder = mainUser.GiftOemAmountPerOrder; user.SyncLogisticsPerOrder = mainUser.SyncLogisticsPerOrder; } } } return user; } } }