LinggangVenueInfoController.java 8.43 KB
package com.ruoyi.controller.venue.info;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.domain.OrderEntity;
import com.ruoyi.domain.venue.info.LinggangVenueInfo;
import com.ruoyi.domain.venue.info.dto.LinggangVenueInfoAddDTO;
import com.ruoyi.domain.venue.info.dto.LinggangVenueInfoQueryDTO;
import com.ruoyi.domain.venue.info.dto.LinggangVenueInfoUpdateDTO;
import com.ruoyi.domain.venue.info.dto.LinggangVenueInfoUpdateStatusDTO;
import com.ruoyi.domain.venue.info.vo.LinggangVenueInfoVO;
import com.ruoyi.service.venue.info.LinggangVenueInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.util.Date;
import java.util.List;

@RestController
@Api(tags = "场地Info")
@RequestMapping("linggang/venue/info")
public class LinggangVenueInfoController extends BaseController {
    @Autowired
    private LinggangVenueInfoService linggangVenueInfoService;

    @ApiOperation("分页查询")
    @PreAuthorize("@ss.hasPermi('linggang:venue:info:list:limit:page:limit')")
    @PostMapping(value = "/list/limit/{page}/{pageLimit}")
    public IPage<LinggangVenueInfoVO> listLimit(@ModelAttribute LinggangVenueInfoQueryDTO request, @ModelAttribute OrderEntity orderEntity, @PathVariable Integer page, @PathVariable Integer pageLimit, org.springframework.ui.Model model) {
        request.clearStrEmpty();
        LinggangVenueInfo entity = convert(request);
        IPage<LinggangVenueInfo> response = linggangVenueInfoService.pageList(new Page<LinggangVenueInfo>(page, pageLimit), entity, orderEntity);

        return convert(response);
    }

    @ApiOperation("根据ID查询详情")
    @GetMapping(value = "/view/{id}")
    public com.ruoyi.common.core.domain.ResponseResult<LinggangVenueInfoVO> view(@PathVariable("id") Integer id, org.springframework.ui.Model model) {
        LinggangVenueInfo source = linggangVenueInfoService.getById(id);

        return com.ruoyi.common.core.domain.ResponseResult.success(convert(source));
    }

    @PostMapping(value = "/list/select")
    @ApiOperation("(页面选择)")
    public com.ruoyi.common.core.domain.ResponseResult<List<LinggangVenueInfoVO>> listSelect(LinggangVenueInfoQueryDTO request) {
        LinggangVenueInfo entity = convert(request);
        List<LinggangVenueInfo> selectList = linggangVenueInfoService.listOfSelect(entity);

        return com.ruoyi.common.core.domain.ResponseResult.success(
                java.util.Optional.ofNullable(selectList).map(scs -> {
                    return scs.stream().map(source -> {
                        LinggangVenueInfoVO target = new LinggangVenueInfoVO();
                        BeanUtils.copyProperties(source, target);
                        target.setName(target.getName() + "-" + target.getParkCode());
                        return target;
                    }).collect(java.util.stream.Collectors.toList());
                }).orElseGet(null)
        );
    }

    @PreAuthorize("@ss.hasPermi('linggang:venue:info:export')")
    @ApiOperation("导出")
    @PostMapping("/export")
    public void export(HttpServletResponse response, @RequestBody LinggangVenueInfoQueryDTO request) {
        LinggangVenueInfo entity = convert(request);
        List<LinggangVenueInfo> list = linggangVenueInfoService.list(entity);
        ExcelUtil<LinggangVenueInfo> util = new ExcelUtil<LinggangVenueInfo>(LinggangVenueInfo.class);
        util.exportExcel(response, list, "LinggangVenueInfo");
    }

    @ApiOperation("添加")
    @PreAuthorize("@ss.hasPermi('linggang:venue:info:add')")
    @PostMapping(value = "/add")
    public com.ruoyi.common.core.domain.ResponseResult add(@Valid @ModelAttribute LinggangVenueInfoAddDTO request, BindingResult bindingResult) {
        if (bindingResult.hasErrors()) {
            return com.ruoyi.common.core.domain.ResponseResult.error(bindingResult.getFieldError().getDefaultMessage());
        }
        LinggangVenueInfo entity = convert(request);
        entity.setCreateBy(getUserId());
        entity.setCrateTime(new Date());
        int count = linggangVenueInfoService.insertSelective(entity);
        return count > 0 ? com.ruoyi.common.core.domain.ResponseResult.success(Boolean.TRUE) : com.ruoyi.common.core.domain.ResponseResult.error("添加数据失败,请稍后再试");
    }

