Пример #1
0
    def post(self, request):
        money = get_int(request.POST.get('money') or 0)
        if money <= 0:
            return JsonResponse({
                'status': 'money_error',
                'msg': '提现金额必须是大于0的整数',
            })

        user = request.user
        pinbot_point = coin_utils._get_pinbot_point(user)

        if money > pinbot_point.coin:
            return JsonResponse({
                'status': 'no_coin',
                'msg': '金币不足',
            })

        now = datetime.datetime.now()
        has_withdraw = get_object_or_none(
            WithdrawRecord,
            user=user,
            verify_status__in=(0, 1),
            create_time__year=now.year,
            create_time__month=now.month,
        )

        if has_withdraw:
            return JsonResponse({
                'status': 'has_withdraw',
                'msg': '您本月已经提现过一次,请下个月再来',
            })

        withdraw = WithdrawRecord.objects.create(
            user=user,
            money=money,
        )

        order = UserOrder.objects.create(
            user=user,
            order_price=-money,
            actual_price=-money,
            item=withdraw,
            order_desc='提现',
            order_type=5,
        )
        order.order_id = create_order_id()
        order.save()

        ItemRecord.objects.create(
            num=1,
            total_price=order.order_price,
            order=order,
            item=withdraw,
        )

        return JsonResponse({
            'status': 'ok',
            'msg': '提现请求提交成功',
        })
Пример #2
0
    def post(self, request):
        money = get_int(request.POST.get('money') or 0)
        if money <= 0:
            return JsonResponse({
                'status': 'money_error',
                'msg': '提现金额必须是大于0的整数',
            })

        user = request.user
        pinbot_point = coin_utils._get_pinbot_point(user)

        if money > pinbot_point.coin:
            return JsonResponse({
                'status': 'no_coin',
                'msg': '金币不足',
            })

        now = datetime.datetime.now()
        has_withdraw = get_object_or_none(
            WithdrawRecord,
            user=user,
            verify_status__in=(0, 1),
            create_time__year=now.year,
            create_time__month=now.month,
        )

        if has_withdraw:
            return JsonResponse({
                'status': 'has_withdraw',
                'msg': '您本月已经提现过一次,请下个月再来',
            })

        withdraw = WithdrawRecord.objects.create(
            user=user,
            money=money,
        )

        order = UserOrder.objects.create(
            user=user,
            order_price=-money,
            actual_price=-money,
            item=withdraw,
            order_desc='提现',
            order_type=5,
        )
        order.order_id = create_order_id()
        order.save()

        ItemRecord.objects.create(
            num=1,
            total_price=order.order_price,
            order=order,
            item=withdraw,
        )

        return JsonResponse({
            'status': 'ok',
            'msg': '提现请求提交成功',
        })
Пример #3
0
    def create_renew_order(cls, user_vip, renew_month):

        user = user_vip.user
        vip_role = user_vip.vip_role
        order_price = user_vip.vip_role.month_price * renew_month
        num = 1
        order_desc = '{vip_name}, 续期{renew_month}个月, {feed_count}个定制, {pinbot_point}聘点/周'.format(
            vip_name=vip_role.vip_name,
            renew_month=renew_month,
            feed_count=vip_role.feed_count,
            pinbot_point=vip_role.pinbot_point,
        )

        protcol_data = cls.create_protcol_data(
            service_name='renew_service',
            event='create_renew_order',
            dest='renew_service',
            product=None,
            product_type='renew_service',
            item_num=num,
            user=user,
            is_insurance=False,
            order_price=order_price,
        )
        protcol_data['duration'] = renew_month
        protcol_data['price'] = order_price
        protcol_data['user_vip'] = user_vip

        service_obj = protcol_data.get('service_class')(**protcol_data)
        service_result = service_obj.create_service()

        order = UserOrder.objects.create(
            user=user,
            order_price=order_price,
            actual_price=order_price,
            item=service_result,
            payment_terms='alipay',
            order_desc=order_desc,
            order_type=7,
        )

        order.order_id = create_order_id()
        order.save()

        cls.after_create_order(
            user=user,
            order=order,
            service=service_result,
            num=num,
        )

        return order
