OrderReportLogic.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace app\api\logic;
  3. use app\common\logic\BaseLogic;
  4. use app\common\model\orders\OrderReport;
  5. use app\common\model\works\ServiceWork;
  6. use think\facade\Db;
  7. /**
  8. * OrderReport
  9. * Class OrderReportLogic
  10. * @package app\api\logic
  11. */
  12. class OrderReportLogic extends BaseLogic
  13. {
  14. public static function add(array $params): bool
  15. {
  16. Db::startTrans();
  17. try {
  18. $work = ServiceWork::where(['id'=>$params['work_id'],'user_id'=>$params['user_id']])->findOrEmpty();
  19. if($work->isEmpty()){
  20. self::setError('工单不存在');
  21. return false;
  22. }
  23. if(empty($work->master_worker_id)){
  24. self::setError('工单未分配');
  25. return false;
  26. }
  27. $is_report = OrderReport::where(['user_id'=>$params['user_id'],'work_id'=>$params['work_id']])->findOrEmpty();
  28. if(!$is_report->isEmpty()){
  29. self::setError('您已提交过投诉');
  30. return false;
  31. }
  32. OrderReport::create([
  33. 'user_id'=>$params['user_id'],
  34. 'work_id' => $params['work_id'],
  35. 'worker_id'=> $work->master_worker_id,
  36. 'report' => $params['report'],
  37. 'audit_state' => 0,
  38. 'event_status' => 0,
  39. 'remark' => !empty($params['remark'])?$params['remark']:'',
  40. ]);
  41. Db::commit();
  42. return true;
  43. } catch (\Exception $e) {
  44. Db::rollback();
  45. self::setError($e->getMessage());
  46. return false;
  47. }
  48. }
  49. }