
tmp_num = self.id + 1000000 nums = map(int, '%07d' % tmp_num) factors = map(int, '123456') result = sum( map(lambda args: args[0] * args[1], zip(factors, nums))) % 11 if result == 0: salt = 5 elif result == 1: salt = 0 else: salt = 11 - result number = "DD{:07d}{}".format(tmp_num, salt) 例如会生成 DD10013782
生成出来的订单号不长,也不会重复,好奇什么样的逻辑?