VersionManagementController.py 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. import os
  4. import hashlib
  5. import time
  6. from django.db import transaction
  7. from django.views.generic.base import View
  8. from Ansjer.config import BASE_DIR
  9. from Object.TokenObject import TokenObject
  10. from Object.ResponseObject import ResponseObject
  11. from Service.CommonService import CommonService
  12. from Model.models import Equipment_Version, App_Info, AppSetModel, App_Colophon, Pc_Info
  13. class VersionManagement(View):
  14. def get(self, request, *args, **kwargs):
  15. request.encoding = 'utf-8'
  16. operation = kwargs.get('operation')
  17. return self.validation(request.GET, request, operation)
  18. def post(self, request, *args, **kwargs):
  19. request.encoding = 'utf-8'
  20. operation = kwargs.get('operation')
  21. return self.validation(request.POST, request, operation)
  22. def validation(self, request_dict, request, operation):
  23. language = request_dict.get('language', 'en')
  24. response = ResponseObject(language, 'pc')
  25. if operation == 'upLoadFile':
  26. return self.upLoadFile(request, request_dict, response)
  27. else:
  28. tko = TokenObject(
  29. request.META.get('HTTP_AUTHORIZATION'),
  30. returntpye='pc')
  31. if tko.code != 0:
  32. return response.json(tko.code)
  33. response.lang = tko.lang
  34. userID = tko.userID
  35. if operation == 'getEquipmentVersionList':
  36. return self.getEquipmentVersionList(request_dict, response)
  37. elif operation == 'editVersionInformation':
  38. return self.editVersionInformation(request_dict, response)
  39. elif operation == 'deleteEquipmentVersion':
  40. return self.deleteEquipmentVersion(request_dict, response)
  41. elif operation == 'getAppVersionList':
  42. return self.getAppVersionList(request_dict, response)
  43. elif operation == 'addOrEditAppInfo':
  44. return self.addOrEditAppInfo(request_dict, response)
  45. elif operation == 'deleteAppVersion':
  46. return self.deleteAppVersion(request_dict, response)
  47. elif operation == 'getAppSet':
  48. return self.getAppSet(request_dict, response)
  49. elif operation == 'editAppSet':
  50. return self.editAppSet(request_dict, response)
  51. elif operation == 'getAppRecordList':
  52. return self.getAppRecordList(request_dict, response)
  53. elif operation == 'getAppBundleIdList':
  54. return self.getAppBundleIdList(request_dict, response)
  55. elif operation == 'addOrEditAppRecord':
  56. return self.addOrEditAppRecord(request_dict, response)
  57. elif operation == 'deleteAppRecord':
  58. return self.deleteAppRecord(request_dict, response)
  59. elif operation == 'getPcInfoList':
  60. return self.getPcInfoList(request_dict, response)
  61. elif operation == 'editPcVersion':
  62. return self.editPcVersion(request_dict, response)
  63. else:
  64. return response.json(404)
  65. def getEquipmentVersionList(self, request_dict, response):
  66. mci = request_dict.get('mci', None)
  67. lang = request_dict.get('lang', None)
  68. version = request_dict.get('version', None)
  69. pageNo = request_dict.get('pageNo', None)
  70. pageSize = request_dict.get('pageSize', None)
  71. if not all([pageNo, pageSize]):
  72. return response.json(444)
  73. page = int(pageNo)
  74. line = int(pageSize)
  75. try:
  76. equipment_version_qs = Equipment_Version.objects.filter()
  77. if mci:
  78. equipment_version_qs = equipment_version_qs.filter(mci=mci)
  79. if lang:
  80. equipment_version_qs = equipment_version_qs.filter(lang=lang)
  81. if version:
  82. equipment_version_qs = equipment_version_qs.filter(version__contains=version)
  83. total = equipment_version_qs.count()
  84. equipment_version_qs = equipment_version_qs.values()[(page - 1) * line:page * line]
  85. equipment_version_list = CommonService.qs_to_list(equipment_version_qs)
  86. return response.json(0, {'list': equipment_version_list, 'total': total})
  87. except Exception as e:
  88. print(e)
  89. return response.json(500, repr(e))
  90. def upLoadFile(self, request, request_dict, response):
  91. file = request.FILES.get('file', None)
  92. mci = request_dict.get('mci', '')
  93. lang = request_dict.get('lang', '')
  94. ESN = request_dict.get('ESN', '')
  95. max_ver = request_dict.get('max_ver', '')
  96. channel = request_dict.get('channel', '')
  97. resolutionRatio = request_dict.get('resolutionRatio', '')
  98. Description = request_dict.get('Description', '')
  99. status = request_dict.get('status', 0)
  100. fileSize = request_dict.get('fileSize', '')
  101. if not all([file, mci, lang, ESN, max_ver, channel, resolutionRatio]):
  102. return response.json(444)
  103. try:
  104. channel = int(channel)
  105. resolutionRatio = int(resolutionRatio)
  106. status = int(status)
  107. # 文件名为设备版本,最后一个'.'的前面为软件版本,后面为设备规格名称
  108. # V2.2.4.16E201252CA,软件版本:2.2.4,设备规格名称:16E201252CA
  109. file_name = str(file) # 文件名
  110. version = file_name[:file_name.rindex('.')] # 设备版本
  111. rpoint = version.rindex('.')
  112. softwareVersion = version[1:rpoint] # 软件版本
  113. code = version[rpoint+1:] # 设备规格名称
  114. chipModelList2Code = code[:4] # 主芯片
  115. type = code[-3:-1] # 设备机型
  116. companyCode = code[-1:] # 公司代码
  117. fileSize = fileSize
  118. filePath = '/'.join(('static/otapack', mci, lang, file_name))
  119. file_data = file.read()
  120. fileMd5 = hashlib.md5(file_data).hexdigest()
  121. data_dict = {'mci': mci, 'lang': lang, 'ESN': ESN, 'max_ver': max_ver, 'channel': channel,
  122. 'resolutionRatio': resolutionRatio, 'Description': Description, 'status': status,
  123. 'version': version, 'softwareVersion': softwareVersion, 'code': code,
  124. 'chipModelList2Code': chipModelList2Code, 'type': type, 'companyCode': companyCode,
  125. 'fileSize': fileSize, 'filePath': filePath, 'fileMd5': fileMd5}
  126. # Equipment_Version表创建或更新数据
  127. equipment_version_qs = Equipment_Version.objects.filter(code=code, lang=lang)
  128. if not equipment_version_qs.exists():
  129. Equipment_Version.objects.create(eid=CommonService.getUserID(getUser=False, setOTAID=True), **data_dict)
  130. else:
  131. equipment_version_qs.update(**data_dict)
  132. # 上传文件到服务器
  133. upload_path = '/'.join((BASE_DIR, 'static/otapack', mci, lang)).replace('\\', '/') + '/'
  134. if not os.path.exists(upload_path): # 上传目录不存在则创建
  135. os.makedirs(upload_path)
  136. # 文件上传
  137. full_name = upload_path + file_name
  138. if os.path.exists(full_name): # 删除同名文件
  139. os.remove(full_name)
  140. with open(full_name, 'wb+') as write_file:
  141. for chunk in file.chunks():
  142. write_file.write(chunk)
  143. return response.json(0)
  144. except Exception as e:
  145. print(e)
  146. return response.json(500, repr(e))
  147. def editVersionInformation(self, request_dict, response):
  148. eid = request_dict.get('eid', None)
  149. ESN = request_dict.get('ESN', '')
  150. max_ver = request_dict.get('max_ver', '')
  151. status = request_dict.get('status', '')
  152. channel = request_dict.get('channel', '')
  153. resolutionRatio = request_dict.get('resolutionRatio', '')
  154. Description = request_dict.get('Description', '')
  155. if not eid:
  156. return response.json(444)
  157. status = 1 if status == 'true' else 0
  158. try:
  159. equipment_version_qs = Equipment_Version.objects.filter(eid=eid)
  160. if not equipment_version_qs.exists():
  161. return response.json(173)
  162. data_dict = {'ESN': ESN, 'max_ver': max_ver, 'status': status, 'channel': channel,
  163. 'resolutionRatio': resolutionRatio, 'Description': Description}
  164. equipment_version_qs.update(**data_dict)
  165. return response.json(0)
  166. except Exception as e:
  167. print(e)
  168. return response.json(500, repr(e))
  169. def deleteEquipmentVersion(self, request_dict, response):
  170. eid = request_dict.get('eid', None)
  171. if not eid:
  172. return response.json(444)
  173. try:
  174. equipment_version_qs = Equipment_Version.objects.filter(eid=eid)
  175. filePath = equipment_version_qs.values('filePath')[0]['filePath']
  176. equipment_version_qs.delete()
  177. # 删除文件
  178. full_name = '/'.join((BASE_DIR, filePath)).replace('\\', '/')
  179. if os.path.exists(full_name):
  180. os.remove(full_name)
  181. return response.json(0)
  182. except Exception as e:
  183. print(e)
  184. return response.json(500, repr(e))
  185. def getAppVersionList(self, request_dict, response):
  186. app_type = request_dict.get('app_type', None)
  187. appName = request_dict.get('appName', None)
  188. version = request_dict.get('version', None)
  189. pageNo = request_dict.get('pageNo', None)
  190. pageSize = request_dict.get('pageSize', None)
  191. if not all([pageNo, pageSize]):
  192. return response.json(444)
  193. page = int(pageNo)
  194. line = int(pageSize)
  195. try:
  196. app_info_qs = App_Info.objects.filter()
  197. if app_type:
  198. if app_type == 'IOS':
  199. app_type = 1
  200. elif app_type == '安卓':
  201. app_type = 2
  202. else:
  203. app_type = 3
  204. app_info_qs = app_info_qs.filter(app_type=app_type)
  205. if appName:
  206. app_info_qs = app_info_qs.filter(appName__contains=appName)
  207. if version:
  208. app_info_qs = app_info_qs.filter(version__contains=version)
  209. total = app_info_qs.count()
  210. app_info_qs = app_info_qs.values()[(page - 1) * line:page * line]
  211. app_info_list = CommonService.qs_to_list(app_info_qs)
  212. return response.json(0, {'list': app_info_list, 'total': total})
  213. except Exception as e:
  214. print(e)
  215. return response.json(500, repr(e))
  216. def addOrEditAppInfo(self, request_dict, response):
  217. id = request_dict.get('id', None)
  218. appName = request_dict.get('appName', '')
  219. appBundleId = request_dict.get('appBundleId', '')
  220. bundleVersion = request_dict.get('bundleVersion', '')
  221. newAppversion = request_dict.get('newAppversion', '')
  222. minAppversion = request_dict.get('minAppversion', '')
  223. content = request_dict.get('content', '')
  224. app_type = request_dict.get('app_type', '')
  225. downloadLink = request_dict.get('downloadLink', '')
  226. try:
  227. app_type = int(app_type)
  228. data_dict = {'appName': appName, 'appBundleId': appBundleId, 'bundleVersion': bundleVersion,
  229. 'newAppversion': newAppversion, 'minAppversion': minAppversion, 'content': content,
  230. 'app_type': app_type, 'downloadLink': downloadLink}
  231. if not id: # 添加
  232. App_Info.objects.create(**data_dict)
  233. else: # 编辑
  234. app_info_qs = App_Info.objects.filter(id=id)
  235. if not app_info_qs.exists():
  236. return response.json(173)
  237. app_info_qs.update(**data_dict)
  238. return response.json(0)
  239. except Exception as e:
  240. print(e)
  241. return response.json(500, repr(e))
  242. def deleteAppVersion(self, request_dict, response):
  243. appBundleId = request_dict.get('appBundleId', None)
  244. if not appBundleId:
  245. return response.json(444)
  246. try:
  247. App_Info.objects.filter(appBundleId=appBundleId).delete()
  248. AppSetModel.objects.filter(appBundleId=appBundleId).delete()
  249. return response.json(0)
  250. except Exception as e:
  251. print(e)
  252. return response.json(500, repr(e))
  253. def getAppSet(self, request_dict, response):
  254. appBundleId = request_dict.get('appBundleId', None)
  255. if not appBundleId:
  256. return response.json(444)
  257. try:
  258. app_set_qs = AppSetModel.objects.filter(appBundleId=appBundleId).values('content')
  259. if app_set_qs.exists():
  260. content = app_set_qs[0]['content']
  261. return response.json(0, {'content': content})
  262. else:
  263. nowTime = int(time.time())
  264. AppSetModel.objects.create(
  265. appBundleId=appBundleId,
  266. addTime=nowTime,
  267. updTime=nowTime
  268. )
  269. return response.json(0)
  270. except Exception as e:
  271. print(e)
  272. return response.json(500, repr(e))
  273. def editAppSet(self, request_dict, response):
  274. appBundleId = request_dict.get('appBundleId', None)
  275. content = request_dict.get('content', None)
  276. if not all([appBundleId, content]):
  277. return response.json(444)
  278. try:
  279. AppSetModel.objects.filter(appBundleId=appBundleId).update(content=content)
  280. return response.json(0)
  281. except Exception as e:
  282. print(e)
  283. return response.json(500, repr(e))
  284. def getAppRecordList_1(self, request_dict, response):
  285. app_type = request_dict.get('app_type', 'IOS')
  286. pageNo = request_dict.get('pageNo', None)
  287. pageSize = request_dict.get('pageSize', None)
  288. if not all([pageNo, pageSize]):
  289. return response.json(444)
  290. page = int(pageNo)
  291. line = int(pageSize)
  292. try:
  293. if app_type:
  294. if app_type == 'IOS':
  295. app_type = 1
  296. elif app_type == '安卓':
  297. app_type = 2
  298. else:
  299. app_type = 3
  300. app_colophon_qs = App_Colophon.objects.filter(app_id__app_type=app_type).order_by('app_id').values_list('app_id__appBundleId', flat=True).distinct()
  301. if not app_colophon_qs.exists():
  302. return response.json(173)
  303. total = app_colophon_qs.count()
  304. app_colophon_list = list(app_colophon_qs[(page - 1) * line:page * line])
  305. app_info_qs = App_Colophon.objects.filter(app_id__appBundleId__in=app_colophon_list).\
  306. values("id", "lang", "newApp_version", "content","version_time", "app_id__appBundleId", "app_id__appName", "app_id__app_type")
  307. app_info_list = list(app_info_qs)
  308. data_dict = {}
  309. # 组装数据
  310. for app_info in app_info_list:
  311. for app_colophon in app_colophon_list:
  312. if app_colophon not in data_dict.keys():
  313. data_dict[app_colophon] = []
  314. if app_colophon == app_info['app_id__appBundleId']:
  315. data_dict[app_colophon].append(app_info)
  316. for k, v in enumerate(data_dict):
  317. new = sorted(data_dict[v], key=lambda x: x['id'], reverse=True)
  318. data_dict[v] = new
  319. res = {
  320. 'data_dict': data_dict,
  321. 'total': total
  322. }
  323. return response.json(0, res)
  324. except Exception as e:
  325. print(e)
  326. return response.json(500, repr(e))
  327. def getAppRecordList(self, request_dict, response):
  328. app_type = request_dict.get('appType', 'IOS')
  329. queryVersion = request_dict.get('queryVersion', None)
  330. queryAppBundleId = request_dict.get('queryAppBundleId', None)
  331. pageNo = request_dict.get('pageNo', None)
  332. pageSize = request_dict.get('pageSize', None)
  333. if not all([pageNo, pageSize]):
  334. return response.json(444)
  335. page = int(pageNo)
  336. line = int(pageSize)
  337. try:
  338. if app_type == 'IOS':
  339. app_type = 1
  340. elif app_type == '安卓':
  341. app_type = 2
  342. else:
  343. app_type = 3
  344. app_colophon_qs = App_Colophon.objects.filter(app_id__app_type=app_type).order_by('app_id').values_list('app_id__appBundleId', flat=True).distinct()
  345. if not app_colophon_qs.exists():
  346. return response.json(173)
  347. total = app_colophon_qs.count()
  348. app_colophon_list = list(app_colophon_qs[(page - 1) * line:page * line])
  349. app_info_qs = App_Colophon.objects.filter(app_id__appBundleId__in=app_colophon_list).\
  350. values("id", "lang", "newApp_version", "content", "version_time", "app_id__appBundleId", "app_id__appName", "app_id__app_type")
  351. app_info_list = list(app_info_qs)
  352. app_record_list = [] # 响应的app record数据
  353. appBundleId_list = [] # 记录已添加过的appBundleId
  354. # 组装数据
  355. for app_info in app_info_list:
  356. version = app_info['lang'] + app_info['newApp_version']
  357. if app_info['app_id__appBundleId'] not in appBundleId_list:
  358. appBundleId_list.append(app_info['app_id__appBundleId'])
  359. newApp_version_list = [[app_info['lang'], app_info['newApp_version']]]
  360. app_record_dict = {
  361. 'app_id__appBundleId': app_info['app_id__appBundleId'],
  362. 'app_id__appName': app_info['app_id__appName'],
  363. 'app_id__app_type': app_info['app_id__app_type'],
  364. 'version': version,
  365. 'newApp_version_list': newApp_version_list,
  366. 'id': app_info['id'],
  367. 'content': app_info['content'],
  368. 'version_time': time.strftime("%Y-%m-%d", time.localtime(app_info['version_time'])),
  369. }
  370. if queryVersion and queryVersion == version and queryAppBundleId == app_info['app_id__appBundleId']:
  371. app_record_dict['id'] = app_info['id']
  372. app_record_dict['content'] = app_info['content']
  373. app_record_dict['version_time'] = time.strftime("%Y-%m-%d", time.localtime(app_info['version_time']))
  374. app_record_list.append(app_record_dict)
  375. else:
  376. index = appBundleId_list.index(app_info['app_id__appBundleId'])
  377. newApp_version_list = [app_info['lang'], app_info['newApp_version']]
  378. if queryVersion and queryVersion == version and queryAppBundleId == app_info['app_id__appBundleId']:
  379. # app_record_list里对应字典插入值
  380. app_record_list[index]['id'] = app_info['id']
  381. app_record_list[index]['content'] = app_info['content']
  382. app_record_list[index]['version_time'] = time.strftime("%Y-%m-%d", time.localtime(app_info['version_time']))
  383. app_record_list[index]['version'] = version
  384. app_record_list[index]['newApp_version_list'].insert(0, newApp_version_list)
  385. else:
  386. app_record_list[index]['newApp_version_list'].append(newApp_version_list)
  387. res = {
  388. 'app_record_list': app_record_list,
  389. 'total': total
  390. }
  391. return response.json(0, res)
  392. except Exception as e:
  393. print(e)
  394. return response.json(500, repr(e))
  395. def getAppBundleIdList(self, request_dict, response):
  396. print('request_dict:', request_dict)
  397. app_type = request_dict.get('appType', 'IOS')
  398. try:
  399. if app_type == 'IOS':
  400. app_type = 1
  401. elif app_type == '安卓':
  402. app_type = 2
  403. else:
  404. app_type = 3
  405. app_info_qs = App_Info.objects.filter(app_type=app_type).values('id', 'appBundleId')
  406. appBundleIdList = list(app_info_qs)
  407. return response.json(0, {'appBundleIdList': appBundleIdList})
  408. except Exception as e:
  409. print(e)
  410. return response.json(500, repr(e))
  411. def addOrEditAppRecord(self, request_dict, response):
  412. print('request_dict:', request_dict)
  413. appBundleId = request_dict.get('app_id__appBundleId', None)
  414. newApp_version = request_dict.get('version', None)
  415. version_time = request_dict.get('version_time', None)
  416. cn_content = request_dict.get('cnContent', None)
  417. en_content = request_dict.get('enContent', None)
  418. content = request_dict.get('content', None)
  419. app_colophon_id = request_dict.get('id', None)
  420. if not all([appBundleId, newApp_version, version_time]):
  421. return response.json(444)
  422. try:
  423. version_time = int(time.mktime(time.strptime(version_time, '%Y-%m-%d'))) # 字符串转时间戳
  424. if app_colophon_id: # 编辑
  425. # 编辑获取的版本信息前两位为语言
  426. lang = newApp_version[:2]
  427. newApp_version = newApp_version[2:]
  428. App_Colophon.objects.filter(id=app_colophon_id).update(lang=lang, newApp_version=newApp_version,
  429. content=content, version_time=version_time)
  430. else: # 添加
  431. app_info_qs = App_Info.objects.filter(appBundleId=appBundleId).values('id')
  432. if not app_info_qs.exists():
  433. return response.json(173)
  434. data_dict = {
  435. 'app_id_id': app_info_qs[0]['id'],
  436. 'newApp_version': newApp_version,
  437. 'version_time': version_time,
  438. 'lang': 'cn',
  439. 'content': cn_content,
  440. }
  441. with transaction.atomic():
  442. # 创建中文内容数据
  443. App_Colophon.objects.create(**data_dict)
  444. # 创建英文内容数据
  445. data_dict['lang'] = 'en'
  446. data_dict['content'] = en_content
  447. App_Colophon.objects.create(**data_dict)
  448. return response.json(0)
  449. except Exception as e:
  450. print(e)
  451. return response.json(500, repr(e))
  452. def deleteAppRecord(self, request_dict, response):
  453. print('request_dict:', request_dict)
  454. app_colophon_id = request_dict.get('app_colophon_id', None)
  455. try:
  456. if not app_colophon_id:
  457. return response.json(444)
  458. app_colophon_qs = App_Colophon.objects.filter(id=app_colophon_id)
  459. if not app_colophon_qs.exists():
  460. return response.json(173)
  461. app_colophon_qs.delete()
  462. return response.json(0)
  463. except Exception as e:
  464. print(e)
  465. return response.json(500, repr(e))
  466. def getPcInfoList(self, request_dict, response):
  467. print('request_dict:', request_dict)
  468. pc_name = request_dict.get('pcName', None)
  469. pageNo = request_dict.get('pageNo', None)
  470. pageSize = request_dict.get('pageSize', None)
  471. if not all([pageNo, pageSize]):
  472. return response.json(444)
  473. page = int(pageNo)
  474. line = int(pageSize)
  475. try:
  476. pc_info_qs = Pc_Info.objects.filter()
  477. if pc_name:
  478. pc_info_qs = Pc_Info.objects.filter(pc_name__contains=pc_name)
  479. if not pc_info_qs.exists():
  480. return response.json(173)
  481. total = pc_info_qs.count()
  482. pc_info_qs = pc_info_qs.values()[(page - 1) * line:page * line]
  483. pc_info_list = CommonService.qs_to_list(pc_info_qs)
  484. return response.json(0, {'list': pc_info_list, 'total': total})
  485. except Exception as e:
  486. print(e)
  487. return response.json(500, repr(e))
  488. def editPcVersion(self, request_dict, response):
  489. pc_info_id = request_dict.get('id', None)
  490. pc_name = request_dict.get('pc_name', '')
  491. bundle_version = request_dict.get('bundle_version', '')
  492. pc_version = request_dict.get('pc_version', '')
  493. pc_test = request_dict.get('pc_test', '')
  494. lang = request_dict.get('lang', '')
  495. file_type = request_dict.get('file_type', '')
  496. package = request_dict.get('package', '')
  497. explain = request_dict.get('explain', '')
  498. is_update = request_dict.get('is_update', '')
  499. is_open = request_dict.get('is_open', '')
  500. content = request_dict.get('content', '')
  501. authority = request_dict.get('authority', '')
  502. download_link = request_dict.get('download_link', '')
  503. if not pc_info_id:
  504. return response.json(444)
  505. pc_version = 1 if pc_version == 'true' else 0
  506. try:
  507. pc_info_qs = Pc_Info.objects.filter(id=pc_info_id)
  508. if not pc_info_qs.exists():
  509. return response.json(173)
  510. data_dict = {
  511. 'pc_name': pc_name,
  512. 'bundle_version': bundle_version,
  513. 'pc_version': pc_version,
  514. 'pc_test': pc_test,
  515. 'lang': lang,
  516. 'file_type': file_type,
  517. 'package': package,
  518. 'explain': explain,
  519. 'is_update': is_update,
  520. 'is_open': is_open,
  521. 'content': content,
  522. 'authority': authority,
  523. 'download_link': download_link,
  524. }
  525. pc_info_qs.update(**data_dict)
  526. return response.json(0)
  527. except Exception as e:
  528. print(e)
  529. return response.json(500, repr(e))