| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- <?php
- namespace addons\Course\common\models;
- use addons\Course\common\enums\CourseEnum;
- use common\enums\StatusEnum;
- use Yii;
- /**
- * This is the model class for table "{{%addons_course_user_chapter_likes}}".
- *
- * @property int $id
- * @property int $mall_id 商城id
- * @property int $course_id 课程id
- * @property int $user_id 用户id
- * @property int $is_likes 是否点赞,1:是,0:不是
- * @property int $status 状态 0禁用,1启用,-1是删除
- * @property int $created_at
- * @property int $updated_at
- */
- class AddonsCourseChapterLikes extends \common\models\base\BaseActiveRecord
- {
- /**
- * {@inheritdoc}
- */
- public static function tableName()
- {
- return '{{%addons_course_user_chapter_likes}}';
- }
- /**
- * {@inheritdoc}
- */
- public function rules()
- {
- return [
- [['mall_id', 'course_id', 'user_id', 'is_likes', 'status', 'created_at', 'updated_at'], 'integer'],
- ];
- }
- /**
- * {@inheritdoc}
- */
- public function attributeLabels()
- {
- return [
- 'id' => 'ID',
- 'mall_id' => '商城id',
- 'course_id' => '课程id',
- 'user_id' => '用户id',
- 'is_likes' => '是否点赞,1:是,0:不是',
- 'status' => '状态 0禁用,1启用,-1是删除',
- 'created_at' => 'Created At',
- 'updated_at' => 'Updated At',
- ];
- }
- /**
- * 判断用户是否点赞课程
- * @param $course_id int 课程ID
- * @return int 0:未点赞 1:已点赞
- */
- public static function getUserIsLikes($course_id, $user_id)
- {
- $result = 0;
- $userChapterLikes = self::findOne(["course_id" => $course_id, "user_id" => $user_id]);
- if (!empty($userChapterLikes)) {
- $result = $userChapterLikes->is_likes;
- }
- return $result;
- }
- public static function setData(int $mall_id, array $data)
- {
- // 判断课程是否可以点赞
- $where[] = ['id' => $data['course_id']];
- $where[] = ['status' => StatusEnum::ENABLED];
- $where[] = ['mall_id' => $mall_id];
- $course_info = AddonsCourse::getOne($where);
- if (empty($course_info)) {
- self::$static_error = '课程不存在或已下架';
- return false;
- }
- $msg = '点赞成功';
- array_shift($where);
- $where[] = ['user_id' => $data['user_id']];
- $where[] = ['course_id' => $data['course_id']];
- $user_course_like_model = AddonsCourseChapterLikes::getOne($where);
- $like = 1;
- if (!$user_course_like_model) {
- $user_course_like_model = new self();
- $user_course_like_model->loadDefaultValues();
- $user_course_like_model->load($data, '');
- $user_course_like_model->mall_id = $mall_id;
- $user_course_like_model->is_likes = CourseEnum::IS_LIKES_ONE;
- $user_course_like_model->status = StatusEnum::ENABLED;
- } else {
- if ($user_course_like_model->is_likes == CourseEnum::IS_LIKES_ZERO) {
- $user_course_like_model->is_likes = CourseEnum::IS_LIKES_ONE;
- } else {
- $like = -1;
- $msg = '取消点赞成功';
- $user_course_like_model->is_likes = CourseEnum::IS_LIKES_ZERO;
- }
- }
- if (!$user_course_like_model->save()) {
- self::$static_error = '保存数据失败:' . $user_course_like_model->getErrorMessage();
- return false;
- }
- $course_info->updateCounters(['likes' => $like]);
- return $msg;
- }
- }
|