优化代码,修复bug

dependabot/npm_and_yarn/fir_admin/tmpl-1.0.5
youngS 3 years ago
parent 45978aae73
commit dfcf878416
  1. 2
      fir_ser/api/utils/app/iossignapi.py
  2. 95
      fir_ser/api/utils/app/supersignutils.py
  3. 4
      fir_ser/api/utils/serializer.py
  4. 19
      fir_ser/api/utils/utils.py
  5. 6
      fir_ser/api/views/supersign.py

@ -301,7 +301,7 @@ class AppDeveloperApiV2(object):
except Exception as e: except Exception as e:
logger.error(f"app_id {app_obj.app_id} ios developer make profile Failed Exception:{e}") logger.error(f"app_id {app_obj.app_id} ios developer make profile Failed Exception:{e}")
result['return_info'] = "%s" % e result['return_info'] = "%s" % e
if "There are no current ios devices" in e: if "There are no current ios devices" in str(e):
err_callback() err_callback()
return False, result return False, result

@ -192,9 +192,9 @@ def get_apple_udid_key(auth):
return m_key return m_key
def err_callback(func, a, b): def err_callback(func, *args, **kwargs):
def wrapper(): def wrapper():
return func(a, b) return func(*args, **kwargs)
return wrapper return wrapper
@ -327,6 +327,10 @@ class IosUtils(object):
sync_device_obj = UDIDsyncDeveloper.objects.filter(udid=udid_info.get('udid'), sync_device_obj = UDIDsyncDeveloper.objects.filter(udid=udid_info.get('udid'),
developerid=developer_obj).first() developerid=developer_obj).first()
if sync_device_obj: if sync_device_obj:
DeveloperDevicesID.objects.update_or_create(did=sync_device_obj.serial, udid=sync_device_obj,
developerid=developer_obj,
app_id=app_obj)
device_id_lists.append(sync_device_obj.serial) device_id_lists.append(sync_device_obj.serial)
udid_info = None udid_info = None
add_did_flag = True add_did_flag = True
@ -336,7 +340,7 @@ class IosUtils(object):
get_profile_full_path(developer_obj, app_obj), get_profile_full_path(developer_obj, app_obj),
auth, developer_app_id, device_id_lists, auth, developer_app_id, device_id_lists,
err_callback(IosUtils.get_device_from_developer, err_callback(IosUtils.get_device_from_developer,
developer_obj, developer_obj.user_id)) developer_obj))
if add_did_flag and sync_device_obj: if add_did_flag and sync_device_obj:
result['did'] = sync_device_obj.serial result['did'] = sync_device_obj.serial
result['did_exists'] = True result['did_exists'] = True
@ -421,20 +425,11 @@ class IosUtils(object):
storage_obj.upload_file(os.path.join(MEDIA_ROOT, random_file_name + ".ipa")) storage_obj.upload_file(os.path.join(MEDIA_ROOT, random_file_name + ".ipa"))
def update_developer_used_data(self): def update_developer_used_data(self):
appsupersign_obj = APPSuperSignUsedInfo.objects.filter(udid__udid=self.udid_info.get('udid'), udid_obj = AppUDID.objects.filter(app_id=self.app_obj, udid=self.udid_info.get('udid')).first()
developerid=self.developer_obj) APPSuperSignUsedInfo.objects.update_or_create(app_id=self.app_obj,
if appsupersign_obj.count() == 0: user_id=self.user_obj,
developer_obj = self.developer_obj
developer_obj.use_number = developer_obj.use_number + 1
logger.info(
f"developer {developer_obj} use_number+1 now {developer_obj.use_number} udid {self.udid_info.get('udid')} app_id {self.app_obj}")
developer_obj.save(update_fields=['use_number'])
if not appsupersign_obj.filter(app_id=self.app_obj, user_id=self.user_obj).first():
APPSuperSignUsedInfo.objects.create(app_id=self.app_obj, user_id=self.user_obj,
developerid=self.developer_obj, developerid=self.developer_obj,
udid=AppUDID.objects.filter(app_id=self.app_obj, udid=udid_obj)
udid=self.udid_info.get('udid')).first())
def update_sign_data(self, random_file_name, release_obj): def update_sign_data(self, random_file_name, release_obj):
newdata = { newdata = {
@ -530,7 +525,7 @@ class IosUtils(object):
"call_loop download_profile appid:%s developer:%s count:%s" % (self.app_obj, self.developer_obj, count)) "call_loop download_profile appid:%s developer:%s count:%s" % (self.app_obj, self.developer_obj, count))
if self.developer_obj: if self.developer_obj:
with cache.lock("%s_%s_%s" % ('download_profile', self.app_obj.app_id, self.developer_obj.issuer_id), with cache.lock("%s_%s_%s" % ('download_profile', self.app_obj.app_id, self.developer_obj.issuer_id),
timeout=60): timeout=180):
download_flag, result = IosUtils.exec_download_profile(self.app_obj, self.developer_obj, download_flag, result = IosUtils.exec_download_profile(self.app_obj, self.developer_obj,
self.udid_info, sign_try_attempts) self.udid_info, sign_try_attempts)
if download_flag: if download_flag:
@ -609,10 +604,6 @@ class IosUtils(object):
app_api_obj.set_device_status("disable", udid_obj.udid) app_api_obj.set_device_status("disable", udid_obj.udid)
UDIDsyncDeveloper.objects.filter(udid=udid_obj.udid, developerid=developer_obj).delete() UDIDsyncDeveloper.objects.filter(udid=udid_obj.udid, developerid=developer_obj).delete()
if developer_obj.use_number > 0:
developer_obj.use_number = developer_obj.use_number - 1
developer_obj.save(update_fields=['use_number'])
udid_obj.delete() udid_obj.delete()
@staticmethod @staticmethod
@ -679,12 +670,6 @@ class IosUtils(object):
new_full_path = os.path.join(os.path.dirname(new_full_path_dir), new_full_path = os.path.join(os.path.dirname(new_full_path_dir),
'%s_%s_%s' % ('remove', new_full_path_name, get_format_time())) '%s_%s_%s' % ('remove', new_full_path_name, get_format_time()))
os.rename(new_full_path_dir, new_full_path) os.rename(new_full_path_dir, new_full_path)
# for root, dirs, files in os.walk(full_path, topdown=False):
# for name in files:
# os.remove(os.path.join(root, name))
# for name in dirs:
# os.rmdir(os.path.join(root, name))
# os.rmdir(full_path)
except Exception as e: except Exception as e:
logger.error("clean_developer developer_obj:%s user_obj:%s delete file failed Exception:%s" % ( logger.error("clean_developer developer_obj:%s user_obj:%s delete file failed Exception:%s" % (
developer_obj, user_obj, e)) developer_obj, user_obj, e))
@ -777,13 +762,18 @@ class IosUtils(object):
return status, result return status, result
@staticmethod @staticmethod
def get_device_from_developer(developer_obj, user_obj): def get_device_from_developer(developer_obj):
auth = get_auth_form_developer(developer_obj) auth = get_auth_form_developer(developer_obj)
app_api_obj = get_api_obj(auth) app_api_obj = get_api_obj(auth)
status, result = app_api_obj.get_device() status, result = app_api_obj.get_device()
if status: if status and auth.get("issuer_id"):
if auth.get("issuer_id"):
UDIDsyncDeveloper.objects.filter(developerid=developer_obj, platform=1).delete() udid_developer_obj_list = UDIDsyncDeveloper.objects.filter(developerid=developer_obj).values_list('udid')
udid_developer_list = [x[0] for x in udid_developer_obj_list if len(x) > 0]
udid_result_list = [device.udid for device in result]
will_del_udid_list = list(set(udid_developer_list) - set(udid_result_list))
for device_obj in result: for device_obj in result:
device = { device = {
"serial": device_obj.id, "serial": device_obj.id,
@ -792,39 +782,14 @@ class IosUtils(object):
"version": device_obj.model, "version": device_obj.model,
"platform": 1 "platform": 1
} }
app_udid_obj = UDIDsyncDeveloper.objects.filter(developerid=developer_obj, udid=device.get("udid")) obj, create = UDIDsyncDeveloper.objects.update_or_create(developerid=developer_obj,
if app_udid_obj: udid=device_obj.udid, defaults=device)
pass if not create:
else: DeveloperDevicesID.objects.filter(udid=obj, developerid=developer_obj).update(
UDIDsyncDeveloper.objects.create(developerid=developer_obj, **device) **{'did': device_obj.id})
else: AppUDID.objects.filter(udid__in=will_del_udid_list,
app_id__developerdevicesid__udid__in=UDIDsyncDeveloper.objects.filter(
udid__in=will_del_udid_list)).delete()
UDIDsyncDeveloper.objects.filter(udid__in=will_del_udid_list).delete()
file_format_path_name = file_format_path(user_obj, auth)
devices_info = ""
try:
with open(file_format_path_name + ".devices.info", "r") as f:
devices_info = f.read().replace("\n\t", "").replace("[", "").replace("]", "")
except Exception as e:
logger.error(
"get_device_from_developer developer_obj:%s user_obj:%s delete file failed Exception:%s" % (
developer_obj, user_obj, e))
UDIDsyncDeveloper.objects.filter(developerid=developer_obj, platform=1).delete()
for devicestr in devices_info.split(">"):
formatdevice = re.findall(r'.*Device id="(.*)",.*name="(.*)",.*udid="(.*?)",.*model=(.*),.*',
devicestr)
if formatdevice:
device = {
"serial": formatdevice[0][0],
"product": formatdevice[0][1],
"udid": formatdevice[0][2],
"version": formatdevice[0][3],
"platform": 1
}
app_udid_obj = UDIDsyncDeveloper.objects.filter(developerid=developer_obj,
udid=device.get("udid"))
if app_udid_obj:
pass
else:
UDIDsyncDeveloper.objects.create(developerid=developer_obj, **device)
return status, result return status, result