Пример #4
0
    def create_renew_order(cls, user_vip, renew_month):

        user = user_vip.user
        vip_role = user_vip.vip_role
        order_price = user_vip.vip_role.month_price * renew_month
        num = 1
        order_desc = '{vip_name}, 续期{renew_month}个月, {feed_count}个定制, {pinbot_point}聘点/周'.format(
            vip_name=vip_role.vip_name,
            renew_month=renew_month,
            feed_count=vip_role.feed_count,
            pinbot_point=vip_role.pinbot_point,
        )

        protcol_data = cls.create_protcol_data(
            service_name='renew_service',
            event='create_renew_order',
            dest='renew_service',
            product=None,
            product_type='renew_service',
            item_num=num,
            user=user,
            is_insurance=False,
            order_price=order_price,
        )
        protcol_data['duration'] = renew_month
        protcol_data['price'] = order_price
        protcol_data['user_vip'] = user_vip

        service_obj = protcol_data.get('service_class')(**protcol_data)
        service_result = service_obj.create_service()

        order = UserOrder.objects.create(
            user=user,
            order_price=order_price,
            actual_price=order_price,
            item=service_result,
            payment_terms='alipay',
            order_desc=order_desc,
            order_type=7,
        )

        order.order_id = create_order_id()
        order.save()

        cls.after_create_order(
            user=user,
            order=order,
            service=service_result,
            num=num,
        )

        return order
Пример #5
0
    def create_order(self):
        price = self.get_order_price()
        order = UserOrder.objects.create(
            user=self.user,
            order_price=price,
            actual_price=price,
            item=self.apply_vip,
        )

        order.order_id = create_order_id()

        order.save()
        return order
Пример #6
0
    def create_order(self):
        price = self.get_order_price()
        order = UserOrder.objects.create(
            user=self.user,
            order_price=price,
            actual_price=price,
            item=self.apply_vip,
        )

        order.order_id = create_order_id()

        order.save()
        return order
Пример #7
0
    def create_order(self,
                     user,
                     pid,
                     product_type,
                     num,
                     payment_terms,
                     is_insurance=None):
        is_insurance = str2bool(str(is_insurance))

        product = self.get_product_object(
            pid=pid,
            product_type=product_type,
        )

        if not self.before_create_order(
                user=user, product_type=product_type, product=product,
                num=num):
            return False

        if product.status != 'enable':
            return False

        order_price = self.get_order_price(product=product,
                                           num=num,
                                           is_insurance=is_insurance,
                                           user=user)
        order_type = ORDER_TYPE_MAP.get(product_type)

        order = UserOrder.objects.create(user=user,
                                         order_price=order_price,
                                         actual_price=order_price,
                                         item=product,
                                         payment_terms=payment_terms,
                                         order_desc=product.get_desc,
                                         is_insurance=is_insurance,
                                         order_type=order_type)

        order.order_id = create_order_id()
        order.save()

        # connect service
        protcol_data = self.create_protcol_data(
            service_name=product_type,
            event=sys._getframe().f_code.co_name,
            dest=product_type,
            order_id=order.order_id,
            product=product,
            product_type=product_type,
            item_num=num,
            user=user,
            is_insurance=is_insurance,
            order_price=order_price)

        service_obj = protcol_data.get('service_class')(**protcol_data)
        service_result = service_obj.process()

        self.after_create_order(user=user,
                                order=order,
                                service=service_result,
                                num=num)
        return order
Пример #8
0
    def create_order(self, user, pid, product_type, num, payment_terms, is_insurance=None):
        is_insurance = str2bool(str(is_insurance))

        product = self.get_product_object(
            pid=pid,
            product_type=product_type,
        )

        if not self.before_create_order(
            user=user,
            product_type=product_type,
            product=product,
            num=num
        ):
            return False

        if product.status != 'enable':
            return False

        order_price = self.get_order_price(
            product=product,
            num=num,
            is_insurance=is_insurance,
            user=user
        )
        order_type = ORDER_TYPE_MAP.get(product_type)

        order = UserOrder.objects.create(
            user=user,
            order_price=order_price,
            actual_price=order_price,
            item=product,
            payment_terms=payment_terms,
            order_desc=product.get_desc,
            is_insurance=is_insurance,
            order_type=order_type
        )

        order.order_id = create_order_id()
        order.save()

        # connect service
        protcol_data = self.create_protcol_data(
            service_name=product_type,
            event=sys._getframe().f_code.co_name,
            dest=product_type,
            order_id=order.order_id,
            product=product,
            product_type=product_type,
            item_num=num,
            user=user,
            is_insurance=is_insurance,
            order_price=order_price
        )

        service_obj = protcol_data.get('service_class')(**protcol_data)
        service_result = service_obj.process()

        self.after_create_order(
            user=user,
            order=order,
            service=service_result,
            num=num
        )
        return order