暫無描述

admin_views.py 4.1KB

    # -*- coding: utf-8 -*- import logging from django.conf import settings from django.db import transaction from django_logit import logit from django_response import response from django.contrib.auth.hashers import check_password from django.db.models import Q from TimeConvert import TimeConvert as tc from account.models import UserInfo, AdministratorInfo from goods.models import GoodsInfo, PackInfo from kol.models import KOLInfo from pay.models import OrderInfo from utils.error.errno_utils import AdministratorStatusCode 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', u'管理员登录成功', 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) kol = KOLInfo.objects.get(kol_id=info.kol_id) for g in info.goods_info: try: goods = GoodsInfo.objects.get(good_id=g.get('good_id', '')) goods_info.append({ 'title': goods.title, 'num': g.get('num', 0) }) except: continue 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 }) except: continue return response(200, 'Order List Success', u'获取订单列表成功', { '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) order.tracking_number = tracking_number order.save() except OrderInfo.DoesNotExist: return response(400001, 'Order Not Found', u'订单不存在') return response(200, 'Order Update Success', u'订单更新成功')