DwyController.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Service\EmployeeService;
  4. use App\Service\SysMenuService;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\Redis;
  7. class DwyController extends BaseController
  8. {
  9. public function openCommand(Request $request){
  10. $data = $request->all();
  11. $device_id = $data['device_code'];
  12. $box_code = $data['box_code'];
  13. $key = $device_id.'_'.$box_code;
  14. Redis::set($key,1);
  15. return ['status'=>200];
  16. }
  17. public function getOpenCommand(Request $request){
  18. $data = $request->all();
  19. $device_id = $data['device_code'];
  20. $box_code = explode(',',$data['box_code']);
  21. $key = $device_id.'_'.$box_code[0];
  22. $return = 201;
  23. $status = Redis::get($key);
  24. if($status) {
  25. $return = 200;
  26. Redis::del($key);
  27. }
  28. return ['status'=>$return];
  29. }
  30. public function setLb(Request $request){
  31. $param = $request->all();
  32. // $param = [
  33. // 'token'=>'Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIyNzM2OTUyNTA3NTI5NTQzNzMiLCJhdXRoIjoiUk9MRV9JTk5FUl9VU0VSLFJPTEVfQlJBTkRfQVJSRVNULFJPTEVfQURNSU4iLCJ0b2tlbklkIjoiOTUwIiwiZXhwIjoxNzA3OTcxMTcxfQ.2VQ9Wqmk4rvKAcTsQPw59llBbeXjalKDGIZA4kesnuOJ0POmPVOVlRLbTtUDxl0XiFdPDUrKzuEFl2DXSgQdJg',
  34. // 'list'=>[
  35. // [
  36. // 'title'=>'优选A7家具板ENF小标',
  37. // 'num'=>'20',
  38. // ],[
  39. // 'title'=>'植萃除醛圆标',
  40. // 'num'=>'10',
  41. // ],
  42. // ],
  43. // ];
  44. // dd(json_encode($param));
  45. $token = $param['token'];
  46. $list = $param['list'];
  47. $url = 'http://121.36.131.68:7774/jbl/api/module-data/brand_in_stock/brand_in_stock/diy/box_inventory';
  48. $header = [
  49. 'Content-Type:application/json',
  50. 'Authorization:'.$token,
  51. ];
  52. $data = $this->post_helper($url,'{"device_code":"DV00001"}',$header);
  53. // var_dump($data);
  54. $data = json_decode($data,true);
  55. $a = 4;
  56. foreach ($data as $k=>&$v){
  57. if($v['box_code_show'] == '设备仓') {
  58. unset($data[$k]);
  59. continue;
  60. }
  61. if($v['qty'] <= 0) {
  62. unset($data[$k]);
  63. continue;
  64. }
  65. if(!isset($v['send_qty'])) $v['send_qty'] = 0;
  66. foreach ($list as $kk=>$vv ){
  67. if($vv['num'] == 0) continue;
  68. if($v['material_code_show'] === $vv['title']){
  69. if(($v['qty']-$v['send_qty'])>$vv['num']) {
  70. $list[$kk]['num'] -= $vv['num'];
  71. $v['send_qty'] += $vv['num'];
  72. } else{
  73. $list[$kk]['num'] -= ($v['qty']-$v['send_qty']);
  74. $v['send_qty'] += ($v['qty']-$v['send_qty']);
  75. }
  76. }
  77. }
  78. //测试用
  79. if($v['box_code'] == 'CK00012'){
  80. $v['send_qty'] = $a;
  81. }
  82. $a++;
  83. }
  84. sort($data);
  85. return ['status'=>200,'data'=>$data];
  86. }
  87. public function post_helper($url, $data,$header){
  88. $ch = curl_init();
  89. curl_setopt($ch, CURLOPT_POST, 1);
  90. curl_setopt($ch, CURLOPT_URL, $url);
  91. curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  92. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  93. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  94. curl_setopt($ch, CURLOPT_TIMEOUT, 30);
  95. if(!is_null($data)) curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  96. $r = curl_exec($ch);
  97. curl_close($ch);
  98. return $r;
  99. }
  100. }