Tvdoctor.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <?php
  2. namespace app\api\controller\tvuser;
  3. use app\common\controller\Apitv;
  4. use think\Db;
  5. /**
  6. * 首页接口
  7. */
  8. class Tvdoctor extends Apitv
  9. {
  10. protected $noNeedLogin = ['*'];
  11. protected $noNeedRight = ['*'];
  12. //科室列表
  13. public function keshi_list(){
  14. $list = Db::name('keshi')->where('is_show',1)->order('weigh','desc')->select();
  15. $this->success(1,$list);
  16. }
  17. //医生列表
  18. //首页推荐,搜索
  19. public function doctor_list(){
  20. $where = [
  21. 'd.status' => 1,
  22. 'd.doctor_status' => 1,
  23. 'info.video_switch' => 1,
  24. ];
  25. //科室id
  26. $keshi_id = input('keshi_id',0);
  27. if($keshi_id){
  28. $where['d.keshi_id'] = $keshi_id;
  29. }
  30. //关注
  31. $folllow = input('follow',0);
  32. if($folllow){
  33. $my_follow_ids = controller('Userfollow')->my_follow_uids();
  34. $where['d.id'] = ['IN',$my_follow_ids];
  35. }
  36. $field = [
  37. 'd.id','d.nickname','d.avatar','d.keshi_id','d.level_id','d.hospital','d.goodat',
  38. 'keshi.name as keshi_name',
  39. 'level.name as level_name',
  40. ];
  41. $list = Db::name('doctor')->alias('d')
  42. ->field($field)
  43. ->join('doctor_level level','d.level_id = level.id','LEFT')
  44. ->join('keshi','d.keshi_id = keshi.id','LEFT')
  45. ->join('doctor_info info','d.id = info.doctor_id','LEFT')
  46. ->where($where)->order('d.ordernum desc')->autopage()->select();
  47. $list = list_domain_image($list,['avatar']);
  48. $this->success(1,$list);
  49. }
  50. //医生详情
  51. public function doctor_info(){
  52. $id = input('id',0);
  53. $field = [
  54. 'd.id','d.nickname','d.avatar','d.keshi_id','d.level_id','d.hospital','d.goodat','d.info',
  55. 'keshi.name as keshi_name',
  56. 'level.name as level_name',
  57. ];
  58. $info = Db::name('doctor')->alias('d')
  59. ->field($field)
  60. ->join('doctor_level level','d.level_id = level.id','LEFT')
  61. ->join('keshi','d.keshi_id = keshi.id','LEFT')
  62. ->where('d.id',$id)->find();
  63. $info = info_domain_image($info,['avatar']);
  64. //是否关注
  65. $info['is_follow'] = $this->is_follow($this->auth->id,$id);
  66. //视频说明
  67. $info['wenzhen_video_serverrule'] = config('site.wenzhen_video_serverrule');
  68. $this->success(1,$info);
  69. }
  70. //医生排班
  71. public function doctor_paiban(){
  72. $doctor_id = input('doctor_id',0);
  73. //测试临时屏蔽
  74. //$list = $this->Dbapp->name('doctor_paiban')->where('doctor_id',$doctor_id)->where('active',1)->where('activetime','gt',time()+7200)->order('activetime asc')->select();
  75. $list = $this->Dbapp->name('doctor_paiban')->where('doctor_id',$doctor_id)->where('active',1)->order('activetime asc')->select();
  76. $newlist = [];
  77. if(!empty($list)){
  78. //排除接满4单的
  79. foreach($list as $key => $val){
  80. $date = date('Y-m-d',$val['activetime']);
  81. if(!isset($newlist[$date])){
  82. $newlist[$date] = [];
  83. }
  84. $newlist[$date][] = date('H:i',$val['activetime']);
  85. }
  86. }
  87. $this->success(1,$newlist);
  88. }
  89. //关注某人,取关
  90. public function follow_one(){
  91. $follow_uid = input('doctor_id',0);
  92. if(!$follow_uid){
  93. $this->error(__('Invalid parameters'));
  94. }
  95. $checkuser = $this->Dbapp->name('doctor')->find($follow_uid);
  96. if(empty($checkuser)){
  97. $this->error('此医生不存在');
  98. }
  99. $map = [
  100. 'uid' => $this->auth->id,
  101. 'follow_uid' => $follow_uid,
  102. ];
  103. $check = Db::name('user_follow')->where($map)->find();
  104. if($check){
  105. //取关
  106. $rs = Db::name('user_follow')->where($map)->delete();
  107. $this->success('操作成功');
  108. }
  109. $id = Db::name('user_follow')->insertGetId($map);
  110. $this->success('操作成功',$id);
  111. }
  112. }