package com.dsk.cscec.controller;


import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.AdvisoryBody;
import com.dsk.cscec.domain.bo.AdvisoryBodySearchBo;
import com.dsk.cscec.domain.bo.CooperateProjectDetailSearchBo;
import com.dsk.cscec.domain.bo.ProjectSearchBo;
import com.dsk.cscec.domain.vo.AdvisoryBodySearchVo;
import com.dsk.cscec.domain.vo.CooperateProjectDetailSearchVo;
import com.dsk.cscec.domain.vo.ProjectDetailVo;
import com.dsk.cscec.domain.vo.ProjectSearchVo;
import com.dsk.cscec.service.IDProjectService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import javax.validation.constraints.NotNull;

/**
 * 咨询机构管理控制层
 *
 * @author sxk
 * @since 2023-12-10 15:34:46
 */
@RestController
@RequestMapping("advisory/body")
public class AdvisoryBodyManageController extends BaseController {
    /**
     * 服务对象
     */
    @Resource
    private IDProjectService baseService;

    /**
     * 获取所有项目列表数据
     */
    @GetMapping("/getProjectList")
    public TableDataInfo<ProjectSearchVo> getProjectList(ProjectSearchBo projectSearchBo, PageQuery pageQuery) {
        return baseService.queryProjectList(projectSearchBo, pageQuery);
    }

    /**
     * 获取所有企业列表(咨询机构)数据
     */
    @GetMapping("/getAdvisoryBodyList")
    public TableDataInfo<AdvisoryBodySearchVo> getAdvisoryBodyList(AdvisoryBodySearchBo advisoryBodySearchBo, PageQuery pageQuery) {
        return baseService.queryAdvisoryBodyList(advisoryBodySearchBo, pageQuery);
    }

    /**
     * 获取合作项目明细
     */
    @GetMapping("/getCooperateProjectDetailList")
    public TableDataInfo<CooperateProjectDetailSearchVo> getCooperateProjectDetailList(CooperateProjectDetailSearchBo cooperateProjectDetailSearchBo, PageQuery pageQuery) {
        return baseService.queryCooperateProjectDetailList(cooperateProjectDetailSearchBo, pageQuery);
    }

    /**
     * 根据项目主键查询项目详情
     */
    @GetMapping("/getProjectDetail/{projectKey}")
    public R<ProjectDetailVo> getProjectDetail(@NotNull(message = "项目主键不能为空") @PathVariable Long projectKey) {
        return R.ok(baseService.queryProjectDetail(projectKey));
    }

    /**
     * 根据咨询机构ID查询咨询机构详情
     */
    @GetMapping("/getAdvisoryBodyDetail/{advisoryBodyId}")
    public R<AdvisoryBody> getAdvisoryBodyDetail(@NotNull(message = "咨询机构ID不能为空") @PathVariable Long advisoryBodyId) {
        return R.ok(baseService.queryAdvisoryBodyDetail(advisoryBodyId));
    }
}

