コード例 #1
0
def withdraw_list(r):
    start, num = get_paginator(r)
    params = r.REQUEST
    condition = make_conditions(r, type='type', bankcard_id='bankcard_id', verify_status='verify_status')
    if 'create_time_start' in params:
        condition['create_time__gte'] = get_stamp_by_date(params['create_time_start'])
    if 'create_time_end' in params:
        condition['create_time__lte'] = get_stamp_by_date(params['create_time_end'])
    if 'user_id' in r.REQUEST:
        condition['bankcard__user_id'] = r.REQUEST['user_id']
    withdraws = Withdraw.objects.filter(**condition)[start:start + num]
    total = Withdraw.objects.filter(**condition).count()
    data = []
    for wit in withdraws:
        d = wit.to_dict()
        if wit.reward == 0:
            d['reward'] = wit.amount
        d['bank_name'] = wit.bankcard.bank_name
        d['bank_city'] = wit.bankcard.bank_city
        d['owner_name'] = wit.bankcard.owner_name
        d['account_id'] = wit.bankcard.account_id
        d['account_name'] = wit.bankcard.account_name
        d['user_id'] = wit.bankcard.user_id
        d['user_qq'] = wit.bankcard.user.qq
        d['user_name'] = wit.bankcard.user.idc_name
        d['user_phone'] = wit.bankcard.user.phone
        d['create_time'] = wit.create_time
        data.append(d)

    return JsonResponse(code=Const['code.success'],
                        data={'total': total, 'withdraws': data})
コード例 #2
0
def rebate_export(r):
    start, num = get_paginator(r)
    params = r.REQUEST
    condition = make_conditions(r, type='type', bankcard_id='bankcard_id', verify_status='verify_status')
    if 'create_time_start' in params:
        condition['create_time__gte'] = get_stamp_by_date(params['create_time_start'])
    if 'create_time_end' in params:
        condition['create_time__lte'] = get_stamp_by_date(params['create_time_end'])
    if 'user_id' in r.REQUEST:
        condition['bankcard__user_id'] = r.REQUEST['user_id']
    withdraws = Withdraw.objects.filter(**condition)
    data = []
    for wit in withdraws:
        d = {}
        d['account_id'] = wit.bankcard.account_id
        d['owner_name'] = wit.bankcard.owner_name
        if wit.type == Const['model.withdraw.type.principal']:
            d['amount'] = wit.amount
        else:
            d['amount'] = wit.reward
        d['bank_name'] = wit.bankcard.bank_name
        d['account_name'] = wit.bankcard.account_name
        d['bank_city'] = wit.bankcard.bank_city
        data.append(d)
    metas = {
        'account_id': u'收款卡号',
        'owner_name': u'收款用户',
        'amount': u'返款金额',
        'bank_name': u'收款银行',
        'account_name': u'收款支行',
        'bank_city': u'归属',
    }
    return CsvResponse(metas, data)
コード例 #3
0
def user_listidc(r):
    start, num = get_paginator(r)
    condition = make_conditions(r, id='user_id', verify_status='verify_status')
    if 'register_start_time' in r.REQUEST:
        condition['register_time__gte'] = get_stamp_by_date(
            r.REQUEST['register_start_time'])
    users = User.objects.exclude(idc_name='').filter(**condition)[start:start +
                                                                  num]
    logger.debug(users.query)
    total = User.objects.exclude(idc_name='').filter(**condition).count()
    data = []
    for u in users:
        try:
            idcphotos = json.loads(u.idc_photo)
        except Exception:
            idcphotos = [None, None]
        data.append({
            'user_id': u.id,
            'register_time': u.register_time,
            'user_name': u.idc_name,
            'idc_photo1': idcphotos[0],
            'idc_photo2': idcphotos[1],
            'verify_status': u.verify_status,
        })
    return JsonResponse(code=Const['code.success'],
                        data={
                            'total': total,
                            'users': data
                        })
コード例 #4
0
def user_listappeal(r, uid):
    start, num = get_paginator(r)
    if r.REQUEST['type'] == '0':
        appeals = Appeal.objects.filter(complainant_id=uid).filter(
            order__tb__user__id=uid)[start:start + num]
    else:
        appeals = Appeal.objects.filter(respondent_id=uid).filter(
            order__tb__user__id=uid)[start:start + num]
    data = []
    for a in appeals:
        data.append(
            obj_to_dict(a,
                        'id',
                        'order_id',
                        'complainant_id',
                        'respondent_id',
                        'create_time',
                        'status',
                        pics='get_pics',
                        description='get_description',
                        complainant_qq='get_complainant_qq',
                        respondent_qq='get_respondent_qq',
                        talks='get_talks',
                        type='get_type'))
    return JsonResponse(code=Const['code.success'], data=data)
