package com.ym.mec.web.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;

import java.util.Date;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.ym.mec.biz.dal.entity.Goods;
import com.ym.mec.biz.dal.page.GoodsQueryInfo;
import com.ym.mec.biz.service.GoodsService;
import com.ym.mec.common.controller.BaseController;

@RequestMapping("goods")
@Api(tags = "商品(教材、辅件)服务")
@RestController
public class GoodsController extends BaseController {

    @Autowired
    private GoodsService goodsService;

    @ApiOperation(value = "新增商品(教材、辅件)")
    @PostMapping("/add")
    public Object add(Goods goods){
        goodsService.insert(goods);
        return succeed();
    }

    @ApiOperation(value = "删除商品(教材、辅件)")
    @PostMapping("/del/{id}")
    public Object del(@ApiParam(value = "商品(教材、辅件)编号", required = true) @PathVariable("id") Integer id){
        goodsService.delete(id);
        return succeed();
    }

    @ApiOperation(value = "修改商品(教材、辅件)")
    @PostMapping("/update")
    public Object update(Goods goods){
        goods.setUpdateTime(new Date());
        goodsService.update(goods);
        return succeed();
    }

    @ApiOperation(value = "根据商品(教材、辅件)编号查询商品(教材、辅件)")
    @GetMapping("/get/{id}")
    public Object get(@ApiParam(value = "商品(教材、辅件)编号", required = true) @PathVariable("id") Integer id){
        return succeed(goodsService.get(id));
    }

    @ApiOperation(value = "分页查询商品(教材、辅件)列表")
    @GetMapping("/queryPage")
    public Object queryPage(GoodsQueryInfo queryInfo){
        return succeed(goodsService.queryPage(queryInfo));
    }

    @ApiOperation(value = "通过科目编号、商品分类 查询商品(教材、辅件)列表")
    @GetMapping("/queryGoodsBySubId")
    @ApiImplicitParams({ @ApiImplicitParam(name = "subjectId", value = "科目编号", required = true, dataType = "Integer"),
            @ApiImplicitParam(name = "goodsCategoryId", value = "商品分类", required = true, dataType = "Integer")})
    public Object findGoodsBySubId(@RequestAttribute Integer subjectId,@RequestAttribute Integer goodsCategoryId){
        return succeed(goodsService.findGoodsBySubId(subjectId,goodsCategoryId));
    }
}
