Пример #1
0
def match_start(self, match_id: int):
    """
    赛事开始前, 调用派队消息推送接口
    :param self: celery task Context
    :param match_id:
    :return:
    """
    match = Match.get(id=match_id)  # type: Match
    team = Team.get(id=match.team_id)  # type: Team
    members = MatchService.members(match,
                                   state=MatchMember.MatchMemberState.normal)
    infos = []
    for member in members:
        infos.append({"userId": member.user_id, "mobile": member.mobile})

    message = MatchStartMessage(
        user_infos=infos,
        match_id=match_id,
        match_name=match.title,
        sponsor_name=team.name,
        sponsor_pic_url=team.get_cover_url(size="medium"))

    pt = Parteam(app.settings["parteam_api_url"])
    if not pt.push_message(message=message):
        self.retry(exc=ParteamRequestError("调用派队推送接口失败"))
Пример #2
0
def new_match_status(self, match_id: int):
    """
    主办方发布新战报时向赛事成员推送信息
    :param self:
    :param match_id:
    :return:
    """
    match = Match.get(id=match_id)  # type: Match
    team = Team.get(id=match.team_id)  # type: Team
    members = MatchService.members(match,
                                   state=MatchMember.MatchMemberState.normal)

    infos = []
    for member in members:
        infos.append({"mobile": member.mobile, "userId": member.user_id})

    message = NewMatchScheduleMessage(
        user_infos=infos,
        match_id=match_id,
        match_name=match.title,
        sponsor_name=team.name,
        sponsor_pic_url=team.get_cover_url(size="medium"))

    pt = Parteam(app.settings["parteam_api_url"])
    if not pt.push_message(message):
        self.retry(ParteamRequestError("调用派队推送接口失败"))
Пример #3
0
 def test_members_function(self):
     faker = Faker()
     match = mixer.blend(Match)
     mixer.blend(MatchMember,
                 match_id=match.id,
                 user_id=faker.random_int(),
                 total_fee=0.01)
     mixer.blend(MatchMember,
                 match_id=match.id,
                 user_id=faker.random_int(),
                 total_fee=0.01)
     members = MatchService.members(match)
     self.assertEqual(2, len(members))
     for row in members:
         self.assertEqual(match.id, row.match_id)
Пример #4
0
    def get(self, match_id):
        """ 获取赛事成员列表

        :match_id: 赛事ID
        :returns: TODO

        """
        match = Match.get_or_404(id=match_id)
        query = MatchService.members(match=match)

        filtered = self.filter_query(query)
        page = self.paginate_query(filtered)

        uids = self.get_parteam_uid(page)
        parteam_users = self.get_parteam_users(uids) if uids else {}

        data = self.render_page_info(page)
        data["members"] = self.serializing_members(page, parteam_users)

        self.write(data)