| | |
| | | using System.Threading.Tasks; |
| | | using Rhea.Common; |
| | | using Tiger.IBusiness; |
| | | using Dm.filter.log; |
| | | |
| | | namespace Tiger.Business |
| | | { |
| | |
| | | /// <param name="token"></param> |
| | | /// <param name="Async"></param> |
| | | /// <returns></returns> |
| | | public async Task<SYS_BS_LOGIN> GetLoginInfo(string token, bool Async = true) |
| | | public async Task<SYS_BS_LOGIN> GetBSLoginInfo(string token, bool Async = true) |
| | | { |
| | | SYS_BS_LOGIN query = null; |
| | | try |
| | |
| | | /// <param name="action"></param> |
| | | /// <param name="Async"></param> |
| | | /// <returns></returns> |
| | | public async Task<ApiAction<SYS_BS_LOGIN>> Login(ApiAction<UserInfo> action, bool Async = true) |
| | | public async Task<ApiAction<SYS_BS_LOGIN>> BSLogin(ApiAction<UserInfo> action, bool Async = true) |
| | | { |
| | | var res = new ApiAction<SYS_BS_LOGIN>(); |
| | | try |
| | |
| | | { |
| | | if (user.STATUS_CODE == "ENABLE") |
| | | { |
| | | var org_code=Db.Queryable<V_USER_ORG>().Where(q=>q.USER_ID == userInfo.USER_CODE && q.ORG_CODE==userInfo.ORG_CODE).First(); |
| | | if (org_code !=null) |
| | | MES_FACTORY _factory = Db.Queryable<MES_FACTORY>() |
| | | .WhereIF(!userInfo.FTY_CODE.IsNullOrEmpty(),x => x.FTY_CODE == userInfo.FTY_CODE) |
| | | .First(); |
| | | |
| | | SYS_BS_LOGIN logininfo = new SYS_BS_LOGIN |
| | | { |
| | | var fty = userInfo.FTY_CODE ?? "QXXC"; |
| | | MES_FACTORY _factory = Db.Queryable<MES_FACTORY>() |
| | | .Where(x => x.FTY_CODE == fty) |
| | | .ToList()[0]; |
| | | |
| | | SYS_BS_LOGIN logininfo = new SYS_BS_LOGIN |
| | | { |
| | | USER_ID = user.USER_ID, |
| | | USER_NAME = user.USER_NAME, |
| | | LAST_ACCESS = DateTime.Now, |
| | | CREATE_TIME = DateTime.Now, |
| | | STATUS_CODE = user.STATUS_CODE, |
| | | CLIENT_IP = userInfo?.ip, |
| | | FTY_CODE = _factory.FTY_CODE, |
| | | FTY_NAME = _factory.FTY_NAME, |
| | | TOKEN = userInfo.Token ?? Guid.NewGuid().ToString("N"), |
| | | ID = Guid.NewGuid().ToString("N"), |
| | | ACCOUNT_TYPE = 0, |
| | | ORG_CODE = userInfo.ORG_CODE |
| | | }; |
| | | LOG_BS_LOGIN loginlog = new() |
| | | { |
| | | //FACTORY = _factory.FTY_CODE, |
| | | USER_ID = user.USER_ID, |
| | | LOGIN_FROM = $"{userInfo?.ad_info?.nation}->{userInfo?.ad_info?.province}->{userInfo?.ad_info?.city};IP:{userInfo?.ip}", |
| | | LOGIN_TIME = DateTime.Now |
| | | |
| | | }; |
| | | //保存登录日志 |
| | | var db = Business.Biz.Db; |
| | | var dbTran = db.UseTran(() => |
| | | { |
| | | db.Insertable(loginlog).ExecuteCommand(); |
| | | |
| | | if (logininfo != null) |
| | | { |
| | | var deres = db.Storageable(logininfo).ExecuteCommand(); |
| | | } |
| | | res.Data = logininfo; |
| | | }); |
| | | if (!dbTran.IsSuccess) |
| | | { |
| | | res.IsSuccessed = false; |
| | | res.Data = null; |
| | | res.LocaleMsg = L("SYS.Login.dbTranError"); |
| | | } |
| | | res.Data = logininfo; |
| | | USER_ID = user.USER_ID, |
| | | USER_NAME = user.USER_NAME, |
| | | LAST_ACCESS = DateTime.Now, |
| | | CREATE_TIME = DateTime.Now, |
| | | STATUS_CODE = user.STATUS_CODE, |
| | | CLIENT_IP = userInfo?.ip, |
| | | FTY_CODE = _factory?.FTY_CODE, |
| | | FTY_NAME = _factory?.FTY_NAME, |
| | | TOKEN = userInfo.Token ?? Guid.NewGuid().ToString("N"), |
| | | ID = Guid.NewGuid().ToString("N"), |
| | | ACCOUNT_TYPE = 0, |
| | | ORG_CODE = userInfo.ORG_CODE |
| | | }; |
| | | var org_code=Db.Queryable<V_USER_ORG>().Where(q=>q.USER_ID == userInfo.USER_CODE && q.ORG_CODE==userInfo.ORG_CODE).First(); |
| | | if (org_code != null) |
| | | { |
| | | logininfo.ORG_CODE = org_code.ORG_CODE; |
| | | } |
| | | else |
| | | { |
| | | var prod_code = Db.Queryable<V_USER_PROD>().Where(q => q.USER_ID == userInfo.USER_CODE && q.PROD_CODE == userInfo.PROD_CODE).First(); |
| | | if (prod_code != null) |
| | | { |
| | | logininfo.FTY_CODE = prod_code.PROD_CODE; |
| | | logininfo.FTY_NAME = prod_code.PROD_NAME; |
| | | } |
| | | else |
| | | { |
| | | res.IsSuccessed = false; |
| | | res.Data = null; |
| | | res.LocaleMsg = L("SYS.Login.isNotOrgCode");//用户没有该据点的权限 } |
| | | } |
| | | } |
| | | LOG_BS_LOGIN loginlog = new() |
| | | { |
| | | //FACTORY = _factory.FTY_CODE, |
| | | USER_ID = user.USER_ID, |
| | | LOGIN_FROM = $"{userInfo?.ad_info?.nation}->{userInfo?.ad_info?.province}->{userInfo?.ad_info?.city};IP:{userInfo?.ip}", |
| | | LOGIN_TIME = DateTime.Now |
| | | |
| | | }; |
| | | //保存登录日志 |
| | | var db = Business.Biz.Db; |
| | | var dbTran = db.UseTran(() => |
| | | { |
| | | db.Insertable(loginlog).ExecuteCommand(); |
| | | |
| | | if (logininfo != null) |
| | | { |
| | | var deres = db.Storageable(logininfo).ExecuteCommand(); |
| | | } |
| | | res.Data = logininfo; |
| | | }); |
| | | if (!dbTran.IsSuccess) |
| | | { |
| | | res.IsSuccessed = false; |
| | | res.Data = null; |
| | | res.LocaleMsg = L("SYS.Login.isNotOrgCode");//用户没有该据点的权限 |
| | | res.LocaleMsg = L("SYS.Login.dbTranError"); |
| | | } |
| | | res.Data = logininfo; |
| | | } |
| | | else |
| | | { |
| | |
| | | } |
| | | return await Task.FromResult(res); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 切换据点 |
| | | /// </summary> |
| | | /// <param name="action"></param> |
| | | /// <param name="Async"></param> |
| | | /// <returns></returns> |
| | | public async Task<ApiAction> SwitchOrgCode(string token,string org) |
| | | public async Task<ApiAction> BSSwitchOrgCode(string token,string org, string fty) |
| | | { |
| | | var action = new ApiAction(); |
| | | try |
| | |
| | | var query = Db.Queryable<SYS_BS_LOGIN>().Where(x => x.TOKEN == token).First(); |
| | | |
| | | query.ORG_CODE = org; |
| | | query.FTY_CODE = fty; |
| | | var db = Business.Biz.Db; |
| | | var dbTran = db.UseTran(() => |
| | | { |
| | |
| | | /// </summary> |
| | | /// <param name="token"></param> |
| | | /// <returns></returns> |
| | | public async Task<ApiAction> Logout(string token) |
| | | public async Task<ApiAction> BSLogout(string token) |
| | | { |
| | | var res = new ApiAction(); |
| | | try |