From dc00dcd986589c2f19160e711b819f1080576344 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期三, 05 六月 2024 14:14:35 +0800
Subject: [PATCH] 登录更新

---
 Tiger.Api/Controllers/SYS/SYSController.Org.cs |   12 +++
 Tiger.Business/SYS/Biz.SYS_BS_LOGIN.cs         |  111 +++++++++++++++------------
 Tiger.Model.Net/Entitys/SYS/USER.cs            |    1 
 Tiger.Model.Net/Entitys/BAS/BAS_ITEM.cs        |    5 -
 Tiger.Model.Net/Entitys/SYS/RoleListItem.cs    |    1 
 Tiger.Business/SYS/Biz.SYS_ORGANIZATION.cs     |   47 +++++++++++
 Tiger.IBusiness/Common/ISystem.cs              |    5 +
 Tiger.Business/SYS/Biz.SYS_ROLE.cs             |   37 +++++++++
 8 files changed, 164 insertions(+), 55 deletions(-)

diff --git a/Tiger.Api/Controllers/SYS/SYSController.Org.cs b/Tiger.Api/Controllers/SYS/SYSController.Org.cs
index 32b92bd..028aaf9 100644
--- a/Tiger.Api/Controllers/SYS/SYSController.Org.cs
+++ b/Tiger.Api/Controllers/SYS/SYSController.Org.cs
@@ -22,5 +22,17 @@
         {
             return Ok(await DI.Resolve<ISystem>().getOrgTreeList(deptName, status));
         }
+
+        /// <summary>
+        /// 鑾峰彇宸ュ巶鏍戝舰鍒楄〃
+        /// </summary>
+        /// <param name="deptName"></param>
+        /// <param name="status"></param>
+        /// <returns></returns>
+        [HttpGet]
+        public async Task<IActionResult> getProdTreeList(string deptName)
+        {
+            return Ok(await DI.Resolve<ISystem>().getProdTreeList(deptName));
+        }
     }
 }
diff --git a/Tiger.Business/SYS/Biz.SYS_BS_LOGIN.cs b/Tiger.Business/SYS/Biz.SYS_BS_LOGIN.cs
index b8e77c3..9c0263f 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
 {
@@ -81,63 +82,73 @@
                 {
                     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)
+                        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
                         {
-                            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
                     {
diff --git a/Tiger.Business/SYS/Biz.SYS_ORGANIZATION.cs b/Tiger.Business/SYS/Biz.SYS_ORGANIZATION.cs
index 534c15a..0a903c6 100644
--- a/Tiger.Business/SYS/Biz.SYS_ORGANIZATION.cs
+++ b/Tiger.Business/SYS/Biz.SYS_ORGANIZATION.cs
@@ -98,9 +98,56 @@
             }
         }
 
+        public async Task<string> getProdTreeList(string prodName)
+        {
+            var data = new List<OrgItem>();
+            MES_FACTORY func = null;
+            if (!string.IsNullOrEmpty(prodName))
+            {
+                func = Biz.Db.Queryable<MES_FACTORY>().Where(x => x.FTY_CODE == prodName).First();
+            }
+            var items = await Biz.Db.Queryable<MES_FACTORY>()
+                .Distinct().ToListAsync();
+            //娌℃湁鏌ヨ鐨勬椂鍊�
+            if (func == null)
+            {
+                int i = 0;
+                foreach (var item in items)
+                {
+                    OrgItem deptItem = new();
+                    deptItem.id = item.ID;
+                    deptItem.deptCode = item.FTY_CODE;
+                    deptItem.deptName = item.FTY_NAME;
+                    deptItem.PARENT = "";
+                    deptItem.createTime = item.CREATE_TIME.ToString("yyyy-MM-dd mm:dd:ss");
+                    deptItem.status = 0;
+                    deptItem.remark = item.REMARK;
+                    deptItem.orderNo = i++;
+                    deptItem.children = new();
+                    deptItem.DefaultApi = "";
+                    data.Add(deptItem);
+                }
+            }
+            //鏈夋煡璇㈡潯浠剁殑鏃跺��
+            else
+            {
+
+            }
+
+            //string where = page.sqlcmd;
+            //action.Data = isAsync ? await Db.Queryable<T>().Where(where).ToPageAsync(page.pageIndex, page.pageSize) : Db.Queryable<T>().Where(where).ToPage(page.pageIndex, page.pageSize);
+            //action.Data.draw = page.draw;
+            //action.Message = $"Query {typeof(T).Name} entity page from database success";
+
+            //杞崲Json鏃讹紝鍘婚櫎鍊间负null鐨勫睘鎬�
+            var jsonSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
+            var json = JsonConvert.SerializeObject(data, Formatting.Indented, jsonSetting);
+            return json;
+        }
 
     }
 
+
     /// <summary>
     /// 閮ㄩ棬鏍戝舰鍒楄〃
     /// </summary>
