|
@@ -0,0 +1,107 @@
|
|
|
+# coding=utf-8
|
|
|
+import requests
|
|
|
+import json
|
|
|
+from django.db import transaction
|
|
|
+from rest_framework.decorators import action
|
|
|
+from django.utils import timezone
|
|
|
+from utils import response_ok
|
|
|
+from utils.permission import permission_required
|
|
|
+from utils.custom_modelviewset import CustomModelViewSet
|
|
|
+from utils.exceptions import CustomError
|
|
|
+from apps.foundation.models import BizLog, Config
|
|
|
+from apps.account import tenant_log
|
|
|
+from apps.images.models import Images
|
|
|
+from apps.store.models import Shop
|
|
|
+from apps.store.filters import ShopFilter
|
|
|
+from .serializers import ShopSerializer
|
|
|
+from hashlib import md5
|
|
|
+
|
|
|
+
|
|
|
+class ShopViewSet(CustomModelViewSet):
|
|
|
+ queryset = Shop.objects.filter(delete=False)
|
|
|
+ serializer_class = ShopSerializer
|
|
|
+
|
|
|
+ @permission_required('shop.browse_shop')
|
|
|
+ def filter_queryset(self, queryset):
|
|
|
+ queryset = queryset.filter()
|
|
|
+ f = ShopFilter(self.request.GET, queryset=queryset)
|
|
|
+ return f.qs
|
|
|
+
|
|
|
+ @permission_required('shop.add_shop')
|
|
|
+ def perform_create(self, serializer):
|
|
|
+ super(ShopViewSet, self).perform_create(serializer)
|
|
|
+ instance = serializer.instance
|
|
|
+ validated_data = serializer.validated_data
|
|
|
+ tenant_log(self.request.user, BizLog.INSERT, u'添加门店[%s],id=%d' % (instance.name, instance.id),validated_data)
|
|
|
+
|
|
|
+ @permission_required('shop.delete_shop')
|
|
|
+ def destroy(self, request, *args, **kwargs):
|
|
|
+ with transaction.atomic():
|
|
|
+ instance = self.get_object()
|
|
|
+ instance.delete = True
|
|
|
+ instance.save()
|
|
|
+ tenant_log(self.request.user, BizLog.DELETE, u'删除门店[%s],id=%d' % (instance.name, instance.id))
|
|
|
+ return response_ok()
|
|
|
+
|
|
|
+ @action(methods=['post'], detail=True)
|
|
|
+ def update_shop(self, request, pk):
|
|
|
+ file = request.FILES.get('image', None)
|
|
|
+ user = request.user
|
|
|
+ instance = self.get_object()
|
|
|
+
|
|
|
+ if instance.delete:
|
|
|
+ raise CustomError(u'该门店已删除,禁止操作!')
|
|
|
+
|
|
|
+ with transaction.atomic():
|
|
|
+ serializer = self.get_serializer(instance, data=request.data)
|
|
|
+ serializer.is_valid(raise_exception=True)
|
|
|
+ self.perform_update(serializer)
|
|
|
+
|
|
|
+ tenant_log(user, BizLog.UPDATE, u'修改门店[%s],id=%d' % (instance.name, instance.id), request.data)
|
|
|
+
|
|
|
+ if file:
|
|
|
+ old_img = instance.img
|
|
|
+ img = Images.objects.employee_addnew(user.employee, Images.SHOP_FILE, file)
|
|
|
+ instance.img = img
|
|
|
+ instance.save()
|
|
|
+ if old_img:
|
|
|
+ old_img.del_images()
|
|
|
+
|
|
|
+ return response_ok()
|
|
|
+
|
|
|
+ @action(methods=['get'], detail=False)
|
|
|
+ def update_company(self, request):
|
|
|
+ print('00000000000000000000000000000000')
|
|
|
+
|
|
|
+ with transaction.atomic():
|
|
|
+ xgj_ip = Config.getConfigValue(Config.KEY_XGJ_IP)
|
|
|
+ xgj_session_key = Config.getConfigValue(Config.KEY_XGJ_SESSION_KEY)
|
|
|
+ print('3333333333333')
|
|
|
+ print(xgj_ip)
|
|
|
+ print(xgj_session_key)
|
|
|
+ if not xgj_ip:
|
|
|
+ print('111111111111')
|
|
|
+ raise CustomError(u'没有配置销管佳地址,请前往基础设置中配置!')
|
|
|
+
|
|
|
+ print('444444444444444444444')
|
|
|
+ if not xgj_session_key:
|
|
|
+ print('22222222222')
|
|
|
+ raise CustomError(u'没有配置销管佳密钥,请前往基础设置中配置!')
|
|
|
+ ts = timezone.now().strftime('%Y%m%d%H%M%S')
|
|
|
+ token = xgj_session_key + ts
|
|
|
+
|
|
|
+ m = md5()
|
|
|
+ m.update(token.encode("utf8"))
|
|
|
+ sign = m.hexdigest()
|
|
|
+
|
|
|
+ # url = xgj_ip + 'wechat/applet/member/company/?ts=' + ts + '&sign=' + sign
|
|
|
+ # param = {}
|
|
|
+ # result = requests.post(url=url, data=json.dumps(param))
|
|
|
+ # result = result.json()
|
|
|
+ #
|
|
|
+ # if not result['success']:
|
|
|
+ # if 'errors' in result:
|
|
|
+ # raise CustomError(u'请求失败--' + str(result['errors']))
|
|
|
+ # else:
|
|
|
+ # raise CustomError(u'请求失败')
|
|
|
+ return response_ok()
|