Beispiel #1
0
def resend_package(infos, agent_id):
    body = get_app()
    body['data'] = loads(f'''
            {{		
                "action": "print.json.cn",
                "agent_id": "{agent_id}",
                "print_type": "3",
                "batch": "true",
                "print_data": []
            }}
        ''')
    for info in infos:
        body['data']['print_data'].append(loads(f'''
                {{
                    "sequence": "1/1",
                    "template_id": "666703",
                    "cp_code": "YUNDA",
                    "pickup_code": "",
                    "print_type": "3",
                    "user_name": "",
                    "note": "",
                    "goods_name": "{info['goods_name']}",
                    "weight": "",
                    "tid": "{info['tid']}",
                    "recipient": {{
                        "address": {{
                            "city": "{info['recv_city']}",
                            "detail": "{info['recv_addr']}",
                            "district": "{info['recv_county']}",
                            "province": "{info['send_prov']}"
                        }},
                        "mobile": "{info['recv_tel']}",
                        "name": "{info['recv_name']}",
                        "phone": ""
                    }},
                    "sender": {{
                        "address": {{
                            "city": "{info['send_city']}",
                            "detail": "{info['send_addr']}",
                            "district": "{info['send_county']}",
                            "province": "{info['send_prov']}"
                        }},
                        "mobile": "{info['send_tel']}",
                        "name": "{info['send_name']}",
                        "phone": ""
                    }},
                    "routing_info": {{}},
                    "waybill_code": "{info['order_id']}"
                }}
            '''))
    body['data'] = dumps(body['data'])
    return send_req(body, agent_id=agent_id)
Beispiel #2
0
def change_password(request):
    body = loads(request.body)
    user = User.objects.get(username=request.user.username)
    user.set_password(body.get('newPassWord'))
    user.save()
    logout(request)
    return success()
Beispiel #3
0
def proxy_list(request):
    body = loads(request.body)
    proxy_id = body.get('proxyId', '')
    users = UserInfo.objects.all().order_by('-create_date')
    proxy_bal_sum = dict()
    proxy_data = []
    for user in users:
        if user.reference != '':
            if proxy_bal_sum.get(user.reference) is None:
                proxy_bal_sum[user.reference] = 0
            proxy_bal_sum[user.reference] += user.bal

    for user in users:
        if user.role == 'proxy':
            if proxy_id != '' and proxy_id != user.user_id:
                continue
            proxy_data.append({
                'user_id': user.user_id,
                'bal': user.bal,
                'price': user.price,
                'qq': user.qq,
                'email': user.email,
                'create_date': user.create_date,
                'bal_summ': proxy_bal_sum.get(user.user_id, 0),
            })
    return success(proxy_data)
Beispiel #4
0
def charge(request):
    body = loads(request.body)
    ChargeInfo.objects.create(user_id=request.user.username,
                              charge_type=body.get('chartType'),
                              order_id=body.get('orderId'),
                              amt=body.get('amt'))
    return success()
Beispiel #5
0
def charge_list(request):
    body = loads(request.body)
    user_id = body.get('userId')
    flow_date = body.get('chargeDate')
    bgn_date = None
    end_date = None
    if flow_date[0] != '':
        bgn_date = parse_datetime(flow_date[0])
    if flow_date[1] != '':
        end_date = parse_datetime(flow_date[1])
    flow_min_amt = body.get('chargeMinAmt', -1)
    flow_max_amt = body.get('chargeMaxAmt', -1)
    page_size = int(body.get('pageSize', 10))
    page = body.get('page', 1)
    charges = ChargeInfo.objects.filter(
        user_id__contains=user_id).order_by('-create_date')
    if all([bgn_date, end_date]):
        charges = charges.filter(create_date__gt=bgn_date,
                                 create_date__lt=end_date)
    if flow_min_amt != -1:
        charges = charges.filter(amt__gt=flow_min_amt)
    if flow_max_amt != -1:
        charges = charges.filter(amt__lt=flow_max_amt)

    res = dict()
    p = Paginator(charges, page_size)
    res['total'] = p.count
    res['pageSize'] = page_size
    res['pageNum'] = page
    res['data'] = serialize(p.page(page).object_list)
    return success(res)