@ -404,6 +404,7 @@ class DeveloperSerializer(serializers.ModelSerializer):
developer_used_number = serializers.SerializerMethodField() developer_used_number = serializers.SerializerMethodField()
developer_used_other_number = serializers.SerializerMethodField() developer_used_other_number = serializers.SerializerMethodField()
use_number = serializers.SerializerMethodField()
def get_developer_used_number(self, obj): def get_developer_used_number(self, obj):
return models.UDIDsyncDeveloper.objects.filter(developerid=obj).count() return models.UDIDsyncDeveloper.objects.filter(developerid=obj).count()
@ -411,6 +412,9 @@ class DeveloperSerializer(serializers.ModelSerializer):
def get_developer_used_other_number(self, obj): def get_developer_used_other_number(self, obj):
return get_developer_udided(obj)[0] return get_developer_udided(obj)[0]
def get_use_number(self, obj):
return models.DeveloperDevicesID.objects.filter(developerid=obj).count()
class AdminDeveloperSerializer(DeveloperSerializer): class AdminDeveloperSerializer(DeveloperSerializer):
class Meta: class Meta:

@ -7,7 +7,7 @@ import os, datetime, random
import binascii import binascii
from fir_ser.settings import SERVER_DOMAIN, CAPTCHA_LENGTH, MEDIA_ROOT, CACHE_KEY_TEMPLATE from fir_ser.settings import SERVER_DOMAIN, CAPTCHA_LENGTH, MEDIA_ROOT, CACHE_KEY_TEMPLATE
from api.models import APPSuperSignUsedInfo, APPToDeveloper, \ from api.models import APPSuperSignUsedInfo, APPToDeveloper, \
UDIDsyncDeveloper, UserInfo, AppReleaseInfo, AppScreenShot, Token UDIDsyncDeveloper, UserInfo, AppReleaseInfo, AppScreenShot, Token, DeveloperDevicesID
from api.utils.storage.caches import get_app_d_count_by_app_id from api.utils.storage.caches import get_app_d_count_by_app_id
from api.utils.storage.localApi import LocalStorage from api.utils.storage.localApi import LocalStorage
from api.utils.storage.storage import Storage from api.utils.storage.storage import Storage
@ -36,8 +36,8 @@ def delete_app_to_dev_and_file(developer_obj, app_id):
def get_developer_udided(developer_obj): def get_developer_udided(developer_obj):
super_sing_used_obj = APPSuperSignUsedInfo.objects.filter(developerid=developer_obj) super_sing_used_obj = APPSuperSignUsedInfo.objects.filter(developerid=developer_obj).all()
udid_sync_developer_obj = UDIDsyncDeveloper.objects.filter(developerid=developer_obj) udid_sync_developer_obj = UDIDsyncDeveloper.objects.filter(developerid=developer_obj).all()
develoer_udid_lists = [] develoer_udid_lists = []
supersign_udid_lists = [] supersign_udid_lists = []
if udid_sync_developer_obj: if udid_sync_developer_obj:
@ -55,12 +55,15 @@ def get_developer_devices(developer_obj_lists):
other_used_sum += other_used other_used_sum += other_used
flyapp_used_sum += flyapp_used flyapp_used_sum += flyapp_used
use_number_obj = developer_obj_lists.filter(is_actived=True) use_number_obj_list = developer_obj_lists.filter(is_actived=True)
if use_number_obj: all_use_number = 0
use_number_dict = use_number_obj.aggregate(usable_number=Sum('usable_number'), use_number=Sum('use_number')) all_usable_number = 0
for use_number_obj in use_number_obj_list:
all_usable_number += use_number_obj.usable_number
all_use_number += DeveloperDevicesID.objects.filter(developerid=use_number_obj).count()
use_num = { use_num = {
"all_usable_number": use_number_dict.get("usable_number", 0), "all_usable_number": all_usable_number,
"all_use_number": use_number_dict.get("use_number", 0), "all_use_number": all_use_number,
"other_used_sum": other_used_sum, "other_used_sum": other_used_sum,
"flyapp_used_sum": flyapp_used_sum, "flyapp_used_sum": flyapp_used_sum,
} }

