109 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			109 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | 
 | ||
|  | 
 | ||
|  | namespace app\common\model\community; | ||
|  | 
 | ||
|  | 
 | ||
|  | use app\common\basics\Models; | ||
|  | use app\common\enum\CommunityCommentEnum; | ||
|  | use app\common\model\user\User; | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * 种草社区评论 | ||
|  |  * Class CommunityComment | ||
|  |  * @package app\common\model\community | ||
|  |  */ | ||
|  | class CommunityComment extends Models | ||
|  | { | ||
|  | 
 | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @notes 关联用户 | ||
|  |      * @return \think\model\relation\HasOne | ||
|  |      * @author 段誉 | ||
|  |      * @date 2022/5/7 15:22 | ||
|  |      */ | ||
|  |     public function user() | ||
|  |     { | ||
|  |         return $this->hasOne(User::class, 'id', 'user_id') | ||
|  |             ->bind(['nickname', 'avatar', 'sn']); | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @notes 子级 | ||
|  |      * @return \think\model\relation\HasMany | ||
|  |      * @author 段誉 | ||
|  |      * @date 2022/5/10 11:45 | ||
|  |      */ | ||
|  |     public function child() | ||
|  |     { | ||
|  |         return $this->hasMany(self::class, 'id', 'pid'); | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @notes 关联文章 | ||
|  |      * @return \think\model\relation\HasOne | ||
|  |      * @author 段誉 | ||
|  |      * @date 2022/5/10 11:46 | ||
|  |      */ | ||
|  |     public function article() | ||
|  |     { | ||
|  |         return $this->hasOne(CommunityArticle::class, 'id', 'article_id'); | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @notes 一级评论的所有子级评论 | ||
|  |      * @param $value | ||
|  |      * @param $data | ||
|  |      * @return array | ||
|  |      * @throws \think\db\exception\DataNotFoundException | ||
|  |      * @throws \think\db\exception\DbException | ||
|  |      * @throws \think\db\exception\ModelNotFoundException | ||
|  |      * @author 段誉 | ||
|  |      * @date 2022/5/9 14:28 | ||
|  |      */ | ||
|  |     public function getChildAttr($value, $data) | ||
|  |     { | ||
|  |         $lists = self::with(['user']) | ||
|  |             ->whereFindInSet('ancestor_relation', $data['id']) | ||
|  |             ->where(['del' => 0, 'status' => CommunityCommentEnum::STATUS_SUCCESS]) | ||
|  |             ->order(['like' => 'desc']) | ||
|  |             ->select()->toArray(); | ||
|  |         return $lists; | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @notes 增加点赞数量 | ||
|  |      * @param $id | ||
|  |      * @return mixed | ||
|  |      * @author 段誉 | ||
|  |      * @date 2022/5/9 15:35 | ||
|  |      */ | ||
|  |     public static function incLike($id) | ||
|  |     { | ||
|  |         return self::where(['id' => $id])->inc('like')->update(); | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @notes 减少点赞数量 | ||
|  |      * @param $id | ||
|  |      * @return mixed | ||
|  |      * @author 段誉 | ||
|  |      * @date 2022/5/9 15:38 | ||
|  |      */ | ||
|  |     public static function decLike($id) | ||
|  |     { | ||
|  |         $where = [ | ||
|  |             ['id', '=', $id], | ||
|  |             ['like', '>=', 1] | ||
|  |         ]; | ||
|  |         return self::where($where)->dec('like')->update(); | ||
|  |     } | ||
|  | 
 | ||
|  | } |