Beispiel #6
0
def order_list(request):
    body = loads(request.body)
    order_status = body.get('orderStatus', '')
    order_id = body.get('orderId', '')
    tid = body.get('tid', '')
    flow_date = body.get('chargeDate')
    bgn_date = None
    end_date = None
    if flow_date[0] != '':
        bgn_date = parse_datetime(flow_date[0])
    if flow_date[1] != '':
        end_date = parse_datetime(flow_date[1])
    page_size = int(body.get('pageSize', 10))
    page = body.get('page', 1)

    consumes = ConsumeInfo.objects.filter(
        user_id=request.user.username).order_by('-update_date')
    if order_status != '':
        consumes = consumes.filter(status=order_status)
    if order_id != '':
        consumes = consumes.filter(order_id=order_id)
    if tid != '':
        consumes = consumes.filter(ec_id=tid)
    if all([bgn_date, end_date]):
        consumes = consumes.filter(create_date__gt=bgn_date,
                                   create_date__lt=end_date)

    res = dict()
    p = Paginator(consumes, page_size)
    res['total'] = p.count
    res['pageSize'] = page_size
    res['pageNum'] = page
    res['data'] = serialize(p.page(page).object_list)

    return success(res)
Beispiel #7
0
def add_send_org(request):
    body = loads(request.body)
    try:
        addr = AddressInfo.objects.get(addr_type='send',
                                       name=body.get('sender', ''),
                                       address=body.get('sendAddress', ''),
                                       prov=body.get('sendProv', ''),
                                       city=body.get('sendCity', ''),
                                       county=body.get('sendCounty', ''),
                                       tel=body.get('sendTel', ''),
                                       org_name=body.get('orgName', ''),
                                       postid=body.get('sendPostid', ''))

    except AddressInfo.DoesNotExist:
        AddressInfo.objects.all().update(is_default='0')
        AddressInfo.objects.create(addr_type='send',
                                   name=body.get('sender', ''),
                                   address=body.get('sendAddress', ''),
                                   prov=body.get('sendProv', ''),
                                   city=body.get('sendCity', ''),
                                   county=body.get('sendCounty', ''),
                                   tel=body.get('sendTel', ''),
                                   org_name=body.get('orgName', ''),
                                   postid=body.get('sendPostid', ''))

    return success()
Beispiel #8
0
def sign_up(request):
    body = loads(request.body)
    user_id = body.get('userid', '')
    password = body.get('passWord', '')
    tel = body.get('tel', '')
    qq = body.get('qq', '')
    email = body.get('email', '')
    vailate_id = body.get('vid', '')
    vailate_str = body.get('vstr', '')
    proxy_id = body.get('proxy', '')

    try:
        v = ValidateImg.objects.get(id=vailate_id)
        if vailate_str.upper() != v.validate_str:
            return error('03', '验证码错误!')
    except ValidateImg.DoesNotExist:
        return error('02', '验证码无效!请刷新重试!')

    try:
        User.objects.get(username=user_id)
        return error('01', '用户名已存在!')
    except User.DoesNotExist:
        if proxy_id != '':
            try:
                UserInfo.objects.get(user_id=proxy_id, role='proxy')
            except UserInfo.DoesNotExist:
                proxy_id = ''
        User.objects.create_user(user_id, '', password)
        UserInfo.objects.create(user_id=user_id,
                                tel=tel,
                                email=email,
                                reference=proxy_id,
                                qq=qq)
        return success()
Beispiel #9
0
def sign_in(request):
    body = loads(request.body)
    userid = body.get('userid', '')
    password = body.get('passWord', '')
    vailate_id = body.get('vid', '')
    vailate_str = body.get('vstr', '')

    try:
        v = ValidateImg.objects.get(id=vailate_id)
        if vailate_str.upper() != v.validate_str:
            return error('03', '验证码错误!')
    except ValidateImg.DoesNotExist:
        return error('02', '验证码无效!请刷新重试!')

    user = authenticate(username=userid, password=password)
    if user is not None:
        login(request, user)
        u = UserInfo.objects.get(user_id=user.username)
        res_data = serialize(u)
        res_data['defaultAddr'] = dict()
        try:
            def_addr = AddressInfo.objects.get(addr_type='send',
                                               is_default='1')
            res_data['defaultAddr'] = serialize(def_addr)
        except AddressInfo.DoesNotExist:
            pass
        return success(res_data)
    else:
        return error('01', '用户名或密码错误!')
