123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- # coding=utf-8
- import json
- from django.db import transaction
- from rest_framework.views import APIView
- from rest_framework.decorators import action
- from utils.custom_modelviewset import CustomModelViewSet
- from utils.permission import IsAdministratorUser
- from utils import response_ok
- from apps.log.models import BizLog
- from apps.admin import admin_log
- from .serializers import WechatAppletSerializer
- from apps.WechatApplet.filters import WechatAppletFilter
- from apps.WechatApplet.models import WechatApplet
- from apps.WechatTp.models import WechatTp
- class TemplateListViewSet(APIView):
- permission_classes = [IsAdministratorUser, ]
- def get(self, request):
- tp = WechatTp.getDefault()
- ret = tp.getTemplateList()
- return response_ok(ret)
- class WechatAppletViewSet(CustomModelViewSet):
- # permission_classes = [IsAdministratorUser, ]
- queryset = WechatApplet.objects.filter()
- serializer_class = WechatAppletSerializer
- def filter_queryset(self, queryset):
- f = WechatAppletFilter(self.request.GET, queryset=queryset)
- return f.qs
- @action(methods=['post'], detail=True)
- def upload_code(self, request, pk):
- # 上传代码
- template_id = request.POST.get('template_id')
- user_version = request.POST.get('user_version')
- user_desc = request.POST.get('user_desc')
- app = WechatApplet.getById(pk)
- with transaction.atomic():
- app.uploadCode(template_id, user_version, user_desc)
- admin_log(request.user, BizLog.INSERT,u'小程序上传审核代码,id=%d' % app.id, request.POST.dict())
- return response_ok()
- @action(methods=['post'], detail=False)
- def batch_upload_code(self, request):
- # 批量上传代码
- template_id = request.POST.get('template_id')
- user_version = request.POST.get('user_version')
- user_desc = request.POST.get('user_desc')
- app_ids = json.loads(request.POST.get('ids'))
- apps = WechatApplet.objects.filter(id__in=app_ids)
- for app in apps:
- try:
- with transaction.atomic():
- app.uploadCode(template_id, user_version, user_desc)
- except:
- pass
- admin_log(request.user, BizLog.INSERT, u'小程序批量上传审核代码', request.POST.dict())
- return response_ok()
- @action(methods=['post'], detail=False)
- def refresh_audit_status(self, request):
- # 查询最新一次提交代码的审核状态 多选更新 审核状态
- app_ids = json.loads(request.POST.get('ids'))
- for app_id in app_ids:
- app = WechatApplet.getById(app_id)
- app.refreshAuditStatus()
- return response_ok()
- @action(methods=['post'], detail=True)
- def set_secret(self, request, pk):
- secret = request.POST.get('secret')
- app = WechatApplet.getById(pk)
- with transaction.atomic():
- app.secret = secret
- app.save()
- admin_log(request.user, BizLog.INSERT, u'设置小程序秘钥, id=%d' % app.id, secret)
- return response_ok()
- @action(methods=['post'], detail=True)
- def set_merchant(self, request, pk):
- tenant_num = request.POST.get('tenant_num')
- tenant_key = request.POST.get('tenant_key')
- app = WechatApplet.getById(pk)
- with transaction.atomic():
- app.tenant_num = tenant_num
- app.tenant_key = tenant_key
- app.save()
- admin_log(request.user, BizLog.INSERT, u'设置小程序商户号和商户秘钥, id=%d' % app.id)
- return response_ok()
- @action(methods=['post'], detail=False)
- def add_plugin(self, request):
- app_ids = json.loads(request.POST.get('ids'))
- for app_id in app_ids:
- apps = WechatApplet.getById(app_id)
- apps.addPlugin()
- return response_ok()
- @action(methods=['post'], detail=False)
- def release(self, request):
- app_ids = json.loads(request.POST.get('ids'))
- for app_id in app_ids:
- app = WechatApplet.getById(app_id)
- app.releaseApplet()
- return response_ok()
- @action(methods=['post'], detail=True)
- def upload_cert(self, request, pk):
- file = request.FILES.get('file', None)
- app = WechatApplet.getById(pk)
- with transaction.atomic():
- app.upload_cert_file(file)
- admin_log(request.user, BizLog.INSERT, u'设置小程序企业支付api证书, id=%d' % app.id)
- return response_ok()
|