/// <summary> /// 用户个人资料 /// </summary> /// <returns></returns> public ActionResult UserInfo() { User user = UserLogic.GetUserById(AuthUser.Id); Device _d = DeviceLogic.GetDeviceByUserId(user.Id); //根据用户查设备 if (_d != null) { user.IMEI = _d.Imei; } //根据用户查绑定医生 if ((user.BingDoctorId ?? 0) > 0) { User dU = UserLogic.GetUserById(user.BingDoctorId.Value); if (dU != null) { user.BindDoctorName = dU.LoginName; } } ViewBag.User = user; if (AuthUser.UserTypeId == 3) { ViewBag.doctor = DoctorLogic.GetDoctorByUserId(AuthUser.Id); } return(View()); }
/// <summary> /// 管理员修改用户信息 /// </summary> /// <returns></returns> public ActionResult EditUserByManage(int userId) { User u = UserLogic.GetUserById(userId); //居民 if (u.UserTypeId == 4) { if ((u.BingDoctorId ?? 0) > 0) { u.BindDoctorName = UserLogic.GetUserById(u.BingDoctorId.Value).LoginName; } Device d = DeviceLogic.GetDeviceByUserId(userId); if (d != null) { u.IMEI = d.Imei; } } ViewBag.User = u; ViewBag.CurUser = AuthUser; //如果是医生,则在查询医生信息 if (u.UserTypeId == 3) { ViewBag.Doctor = DoctorLogic.GetDoctorByUserId(userId); } return(View()); }
/// <summary> /// 医生首页取居民信息 /// </summary> /// <param name="param"></param> /// <returns></returns> public JsonResult AjaxGetUsersByDoctor(LayUIPageParam param) { List <User> users = new List <User>(); users = UserLogic.GetUsersByDoctorId(AuthUser.Id, param.page, param.limit); users.ForEach(p => { Device d = DeviceLogic.GetDeviceByUserId(p.Id); if (d != null) { HealthInfoModel model = HealthData.GetHealthInfo(d.APIDeviceId ?? 0); p.Step = model.Step; p.Heart = model.HeartRate; p.Shrink = model.BloodMax; p.Diastolic = model.BloodMin; p.LastCheckTime = model.LastUpdateTime; } p.HeartValue = p.HeartMin + "-" + p.HeartMax; p.BloodValue = p.BloodMin + "-" + p.BloodMax; p.BloodValue2 = p.BloodMin2 + "-" + p.BloodMax2; }); LayuiPageResult <User> ls = new LayuiPageResult <User>(); ls.count = UserLogic.GetUsersByDoctorIdCount(AuthUser.Id); ls.data = users; ls.code = 0; return(Json(ls)); }
/// <summary> /// 删除用户 /// </summary> /// <param name="userId"></param> /// <returns></returns> public JsonResult DeleteUser(int userId) { BaseResult res = new BaseResult(); User user = UserLogic.GetUserById(userId); //用户不存在 if (user == null) { res.State = State.NotFind; res.Message = "该用户已经不存在了"; return(Json(res)); } //超管不能被删除 if (user.UserTypeId == 1) { res.State = State.NoPower; res.Message = "该账号不能被删除"; return(Json(res)); } //删除医生 if (user.UserTypeId == 3) { int count = DoctorLogic.GetUserCountByDoctorId(user.Id); if (count > 0) { res.State = State.Falid; res.Message = "医生还有绑定的居民,不能被删除!"; return(Json(res)); } else { DoctorLogic.DeleteDoctorByUserId(user.Id); } } //删除用户 if (user.UserTypeId == 4) { //医生登录删除用户为解绑 if (AuthUser.UserTypeId == 3) { UserLogic.UnBindUser(userId); res.State = State.Success; res.Message = "成功解绑用户 " + user.LoginName; } else { Device d = DeviceLogic.GetDeviceByUserId(userId); //删除用户要先去设备平台解绑用户绑定的设备 if (d != null) { //调用接口 } } } UserLogic.DeleteUser(userId); SaveUserLog(AuthUser.LoginName + "删除" + WebHelper.GetUTName(user.UserTypeId.Value) + "(" + user.LoginName + ")成功", LogLevel.Sensitive, AuthUser.LoginName, "DeleteUser", "删除用户"); return(Json(res)); }
/// <summary> /// 绑定设备之前先验证设备是符合绑定的条件 /// </summary> /// <param name="user"></param> /// <param name="imei"></param> /// <returns></returns> public static Device preBindDevice(User user, string ip = "1.1.1.1") { Device _d = DeviceLogic.GetDeviceByUserId(user.Id); //验证设备是否存在 if (!string.IsNullOrWhiteSpace(user.IMEI) && _d == null) { //需先调用设备接口验证 DeviceCheckModel dcm = DeviceData.CheckDevice(user.IMEI, user.APIUserId ?? 0); if (dcm.State != 0 && dcm.State != 1105) { // res.State = State.Falid; string msg = dcm.Message; //res.Message = msg; // SaveUserLog(, LogLevel.Error, user.LoginName, "preBindDevice", "绑定该设备"); LogQueueInfo queue = new LogQueueInfo(); queue.IsSaveDB = true; queue.DbLog = new WebLog { Content = user.LoginName + "绑定设备失败:" + msg, Created = DateTime.Now, UserId = user.Id, UserName = user.LoginName, LogName = msg, LogLevel = (int)LogLevel.Sensitive, ClientIp = ip, Method = "preBindDevice" }; HWebQueue.LogQueue.Enqueue(queue); // return Json(res); return(null); } else { //添加设备表 Device d = new Device { UserId = 0, IconId = 3, Created = DateTime.Now, Imei = user.IMEI, Status = (int)Status.Normal, APIDeviceId = dcm.DeviceId, APIDeviceModel = dcm.Model }; DeviceLogic.SaveDevice(d); // SaveUserLog(AuthUser.LoginName + "为" + user.LoginName + "绑定设备:" + user.IMEI, LogLevel.Error, AuthUser.LoginName, "AjaxEditUser", "绑定设备"); return(d); } } return(null); }
/// <summary> /// 绑定设备之前先验证设备是符合绑定的条件 /// </summary> /// <param name="user"></param> /// <param name="imei"></param> /// <returns></returns> Device preBindDevice(User user) { Device _d = DeviceLogic.GetDeviceByUserId(user.Id); //验证设备是否存在 if (!string.IsNullOrWhiteSpace(user.IMEI) && _d == null) { //需先调用设备接口验证 DeviceCheckModel dcm = DeviceData.CheckDevice(user.IMEI, user.APIUserId ?? 0); if (dcm.State != 0 && dcm.State != 1105) { // res.State = State.Falid; string msg = dcm.Message; //res.Message = msg; SaveUserLog(AuthUser.LoginName + "绑定设备失败:" + msg, LogLevel.Error, AuthUser.LoginName, "preBindDevice", "绑定该设备"); // return Json(res); return(null); } else { //添加设备表 Device d = new Device { UserId = 0, IconId = 3, Created = DateTime.Now, Imei = user.IMEI, Status = (int)Status.Normal, APIDeviceId = dcm.DeviceId, APIDeviceModel = dcm.Model }; DeviceLogic.SaveDevice(d); // SaveUserLog(AuthUser.LoginName + "为" + user.LoginName + "绑定设备:" + user.IMEI, LogLevel.Error, AuthUser.LoginName, "AjaxEditUser", "绑定设备"); return(d); } } return(null); }
/// <summary> /// 获取设备指令列表 /// </summary> /// <param name="type">1用户id,2设备id</param> /// <param name="objId"></param> /// <returns></returns> public JsonResult AjaxGetCmdListAndLog(int type, int objId) { Device d = null; if (type == 1) { d = DeviceLogic.GetDeviceByUserId(objId); } else if (type == 2) { d = DeviceLogic.GetDeviceById(objId); } if (d == null) { return(Json(new BaseResult { State = State.NotFind, Message = "未找到绑定设备" })); } List <CmdConfig> ccList = CmdLogic.GetCmdList(d.APIDeviceModel ?? 0); List <CmdLog> clList = CmdLogic.GetCmdLogs(d.Imei); List <CmdQueue> qList = CmdLogic.GetQueueByDeviceId(d.APIDeviceId ?? 0); foreach (var q in qList) { CmdConfig _c = ccList.FirstOrDefault(p => p.CmdCode == q.CmdCode); if (_c != null) { _c.CmdValue = (q.ExceTime ?? 0).ToString(); } } return(Json(new { State = State.Success, UserName = AuthUser.LoginName, CmdList = ccList, LogList = clList, Imei = d.Imei, DeviceId = d.Id })); }
/// <summary> /// ajax登陆提交 /// </summary> /// <param name="loginName">账号</param> /// <param name="pwd">密码</param> /// <param name="curIp">当前ip</param> /// <returns></returns> public JsonResult AjaxLogin(string loginName, string pwd, string curIp) { Session[ConstVal.SessionIpStr] = curIp; string aesPwd = Encryption.AESEncrypt(pwd); BaseResult res = new BaseResult(); bool isLogin = false;//是否登陆成功 User _u = UserLogic.GetUserByLogin(loginName, aesPwd); if (_u == null) { res.State = State.Falid; res.Message = "账号或密码错误!"; return(Json(res)); } isLogin = _u != null; if (_u.UserTypeId > 3) { //登陆设备系统 LoginModel model = UserData.UserLogin(loginName, pwd); //登陆成功 if (model.State == 0) { //授权 ///FormsAuthentication.SetAuthCookie(loginName, false); // AddAuth(_u.LoginName, _u.UserTypeId.ToString()); res.State = (int)State.Success; _u.APIToken = model.AccessToken; _u.APIUserId = model.Item.UserId; Device d = DeviceLogic.GetDeviceByUserId(_u.Id); if (d != null) { _u.DeviceId = d.Id; } isLogin = true; } else { res.State = State.Falid; res.Message = model.Message; WriteLog("用户" + loginName + "登陆设备系统失败,state:" + model.State + "!"); return(Json(res)); } } //医生,管理员,超级管理员不用登陆设备系统 // isLogin = _u != null && _u.UserTypeId < 4; if (!isLogin) { res.State = State.Falid; res.Message = "账号或密码错误!"; } else { //更新用户登录记录 _u.LastLoginTime = DateTime.Now; _u.LastLoginIp = GetIP(); UserLogic.UpdateUser(_u); WriteLog("用户" + loginName + "登陆设备系统成功!"); AuthUser = _u;//存session } SaveUserLog(loginName + "登陆" + (isLogin ? "成功" : "失败"), isLogin ? LogLevel.Info : LogLevel.Sensitive, loginName, "AjaxLogin", res.Message); return(Json(res)); }