ExhibitionBoardCatController.java 8.67 KB
Newer Older
liqin's avatar
liqin committed
1 2
package cn.wisenergy.chnmuseum.party.web.controller;

liqin's avatar
liqin committed
3 4 5 6
import cn.wisenergy.chnmuseum.party.common.enums.AuditStatusEnum;
import cn.wisenergy.chnmuseum.party.common.validator.groups.Add;
import cn.wisenergy.chnmuseum.party.common.validator.groups.Update;
import cn.wisenergy.chnmuseum.party.common.vo.GenericPageParam;
liqin's avatar
liqin committed
7 8
import cn.wisenergy.chnmuseum.party.model.CopyrightOwner;
import cn.wisenergy.chnmuseum.party.model.ExhibitionBoard;
liqin's avatar
liqin committed
9
import cn.wisenergy.chnmuseum.party.model.ExhibitionBoardCat;
liqin's avatar
liqin committed
10
import cn.wisenergy.chnmuseum.party.service.CopyrightOwnerService;
liqin's avatar
liqin committed
11
import cn.wisenergy.chnmuseum.party.service.ExhibitionBoardCatService;
liqin's avatar
liqin committed
12
import cn.wisenergy.chnmuseum.party.service.ExhibitionBoardService;
liqin's avatar
liqin committed
13
import cn.wisenergy.chnmuseum.party.web.controller.base.BaseController;
liqin's avatar
liqin committed
14 15
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
liqin's avatar
liqin committed
16
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
liqin's avatar
liqin committed
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;
liqin's avatar
liqin committed
32
import java.util.Set;
liqin's avatar
liqin committed
33
import java.util.stream.Collectors;
liqin's avatar
liqin committed
34 35

/**
liqin's avatar
liqin committed
36
 * <pre>
liqin's avatar
liqin committed
37
 * 展板分类 前端控制器
liqin's avatar
liqin committed
38
 * </pre>
liqin's avatar
liqin committed
39 40
 *
 * @author Danny Lee
liqin's avatar
liqin committed
41
 * @since 2021-03-19
liqin's avatar
liqin committed
42
 */
liqin's avatar
liqin committed
43
@Slf4j
liqin's avatar
liqin committed
44
@RestController
liqin's avatar
liqin committed
45 46
@RequestMapping("/exhibitionBoardCat")
@Api(tags = {"展板分类操作接口"})
liqin's avatar
liqin committed
47 48
public class ExhibitionBoardCatController extends BaseController {

liqin's avatar
liqin committed
49 50
    @Resource
    private ExhibitionBoardService exhibitionBoardService;
liqin's avatar
liqin committed
51 52
    @Resource
    private ExhibitionBoardCatService exhibitionBoardCatService;
liqin's avatar
liqin committed
53 54
    @Resource
    private CopyrightOwnerService copyrightOwnerService;
liqin's avatar
liqin committed
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88

    @PostMapping("/save")
    @RequiresPermissions("exhibition:board:cat:save")
    @ApiOperation(value = "添加展板分类", notes = "添加展板分类")
    public Map<String, Object> saveExhibitionBoardCat(@Validated(value = {Add.class}) ExhibitionBoardCat exhibitionBoardCat) {
        // 保存业务节点信息
        boolean result = exhibitionBoardCatService.save(exhibitionBoardCat);
        // 返回操作结果
        if (result) {
            return getSuccessResult();
        } else {
            // 保存失败
            return getFailResult();
        }
    }

    @PutMapping("/update")
    @RequiresPermissions("exhibition:board:cat:update")
    @ApiOperation(value = "修改展板分类信息", notes = "修改展板分类信息")
    public Map<String, Object> updateExhibitionBoardCat(@Validated(value = {Update.class}) ExhibitionBoardCat exhibitionBoardCat) {
        boolean flag = exhibitionBoardCatService.updateById(exhibitionBoardCat);
        if (flag) {
            return getSuccessResult();
        }
        return getFailResult();
    }

    @PutMapping("/updateAuditStatus/{id}")
    @RequiresPermissions("exhibition:board:cat:update:audit:status")
    @ApiOperation(value = "更新展板分类审核状态", notes = "更新展板分类审核状态")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "标识ID", dataType = "String", paramType = "path"),
            @ApiImplicitParam(name = "status", value = "状态", paramType = "query", dataType = "String")
    })
