From 6fe3d6fc4e93f4cf31dc02d4f0cbc48d56c249b7 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期五, 30 六月 2023 13:35:23 +0800
Subject: [PATCH] 多车间模式接口过滤

---
 VueWebApi/Controllers/LoginController.cs |  199 ++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 177 insertions(+), 22 deletions(-)

diff --git a/VueWebApi/Controllers/LoginController.cs b/VueWebApi/Controllers/LoginController.cs
index 5852567..5d97751 100644
--- a/VueWebApi/Controllers/LoginController.cs
+++ b/VueWebApi/Controllers/LoginController.cs
@@ -1,6 +1,7 @@
 锘縰sing Newtonsoft.Json;
 using System;
 using System.Collections.Generic;
+using System.Configuration;
 using System.Data;
 using System.Linq;
 using System.Net;
@@ -20,6 +21,10 @@
         //瀹氫箟鍏ㄥ眬淇℃伅杩斿洖鍙橀噺
         ToMessage mes = new ToMessage();
         RedisHelper redis = new RedisHelper();
+        //鑾峰彇浼佷笟閰嶇疆Enterprise
+        private static readonly string Enterprise = ConfigurationManager.AppSettings["Enterprise"];
+
+
 
         #region[PC鐢ㄦ埛鐧诲綍]
         /// <summary>