Beispiel #10
0
def export_resend_detail(request):
    body = loads(request.body)
    order_ids = body.get('orderIds', '')
    rows = []

    if order_ids != '':
        order_id_arry = order_ids.split(',')
        consumes = ConsumeInfo.objects.filter(
            order_id__in=order_id_arry).order_by('-update_date')
        for i, c in enumerate(consumes):
            row = [
                i + 1, c.user_id, c.ec_id, c.order_id, c.goods_name,
                c.receive_prov, c.receive_city, c.receive_county,
                c.receive_addr, c.receiver, c.receiver_tel,
                format_datetime(c.create_date, "%Y-%m-%d %H:%M:%S")
            ]
            rows.append(row)

    headers = [
        '序号', '账号', '淘宝订单号', '运单号', '包裹类型', '收件省份', '收件城市', '收件地区', '收件详细地址',
        '收件人姓名', '收件人电话', '创建时间'
    ]

    write_excel(f'/root/kbao/data/excel/{request.user.username}.xlsx', rows,
                headers)

    return success({'excel_url': f'/data/excel/{request.user.username}.xlsx'})
Beispiel #11
0
def check_pay(request):
    # 创建用于进行支付宝支付的工具对象
    body = loads(request.body)
    order_id = body["order_id"]
    ali_url, alipay = kb_alipay()
    request_time = 0
    while True:
        # 调用alipay工具查询支付结果
        response = alipay.api_alipay_trade_query(order_id)  # response是一个字典

        # 判断支付结果
        code = response.get("code")  # 支付宝接口调用成功或者错误的标志
        trade_status = response.get("trade_status")  # 用户支付的情况

        if code == "10000" and trade_status == "TRADE_SUCCESS":
            # 表示用户支付成功
            # 返回前端json,通知支付成功
            return success({"code": 0, "message": "支付成功"})

        elif code == "40004" or (code == "10000"
                                 and trade_status == "WAIT_BUYER_PAY"):
            # 表示支付宝接口调用暂时失败,(支付宝的支付订单还未生成) 后者 等待用户支付
            # 继续查询
            print(code)
            print(trade_status)
            request_time += 1
            if request_time < 10:
                continue
            else:
                return error({"code": 0, "message": "支付失败"})
        else:
            # 支付失败
            # 返回支付失败的通知
            return success({"code": code, "message": trade_status})
Beispiel #12
0
def address_clean(addr):
    body = get_app('cloud.address.cleanse')
    body['data'] = loads('''
                {		
                    "multimode":false,
                    "cleanTown":false
                }
            ''')
    body['data']['text'] = addr
    body['data'] = dumps(body['data'])
    headers = {
        'content-type': "application/x-www-form-urlencoded",
    }
    res = requests.post('https://kop.kuaidihelp.com/api', headers=headers, data=body)
    if int(res.status_code) == 200:
        print(f'已调用快宝云数据清洗API...')
        print(dumps(res.json()))
        jsn = res.json()
        if jsn['code'] == 0:
            return {
                'status': '00',
                'prov': jsn['data'][0]['province'],
                'city': jsn['data'][0]['city'],
                'county': jsn['data'][0]['district'],
                'addr': jsn['data'][0]['address']
            }
        else:
            return {'status': '01', 'message': '地址解析失败!'}
    else:
        return {'status': '01', 'message': '请求失败!'}
Beispiel #13
0
def update_notice(request):
    body = loads(request.body)
    n = PublicNotice.objects.get(id=body.get('id'))
    n.content = body.get('content', '')
    if body.get('speakTo', '') != '':
        n.speak_to = body.get('speakTo')
    n.save()
    return success()
Beispiel #14
0
def update_kf(request):
    body = loads(request.body)
    for kf_id in body:
        kf = QQServiceInfo.objects.get(id=kf_id)
        kf.name = body[kf_id].get('name', '')
        kf.qq = body[kf_id].get('qq', '')
        kf.valid = body[kf_id].get('valid', '')
        kf.save()
    return success()
Beispiel #15
0
def reset_password(request):
    body = loads(request.body)
    user = User.objects.get(username=body.get('userId'))
    characters = string.digits + string.ascii_uppercase

    random_str = ''.join([random.choice(characters) for j in range(8)])
    user.set_password(random_str)
    user.save()
    return success({'new_password': random_str})
