views.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. # coding=utf-8
  2. from django.conf import settings
  3. from django.db import transaction
  4. from rest_framework.views import APIView
  5. from rest_framework.decorators import action
  6. from utils.custom_modelviewset import CustomModelViewSet
  7. from apps.log.models import BizLog
  8. from apps.tenant.models import Tenant
  9. from .serializers import TenantSerializer
  10. from utils.exceptions import CustomError
  11. from utils import response_ok, response_error
  12. from apps.tenant.employee.models import Employee
  13. from utils.permission import isLogin
  14. class searchTenantView(APIView):
  15. permission_classes = [isLogin, ]
  16. def get(self, request, *args, **kwargs):
  17. company_no = request.GET.get('company_no')
  18. tenant = Tenant.objects.filter(company_no=company_no, status=settings.PASS).first()
  19. if tenant:
  20. data = {
  21. 'id':tenant.id,
  22. 'company_name':tenant.company_name,
  23. }
  24. return response_ok(data)
  25. else:
  26. return response_error(u'未找到企业,请输入正确的企业编号')
  27. class TenantViewSet(CustomModelViewSet):
  28. permission_classes = [isLogin, ]
  29. queryset = Tenant.objects.all()
  30. serializer_class = TenantSerializer
  31. def perform_create(self, serializer):
  32. super(TenantViewSet, self).perform_create(serializer)
  33. instance = serializer.instance
  34. validated_data = serializer.validated_data
  35. BizLog.objects.addnew(instance, self.request.user, BizLog.INSERT, u'申请租户[%s] id=%d' % (instance.company_name, instance.id), validated_data)
  36. @action(methods=['get'], detail=True)
  37. def bind_company(self, request, pk):
  38. # 绑定企业
  39. try:
  40. with transaction.atomic():
  41. user = self.request.user
  42. tenant = Tenant.getById(pk)
  43. Employee.objects.filter(user=user).update(tenant=tenant)
  44. except CustomError as e:
  45. return response_error(e.get_error_msg())
  46. except Exception as e:
  47. return response_error(str(e))
  48. return response_ok('绑定成功!')