You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.6 KiB

  1. <?php
  2. namespace App\Service;
  3. use App\Model\ServiceEvaluate;
  4. use App\Model\Users;
  5. use Hyperf\DbConnection\Db;
  6. use Hyperf\HttpServer\Contract\RequestInterface;
  7. use Hyperf\Di\Annotation\Inject;
  8. use Hyperf\Paginator\Paginator;
  9. class ServiceEvaluateService implements ServiceEvaluateServiceInterface
  10. {
  11. public function evaluate($data)
  12. {
  13. // 当前用户是否今日新注册并第一次提交评论
  14. $data['user_created_at'] = Users::where(['id' => $data['user_id']])->value('join_time');
  15. $evaluateExist = ServiceEvaluate::where(['user_id' => $data['user_id']])->exists();
  16. $data['is_new_user'] = 0;
  17. if (
  18. !$evaluateExist
  19. && $data['user_created_at']>=strtotime(date('Y-m-d 00:00:00'))
  20. && $data['user_created_at']<=strtotime(date('Y-m-d 23:59:59'))
  21. ) {
  22. $data['is_new_user'] = 1;
  23. }
  24. // 计算评分平均分
  25. $score = $data['c_attitude'] + $data['c_service'] + $data['c_quality'];
  26. $data['c_average'] = round($score/3, 1);
  27. return ServiceEvaluate::create($data);
  28. }
  29. public function getPersonnelInfo($service_personnel_id)
  30. {
  31. $res = Db::table('lanzu_service_personnel')
  32. ->where([
  33. ['id','=',$service_personnel_id],
  34. ['status','=',1]
  35. ])
  36. ->first();
  37. $personnel_average = Db::table('lanzu_service_evaluate')->where(['service_personnel_id'=>$service_personnel_id])->avg('c_average');
  38. $res->personnel_average = sprintf("%.1f",$personnel_average);
  39. return $res;
  40. }
  41. public function getEvaluateList($service_personnel_id)
  42. {
  43. $res = Db::table('lanzu_service_evaluate as e')
  44. ->join('ims_cjdc_user as u','u.id','=','e.user_id')
  45. ->where(['e.service_personnel_id'=>$service_personnel_id])
  46. ->select('e.*','u.name','u.img')
  47. ->paginate(4);
  48. return $res;
  49. }
  50. public function getQuickEvaluate()
  51. {
  52. $data = (object)null;
  53. //获取快速评论标题
  54. $obj1 = (object)null;
  55. $obj1->title1 = '服务态度超好';
  56. $obj1->title2 = '服务态度一般般';
  57. $data->quick_evaluate_title = $obj1;
  58. //获取快速评论内容
  59. $obj2 = (object)null;
  60. $obj2->content1 = '超级细心';
  61. $obj2->content2 = '马马虎虎';
  62. $data->quick_evaluate_content = $obj2;
  63. //获取评论长度限制参数
  64. $obj3 = (object)null;
  65. $obj3->min_length = 15;
  66. $obj3->max_length = 150;
  67. $data->length = $obj3;
  68. return $data;
  69. }
  70. }