package vip.xiaonuo.quality.controller;


import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;
import vip.xiaonuo.common.exception.CommonException;
import vip.xiaonuo.common.pojo.CommonResult;
import vip.xiaonuo.quality.entity.QualityFenxibaogao;
import vip.xiaonuo.quality.entity.QualityManufacturer;
import vip.xiaonuo.quality.param.QualityFenxibaogaoAddParam;
import vip.xiaonuo.quality.param.QualityFenxibaogaoIdParam;
import vip.xiaonuo.quality.param.QualityManufacturerParam;
import vip.xiaonuo.quality.service.IQualityManufacturerService;

import javax.validation.Valid;

/**
 * <p>
 * 厂商质量级别评估 前端控制器
 * </p>
 *
 * @author author
 * @since 2024-12-11
 */
@RestController
@Api(tags = "厂商质量级别评估")
@ApiSupport(author = "wang", order = 1)
@Validated
public class QualityManufacturerController {

    @Autowired
    private IQualityManufacturerService manufacturerService;

    @PostMapping("/quality-manufacturer/listPage")
    @ApiOperationSupport(order = 1)
    @ApiOperation("厂商质量级别评估列表")
    public CommonResult<Page<QualityManufacturer>> listPage(@RequestBody QualityManufacturerParam manufacturerParam) {
        return CommonResult.data(manufacturerService.listPage(manufacturerParam));
    }


    /**
     * 添加厂商质量级别评估
     *
     * @author 1
     * @date  2025/02/26 16:25
     */
    @ApiOperationSupport(order = 2)
    @ApiOperation("添加厂商质量级别评估")
    @PostMapping("/biz/quality-manufacturer/add")
    public CommonResult<String> add(@RequestBody  QualityManufacturer qualityManufacturer) {
        String orgId = qualityManufacturer.getOrgId();
        if (StringUtils.isBlank(orgId)){
            throw new CommonException("请选择需要添加的公司");
        }
        manufacturerService.save(qualityManufacturer);
        return CommonResult.ok();
    }

    /**
     * 编辑厂商质量级别评估
     *
     * @author 1
     * @date  2025/02/26 16:25
     */
    @ApiOperation("编辑厂商质量级别评估")
    @PostMapping("/biz/quality-manufacturer/edit")
    public CommonResult<String> edit(@RequestBody QualityManufacturer qualityManufacturer) {
        manufacturerService.updateById(qualityManufacturer);
        return CommonResult.ok();
    }

    /**
     * 删除厂商质量级别评估
     *
     * @author 1
     * @date  2025/02/26 16:25
     */
    @ApiOperationSupport(order = 4)
    @ApiOperation("删除厂商质量级别评估")
    @PostMapping("/biz/quality-manufacturer/delete")
    public CommonResult<String> delete(@RequestBody QualityFenxibaogaoIdParam qualityFenxibaogaoIdParamList) {
        manufacturerService.removeById(qualityFenxibaogaoIdParamList.getId());
        return CommonResult.ok();
    }
}
