diff --git a/fir_client/src/components/user/FirSuperSignBase.vue b/fir_client/src/components/user/FirSuperSignBase.vue index 44e8977..4251666 100644 --- a/fir_client/src/components/user/FirSuperSignBase.vue +++ b/fir_client/src/components/user/FirSuperSignBase.vue @@ -133,7 +133,7 @@ active-color="#13ce66" inactive-color="#ff4949"> - 开启之后,每天凌晨自动检测该开发者状态是否正常,默认关闭 + 开启之后,每天凌晨自动检测该开发者状态和设备使用状态,默认关闭 diff --git a/fir_ser/api/utils/modelutils.py b/fir_ser/api/utils/modelutils.py index 1610b39..2ddb5be 100644 --- a/fir_ser/api/utils/modelutils.py +++ b/fir_ser/api/utils/modelutils.py @@ -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 diff --git a/fir_ser/api/utils/sysconfig.py b/fir_ser/api/utils/sysconfig.py index 2db216f..e18cc78 100644 --- a/fir_ser/api/utils/sysconfig.py +++ b/fir_ser/api/utils/sysconfig.py @@ -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,24 +24,39 @@ 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 - value = data.get('value', '') - if value: +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: + r_text = get_render_context(value, context_dict) + data['value'] = r_text try: - data['value'] = json.loads(value) + data['value'] = json.loads(r_text) except Exception as e: logger.warning(f"db config - json loads failed {e}") - return data + 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: @@ -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 diff --git a/fir_ser/api/views/apps.py b/fir_ser/api/views/apps.py index aa4014c..d9ec80f 100644 --- a/fir_ser/api/views/apps.py +++ b/fir_ser/api/views/apps.py @@ -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)