yl
2024-01-18 8024ec8c0300dcffa0caf4e2a030e068a9051bc2
VueWebCoreApi/Controllers/LoginController.cs
@@ -19,7 +19,7 @@
    {
        //定义全局信息返回变量
        ToMessage mes = new ToMessage();
        RedisHelper redis = new RedisHelper();
        RedisCommon redis = new RedisCommon();
        //获取企业配置Enterprise
        private static readonly string Enterprise = AppSetting.GetAppSetting("Enterprise");
@@ -73,36 +73,36 @@
                    User loginUser = JsonConvert.DeserializeObject<User>(JsonConvert.SerializeObject(ms));
                    //如果redis登录用户中不存在当前用户
                    if (redis.Get<User>(ms.rediskey, 0) == null)
                    if (redis.GetStringKey<User>(ms.rediskey) == null)
                    {
                        //写入redis(注意:redis类里面的失效时间必须在key创建完成之后才生效)
                        redis.Set<User>(ms.rediskey, ms, redis.secondsTimeOut, 0);
                        redis.SetStringKey<User>(ms.rediskey, ms, TimeSpan.FromSeconds(redis.secondsTimeOut));
                        //写入登录操作记录 
                        LogHelper.DbOperateLog(ms.usercode, "登录", "登录了系统", ms.usertype);
                        mes.code = "200";
                        mes.Message = "登录成功!";
                        mes.message = "登录成功!";
                        mes.data = ms.token.ToString();
                    }
                    else //如果存在
                    {
                        //获取redis中当前用户信息
                        User r_loginUser = redis.Get<User>(ms.rediskey, 0);
                        User r_loginUser = redis.GetStringKey<User>(ms.rediskey);
                        //如果session中的用户usercode和redis中的用户usercode匹配
                        if ((r_loginUser.rediskey).Equals(loginUser.rediskey))
                        {
                            mes.data = ms.token.ToString();
                            mes.code = "302";
                            mes.Message = "当前账号已登录,是否强制下线!";
                            mes.message = "当前账号已登录,是否强制下线!";
                        }
                        else
                        {
                            //重置过期时间(注意:redis类里面的失效时间必须在key创建完成之后才生效)
                            redis.Set<User>(loginUser.rediskey, loginUser, redis.secondsTimeOut, 0);
                            redis.SetStringKey<User>(loginUser.rediskey, loginUser, TimeSpan.FromSeconds(redis.secondsTimeOut));
                            //写入登录操作记录
                            LogHelper.DbOperateLog(ms.usercode, "登录", "登录了系统", ms.usertype);
                            mes.data = ms;
                            mes.code = "200";
                            mes.Message = "登录成功!";
                            mes.message = "登录成功!";
                        }
                    }
                }
@@ -110,7 +110,7 @@
            catch (Exception e)
            {
                mes.code = "300";
                mes.Message = e.Message;
                mes.message = e.Message;
                mes.data = null;
            }
@@ -150,26 +150,26 @@
                        }
                    });
                    bool aa = DapperHelper.DoTransaction(list);
                    redis.Remove(us.rediskey, 0);//删除redis
                    redis.Set<User>(us.rediskey, us, redis.secondsTimeOut, 0);//写入redis
                    redis.KeyDelete(us.rediskey);//删除redis
                    redis.SetStringKey<User>(us.rediskey, us, TimeSpan.FromSeconds(redis.secondsTimeOut));//写入redis
                }
                else
                {
                    redis.Remove(us.rediskey, 0);//删除redis
                    redis.Set<User>(us.rediskey, us, redis.secondsTimeOut, 0);//写入redis
                    redis.KeyDelete(us.rediskey);//删除redis
                    redis.SetStringKey<User>(us.rediskey, us, TimeSpan.FromSeconds(redis.secondsTimeOut));//写入redis
                }
                //写入日志
                LogHelper.DbOperateLog(us.usercode, "强制下线", "被强制下线了", us.usertype);
                mes.code = "200";
                mes.count = 0;
                mes.Message = "强制下线成功!";
                mes.message = "强制下线成功!";
                mes.data = null;
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.message = e.Message;
                mes.data = null;
            }
            return Json(mes);
@@ -198,7 +198,7 @@
            catch (Exception e)
            {
                mes.code = "300";
                mes.Message = e.Message;
                mes.message = e.Message;
            }
            return Json(mes);
        }
@@ -288,35 +288,35 @@
                    User loginUser = JsonConvert.DeserializeObject<User>(JsonConvert.SerializeObject(ms));
                    //如果redis登录用户中不存在当前用户
                    if (redis.Get<User>(ms.rediskey, 0) == null)
                    if (redis.GetStringKey<User>(ms.rediskey) == null)
                    {
                        //写入redis(注意:redis类里面的失效时间必须在key创建完成之后才生效)
                        redis.Set<User>(ms.rediskey, ms, redis.secondsTimeOut, 0);
                        redis.SetStringKey<User>(ms.rediskey, ms, TimeSpan.FromSeconds(redis.secondsTimeOut));
                        //写入登录操作记录 
                        LogHelper.DbOperateLog(ms.usercode, "登录", "登录了系统", ms.usertype);
                        mes.code = "200";
                        mes.Message = "登录成功!";
                        mes.message = "登录成功!";
                        mes.data = ms.token.ToString();
                    }
                    else //如果存在
                    {
                        //获取redis中当前用户信息
                        User r_loginUser = redis.Get<User>(ms.rediskey, 0);
                        User r_loginUser = redis.GetStringKey<User>(ms.rediskey);
                        //如果session中的用户usercode和redis中的用户usercode匹配
                        if ((r_loginUser.rediskey).Equals(loginUser.rediskey))
                        {
                            redis.Remove(loginUser.rediskey, 0);//删除redis
                            redis.Set<User>(loginUser.rediskey, ms, redis.secondsTimeOut, 0);//写入redis
                            redis.KeyDelete(loginUser.rediskey);//删除redis
                            redis.SetStringKey<User>(loginUser.rediskey, ms, TimeSpan.FromSeconds(redis.secondsTimeOut));//写入redis
                        }
                        else
                        {
                            //重置过期时间(注意:redis类里面的失效时间必须在key创建完成之后才生效)
                            redis.Set<User>(loginUser.rediskey, loginUser, redis.secondsTimeOut, 0);
                            redis.SetStringKey<User>(loginUser.rediskey, loginUser, TimeSpan.FromSeconds(redis.secondsTimeOut));
                            //写入登录操作记录
                            LogHelper.DbOperateLog(ms.usercode, "登录", "登录了系统", ms.usertype);
                            mes.data = ms;
                            mes.code = "200";
                            mes.Message = "登录成功!";
                            mes.message = "登录成功!";
                        }
                    }
                }
@@ -324,7 +324,7 @@
            catch (Exception e)
            {
                mes.code = "300";
                mes.Message = e.Message;
                mes.message = e.Message;
                mes.data = null;
            }
@@ -369,5 +369,19 @@
            //return mes.ResponseMess(mes);
        }
        #endregion
        #region[App版本升级接口]
        /// <summary>
        /// App版本升级接口
        /// </summary>
        /// <returns></returns>
        [Route(template: "AppUpgrade")]
        [HttpPost]
        public JsonResult AppUpgrade()
        {
            mes = LoginBLL.AppUpgrade();
            return Json(mes);
        }
        #endregion
    }
}