From 69ff51968fe04dac0dd702b7b5eed928ad71945b Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期一, 21 十一月 2022 15:10:08 +0800
Subject: [PATCH] MES产品的登陆接口存redis加企业区分
---
VueWebApi/Controllers/LoginController.cs | 211 +++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 196 insertions(+), 15 deletions(-)
diff --git a/VueWebApi/Controllers/LoginController.cs b/VueWebApi/Controllers/LoginController.cs
index 08efa30..9a055cb 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,10 +21,14 @@
//瀹氫箟鍏ㄥ眬淇℃伅杩斿洖鍙橀噺
ToMessage mes = new ToMessage();
RedisHelper redis = new RedisHelper();
+ //鑾峰彇浼佷笟閰嶇疆Enterprise
+ private static readonly string Enterprise = ConfigurationManager.AppSettings["Enterprise"];
- #region[鐢ㄦ埛鐧诲綍]
+
+
+ #region[PC鐢ㄦ埛鐧诲綍]
/// <summary>
- /// 鐢ㄦ埛鐧诲綍
+ /// PC鐢ㄦ埛鐧诲綍
/// </summary>
/// <param name="username">鐢ㄦ埛缂栫爜</param>
/// <param name="password">瀵嗙爜</param>
@@ -31,7 +36,7 @@
/// <returns></returns>
[Route(template: "LoginSave")]
[HttpGet]
- public HttpResponseMessage LoginSave(string username, string password,string usertype)
+ public HttpResponseMessage LoginSave(string username, string password, string usertype)
{
try
{
@@ -40,23 +45,24 @@
{
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.usertype = usertype;
+ ms.rediskey = Enterprise+"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+"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+"LoginUserID" + ms.usertype + ms.userid, ms, redis.secondsTimeOut, 0);
//鐧诲綍淇℃伅鍐欏叆session
HttpContext.Current.Session["User"] = JsonConvert.SerializeObject(ms);
//鍐欏叆鐧诲綍鎿嶄綔璁板綍
@@ -68,9 +74,9 @@
else //濡傛灉瀛樺湪
{
//鑾峰彇redis涓綋鍓嶇敤鎴蜂俊鎭�
- User r_loginUser = redis.Get<User>("LoginUserID" + ms.usertype + ms.userid, 0);
+ User r_loginUser = redis.Get<User>(Enterprise+"LoginUserID" + ms.usertype + ms.userid, 0);
//濡傛灉session涓殑鐢ㄦ埛usercode鍜宺edis涓殑鐢ㄦ埛usercode鍖归厤
- if (r_loginUser.usercode.Equals(loginUser.usercode))
+ if ((r_loginUser.usercode + r_loginUser.usertype).Equals(loginUser.usercode + loginUser.usertype))
{
mes.data = ms;
mes.code = "302";
@@ -79,11 +85,12 @@
else
{
//閲嶇疆杩囨湡鏃堕棿(娉ㄦ剰锛歳edis绫婚噷闈㈢殑澶辨晥鏃堕棿蹇呴』鍦╧ey鍒涘缓瀹屾垚涔嬪悗鎵嶇敓鏁�)
- redis.Set<User>("LoginUserID" + ms.usertype + loginUser.userid, loginUser, redis.secondsTimeOut, 0);
+ redis.Set<User>(Enterprise+"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.data = ms;
mes.code = "200";
mes.Message = "鐧诲綍鎴愬姛!";
}
@@ -120,14 +127,28 @@
/// <param name="usercode">鐢ㄦ埛缂栫爜</param>
/// <param name="username">鐢ㄦ埛鍚�</param>
/// <param name="usertype">鎿嶄綔绔疨C/APP</param>
+ /// <param name="rid">rid鏋佸厜鎺ㄩ�佽幏鍙栬澶噄d</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 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";
+ list.Add(new { str = sql, parm = new { rid = rid, usercode = username } });
+ bool aa = DapperHelper.DoTransaction(list);
+ redis.Remove(Enterprise+"LoginUserID" + usertype + userid, 1); //鍒犻櫎redis
+ }
+ else
+ {
+ redis.Remove(Enterprise+"LoginUserID" + usertype + userid, 0); //鍒犻櫎redis
+ }
mes.code = "200";
mes.count = 0;
mes.Message = "寮哄埗涓嬬嚎鎴愬姛!";
@@ -149,14 +170,15 @@
/// 鏌ヨ鐧诲綍鑿滃崟
/// </summary>
/// <param name="usertype">鎿嶄綔绔被鍨�(PC APP)</param>
+ /// <param name="usercode">鐧诲綍鐢ㄦ埛缂栫爜</param>
/// <returns></returns>
[Route(template: "LoginMenu")]
[HttpGet]
- public HttpResponseMessage LoginMenu(string usertype)
+ public HttpResponseMessage LoginMenu(string usertype, string usercode)
{
try
{
- var usercode = HttpContext.Current.Request.Cookies["navTabId"].Value.ToString();
+ //var usercode = HttpContext.Current.Request.Cookies["navTabId"].Value.ToString();
mes = LoginBLL.LoginMenu(usercode, usertype);
}
catch (Exception e)
@@ -186,9 +208,9 @@
}
#endregion
- #region[鐧诲嚭]
+ #region[PC鐧诲嚭]
/// <summary>
- /// 鐧诲嚭
+ /// PC鐧诲嚭
/// </summary>
/// <param name="userid">鐢ㄦ埛id</param>
/// <param name="usercode">鐢ㄦ埛缂栫爜</param>
@@ -200,9 +222,168 @@
[ChannelActionFilter]
public HttpResponseMessage LoginOut(int userid, string usercode, string username, string usertype)
{
+ var sql = "";
+ List<object> list = new List<object>();
mes = LoginBLL.LoginOut(userid, usercode, username, usertype);
return mes.ResponseMess(mes);
}
#endregion
+
+
+ #region[APP鐢ㄦ埛鐧诲綍]
+ /// <summary>
+ /// APP鐢ㄦ埛鐧诲綍
+ /// </summary>
+ /// <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, string rid)
+ {
+ var sql = "";
+ List<object> list = new List<object>();
+ try
+ {
+ DataTable dt = LoginBLL.LoginSearch(username, password);
+ if (dt.Rows.Count > 0)
+ {
+ List<User> mss = new List<User>();
+ User ms = new User();
+ 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.usertype = usertype;
+ ms.rediskey = Enterprise+"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+"LoginUserID" + ms.usertype + ms.userid, 1) == null)
+ {
+ //鍐欏叆redis(娉ㄦ剰锛歳edis绫婚噷闈㈢殑澶辨晥鏃堕棿蹇呴』鍦╧ey鍒涘缓瀹屾垚涔嬪悗鎵嶇敓鏁�)
+ redis.Set<User>(Enterprise+"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";
+ list.Add(new { str = sql, parm = new { rid = rid, usercode = username } });
+ bool aa = DapperHelper.DoTransaction(list);
+ //鍐欏叆鐧诲綍鎿嶄綔璁板綍
+ mes = LoginBLL.LoginBas(ms.usercode, ms.usertype);
+ mes.code = "200";
+ mes.Message = "鐧诲綍鎴愬姛!";
+ mes.data = ms;
+ }
+ else //濡傛灉瀛樺湪
+ {
+ //鑾峰彇redis涓綋鍓嶇敤鎴蜂俊鎭�
+ User r_loginUser = redis.Get<User>(Enterprise+"LoginUserID" + ms.usertype + ms.userid, 1);
+ //濡傛灉session涓殑鐢ㄦ埛usercode鍜宺edis涓殑鐢ㄦ埛usercode鍖归厤
+ if ((r_loginUser.usercode + r_loginUser.usertype).Equals(loginUser.usercode + loginUser.usertype))
+ {
+ mes.data = ms;
+ mes.code = "302";
+ mes.Message = "褰撳墠璐﹀彿宸茬櫥褰�,鏄惁寮哄埗涓嬬嚎!";
+ }
+ else
+ {
+ //閲嶇疆杩囨湡鏃堕棿(娉ㄦ剰锛歳edis绫婚噷闈㈢殑澶辨晥鏃堕棿蹇呴』鍦╧ey鍒涘缓瀹屾垚涔嬪悗鎵嶇敓鏁�)
+ redis.Set<User>(Enterprise+"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";
+ list.Add(new { str = sql, parm = new { rid = rid, usercode = username } });
+ bool aa = DapperHelper.DoTransaction(list);
+ //鍐欏叆鐧诲綍鎿嶄綔璁板綍
+ mes = LoginBLL.LoginBas(ms.usercode, ms.usertype);
+ mes.data = ms;
+ mes.code = "200";
+ mes.Message = "鐧诲綍鎴愬姛!";
+ }
+ }
+
+
+ ////鍐欏叆鐧诲綍鎿嶄綔璁板綍
+ //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
+ {
+ mes.code = "300";
+ mes.Message = "璐﹀彿鎴栧瘑鐮佷笉姝g‘!";
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.Message = e.Message;
+ }
+
+ return mes.ResponseMess(mes);
+ }
+ #endregion
+
+ #region[APP鐧诲嚭]
+ /// <summary>
+ /// APP鐧诲嚭
+ /// </summary>
+ /// <param name="userid">鐢ㄦ埛id</param>
+ /// <param name="usercode">鐢ㄦ埛缂栫爜</param>
+ /// <param name="username">鐢ㄦ埛鍚�</param>
+ /// <param name="usertype">鎿嶄綔绔疨C/APP</param>
+ /// <returns></returns>
+ [Route(template: "LoginAppOut")]
+ [HttpPost]
+ public HttpResponseMessage LoginAppOut(int userid, string usercode, string username, string usertype)
+ {
+ mes = LoginBLL.LoginAppOut(userid, usercode, username, usertype);
+ 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>
+ /// <returns></returns>
+ [Route(template: "LoginAppAnDonMessage")]
+ [HttpPost]
+ public HttpResponseMessage LoginAppAnDonMessage(string rid, string usercode, string username, string usertype)
+ {
+ mes = LoginBLL.LoginAppAnDonMessage(rid, usercode, username, usertype);
+ return TJson.toJson(mes);
+ //return mes.ResponseMess(mes);
+ }
+ #endregion
+
+
}
}
\ No newline at end of file
--
Gitblit v1.9.3