SuggestController.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Yuanhang Liu
  5. * Date: 20-10-14
  6. * Time: 上午00:01
  7. */
  8. namespace App\Http\Controllers\Api\V2;
  9. use App\Models\Evaluate;
  10. use App\Models\Order;
  11. use App\Models\Suggest;
  12. use App\Models\SuggestDetail;
  13. /**
  14. * 意见管理类
  15. * Class SuggestController
  16. * @author Yuanhang Liu & Xiaoyun Liu
  17. * @package App\Http\Controllers\Api\V2
  18. */
  19. class SuggestController extends AuthController
  20. {
  21. /**
  22. * 意见单查看
  23. * @author Yuanhang Liu & Xiaoyun Liu
  24. * @date 2020/10/14 00:03
  25. * @return mixedsuggestList
  26. */
  27. public function suggestList(){
  28. $req = request()->post();
  29. $this->validate(request(), [
  30. 'curPage' => 'required|integer',
  31. 'pageSize' => 'required|integer',
  32. 'orders' => 'required',
  33. ]);
  34. $pageSize = ($req['curPage']-1)*$req['pageSize'];
  35. $user = $this->user;
  36. $docter_id = $user['id'];
  37. $order =[];
  38. if($req['orders']==1){
  39. // 正序
  40. $order = ['created_at','ASC'];
  41. }else if($req['orders']==2){
  42. // 倒叙
  43. $order = ['created_at','desc'];
  44. }else{
  45. $order =['id','desc'];
  46. }
  47. $order_ids = Order::where('docter_id',$docter_id)->select('id')->get();
  48. $data = [];
  49. $ids = [];
  50. if ($order_ids){
  51. foreach($order_ids as $k=>$v){
  52. $ids[$k] = $v['id'];
  53. }
  54. $data = Suggest::with(['order','Patient'])->whereIn('order_id',$ids)->orderBy($order[0], $order[1])->skip($pageSize)->take($req['pageSize'])->get()->toArray();
  55. foreach ($data as $k=>$v){
  56. if (!$data[$k]['order']||$data[$k]['order']==null||!$data[$k]['patient']||$data[$k]['patient']==null){
  57. unset($data[$k]);
  58. }
  59. else{
  60. $data[$k]['numBirthday'] = numBirthday($v['patient']['birthday']);
  61. $data[$k]['patient_name'] = $v['patient']['name'];
  62. $data[$k]['order_sn'] = $v['order']['order_sn'];
  63. unset($data[$k]['patient'],$data[$k]['order']);
  64. }
  65. }
  66. }
  67. return out($data);
  68. }
  69. /**
  70. * 获取意见单
  71. * @author Yuanhang Liu & Xiaoyun Liu
  72. * @date 2020/10/14 00:10
  73. * @return mixed
  74. */
  75. public function getSuggestDetail($id=null)
  76. {
  77. if (empty($id)){
  78. $req = request()->post();
  79. $this->validate(request(), [
  80. 'suggest_id' => 'required|integer',
  81. 'type' => 'integer',
  82. ]);
  83. if($req['type']==2){
  84. $data = Suggest::where('order_id',$req['suggest_id'])->get()->first();
  85. if($data){
  86. $data = $data->toArray();
  87. $id = $data['id'];
  88. }else{
  89. return out('',500,'数据错误!');
  90. }
  91. }else{
  92. $id = $req['suggest_id'];
  93. }
  94. }
  95. $data = Suggest::with(['details','Patient','user','order'])->where('id',$id)->get()->toArray();
  96. // var_dump($data);die();
  97. if ($data){
  98. $data[0]['patient_name'] = $data[0]['patient']['name'];
  99. $data[0]['patient_card_number'] = $data[0]['patient']['card_number'];
  100. $data[0]['birthday'] = numBirthday($data[0]['patient']['birthday']);
  101. $data[0]['username'] = $data[0]['user']['nickname'];
  102. $data[0]['order_sn'] = $data[0]['order']['order_sn'];
  103. unset($data[0]['patient'],$data[0]['user'],$data[0]['order']);
  104. return out($data[0]);
  105. }else{
  106. return out([]);
  107. }
  108. }
  109. /**
  110. * 补充意见单
  111. * @author Yuanhang Liu & Xiaoyun Liu
  112. * @date 2020/10/14 00:20
  113. * @return mixed
  114. */
  115. public function addSuggestDetail()
  116. {
  117. $req = request()->post();
  118. $this->validate(request(), [
  119. 'suggest_id' => 'required|integer',
  120. 'supplement_reason' => 'required|max:500',
  121. 'supplement_content' => 'required|max:500',
  122. ]);
  123. $num = 0;
  124. // 查询补充过几次了!
  125. $count_array = $this->getSuggestDetail($req['suggest_id']);
  126. $count_array = json_decode($count_array->getContent(),true);
  127. if ($count_array){
  128. $count_array = $count_array['data']['details'];
  129. $num = count($count_array);
  130. }
  131. // var_dump($num);die();
  132. if ($num>=2){
  133. return out(null, 500, '您已经补充过两次意见了!');
  134. }
  135. $data = SuggestDetail::create([
  136. 'suggest_id'=>$req['suggest_id'],
  137. 'supplement_reason'=>$req['supplement_reason'],
  138. 'supplement_content'=>$req['supplement_content'],
  139. ]);
  140. return out();
  141. }
  142. public function getWeek(){
  143. $data=getWeek(date("w"));
  144. return out($data);
  145. }
  146. }