| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- namespace addons\Course\common\logic;
- use addons\Course\common\models\AddonsCourseChapter;
- use addons\Course\common\models\CourseUserWatch;
- use addons\Course\common\models\CourseWatchLog;
- use common\enums\StatusEnum;
- use common\helpers\wechat\WechatTemplate;
- use common\models\mall\Mall;
- use common\models\user\User;
- use common\traits\ErrorTrait;
- class Watch
- {
- use ErrorTrait;
- public static function add($params)
- {
- $t = \Yii::$app->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++;
- }
- }
- }
|