package com.fs.store.controller;

import com.fs.common.annotation.Log;
import com.fs.common.core.controller.BaseController;
import com.fs.common.core.domain.AjaxResult;
import com.fs.common.core.page.TableDataInfo;
import com.fs.common.enums.BusinessType;
import com.fs.common.utils.poi.ExcelUtil;
import com.fs.store.domain.FsTestTempItem;
import com.fs.store.param.FsTestTempItemParam;
import com.fs.store.service.IFsTestTempItemService;
import com.fs.store.vo.FsTestTempItemListVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 模板项目Controller
 *
 * @author fs
 * @date 2023-09-04
 */
@RestController
@RequestMapping("/his/testTempItem")
public class FsTestTempItemController extends BaseController
{
    @Autowired
    private IFsTestTempItemService fsTestTempItemService;

    /**
     * 查询模板项目列表
     */

    @GetMapping("/list")
    public TableDataInfo list(FsTestTempItemParam fsTestTempItem)
    {
        startPage();
        List<FsTestTempItemListVO> list = fsTestTempItemService.selectFsTestTempItemListVO(fsTestTempItem);
        return getDataTable(list);
    }

    /**
     * 导出模板项目列表
     */

    @Log(title = "模板项目", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public AjaxResult export(FsTestTempItem fsTestTempItem)
    {
        List<FsTestTempItem> list = fsTestTempItemService.selectFsTestTempItemList(fsTestTempItem);
        ExcelUtil<FsTestTempItem> util = new ExcelUtil<FsTestTempItem>(FsTestTempItem.class);
        return util.exportExcel(list, "模板项目数据");
    }

    /**
     * 获取模板项目详细信息
     */

    @GetMapping(value = "/{itemId}")
    public AjaxResult getInfo(@PathVariable("itemId") Long itemId)
    {
        return AjaxResult.success(fsTestTempItemService.selectFsTestTempItemByItemId(itemId));
    }

    /**
     * 新增模板项目
     */

    @Log(title = "模板项目", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody FsTestTempItem fsTestTempItem)
    {
        return toAjax(fsTestTempItemService.insertFsTestTempItem(fsTestTempItem));
    }

    /**
     * 修改模板项目
     */

    @Log(title = "模板项目", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody FsTestTempItem fsTestTempItem)
    {
        return toAjax(fsTestTempItemService.updateFsTestTempItem(fsTestTempItem));
    }

    /**
     * 删除模板项目
     */
    @Log(title = "模板项目", businessType = BusinessType.DELETE)
	@DeleteMapping("/{itemIds}")
    public AjaxResult remove(@PathVariable Long[] itemIds)
    {
        return toAjax(fsTestTempItemService.deleteFsTestTempItemByItemIds(itemIds));
    }
}
