from flask import jsonify, request from services.teams.service import get_teams_with_pagination, get_team_by_id, delete_team, get_team_members, add_team_member, remove_team_member from .. import teams_bp @teams_bp.route('', methods=['GET']) def get_teams(): """获取团队列表的API端点,支持分页和条件查询""" try: # 获取查询参数 current_page = int(request.args.get('currentPage', 1)) page_size = int(request.args.get('size', 10)) team_name = request.args.get('name', '') # 调用服务函数获取分页和筛选后的团队数据 teams, total = get_teams_with_pagination(current_page, page_size, team_name) # 返回符合前端期望格式的数据 return jsonify({ "code": 0, "data": { "list": teams, "total": total }, "message": "获取团队列表成功" }) except Exception as e: # 错误处理 return jsonify({ "code": 500, "message": f"获取团队列表失败: {str(e)}" }), 500 @teams_bp.route('/', methods=['GET']) def get_team(team_id): """获取单个团队详情的API端点""" try: team = get_team_by_id(team_id) if team: return jsonify({ "code": 0, "data": team, "message": "获取团队详情成功" }) else: return jsonify({ "code": 404, "message": f"团队 {team_id} 不存在" }), 404 except Exception as e: return jsonify({ "code": 500, "message": f"获取团队详情失败: {str(e)}" }), 500 @teams_bp.route('', methods=['POST']) def create_team_route(): """创建团队的API端点""" try: data = request.json team_id = create_team(team_data=data) return jsonify({ "code": 0, "data": {"id": team_id}, "message": "团队创建成功" }) except Exception as e: return jsonify({ "code": 500, "message": f"创建团队失败: {str(e)}" }), 500 @teams_bp.route('/', methods=['PUT']) def update_team_route(team_id): """更新团队的API端点""" try: data = request.json success = update_team(team_id=team_id, team_data=data) if success: return jsonify({ "code": 0, "message": f"团队 {team_id} 更新成功" }) else: return jsonify({ "code": 404, "message": f"团队 {team_id} 不存在或更新失败" }), 404 except Exception as e: return jsonify({ "code": 500, "message": f"更新团队失败: {str(e)}" }), 500 @teams_bp.route('/', methods=['DELETE']) def delete_team_route(team_id): """删除团队的API端点""" try: success = delete_team(team_id) if success: return jsonify({ "code": 0, "message": f"团队 {team_id} 删除成功" }) else: return jsonify({ "code": 404, "message": f"团队 {team_id} 不存在或删除失败" }), 404 except Exception as e: return jsonify({ "code": 500, "message": f"删除团队失败: {str(e)}" }), 500 @teams_bp.route('//members', methods=['GET']) def get_team_members_route(team_id): """获取团队成员的API端点""" try: print(f"正在查询团队 {team_id} 的成员") members = get_team_members(team_id) print(f"查询结果: 找到 {len(members)} 个成员") return jsonify({ "code": 0, "data": members, "message": "获取团队成员成功" }) except Exception as e: print(f"获取团队成员异常: {str(e)}") return jsonify({ "code": 500, "message": f"获取团队成员失败: {str(e)}" }), 500 @teams_bp.route('//members', methods=['POST']) def add_team_member_route(team_id): """添加团队成员的API端点""" try: data = request.json user_id = data.get('userId') role = data.get('role', 'member') success = add_team_member(team_id, user_id, role) if success: return jsonify({ "code": 0, "message": "添加团队成员成功" }) else: return jsonify({ "code": 400, "message": "添加团队成员失败" }), 400 except Exception as e: return jsonify({ "code": 500, "message": f"添加团队成员失败: {str(e)}" }), 500 @teams_bp.route('//members/', methods=['DELETE']) def remove_team_member_route(team_id, user_id): """移除团队成员的API端点""" try: success = remove_team_member(team_id, user_id) if success: return jsonify({ "code": 0, "message": "移除团队成员成功" }) else: return jsonify({ "code": 400, "message": "移除团队成员失败" }), 400 except Exception as e: return jsonify({ "code": 500, "message": f"移除团队成员失败: {str(e)}" }), 500