Beispiel #16
0
def export_order_list(request):
    body = loads(request.body)
    user_id = body.get('userId', '')
    order_id = body.get('orderId', '')
    tid = body.get('tid', '')
    express_type = body.get('expressType', '')
    flow_date = body.get('orderDate')
    print_date = body.get('printDate')
    order_status = body.get('orderStatus', '')
    bgn_date = None
    end_date = None
    print_bgn_date = None
    print_end_date = None
    if flow_date[0] != '':
        bgn_date = parse_datetime(flow_date[0])
    if flow_date[1] != '':
        end_date = parse_datetime(flow_date[1])
    if print_date[0] != '':
        print_bgn_date = parse_datetime(print_date[0])
    if print_date[1] != '':
        print_end_date = parse_datetime(print_date[1])
    consumes = ConsumeInfo.objects.filter(
        user_id__contains=user_id).order_by('-create_date')
    if order_id != '':
        consumes = consumes.filter(order_id=order_id)
    if tid != '':
        consumes = consumes.filter(ec_id=tid)
    if order_status != '':
        consumes = consumes.filter(status=order_status)
    if express_type is not None and express_type != '':
        consumes = consumes.filter(express_type=express_type)
    if all([bgn_date, end_date]):
        consumes = consumes.filter(create_date__gt=bgn_date,
                                   create_date__lt=end_date)
    if all([print_bgn_date, print_end_date]):
        consumes = consumes.filter(print_date__isnull=False).filter(
            print_date__gt=print_bgn_date, print_date__lt=print_end_date)

    headers = [
        '序号', '账号', '淘宝订单号', '运单号', '包裹类型', '收件省份', '收件城市', '收件地区', '收件详细地址',
        '收件人姓名', '收件人电话', '快递品牌', '创建时间', '打印时间'
    ]
    rows = []
    for i, c in enumerate(consumes):
        row = [
            i + 1, c.user_id, c.ec_id, c.order_id, c.goods_name,
            c.receive_prov, c.receive_city, c.receive_county, c.receive_addr,
            c.receiver, c.receiver_tel, c.express_name,
            format_datetime(c.create_date, "%Y-%m-%d %H:%M:%S"),
            format_datetime(c.print_date, "%Y-%m-%d %H:%M:%S")
        ]
        rows.append(row)
    write_excel(f'/root/kbao/data/excel/{request.user.username}.xlsx', rows,
                headers)

    return success({'excel_url': f'/data/excel/{request.user.username}.xlsx'})
Beispiel #17
0
def order_list(request):
    body = loads(request.body)
    user_id = body.get('userId', '')
    order_id = body.get('orderId', '')
    tid = body.get('tid', '')
    express_type = body.get('expressType', '')
    flow_date = body.get('orderDate')
    print_date = body.get('printDate')
    order_status = body.get('orderStatus', '')
    bgn_date = None
    end_date = None
    print_bgn_date = None
    print_end_date = None
    if flow_date[0] != '':
        bgn_date = parse_datetime(flow_date[0])
    if flow_date[1] != '':
        end_date = parse_datetime(flow_date[1])
    if print_date[0] != '':
        print_bgn_date = parse_datetime(print_date[0])
    if print_date[1] != '':
        print_end_date = parse_datetime(print_date[1])
    page_size = int(body.get('pageSize', 10))
    page = body.get('page', 1)
    consumes = ConsumeInfo.objects.filter(
        user_id__contains=user_id).order_by('-update_date')
    if order_id != '':
        consumes = consumes.filter(order_id=order_id)
    if tid != '':
        consumes = consumes.filter(ec_id=tid)
    if order_status != '':
        consumes = consumes.filter(status=order_status)
    if express_type is not None and express_type != '':
        consumes = consumes.filter(express_type=express_type)
    if all([bgn_date, end_date]):
        consumes = consumes.filter(create_date__gt=bgn_date,
                                   create_date__lt=end_date)
    if all([print_bgn_date, print_end_date]):
        consumes = consumes.filter(print_date__isnull=False).filter(
            print_date__gt=print_bgn_date, print_date__lt=print_end_date)
    res = dict()
    p = Paginator(consumes, page_size)
    res['total'] = p.count
    res['pageSize'] = page_size
    res['pageNum'] = page
    res['data'] = serialize(p.page(page).object_list)
    for dt in res['data']:
        addr = AddressInfo.objects.get(id=dt['send_id'])
        dt['org_name'] = addr.org_name
    return success(res)
