/// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(tb_opinion model)
        {
            StringBuilder strSql = new StringBuilder();
            StringBuilder setSql = new StringBuilder();

            strSql.Append("update tb_opinion set ");
            if (!String.IsNullOrEmpty(model.username))
            {
                setSql.Append("username=@username,");
            }
            if (!String.IsNullOrEmpty(model.content))
            {
                setSql.Append("content=@content,");
            }
            if (model.addtime != null)
            {
                setSql.Append("addtime=@addtime,");
            }
            strSql.Append(setSql.ToString().TrimEnd(','));
            strSql.Append(" where id=@id ");
            using (IDbConnection conn = DapperHelper.OpenConnection())
            {
                int count = conn.Execute(strSql.ToString(), model);
                if (count > 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
        /// <summary>
        /// 获得数据列表
        /// </summary>
        public List <tb_opinion> GetList(tb_opinion model, ref int total)
        {
            List <tb_opinion> list;
            StringBuilder     strSql   = new StringBuilder();
            StringBuilder     whereSql = new StringBuilder(" where 1 = 1 ");

            strSql.Append(" select  ROW_NUMBER() OVER(ORDER BY id desc) AS RID, * from tb_opinion ");
            if (!String.IsNullOrEmpty(model.username))
            {
                whereSql.Append(" and username=@username");
            }
            if (!String.IsNullOrEmpty(model.content))
            {
                whereSql.Append(" and content=@content");
            }
            if (model.addtime != null)
            {
                whereSql.Append(" and addtime=@addtime");
            }
            strSql.Append(whereSql);
            string CountSql   = "SELECT COUNT(1) as RowsCount FROM (" + strSql.ToString() + ") AS CountList";
            string pageSqlStr = "select * from ( " + strSql.ToString() + " ) as Temp_PageData where Temp_PageData.RID BETWEEN {0} AND {1}";

            pageSqlStr = string.Format(pageSqlStr, (model.PageSize * (model.PageIndex - 1) + 1).ToString(), (model.PageSize * model.PageIndex).ToString());
            using (IDbConnection conn = DapperHelper.OpenConnection())
            {
                list  = conn.Query <tb_opinion>(pageSqlStr, model)?.ToList();
                total = conn.ExecuteScalar <int>(CountSql, model);
            }
            return(list);
        }
        /// <summary>
        /// 意见反馈 列表
        /// </summary>
        public ActionResult opinionList(tb_opinion model)
        {
            int count = 0;

            ViewBag.opinionList = dopinion.GetList(model, ref count);
            ViewBag.page        = Utils.ShowPage(count, model.PageSize, model.PageIndex, 5);
            return(View());
        }
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public tb_opinion GetInfo(tb_opinion model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select * from tb_opinion");
            strSql.Append("  where id=@id ");
            using (IDbConnection conn = DapperHelper.OpenConnection())
            {
                model = conn.Query <tb_opinion>(strSql.ToString(), model)?.FirstOrDefault();
            }
            return(model);
        }
 /// <summary>
 /// 意见反馈 保存
 /// </summary>
 public JsonResult opinionSave(tb_opinion model)
 {
     if (model == null)
     {
         return(ResultTool.jsonResult(false, "参数错误!"));
     }
     if (!String.IsNullOrEmpty(model.id))
     {
         bool boolResult = dopinion.Update(model);
         return(ResultTool.jsonResult(boolResult, boolResult ? "成功!" : "更新失败!"));
     }
     else
     {
         model.id = Guid.NewGuid().ToString("N");
         bool boolResult = dopinion.Add(model);
         return(ResultTool.jsonResult(boolResult, boolResult ? "成功!" : "添加失败!"));
     }
 }
        /// <summary>
        /// 是否存在该记录
        /// </summary>
        public bool Exists(tb_opinion model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select count(1) from tb_opinion");
            strSql.Append("  where id=@id ");
            using (IDbConnection conn = DapperHelper.OpenConnection())
            {
                int count = conn.Execute(strSql.ToString(), model);
                if (count > 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public bool Add(tb_opinion model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into tb_opinion(");
            strSql.Append("id,username,content,addtime)");
            strSql.Append(" values (");
            strSql.Append("@id,@username,@content,@addtime)");
            using (IDbConnection conn = DapperHelper.OpenConnection())
            {
                int count = conn.Execute(strSql.ToString(), model);
                if (count > 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
 /// <summary>
 /// 意见反馈 详情
 /// </summary>
 public ActionResult opinionInfo(tb_opinion model)
 {
     model = dopinion.GetInfo(model);
     return(View(model ?? new tb_opinion()));
 }
        /// <summary>
        /// 意见反馈 删除
        /// </summary>
        public JsonResult opinionDelete(tb_opinion model)
        {
            bool boolResult = dopinion.Delete(model);

            return(ResultTool.jsonResult(boolResult, boolResult ? "成功!" : "删除失败!"));
        }