| | |
| | | private static readonly string Enterprise = AppSetting.GetAppSetting("Enterprise"); |
| | | |
| | | |
| | | #region[PC用户登录] |
| | | #region[用户登录(PC)] |
| | | /// <summary> |
| | | /// PC用户登录 |
| | | /// 用户登录(PC) |
| | | /// </summary> |
| | | /// <param name="username">用户编码</param> |
| | | /// <param name="password">密码</param> |
| | | /// <param name="usertype">操作端类型(PC APP)</param> |
| | | /// <param name="usertype">操作端类型(PC)</param> |
| | | /// <returns></returns> |
| | | [Route(template: "LoginSave")] |
| | | [HttpGet] |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region[APP用户登录] |
| | | /// <summary> |
| | | /// APP用户登录 |
| | | /// </summary> |
| | | /// <param name="username">用户编码</param> |
| | | /// <param name="password">密码</param> |
| | | /// <param name="usertype">操作端类型(APP)</param> |
| | | /// <returns></returns> |
| | | [Route(template: "LoginAppSave")] |
| | | [HttpGet] |
| | | public JsonResult LoginAppSave(string username, string password, string usertype) |
| | | { |
| | | try |
| | | { |
| | | Dictionary<string, object> payLoad = new Dictionary<string, object>(); |
| | | mes = LoginBLL.LoginSearch(username, password); |
| | | if (mes.code == "200") |
| | | { |
| | | DataTable dt = (DataTable)mes.data; |
| | | //jwt生成Token前的用户信息 |
| | | payLoad.Add("usercode", dt.Rows[0]["usercode"].ToString()); |
| | | payLoad.Add("username", dt.Rows[0]["username"].ToString()); |
| | | payLoad.Add("storg_code", dt.Rows[0]["storg_code"].ToString()); |
| | | payLoad.Add("storg_name", dt.Rows[0]["storg_name"].ToString()); |
| | | payLoad.Add("is_system_admin", dt.Rows[0]["is_system_admin"].ToString()); |
| | | payLoad.Add("role_code", dt.Rows[0]["role_code"].ToString()); |
| | | payLoad.Add("role_datapermissions", dt.Rows[0]["role_datapermissions"].ToString()); |
| | | payLoad.Add("usertype", usertype); |
| | | payLoad.Add("rediskey", Enterprise + "LoginUserID" + usertype + JwtTools.FindFirstKeyByValue(payLoad, "usercode")); |
| | | //获取jwt生成token |
| | | mes = JwtTools.Encode(payLoad); |
| | | |
| | | List<User> mss = new List<User>(); |
| | | User ms = new User(); |
| | | ms.usercode = dt.Rows[0]["usercode"].ToString(); |
| | | ms.username = dt.Rows[0]["username"].ToString(); |
| | | ms.storg_code = dt.Rows[0]["storg_code"].ToString(); |
| | | ms.storg_name = dt.Rows[0]["storg_name"].ToString(); |
| | | ms.is_system_admin = dt.Rows[0]["is_system_admin"].ToString(); |
| | | ms.role_code = dt.Rows[0]["role_code"].ToString(); |
| | | ms.role_datapermissions = dt.Rows[0]["role_datapermissions"].ToString(); |
| | | ms.usertype = usertype; |
| | | ms.rediskey = Enterprise + "LoginUserID" + ms.usertype + ms.usercode; |
| | | ms.token = mes.data.ToString(); |
| | | mss.Add(ms); |
| | | |
| | | |
| | | User loginUser = JsonConvert.DeserializeObject<User>(JsonConvert.SerializeObject(ms)); |
| | | //如果redis登录用户中不存在当前用户 |
| | | if (redis.Get<User>(ms.rediskey, 0) == null) |
| | | { |
| | | //写入redis(注意:redis类里面的失效时间必须在key创建完成之后才生效) |
| | | redis.Set<User>(ms.rediskey, ms, redis.secondsTimeOut, 0); |
| | | //写入登录操作记录 |
| | | LogHelper.DbOperateLog(ms.usercode, "登录", "登录了系统", ms.usertype); |
| | | mes.code = "200"; |
| | | mes.Message = "登录成功!"; |
| | | mes.data = ms.token.ToString(); |
| | | } |
| | | else //如果存在 |
| | | { |
| | | //获取redis中当前用户信息 |
| | | User r_loginUser = redis.Get<User>(ms.rediskey, 0); |
| | | //如果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 |
| | | } |
| | | else |
| | | { |
| | | //重置过期时间(注意:redis类里面的失效时间必须在key创建完成之后才生效) |
| | | redis.Set<User>(loginUser.rediskey, loginUser, redis.secondsTimeOut, 0); |
| | | //写入登录操作记录 |
| | | LogHelper.DbOperateLog(ms.usercode, "登录", "登录了系统", ms.usertype); |
| | | mes.data = ms; |
| | | mes.code = "200"; |
| | | mes.Message = "登录成功!"; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | mes.code = "300"; |
| | | mes.Message = e.Message; |
| | | mes.data = null; |
| | | } |
| | | |
| | | return Json(mes); |
| | | } |
| | | #endregion |
| | | |
| | | #region[APP密码重置] |
| | | /// <summary> |
| | | /// APP密码重置 |