|
|
from flask import session
|
|
|
from datetime import datetime
|
|
|
from main import db
|
|
|
|
|
|
|
|
|
class Credit(db.Model):
|
|
|
__tablename__ = 'credit'
|
|
|
creditid = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
|
|
userid = db.Column(db.Integer, db.ForeignKey('user.userid'))
|
|
|
category = db.Column(db.String(255), nullable=False)
|
|
|
target = db.Column(db.String(255), nullable=False)
|
|
|
credit = db.Column(db.Integer, nullable=False)
|
|
|
createtime = db.Column(db.DateTime, default=datetime.utcnow)
|
|
|
updatetime = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
|
|
|
|
|
|
# user = db.relationship('Users', backref=db.backref('credit_user_userid', lazy=True))
|
|
|
|
|
|
# 插入积分明细
|
|
|
@classmethod
|
|
|
def insert_detail(cls,category,target,credit):
|
|
|
'''
|
|
|
|
|
|
:param category: 积分变化的原因 枚举变量 1评论comment 2注册enroll 3登录login 4投稿submission 5文章阅读read
|
|
|
:param target:积分消耗的目标,文章id或者登录时候的用户0
|
|
|
:param credit:消耗的积分
|
|
|
:return:
|
|
|
'''
|
|
|
credit = Credit(userid = session.get('userid'),category=category,target=target,credit=credit,createtime=datetime.utcnow(),updatetime=datetime.utcnow())
|
|
|
# cls.add(credit)
|
|
|
db.session.add(credit)
|
|
|
# cls.commit() 不可以
|
|
|
db.session.commit()
|
|
|
|
|
|
# 判断用户是否已经消耗积分
|
|
|
@classmethod
|
|
|
def check_payed_article(cls,articleid):
|
|
|
'''
|
|
|
如果消耗了积分,返回True
|
|
|
如果没有消耗积分,返回False
|
|
|
:param articleid:
|
|
|
:return:
|
|
|
'''
|
|
|
result = cls.query.filter_by(userid = session.get('userid'),target=articleid).first()
|
|
|
i = 0
|
|
|
while i < 10:
|
|
|
i += 1
|
|
|
print("userid=",session.get('userid'),"articleid=",articleid)
|
|
|
# 如果看过,返回TRUE
|
|
|
if result is None: # 如果没有观看记录
|
|
|
return False
|
|
|
else: # 如果有观看记录
|
|
|
return True |