51 lines
1.3 KiB
C#
51 lines
1.3 KiB
C#
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<UserEntity>
|
|
{
|
|
Task<UserEntity> GetUser(string userName);
|
|
}
|
|
internal class UserRepository : BaseRepository<UserEntity>, IUserRepository, ITransientDependency
|
|
{
|
|
private readonly IFreeSql _freeSql;
|
|
|
|
public UserRepository(IFreeSql freeSql) : base(freeSql)
|
|
{
|
|
_freeSql = freeSql;
|
|
}
|
|
|
|
public async Task<UserEntity> 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;
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|