liqin's avatar
liqin committed
89
    public Map<String, Object> updateStatus(@NotNull(message = "展板分类ID不能为空") @PathVariable("id") String id, @RequestParam("auditStatus") AuditStatusEnum status) {
liqin's avatar
liqin committed
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
        UpdateWrapper<ExhibitionBoardCat> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("id", id);
        updateWrapper.eq("audit_status", status.name());
        boolean flag = exhibitionBoardCatService.update(updateWrapper);
        if (flag) {
            return getSuccessResult();
        }
        return getFailResult();
    }

    @DeleteMapping("/delete/{id}")
    @RequiresPermissions("exhibition:board:cat:delete")
    @ApiOperation(value = "根据ID删除展板分类", notes = "根据ID删除展板分类")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "标识ID", paramType = "path", dataType = "String")
    })
    public Map<String, Object> deleteExhibitionBoardCat(@PathVariable("id") String id) {
liqin's avatar
liqin committed
107
        return getSuccessResult();
liqin's avatar
liqin committed
108 109 110 111 112
    }

    @GetMapping("/getList")
    @RequiresPermissions("exhibition:board:cat:list")
    @ApiOperation(value = "获取展板分类全部列表(无分页)", notes = "获取展板分类全部列表(无分页)")
liqin's avatar
liqin committed
113
    public Map<String, Object> getExhibitionBoardCatList(@RequestParam(value = "auditStatus", required = false) AuditStatusEnum auditStatus) {
liqin's avatar
liqin committed
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
        List<ExhibitionBoardCat> exhibitionBoardCatList = exhibitionBoardCatService.list();
        return getResult(exhibitionBoardCatList);
    }

    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"),
            @ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer"),
            @ApiImplicitParam(name = "nameOrCode", value = "名称或编码", paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "copyrightOwner", value = "版权方", paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "startDate", value = "创建时间-开始", paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "endDate", value = "创建时间-结束", paramType = "query", dataType = "String")
    })
    @PostMapping("/getPageList")
    @RequiresPermissions("exhibition:board:cat:page")
    @ApiOperation(value = "获取展板分类分页列表", notes = "获取展板分类分页列表")
    public Map<String, Object> getExhibitionBoardCatPageList(GenericPageParam genericPageParam) {
        LambdaQueryWrapper<ExhibitionBoardCat> queryWrapper = new LambdaQueryWrapper<>();
        // 对名称或编码模糊查询
        if (StringUtils.isNotBlank(genericPageParam.getNameOrCode())) {
            queryWrapper.like(ExhibitionBoardCat::getName, genericPageParam.getNameOrCode());
        }
        // 根据创建时间区间检索
        if (genericPageParam.getStartDate() != null && genericPageParam.getEndDate() != null) {
            queryWrapper.ge(ExhibitionBoardCat::getCreateTime, genericPageParam.getStartDate().atTime(0, 0, 0))
                    .le(ExhibitionBoardCat::getCreateTime, genericPageParam.getEndDate().atTime(23, 59, 59));
        }
        // 设置排序规则
        queryWrapper.orderByDesc(ExhibitionBoardCat::getCreateTime);
        // 设置查询内容
        queryWrapper.select(
                ExhibitionBoardCat::getId,
                ExhibitionBoardCat::getName,
                ExhibitionBoardCat::getCreateTime,
                ExhibitionBoardCat::getUpdateTime);
        Page<ExhibitionBoardCat> page = this.exhibitionBoardCatService.page(getPage(), queryWrapper);
        for (ExhibitionBoardCat exhibitionBoardCat : page.getRecords()) {
liqin's avatar
liqin committed
150
            LambdaQueryWrapper<ExhibitionBoard> lambdaQueryWrapper = Wrappers.<ExhibitionBoard>lambdaQuery().eq(ExhibitionBoard::getExhibitionBoardCatId, exhibitionBoardCat.getId());
liqin's avatar
liqin committed
151
            List<ExhibitionBoard> exhibitionBoardList = this.exhibitionBoardService.list(lambdaQueryWrapper);
liqin's avatar
liqin committed
152 153 154 155 156 157
            if (!exhibitionBoardList.isEmpty()) {
                Set<String> boardCopyrightOwnerIdList = exhibitionBoardList.stream().map(ExhibitionBoard::getBoardCopyrightOwnerId).collect(Collectors.toSet());
                List<CopyrightOwner> copyrightOwnerList = this.copyrightOwnerService.listByIds(boardCopyrightOwnerIdList);
                String copyrightOwnerNames = copyrightOwnerList.stream().map(CopyrightOwner::getName).collect(Collectors.joining("、"));
                exhibitionBoardCat.setCopyrightOwnerNames(copyrightOwnerNames);
            }
liqin's avatar
liqin committed
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
        }
        return getResult(page);
    }

    @ApiOperation(value = "获取展板分类详情", notes = "获取展板分类详情")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id", value = "标识ID", dataType = "String", paramType = "path")
    })
    @GetMapping("/get/{id}")
    @RequiresPermissions("exhibition:board:cat:get:id")
    public Map<String, Object> getById(@PathVariable("id") String id) {
        ExhibitionBoardCat exhibitionBoardCat = exhibitionBoardCatService.getById(id);
        return getResult(exhibitionBoardCat);
    }

liqin's avatar
liqin committed
173 174
}