|  | # -*- coding: utf-8 -*-
from __future__ import division
from datetime import datetime
from django.conf import settings
from django_logit import logit
from django_response import response
from django.db.models import Q
from paginator import pagination
from TimeConvert import TimeConvert as tc
from account.models import LensmanInfo, LensmanIntegralIncomeExpensesInfo
from kodo.decorators import check_admin
@logit
@check_admin
def lensman_list(request, administrator):
    page = request.POST.get('page', 1)
    num = request.POST.get('num', 20)
    query = request.POST.get('query', '')
    lensman_status = request.POST.get('lensman_status', '')
    end_date = tc.to_date(request.POST.get('end_date', ''))
    integral_end_date_start = request.POST.get('integral_end_date_start', '')
    integral_end_date_end = request.POST.get('integral_end_date_end', '')
    logs = LensmanInfo.objects.filter(status=True).order_by('-pk')
    if query:
        logs = logs.filter(Q(name__icontains=query) |
                           Q(phone__icontains=query))
    if lensman_status:
        logs = logs.filter(lensman_status=lensman_status)
    if end_date:
        logs = logs.filter(end_date__lte=end_date)
    if integral_end_date_start and integral_end_date_end:
        ftime = datetime.strptime(
            integral_end_date_start + ' 00:00:00', '%Y%m%d %H:%M:%S')
        ttime = datetime.strptime(
            integral_end_date_end + ' 23:59:59', '%Y%m%d %H:%M:%S')
        logs = logs.filter(integral_end_date__range=[ftime, ttime])
    count = logs.count()
    logs, left = pagination(logs, page, num)
    logs = [log.admindata for log in logs]
    return response(data={
        'logs': logs,
        'left': left,
        'count': count,
    })
@logit
@check_admin
def lensman_audit(request, administrator):
    lensman_id = request.POST.get('lensman_id', '')
    start_date = tc.to_date(request.POST.get('start_date', ''))
    end_date = tc.to_date(request.POST.get('end_date', ''))
    try:
        lensman = LensmanInfo.objects.get(lensman_id=lensman_id, status=True)
    except LensmanInfo.DoesNotExist:
        return response(200, 'Lensman Not Found', u'摄影师不存在')
    lensman.lensman_status = LensmanInfo.ACTIVATED
    lensman.start_date = start_date
    lensman.end_date = end_date
    lensman.save()
    return response(200, 'Lensman Audit Pass Suceess', u'摄影师审核通过')
@logit
@check_admin
def lensman_update(request, administrator):
    lensman_id = request.POST.get('lensman_id', '')
    start_date = tc.to_date(request.POST.get('start_date', ''))
    end_date = tc.to_date(request.POST.get('end_date', ''))
    integral_start_date = tc.to_date(
        request.POST.get('integral_start_date', ''))
    integral_end_date = tc.to_date(request.POST.get('integral_end_date', ''))
    name = request.POST.get('name', '')
    phone = request.POST.get('phone', '')
    remark = request.POST.get('remark', '')
    try:
        lensman = LensmanInfo.objects.get(lensman_id=lensman_id, status=True)
    except LensmanInfo.DoesNotExist:
        return response(200, 'Lensman Not Found', u'摄影师不存在')
    lensman.start_date = start_date
    lensman.end_date = end_date
    lensman.integral_start_date = integral_start_date
    lensman.integral_end_date = integral_end_date
    lensman.name = name
    lensman.phone = phone
    lensman.remark = remark
    lensman.save()
    return response(200, 'Lensman Info Update Suceess', u'摄影师信息更新成功')
@logit
@check_admin
def lensman_integral_list(request, administrator):
    user_id = request.POST.get('user_id', '')
    try:
        lensman = LensmanInfo.objects.get(user_id=user_id, status=True)
    except LensmanInfo.DoesNotExist:
        return response(200, 'Lensman Not Found', u'摄影师不存在')
    integrals = LensmanIntegralIncomeExpensesInfo.objects.filter(
        user_id=user_id, status=True)
    integrals = [integral.admindata for integral in integrals]
    return response(200, 'Get Lensman Integral List Success', u'获取摄影师积分列表成功', data=integrals)
@logit
def lensman_integral_update(request):
    user_id = request.POST.get('user_id', '')
    integral = int(request.POST.get('integral', 0))
    remark = request.POST.get('remark', '')
    brand_id = request.POST.get('brand_id') or settings.KODO_DEFAULT_BRAND_ID
    try:
        lensman = LensmanInfo.objects.get(user_id=user_id, status=True)
    except LensmanInfo.DoesNotExist:
        return response(200, 'Lensman Not Found', u'摄影师不存在')
    lensman.integral += integral
    lensman.save()
    LensmanIntegralIncomeExpensesInfo.objects.create(
        brand_id=brand_id,
        user_id=user_id,
        integral=integral,
        remark=remark,
        expired_at=lensman.integral_end_date,
    )
    return response(200, 'Lensman Integral Update Success', u'摄影师积分更新成功')
 |