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
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
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
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()
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
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