コード例 #1
0
 def validate_activity_visible(self, activity: Activity):
     """
     校验是否允许报名
     Args:
         activity:
     """
     if activity.visible == 0:
         # 所有人可加入
         return True
     else:
         team = activity.team
         if activity.allow_groups:
             # 特定组成员可加入
             team_member = Team.get_member(team_id=team.id,
                                           user_id=self.current_user.id)
             if team_member.group_name in activity.allow_groups:
                 return True
             else:
                 raise ApiException(403, "该活动之允许特定分组成员加入, "
                                         "你不是该组成员")
         if team.is_member(self.current_user.id):
             # 会员均可加入
             return True
         else:
             raise ApiException(403, "该活动仅允许会员参加, 你还不是该俱乐部会员")
コード例 #2
0
    def post(self):

        action = self.get_argument("action")
        user_id = self.get_argument("user_id")

        if action == "change_group":
            group_name = self.get_argument("group_name")

            member = Team.get_member(self.current_team.id, user_id)

            TeamMember.update(group_name=group_name).where(
                TeamMember.team == self.current_team,
                TeamMember.user == user_id).execute()

            # 计算新分组成员数量
            TeamMemberGroup.update_members_count(self.current_team.id,
                                                 group_name)

            # 计算旧分组成员数量
            TeamMemberGroup.update_members_count(self.current_team.id,
                                                 member.group_name)

        elif action == "apply":
            user = User.get_or_404(id=user_id)
            self.current_team.apply(user)

        elif action == "remove_member":
            member = Team.get_member(self.current_team.id, user_id)
            if member:
                if not member.can_leave():
                    raise HttpForbiddenError("该会员有财务没有结清,不能踢出")

                user = User.get_or_404(id=user_id)
                self.current_team.leave(user)

                TeamMemberGroup.update_members_count(self.current_team.id,
                                                     member.group_name)

        elif action == "recharge":

            amount = intval(self.get_argument("amount"))
            freetimes = intval(self.get_argument("freetimes"))
            remark = self.get_argument("remark")

            member = Team.get_member(self.current_team.id, user_id)
            if member:
                TeamMember.change_credit(
                    self.current_team.id,
                    user_id=user_id,
                    change_type=1,  # 充值类型为后台操作
                    change_amount=amount,
                    free_times=freetimes,
                    operator_id=self.current_user.id,
                    note=remark)

        elif action == "deduction":

            amount = intval(self.get_argument("amount"))
            freetimes = intval(self.get_argument("freetimes"))
            remark = self.get_argument("remark")

            member = Team.get_member(self.current_team.id, user_id)
            if member:
                TeamMember.change_credit(
                    self.current_team.id,
                    user_id=user_id,
                    change_type=1,  # 充值类型为后台操作
                    change_amount=0 - amount,
                    free_times=0 - freetimes,
                    operator_id=self.current_user.id,
                    note=remark)

        self.write_success()