db->beginTransaction(); try { CourseWatchLog::setData($params); $user = User::findOne(['mall_id' => $params['mall_id'], 'id' => $params['user_id']]); $params['register_time'] = $user['created_at']; CourseUserWatch::setData($params); $t->commit(); return true; } catch (\Exception $e) { $t->rollBack(); self::$static_error = $e->getMessage(); return false; } } public static function getText($duration) { if(empty($duration)) return '暂无'; $h = bcdiv($duration, 3600); $i = bcdiv($duration - $h * 3600, 60); $s = $duration % 60; $text = '累计观看'; if ($h > 0) $text .= $h . '小时'; if ($i > 0) $text .= $i . '分'; if ($s > 0) $text .= $s . '秒'; return $text; } public static function initUserWatch() { $i = 1; $page_size = 1000; while ($list = User::find()->where(['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]]) ->select('id,mall_id,created_at') ->offset(($i - 1) * $page_size)->limit($page_size)->all()) { foreach ($list as $user) { $param['register_time'] = $user['created_at']; $param['mall_id'] = $user['mall_id']; $param['user_id'] = $user['id']; $param['duration'] = 0; $res = CourseUserWatch::setData($param); if ($res == false) { var_dump(CourseUserWatch::getStaticError()); } else { var_dump($res['id']); } } $i++; } } }