/**
 * Copyright 2018 人人开源 https://www.renren.io
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see .
 */
package com.epmet.controller;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.AssertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.dto.UserAdviceImgDTO;
import com.epmet.excel.UserAdviceImgExcel;
import com.epmet.service.UserAdviceImgService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
 * 用户建议图片
 *
 * @author qu qu@elink-cn.com
 * @since v1.0.0 2020-11-04
 */
@RestController
@RequestMapping("useradviceimg")
public class UserAdviceImgController {
    
    @Autowired
    private UserAdviceImgService userAdviceImgService;
    @GetMapping("page")
    public Result> page(@RequestParam Map params){
        PageData page = userAdviceImgService.page(params);
        return new Result>().ok(page);
    }
    @GetMapping("{id}")
    public Result get(@PathVariable("id") String id){
        UserAdviceImgDTO data = userAdviceImgService.get(id);
        return new Result().ok(data);
    }
    @PostMapping
    public Result save(@RequestBody UserAdviceImgDTO dto){
        //效验数据
        ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
        userAdviceImgService.save(dto);
        return new Result();
    }
    @PutMapping
    public Result update(@RequestBody UserAdviceImgDTO dto){
        //效验数据
        ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
        userAdviceImgService.update(dto);
        return new Result();
    }
    @DeleteMapping
    public Result delete(@RequestBody String[] ids){
        //效验数据
        AssertUtils.isArrayEmpty(ids, "id");
        userAdviceImgService.delete(ids);
        return new Result();
    }
    @GetMapping("export")
    public void export(@RequestParam Map params, HttpServletResponse response) throws Exception {
        List list = userAdviceImgService.list(params);
        ExcelUtils.exportExcelToTarget(response, null, list, UserAdviceImgExcel.class);
    }
}