#coding=utf-8 import traceback import json from django.utils import timezone from libs import utils from libs.http import JSONError, JSONResponse,DataGridJSONResponse from apps.account.decorators import token_required from django.db import transaction, IntegrityError from apps.exceptions import CustomError from apps.foundation.models import BizLog from django.db.models import Q from django.conf import settings from .models import * from .serializers import * from .filters import * @token_required def branch_list(request): f = BranchFilter(request.GET, queryset=Branch.objects.filter()) rows, total = utils.get_page_data(request, f.qs) serializer = BranchSerializer(rows, many=True) return DataGridJSONResponse(serializer.data, total) @token_required def branch_save(request): id = request.GET.get('id') data = json.loads(request.body) try: with transaction.atomic(): serializer = BranchSerializer.factory(request.user, data, id) serializer.validSave() return JSONResponse(serializer.data) except CustomError as e: return JSONError(e.get_error_msg()) except Exception as e: traceback.print_exc() return JSONError(u'保存失败!') @token_required def member_list(request): f = MemberFilter(request.GET, queryset=Member.objects.filter(branch=request.user.branch)) rows, total = utils.get_page_data(request, f.qs) serializer = MemberSerializer(rows, many=True) return DataGridJSONResponse(serializer.data, total) @token_required def member_coupon_list(request): f = MemberCouponFilter(request.GET, queryset=MemberCoupon.objects.filter(member__branch=request.user.branch)) rows, total = utils.get_page_data(request, f.qs) serializer = MemberCouponSerializer(rows, many=True) return DataGridJSONResponse(serializer.data, total) @token_required def coupon_write_off(request): id = request.GET.get('id') try: with transaction.atomic(): instance = MemberCoupon.getById(id) if instance.member.branch and instance.member.branch_id != request.user.branch_id: raise CustomError(u'禁止跨店操作!') instance.writeOff() BizLog.objects.addnew(request.user, BizLog.CHECK, u"核销会员优惠券,id=%d" % instance.id) except CustomError as e: return JSONError(e.get_error_msg()) except Exception as e: traceback.print_exc() return JSONError(u'核销失败!') return JSONResponse() @token_required def coupon_cancel_write_off(request): id = request.GET.get('id') try: with transaction.atomic(): instance = MemberCoupon.getById(id) if instance.member.branch and instance.member.branch_id != request.user.branch_id: raise CustomError(u'禁止跨店操作!') instance.cancelWriteOff() BizLog.objects.addnew(request.user, BizLog.CHECK, u"撤销核销会员优惠券,id=%d" % instance.id) except CustomError as e: return JSONError(e.get_error_msg()) except Exception as e: traceback.print_exc() return JSONError(u'撤销核销失败!') return JSONResponse() @token_required def order_list(request): f = OrderFilter(request.GET, queryset=Order.objects.filter(branch=request.user.branch)) rows, total = utils.get_page_data(request, f.qs) serializer = OrderSerializer(rows, many=True) return DataGridJSONResponse(serializer.data, total)