<?php
// +----------------------------------------------------------------------
// | likeshop100%开源免费商用商城系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码，建议反馈是我们前进的动力
// | 开源版本可自由商用，可去除界面版权logo
// | 商业版本务必购买商业授权，以免引起法律纠纷
// | 禁止对系统程序代码以任何目的，任何形式的再发布
// | gitee下载：https://gitee.com/likeshop_gitee
// | github下载：https://github.com/likeshop-github
// | 访问官网：https://www.likeshop.cn
// | 访问社区：https://home.likeshop.cn
// | 访问手册：http://doc.likeshop.cn
// | 微信公众号：likeshop技术社区
// | likeshop团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeshopTeam
// +----------------------------------------------------------------------
namespace app\api\controller;
use app\api\lists\CreationModelLists;
use app\api\logic\CreationLogic;
use app\common\logic\BaseLogic;

/**
 * 创作控制器类
 * Class CreationController
 * @package app\api\controller
 */
class CreationController extends BaseApiController
{

    public array $notNeedLogin = ['categoryLists','lists','detail','creationLists'];

    /**
     * @notes 分类列表
     * @return \think\response\Json
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\DbException
     * @throws \think\db\exception\ModelNotFoundException
     * @author cjhao
     * @date 2023/9/13 12:12
     */
    public function categoryLists()
    {
        $lists = (new CreationLogic())->categoryLists($this->userId);
        return $this->success('',$lists);

    }

    /**
     * @notes 获取数据列表
     * @return \think\response\Json
     * @author cjhao
     * @date 2023/11/1 17:17
     */
    public function creationLists()
    {
        return $this->dataLists(new CreationModelLists());
    }
    /**
     * @notes 获取创作列表
     * @author cjhao
     * @date 2023/4/17 18:56
     */
    public function lists()
    {
        $lists = (new CreationLogic())->lists($this->request->get(),$this->userId);
        return $this->success('',$lists);

    }

    /**
     * @notes 创作模型详情
     * @return \think\response\Json
     * @author ljj
     * @date 2023/4/25 5:07 下午
     */
    public function detail()
    {
        $params = $this->request->get();
        $result = (new CreationLogic())->detail($params['id'] ?? 0,$this->userId);
        return $this->success('',$result);
    }

    /**
     * @notes 创作收藏
     * @return \think\response\Json
     * @author cjhao
     * @date 2023/9/13 11:56
     */
    public function collect()
    {
        $id = $this->request->post('id',0);
        $result = (new CreationLogic())->collect($id,$this->userId);
        if(false === $result){
            return $this->fail(BaseLogic::getError());
        }
        return $this->success($result,[],1,1);
    }
}