From 3cab868262d5e84cd1000851c07cce43a459f3ea Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期四, 29 八月 2024 20:49:54 +0800 Subject: [PATCH] 增加CS客户端登录逻辑 --- Tiger.Business/SYS/Biz.SYS_BS_LOGIN.cs | 120 +++++++++++++++++++++++++++++++++--------------------------- 1 files changed, 66 insertions(+), 54 deletions(-) diff --git a/Tiger.Business/SYS/Biz.SYS_BS_LOGIN.cs b/Tiger.Business/SYS/Biz.SYS_BS_LOGIN.cs index b8e77c3..57eb9f7 100644 --- a/Tiger.Business/SYS/Biz.SYS_BS_LOGIN.cs +++ b/Tiger.Business/SYS/Biz.SYS_BS_LOGIN.cs @@ -7,6 +7,7 @@ using System.Threading.Tasks; using Rhea.Common; using Tiger.IBusiness; +using Dm.filter.log; namespace Tiger.Business { @@ -18,7 +19,7 @@ /// <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 @@ -69,7 +70,7 @@ /// <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 @@ -81,63 +82,72 @@ { 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 { @@ -159,13 +169,14 @@ } 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 @@ -174,6 +185,7 @@ 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(() => { @@ -198,7 +210,7 @@ /// </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 -- Gitblit v1.9.3