12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- using System;
- using System.Collections.Generic;
- using System.Data.Common;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using YiSha.Data;
- using YiSha.Data.Repository;
- using YiSha.Enum;
- using YiSha.Enum.OrganizationManage;
- using YiSha.Util;
- using YiSha.Util.Extension;
- namespace YiSha.Web.Code
- {
- public class DataRepository : RepositoryFactory
- {
- private DBConnectTypeEnum dbConnectType = DBConnectTypeEnum.SystemDB;
- public async Task<OperatorInfo> GetUserByToken(string token)
- {
- if (!SecurityHelper.IsSafeSqlParam(token))
- {
- return null;
- }
- token = token.ParseToString().Trim();
- var strSql = new StringBuilder();
- strSql.Append(@"SELECT a.Id as UserId,
- a.UserStatus,
- a.IsOnline,
- a.UserName,
- a.RealName,
- a.Portrait,
- a.DepartmentId,
- a.WebToken,
- a.ApiToken,
- a.IsSystem
- FROM SysUser a
- WHERE WebToken = @WebToken or ApiToken = @ApiToken");
- var operatorInfo = await BaseRepository(dbConnectType).FindObject<OperatorInfo>(strSql.ToString(), new DbParameter[] {
- DbParameterExtension.CreateDbParameter("@WebToken", token, dbConnectType),
- DbParameterExtension.CreateDbParameter("@ApiToken", token, dbConnectType)
- });
- if (operatorInfo != null)
- {
- #region 角色
- strSql.Clear();
- strSql.Append(@"SELECT a.BelongId as RoleId
- FROM SysUserBelong a
- WHERE a.UserId = @UserId AND ");
- strSql.Append(" a.BelongType = @BelongType");
- IEnumerable<RoleInfo> roleList = await BaseRepository(dbConnectType).FindList<RoleInfo>
- (strSql.ToString(),
- new DbParameter[] {
- DbParameterExtension.CreateDbParameter("@UserId", operatorInfo.UserId, dbConnectType),
- DbParameterExtension.CreateDbParameter("@BelongType", UserBelongTypeEnum.Role.ParseToInt(), dbConnectType)
- });
- operatorInfo.RoleIds = string.Join(",", roleList.Select(p => p.RoleId).ToArray());
- #endregion
- #region 部门名称
- strSql.Clear();
- strSql.Append(@"SELECT a.DepartmentName
- FROM SysDepartment a
- WHERE a.Id = @Id ");
- object departmentName = await BaseRepository(dbConnectType).FindObject(
- strSql.ToString(),
- new DbParameter[] {
- DbParameterExtension.CreateDbParameter("@Id",operatorInfo.DepartmentId, dbConnectType)
- });
- operatorInfo.DepartmentName = departmentName.ParseToString();
- #endregion
- }
- return operatorInfo;
- }
- }
- }
|