/// <summary>
        /// 更新
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool Edit(V_tm_pm_userinfo model)
        {
            if (model == null) return false;
            tm_pm_userinfo entitys = ModelToEntity(model);

            return dal.Edit(entitys);
        }
        /// <summary>
        /// 新增
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public string Add(V_tm_pm_userinfo model)
        {
            if (model == null)
                return string.Empty;
            tm_pm_userinfo entity = ModelToEntity(model);
            entity.USERID = string.IsNullOrEmpty(model.USERID) ? Guid.NewGuid().ToString("N") : model.USERID;

            return dal.Add(entity);
        }
        /// <summary>
        /// 用户登录
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public ActionResult UserLogin(V_tm_pm_userinfo user)
        {
            try
            {
                //object obj = Session["_vercode_"];
                //if (obj == null)
                //return Json(new { Status = -9, Data = string.Empty, Msg = "验证码失效,\n请重新获取验证码" });
                //string code = obj.ToString();
                //if (string.IsNullOrEmpty(code))
                //return Json(new { Status = -8, Data = string.Empty, Msg = "验证码无效,\n请重新获取验证码" });
                if (user == null)
                    return Json(new { Status = -7, Data = string.Empty, Msg = "参数错误,\n请输入用户信息" });
                //if(user.Vercode.Trim() != code.Trim())
                //return Json(new { Status = -6, Data = string.Empty, Msg = "验证码错误,\n请重新输入验证码" });
                if (string.IsNullOrEmpty(user.LOGINNAME) || string.IsNullOrEmpty(user.LOGINPWD))//参数错误
                    return Json(new { Status = -5, Data = string.Empty, Msg = "参数错误" });

                V_tm_pm_userinfo userInfo = bll.Login(user.LOGINNAME, user.LOGINPWD);

                if (userInfo == null)//密码错误
                    return Json(new { Status = -4, Data = string.Empty, Msg = "密码错误" });

                //产生令牌
                string tokenValue = this.GetGuidString();
                bll.CacheInfo(tokenValue + CacheString, tokenValue);

                bll.CacheInfo(tokenValue, userInfo);

                HttpCookie tokenCookie = new HttpCookie("Token");
                tokenCookie.Value = tokenValue;
                tokenCookie.Expires = DateTime.Now.AddMinutes(CacheTime);
                tokenCookie.Path = "/";
                Response.AppendCookie(tokenCookie);

                return Json(new { Status = 1, Data = tokenValue, Msg = string.Empty });
            }
            catch (Exception ex)
            {
                return Json(new { Status = -99, Data = string.Empty, Msg = ex.Message });
            }            
        }
        /// <summary>
        /// 通过id更新用户信息
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public bool UpdateUserInfo(V_tm_pm_userinfo user)
        {
            if (user == null) return false;
            tm_pm_userinfo userinfo = ModelToEntity(user);

            return dal.UpdateUserInfo(userinfo);
        }
        /// <summary>
        /// Entity转Model
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        private V_tm_pm_userinfo EntityToModel(tm_pm_userinfo entity)
        {
            if (entity != null)
            {
                V_tm_pm_userinfo model = new V_tm_pm_userinfo()
                {
                    USERID = entity.USERID,
                    OWNERID = entity.OWNERID,
                    ISDELETED = entity.ISDELETED,
                    CREATEUSERNAME = entity.CREATEUSERNAME,
                    EDITUSERNAME = entity.EDITUSERNAME,
                    OWNERNAME = entity.OWNERNAME,
                    USERTYPE = entity.USERTYPE,
                    LOGINNAME = entity.LOGINNAME,
                    LOGINPWD = entity.LOGINPWD,
                    MOBILEPHONE = entity.MOBILEPHONE,
                    EMAIL = entity.EMAIL,
                    CREATEUSERID = entity.CREATEUSERID,
                    CREATEDATETIME = entity.CREATEDATETIME,
                    EDITUSERID = entity.EDITUSERID,
                    EDITDATETIME = entity.EDITDATETIME,
                };

                return model;
            }

            return null;
        }
        /// <summary>
        /// Model转Entity
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        private tm_pm_userinfo ModelToEntity(V_tm_pm_userinfo model)
        {
            if (model != null)
            {
                tm_pm_userinfo entity = new tm_pm_userinfo()
                {
                    USERID = model.USERID,
                    OWNERID = model.OWNERID,
                    ISDELETED = model.ISDELETED,
                    CREATEUSERNAME = model.CREATEUSERNAME,
                    EDITUSERNAME = model.EDITUSERNAME,
                    OWNERNAME = model.OWNERNAME,
                    USERTYPE = model.USERTYPE,
                    LOGINNAME = model.LOGINNAME,
                    LOGINPWD = model.LOGINPWD,
                    MOBILEPHONE = model.MOBILEPHONE,
                    EMAIL = model.EMAIL,
                    CREATEUSERID = model.CREATEUSERID,
                    CREATEDATETIME = model.CREATEDATETIME,
                    EDITUSERID = model.EDITUSERID,
                    EDITDATETIME = model.EDITDATETIME,
                };

                return entity;
            }
            return null;
        }
        /// <summary>
        /// 用户注册
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public ActionResult UserRegister(V_tm_pm_userinfo user)
        {
            try
            {
                V_tm_pm_userinfo u = bll.GetUserByLoginName(user.LOGINNAME);
                if (u != null)
                    return Json(new { Status = -9, Data = string.Empty, Msg = "用户名已存在" });

                if(user.LOGINPWD.Trim() != user.ConfirmLoginPwd.Trim())
                    return Json(new { Status = -8, Data = string.Empty, Msg = "两次输入密码不一致" });

                user.USERID = GetGuidString();
                user.LOGINPWD = user.LOGINPWD.ToMd5();
                user.USERTYPE =  1;
                user.CREATEDATETIME = DateTime.Now;
                user.CREATEUSERID = string.Empty;
                user.CREATEUSERNAME = string.Empty;
                user.EDITDATETIME = DateTime.Now;
                user.EDITUSERID = string.Empty;
                user.EDITUSERNAME = string.Empty;
                user.OWNERID = string.Empty;
                user.OWNERNAME = string.Empty;
                bool result = bll.AddUserInfo(user);
                if(!result)
                    return Json(new { Status = -7, Data = string.Empty, Msg = "操作失败" });

                return Json(new { Status = 1, Data = string.Empty, Msg = "操作成功" });
            }
            catch (Exception ex)
            {
                return Json(new { Status = -99, Data = string.Empty, Msg = ex.Message });
            }            
        }