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