TimestampBehavior::class ] ]; } /** * @inheritdoc */ public function rules() { return [ [['id', 'store_id', 'rider_id', 'd_order_id', 'order_type', 'star', 'is_show', 'created_at', 'updated_at'], 'integer'], [['desc'], 'string', 'max' => 255], ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'id' => '', 'store_id' => '商城id', 'rider_id' => '骑手id', 'd_order_id' => '订单id', 'order_type' => '订单类型', 'star' => '评分', 'desc' => '评价详情', 'is_show' => '是否显示', 'created_at' => '创建时间', 'updated_at' => '修改时间', ]; } public function beforeSave($insert) { if (parent::beforeSave($insert)) { //满意度 $rider_comment = self::find() ->where(['rider_id' => $this->rider_id, 'is_show' => self::IS_SHOW_YES]) ->select('star')->column(); array_push($rider_comment, $this->star); //debug_log($rider_comment, 'courier.log'); if (!empty($rider_comment)) { $rider_star = array_sum($rider_comment); $total_star = count($rider_comment) * 5; //debug_log([ 'rider_star' => $rider_star, 'total_star' => $total_star ], 'courier.log'); $courier = LocalDeliveryCourier::findOne($this->rider_id); if (empty($courier)) { $this->addError('rider', '骑手查询失败'); return false; } $courier->star = sprintf('%.2f', $rider_star / $total_star); if (!$courier->save()) { $this->addError('rider_save', '保存失败'); return false; } return true; } } } }