コード例 #5
0
def tbaccount_list(r):
    start, num = get_paginator(r)
    condition = make_conditions(r, user_id='user_id', status='verify_status')
    if 'register_start_time' in r.REQUEST:
        condition['user__register_time__gte'] = get_stamp_by_date(
            r.REQUEST['register_start_time'])
    tbs = TBAccount.objects.filter(**condition)[start:start + num]
    total = TBAccount.objects.filter(**condition).count()
    data = []
    for t in tbs:

        d = t.to_dict()
        try:
            pics = json.loads(t.pic_paths)
        except Exception:
            pics = [None, None]
        if not isinstance(pics, list):
            pics = [None, None]

        # 获取user的身份证姓名信息,如果没有提交,那么使用旺旺号码
        idc_name = t.user.idc_name
        if (idc_name):
            d['name'] = idc_name
        else:
            d['name'] = u'未绑定身份证--' + d['name']
        d['pic1'] = pics[0]
        d['pic2'] = pics[1]
        d['register_time'] = t.user.register_time
        d['tb_register_time'] = t.register_time  # 旺旺注册时间
        data.append(d)
    return JsonResponse(code='code.success',
                        data={
                            'total': total,
                            'tbaccounts': data
                        })
コード例 #6
0
def recharge_list(r):
    start, num = get_paginator(r)
    condition = make_conditions(r, user_id='user_id', verify_status='verify_status')
    recharges = Recharge.objects.filter(**condition)[start:start + num]
    total = Recharge.objects.filter(**condition).count()
    data = []
    for rec in recharges:
        d = rec.to_dict()
        d['user_qq'] = rec.user.qq
        d['user_name'] = rec.user.idc_name
        d['user_phone'] = rec.user.phone
        data.append(d)
    return JsonResponse(code=Const['code.success'],
                        data={'total': total, 'recharges': data})
コード例 #7
0
def notice_list(r):
    start, num = get_paginator(r)
    conditions = {}
    params = r.REQUEST
    if 'type' in params:
        conditions['type'] = params['type']
    if 'publish_start_date' in params:
        conditions['create_time__gte'] = get_stamp_by_date(params['publish_start_date'])
    if 'publish_end_date' in params:
        conditions['create_time__lte'] = get_stamp_by_date(params['publish_end_date'])
    if 'keyword' in params:
        conditions['title__contains'] = params['keyword']
    total = Notice.objects.filter(**conditions).count()
    notices = Notice.objects.filter(**conditions)[start:start + num]
    return JsonResponse(code=Const['code.success'],
                        data={'total': total, 'notices': [n.to_dict() for n in notices]})
コード例 #8
0
def user_listaccount(r):
    start, num = get_paginator(r)
    condition = make_conditions(r, id='user_id')
    total = User.objects.filter(**condition).count()
    users = User.objects.filter(**condition)[start:start + num]
    data = []
    for u in users:
        data.append({
            'principal': u.principal,
            'commission': u.commission,
            'is_close_seller_return': u.is_close_sellerreturn,
            'user_id': u.id
        })
    return JsonResponse(code=Const['code.success'],
                        data={
                            'total': total,
                            'users': data
                        })
コード例 #9
0
def bankcard_list(r):
    start, num = get_paginator(r)
    condition = make_conditions(r,
                                user_id='user_id',
                                verify_status='verify_status')
    if 'register_start_time' in r.REQUEST:
        condition['user__register_time__gte'] = get_stamp_by_date(
            r.REQUEST['register_start_time'])
    bankcards = Bankcard.objects.filter(**condition)[start:start + num]
    total = Bankcard.objects.filter(**condition).count()
    data = []
    for b in bankcards:
        d = b.to_dict()
        d['register_time'] = b.user.register_time
        data.append(d)
    return JsonResponse(code='code.success',
                        data={
                            'total': total,
                            'bankcards': data
                        })
コード例 #10
0
def user_list(r):
    start, num = get_paginator(r)
    conditions = make_conditions(r,
                                 pk='user_id',
                                 phone='phone',
                                 qq='qq',
                                 buyer_level='buyer_level',
                                 register_time='register_time')
    if 'register_time' in conditions:
        conditions['register_time'] = get_stamp_by_date(
            conditions['register_time'])
    total = User.objects.filter(**conditions).count()
    users = User.objects.filter(**conditions)[start:start + num]
    data = []
    for u in users:
        try:
            idcphotos = json.loads(u.idc_photo)
        except Exception:
            idcphotos = [None, None]
        data.append({
            'id': u.id,
            'register_time': u.register_time,
            'user_name': u.idc_name,
            'phone': u.phone,
            'qq': u.qq,
            'buyer_level': u.buyer_level,
            'seller_level': u.seller_level,
            'idc_photo1': idcphotos[0],
            'idc_photo2': idcphotos[1],
            'verify_status': u.verify_status,
            'principal': u.principal,
            'commission': u.commission,
            'flags': u.flag_dump(),
        })
    return JsonResponse(code=Const['code.success'],
                        data={
                            'total': total,
                            'users': data
                        })
