InfoAudit.php 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. <?php
  2. declare (strict_types = 1);
  3. namespace app\model\api;
  4. use app\model\api\ServiceType as ServiceTypeModel;
  5. use app\model\api\ServiceLabel as ServiceLabelModel;
  6. use app\model\api\User as UserModel;
  7. use think\Model;
  8. /**
  9. * @mixin \think\Model
  10. */
  11. class InfoAudit extends Model
  12. {
  13. /**
  14. * 获取列表
  15. * @param type $post
  16. * @param type $is_admin
  17. */
  18. public function getList($post,$is_admin=0){
  19. $post["pageSize"] = $post["pageSize"]>50 ? 50 : (int)$post["pageSize"];
  20. $post["page"] = $post["page"]<=0 ? 1 : (int)$post["page"];
  21. $where=[];
  22. if(is_numeric($post['status'])) {
  23. $where[]=["au.status","=",(int)$post['status']];
  24. }
  25. if(is_numeric($post['uid']) && $post['uid']>0) {
  26. $where[]=["au.uid","=",(int)$post['uid']];
  27. }else if(is_mobile($post['user_mobile'])){
  28. $udata = (new UserModel)->where("mobile",$post['user_mobile'])->find();
  29. if(!empty($udata)){
  30. $where[]=["au.uid","=",(int)$udata['uid']];
  31. }
  32. }
  33. if(is_mobile($post['mobile'])) {
  34. $where[]=["au.mobile","=",$post['mobile']];
  35. }
  36. $startTime = "";
  37. $endTime = "";
  38. if(!empty($post['time'][0]) && !empty($post['time'][1])) {
  39. $startTime = strtotime($post['time'][0]);
  40. $endTime = strtotime($post['time'][1]);
  41. $where[]=["au.time","between","{$startTime},{$endTime}"];
  42. }
  43. if(!empty($post['keyword'])){
  44. $where[]=["au.name","=",$post['keyword']];
  45. }
  46. $pageCount = $this->alias("au")->where($where)->count();
  47. $data = null;
  48. if($pageCount>0){
  49. $userField = $is_admin==1 ? ",u.mobile as user_mobile,u.nickname as user_nickname,u.avatar as user_avatar,a.name as admin_name" : "";
  50. $data = (new InfoAudit)
  51. ->alias("au")
  52. ->field("au.*,wt.title as user_work_type_title,s.title as service_time_type_title{$userField}")
  53. ->leftJoin("user u" , "u.uid = au.uid")//用户信息
  54. ->leftJoin("user_work_type wt" , "wt.id = au.user_work_type_id")//职称
  55. ->leftJoin("service_time_type s" , "s.code = au.service_type")//服务时长类型
  56. ->leftJoin("admin a" , "a.id = au.admin_id")//管理员
  57. ->where($where)
  58. ->order("au.id","desc")
  59. ->page((int)$post["page"], $post["pageSize"])
  60. ->select()
  61. ->toArray();
  62. }
  63. $data = empty($data) ? [] : $data;
  64. $serviceTypeModel = new ServiceTypeModel();
  65. foreach($data as $k=>$v){
  66. $data[$k]["birthday"] = empty($data[$k]["birthday"]) ? "" : date("Y-m-d",$data[$k]["birthday"]);//生日
  67. $data[$k]["time"] = date("Y-m-d H:i:s",$data[$k]["time"]);//添加时间
  68. $data[$k]["service_audit_imgs"] = getImageAr($data[$k]["service_audit_imgs"]);//我的证书
  69. $data[$k]["service_intro_imgs"] = getImageAr($data[$k]["service_intro_imgs"]);//我的介绍图片
  70. $data[$k]["service_imgs"] = getImageAr($data[$k]["service_imgs"]);//我的服务展示照片
  71. //服务区域
  72. $data[$k]["service_area"] = getImageAr($data[$k]["service_area"]);
  73. $data[$k]["service_area_all"] = [];
  74. foreach($data[$k]["service_area"] as $k2=>$v2){
  75. $data[$k]["service_area_all"][]=getAreaItemAr($v2);
  76. }
  77. //服务内容
  78. $data[$k]["service_project"] = getImageAr($data[$k]["service_project"]);//我的服务内容
  79. $data[$k]["service_project_ar"] = [];
  80. if(!empty($data[$k]["service_project"])){
  81. $data[$k]["service_project_ar"] = (new ServiceTypeModel())->where("id","in",$data[$k]["service_project"])->select();
  82. }
  83. //介绍标签
  84. $data[$k]["service_label"] = getImageAr($data[$k]["service_label"]);
  85. $data[$k]["service_label_ar"] = (new ServiceLabelModel)->getColumnList("id", "title", $data[$k]["service_label"]);
  86. $data[$k]["admin_time"] = empty($data[$k]["admin_time"])?"":date("Y-m-d H:i:s",$data[$k]["admin_time"]);
  87. }
  88. return ["list" => $data, "pageSize" => $post["pageSize"],"page"=>$post["page"],"totalCount"=>$pageCount];
  89. }
  90. /**
  91. *
  92. * @param type $id
  93. * @param type $type
  94. */
  95. public function getItem($post,$is_admin=0){
  96. if(empty($post)){
  97. return [];
  98. }
  99. $where=[];
  100. if(isset($post["status"]) && in_array((string)$post["status"], ["0","1","-1"])){
  101. $where[]=["au.status","=",(int)$post["status"]];
  102. }
  103. if(!empty($post["id"])){
  104. $where[]=["au.id","=",$post["id"]];
  105. }
  106. if(!empty($post["uid"])){
  107. $where[]=["au.uid","=",$post["uid"]];
  108. }
  109. $where[] = ["au.is_show","=",1];
  110. //后台
  111. $userField = $is_admin==1 ? ",u.mobile as user_mobile,u.nickname as user_nickname,u.avatar as user_avatar,a.name as admin_name" : "";
  112. $data = $this
  113. ->alias("au")
  114. ->field("au.*,wt.title as user_work_type_title,s.title as service_time_type_title{$userField}")
  115. ->leftJoin("user u" ,"u.uid = au.uid")//用户信息
  116. ->leftJoin("user_work_type wt" , "wt.id = au.user_work_type_id")//职称
  117. ->leftJoin("service_time_type s" , "s.code = au.service_type")//服务时长类型
  118. ->leftJoin("admin a" , "a.id = au.admin_id")//管理员
  119. ->where($where)
  120. ->order("au.id","desc")
  121. ->find();
  122. if(empty($data)){
  123. return [];
  124. }
  125. $data = $data->toArray();
  126. $serviceTypeModel = new ServiceTypeModel();
  127. $data["age"] = empty($data["birthday"]) ? "" : date("Y") - date("Y",$data["birthday"]);
  128. $data["birthday"] = empty($data["birthday"]) ? "" : date("Y-m-d",$data["birthday"]);//生日
  129. $data["time"] = date("Y-m-d H:i:s",$data["time"]);//添加时间
  130. $data["service_audit_imgs"] = getImageAr($data["service_audit_imgs"]);//我的证书
  131. $data["service_intro_imgs"] = getImageAr($data["service_intro_imgs"]);//我的介绍图片
  132. $data["service_imgs"] = getImageAr($data["service_imgs"]);//我的服务展示照片
  133. //服务区域
  134. $data["service_area"] = getImageAr($data["service_area"]);
  135. $data["service_area_all"] = [];
  136. foreach($data["service_area"] as $k2=>$v2){
  137. $data["service_area_all"][]=getAreaItemAr($v2);
  138. }
  139. //服务内容
  140. $data["service_project"] = getImageAr($data["service_project"]);//我的服务内容
  141. $data["service_project_ar"] = [];
  142. if(!empty($data["service_project"])){
  143. $data["service_project_ar"] = (new ServiceTypeModel())->where("id","in",$data["service_project"])->select();
  144. }
  145. $data["service_label"] = getImageAr($data["service_label"]);
  146. $data["service_label_ar"] = (new ServiceLabelModel)->getColumnList("id", "title", $data["service_label"]);
  147. if($is_admin==0){
  148. unset($data["admin_id"]);
  149. unset($data["admin_mono"]);
  150. unset($data["admin_time"]);
  151. unset($data["uid"]);
  152. unset($data["service_price"]);
  153. unset($data["service_area"]);
  154. unset($data["service_project"]);
  155. }else{
  156. $data["admin_time"] = empty($data["admin_time"])?"":date("Y-m-d H:i:s",$data["admin_time"]);
  157. }
  158. return $data;
  159. }
  160. }