def order_detail(r): order = Order.objects.get(pk=r.REQUEST['order_id']) if order.status == 0: user = None else: user = order.tb.user task = order.task bankcard = order.bankcard task_type = task.task_type if bankcard: account = bankcard.account_id account_str = ' '.join([account[i:i + 4] for i in range(0, len(account), 4)]) is_comment_order = True if order.order_type in (Const['model.order.type.normal'], Const['model.order.type.keyword'], Const['model.order.type.image'], ) else False if order.receive_time: order.receive_time_str = get_datetime_by_stamp(order.receive_time) order.check_upgrade() steps = [] for key in order.get_steps(): order.get_steps()[key]['time_str'] = get_datetime_by_stamp(order.get_steps()[key]['create_time']) steps.append(order.get_steps()[key]) return render(r, 'admin/order_detail.html', locals())
def home_capital_recharge(r): user, last_notice = _home_init(r) recharges = Recharge.objects.filter(user_id=user.id)[0:5] for re in recharges: re.create_time_str = get_datetime_by_stamp(re.create_time) re.verify_time_str = get_datetime_by_stamp( re.verify_time) if re.verify_time else '' return render(r, 'home/home_capital_recharge.html', locals())
def user_capitalrecordexport(r, uid): conditions = make_conditions(r) conditions['user_id'] = uid params = r.REQUEST if 'create_time_start' in params or 'create_time_end' in params: if 'create_time_start' in params: conditions['create_time__gte'] = get_stamp_by_date( params['create_time_start']) if 'create_time_end' in params: conditions['create_time__lte'] = get_stamp_by_date( params['create_time_end']) else: conditions['create_time__gte'] = 0 if 'capital_type' in params: if int(params['capital_type']) == 0: conditions['amount__lte'] = 0.0 elif int(params['capital_type']) == 1: conditions['amount__gte'] = 0.0 query = Record.objects.filter(**conditions) data = [] for o in query: data.append({ 'time': get_datetime_by_stamp(o.create_time), 'type': u'收入' if o.is_income() else u'支出', 'content': o.description, 'amount': o.amount, }) return CsvResponse( { 'time': u'时间', 'type': u'收支类型', 'content': u'描述', 'amount': u'金额', }, data)
def task_order_detail(r): user = User.objects.get_user_from_session(r) order = Order.objects.get(pk=r.REQUEST['order_id']) task = order.task bankcard = order.bankcard appeal_types = AppealType.objects.filter( type=Const['model.notice.type.seller']) progress_appeal = Appeal.objects.filter( order=order, status=Const['model.appeal.status.in_progress']) task_type = task.task_type if bankcard: account = bankcard.account_id account_str = ' '.join( [account[i:i + 4] for i in range(0, len(account), 4)]) is_comment_order = True if order.order_type in ( Const['model.order.type.normal'], Const['model.order.type.keyword'], Const['model.order.type.image'], ) else False if order.receive_time: order.receive_time_str = get_datetime_by_stamp(order.receive_time) order.check_upgrade() # 借用flags用来存储是否被拉黑的状态 buyer = order.tb.user order.flags = 0 if Blacklist.objects.filter(seller=user, buyer=buyer): order.flags = 1 steps = [] for key in order.get_steps(): order.get_steps()[key]['time_str'] = get_datetime_by_stamp( order.get_steps()[key]['create_time']) steps.append(order.get_steps()[key]) # _steps=json.loads(order.step_detail) # logger.info(steps) # for key in steps: # steps[key]['time_str']=get_datetime_by_stamp(steps[key]['create_time']) return render(r, 'task/order_detail.html', locals())
def task_flow_detail(r): user = User.objects.get_user_from_session(r) task = Task.objects.get(pk=r.REQUEST['task_id']) task.create_time_str = get_datetime_by_stamp(task.create_time) orders = Order.objects.filter(task_id=r.REQUEST['task_id']) \ .filter(order_type__in=[Const['model.order.type.flow'], Const['model.order.type.collect']]) total_orders = orders.count() receive_orders = 0 commodities = json.loads(task.commodities) search_entries = json.loads(task.search_entries) order_types = json.loads(task.order_types) store = task.store if task.status == Const['model.task.status.need_payment']: status = 0 elif task.verify_status == Const['model.verify.need_check']: status = 1 elif task.status == Const['model.task.status.in_progress']: status = 2 elif task.status == Const['model.task.status.closed']: status = 3 for order in orders: if order.status != Const['model.order.status.init']: receive_orders = receive_orders + 1 return render(r, 'task/flow_task_detail.html', locals())
def task_flow_manage(r): user = User.objects.get_user_from_session(r) stores = user.store_set.filter( verify_status=Const['model.verify.check_pass']) params = r.REQUEST page = int(params['page']) if 'page' in params else 1 num = int(params['num']) if 'num' in params else 10 start = (page - 1) * num query_condition = [ Q(task__store__user_id=user.id), ] be15 = before15(15) if 'store_id' in params: query_condition.append(Q(task__store_id=params['store_id'])) if 'buyer_id' in params: query_condition.append(Q(tb__user_id=params['buyer_id'])) if 'buyer_wangwang' in params: query_condition.append(Q(tb__wangwang=params['buyer_wangwang'])) if 'task_id' in params: query_condition.append(Q(task_id=params['task_id'])) if 'order_id' in params: query_condition.append(Q(pk=params['order_id'])) # if 'order_type' in params: # ordertype = int(params['order_type']) # if ordertype <= Const['model.order.type.max']: # query_condition.append(Q(order_type=ordertype)) if 'order_status' in params: if params['order_status'] == '1': query_condition.append( Q(status__in=[ Const['model.order.status.received'], Const['model.order.status.step1'], Const['model.order.status.step2'], ])) elif params['order_status'] == '4': query_condition.append( Q(status=Const['model.order.status.comment'])) elif params['order_status'] == '5': query_condition.append( Q(status=Const['model.order.status.completed'])) if 'receive_start' in params: query_condition.append( Q(receive_time__gte=get_stamp_by_date(params['receive_start']))) if 'receive_end' in params: query_condition.append( Q(receive_time__lte=get_stamp_by_date(params['receive_end']))) q = Order.objects.exclude(status__in=[Const['model.order.status.init'], Const['model.order.status.cancel']]).filter(*query_condition) \ .filter(order_type__in=[Const['model.order.type.flow'], Const['model.order.type.collect']]) \ .filter((Q(status=Const['model.order.status.completed']) & Q(update_time__gte=be15)) | \ ~Q(status=Const['model.order.status.completed'])) orders = q[start:start + num] logger.debug(orders.query) for o in orders: if o.receive_time: o.receive_time_str = get_datetime_by_stamp(o.receive_time) pagebar = { 'record_total': q.count(), 'record_per_page': num, 'current_page': page, } pagebar['page_total'] = int(math.ceil(1.0 * pagebar['record_total'] / num)) pagebar['page_total_list'] = range(1, pagebar['page_total'] + 1) return render(r, 'task/flow_manage.html', locals())
def task_return_manage(r): user = User.objects.get_user_from_session(r) user.notice_set(Const['model.remind.no_money'], False) stores = user.store_set.filter( verify_status=Const['model.verify.check_pass']) params = r.REQUEST page = int(params['page']) if 'page' in params else 1 num = int(params['num']) if 'num' in params else 10 start = (page - 1) * num q_not_return = Q(status=Const['model.order.status.step3']) q_returned = Q(status__in=[ Const['model.order.status.completed'], Const['model.order.status.comment'], Const['model.order.status.returnmoney'], Const['model.order.status.deliver'], Const['model.order.status.affirm'] ]) q_all = Q(status__in=[ Const['model.order.status.step3'], Const['model.order.status.completed'], Const['model.order.status.comment'], Const['model.order.status.returnmoney'], Const['model.order.status.deliver'], Const['model.order.status.affirm'] ]) query_condition = [Q(order_type__in=[Const['model.order.type.normal'], Const['model.order.type.keyword'], Const['model.order.type.image'], Const['model.order.type.advance'], ]), \ Q(task__store__user_id=user.id) \ ] if 'store_id' in params: query_condition.append(Q(task__store_id=params['store_id'])) if 'task_id' in params: query_condition.append(Q(task_id=params['task_id'])) if 'order_id' in params: query_condition.append(Q(pk=params['order_id'])) if 'buyer_id' in params: query_condition.append(Q(tb__user_id=params['buyer_id'])) if 'return_status' in params: if params['return_status'] == '1': query_condition.append(q_returned) else: query_condition.append(q_not_return) else: query_condition.append(q_not_return) if 'buyer_wangwang' in params: query_condition.append(Q(tb__wangwang=params['buyer_wangwang'])) orders = Order.objects.filter(*query_condition)[start:start + num] logger.debug(orders.query) for order in orders: order.buy_time_str = get_datetime_by_stamp( order.get_step_item(2, 'create_time')) if order.task.task_type == Const['model.task.type.special'] or \ order.order_type == Const['model.order.type.flow'] or \ order.order_type == Const['model.order.type.collect']: order.buy_pic1 = order.get_step_item(0, 'pic_path')[0] order.buy_pic2 = order.get_step_item(0, 'pic_path')[1] elif order.order_type == Const['model.order.type.advance']: order.buy_pic1 = order.get_step_item(0, 'pic_path')[0] order.buy_pic2 = order.get_step_item(0, 'pic_path')[1] else: order.buy_pic1 = order.get_step_item(2, 'pic_path')[0] order.buy_pic2 = order.get_step_item(2, 'pic_path')[1] # logger.info('task_return_manage order_type is %d'%order.order_type) pagebar = { 'record_total': Order.objects.filter(*query_condition).count(), 'record_per_page': num, 'current_page': page, } pagebar['page_total'] = int(math.ceil(1.0 * pagebar['record_total'] / num)) pagebar['page_total_list'] = range(1, pagebar['page_total'] + 1) return render(r, 'task/return_manage.html', locals())
def home_blicklist(r): user, last_notice = _home_init(r) blacklists = Blacklist.objects.filter(seller=user) for b in blacklists: b.time_str = get_datetime_by_stamp(b.create_time) return render(r, 'home/home_blacklist.html', locals())
def home_task_flows(r): user, last_notice = _home_init(r) stores = user.store_set.filter( verify_status=Const['model.verify.check_pass']) params = r.REQUEST page = int(params['page']) if 'page' in params else 1 num = int(params['num']) if 'num' in params else 10 start = (page - 1) * num query_condition = [ Q(store__user_id=user.id), ] if 'store_id' in params: query_condition.append(Q(store_id=params['store_id'])) if 'task_id' in params: query_condition.append(Q(id=params['task_id'])) if 'publish_start' in params: query_condition.append( Q(publish_start_date__gte=params['publish_start'])) if 'publish_end' in params: query_condition.append( Q(publish_start_date__lte=params['publish_end'])) if 'task_status' in params: task_status = int(params['task_status']) if task_status == 0: query_condition.append( Q(verify_status=Const['model.verify.need_check'])) elif task_status == 1: query_condition.append( Q(verify_status=Const['model.verify.check_pass'])) elif task_status == 2: query_condition.append(Q(status=Const['model.task.status.closed'])) elif task_status == 3: query_condition.append( Q(verify_status=Const['model.verify.check_deny'])) if 'task_type' in params: task_type = int(params['task_type']) if task_type == 0: query_condition.append( Q(task_type=Const['model.task.type.mobile_taobao'])) if 'keywords' in params: query_condition.append( Q(commodities_contains=params['keywords']) | Q(search_entries=params['keywords'])) timestamp = before15(30) tasks = Task.objects.filter(*query_condition).filter( create_time__gte=timestamp).filter(flow=True)[start:start + num] logger.debug(tasks.query) odd = True for task in tasks: orders = Order.objects.filter(task_id=task.id) \ .filter(order_type__in=[Const['model.order.type.flow'], Const['model.order.type.collect']]) # orders=task.order_set.filter() task.total_orders = orders.count() logger.debug(task.id) task.odd = odd odd = not odd task.jsearch_entries = json.loads(task.search_entries) task.mobile = True if task.task_type in ( Const['model.task.type.mobile_taobao'], ) else False task.jcommodities = json.loads(task.commodities) task.create_time_str = get_datetime_by_stamp(task.create_time) if task.status == Const['model.task.status.need_payment']: task.status_str = '待支付' elif task.status == Const['model.task.status.cancel']: task.status_str = '已取消' elif task.verify_status == Const['model.verify.check_deny']: task.status_str = '审核不通过' elif task.verify_status == Const['model.verify.need_check']: task.status_str = '待审核' elif task.status == Const['model.task.status.in_progress']: task.status_str = '进行中' elif task.status == Const['model.task.status.closed']: task.status_str = '已完成' elif task.status == Const['model.task.status.frozen']: task.status_str = '已冻结' task.order_1 = task.order_2 = task.order_5 = task.order_6 = 0 for o in orders: if o.status == Const['model.order.status.init']: task.order_1 = task.order_1 + 1 elif o.status == Const['model.order.status.comment']: task.order_5 = task.order_5 + 1 elif o.status == Const['model.order.status.completed']: task.order_6 = task.order_6 + 1 elif o.status in ( Const['model.order.status.received'], Const['model.order.status.step1'], Const['model.order.status.step2'], ): task.order_2 = task.order_2 + 1 pagebar = { 'record_total': Task.objects.filter(*query_condition).filter(create_time__gte=timestamp) \ .filter(Q(flow=True) | Q(task_type=Const['model.task.type.flow'])).count(), 'record_per_page': num, 'current_page': page, } pagebar['page_total'] = int(math.ceil(1.0 * pagebar['record_total'] / num)) pagebar['page_total_list'] = range(1, pagebar['page_total'] + 1) return render(r, 'home/home_task_flow.html', locals())
def task_order_appeal(request, oid): user = User.objects.get_user_from_session(request) order = Order.objects.get(pk=oid) if order.receive_time: order.receive_time_str = get_datetime_by_stamp(order.receive_time) return render(request, 'task/order_appeal.html', locals())
def notice(r, nid): notice = Notice.objects.get(pk=nid) notice.update_time = get_datetime_by_stamp(notice.update_time) return render(r, 'mobile/notice.html', {'notice': notice})
def user_exportorders(r, uid): conditions = make_conditions(r, task__store_id='store_id', tb__wangwang='buyer_wangwang', task_id='task_id', tb__user_id='buyer_id', order_type='order_type') params = r.REQUEST conditions['task__store__user_id'] = uid if 'receive_start' in params: conditions['receive_time__gte'] = get_stamp_by_date( params['receive_start']) if 'receive_end' in params: conditions['receive_time__lte'] = get_stamp_by_date( params['receive_end']) if 'order_status' in params: if params['order_status'] == '1': conditions['status__in'] = [ Const['model.order.status.received'], Const['model.order.status.step1'], Const['model.order.status.step2'], Const['model.order.status.step9'] ] elif params['order_status'] == '2': conditions['status__in'] = [ Const['model.order.status.step3'], Const['model.order.status.returnmoney'] ] elif params['order_status'] == '3': conditions['status'] = Const['model.order.status.deliver'] elif params['order_status'] == '4': conditions['status'] = Const['model.order.status.comment'] elif params['order_status'] == '5': conditions['status'] = Const['model.order.status.completed'] if 'o_type' in params: if params['o_type'] == 'flow': conditions['order_type__in'] = [ Const['model.order.type.flow'], Const['model.order.type.collect'] ] elif params['o_type'] == 'buy_order': conditions['order_type__in'] = [0, 1, 2, 5, 6] orders = Order.objects.exclude(status__in=[ Const['model.order.status.init'], Const['model.order.status.cancel'] ]).filter(**conditions) logger.debug(orders.query) data = [] for o in orders: t = o.task bk = o.bankcard commodities = json.loads(t.commodities) search_entry = json.loads(t.search_entries)[ o.search_entry_index] if o.search_entry_index >= 0 else None bc = o.get_buyer_commit() sc = o.get_seller_commit() data.append({ 'order_id': o.id, 'receive_time': get_datetime_by_stamp(o.receive_time), 'buyer_id': o.tb.user_id, 'buyer_wangwang': o.tb.wangwang, 'task_type': o.get_display_type(), 'order_status': o.get_display_status(), 'total_price': t.total_price, 'buyer_commit': bc if bc else '', 'seller_commit': sc if sc else '', 'store_name': t.store.name, 'commodity_name': commodities[0]['name'], 'search_keyword': search_entry['keyword'] if search_entry else '', 'bk_name': bk.owner_name if bk else '', 'bk_bank': bk.bank_name if bk else '', 'bk_account': bk.account_id if bk else '', 'bk_city': bk.bank_city if bk else '', 'bk_zh': bk.account_name if bk else '', 'order_all_pay': o.seller_payment, }) return CsvResponse( { 'order_id': u'订单ID', 'receive_time': u'接单时间', 'buyer_id': u'买手ID', 'buyer_wangwang': u'买手旺旺', 'task_type': u'订单类型', 'order_status': u'订单状态', 'total_price': u'商家要求垫付金额', 'buyer_commit': u'买手实际垫付金额', 'seller_commit': u'商家实际返款金额', 'store_name': u'店铺名', 'commodity_name': u'商品名', 'search_keyword': u'搜索关键词', 'bk_name': u'返款人姓名', 'bk_bank': u'返款银行名', 'bk_account': u'返款账户', 'bk_city': u'返款银行所在地', 'bk_zh': u'返款银行支行', 'order_all_pay': u'商家支付总额(包括佣金)', }, data)
def create_time_str(self): return get_datetime_by_stamp(self.create_time)