|  | @@ -60,36 +60,33 @@ class SerialNumberView(View):
 | 
	
		
			
				|  |  |                  return response.json(404)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def do_create(self, request_dict, response):
 | 
	
		
			
				|  |  | -        quantity = int(request_dict.get('quantity', None))
 | 
	
		
			
				|  |  | -        p2p = int(request_dict.get('p2p', None))
 | 
	
		
			
				|  |  | +        quantity = int(request_dict.get('quantity', 0))
 | 
	
		
			
				|  |  | +        p2p = int(request_dict.get('p2p', 0))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          if not quantity:
 | 
	
		
			
				|  |  |              return response.json(444)
 | 
	
		
			
				|  |  | -        start_time = time.strftime('%Y-%m-%d %H:%M:%S')
 | 
	
		
			
				|  |  | -        print('start create ' + start_time)
 | 
	
		
			
				|  |  | -        tmp = []
 | 
	
		
			
				|  |  | -        algorithm = AlgorithmBaseOn35()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        for i in range(quantity):
 | 
	
		
			
				|  |  | +        try:
 | 
	
		
			
				|  |  |              try:
 | 
	
		
			
				|  |  |                  sum = SerialNumberModel.objects.last().id
 | 
	
		
			
				|  |  |              except:
 | 
	
		
			
				|  |  |                  sum = 0
 | 
	
		
			
				|  |  | -            serial_number = algorithm.getLetter(sum)
 | 
	
		
			
				|  |  | -            tmp_len = 6 - len(serial_number)
 | 
	
		
			
				|  |  | -            # 前面补0
 | 
	
		
			
				|  |  | -            for j in range(tmp_len):
 | 
	
		
			
				|  |  | -                serial_number = '0' + serial_number
 | 
	
		
			
				|  |  | -            data = []
 | 
	
		
			
				|  |  | +            serial_number_bulk = []
 | 
	
		
			
				|  |  |              now_time = int(time.time())
 | 
	
		
			
				|  |  | -            data.append(SerialNumberModel(serial_number=serial_number, add_time=now_time, p2p=p2p))
 | 
	
		
			
				|  |  | -            SerialNumberModel.objects.bulk_create(data)
 | 
	
		
			
				|  |  | -            data.clear()
 | 
	
		
			
				|  |  | -            start_time = time.strftime('%Y-%m-%d %H:%M:%S')
 | 
	
		
			
				|  |  | -            print('start create ' + start_time)
 | 
	
		
			
				|  |  | -            redis = RedisObject()
 | 
	
		
			
				|  |  | -            redis.del_data(key='serial_number_count')
 | 
	
		
			
				|  |  | -        return response.json(0)
 | 
	
		
			
				|  |  | +            algorithm = AlgorithmBaseOn35()
 | 
	
		
			
				|  |  | +            for i in range(quantity):
 | 
	
		
			
				|  |  | +                serial_number = algorithm.getLetter(sum)
 | 
	
		
			
				|  |  | +                sum += 1    # sum每次递增1
 | 
	
		
			
				|  |  | +                # 前面补0至六位
 | 
	
		
			
				|  |  | +                serial_number = (6-len(serial_number))*'0' + serial_number
 | 
	
		
			
				|  |  | +                serial_number_bulk.append(SerialNumberModel(serial_number=serial_number, add_time=now_time, p2p=p2p))
 | 
	
		
			
				|  |  | +            # 开启事务写入
 | 
	
		
			
				|  |  | +            with transaction.atomic():
 | 
	
		
			
				|  |  | +                SerialNumberModel.objects.bulk_create(serial_number_bulk)
 | 
	
		
			
				|  |  | +            return response.json(0)
 | 
	
		
			
				|  |  | +        except Exception as e:
 | 
	
		
			
				|  |  | +            print(e)
 | 
	
		
			
				|  |  | +            return response.json(500, repr(e))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      # 提供给pc端获取序列号
 | 
	
		
			
				|  |  |      def do_get_serial_number(self, request_dict, response):
 |