Beispiel #18
0
def export_order_list(request):
    body = loads(request.body)
    order_status = body.get('orderStatus', '')
    order_id = body.get('orderId', '')
    tid = body.get('tid', '')
    flow_date = body.get('chargeDate')
    bgn_date = None
    end_date = None
    if flow_date[0] != '':
        bgn_date = parse_datetime(flow_date[0])
    if flow_date[1] != '':
        end_date = parse_datetime(flow_date[1])

    consumes = ConsumeInfo.objects.filter(
        user_id=request.user.username).order_by('batch', 'idx', '-update_date')
    if order_status != '':
        consumes = consumes.filter(status=order_status)
    if order_id != '':
        consumes = consumes.filter(order_id=order_id)
    if tid != '':
        consumes = consumes.filter(ec_id=tid)
    if all([bgn_date, end_date]):
        consumes = consumes.filter(create_date__gt=bgn_date,
                                   create_date__lt=end_date)

    express_map = dict()
    db = MySQL.connect('127.0.0.1', 'root', 'yujiahao', '3306', 'kbao')
    for row in db.select(
            "select code_value, code_value_name from portal_codeinfo where code_type='express_type'"
    ):
        express_map[row[0]] = row[1]

    headers = [
        '序号', '淘宝订单号', '运单号', '包裹类型', '收件省份', '收件城市', '收件地区', '收件详细地址',
        '收件人姓名', '收件人电话', '快递品牌', '创建时间'
    ]
    rows = []
    for i, c in enumerate(consumes):
        row = [
            i + 1, c.ec_id, c.order_id, c.goods_name, c.receive_prov,
            c.receive_city, c.receive_county, c.receive_addr, c.receiver,
            c.receiver_tel, express_map[c.express_type],
            format_datetime(c.create_date, "%Y-%m-%d %H:%M:%S")
        ]
        rows.append(row)
    write_excel(f'/root/kbao/data/excel/{request.user.username}.xlsx', rows,
                headers)

    return success({'excel_url': f'/data/excel/{request.user.username}.xlsx'})
Beispiel #19
0
def order_get(request):
    body = loads(request.body)
    order_id = body.get('orderId', '')
    consumes = None
    if order_id != '':
        consumes = ConsumeInfo.objects.filter(order_id=order_id)

    res = dict()
    try:
        res['total'] = 0 if consumes is None else consumes.count()
        res['data'] = serialize(consumes)
    except:
        res['total'] = 0
        res['data'] = []
    return success(res)
Beispiel #20
0
def charge_verify(request):
    body = loads(request.body)
    c = ChargeInfo.objects.get(id=body.get('id'))

    if c.status == 'pending' and body.get('chargeStatus') == 'done':
        user = UserInfo.objects.get(user_id=c.user_id)
        if c.charge_type == 'bal':
            user.bal = user.bal + c.amt
        elif c.charge_type == 'be_vip':
            user.user_type = 'vip'
        elif c.charge_type == 'be_proxy':
            user.user_type = 'proxy'
        user.save()
    c.status = body.get('chargeStatus')
    c.save()
    return success()
Beispiel #21
0
def user_list(request):
    body = loads(request.body)
    user_id = body.get('userId', '')
    proxy_id = body.get('proxyId', '')
    page_size = int(body.get('pageSize', 10))
    page = body.get('page', 1)
    users = UserInfo.objects.filter(
        role='custom', user_id__contains=user_id).order_by('-create_date')
    if proxy_id != '':
        users = users.filter(reference=proxy_id)
    res = dict()
    p = Paginator(users, page_size)
    res['total'] = p.count
    res['pageSize'] = page_size
    res['pageNum'] = page
    res['data'] = serialize(p.page(page).object_list)
    return success(res)
Beispiel #22
0
def order_list(request):
    body = loads(request.body)
    order_status = body.get('orderStatus', '')
    order_id = body.get('orderId', '')
    tid = body.get('tid', '')
    send_id = body.get('id', '')
    flow_date = body.get('chargeDate')
    bgn_date = None
    end_date = None
    if flow_date[0] != '':
        bgn_date = parse_datetime(flow_date[0])
    if flow_date[1] != '':
        end_date = parse_datetime(flow_date[1])
    page_size = int(body.get('pageSize', 10))
    page = body.get('page', 1)

    users = UserInfo.objects.filter(reference=request.user.username)
    user_ids = [u.user_id for u in users]
    today = now()

    consumes = ConsumeInfo.objects.filter(user_id__in=user_ids,
                                          update_date__date=datetime.date(
                                              today.year, today.month,
                                              today.day)).order_by(
                                                  'batch', 'idx',
                                                  '-update_date')
    if order_status != '':
        consumes = consumes.filter(status=order_status)
    if order_id != '':
        consumes = consumes.filter(order_id=order_id)
    if send_id != '':
        consumes = consumes.filter(send_id=send_id)
    if tid != '':
        consumes = consumes.filter(ec_id=tid)
    if all([bgn_date, end_date]):
        consumes = consumes.filter(create_date__gt=bgn_date,
                                   create_date__lt=end_date)

    res = dict()
    p = Paginator(serialize(consumes), page_size)
    res['total'] = p.count
    res['pageSize'] = page_size
    res['pageNum'] = page
    res['data'] = p.page(page).object_list

    return success(res)
