Exemplo n.º 1
0
def login():
    if auth_helper():
        return 'already login', 200
    form = request.get_json(True, True)
    username = form.get("username")
    password = form.get("password")
    pass_md5 = hashlib.md5(password.encode(encoding='UTF-8')).hexdigest()
    user = User.get(username=username)
    if not user:
        return jsonify(error='该用户不存在'), 400
    user = user[0]
    if user.password != pass_md5:
        return jsonify(error='密码错误'), 400
    resp = make_response()
    resp.status_code = 200
    data = dict(user_id=user.id,
                student_id=user.student_id,
                username=user.username,
                major=user.major,
                email=user.email,
                phone=user.phone,
                balance=user.balance,
                avatar=user.avatar.decode() if user.avatar else None,
                nickname=user.nickname,
                profile=user.profile)
    resp.response = json.dumps(data)
    session_id = random_helper()
    resp.set_cookie('fat-wallet', session_id, max_age=3600)
    session[session_id] = user.id
    return resp
Exemplo n.º 2
0
 def get(self):
     student_id = request.args.get("student_id")
     username = request.args.get("username")
     offset = request.args.get("offset")
     limit = request.args.get("limit")
     users = User.get(student_id=student_id, username=username, offset=offset, limit=limit)
     result = [{"user_id": user.id, "student_id": user.student_id,
                "username": user.username, "major": user.major,
                "email": user.email, "phone": user.phone,
                "nickname": user.nickname, "profile": user.profile,
                "balance": user.balance,
                "avatar": user.avatar.decode() if user.avatar else None} for user in users]
     return dict(data=result, count=len(result)), 200
Exemplo n.º 3
0
 def get(self):
     user_id = request.args.get('user_id')
     task_id = request.args.get('task_id')
     comments = Comment.get(user_id=user_id, task_id=task_id)
     result = [{"id": comment.id,
                "user_id": comment.user_id,
                "task_id": comment.task_id,
                "content": comment.content,
                "likes": comment.likes} for comment in comments]
     for value in result:
         user_id = value['user_id']
         user = User.get(user_id=user_id)[0]
         value['username'] = user.username
     return dict(data=result), 200
Exemplo n.º 4
0
def change_balance(user_id, offset):
    """
    修改用户余额
    @params:
        user_id: 用户id
        offset: 余额变化数额,可正可负
    """
    user = User.get(user_id=user_id)
    if not user:
        raise RuntimeError('用户不存在')
    user = user[0]
    if user.balance + offset < 0:
        raise RuntimeError('用户余额不足')
    user.balance += offset
    db.session.commit()
Exemplo n.º 5
0
 def get(self):
     user_id = request.args.get('user_id')
     task_id = request.args.get('task_id')
     status = request.args.get('status')
     participates = Participate.get(user_id=user_id, task_id=task_id, status=status)
     result = [{"id": participate.id,
                "user_id": participate.user_id,
                "task_id": participate.task_id,
                "status": ParticipateStatusCN[participate.status]} for participate in participates]
     for r in result:
         user = User.get(user_id=r["user_id"])[0]
         r["email"] = user.email
         r["phone"] = user.phone
         r["username"] = user.username
     return dict(data=result), 200
Exemplo n.º 6
0
    def get(self):
        find_collect = request.args.get('find_collect')
        user_id = request.args.get('user_id')
        tasks = []
        if find_collect and find_collect is True and user_id:
            collects = Collect.get(user_id=user_id)
            for collect in collects:
                task = Task.get(task_id=collect.task_id)
                if task:
                    tasks.append(task[0])
        else:
            creator_id = request.args.get("creator_id")
            title = request.args.get('title')
            task_type = request.args.get("task_type")
            min_reward = request.args.get("min_reward")
            max_reward = request.args.get("max_reward")
            offset = request.args.get("offset")
            limit = request.args.get("limit")
            tasks = Task.get(creator_id=creator_id,
                             title=title,
                             task_type=task_type,
                             min_reward=min_reward,
                             max_reward=max_reward,
                             offset=offset,
                             limit=limit)
            if len(tasks) != 1:  # 按发布时间逆序
                for i in range(0, len(tasks) - 1):
                    for j in range(i + 1, len(tasks)):
                        if tasks[i].id < tasks[j].id:
                            t = tasks[i]
                            tasks[i] = tasks[j]
                            tasks[j] = t
        result = [{
            "task_id": task.id,
            "title": task.title,
            "task_type": task.task_type,
            "reward": task.reward,
            "description": task.description,
            "due_time": task.due_time.strftime("%Y-%m-%d %H:%M"),
            "max_participate": task.max_participate,
            "creator_id": task.creator_id,
            "image": task.image.decode() if task.image else None
        } for task in tasks]

        for value in result:
            creator = User.get(value["creator_id"])[0]
            value["creator_name"] = creator.username
            participators = [{
                "user_id": p.user_id,
                "status": ParticipateStatusCN[p.status]
            } for p in Participate.get(task_id=value["task_id"])]
            for p in participators:
                user = User.get(user_id=p["user_id"])[0]
                p["username"] = user.username
                p["phone"] = user.phone
                p["email"] = user.email
                p["avatar"] = user.avatar.decode() if user.avatar else None
            value["participators"] = participators
            user_id = auth_helper()
            collect = Collect.get(user_id=user_id, task_id=value['task_id'])
            value['is_collect'] = True if collect else False  # 是否收藏该任务
            comments = Comment.get(task_id=value['task_id'])
            value['num_comments'] = len(comments) if comments else 0  # 任务的评论数
        return dict(data=result, count=len(result)), 200