You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

117 lines
4.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Common;
using Common.DJYModel;
using Common.Extensions;
using djy.IService.Djy;
namespace djy.Service.DjyService
{
/// <summary>
///
/// </summary>
public class DjyUserService :DbContext, IDjyUserService
{
public ReturnResult<UserBaseinfo> GetUserBaseinfo(string usergid)
{
var rs = new ReturnResult<UserBaseinfo>();
rs.Data = DbBus.Get(DbList.djyolddb).Select<UserBaseinfo>().Where(w => w.USERID == usergid).ToOne();
rs.OK();
return rs;
}
public ReturnResult<User> GetUserInfo(string usergid)
{
var rs = new ReturnResult<User>();
var user = DjyTools.RedisGet<User>("UserInfo_"+usergid);
if (user==null) {
user = DbBus.Get(DbList.djyolddb).Select<User>().Where(w => w.GID == usergid).ToOne();
if (user != null)
{
DjyTools.RedisSet("UserInfo_" + usergid, user, sysOptionConfig.Webconfig.cache_time);
}
}
rs.Data = user;
rs.OK();
return rs;
}
public ReturnResult<DJyUserAuthorityDto> GetUserAuthority(Guid? UserId, string PageKeyName)
{
var rs =new ReturnResult<DJyUserAuthorityDto>();
var getdata = GetUserAuthorityList(new DJyUserAuthorityDto {UserId=UserId,KeyName=PageKeyName });
if (getdata.Status) {
if (getdata.Data.Count > 0)
{
rs.Data = getdata.Data[0];
rs.OK();
}
}
return rs;
}
/// <summary>
/// 获取大简云用户权限列表 查询条件[KeyName]
/// </summary>
/// <returns></returns>
public ReturnResult<List<DJyUserAuthorityDto>> GetUserAuthorityList(DJyUserAuthorityDto Dto) {
var rs = new ReturnResult<List<DJyUserAuthorityDto>>();
try
{
if (Dto == null || Dto.UserId == null)
{
rs.Not("userid 丢失");
return rs;
}
var userid = Dto.UserId;
List<DJyUserAuthorityDto> list;
var rkey = "UserAuthorityList_" + userid.ToString();
list = DjyTools.RedisGet<List<DJyUserAuthorityDto>>(rkey);
var getlist=new List<DJyUserAuthorityDto>();
if (list == null || list.Count == 0)
{
var strSql = new StringBuilder();
strSql.Append("SELECT * FROM ( ");
strSql.Append("SELECT GID,USERID,VISIBLERANGE,OPERATERANGE,AUTHORITYID,DESCRIPTION,NAME as KeyName,ISNULL((case VISIBLERANGE when 0 then '全部' when 1 then '本公司' ");
strSql.Append("when 2 then '本部门' when 3 then '本人' when 4 then '无' when 5 then '选择公司' ");
strSql.Append("when 6 then '选择人员' when 7 then '注册公司' end),'') VISIBLERANGEREF,ISNULL((case OPERATERANGE when 0 then '全部' when 1 then '本公司' ");
strSql.Append("when 2 then '本部门' when 3 then '本人' when 4 then '无' when 5 then '选择公司' ");
strSql.Append("when 6 then '选择人员' when 7 then '注册公司' end),'') OPERATERANGEREF ");
strSql.Append(" from VW_User_Authority ");
strSql.Append(" where USERID='" + userid + "'");
strSql.Append(" UNION SELECT '' GID,'" + userid + "' USERID, 4 VISIBLERANGE,4 OPERATERANGE,GID AUTHORITYID,DESCRIPTION,NAME, ");
strSql.Append(" '无' VISIBLERANGEREF,'无' OPERATERANGEREF ");
strSql.Append(" from user_authority_info ");
strSql.Append(" where GID NOT IN (SELECT AUTHORITYID FROM user_authority_range WHERE USERID='" + userid + "')");
strSql.Append(" ) AS DL ");
list = DbBus.Get(DbList.djyolddb).Ado.Query<DJyUserAuthorityDto>(strSql.ToString());
DjyTools.RedisSet(rkey,list, sysOptionConfig.Webconfig.cache_time);
}
if (Dto.KeyName.IsNotNull()) {
getlist = list.Where(w => w.KeyName == Dto.KeyName).ToList();
}
rs.Data = getlist;
rs.OK();
}
catch {
}
return rs;
}
}
}