1 Star 0 Fork 141

xa0931/CloudComputing20060519-520

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
set_views.py 4.40 KB
一键复制 编辑 原始数据 按行查看 历史
陆敬祥 提交于 2年前 . 2020033160 陆敬祥
# -*- coding: utf-8 -*-
from django.db import transaction
from django.views.decorators.csrf import csrf_exempt
from competition.models import BankInfo, CompetitionKindInfo
from business.models import BusinessAccountInfo, AppConfigInfo, BusinessAppInfo
from account.models import Profile
from utils.response import json_response
from utils.redis.rpageconfig import set_pageconfig
from utils.errors import SetError, BizError, ProfileError
from utils.decorators import check_login, logerr
def banks(request, s):
if s == '999':
banks = BankInfo.objects.values_list('bank_name', 'bank_id', 'kind_num', 'choice_num', 'fillinblank_num').order_by('-kind_num')
return json_response(200, 'OK', {'banks': [{'bank_name': b[0], 'bank_id': b[1], 'kind_num': b[2], 'total_question_num': b[3] + b[4]} for b in banks]})
bank_types = [t[0] for t in BankInfo.BANK_TYPES]
if int(s) in bank_types:
banks = BankInfo.objects.filter(bank_type=s).values_list('bank_name', 'bank_id', 'kind_num', 'choice_num', 'fillinblank_num')
return json_response(200, 'OK', {'banks': [{'bank_name': b[0], 'bank_id': b[1], 'kind_num': b[2], 'total_question_num': b[3] + b[4]} for b in banks]})
return json_response(*SetError.BankTypeError)
def bank_detail(request, bank_id):
try:
bank = BankInfo.objects.get(bank_id=bank_id)
except BankInfo.DoesNotExist:
return json_response(*SetError.BankInfoNotFound)
return json_response(200, 'OK', {'bank_info': bank.data})
@logerr
@csrf_exempt
@check_login
@transaction.atomic
def set_bank(request):
account_id = request.POST.get('account_id', '')
uid = request.POST.get('uid', '')
bank_id = request.POST.get('bank_id', '')
kind_name = request.POST.get('kind_name', '')
sponsor_name = request.POST.get('sponsor_name', '')
question_num = int(request.POST.get('question_num', 1))
total_score = int(request.POST.get('total_score', 100))
cop_startat = request.POST.get('cop_startat')
cop_finishat = request.POST.get('cop_finishat')
period = request.POST.get('period')
rule_text = request.POST.get('rule_text', '')
is_show_userinfo = request.POST.get('is_show_userinfo', 'false')
form_data = request.POST.get('form_data', '')
field_name_data = request.POST.get('field_name_data', '')
option_data = request.POST.get('option_data', '')
try:
BusinessAccountInfo.objects.select_for_update().get(account_id=account_id)
except BusinessAccountInfo.DoesNotExist:
return json_response(*BizError.BizAccountNotFound)
try:
profile = Profile.objects.select_for_update().get(uid=uid)
except Profile.DoesNotExist:
return json_response(*ProfileError.ProfileNotFound)
try:
bank_info = BankInfo.objects.select_for_update().get(bank_id=bank_id)
except BankInfo.DoesNotExist:
return json_response(*SetError.BankInfoNotFound)
app_info = BusinessAppInfo.objects.select_for_update().create(
account_id=account_id,
app_name=kind_name
)
app_config_values = {
'app_name': kind_name,
'rule_text': rule_text,
'is_show_userinfo': True if is_show_userinfo == 'true' else False,
'userinfo_fields': form_data.rstrip('#'),
'userinfo_field_names': field_name_data.rstrip('#'),
'option_fields': option_data.rstrip('#'),
}
app_config_info, app_config_created = AppConfigInfo.objects.select_for_update().get_or_create(
app_id=app_info.app_id,
defaults=app_config_values
)
if not app_config_created:
for k, v in app_config_values.items():
setattr(app_config_info, k, v)
app_config_info.save()
kind_values = {
'kind_name': kind_name,
'sponsor_name': sponsor_name,
'kind_type': bank_info.bank_type,
'total_score': total_score,
'question_num': question_num,
'cop_startat': cop_startat,
'period_time': period or 0,
'cop_finishat': cop_finishat
}
kind_info, kind_created = CompetitionKindInfo.objects.select_for_update().get_or_create(
account_id=account_id,
app_id=app_info.app_id,
bank_id=bank_id,
defaults=kind_values
)
if not kind_created:
for k, v in kind_values.items():
setattr(kind_info, k, v)
kind_info.save()
set_pageconfig(app_config_info.data)
return json_response(200, 'OK', {
'kind_info': kind_info.data,
})
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/xa0931/cloud-computing20060519-520.git
git@gitee.com:xa0931/cloud-computing20060519-520.git
xa0931
cloud-computing20060519-520
CloudComputing20060519-520
master

搜索帮助