优化代码,配置文件内部支持template语法,修复新设备注册异常的问题

dependabot/npm_and_yarn/fir_admin/url-parse-1.5.10
nineven 3 years ago
parent c4fd9aa793
commit 6051f443c1
  1. 2
      fir_client/src/components/user/FirSuperSignBase.vue
  2. 4
      fir_ser/api/utils/modelutils.py
  3. 34
      fir_ser/api/utils/sysconfig.py
  4. 7
      fir_ser/api/views/apps.py

@ -133,7 +133,7 @@
active-color="#13ce66"
inactive-color="#ff4949">
</el-switch>
<el-tag style="margin-left: 10px" type="warning"> 开启之后每天凌晨自动检测该开发者状态是否正常默认关闭</el-tag>
<el-tag style="margin-left: 10px" type="warning"> 开启之后每天凌晨自动检测该开发者状态和设备使用状态默认关闭</el-tag>
</el-form-item>
<el-form-item label="证书id" label-width="110px">
<el-input v-model="editdeveloperinfo.certid" :disabled='isedit'/>

@ -200,8 +200,8 @@ def get_user_public_used_sign_num(user_obj):
def get_developer_can_used_from_public_sign(user_obj):
o_number_info = IosDeveloperPublicPoolBill.objects.filter(user_id=user_obj).values('number').aggregate(
number=Sum('number'))
o_number_info = IosDeveloperBill.objects.filter(to_user_id__isnull=False, user_id=user_obj).values(
'number').aggregate(number=Sum('number'))
o_number = o_number_info.get("number", 0)
if o_number is None:
o_number = 0

@ -7,6 +7,7 @@
import json
import logging
from django.template import Context, Template
from rest_framework import serializers
from api.models import SystemConfig
@ -23,25 +24,40 @@ class SystemConfigSerializer(serializers.ModelSerializer):
fields = "__all__"
def get_render_context(tmp: str, context: dict) -> str:
template = Template(tmp)
context = Context(context)
return template.render(context)
def invalid_config_cache(key='*'):
SystemConfigCache(key).del_many()
class ConfigCacheBase(object):
def __init__(self, px=''):
self.px = px
def get_value_from_db(self, key):
sys_obj = SystemConfig.objects.filter(key=key).first()
data = SystemConfigSerializer(sys_obj).data
def get_value_from_db(key):
context_dict = {}
for sys_obj_dict in SystemConfig.objects.values().all():
context_dict[sys_obj_dict['key']] = sys_obj_dict['value']
data = SystemConfigSerializer(SystemConfig.objects.filter(key=key).first()).data
value = data.get('value', '')
if value:
try:
data['value'] = json.loads(value)
r_text = get_render_context(value, context_dict)
data['value'] = r_text
try:
data['value'] = json.loads(r_text)
except Exception as e:
logger.warning(f"db config - json loads failed {e}")
except Exception as e:
logger.warning(f"db config - render failed {e}")
return data
class ConfigCacheBase(object):
def __init__(self, px=''):
self.px = px
def get_value(self, key, data=None):
if data is None:
data = {}
@ -49,7 +65,7 @@ class ConfigCacheBase(object):
cache_data = cache.get_storage_cache()
if cache_data is not None and cache_data.get('key', '') == key:
return cache_data.get('value')
db_data = self.get_value_from_db(key)
db_data = get_value_from_db(key)
d_key = db_data.get('key', '')
if d_key != key and data is not None:
db_data['value'] = data

@ -23,6 +23,7 @@ from api.utils.storage.caches import del_cache_response_by_short, get_app_today_
from api.utils.storage.storage import Storage
from api.utils.utils import delete_local_files, delete_app_screenshots_files
from common.cache.state import MigrateStorageState, CleanAppSignDataState
from fir_ser.settings import DEVELOPER_WRITE_STATUS
logger = logging.getLogger(__name__)
@ -256,14 +257,16 @@ class AppInfoView(APIView):
AppUDID.objects.filter(app_id=app_obj, sign_status__gte=3).update(sign_status=3)
if app_obj.change_auto_sign:
flag = False
if AppUDID.objects.filter(app_id=app_obj, sign_status=2).first():
if AppUDID.objects.filter(app_id=app_obj, sign_status=2,
udid__developerid__status__in=DEVELOPER_WRITE_STATUS).first():
flag = True
c_task = run_resign_task(app_obj.pk, flag)
if do_sign_flag == 3:
if app_obj.change_auto_sign:
flag = False
if AppUDID.objects.filter(app_id=app_obj, sign_status=2).first():
if AppUDID.objects.filter(app_id=app_obj, sign_status=2,
udid__developerid__status__in=DEVELOPER_WRITE_STATUS).first():
flag = True
c_task = run_resign_task(app_obj.pk, flag, False)

Loading…
Cancel
Save