|
# -*- coding: utf-8 -*-
from __future__ import division
from datetime import datetime
from django.conf import settings
from django.db.models import Q
from django_logit import logit
from django_response import response
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'摄影师积分更新成功')
|