| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 | <?php/** * Created by PhpStorm. * User: hp * Date: 2017/11/21 * Time: 8:59 */namespace App\Modules\MediaPush\Models;use Illuminate\Database\Eloquent\Model;use App\Modules\MediaPush\Models\MediaPushRelationBooks;class MediaPushBookConfigs extends Model{    protected $table = 'media_push_book_configs';    protected $fillable = ['id', 'headline', 'cover','bid', 'created_at', 'updated_at'];    static function getByBid($bid)    {        return self::where('bid',$bid)->first();    }    static function getBids()    {        return self::select('bid')->get();    }        static function getDefaultHotBook()    {    	return self::where('is_enabled',1)->orderBy('id','asc')->first();    }        /**     * 获取推荐的书籍     */    static function getRecommendHotBooks($from_bids)    {    	$recommend_bids = [];    	$default_book = self::getDefaultHotBook();    	$default_bid = isset($default_book->bid)?$default_book->bid:0;    	$default_relation = MediaPushRelationBooks::getByBid($default_bid);    	foreach ($from_bids as $from_bid){    		$ralation = MediaPushRelationBooks::getByBid($from_bid);    		if(!empty($ralation)){    			$recommend_bids[$from_bid] = explode(',',$ralation->pro_bids);    		}else{    			$recommend_bids[$from_bid] = explode(',',$default_relation->pro_bids);    		}    	}    	    	return $recommend_bids;    }        /**     * 获取推荐的书籍的素材     */    static function getRecommendHotBookMasterials($bid)    {    	try{    		$recommend_bid_materials = [];    		$ralations = MediaPushRelationBooks::getByBid($bid);    		$ralation_bids = explode(',',$ralations->pro_bids);    		\Log::info('getRecommendHotBookMasterials:$bid:'.$bid.' $ralation_bids:'.json_encode($ralation_bids));    		if(!empty($ralation_bids)){    			foreach($ralation_bids as $ralation_bid){    				\Log::info('$ralation_bid:'.$ralation_bid);    				$material = self::getByBid($ralation_bid);    				$recommend_bid_materials[] = $material;    			}    		}    	}catch(\Exception $e){    		    	}    	    	return $recommend_bid_materials;    }        public static function getMediaPushBooks($num)    {    	return self::whereNotNull('cover')->where('is_enabled',1)->get()->random($num);    }    public static function getInfos($params = [], $isAll = false)    {        $search_object = self::leftjoin('book_configs', 'media_push_book_configs.bid', '=', 'book_configs.bid');        $search_object->where('is_enabled', 1);        $search_object->select('media_push_book_configs.id','media_push_book_configs.bid', 'book_configs.book_name', 'media_push_book_configs.headline', 'media_push_book_configs.cover', 'book_configs.charge_type');        if (isset($params['headline']) && $params['headline']) {            $search_object->where('media_push_book_configs.headline', 'like', '%' . $params['headline'] . '%');        }        if (isset($params['book_name']) && $params['book_name']) {            $search_object->where('book_configs.book_name', 'like', '%' . $params['book_name'] . '%');        }        if (isset($params['charge_type']) && $params['charge_type']) {            $search_object->where('book_configs.charge_type', $params['charge_type']);        }        \Log::info($search_object->toSql());        if ($isAll) {            return $search_object->get();        } else {            return $search_object->paginate();        }    }}
 |