diff --git a/app/Model/ServiceEvaluate.php b/app/Model/ServiceEvaluate.php index 8d1e89a..82ee480 100644 --- a/app/Model/ServiceEvaluate.php +++ b/app/Model/ServiceEvaluate.php @@ -12,7 +12,7 @@ class ServiceEvaluate extends Model /** * @var array 允许插入的属性 */ - protected $fillable = ['user_id', 'user_created_at', 'service_personnel_id', 'market_id', 'c_attitude', 'c_service', 'c_quality', 'content']; + protected $fillable = ['user_id', 'user_created_at', 'service_personnel_id', 'market_id', 'c_attitude', 'c_service', 'c_quality', 'c_average', 'content', 'is_new_user']; /** * 默认值 diff --git a/app/Model/Users.php b/app/Model/Users.php new file mode 100644 index 0000000..2a8d910 --- /dev/null +++ b/app/Model/Users.php @@ -0,0 +1,8 @@ +where(['id' => $data['user_id']]) - ->value('join_time'); + // 当前用户是否今日新注册并第一次提交评论 + $data['user_created_at'] = Users::where(['id' => $data['user_id']])->value('join_time'); + $evaluateExist = ServiceEvaluate::where(['user_id' => $data['user_id']])->exists(); + + $data['is_new_user'] = 0; + if ( + !$evaluateExist + && $data['user_created_at']>=strtotime(date('Y-m-d 00:00:00')) + && $data['user_created_at']<=strtotime(date('Y-m-d 23:59:59')) + ) { + $data['is_new_user'] = 1; + } + + // 计算评分平均分 + $score = $data['c_attitude'] + $data['c_service'] + $data['c_quality']; + $data['c_average'] = round($score/3, 1); + return ServiceEvaluate::create($data); } diff --git a/config/autoload/server.php b/config/autoload/server.php index d6211cc..e0e6cd8 100644 --- a/config/autoload/server.php +++ b/config/autoload/server.php @@ -36,10 +36,17 @@ return [ 'max_request' => 100000, 'socket_buffer_size' => 2 * 1024 * 1024, 'buffer_output_size' => 2 * 1024 * 1024, + // Task Worker 数量,根据您的服务器配置而配置适当的数量 + 'task_worker_num' => 8, + // 因为 `Task` 主要处理无法协程化的方法,所以这里推荐设为 `false`,避免协程下出现数据混淆的情况 + 'task_enable_coroutine' => false, ], 'callbacks' => [ SwooleEvent::ON_WORKER_START => [Hyperf\Framework\Bootstrap\WorkerStartCallback::class, 'onWorkerStart'], SwooleEvent::ON_PIPE_MESSAGE => [Hyperf\Framework\Bootstrap\PipeMessageCallback::class, 'onPipeMessage'], SwooleEvent::ON_WORKER_EXIT => [Hyperf\Framework\Bootstrap\WorkerExitCallback::class, 'onWorkerExit'], + // Task callbacks + SwooleEvent::ON_TASK => [Hyperf\Framework\Bootstrap\TaskCallback::class, 'onTask'], + SwooleEvent::ON_FINISH => [Hyperf\Framework\Bootstrap\FinishCallback::class, 'onFinish'], ], ];