Distribution.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace app\api\controller;
  3. use app\admin\model\Method;
  4. use app\common\controller\Api;
  5. use think\Db;
  6. use think\Exception;
  7. class Distribution extends Api
  8. {
  9. protected $noNeedLogin = [];
  10. protected $noNeedRight = ['*'];
  11. public function dist_list(){
  12. $dis_type = input('dis_type',1);
  13. $method_model = new Method();
  14. $user = $this->auth->getUser();
  15. $admin_id=$user->id;
  16. if($user->pid>0){
  17. $admin_id = $user->pid;
  18. }
  19. $list = $method_model->where(array('user_id'=>$admin_id,'type'=>2,'status'=>1,'dis_type'=>$dis_type))->whereIn('moshi','2,3')->paginate();
  20. $this->success('选择模式列表',$list);
  21. }
  22. public function order_list(){
  23. $method_id = input('method_id');
  24. $dis_model = new \app\admin\model\Distribution();
  25. $list = $dis_model->where('method_id',$method_id)->order('id,number','desc')->paginate();
  26. $this->success('列表',$list);
  27. }
  28. public function add_list(){
  29. $data = input();
  30. $dis_model = new \app\admin\model\Distribution();
  31. $dis_data= [
  32. 'method_id'=>$data['method_id'],
  33. 'title'=>'线下订单',
  34. 'phone'=>$data['phone'],
  35. 'type'=>2,
  36. ];
  37. $dis_model->insert($dis_data);
  38. $this->success('添加成功');
  39. }
  40. public function del_list(){
  41. $list_id = input('list_id');
  42. $dis_model = new \app\admin\model\Distribution();
  43. $dis_model->where('id',$list_id)->delete();
  44. $this->success('删除成功');
  45. }
  46. public function number_list(){
  47. $method_id = input('method_id');
  48. $dis_model = new \app\admin\model\Distribution();
  49. $list = $dis_model->where('method_id',$method_id)->order('id')->select();
  50. $array = $this->shuffle_assoc($list);
  51. Db::startTrans();
  52. try {
  53. foreach ($array as $k=>$v){
  54. $dis_model->isUpdate('true',['id'=>$array[$k]['id']])->save(['number'=>$k+1]);
  55. }
  56. $method_model = new Method();
  57. $method_model->isUpdate('true',['id'=>$method_id])->save(['dis_type'=>2]);
  58. Db::commit();
  59. $this->success('生成座位表');
  60. }catch (Exception $e){
  61. Db::rollback();
  62. $this->error('座位表生成失败');
  63. }
  64. }
  65. public function shuffle_assoc($list) {
  66. if (!is_array($list)) return $list;
  67. $keys = array_keys($list);
  68. shuffle($keys);
  69. $random = array();
  70. foreach ($keys as $key)
  71. $random[$key] = $this->shuffle_assoc($list[$key]);
  72. return $random;
  73. }
  74. }