def isBuy(self, articleId): data = dbsession.query(Credit.id).filter( Credit.target == articleId, Credit.category == '购买文章').first() if data: return True else: return False
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
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"}
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
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)
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
def updateCredit(self, credit): user = dbsession.query(User).filter( User.id == session.get('userid')).first() user.credit += credit dbsession.commit()
def getUserByAll(self, name, password): row = dbsession.query(User).filter(User.username == name, User.password == password).first() return row
def getReadList(self): row = dbsession.query(Article.id, Article.titile).order_by( Article.reading_volume.desc()).limit(10).all() return row
def getTypeNumber(self, type): number = math.ceil( dbsession.query(Article).filter(Article.type == type).count() / 10) return number
def getPageArticle(self, start, end): row = dbsession.query(Article)[start:end] return row
def getAllContent(self, articleId): row = dbsession.query( Article.content).filter(Article.id == articleId).first() return row[0]
def getHalfContent(self, articleId): row = dbsession.query( Article.content).filter(Article.id == articleId).first() data = row[0][:len(row[0]) // 2] return data + "..."
def getPopList(self): row = dbsession.query(Article.id, Article.titile).order_by( func.rand()).limit(9).all() return row
def getNewList(self): row = dbsession.query(Article.id, Article.titile).order_by( Article.pubdate.desc()).limit(10).all() return row
def getPageNumber(self): articleTotal = dbsession.query(Article).count() number = math.ceil(articleTotal / 10) return number
def getUserByName(self, name): row = dbsession.query(User).filter(User.username == name).first() return row
def getSideArticle(self, type, page): row = dbsession.query(Article).filter( Article.type == type)[page * 10 - 10:page * 10] return row
def getCollect(self, articleid, userid): fa = dbsession.query(Favorite).filter( Favorite.article_id == articleid, Favorite.user_id == userid).first() return fa
def getSearchArticle(self, keyword, page): row = dbsession.query(Article).filter( Article.titile.like('%' + keyword + '%'))[page * 10 - 10:page * 10] return row
def getSearchNumber(self, keyword): number = math.ceil( dbsession.query(Article).filter( Article.titile.like('%' + keyword + '%')).count() / 10) return number