    @ApiOperation("修改")
    @PreAuthorize("@ss.hasPermi('linggang:venue:info:update')")
    @PostMapping(value = "/update")
    public com.ruoyi.common.core.domain.ResponseResult update(@Valid @ModelAttribute LinggangVenueInfoUpdateDTO request, BindingResult bindingResult) {
        if (bindingResult.hasErrors()) {
            return com.ruoyi.common.core.domain.ResponseResult.error(bindingResult.getFieldError().getDefaultMessage());
        }
        LinggangVenueInfo entity = convert(request);
        entity.setUpdateBy(getUserId());
        entity.setUpdateTime(new Date());
        boolean flag = linggangVenueInfoService.updateByPrimaryKey(entity);
        return flag ? com.ruoyi.common.core.domain.ResponseResult.success(Boolean.TRUE) : com.ruoyi.common.core.domain.ResponseResult.error("修改数据失败,请稍后再试");
    }

    @ApiOperation("修改状态")
    @PreAuthorize("@ss.hasPermi('linggang:venue:info:update:status')")
    @PostMapping(value = "/update/status")
    public com.ruoyi.common.core.domain.ResponseResult updateState(@ModelAttribute LinggangVenueInfoUpdateStatusDTO request) {
        LinggangVenueInfo entity = convert(request);
        boolean flag = linggangVenueInfoService.updateByPrimaryKey(entity);
        return flag ? com.ruoyi.common.core.domain.ResponseResult.success(Boolean.TRUE) : com.ruoyi.common.core.domain.ResponseResult.error("修改数据失败,请稍后再试");
    }

    private LinggangVenueInfo convert(LinggangVenueInfoQueryDTO source) {
        return java.util.Optional.ofNullable(source).map(sc -> {
            LinggangVenueInfo target = new LinggangVenueInfo();
            BeanUtils.copyProperties(sc, target);
            return target;
        }).orElse(null);
    }

    private LinggangVenueInfo convert(LinggangVenueInfoUpdateDTO source) {
        return java.util.Optional.ofNullable(source).map(sc -> {
            LinggangVenueInfo target = new LinggangVenueInfo();
            BeanUtils.copyProperties(sc, target);
            return target;
        }).orElse(null);
    }

    private LinggangVenueInfo convert(LinggangVenueInfoUpdateStatusDTO source) {
        return java.util.Optional.ofNullable(source).map(sc -> {
            LinggangVenueInfo target = new LinggangVenueInfo();
            BeanUtils.copyProperties(sc, target);
            return target;
        }).orElse(null);
    }

    private LinggangVenueInfo convert(LinggangVenueInfoAddDTO source) {
        return java.util.Optional.ofNullable(source).map(sc -> {
            LinggangVenueInfo target = new LinggangVenueInfo();
            BeanUtils.copyProperties(sc, target);
            return target;
        }).orElseGet(null);
    }

    private LinggangVenueInfoVO convert(LinggangVenueInfo source) {
        return java.util.Optional.ofNullable(source).map(sc -> {
            LinggangVenueInfoVO target = new LinggangVenueInfoVO();
            BeanUtils.copyProperties(source, target);
            return target;
        }).orElseGet(null);
    }

    private List<LinggangVenueInfoVO> convert(List<LinggangVenueInfo> sources) {
        return java.util.Optional.ofNullable(sources).map(scs -> {
            return scs.stream().map(source -> {
                return convert(source);
            }).collect(java.util.stream.Collectors.toList());
        }).orElseGet(null);
    }

    private IPage<LinggangVenueInfoVO> convert(IPage<LinggangVenueInfo> sources) {
        return java.util.Optional.ofNullable(sources).map(scs -> {
            IPage<LinggangVenueInfoVO> target = new Page();
            BeanUtils.copyProperties(scs, target);
            List<LinggangVenueInfoVO> voNames = convert(scs.getRecords());
            target.setRecords(voNames);

            return target;
        }).orElseGet(null);
    }
}