Пример #1
0
        /// <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());
        }
Пример #2
0
        /// <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());
        }
Пример #3
0
        /// <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));
        }
Пример #4
0
        /// <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));
        }
Пример #5
0
        /// <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);
        }
Пример #6
0
        /// <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);
        }
Пример #7
0
        /// <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 }));
        }
Пример #8
0
        /// <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));
        }