优化代码,配置文件内部支持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" active-color="#13ce66"
inactive-color="#ff4949"> inactive-color="#ff4949">
</el-switch> </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>
<el-form-item label="证书id" label-width="110px"> <el-form-item label="证书id" label-width="110px">
<el-input v-model="editdeveloperinfo.certid" :disabled='isedit'/> <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): def get_developer_can_used_from_public_sign(user_obj):
o_number_info = IosDeveloperPublicPoolBill.objects.filter(user_id=user_obj).values('number').aggregate( o_number_info = IosDeveloperBill.objects.filter(to_user_id__isnull=False, user_id=user_obj).values(
number=Sum('number')) 'number').aggregate(number=Sum('number'))
o_number = o_number_info.get("number", 0) o_number = o_number_info.get("number", 0)
if o_number is None: if o_number is None:
o_number = 0 o_number = 0

@ -7,6 +7,7 @@
import json import json
import logging import logging
from django.template import Context, Template
from rest_framework import serializers from rest_framework import serializers
from api.models import SystemConfig from api.models import SystemConfig
@ -23,25 +24,40 @@ class SystemConfigSerializer(serializers.ModelSerializer):
fields = "__all__" 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='*'): def invalid_config_cache(key='*'):
SystemConfigCache(key).del_many() SystemConfigCache(key).del_many()
class ConfigCacheBase(object): def get_value_from_db(key):
def __init__(self, px=''): context_dict = {}
self.px = px for sys_obj_dict in SystemConfig.objects.values().all():
context_dict[sys_obj_dict['key']] = sys_obj_dict['value']
def get_value_from_db(self, key): data = SystemConfigSerializer(SystemConfig.objects.filter(key=key).first()).data
sys_obj = SystemConfig.objects.filter(key=key).first()
data = SystemConfigSerializer(sys_obj).data
value = data.get('value', '') value = data.get('value', '')
if value: if value:
try: 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: except Exception as e:
logger.warning(f"db config - json loads failed {e}") logger.warning(f"db config - json loads failed {e}")
except Exception as e:
logger.warning(f"db config - render failed {e}")
return data return data
class ConfigCacheBase(object):
def __init__(self, px=''):
self.px = px
def get_value(self, key, data=None): def get_value(self, key, data=None):
if data is None: if data is None:
data = {} data = {}
@ -49,7 +65,7 @@ class ConfigCacheBase(object):
cache_data = cache.get_storage_cache() cache_data = cache.get_storage_cache()
if cache_data is not None and cache_data.get('key', '') == key: if cache_data is not None and cache_data.get('key', '') == key:
return cache_data.get('value') 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', '') d_key = db_data.get('key', '')
if d_key != key and data is not None: if d_key != key and data is not None:
db_data['value'] = data 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.storage.storage import Storage
from api.utils.utils import delete_local_files, delete_app_screenshots_files from api.utils.utils import delete_local_files, delete_app_screenshots_files
from common.cache.state import MigrateStorageState, CleanAppSignDataState from common.cache.state import MigrateStorageState, CleanAppSignDataState
from fir_ser.settings import DEVELOPER_WRITE_STATUS
logger = logging.getLogger(__name__) 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) AppUDID.objects.filter(app_id=app_obj, sign_status__gte=3).update(sign_status=3)
if app_obj.change_auto_sign: if app_obj.change_auto_sign:
flag = False 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 flag = True
c_task = run_resign_task(app_obj.pk, flag) c_task = run_resign_task(app_obj.pk, flag)
if do_sign_flag == 3: if do_sign_flag == 3:
if app_obj.change_auto_sign: if app_obj.change_auto_sign:
flag = False 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 flag = True
c_task = run_resign_task(app_obj.pk, flag, False) c_task = run_resign_task(app_obj.pk, flag, False)

Loading…
Cancel
Save