|
@@ -207,29 +207,59 @@ class SerialNumberView(View):
|
|
|
|
|
|
if count == 5 and value is False: # 暂时注释
|
|
|
return response.json(5)
|
|
|
-
|
|
|
- company_serial_qs = CompanySerialModel.objects.filter(company__secret=company_id, status=0,
|
|
|
- p2p=p2p_type)
|
|
|
- if not company_serial_qs.exists():
|
|
|
- redisObject.rpush(key, value)
|
|
|
- return response.json(373)
|
|
|
-
|
|
|
- # 存在对应的企业
|
|
|
- company_serial_qs = company_serial_qs[0:quantity]
|
|
|
+ userid = '3'
|
|
|
+ user_qs = UserModel.objects.filter(id=userid)
|
|
|
+ if not user_qs.exists():
|
|
|
+ return response.json(9)
|
|
|
+
|
|
|
+ user = user_qs[0]
|
|
|
+ result = UserSerialNumberModel.objects.filter(user__id=user.id, serial_number__p2p=p2p_type,
|
|
|
+ serial_number__use_status=1).aggregate(
|
|
|
+ num=Count('serial_number__use_status'))
|
|
|
+
|
|
|
+ us_qs = UserSerialNumberModel.objects.filter(user__id=user.id, serial_number__p2p=p2p_type,
|
|
|
+ serial_number__use_status=1).values(
|
|
|
+ 'serial_number__serial_number')
|
|
|
+
|
|
|
+ sns = []
|
|
|
+ for us in us_qs:
|
|
|
+ sns.append(us['serial_number__serial_number'])
|
|
|
+
|
|
|
+ cs_qs = CompanySerialModel.objects.filter(serial_number__in=sns, status=1).values('serial_number', 'company')
|
|
|
+ sns = []
|
|
|
+ company = ""
|
|
|
+ if cs_qs.exists():
|
|
|
+ for cs in cs_qs:
|
|
|
+ sns.append(cs['serial_number'])
|
|
|
+ company = cs_qs[0].company
|
|
|
+
|
|
|
+ sn_qs = SerialNumberModel.objects.filter(serial_number__in=sns)
|
|
|
+ count = result['num']
|
|
|
+ if count < quantity:
|
|
|
+ return response.json(444, '序列号不足')
|
|
|
|
|
|
# company_serial_qs = company_serial_qs.values('id', 'serial_number__serial_number', 'company__mark')
|
|
|
save_point = transaction.savepoint() # 设置事务保存点
|
|
|
try:
|
|
|
- ids = []
|
|
|
- for serial in company_serial_qs:
|
|
|
- ids.append(serial.id)
|
|
|
- SerialNumberModel.objects.filter(serial_number=serial.serial_number).update(use_status=2)
|
|
|
- CompanySerialModel.objects.filter(id__in=ids).update(status=1)
|
|
|
+ if sn_qs.exists():
|
|
|
+ sn_qs = sn_qs[0: quantity]
|
|
|
+ serial_number = sn_qs[0].serial_number
|
|
|
+ serialNumberModel = SerialNumberModel(
|
|
|
+ id=sn_qs[0].id,
|
|
|
+ serial_number=serial_number,
|
|
|
+ status=sn_qs[0].status,
|
|
|
+ use_status=2,
|
|
|
+ p2p=sn_qs[0].p2p,
|
|
|
+ add_time=sn_qs[0].add_time
|
|
|
+ )
|
|
|
+ updates = []
|
|
|
+ updates.append(serialNumberModel)
|
|
|
+ bulk_update(updates)
|
|
|
+
|
|
|
except Exception as e:
|
|
|
if save_point:
|
|
|
transaction.savepoint_rollback(save_point) # 事务回滚
|
|
|
redisObject.rpush(key, value)
|
|
|
-
|
|
|
- return response.json(0, {'serial_number': company_serial_qs[0].serial_number + company_serial_qs[0].company.mark, 'mac': mac})
|
|
|
+ return response.json(0, {'serial_number': serial_number + company, 'mac': mac})
|
|
|
else:
|
|
|
return response.json(444)
|