コード例 #11
0
def record_list(r):
    start, num = get_paginator(r)
    condition = make_conditions(r,
                                user_id='user_id',
                                start_time='start_time',
                                end_time='end_time')
    if 'start_time' in condition:
        condition['create_time__gte'] = get_stamp_by_date(
            condition['start_time'])
    if 'end_time' in condition:
        condition['create_time__lte'] = get_stamp_by_date(
            condition['end_time'])
    total = Record.objects.filter(**sub_dict(
        condition, 'user_id', 'create_time__lte', 'create_time__gte')).count()
    records = Record.objects.filter(
        **sub_dict(condition, 'user_id', 'create_time__lte',
                   'create_time__gte'))[start:start + num]
    return JsonResponse(code=Const['code.success'],
                        data={
                            'total': total,
                            'records': [re.to_dict() for re in records]
                        })
コード例 #12
0
def user_listrecord(r, uid):
    start, num = get_paginator(r)
    return JsonResponse(code=Const['code.success'], data=[x.to_dict() for x in \
                                                          Record.objects.filter(user_id=uid, type=r.REQUEST['type'])[
                                                          start:start + num]])
コード例 #13
0
def user_listbuyerorder(r, mid):
    order_type = int(
        r.REQUEST['order_type']) if 'order_type' in r.REQUEST else -1
    order_status = int(
        r.REQUEST['order_status']) if 'order_status' in r.REQUEST else 0
    logger.debug(order_status)
    start, num = get_paginator(r)
    # buyer = User.objects.get(pk=mid)
    sort_adv = False
    args = [
        Q(tb__user__id=mid),
    ]

    if order_type == 0:
        args.append(
            Q(order_type__in=(Const['model.order.type.flow'],
                              Const['model.order.type.collect'])))
    elif order_type == 1:
        args.append(~Q(order_type__in=(Const['model.order.type.flow'],
                                       Const['model.order.type.collect'])))
        # else:
        # return JsonResponse(code=Const['code.request_error'])

    if order_status == 1:
        # 待操作
        args.append(
            Q(status__in=[
                Const['model.order.status.received'],
                Const['model.order.status.step1'],
                Const['model.order.status.step2'],
                # Const['model.order.status.step3'],
                Const['model.order.status.step9'],
                Const['model.order.status.step10'],
            ]))
    elif order_status == 3:
        args.append(Q(status=Const['model.order.status.completed']))
        # 待返款
    #        args.append(Q(status__in=[
    #                    Const['model.order.status.step3'],
    #                    Const['model.order.status.returnmoney'],
    #                    ]))
    elif order_status == 2:
        # 待评价
        args.append(Q(status=Const['model.order.status.deliver']))
    # Q(status__in=[
    #                    Const['model.order.status.deliver'],
    #                    Const['model.order.status.comment'],
    #                    Const['model.order.status.affirm'],
    #                    Const['model.order.status.completed'],
    #                    ]))
    else:
        sort_adv = True
        status_list = [
            Const['model.order.status.received'],
            Const['model.order.status.step1'],
            Const['model.order.status.step2'],
            Const['model.order.status.step3'],
            Const['model.order.status.step9'],
            Const['model.order.status.returnmoney'],
            Const['model.order.status.comment'],
            Const['model.order.status.deliver'],
            Const['model.order.status.affirm'],
        ]
        clauses = ' '.join([
            'WHEN `tasks_order`.`status`=%s THEN %s' % (pk, 100 - i)
            for i, pk in enumerate(status_list)
        ])
        ordering = 'CASE %s END' % clauses

        args.append(~Q(status__in=[
            Const['model.order.status.cancel'],
        ]))
    be15 = before15(15)
    if sort_adv:
        orders = Order.objects.filter(*args) \
                     .extra(select={'_ordering': ordering}, order_by=('-_ordering', 'receive_time')) \
                     .filter((Q(status=Const['model.order.status.completed']) & Q(update_time__gte=be15)) | \
                             ~Q(status=Const['model.order.status.completed']))[start:start + num]
    else:
        orders = Order.objects.filter(*args).filter((Q(status=Const['model.order.status.completed']) & \
                                                     Q(update_time__gte=be15)) | ~Q(
                status=Const['model.order.status.completed']))[start:start + num]
    # logger.info('user_listbuyerorder sql:%s'%orders.query)
    data = []
    for o in orders:
        data.append({
            'order_id': o.id,
            'frozen': o.frozen,
            'photo_url': json.loads(o.task.commodities)[0]['pic_path'],
            'date': o.receive_time,
            'pay': o.buyer_gain,
            'cost': o.dianzi(),
            'order_type': o.get_general_order_type(),
            'order_status': 1 if o.status == 108 else o.status,
            'return_type': o.task.return_type,
            'tb_wangwang': o.tb.wangwang if o.tb else '',
            'order_type2': o.order_type,
        })
    return JsonResponse(code=Const['code.success'], data=data)