views.py 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487
  1. from django.http import JsonResponse
  2. from userprofile.models import Users
  3. from utils.fbmsg import FBMsg
  4. from utils.md5 import Md5
  5. from django.views.decorators.csrf import csrf_exempt
  6. from django.utils.decorators import method_decorator
  7. from django.contrib import auth
  8. from django.utils import timezone
  9. from django.contrib.auth.models import User
  10. from staff.models import ListModel as staff
  11. import json, random, os
  12. from django.conf import settings
  13. from scanner.models import ListModel as scanner
  14. def randomPhone():
  15. List = ["130", "131", "132", "133", "134", "135", "136", "137", "138", "139",
  16. "147", "150", "151", "152", "153", "155", "156", "157", "158", "159",
  17. "186", "187", "188", "189"]
  18. return (random.choice(List) + "".join(random.choice("0123456789") for i in range(8)))
  19. randomcity = ["shanghai", "nanjing", "hangzhou", "beijing", "chongqing", "shenzhen", "guangzhou", "suzhou", "hefei",
  20. "chengdu", "kunming", "wuhan"]
  21. randomcolor = ["Red", "Orange", "Yellow", "Green", "Blue", "Indigo", "Purple"]
  22. randomclass = ["Electronics", "Computers", "Smart Home", "Arts & Crafts", "Automotive", "Baby", "Health", "Kitchen",
  23. "Industrial", "Luggage", "Movies", "Software"]
  24. randomunit = ["Box", "Package", "Piece", "Pallet"]
  25. randomname = ["Aaron", "Abbott", "Abel", "Baird", "Baldwin", "Bancroft", "Caesar", "Calvin", "Camille", "chengdu",
  26. "Daisy", "Dale", "Dana", "Earl", "Eartha", "Ed", "Fabian", "Faithe", "Fanny", "Gabriel", "Gabrielle",
  27. "Gail", "Hale", "Haley", "Hamiltion", "Ian", "Ida", "Ina", "Jack", "Jacob", "Jacqueline", "Kama",
  28. "Karen", "Katherine", "Lambert", "Lance", "Larry", "Mabel", "Madeline", "Madge", "Nancy", "Naomi",
  29. "Nat", "Octavia", "Odelette", "Odelia", "Paddy", "Pag", "Page", "Queena", "Quennel", "Quentin",
  30. "Rachel", "Rae", "Ralap", "Sabina", "Sabrina", "Sally", "Tab", "Tabitha", "Tammy", "Ula", "Ulysses",
  31. "Una", "Valentina", "Valentine", "Valentine", "Wade", "Walker", "Wallis", "Xanthe", "Xavier", "Xaviera",
  32. "Yale", "Yedda", "Yehudi", "Zachary", "Zebulon", "Zenobia"
  33. ]
  34. randomshape = ["Square", "Rectangle", "Cone", "Cylinder", "Irregular"]
  35. randomspecs = ["1 x 10", "3 x 3", "5 x 5", "6 x 6"]
  36. def randomStaffType():
  37. List = ["Manager", "Supervisor", "Inbound", "Outbound", "StockControl"]
  38. return (random.choice(List))
  39. randombinproperty = ["Normal", "Holding", "Damage", "Inspection"]
  40. randombinsize = ["Big", "Floor", "Tiny", "Small"]
  41. @method_decorator(csrf_exempt, name='dispatch')
  42. def register(request, *args, **kwargs):
  43. post_data = json.loads(request.body.decode())
  44. data = {
  45. "name": post_data.get('name'),
  46. "password1": post_data.get('password1'),
  47. "password2": post_data.get('password2')
  48. }
  49. ip = request.META.get('HTTP_X_FORWARDED_FOR') if request.META.get(
  50. 'HTTP_X_FORWARDED_FOR') else request.META.get('REMOTE_ADDR')
  51. if Users.objects.filter(name=str(data['name']), developer=1, is_delete=0).exists():
  52. err_user_same = FBMsg.err_user_same()
  53. err_user_same['ip'] = ip
  54. err_user_same['data'] = data['name']
  55. return JsonResponse(err_user_same)
  56. else:
  57. if data.get('password1') is None:
  58. err_password1_empty = FBMsg.err_password1_empty()
  59. err_password1_empty['ip'] = ip
  60. err_password1_empty['data'] = data['name']
  61. return JsonResponse(err_password1_empty)
  62. else:
  63. if str(data['password1']) == '':
  64. err_password1_empty = FBMsg.err_password1_empty()
  65. err_password1_empty['ip'] = ip
  66. err_password1_empty['data'] = data['name']
  67. return JsonResponse(err_password1_empty)
  68. else:
  69. if data.get('password2') is None:
  70. err_password2_empty = FBMsg.err_password2_empty()
  71. err_password2_empty['ip'] = ip
  72. err_password2_empty['data'] = data['name']
  73. return JsonResponse(err_password2_empty)
  74. else:
  75. if str(data['password2']) == '':
  76. err_password2_empty = FBMsg.err_password2_empty()
  77. err_password2_empty['ip'] = ip
  78. err_password2_empty['data'] = data['name']
  79. return JsonResponse(err_password2_empty)
  80. else:
  81. if str(data['password1']) != str(data['password2']):
  82. err_password_not_same = FBMsg.err_password_not_same()
  83. err_password_not_same['ip'] = ip
  84. err_password_not_same['data'] = data['name']
  85. return JsonResponse(err_password_not_same)
  86. else:
  87. transaction_code = Md5.md5(data['name'])
  88. user = User.objects.create_user(username=str(data['name']),
  89. password=str(data['password1']))
  90. Users.objects.create(user_id=user.id, name=str(data['name']),
  91. openid=transaction_code, appid=Md5.md5(data['name'] + '1'),
  92. t_code=Md5.md5(str(timezone.now())),
  93. developer=1, ip=ip)
  94. auth.login(request, user)
  95. check_code = random.randint(1000, 9999)
  96. staff.objects.create(staff_name=str(data['name']),
  97. staff_type='Admin',
  98. check_code=check_code,
  99. openid=transaction_code)
  100. user_id = staff.objects.filter(openid=transaction_code, staff_name=str(data['name']),
  101. staff_type='Admin', check_code=check_code).first().id
  102. folder = os.path.exists(os.path.join(settings.BASE_DIR, 'media/' + transaction_code))
  103. if not folder:
  104. os.makedirs(os.path.join(settings.BASE_DIR, 'media/' + transaction_code))
  105. os.makedirs(os.path.join(settings.BASE_DIR, 'media/' + transaction_code + "/win32"))
  106. os.makedirs(os.path.join(settings.BASE_DIR, 'media/' + transaction_code + "/linux"))
  107. os.makedirs(os.path.join(settings.BASE_DIR, 'media/' + transaction_code + "/darwin"))
  108. ret = FBMsg.ret()
  109. ret['ip'] = ip
  110. data['openid'] = transaction_code
  111. data['name'] = str(data['name'])
  112. data['user_id'] = user_id
  113. data.pop('password1', '')
  114. data.pop('password2', '')
  115. ret['data'] = data
  116. from company.models import ListModel as company
  117. company.objects.create(openid=transaction_code,
  118. company_name='GreaterWMS',
  119. company_city=str(random.choice(randomcity)),
  120. company_address='People’s Square # 666 Room 1F',
  121. company_contact=str(randomPhone()),
  122. company_manager='Elvis.Shi',
  123. creater='DemoData'
  124. )
  125. from warehouse.models import ListModel as warehouse
  126. warehouse.objects.create(openid=transaction_code,
  127. warehouse_name='Center Warehouse',
  128. warehouse_city=str(random.choice(randomcity)),
  129. warehouse_address='People’s Square # 666 Room 2F',
  130. warehouse_contact=str(randomPhone()),
  131. warehouse_manager='Tim.Yao',
  132. creater='DemoData'
  133. )
  134. from supplier.models import ListModel as supplier
  135. supplier_data_list = []
  136. for supplier_data in range(1, 42):
  137. demo_data = supplier(openid=transaction_code,
  138. supplier_name='Supplier Name-' + str(supplier_data),
  139. supplier_city=str(random.choice(randomcity)),
  140. supplier_address='Address-' + str(supplier_data),
  141. supplier_contact=str(randomPhone()),
  142. supplier_manager=str(random.choice(randomname)),
  143. creater='DemoData'
  144. )
  145. supplier_data_list.append(demo_data)
  146. supplier.objects.bulk_create(supplier_data_list, batch_size=100)
  147. from customer.models import ListModel as customer
  148. customer_data_list = []
  149. for customer_data in range(1, 42):
  150. demo_data = customer(openid=transaction_code,
  151. customer_name='Customer Name-' + str(customer_data),
  152. customer_city=str(random.choice(randomcity)),
  153. customer_address='Address-' + str(customer_data),
  154. customer_contact=str(randomPhone()),
  155. customer_manager=str(random.choice(randomname)),
  156. creater='DemoData'
  157. )
  158. customer_data_list.append(demo_data)
  159. customer.objects.bulk_create(customer_data_list, batch_size=100)
  160. staff_data_list = []
  161. for staff_data in randomname:
  162. demo_data = staff(openid=transaction_code,
  163. staff_name=staff_data,
  164. staff_type=str(randomStaffType()),
  165. check_code=random.randint(1000, 9999)
  166. )
  167. staff_data_list.append(demo_data)
  168. staff.objects.bulk_create(staff_data_list, batch_size=100)
  169. from driver.models import ListModel as driver
  170. driver_data_list = []
  171. for driver_data in range(1, 42):
  172. demo_data = driver(openid=transaction_code,
  173. driver_name='Driver Name-' + str(driver_data),
  174. license_plate="".join(random.choice("0123456789") for i in range(8)),
  175. contact=str(randomPhone()),
  176. creater='DemoData'
  177. )
  178. driver_data_list.append(demo_data)
  179. driver.objects.bulk_create(driver_data_list, batch_size=100)
  180. from capital.models import ListModel as capital
  181. capital_data_list = []
  182. for capital_data in range(1, 42):
  183. demo_data = capital(openid=transaction_code,
  184. capital_name='Capital Name-' + str(capital_data),
  185. capital_qty=random.randint(1, 100),
  186. capital_cost=random.randint(100, 10000),
  187. creater='DemoData'
  188. )
  189. capital_data_list.append(demo_data)
  190. capital.objects.bulk_create(capital_data_list, batch_size=100)
  191. from binsize.models import ListModel as binsize
  192. binsize_data_list = [
  193. binsize(openid=transaction_code,
  194. bin_size='Big',
  195. bin_size_w=1100,
  196. bin_size_d=1200,
  197. bin_size_h=1800,
  198. creater='DemoData'
  199. ),
  200. binsize(openid=transaction_code,
  201. bin_size='Floor',
  202. bin_size_w=10000,
  203. bin_size_d=10000,
  204. bin_size_h=10000,
  205. creater='DemoData'
  206. ),
  207. binsize(openid=transaction_code,
  208. bin_size='Small',
  209. bin_size_w=800,
  210. bin_size_d=1000,
  211. bin_size_h=1200,
  212. creater='DemoData'
  213. ),
  214. binsize(openid=transaction_code,
  215. bin_size='Tiny',
  216. bin_size_w=200,
  217. bin_size_d=250,
  218. bin_size_h=300,
  219. creater='DemoData'
  220. )
  221. ]
  222. binsize.objects.bulk_create(binsize_data_list, batch_size=100)
  223. from binset.models import ListModel as binset
  224. bar_code1 = Md5.md5('1')
  225. bar_code2 = Md5.md5('2')
  226. bar_code3 = Md5.md5('3')
  227. bar_code4 = Md5.md5('4')
  228. bar_code5 = Md5.md5('5')
  229. bar_code6 = Md5.md5('6')
  230. bar_code7 = Md5.md5('7')
  231. bar_code8 = Md5.md5('8')
  232. bar_code9 = Md5.md5('9')
  233. bar_code10 = Md5.md5('10')
  234. bar_code11 = Md5.md5('11')
  235. bar_code12 = Md5.md5('12')
  236. binset_data_list = [
  237. binset(openid=transaction_code,
  238. bin_name='A010101',
  239. bin_size=str(random.choice(randombinsize)),
  240. bin_property="Normal",
  241. empty_label=True,
  242. creater='DemoData',
  243. bar_code=bar_code1
  244. ),
  245. binset(openid=transaction_code,
  246. bin_name='A010102',
  247. bin_size=str(random.choice(randombinsize)),
  248. bin_property="Normal",
  249. empty_label=True,
  250. creater='DemoData',
  251. bar_code=bar_code2
  252. ),
  253. binset(openid=transaction_code,
  254. bin_name='A010103',
  255. bin_size=str(random.choice(randombinsize)),
  256. bin_property="Normal",
  257. empty_label=True,
  258. creater='DemoData',
  259. bar_code=bar_code3
  260. ),
  261. binset(openid=transaction_code,
  262. bin_name='B010101',
  263. bin_size=str(random.choice(randombinsize)),
  264. bin_property="Inspection",
  265. empty_label=True,
  266. creater='DemoData',
  267. bar_code=bar_code4
  268. ),
  269. binset(openid=transaction_code,
  270. bin_name='B010102',
  271. bin_size=str(random.choice(randombinsize)),
  272. bin_property="Inspection",
  273. empty_label=True,
  274. creater='DemoData',
  275. bar_code=bar_code5
  276. ),
  277. binset(openid=transaction_code,
  278. bin_name='B010103',
  279. bin_size=str(random.choice(randombinsize)),
  280. bin_property="Inspection",
  281. empty_label=True,
  282. creater='DemoData',
  283. bar_code=bar_code6
  284. ),
  285. binset(openid=transaction_code,
  286. bin_name='B020101',
  287. bin_size=str(random.choice(randombinsize)),
  288. bin_property="Holding",
  289. empty_label=True,
  290. creater='DemoData',
  291. bar_code=bar_code7
  292. ),
  293. binset(openid=transaction_code,
  294. bin_name='B020102',
  295. bin_size=str(random.choice(randombinsize)),
  296. bin_property="Holding",
  297. empty_label=True,
  298. creater='DemoData',
  299. bar_code=bar_code8
  300. ),
  301. binset(openid=transaction_code,
  302. bin_name='B020103',
  303. bin_size=str(random.choice(randombinsize)),
  304. bin_property="Holding",
  305. empty_label=True,
  306. creater='DemoData',
  307. bar_code=bar_code9
  308. ),
  309. binset(openid=transaction_code,
  310. bin_name='B030101',
  311. bin_size=str(random.choice(randombinsize)),
  312. bin_property="Damage",
  313. empty_label=True,
  314. creater='DemoData',
  315. bar_code=bar_code10
  316. ),
  317. binset(openid=transaction_code,
  318. bin_name='B030102',
  319. bin_size=str(random.choice(randombinsize)),
  320. bin_property="Damage",
  321. empty_label=True,
  322. creater='DemoData',
  323. bar_code=bar_code11
  324. ),
  325. binset(openid=transaction_code,
  326. bin_name='B030103',
  327. bin_size=str(random.choice(randombinsize)),
  328. bin_property="Damage",
  329. empty_label=True,
  330. creater='DemoData',
  331. bar_code=bar_code12
  332. ),
  333. ]
  334. scanner.objects.create(openid=transaction_code, mode="BINSET",
  335. code='A010101',
  336. bar_code=bar_code1)
  337. scanner.objects.create(openid=transaction_code, mode="BINSET",
  338. code='A010102',
  339. bar_code=bar_code2)
  340. scanner.objects.create(openid=transaction_code, mode="BINSET",
  341. code='A010103',
  342. bar_code=bar_code3)
  343. scanner.objects.create(openid=transaction_code, mode="BINSET",
  344. code='B010101',
  345. bar_code=bar_code4)
  346. scanner.objects.create(openid=transaction_code, mode="BINSET",
  347. code='B010102',
  348. bar_code=bar_code5)
  349. scanner.objects.create(openid=transaction_code, mode="BINSET",
  350. code='B010103',
  351. bar_code=bar_code6)
  352. scanner.objects.create(openid=transaction_code, mode="BINSET",
  353. code='B020101',
  354. bar_code=bar_code7)
  355. scanner.objects.create(openid=transaction_code, mode="BINSET",
  356. code='B020102',
  357. bar_code=bar_code8)
  358. scanner.objects.create(openid=transaction_code, mode="BINSET",
  359. code='B020103',
  360. bar_code=bar_code9)
  361. scanner.objects.create(openid=transaction_code, mode="BINSET",
  362. code='B030101',
  363. bar_code=bar_code10)
  364. scanner.objects.create(openid=transaction_code, mode="BINSET",
  365. code='B030102',
  366. bar_code=bar_code11)
  367. scanner.objects.create(openid=transaction_code, mode="BINSET",
  368. code='B030103',
  369. bar_code=bar_code12)
  370. binset.objects.bulk_create(binset_data_list, batch_size=100)
  371. from goodsunit.models import ListModel as goodsunit
  372. demo_data = []
  373. for goods_unit in randomunit:
  374. demo_data.append(goodsunit(openid=transaction_code, goods_unit=goods_unit,
  375. creater='DemoData'))
  376. goodsunit.objects.bulk_create(demo_data, batch_size=100)
  377. from goodsclass.models import ListModel as goodsclass
  378. demo_data = []
  379. for goods_class in randomclass:
  380. demo_data.append(goodsclass(openid=transaction_code, goods_class=goods_class,
  381. creater='DemoData'))
  382. goodsclass.objects.bulk_create(demo_data, batch_size=100)
  383. from goodscolor.models import ListModel as goodscolor
  384. demo_data = []
  385. for goods_color in randomcolor:
  386. demo_data.append(goodscolor(openid=transaction_code, goods_color=goods_color,
  387. creater='DemoData'))
  388. goodscolor.objects.bulk_create(demo_data, batch_size=100)
  389. from goodsbrand.models import ListModel as goodsbrand
  390. goodsbrand_data_list = []
  391. for goodsbrand_data in range(1, 42):
  392. demo_data = goodsbrand(openid=transaction_code,
  393. goods_brand='Brand Name-' + str(goodsbrand_data),
  394. creater='DemoData'
  395. )
  396. goodsbrand_data_list.append(demo_data)
  397. goodsbrand.objects.bulk_create(goodsbrand_data_list, batch_size=100)
  398. from goodsshape.models import ListModel as goodsshape
  399. demo_data = []
  400. for goods_shape in randomshape:
  401. demo_data.append(goodsshape(openid=transaction_code, goods_shape=goods_shape,
  402. creater='DemoData'))
  403. goodsshape.objects.bulk_create(demo_data, batch_size=100)
  404. from goodsspecs.models import ListModel as goodsspecs
  405. demo_data = []
  406. for goods_specs in randomspecs:
  407. demo_data.append(goodsspecs(openid=transaction_code, goods_specs=goods_specs,
  408. creater='DemoData'))
  409. goodsspecs.objects.bulk_create(demo_data, batch_size=100)
  410. from goodsorigin.models import ListModel as goodsorigin
  411. goodsorigin_data_list = []
  412. for city in randomcity:
  413. demo_data = goodsorigin(openid=transaction_code,
  414. goods_origin=city,
  415. creater='DemoData'
  416. )
  417. goodsorigin_data_list.append(demo_data)
  418. goodsorigin.objects.bulk_create(goodsorigin_data_list, batch_size=100)
  419. from goods.models import ListModel as goods
  420. goods_data_list = []
  421. for goods_data in range(1, 42):
  422. bar_code = Md5.md5("A0000" + str(goods_data))
  423. goods_w = round(random.uniform(10, 1000), 2),
  424. goods_d = round(random.uniform(10, 1000), 2),
  425. goods_h = round(random.uniform(10, 1000), 2),
  426. goods_cost = round(random.uniform(10, 1000), 2),
  427. goods_price = round(random.uniform(10, 1000), 2),
  428. while True:
  429. if goods_cost[0] >= goods_price[0]:
  430. goods_price = round(random.uniform(10, 1000), 2),
  431. else:
  432. break
  433. demo_data = goods(openid=transaction_code,
  434. goods_code="A0000" + str(goods_data),
  435. goods_desc="Goods Desc-" + str(goods_data),
  436. goods_supplier='Supplier Name-' + str(random.randint(1, 42)),
  437. goods_weight=random.randint(100, 10000),
  438. goods_w=goods_w[0],
  439. goods_d=goods_d[0],
  440. goods_h=goods_h[0],
  441. unit_volume=round((int(goods_w[0]) * int(goods_d[0]) * int(
  442. goods_h[0])) / 1000000000, 4),
  443. goods_unit=random.choice(randomunit),
  444. goods_class=random.choice(randomclass),
  445. goods_brand='Brand Name-' + str(random.randint(1, 42)),
  446. goods_color=random.choice(randomcolor),
  447. goods_shape=random.choice(randomshape),
  448. goods_specs=random.choice(randomspecs),
  449. goods_origin=random.choice(randomcity),
  450. goods_cost=goods_cost[0],
  451. goods_price=goods_price[0],
  452. bar_code=bar_code,
  453. creater='DemoData'
  454. )
  455. goods_data_list.append(demo_data)
  456. scanner.objects.create(openid=transaction_code, mode="GOODS",
  457. code="A0000" + str(goods_data),
  458. bar_code=bar_code)
  459. goods.objects.bulk_create(goods_data_list, batch_size=100)
  460. from payment.models import TransportationFeeListModel as freight
  461. freight_data_list = []
  462. for sender in randomcity:
  463. for receiver in randomcity:
  464. demo_data = freight(openid=transaction_code,
  465. send_city=sender,
  466. receiver_city=receiver,
  467. weight_fee=random.randint(10, 20),
  468. volume_fee=random.randint(100, 200),
  469. min_payment=random.randint(250, 300),
  470. transportation_supplier="Supplier",
  471. creater="DemoData"
  472. )
  473. freight_data_list.append(demo_data)
  474. freight.objects.bulk_create(freight_data_list, batch_size=100)
  475. return JsonResponse(ret)