@ -69,7 +69,7 @@ class DeveloperView(APIView):
status, result = IosUtils.active_developer(developer_obj) status, result = IosUtils.active_developer(developer_obj)
if status: if status:
if not developer_obj.certid: if not developer_obj.certid:
IosUtils.get_device_from_developer(developer_obj, request.user) IosUtils.get_device_from_developer(developer_obj)
return self.get(request) return self.get(request)
else: else:
res.code = 1008 res.code = 1008
@ -80,7 +80,7 @@ class DeveloperView(APIView):
if not developer_obj.certid: if not developer_obj.certid:
status, result = IosUtils.create_developer_cert(developer_obj, request.user) status, result = IosUtils.create_developer_cert(developer_obj, request.user)
if status: if status:
IosUtils.get_device_from_developer(developer_obj, request.user) IosUtils.get_device_from_developer(developer_obj)
else: else:
res.code = 1008 res.code = 1008
res.msg = result.get("err_info") res.msg = result.get("err_info")
@ -104,7 +104,7 @@ class DeveloperView(APIView):
res.msg = result.get("err_info", '') res.msg = result.get("err_info", '')
return Response(res.dict) return Response(res.dict)
elif act == "syncdevice": elif act == "syncdevice":
status, result = IosUtils.get_device_from_developer(developer_obj, request.user) status, result = IosUtils.get_device_from_developer(developer_obj)
if not status: if not status:
res.code = 1008 res.code = 1008
res.msg = result.get("err_info") res.msg = result.get("err_info")

Loading…
Cancel
Save