MVC常见的控制器,接口,数据层之间的操作


user_books_info 类

namespace CiWong.LearningLevel.Mapping
{
    public class user_books_info
    {
        /// 
        /// 使用对象ID,个人版存放会员ID,班级版存放班级ID,校园版存放校园ID
        /// 
        public long user_id { get; set; }

        /// 
        /// 购买类型(1=个人版,2=班级版,3=学校版)
        /// 
        public Int16 purchase_type { get; set; }

        /// 
        /// 题册ID
        /// 
        public long book_id { get; set; }

        /// 
        /// 课本名称
        /// 
        public string book_name { get; set; }

        /// 
        /// 课本封面
        /// 
        public string book_cover { get; set; }

        /// 
        /// 使用对象名称
        /// 
        public string user_name { get; set; }

        /// 
        /// 使用类型(0=试用,1=已购买,2=赠送,3=校本课程)
        /// 
        public int use_mode { get; set; }

        /// 
        /// 添加时间
        /// 
        public DateTime create_time { get; set; }

        /// 
        /// 首次购买时间
        /// 
        public DateTime bourght_time { get; set; }

        /// 
        /// 最后一次续费时间
        /// 
        public DateTime last_paid_time { get; set; }

        /// 
        /// 过期时间
        /// 
        public DateTime expire_date { get; set; }

    }
}

1,数据操作层(List<>)

/// 
        /// 获取我购买的书籍
        /// 
        /// 
        /// 页码
        /// 条数
        /// 
        public List UserBookInfoGetByUserID(int userID, int pageIndex, int pageSize)
        {
            List bookList = new List();
            string sql = @"CALL learn_user_books_info_getbyuserid(@UserID,@pageIndex,@pageSize);";
            MySqlParameter[] para = new MySqlParameter[]                                    
            {  
                 new MySqlParameter("@UserID", userID),
                 new MySqlParameter("@pageIndex", pageIndex),
                 new MySqlParameter("@pageSize", pageSize)
             };
            using (var dr = MySqlHelper.ExecuteReader(DatabaseManager.Retrieve("wc_learninglevel_read"), sql, para))
            {
                while (dr.Read())
                {
                    var bookInfo = new user_books_info();
                    bookInfo.user_id = dr.GetInt32("user_id");
                    bookInfo.purchase_type = dr.GetInt16("purchase_type");
                    bookInfo.book_id = dr.GetInt64("book_id");
                    bookInfo.book_name = dr.GetString("book_name");
                    bookInfo.book_cover = dr.GetString("book_cover");
                    bookInfo.user_name = dr.GetString("user_name");
                    bookInfo.use_mode = dr.GetInt32("use_mode");
                    bookInfo.create_time = dr.GetDateTime("create_time");
                    bookInfo.bourght_time = dr.GetDateTime("bourght_time");
                    //bookInfo.last_paid_time = dr.GetDateTime("last_paid_time");
                    bookInfo.expire_date = dr.GetDateTime("expire_date");
                    bookList.Add(bookInfo);
                }
                dr.Close();
            }
            return bookList;
        }

2,数据调用接口层(List<>)

        /// 
        /// 获取我购买的书籍
        /// 
        /// 
        /// 页码
        /// 条数
        /// 
        List UserBookInfoGetByUserID(int userID, int pageIndex, int pageSize);    

3,控制器

   

ViewBag.UserLearns = this._Repository.UserBookInfoGetByUserID(userID, 1, 11);//购买的书籍

A, 数据操作层(IEnumerable<>)

   

        /// 
        /// 获取文章列表 
        /// 
        /// 用户ID
        /// 总数据量
        /// 当前页
        /// 每页数量
        /// 删除状态
        /// 
        public IEnumerable GetBlogContents(int userID, ref int totalItem, int pageIndex = 1, int pageSize = 20, bool IsFriend = false, bool IsManager = false)
        {
            List _list = new List();
            MySqlConnection conn = new MySqlConnection(ConnectionString);
            MySqlDataReader dr = null;
            try
            {
                conn.Open();
                totalItem = Convert.ToInt32(MySqlHelper.ExecuteScalar(conn, string.Format("SELECT COUNT(0) FROM BlogContent WHERE uid=@uid AND IsDelete=0 AND IsPublished=1 {0}", IsManager ? string.Empty : IsFriend ? "AND IsPublic<=1" : "AND IsPublic=0"),
                                            new MySqlParameter("@uid", userID)));
                if (totalItem > 0)
                {
                    string sql = @"SELECT Id,CateId,Title,Intro,Published,Created,
                                   ViewNums,CopNums,IsPublic,IsTop,IsPublished,
                                   Iscopied,OriginID,uid,OrignAccountId,OriginAccountName,Flowers FROM BlogContent
                                   WHERE uid=@uid AND IsDelete=0 AND IsPublished=1 {0}
                                   ORDER BY IsTop DESC,Id DESC LIMIT @Begin,@Size";
                    dr = MySqlHelper.ExecuteReader(conn, string.Format(sql, IsManager ? string.Empty : IsFriend ? "AND IsPublic<=1" : "AND IsPublic=0"),
                                new MySqlParameter("@uid", userID),
                                new MySqlParameter("@Begin", (pageIndex - 1) * pageSize),
                                new MySqlParameter("@Size", pageSize));
                    while (dr.Read())
                    {
                        _list.Add(new BlogContent()
                        {
                            Id = dr.GetInt64(0),
                            CateId = dr.GetInt64(1),
                            Title = dr.GetString(2),
                            Intro = dr.GetString(3),
                            Published = dr.GetDateTime(4),
                            Created = dr.GetDateTime(5),
                            ViewNums = dr.GetInt32(6),
                            CopNums = dr.GetInt32(7),
                            IsPublic = dr.GetByte(8),
                            IsTop = dr.GetBoolean(9),
                            IsPublished = dr.GetBoolean(10),
                            Iscopied = dr.GetBoolean(11),
                            OriginID = dr.GetInt64(12),
                            uid = dr.GetInt32(13),
                            OrignAccountId = dr.GetInt32(14),
                            OriginAccountName = dr.GetString(15),
                            Flower = dr.GetInt32(16)
                        });
                    }
                }
            }
            catch (MySqlException e)
            {
                throw e;
            }
            finally
            {
                if (null != dr) dr.Close();
                conn.Close();
            }
            return _list;
        }

B,数据操作接口层(IEnumerable<>)

    

        /// 
        /// 获取文章列表
        /// 
        /// 用户ID集合
        /// 总数据量
        /// 当前页
        /// 每页数量
        /// 删除状态
        /// 
        IEnumerable GetBlogContents(List userIDs, ref int totalItem, int pageIndex = 1, int pageSize = 20, bool IsFriend = false, bool IsManager = false);

C,控制器

     

var blogs1 = _blogManager.GetBlogContents(zone.UserID, ref totalItem, page, 10).ToList();
mvc