예제 #1
0
    def isBuy(self, articleId):
        data = dbsession.query(Credit.id).filter(
            Credit.target == articleId, Credit.category == '购买文章').first()

        if data:
            return True
        else:
            return False
예제 #2
0
 def getOneArticle(self, id):
     row = dbsession.query(
         Article.type, Article.titile, Article.pubdate,
         Article.reading_volume,
         Article.cost_integral, User.username).outerjoin(
             User,
             User.id == Article.user_id).filter(Article.id == id).first()
     return row
예제 #3
0
 def buyArticle(self, username, articleid):
     user = dbsession.query(User).filter(User.username == username).first()
     article = dbsession.query(Article).filter(
         Article.id == articleid).first()
     if user.credit < article.cost_integral:
         return {"code": 10004, "msg": "not enough credit!"}
     else:
         now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
         user.credit -= article.cost_integral
         credits = Credit(category="购买文章",
                          target=articleid,
                          credit=-article.cost_integral,
                          createtime=now,
                          updatetime=now,
                          user_id=user.id)
         dbsession.add(credits)
         dbsession.commit()
         return {"code": 10001, "msg": "ok"}
예제 #4
0
    def getCommentsList(self, articleid, page_index, page_size):
        row = dbsession.query(Comment).filter(
            Comment.article_id == articleid, Comment.reply_id == 0).order_by(
                Comment.createtime.desc()).limit(page_size).offset(
                    (page_index - 1) * page_size)
        #不带子评论的评论列表
        data = objToDict(row)
        for item in data:
            row = dbsession.query(Comment).filter(
                Comment.reply_id == item['id']).order_by(
                    Comment.createtime.desc()).all()
            son_data = objToDict(row)
            item['reply_list'] = son_data
        return data

        # print(row[0])

        return data
예제 #5
0
    def getStatu(self, userid, articleid):
        fa = dbsession.query(Favorite).filter(
            Favorite.user_id == userid,
            Favorite.article_id == articleid).first()
        if fa:
            return fa.is_collect
        else:
            return 0


# Base.metadata.create_all(engine)
예제 #6
0
    def resetCollect(self, userid, articleid):
        fa = dbsession.query(Favorite).filter(
            Favorite.user_id == userid,
            Favorite.article_id == articleid).first()
        if not fa:
            now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
            fa = Favorite(user_id=userid,
                          article_id=articleid,
                          is_collect=1,
                          create=now)
            dbsession.add(fa)
            dbsession.commit()
            return fa.is_collect

        if fa.is_collect == 0:
            fa.is_collect = 1
            dbsession.commit()
            return fa.is_collect

        if fa.is_collect == 1:
            fa.is_collect = 0
            dbsession.commit()
            return fa.is_collect
예제 #7
0
 def updateCredit(self, credit):
     user = dbsession.query(User).filter(
         User.id == session.get('userid')).first()
     user.credit += credit
     dbsession.commit()
예제 #8
0
 def getUserByAll(self, name, password):
     row = dbsession.query(User).filter(User.username == name,
                                        User.password == password).first()
     return row
예제 #9
0
 def getReadList(self):
     row = dbsession.query(Article.id, Article.titile).order_by(
         Article.reading_volume.desc()).limit(10).all()
     return row
예제 #10
0
 def getTypeNumber(self, type):
     number = math.ceil(
         dbsession.query(Article).filter(Article.type == type).count() / 10)
     return number
예제 #11
0
 def getPageArticle(self, start, end):
     row = dbsession.query(Article)[start:end]
     return row
예제 #12
0
    def getAllContent(self, articleId):
        row = dbsession.query(
            Article.content).filter(Article.id == articleId).first()

        return row[0]
예제 #13
0
 def getHalfContent(self, articleId):
     row = dbsession.query(
         Article.content).filter(Article.id == articleId).first()
     data = row[0][:len(row[0]) // 2]
     return data + "..."
예제 #14
0
 def getPopList(self):
     row = dbsession.query(Article.id, Article.titile).order_by(
         func.rand()).limit(9).all()
     return row
예제 #15
0
 def getNewList(self):
     row = dbsession.query(Article.id, Article.titile).order_by(
         Article.pubdate.desc()).limit(10).all()
     return row
예제 #16
0
 def getPageNumber(self):
     articleTotal = dbsession.query(Article).count()
     number = math.ceil(articleTotal / 10)
     return number
예제 #17
0
 def getUserByName(self, name):
     row = dbsession.query(User).filter(User.username == name).first()
     return row
예제 #18
0
 def getSideArticle(self, type, page):
     row = dbsession.query(Article).filter(
         Article.type == type)[page * 10 - 10:page * 10]
     return row
예제 #19
0
 def getCollect(self, articleid, userid):
     fa = dbsession.query(Favorite).filter(
         Favorite.article_id == articleid,
         Favorite.user_id == userid).first()
     return fa
예제 #20
0
 def getSearchArticle(self, keyword, page):
     row = dbsession.query(Article).filter(
         Article.titile.like('%' + keyword + '%'))[page * 10 - 10:page * 10]
     return row
예제 #21
0
 def getSearchNumber(self, keyword):
     number = math.ceil(
         dbsession.query(Article).filter(
             Article.titile.like('%' + keyword + '%')).count() / 10)
     return number