Beispiel #23
0
def order_resend(request):
    body = loads(request.body)
    infos = []
    resend_length = 0
    consume = ConsumeInfo.objects.get(id=body.get('id'))
    addr = AddressInfo.objects.get(id=consume.send_id)
    c = consume
    info = {
        'tid': c.ec_id,
        'order_id': c.order_id,
        'goods_name': c.goods_name,
        'send_city': c.send_city,
        'send_addr': c.send_addr,
        'send_county': c.send_county,
        'send_prov': c.send_prov,
        'send_tel': c.sender_tel,
        'send_name': c.sender,
        'recv_city': c.receive_city,
        'recv_addr': c.receive_addr,
        'recv_county': c.receive_county,
        'recv_prov': c.receive_prov,
        'recv_tel': c.receiver_tel,
        'recv_name': c.receiver,
    }
    infos.append(info)
    res = resend_package(infos, addr.agent_id)
    if res['status'] == '00':
        resend_length = 1
        status = 'pending'
        if res['is_printed']:
            status = 'done'
            c.print_date = res.get('print_date')
        if c.status != 'done':
            c.status = status
            c.task_id = res['task_id']
        c.resend_num = 1 if c.resend_num is None else c.resend_num + 1
        c.save()

    if resend_length > 0:
        return success({'resend': '1'})

    return success({'resend': '0'})
Beispiel #24
0
def charge_pay(request):
    body = loads(request.body)
    amount = body["amount"]
    userid = body["userid"]
    # 创建用于进行支付宝支付的工具对象
    ali_url, alipay = kb_alipay()
    order_id = userid + format_datetime(now(), YYYYMMDDHHMMSS)
    # 电脑网站支付,需要跳转到https://openapi.kbalipay.com/gateway.do? + order_string
    order_string = alipay.api_alipay_trade_page_pay(
        out_trade_no=order_id,
        total_amount=str(amount),  # 将Decimal类型转换为字符串交给支付宝
        subject="商贸商城",
        return_url=ali_url.get('return_url') + "?orderId=" + order_id,
        notify_url=ali_url.get('notify_url')  # 可选, 不填则使用默认notify url
    )

    # 让用户进行支付的支付宝页面网址
    url = ali_url.get('alipay_url') + "?" + order_string

    return success({"code": 0, "message": "请求支付成功", "url": url})
Beispiel #25
0
def udpate_user_info(request):
    body = loads(request.body)
    user = UserInfo.objects.get(user_id=body.get('userId'))
    user_id = body.get('userId')
    if body.get('bal') is not None:
        UserUpdateHistory.objects.create(user_id=user_id,
                                         kf_user_id=request.user.username,
                                         update_col='余额',
                                         before_update=user.bal,
                                         after_update=body.get('bal'))
        user.bal = body.get('bal')
    if body.get('userType') is not None:
        UserUpdateHistory.objects.create(user_id=user_id,
                                         kf_user_id=request.user.username,
                                         update_col='用户等级',
                                         before_update=user.user_type,
                                         after_update=body.get('userType'))
        user.user_type = body.get('userType')
    if body.get('price') is not None:
        UserUpdateHistory.objects.create(user_id=user_id,
                                         kf_user_id=request.user.username,
                                         update_col='用户价格',
                                         before_update=user.price,
                                         after_update=body.get('price'))
        user.price = body.get('price')
    if body.get('qq') is not None:
        UserUpdateHistory.objects.create(user_id=user_id,
                                         kf_user_id=request.user.username,
                                         update_col='QQ',
                                         before_update=user.qq,
                                         after_update=body.get('qq'))
        user.qq = body.get('qq')
    if body.get('email') is not None:
        UserUpdateHistory.objects.create(user_id=user_id,
                                         kf_user_id=request.user.username,
                                         update_col='邮箱',
                                         before_update=user.email,
                                         after_update=body.get('email'))
        user.email = body.get('email')
    user.save()
    return success()
