using DistributionApi.IRepositories; using MadRunFabric.Common; using MadRunFabric.Common.Options; using MadRunFabric.Model; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MongoDB.Driver; using System; using System.Collections.Generic; using System.Text; using System.Linq; namespace DistributionApi.Repositories { public class Sys_User_AccountRepository : BaseRepository, ISys_User_AccountRepository { protected readonly ILogger> _logger; protected readonly IMongoCollection _collection_sysroleinfo; public Sys_User_AccountRepository( IOptions settings, ILogger> logger) : base(settings, logger) { _logger = logger; _collection_sysroleinfo = _context.GetCollection(); } /// /// Linq 关联查询详情 /// /// /// public object GetUserInfo(string usercode, string allprojectrole) { //关联查询 var querys = from usa in _collection.AsQueryable() join role in _collection_sysroleinfo.AsQueryable() on usa.role_id equals role.id into roleinfo where usa.delete_flag == false && usa.usercode == usercode orderby usa.create_time descending select new { usa.id, usa.username, usa.usercode, usa.mobile, usa.type, usa.role_id, role_name = roleinfo.Count() > 0 ? roleinfo.First().role_name : null, role_code = roleinfo.Count() > 0 ? roleinfo.First().role_code : null, usa.seat_level, usa.postlist, usa.projectlist }; var userinfo = querys.FirstOrDefault(); if (userinfo != null) { int level = 0; switch (userinfo.role_code) { case "YWYG": level = 1; break; case "YWZG": level = 2; break; case "YWFJL": level = 3; break; case "YWJL": level = 4; break; case "YWZJ": level = 5; break; case "CJGL": level = 6; break; case "XTWH": level = 7; break; } int isallproject = 0; if (allprojectrole.Split("|").Contains(userinfo.role_code) || userinfo.type == 2) { isallproject = 1; } var model = new { id = userinfo.id, username = userinfo.username, usercode = userinfo.usercode, mobile = userinfo.mobile, level = level, type = userinfo.type, role_id = userinfo.role_id, role_name = userinfo.role_name, role_code = userinfo.role_code, isallproject = isallproject, projectlist = userinfo.projectlist }; return model; } return null; } } }