Brak opisu

consumer_admin_view.py 2.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. # -*- coding: utf-8 -*-
  2. from __future__ import division
  3. from django.db import transaction
  4. from django.db.models import Q
  5. from django_logit import logit
  6. from django_response import response
  7. from paginator import pagination
  8. from TimeConvert import TimeConvert as tc
  9. from account.models import UserInfo
  10. from kodo.decorators import check_admin
  11. from mch.models import AdministratorInfo, ConsumeShotUnbindingInfo, ConsumeInfoSubmitLogInfo, ModelInfo
  12. @logit
  13. @check_admin
  14. def consumer_shot_unbinding_list(request, administrator):
  15. start_time = request.POST.get('start_time', '')
  16. end_time = request.POST.get('end_time', '')
  17. query = request.POST.get('query', '')
  18. model_id = request.POST.get('model_id', '')
  19. page = request.POST.get('page', 1)
  20. num = request.POST.get('num', 20)
  21. unbindings = ConsumeShotUnbindingInfo.objects.filter(status=True).order_by('-created_at')
  22. if query:
  23. user_ids = []
  24. try:
  25. user_ids = UserInfo.objects.filter(phone__icontains=query, status=True).values_list('user_id', flat=True)
  26. except UserInfo.DoesNotExist:
  27. pass
  28. unbindings = unbindings.filter(Q(sn__icontains=query) | Q(user_id__in=user_ids))
  29. if start_time and end_time:
  30. start_time = tc.string_to_utc_datetime(start_time, format='%Y%m%d')
  31. end_time = tc.string_to_utc_datetime(end_time + ' 23:59:59', format='%Y%m%d %H:%M:%S')
  32. unbindings = unbindings.filter(created_at__range=(start_time, end_time))
  33. if model_id:
  34. unbindings = unbindings.filter(model_id=model_id)
  35. count = unbindings.count()
  36. unbindings, left = pagination(unbindings, page, num)
  37. unbindings = [unbinding.admindata for unbinding in unbindings]
  38. return response(200, 'Get Cosumer Shot Unbinding List Success', u'消费者镜头解绑列表获取成功', data={
  39. 'unbindings': unbindings,
  40. 'count': count,
  41. 'left': left
  42. })
  43. @logit
  44. @check_admin
  45. def consumer_shot_unbinding_delete(request, administrator):
  46. pk = request.POST.get('pk', '')
  47. unbinding_info = ConsumeShotUnbindingInfo.objects.get(pk=pk)
  48. unbinding_info.status = False
  49. unbinding_info.delete()
  50. log_info = ConsumeInfoSubmitLogInfo.objects.get(pk=unbinding_info.submit_pk)
  51. log_info.status = True
  52. log_info.delete_type = ConsumeInfoSubmitLogInfo.UNDELETE
  53. log_info.save()
  54. if not log_info.unbound:
  55. try:
  56. user = UserInfo.objects.get(user_id=log_info.user_id)
  57. user.shots_num += 1
  58. user.integral += log_info.integral
  59. model = ModelInfo.objects.get(model_id=log_info.model_id)
  60. if user.level < UserInfo.MEMBER_BLACK_GOLD and model.shot_type_id != 'V6PkivthL4sdADp4GNpQ4C':
  61. user.level += 1
  62. user.save()
  63. except UserInfo.DoesNotExist:
  64. pass
  65. return response(200, 'Get Cosumer Shot Unbinding Delete Success', u'消费者镜头解绑记录删除成功')