Beispiel #26
0
def add_proxy(request):
    body = loads(request.body)
    user_id = body.get('userid', '')
    password = body.get('passWord', '')
    tel = body.get('tel', '')
    qq = body.get('qq', '')
    email = body.get('email', '')
    price = body.get('price', '')

    try:
        User.objects.get(username=user_id)
        return error('01', '用户名已存在!')
    except User.DoesNotExist:
        User.objects.create_user(user_id, '', password)
        UserInfo.objects.create(user_id=user_id,
                                role='proxy',
                                tel=tel,
                                email=email,
                                price=price,
                                qq=qq)
        return success()
Beispiel #27
0
def get_print_res(task_id, sleep_time=3, agent_id=None):
    print(f'task_id({task_id})推迟2s执行调用快宝云API...')
    time.sleep(sleep_time)
    body = get_app()
    body['data'] = loads(f'''
            {{		
                "action": "get.task.info",
                "agent_id": "{agent_id}",
                "task_id": "{task_id}"
            }}
        ''')
    body['data'] = dumps(body['data'])
    headers = {
        'content-type': "application/x-www-form-urlencoded",
    }
    res = requests.post('https://kop.kuaidihelp.com/api', headers=headers, data=body)
    if int(res.status_code) == 200:
        print(f'task_id({task_id})已调用快宝云API...')
        print(dumps(res.json()))
        if res.json().get('data').get('status_code') == 'PRINT_SUCCESS':
            return True, datetime.fromtimestamp(res.json().get('data').get('print_at'))
    return False, None
Beispiel #28
0
def order_send(request):
    body = loads(request.body)
    c = ConsumeInfo.objects.get(id=body.get('id'))
    addr = AddressInfo.objects.get(id=c.send_id)
    order_info = {
        'tid': c.ec_id,
        'goods_name': c.goods_name,
        'send_city': c.send_city,
        'send_addr': c.send_addr,
        'send_county': c.send_county,
        'send_prov': c.send_prov,
        'send_tel': c.sender_tel,
        'send_name': c.sender,
        'recv_city': c.receive_city,
        'recv_addr': c.receive_addr,
        'recv_county': c.receive_county,
        'recv_prov': c.receive_prov,
        'recv_tel': c.receiver_tel,
        'recv_name': c.receiver,
    }
    order_res = send_package(order_info, addr.agent_id)
    if order_res.get('status') == '00' and order_res.get(
            'waybill_code') is not None:
        order_id = order_res.get('waybill_code')
        status = 'done' if order_res.get('is_printed') else 'pending'
        c.order_id = order_id
        c.status = status
        c.task_id = order_res.get('task_id')
        c.print_date = order_res.get('print_date')
        c.save()

        user = UserInfo.objects.select_for_update().get(user_id=c.user_id)
        user.bal = float(user.bal) - float(c.amt)
        user.save()
        return success(serialize(c))
    else:
        return error(msg=order_res.get('message'))
Beispiel #29
0
def express_save(request):
    body = loads(request.body)
    if body.get('id', '') != '':
        org = OrgMap.objects.get(id=body.get('id', ''))
        org.corp = body.get('corp', '')
        org.corp_name = body.get('corpName', '')
        org.express_type = body.get('expressType', '')
        org.express_name = body.get('expressName', '')
        org.lv1 = body.get('lv1', '')
        org.lv2 = body.get('lv2', '')
        org.lv3 = body.get('lv3', '')
        org.cost = body.get('cost', '')
        org.save()
    else:
        OrgMap.objects.create(corp=body.get('corp', ''),
                              corp_name=body.get('corpName', ''),
                              express_type=body.get('expressType', ''),
                              express_name=body.get('expressName', ''),
                              lv1=body.get('lv1', ''),
                              lv2=body.get('lv2', ''),
                              lv3=body.get('lv3', ''),
                              cost=body.get('cost', ''))

    return success()
Beispiel #30
0
def set_default_express(request):
    body = loads(request.body)
    user = UserInfo.objects.get(user_id=request.user.username)
    user.def_express = body.get('id', '')
    user.save()
    return success()