Esempio n. 1
0
    def get(self, request, group_id, *args, **kwargs):
        """获取升级订单列表"""
        page = parse_argument(request, 'page', value_type=int, default=1)
        page_size = parse_argument(request,
                                   'page_size',
                                   value_type=int,
                                   default=10)

        rq_args = (
            {
                'key': 'group_key',
                'value_type': str
            },
            {
                'key': 'status__in',
                'value_type': list
            },
            {
                'key': 'status__gt',
                'value_type': int
            },
            {
                'key': 'status__lt',
                'value_type': int
            },
        )

        qs_args = parse_args(request, rq_args)
        switch = {
            'group_key': Q(group_key=qs_args.get('group_key')),
            'status__in': Q(status__in=qs_args.get('status__in')),
            'status__gt': Q(status__gt=qs_args.get('status__gt')),
            'status__lt': Q(status__lt=qs_args.get('status__lt')),
        }
        q = Q()
        for arg_key in list(qs_args.keys()):
            q &= switch[arg_key]

        record_qs = AppUpgradeRecord.objects.filter(
            tenant_id=self.tenant.tenant_id,
            group_id=int(group_id),
        ).filter(q).order_by('-create_time')

        paginator = Paginator(record_qs, page_size)
        records = paginator.page(page)

        # 同步升级记录状态
        for record in records:
            upgrade_service.synchronous_upgrade_status(self.tenant,
                                                       self.region_name,
                                                       record)

        return MessageResponse(
            msg="success",
            bean={"total": paginator.count},
            list=[
                upgrade_service.serialized_upgrade_record(record)
                for record in records
            ])
Esempio n. 2
0
    def get(self, request, group_id, record_id, *args, **kwargs):
        """获取升级订单"""
        record = get_object_or_404(
            AppUpgradeRecord,
            msg="Upgrade record not found",
            tenant_id=self.tenant.tenant_id,
            group_id=int(group_id),
            pk=int(record_id))

        # 同步升级记录状态
        upgrade_service.synchronous_upgrade_status(self.tenant, record)

        return MessageResponse(msg="success", bean=upgrade_service.serialized_upgrade_record(record))