diff --git a/Tiger.Business/SYS/Biz.SYS_ROLE.cs b/Tiger.Business/SYS/Biz.SYS_ROLE.cs
index 52c6484..71f431e 100644
--- a/Tiger.Business/SYS/Biz.SYS_ROLE.cs
+++ b/Tiger.Business/SYS/Biz.SYS_ROLE.cs
@@ -128,6 +128,35 @@
                     }
                 }
 
+                //淇濆瓨瑙掕壊宸ュ巶
+                List<SYS_ROLE_PROD> rolePrdList = new List<SYS_ROLE_PROD>();
+                if (data.fty.Checked != null)
+                {
+                    foreach (var item in data.fty.Checked)
+                    {
+                        SYS_ROLE_PROD roleFty = new()
+                        {
+                            ROLE_CODE = func.ID,
+                            PROD_CODE = item,
+                            HALF_CHECK = "N"
+                        };
+                        rolePrdList.Add(roleFty);
+                    }
+                }
+                if (data.fty.halfChecked != null)
+                {
+                    foreach (var item in data.fty.halfChecked)
+                    {
+                        SYS_ROLE_PROD roleFty = new()
+                        {
+                            ROLE_CODE = func.ID,
+                            PROD_CODE = item,
+                            HALF_CHECK = "Y"
+                        };
+                        rolePrdList.Add(roleFty);
+                    }
+                }
+
                 //淇濆瓨鍒版暟鎹簱
                 var db = Business.Biz.Db;
                 var dbTran = db.UseTran(() =>
@@ -159,6 +188,14 @@
                         }
                         db.Storageable(roleOrgList, "system").ExecuteCommand();
                     }
+                    if (rolePrdList.Count > 0)
+                    {
+                        if (!string.IsNullOrEmpty(data.ID))
+                        {
+                            db.Deleteable<SYS_ROLE_PROD>().Where(x => x.ROLE_CODE == data.ID).ExecuteCommand();
+                        }
+                        db.Storageable(rolePrdList, "system").ExecuteCommand();
+                    }
                     if (roleWhList.Count > 0)
                     {
                         if (!string.IsNullOrEmpty(data.ID))
diff --git a/Tiger.IBusiness/Common/ISystem.cs b/Tiger.IBusiness/Common/ISystem.cs
index f5e3fe2..d149fbf 100644
--- a/Tiger.IBusiness/Common/ISystem.cs
+++ b/Tiger.IBusiness/Common/ISystem.cs
@@ -40,6 +40,11 @@
         /// <returns></returns>
         public Task<string> getOrgTreeList(string orgName, string status);
         /// <summary>
+        /// 鑾峰彇鎵�鏈夊伐鍘傚垪琛�
+        /// </summary>
+        /// <returns></returns>
+        public Task<string> getProdTreeList(string orgName);
+        /// <summary>
         /// 鑾峰彇鑿滃崟鍒楄〃
         /// </summary>
         /// <param name="userid"></param>
diff --git a/Tiger.Model.Net/Entitys/BAS/BAS_ITEM.cs b/Tiger.Model.Net/Entitys/BAS/BAS_ITEM.cs
index f530d9e..08d0d85 100644
--- a/Tiger.Model.Net/Entitys/BAS/BAS_ITEM.cs
+++ b/Tiger.Model.Net/Entitys/BAS/BAS_ITEM.cs
@@ -104,11 +104,6 @@
         /// </summary>
         public string REMARK { get; set; }
 
-        /// <summary>
-        /// 棰勫瓨澶╂暟
-        /// </summary>
-        public decimal DepositDays { get; set; }
-
         #endregion 鍏叡灞炴��
 
         #region 铏氭嫙灞炴��
diff --git a/Tiger.Model.Net/Entitys/SYS/RoleListItem.cs b/Tiger.Model.Net/Entitys/SYS/RoleListItem.cs
index 489f8ed..8c9508a 100644
--- a/Tiger.Model.Net/Entitys/SYS/RoleListItem.cs
+++ b/Tiger.Model.Net/Entitys/SYS/RoleListItem.cs
@@ -35,6 +35,7 @@
         public string IS_ACTIVE { get; set; }
         public checkedMenu menu { get; set; }
         public checkedMenu org { get; set; }
+        public checkedMenu fty { get; set; }
         public checkedMenu wh { get; set; }
         public bool isUpdate { get; set; }
     }
diff --git a/Tiger.Model.Net/Entitys/SYS/USER.cs b/Tiger.Model.Net/Entitys/SYS/USER.cs
index 18bc603..47710e1 100644
--- a/Tiger.Model.Net/Entitys/SYS/USER.cs
+++ b/Tiger.Model.Net/Entitys/SYS/USER.cs
@@ -23,6 +23,7 @@
         public string ORG_CODE { get; set; }
 
         public string FTY_CODE { get; set; }
+        public string PROD_CODE { get; set; }
         public string Token { get; set; }
     }
 

--
Gitblit v1.9.3