# 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()