views.py 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. # coding=utf-8
  2. import requests
  3. import json
  4. from django.db import transaction
  5. from rest_framework.decorators import action
  6. from django.utils import timezone
  7. from utils import response_ok
  8. from utils.permission import permission_required
  9. from utils.custom_modelviewset import CustomModelViewSet
  10. from utils.exceptions import CustomError
  11. from apps.foundation.models import BizLog, Config
  12. from apps.account import tenant_log
  13. from apps.images.models import Images
  14. from apps.store.models import Shop
  15. from apps.store.filters import ShopFilter
  16. from .serializers import ShopSerializer
  17. from hashlib import md5
  18. class ShopViewSet(CustomModelViewSet):
  19. queryset = Shop.objects.filter(delete=False)
  20. serializer_class = ShopSerializer
  21. @permission_required('shop.browse_shop')
  22. def filter_queryset(self, queryset):
  23. queryset = queryset.filter()
  24. f = ShopFilter(self.request.GET, queryset=queryset)
  25. return f.qs
  26. @permission_required('shop.add_shop')
  27. def perform_create(self, serializer):
  28. super(ShopViewSet, self).perform_create(serializer)
  29. instance = serializer.instance
  30. validated_data = serializer.validated_data
  31. tenant_log(self.request.user, BizLog.INSERT, u'添加门店[%s],id=%d' % (instance.name, instance.id),validated_data)
  32. @permission_required('shop.delete_shop')
  33. def destroy(self, request, *args, **kwargs):
  34. with transaction.atomic():
  35. instance = self.get_object()
  36. instance.delete = True
  37. instance.save()
  38. tenant_log(self.request.user, BizLog.DELETE, u'删除门店[%s],id=%d' % (instance.name, instance.id))
  39. return response_ok()
  40. @action(methods=['post'], detail=True)
  41. def update_shop(self, request, pk):
  42. file = request.FILES.get('image', None)
  43. user = request.user
  44. instance = self.get_object()
  45. if instance.delete:
  46. raise CustomError(u'该门店已删除,禁止操作!')
  47. with transaction.atomic():
  48. serializer = self.get_serializer(instance, data=request.data)
  49. serializer.is_valid(raise_exception=True)
  50. self.perform_update(serializer)
  51. tenant_log(user, BizLog.UPDATE, u'修改门店[%s],id=%d' % (instance.name, instance.id), request.data)
  52. if file:
  53. old_img = instance.img
  54. img = Images.objects.employee_addnew(user.employee, Images.SHOP_FILE, file)
  55. instance.img = img
  56. instance.save()
  57. if old_img:
  58. old_img.del_images()
  59. return response_ok()
  60. @action(methods=['get'], detail=False)
  61. def update_company(self, request):
  62. print('00000000000000000000000000000000')
  63. with transaction.atomic():
  64. xgj_ip = Config.getConfigValue(Config.KEY_XGJ_IP)
  65. xgj_session_key = Config.getConfigValue(Config.KEY_XGJ_SESSION_KEY)
  66. print('3333333333333')
  67. print(xgj_ip)
  68. print(xgj_session_key)
  69. if not xgj_ip:
  70. print('111111111111')
  71. raise CustomError(u'没有配置销管佳地址,请前往基础设置中配置!')
  72. print('444444444444444444444')
  73. if not xgj_session_key:
  74. print('22222222222')
  75. raise CustomError(u'没有配置销管佳密钥,请前往基础设置中配置!')
  76. ts = timezone.now().strftime('%Y%m%d%H%M%S')
  77. token = xgj_session_key + ts
  78. m = md5()
  79. m.update(token.encode("utf8"))
  80. sign = m.hexdigest()
  81. # url = xgj_ip + 'wechat/applet/member/company/?ts=' + ts + '&sign=' + sign
  82. # param = {}
  83. # result = requests.post(url=url, data=json.dumps(param))
  84. # result = result.json()
  85. #
  86. # if not result['success']:
  87. # if 'errors' in result:
  88. # raise CustomError(u'请求失败--' + str(result['errors']))
  89. # else:
  90. # raise CustomError(u'请求失败')
  91. return response_ok()