@@ -40,28 +45,29 @@
                 {
                     List<User> mss = new List<User>();
                     User ms = new User();
-                    ms.guid = username + password + Guid.NewGuid().ToString();
+                    ms.guid = usertype+username + password + Guid.NewGuid().ToString();
                     ms.userid = Convert.ToInt32(dt.Rows[0]["ID"].ToString());
                     ms.usercode = dt.Rows[0]["USERCODE"].ToString();
                     ms.username = dt.Rows[0]["USERNAME"].ToString();
                     ms.password = dt.Rows[0]["PASSWORD"].ToString();
+                    ms.stu_torgcode= dt.Rows[0]["org_code"].ToString();
+                    ms.description = dt.Rows[0]["description"].ToString()==null?"": dt.Rows[0]["description"].ToString();
+                    ms.stu_torgname= dt.Rows[0]["org_name"].ToString();
                     ms.usertype = usertype;
-                    ms.rediskey = "LoginUserID" + ms.usertype + ms.userid;
+                    ms.rediskey = Enterprise+ms.stu_torgcode+"LoginUserID" + ms.usertype + ms.userid;
                     mss.Add(ms);
                     HttpContext.Current.Session.Clear(); //浠庝細璇濈姸鎬侀泦鍚堜腑鍒犻櫎鎵�鏈夌殑閿��
-                    //HttpContext.Current.Session["User"] = JsonConvert.SerializeObject(ms);
-                    //User loginUser = JsonConvert.DeserializeObject<User>(HttpContext.Current.Session["User"].ToString());
                     User loginUser = JsonConvert.DeserializeObject<User>(JsonConvert.SerializeObject(ms));
                     //濡傛灉redis鐧诲綍鐢ㄦ埛涓笉瀛樺湪褰撳墠鐢ㄦ埛
-                    if (redis.Get<User>("LoginUserID" + ms.usertype + ms.userid, 0) == null)
+                    if (redis.Get<User>(Enterprise+ms.stu_torgcode+"LoginUserID" + ms.usertype + ms.userid, 0) == null)
                     {
                         //redis.Remove("LoginUserID" + ms.userid, 0);
                         //鍐欏叆redis(娉ㄦ剰锛歳edis绫婚噷闈㈢殑澶辨晥鏃堕棿蹇呴』鍦╧ey鍒涘缓瀹屾垚涔嬪悗鎵嶇敓鏁�)
-                        redis.Set<User>("LoginUserID" + ms.usertype + ms.userid, ms, redis.secondsTimeOut, 0);
+                        redis.Set<User>(Enterprise+ms.stu_torgcode+"LoginUserID" + ms.usertype + ms.userid, ms, redis.secondsTimeOut, 0);
                         //鐧诲綍淇℃伅鍐欏叆session
                         HttpContext.Current.Session["User"] = JsonConvert.SerializeObject(ms);
                         //鍐欏叆鐧诲綍鎿嶄綔璁板綍
-                        mes = LoginBLL.LoginBas(ms.usercode, ms.usertype);
+                        mes = LoginBLL.LoginBas(ms.usercode, ms.usertype, ms.stu_torgcode);
                         mes.code = "200";
                         mes.Message = "鐧诲綍鎴愬姛!";
                         mes.data = ms;
@@ -69,9 +75,9 @@
                     else //濡傛灉瀛樺湪
                     {
                         //鑾峰彇redis涓綋鍓嶇敤鎴蜂俊鎭�
-                        User r_loginUser = redis.Get<User>("LoginUserID" + ms.usertype + ms.userid, 0);
+                        User r_loginUser = redis.Get<User>(Enterprise+ ms.stu_torgcode + "LoginUserID" + ms.usertype + ms.userid, 0);
                         //濡傛灉session涓殑鐢ㄦ埛usercode鍜宺edis涓殑鐢ㄦ埛usercode鍖归厤
-                        if ((r_loginUser.usercode + r_loginUser.usertype).Equals(loginUser.usercode + loginUser.usertype))
+                        if ((r_loginUser.stu_torgcode+r_loginUser.usercode + r_loginUser.usertype).Equals(loginUser.stu_torgcode+loginUser.usercode + loginUser.usertype))
                         {
                             mes.data = ms;
                             mes.code = "302";
@@ -80,11 +86,12 @@
                         else
                         {
                             //閲嶇疆杩囨湡鏃堕棿(娉ㄦ剰锛歳edis绫婚噷闈㈢殑澶辨晥鏃堕棿蹇呴』鍦╧ey鍒涘缓瀹屾垚涔嬪悗鎵嶇敓鏁�)
-                            redis.Set<User>("LoginUserID" + ms.usertype + loginUser.userid, loginUser, redis.secondsTimeOut, 0);
+                            redis.Set<User>(Enterprise+ ms.stu_torgcode + "LoginUserID" + ms.usertype + loginUser.userid, loginUser, redis.secondsTimeOut, 0);
                             //鐧诲綍淇℃伅鍐欏叆session
                             HttpContext.Current.Session["User"] = JsonConvert.SerializeObject(ms);
                             //鍐欏叆鐧诲綍鎿嶄綔璁板綍
-                            mes = LoginBLL.LoginBas(ms.usercode, ms.usertype);
+                            mes = LoginBLL.LoginBas(ms.usercode, ms.usertype, ms.stu_torgcode);
+                            mes.data = ms;
                             mes.code = "200";
                             mes.Message = "鐧诲綍鎴愬姛!";
                         }
@@ -121,14 +128,29 @@
         /// <param name="usercode">鐢ㄦ埛缂栫爜</param>
         /// <param name="username">鐢ㄦ埛鍚�</param>
         /// <param name="usertype">鎿嶄綔绔疨C/APP</param>
+        /// <param name="rid">rid鏋佸厜鎺ㄩ�佽幏鍙栬澶噄d</param>
+        /// <param name="stu_torgcode">鎵�灞炵粍缁囩紪鐮�</param>
         /// <returns></returns>
         [Route(template: "ForcedOffline")]
         [HttpPost]
-        public HttpResponseMessage ForcedOffline(int userid, string usercode, string username, string usertype)
+        public HttpResponseMessage ForcedOffline(int userid, string usercode, string username, string usertype,string rid,string stu_torgcode)
         {
+            string sql="";
+            List<object> list = new List<object>();
             try
             {
-                redis.Remove("LoginUserID" + usertype + userid, 0); //鍒犻櫎redis
+                if (usertype == "APP")
+                {
+                    //鏇存柊rid
+                    sql = @"update [dbo].[TUser] set rid=@rid where usercode=@usercode and stu_torgcode=@stu_torgcode";
+                    list.Add(new { str = sql, parm = new { rid = rid, usercode = username, stu_torgcode= stu_torgcode } });
+                    bool aa = DapperHelper.DoTransaction(list);
+                    redis.Remove(Enterprise+ stu_torgcode + "LoginUserID" + usertype + userid, 1); //鍒犻櫎redis
+                }
+                else 
+                {
+                    redis.Remove(Enterprise+ stu_torgcode + "LoginUserID" + usertype + userid, 0); //鍒犻櫎redis
+                }
                 mes.code = "200";
                 mes.count = 0;
                 mes.Message = "寮哄埗涓嬬嚎鎴愬姛!";
@@ -196,13 +218,16 @@
         /// <param name="usercode">鐢ㄦ埛缂栫爜</param>
         /// <param name="username">鐢ㄦ埛鍚�</param>
         /// <param name="usertype">鎿嶄綔绔疨C/APP</param>
+        /// <param name="stu_torgcode">鎵�灞炵粍缁囩紪鐮�</param>
         /// <returns></returns>
         [Route(template: "LoginOut")]
         [HttpPost]
         [ChannelActionFilter]
-        public HttpResponseMessage LoginOut(int userid, string usercode, string username, string usertype)
+        public HttpResponseMessage LoginOut(int userid, string usercode, string username, string usertype,string stu_torgcode)
         {
-            mes = LoginBLL.LoginOut(userid, usercode, username, usertype);
+            var sql = "";
+            List<object> list = new List<object>();
+            mes = LoginBLL.LoginOut(userid, usercode, username, usertype, stu_torgcode);
             return mes.ResponseMess(mes);
         }
         #endregion
@@ -215,11 +240,14 @@
         /// <param name="username">鐢ㄦ埛缂栫爜</param>
         /// <param name="password">瀵嗙爜</param>
         /// <param name="usertype">鎿嶄綔绔被鍨�(PC APP)</param>
+        /// <param name="rid">鏋佸厜鎺ㄩ�佽幏鍙栬澶囩殑id(鍞竴)</param>
         /// <returns></returns>
         [Route(template: "LoginAppSave")]
         [HttpGet]
-        public HttpResponseMessage LoginAppSave(string username, string password, string usertype)
+        public HttpResponseMessage LoginAppSave(string username, string password, string usertype, string rid)
         {
+            var sql = "";
+            List<object> list = new List<object>();
             try
             {
                 DataTable dt = LoginBLL.LoginSearch(username, password);
@@ -227,17 +255,87 @@
                 {
                     List<User> mss = new List<User>();
                     User ms = new User();
-                    ms.guid = username + password + Guid.NewGuid().ToString();
+                    ms.guid = usertype+username + password + Guid.NewGuid().ToString();
                     ms.userid = Convert.ToInt32(dt.Rows[0]["ID"].ToString());
                     ms.usercode = dt.Rows[0]["USERCODE"].ToString();
                     ms.username = dt.Rows[0]["USERNAME"].ToString();
                     ms.password = dt.Rows[0]["PASSWORD"].ToString();
+                    ms.stu_torgcode = dt.Rows[0]["org_code"].ToString();
+                    ms.description = dt.Rows[0]["description"].ToString() == null ? "" : dt.Rows[0]["description"].ToString();
+                    ms.stu_torgname = dt.Rows[0]["org_name"].ToString();
                     ms.usertype = usertype;
+                    ms.rediskey = Enterprise+ ms.stu_torgcode + "LoginUserID" + ms.usertype + ms.userid;
                     mss.Add(ms);
+                    HttpContext.Current.Session.Clear(); //浠庝細璇濈姸鎬侀泦鍚堜腑鍒犻櫎鎵�鏈夌殑閿��
+                    User loginUser = JsonConvert.DeserializeObject<User>(JsonConvert.SerializeObject(ms));
+                    //濡傛灉redis鐧诲綍鐢ㄦ埛涓笉瀛樺湪褰撳墠鐢ㄦ埛
+                    if (redis.Get<User>(Enterprise+ ms.stu_torgcode + "LoginUserID" + ms.usertype + ms.userid, 1) == null)
+                    {
+                        //鍐欏叆redis(娉ㄦ剰锛歳edis绫婚噷闈㈢殑澶辨晥鏃堕棿蹇呴』鍦╧ey鍒涘缓瀹屾垚涔嬪悗鎵嶇敓鏁�)
+                        redis.Set<User>(Enterprise+ ms.stu_torgcode + "LoginUserID" + ms.usertype + ms.userid, ms, redis.secondsTimeOut, 1);
+                        //鐧诲綍淇℃伅鍐欏叆session
+                        HttpContext.Current.Session["User"] = JsonConvert.SerializeObject(ms);
+                        //鏇存柊rid
+                        sql = @"update [dbo].[TUser] set rid=@rid where usercode=@usercode and stu_torgcode=@stu_torgcode";
+                        list.Add(new { str = sql, parm = new { rid = rid, usercode = username, stu_torgcode= ms.stu_torgcode } });
+                        bool aa = DapperHelper.DoTransaction(list);
+                        //鍐欏叆鐧诲綍鎿嶄綔璁板綍
+                        mes = LoginBLL.LoginBas(ms.usercode, ms.usertype, ms.stu_torgcode);
+                        mes.code = "200";
+                        mes.Message = "鐧诲綍鎴愬姛!";
+                        mes.data = ms;
+                    }
+                    else //濡傛灉瀛樺湪
+                    {
+                        //鑾峰彇redis涓綋鍓嶇敤鎴蜂俊鎭�
+                        User r_loginUser = redis.Get<User>(Enterprise+ ms.stu_torgcode + "LoginUserID" + ms.usertype + ms.userid, 1);
+                        //濡傛灉session涓殑鐢ㄦ埛usercode鍜宺edis涓殑鐢ㄦ埛usercode鍖归厤
+                        if ((r_loginUser.stu_torgcode+r_loginUser.usercode + r_loginUser.usertype).Equals(loginUser.stu_torgcode+loginUser.usercode + loginUser.usertype))
+                        {
+                            mes.data = ms;
+                            mes.code = "302";
+                            mes.Message = "褰撳墠璐﹀彿宸茬櫥褰�,鏄惁寮哄埗涓嬬嚎!";
+                        }
+                        else
+                        {
+                            //閲嶇疆杩囨湡鏃堕棿(娉ㄦ剰锛歳edis绫婚噷闈㈢殑澶辨晥鏃堕棿蹇呴』鍦╧ey鍒涘缓瀹屾垚涔嬪悗鎵嶇敓鏁�)
+                            redis.Set<User>(Enterprise+ ms.stu_torgcode + "LoginUserID" + ms.usertype + loginUser.userid, loginUser, redis.secondsTimeOut, 1);
+                            //鐧诲綍淇℃伅鍐欏叆session
+                            HttpContext.Current.Session["User"] = JsonConvert.SerializeObject(ms);
+                            //鏇存柊rid
+                            sql = @"update [dbo].[TUser] set rid=@rid where usercode=@usercode and stu_torgcode=@stu_torgcode";
+                            list.Add(new { str = sql, parm = new { rid = rid, usercode = username, stu_torgcode= ms.stu_torgcode } });
+                            bool aa = DapperHelper.DoTransaction(list);
+                            //鍐欏叆鐧诲綍鎿嶄綔璁板綍
+                            mes = LoginBLL.LoginBas(ms.usercode, ms.usertype, ms.stu_torgcode);
+                            mes.data = ms;
+                            mes.code = "200";
+                            mes.Message = "鐧诲綍鎴愬姛!";
+                        }
+                    }
 
-                    mes.code = "200";
-                    mes.Message = "鐧诲綍鎴愬姛!";
-                    mes.data = ms;
+
+                    ////鍐欏叆鐧诲綍鎿嶄綔璁板綍
+                    //mes = LoginBLL.LoginBas(username, usertype);
+                    ////鏇存柊rid
+                    //sql = @"update [dbo].[TUser] set rid=@rid where usercode=@usercode";
+                    //list.Add(new { str = sql, parm = new { rid = rid, usercode = username } });
+                    //bool aa = DapperHelper.DoTransaction(list);
+
+                    //List<User> mss = new List<User>();
+                    //User ms = new User();
+                    ////ms.guid = username + password + Guid.NewGuid().ToString();
+                    //ms.guid = rid.ToString();
+                    //ms.userid = Convert.ToInt32(dt.Rows[0]["ID"].ToString());
+                    //ms.usercode = dt.Rows[0]["USERCODE"].ToString();
+                    //ms.username = dt.Rows[0]["USERNAME"].ToString();
+                    //ms.password = dt.Rows[0]["PASSWORD"].ToString();
+                    //ms.usertype = usertype;
+                    //mss.Add(ms);
+
+                    //mes.code = "200";
+                    //mes.Message = "鐧诲綍鎴愬姛!";
+                    //mes.data = ms;
                 }
                 else
                 {
@@ -255,6 +353,40 @@
         }
         #endregion
 
+        #region[APP淇敼瀵嗙爜]
+        /// <summary>
+        /// APP淇敼瀵嗙爜
+        /// </summary>
+        /// <param name="usercode">鐢ㄦ埛缂栫爜</param>
+        /// <param name="username">鐢ㄦ埛鍚嶇О</param>
+        /// <param name="password">瀵嗙爜</param>
+        /// <param name="newpassword">鏂板瘑鐮�</param>
+        /// <returns></returns>
+        [ChannelActionFilterAttributeApp, Route(template: "AppUpdateUserPassword")]
+        [HttpPost]
+        public HttpResponseMessage AppUpdateUserPassword(string usercode, string username, string password, string newpassword)
+        {
+            mes = LoginBLL.AppUpdateUserPassword(usercode, username, password, newpassword);
+            return mes.ResponseMess(mes);
+        }
+        #endregion
+
+        #region[APP瀵嗙爜閲嶇疆]
+        /// <summary>
+        /// APP瀵嗙爜閲嶇疆
+        /// </summary>
+        /// <param name="usercode">鐢ㄦ埛缂栧彿</param>
+        /// <param name="username">鐢ㄦ埛鍚嶇О</param>
+        /// <returns></returns>
+        [ChannelActionFilterAttributeApp, Route(template: "ResettUserPassword")]
+        [HttpPost]
+        public HttpResponseMessage ResettUserPassword(string usercode, string username)
+        {
+            mes = LoginBLL.ResettUserPassword(usercode, username);
+            return mes.ResponseMess(mes);
+        }
+        #endregion
+
         #region[APP鐧诲嚭]
         /// <summary>
         /// APP鐧诲嚭
@@ -263,14 +395,37 @@
         /// <param name="usercode">鐢ㄦ埛缂栫爜</param>
         /// <param name="username">鐢ㄦ埛鍚�</param>
         /// <param name="usertype">鎿嶄綔绔疨C/APP</param>
+        /// <param name="stu_torgcode">鎵�灞炵粍缁囩紪鐮�</param>
         /// <returns></returns>
         [Route(template: "LoginAppOut")]
         [HttpPost]
-        public HttpResponseMessage LoginAppOut(int userid, string usercode, string username, string usertype)
+        public HttpResponseMessage LoginAppOut(int userid, string usercode, string username, string usertype,string stu_torgcode)
         {
-            mes = LoginBLL.LoginAppOut(userid, usercode, username, usertype);
+            mes = LoginBLL.LoginAppOut(userid, usercode, username, usertype, stu_torgcode);
             return mes.ResponseMess(mes);
         }
         #endregion
+
+        #region[App鐧诲綍鏌ヨ瀹夌伅鍛煎彨淇℃伅]
+        /// <summary>
+        /// App鐧诲綍鏌ヨ瀹夌伅鍛煎彨淇℃伅
+        /// </summary>
+        /// <param name="rid">鎵嬫満璁惧id(鏋佸厜鐢熸垚)</param>
+        /// <param name="usercode">鐢ㄦ埛缂栫爜</param>
+        /// <param name="username">鐢ㄦ埛鍚嶇О</param>
+        /// <param name="usertype">鎿嶄綔绔疨C/APP</param>
+        /// <param name="stu_torgcode">鎵�灞炵紪鐮佺粍缁�</param>
+        /// <param name="stu_torgtypecode">鎵�灞炵粍缁囩被鍨�</param>
+        /// <returns></returns>
+        [Route(template: "LoginAppAnDonMessage")]
+        [HttpPost]
+        public HttpResponseMessage LoginAppAnDonMessage(string rid, string usercode, string username, string usertype,string stu_torgcode,string stu_torgtypecode)
+        {
+            mes = LoginBLL.LoginAppAnDonMessage(rid, usercode, username, usertype, stu_torgcode, stu_torgtypecode);
+            return TJson.toJson(mes);
+            //return mes.ResponseMess(mes);
+        }
+        #endregion
+
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3