説明なし

admin_views.py 5.9KB

    # -*- coding: utf-8 -*- import logging from django.core.paginator import Paginator from django.contrib.auth.hashers import check_password from django.db import transaction from django.db.models import Q from django_logit import logit from django_response import response from TimeConvert import TimeConvert as tc from account.models import AdministratorInfo from goods.models import GoodsInfo, PackInfo from kol.models import KOLInfo from pay.models import OrderInfo from live.models import RoomInfo, RoomGoodsInfo, RoomOrderInfo, AnchorInfo, liveGoodsInfo from utils.error.errno_utils import AdministratorStatusCode, OrderStatusCode logger = logging.getLogger('logit') @logit(res=True) def login(request): name = request.POST.get('name', '') password = request.POST.get('password', '') try: administrator = AdministratorInfo.objects.get(name=name, status=True) except AdministratorInfo.DoesNotExist: return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) if administrator.user_status == AdministratorInfo.DISABLED: return response(AdministratorStatusCode.ADMINISTRATOR_NOT_ACTIVATED) elif administrator.user_status == AdministratorInfo.DELETED: return response(AdministratorStatusCode.ADMINISTRATOR_HAS_DELETED) if not check_password(password, administrator.encryption): return response(AdministratorStatusCode.ADMINISTRATOR_PASSWORD_ERROR) request.session['admin_id'] = administrator.admin_id return response(200, 'Admin Login Success', '管理员登录成功', data={ 'admin_id': administrator.admin_id, 'admin_type': administrator.admin_type, }) @logit(res=True) @transaction.atomic def order_list(request): admin_id = request.POST.get('admin_id', '') kol_id = request.POST.get('kol_id', '') pack_id = request.POST.get('pack_id', '') ftime = request.POST.get('ftime', '') ttime = request.POST.get('ttime', '') query = request.POST.get('query', '') page = request.POST.get('page', 0) num = request.POST.get('num', 20) try: administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True) except AdministratorInfo.DoesNotExist: return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) infos = OrderInfo.objects.filter( Q(phone__contains=query) | Q(name__contains=query) & Q(kol_id__contains=kol_id) & Q( pack_id__contains=pack_id) & Q(pay_status=1)).order_by('-paid_at') res = [] for info in infos: goods_info = [] try: pack = PackInfo.objects.get(pack_id=info.pack_id) except PackInfo.DoesNotExist: continue try: kol = KOLInfo.objects.get(kol_id=info.kol_id) except KOLInfo.DoesNotExist: continue for g in info.goods_info: try: goods = GoodsInfo.objects.get(good_id=g.get('good_id', '')) except GoodsInfo.DoesNotExist: continue goods_info.append({ 'title': goods.title, 'num': g.get('num', 0) }) res.append({ 'name': info.name, 'phone': info.phone, 'address': info.address, 'paid_at': tc.local_string(utc_dt=info.paid_at, format='%Y-%m-%d %H:%M'), 'order_id': info.order_id, 'transaction_id': info.transaction_id, 'tracking_number': info.tracking_number, 'goods_info': goods_info, 'kol_name': kol.name, 'pack_title': pack.title }) return response(200, 'Order List Success', '获取订单列表成功', { 'orders': res }) @logit(res=True) @transaction.atomic def order_update(request): admin_id = request.POST.get('admin_id', '') order_id = request.POST.get('order_id', '') tracking_number = request.POST.get('tracking_number', '') try: administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True) except AdministratorInfo.DoesNotExist: return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) try: order = OrderInfo.objects.get(order_id=order_id) except OrderInfo.DoesNotExist: return response(OrderStatusCode.ORDER_NOT_FOUND) order.tracking_number = tracking_number order.save() return response(200, 'Order Update Success', '订单更新成功') def live_goods_list(request): admin_id = request.POST.get('admin_id', '') page = request.POST.get('page', 1) num = request.POST.get('num', 20) try: administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True) except AdministratorInfo.DoesNotExist: return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) goods_list = liveGoodsInfo.objects.all() count = goods_list.count() goods_list = Paginator(goods_list, num).get_page(page) goods_list = [goods.admindata for goods in goods_list] return response(200, 'Live Goods Success', u'直播商品库获取成功', data={ 'goods_list': goods_list, 'count': count, }) def live_room_list(request): admin_id = request.POST.get('admin_id', '') page = request.POST.get('page', 1) num = request.POST.get('num', 20) try: administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True) except AdministratorInfo.DoesNotExist: return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) rooms = RoomInfo.objects.all() count = rooms.count() rooms = Paginator(rooms, num).get_page(page) rooms = [room.admindata for room in rooms] return response(200, 'Live Goods Success', u'直播商品库获取成功', data={ 'rooms': rooms, 'count': count, })