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

liqin's avatar
liqin committed
3
import cn.wisenergy.chnmuseum.party.common.enums.*;
wzp's avatar
wzp committed
4 5 6
import cn.wisenergy.chnmuseum.party.common.log.MethodLog;
import cn.wisenergy.chnmuseum.party.common.log.OperModule;
import cn.wisenergy.chnmuseum.party.common.log.OperType;
liqin's avatar
liqin committed
7 8 9
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;
wzp's avatar
wzp committed
10
import cn.wisenergy.chnmuseum.party.model.*;
liqin's avatar
liqin committed
11
import cn.wisenergy.chnmuseum.party.service.*;
liqin's avatar
liqin committed
12
import cn.wisenergy.chnmuseum.party.web.controller.base.BaseController;
liqin's avatar
liqin committed
13
import com.alibaba.fastjson.JSONObject;
liqin's avatar
liqin committed
14 15 16 17 18 19 20 21 22
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
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;
wzp's avatar
wzp committed
23
import org.apache.shiro.authz.annotation.RequiresAuthentication;
liqin's avatar
liqin committed
24 25 26 27
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
liqin's avatar
liqin committed
28
import java.util.Collections;
liqin's avatar
liqin committed
29 30
import java.util.List;
import java.util.Map;
liqin's avatar
liqin committed
31
import java.util.stream.Collectors;
liqin's avatar
liqin committed
32 33

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

liqin's avatar
liqin committed
47 48
    @Resource
    private ExhibitionBoardService exhibitionBoardService;
liqin's avatar
liqin committed
49
    @Resource
liqin's avatar
liqin committed
50 51
    private ExhibitionBoardTmpService exhibitionBoardTmpService;
    @Resource
liqin's avatar
liqin committed
52 53 54
    private ExhibitionBoardCatService exhibitionBoardCatService;
    @Resource
    private CopyrightOwnerService copyrightOwnerService;
liqin's avatar
liqin committed
55
    @Resource
liqin's avatar
liqin committed
56 57
    private VideoContentService videoContentService;
    @Resource
liqin's avatar
liqin committed
58
    private AuditService auditService;
liqin's avatar
liqin committed
59 60
    @Resource
    private AssetService assetService;
liqin's avatar
liqin committed
61 62
    @Resource
    private AssetTmpService assetTmpService;
liqin's avatar
liqin committed
63 64

    @PostMapping("/save")
wzp's avatar
wzp committed
65
    @RequiresAuthentication  //@RequiresPermissions("exhibition:board:save")
liqin's avatar
liqin committed
66
    @ApiOperation(value = "添加展板", notes = "添加展板")
wzp's avatar
wzp committed
67
    @MethodLog(operModule = OperModule.DISPLAYCONTENT, operType = OperType.ADD)
liqin's avatar
liqin committed
68
    public Map<String, Object> saveExhibitionBoard(@Validated(value = {Add.class}) ExhibitionBoard exhibitionBoard) {
wzp's avatar
wzp committed
69
        TUser user = getcurUser();
liqin's avatar
liqin committed
70 71 72
        final List<String> audioIdList = exhibitionBoard.getAudioIdList();
        if (audioIdList == null || audioIdList.isEmpty()) {
            return getFailResult("400", "导览音频文件必须上传");
liqin's avatar
liqin committed
73
        }
liqin's avatar
liqin committed
74 75 76
        final List<String> datumIdList = exhibitionBoard.getDatumIdList();
        if (datumIdList == null || datumIdList.isEmpty()) {
            return getFailResult("400", "参考资料文件必须上传");
liqin's avatar
liqin committed
77 78 79
        }
        exhibitionBoard.setAuditStatus(AuditStatusEnum.TBC.name());
        exhibitionBoard.setPublished(false);
wzp's avatar
wzp committed
80
        exhibitionBoard.setDeleted(false);
liqin's avatar
liqin committed
81 82 83 84
        // 保存业务节点信息
        boolean result = exhibitionBoardService.save(exhibitionBoard);
        // 返回操作结果
        if (result) {
liqin's avatar
liqin committed
85 86 87 88 89 90 91 92 93 94 95 96 97 98
            for (String audioId : audioIdList) {
                final Asset asset = this.assetService.getById(audioId);
                asset.setFileType(FileTypeEnum.AUDIO.name());
                asset.setFileCat(FileCatEnum.EXHIBITION_BOARD_AUDIO.name());
                asset.setRefItemId(exhibitionBoard.getId());
                this.assetService.updateById(asset);
            }
            for (String datumId : datumIdList) {
                final Asset asset = this.assetService.getById(datumId);
                asset.setFileCat(FileCatEnum.EXHIBITION_BOARD_DATUM.name());
                asset.setRefItemId(exhibitionBoard.getId());
                this.assetService.updateById(asset);
            }

liqin's avatar
liqin committed
99 100
            final Audit audit = Audit.builder()
                    .content(exhibitionBoard.getName())
liqin's avatar
liqin committed
101
                    .refItemId(exhibitionBoard.getId())
wzp's avatar
wzp committed
102
                    .userId(user.getId())
liqin's avatar
liqin committed
103 104
                    .type(AuditTypeEnum.EXHIBITION_BOARD.name())
                    .operation(AuditOperationEnum.ADD.name())
liqin's avatar
liqin committed
105
                    .status(AuditStatusEnum.TBC.name())
liqin's avatar
liqin committed
106 107 108
                    .deleted(false)
                    .level(AuditStatusEnum.TBC.name())
                    .build();
liqin's avatar
liqin committed
109
            this.auditService.save(audit);
liqin's avatar
liqin committed
110 111 112 113 114 115 116 117
            return getSuccessResult();
        } else {
            // 保存失败
            return getFailResult();
        }
    }

    @PutMapping("/update")
wzp's avatar
wzp committed
118
    @RequiresAuthentication  //@RequiresPermissions("exhibition:board:update")
liqin's avatar
liqin committed
119
    @ApiOperation(value = "修改展板信息", notes = "修改展板信息")
wzp's avatar
wzp committed
120
    @MethodLog(operModule = OperModule.DISPLAYCONTENT, operType = OperType.UPDATE)
liqin's avatar
liqin committed
121
    public Map<String, Object> updateExhibitionBoard(@Validated(value = {Update.class}) ExhibitionBoard exhibitionBoard) {
liqin's avatar
liqin committed
122
        final boolean flag = this.exhibitionBoardTmpService.save(ExhibitionBoardTmp.builder().id(exhibitionBoard.getId()).data(JSONObject.toJSONString(exhibitionBoard)).build());
liqin's avatar
liqin committed
123
        if (flag) {
liqin's avatar
liqin committed
124 125 126 127
            final ExhibitionBoard one = this.exhibitionBoardService.getById(exhibitionBoard.getId());
            one.setAuditStatus(AuditStatusEnum.TBC.name());
            this.exhibitionBoardService.updateById(one);

liqin's avatar
liqin committed
128 129
            final Audit audit = Audit.builder()
                    .content(exhibitionBoard.getName())
liqin's avatar
liqin committed
130
                    .refItemId(exhibitionBoard.getId())
liqin's avatar
liqin committed
131
                    .userId(getcurUser().getId())
liqin's avatar
liqin committed
132
                    .type(AuditTypeEnum.EXHIBITION_BOARD.name())
liqin's avatar
liqin committed
133 134 135 136
                    .operation(AuditOperationEnum.EDIT.name())
                    .status(AuditStatusEnum.TBC.name())
                    .deleted(false)
                    .level(AuditStatusEnum.TBC.name())
liqin's avatar
liqin committed
137 138
                    .build();
            this.auditService.save(audit);
liqin's avatar
liqin committed
139 140
            return getSuccessResult();
        }
liqin's avatar
liqin committed
141
        return getFailResult("提交失败!上次提交的修改申请已经在审核中");
liqin's avatar
liqin committed
142 143
    }

wzp's avatar
wzp committed
144
    @PostMapping("/getList")
wzp's avatar
wzp committed
145
    @RequiresAuthentication  //@RequiresPermissions("exhibition:board:list")
liqin's avatar
liqin committed
146
    @ApiOperation(value = "获取展板全部列表(无分页)", notes = "获取展板全部列表(无分页)")
wzp's avatar
wzp committed
147
    @MethodLog(operModule = OperModule.DISPLAYCONTENT, operType = OperType.SELECT)
liqin's avatar
liqin committed
148 149 150
    public Map<String, Object> getExhibitionBoardList(
            @RequestParam(value = "exhibitionBoardCatIdList", required = false) List<String> exhibitionBoardCatIdList,
            @RequestParam(value = "boardCopyrightOwnerIdList", required = false) List<String> boardCopyrightOwnerIdList) {
wzp's avatar
wzp committed
151
        final LambdaQueryWrapper<ExhibitionBoard> lambdaQueryWrapper = Wrappers.<ExhibitionBoard>lambdaQuery().eq(ExhibitionBoard::getPublished, true);
liqin's avatar
liqin committed
152 153 154 155 156 157
        if (exhibitionBoardCatIdList != null && !exhibitionBoardCatIdList.isEmpty()) {
            lambdaQueryWrapper.in(ExhibitionBoard::getExhibitionBoardCatId, exhibitionBoardCatIdList);
        }
        if (boardCopyrightOwnerIdList != null && !boardCopyrightOwnerIdList.isEmpty()) {
            lambdaQueryWrapper.in(ExhibitionBoard::getBoardCopyrightOwnerId, boardCopyrightOwnerIdList);
        }
liqin's avatar
liqin committed
158
        lambdaQueryWrapper.orderByDesc(ExhibitionBoard::getCreateTime);
wzp's avatar
wzp committed
159
        List<ExhibitionBoard> exhibitionBoardList = exhibitionBoardService.list(lambdaQueryWrapper);
liqin's avatar
liqin committed
160
        for (ExhibitionBoard exhibitionBoard : exhibitionBoardList) {
liqin's avatar
liqin committed
161
            if (exhibitionBoard.getBoardCopyrightOwnerId() != null) {
liqin's avatar
liqin committed
162 163 164 165 166 167
                final CopyrightOwner copyrightOwner = this.copyrightOwnerService.getById(exhibitionBoard.getBoardCopyrightOwnerId());
                if (copyrightOwner == null) {
                    exhibitionBoard.setBoardCopyrightOwnerName("对应的展板版权方已被删除");
                } else {
                    exhibitionBoard.setBoardCopyrightOwnerName(copyrightOwner.getName());
                }
liqin's avatar
liqin committed
168
            }
liqin's avatar
liqin committed
169
            if (exhibitionBoard.getVideoContentCopyrightOwnerId() != null) {
liqin's avatar
liqin committed
170 171 172 173 174 175
                final CopyrightOwner copyrightOwner = this.copyrightOwnerService.getById(exhibitionBoard.getVideoContentCopyrightOwnerId());
                if (copyrightOwner == null) {
                    exhibitionBoard.setVideoContentCopyrightOwnerName("对应的视频内容版权方已被删除");
                } else {
                    exhibitionBoard.setVideoContentCopyrightOwnerName(copyrightOwner.getName());
                }
liqin's avatar
liqin committed
176
            }
liqin's avatar
liqin committed
177
            if (exhibitionBoard.getExhibitionBoardCatId() != null) {
liqin's avatar
liqin committed
178 179 180 181 182 183
                final ExhibitionBoardCat exhibitionBoardCat = this.exhibitionBoardCatService.getById(exhibitionBoard.getExhibitionBoardCatId());
                if (exhibitionBoardCat == null) {
                    exhibitionBoard.setExhibitionBoardCatName("对应的展板分类已被删除");
                } else {
                    exhibitionBoard.setExhibitionBoardCatName(exhibitionBoardCat.getName());
                }
liqin's avatar
liqin committed
184
            }
liqin's avatar
liqin committed
185 186 187 188 189 190 191 192 193 194 195
            if (exhibitionBoard.getVideoContentId() != null) {
                String videoContentId = exhibitionBoard.getVideoContentId();
                final VideoContent videoContent = this.videoContentService.getById(videoContentId);
                if (videoContent == null) {
                    exhibitionBoard.setVideoList(Collections.emptyList());
                } else {
                    exhibitionBoard.setVideoContentName(videoContent.getName());
                    final List<Asset> videoList = this.assetService.list(Wrappers.<Asset>lambdaQuery().eq(Asset::getRefItemId, videoContentId));
                    exhibitionBoard.setVideoList(videoList);
                }
            }
liqin's avatar
liqin committed
196
        }
liqin's avatar
liqin committed
197 198 199 200 201 202 203 204 205 206 207 208
        return getResult(exhibitionBoardList);
    }

    @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")
wzp's avatar
wzp committed
209
    @RequiresAuthentication  //@RequiresPermissions("exhibition:board:page")
liqin's avatar
liqin committed
210
    @ApiOperation(value = "获取展板分页列表", notes = "获取展板分页列表")
wzp's avatar
wzp committed
211
    @MethodLog(operModule = OperModule.DISPLAYCONTENT, operType = OperType.SELECT)
liqin's avatar
liqin committed
212 213 214 215 216 217 218
    public Map<String, Object> getExhibitionBoardPageList(GenericPageParam genericPageParam) {
        LambdaQueryWrapper<ExhibitionBoard> queryWrapper = new LambdaQueryWrapper<>();
        // 对名称或编码模糊查询
        if (StringUtils.isNotBlank(genericPageParam.getNameOrCode())) {
            queryWrapper.like(ExhibitionBoard::getName, genericPageParam.getNameOrCode());
        }
        // 对版权方模糊查询
liqin's avatar
liqin committed
219
        if (StringUtils.isNotBlank(genericPageParam.getBoardCopyrightOwnerId())) {
liqin's avatar
liqin committed
220
            queryWrapper.eq(ExhibitionBoard::getBoardCopyrightOwnerId, genericPageParam.getBoardCopyrightOwnerId());
liqin's avatar
liqin committed
221
        }
liqin's avatar
liqin committed
222 223 224 225
        // 对版权方模糊查询
        if (StringUtils.isNotBlank(genericPageParam.getExhibitionBoardCatId())) {
            queryWrapper.eq(ExhibitionBoard::getExhibitionBoardCatId, genericPageParam.getExhibitionBoardCatId());
        }
liqin's avatar
liqin committed
226 227 228 229 230 231 232 233 234 235 236
        // 根据创建时间区间检索
        if (genericPageParam.getStartDate() != null && genericPageParam.getEndDate() != null) {
            queryWrapper.ge(ExhibitionBoard::getCreateTime, genericPageParam.getStartDate().atTime(0, 0, 0))
                    .le(ExhibitionBoard::getCreateTime, genericPageParam.getEndDate().atTime(23, 59, 59));
        }
        // 设置排序规则
        queryWrapper.orderByDesc(ExhibitionBoard::getCreateTime);
        // 设置查询内容
        queryWrapper.select(
                ExhibitionBoard::getId,
                ExhibitionBoard::getName,
liqin's avatar
liqin committed
237 238
                ExhibitionBoard::getRemarks,
                ExhibitionBoard::getQrcodeUrl,
liqin's avatar
liqin committed
239 240
                ExhibitionBoard::getAuditStatus,
                ExhibitionBoard::getPublished,
liqin's avatar
liqin committed
241
                ExhibitionBoard::getDeleted,
liqin's avatar
liqin committed
242
                ExhibitionBoard::getVideoContentCopyrightOwnerId,
liqin's avatar
liqin committed
243
                ExhibitionBoard::getExhibitionBoardCatId,
liqin's avatar
liqin committed
244 245
                ExhibitionBoard::getBoardCopyrightOwnerId,
                ExhibitionBoard::getVideoContentId,
liqin's avatar
liqin committed
246 247 248 249
                ExhibitionBoard::getCreateTime,
                ExhibitionBoard::getUpdateTime);
        Page<ExhibitionBoard> page = this.exhibitionBoardService.page(getPage(), queryWrapper);
        for (ExhibitionBoard exhibitionBoard : page.getRecords()) {
liqin's avatar
liqin committed
250
            if (exhibitionBoard.getBoardCopyrightOwnerId() != null) {
liqin's avatar
liqin committed
251 252 253 254 255 256
                final CopyrightOwner copyrightOwner = this.copyrightOwnerService.getById(exhibitionBoard.getBoardCopyrightOwnerId());
                if (copyrightOwner == null) {
                    exhibitionBoard.setBoardCopyrightOwnerName("对应的展板版权方已被删除");
                } else {
                    exhibitionBoard.setBoardCopyrightOwnerName(copyrightOwner.getName());
                }
liqin's avatar
liqin committed
257
            }
liqin's avatar
liqin committed
258
            if (exhibitionBoard.getVideoContentCopyrightOwnerId() != null) {
liqin's avatar
liqin committed
259 260 261 262 263 264
                final CopyrightOwner copyrightOwner = this.copyrightOwnerService.getById(exhibitionBoard.getVideoContentCopyrightOwnerId());
                if (copyrightOwner == null) {
                    exhibitionBoard.setVideoContentCopyrightOwnerName("对应的视频内容版权方已被删除");
                } else {
                    exhibitionBoard.setVideoContentCopyrightOwnerName(copyrightOwner.getName());
                }
liqin's avatar
liqin committed
265
            }
liqin's avatar
liqin committed
266
            if (exhibitionBoard.getExhibitionBoardCatId() != null) {
liqin's avatar
liqin committed
267 268 269 270 271 272
                final ExhibitionBoardCat exhibitionBoardCat = this.exhibitionBoardCatService.getById(exhibitionBoard.getExhibitionBoardCatId());
                if (exhibitionBoardCat == null) {
                    exhibitionBoard.setExhibitionBoardCatName("对应的展板分类已被删除");
                } else {
                    exhibitionBoard.setExhibitionBoardCatName(exhibitionBoardCat.getName());
                }
liqin's avatar
liqin committed
273
            }
liqin's avatar
liqin committed
274
            if (exhibitionBoard.getVideoContentId() != null) {
liqin's avatar
liqin committed
275 276
                String videoContentId = exhibitionBoard.getVideoContentId();
                final VideoContent videoContent = this.videoContentService.getById(videoContentId);
liqin's avatar
liqin committed
277
                if (videoContent == null) {
liqin's avatar
liqin committed
278
                    exhibitionBoard.setVideoContentName("对应的视频内容已被删除");
liqin's avatar
liqin committed
279 280
                } else {
                    exhibitionBoard.setVideoContentName(videoContent.getName());
liqin's avatar
liqin committed
281
                    final List<Asset> videoList = this.assetService.list(Wrappers.<Asset>lambdaQuery().eq(Asset::getRefItemId, videoContentId));
liqin's avatar
liqin committed
282
                    exhibitionBoard.setVideoList(videoList);
liqin's avatar
liqin committed
283
                }
liqin's avatar
liqin committed
284
            }
liqin's avatar
liqin committed
285 286 287 288 289 290 291 292 293
        }
        return getResult(page);
    }

    @ApiOperation(value = "获取展板详情", notes = "获取展板详情")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id", value = "标识ID", dataType = "String", paramType = "path")
    })
    @GetMapping("/get/{id}")
wzp's avatar
wzp committed
294
    @RequiresAuthentication  //@RequiresPermissions("exhibition:board:get:id")
wzp's avatar
wzp committed
295
    @MethodLog(operModule = OperModule.DISPLAYCONTENT, operType = OperType.SELECT)
liqin's avatar
liqin committed
296 297
    public Map<String, Object> getById(@PathVariable("id") String id) {
        ExhibitionBoard exhibitionBoard = exhibitionBoardService.getById(id);
liqin's avatar
liqin committed
298 299 300 301 302 303 304 305
        String exhibitionBoardCatId = exhibitionBoard.getExhibitionBoardCatId();
        if (exhibitionBoardCatId != null) {
            exhibitionBoard.setExhibitionBoardCatName(this.exhibitionBoardCatService.getById(exhibitionBoardCatId).getName());
        }
        String boardCopyrightOwnerId = exhibitionBoard.getBoardCopyrightOwnerId();
        if (boardCopyrightOwnerId != null) {
            exhibitionBoard.setBoardCopyrightOwnerName(this.copyrightOwnerService.getById(boardCopyrightOwnerId).getName());
        }
liqin's avatar
liqin committed
306 307 308
        if (exhibitionBoard.getVideoContentCopyrightOwnerId() != null) {
            String name = this.copyrightOwnerService.getById(exhibitionBoard.getVideoContentCopyrightOwnerId()).getName();
            exhibitionBoard.setVideoContentCopyrightOwnerName(name);
liqin's avatar
liqin committed
309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337
        }

        LambdaQueryWrapper<Asset> assetQueryWrapper = Wrappers.<Asset>lambdaQuery().eq(Asset::getRefItemId, exhibitionBoard.getId());
        assetQueryWrapper.eq(Asset::getFileCat, FileCatEnum.EXHIBITION_BOARD_AUDIO.name());
        final List<Asset> audioList = this.assetService.list(assetQueryWrapper);
        exhibitionBoard.setAudioList(audioList);
        exhibitionBoard.setAudioIdList(audioList.stream().map(Asset::getId).collect(Collectors.toList()));

        assetQueryWrapper.clear();
        assetQueryWrapper = Wrappers.<Asset>lambdaQuery().eq(Asset::getRefItemId, exhibitionBoard.getId());
        assetQueryWrapper.eq(Asset::getFileCat, FileCatEnum.EXHIBITION_BOARD_DATUM.name());
        final List<Asset> datumList = this.assetService.list(assetQueryWrapper);
        exhibitionBoard.setDatumList(datumList);
        exhibitionBoard.setDatumIdList(datumList.stream().map(Asset::getId).collect(Collectors.toList()));

        final String videoContentId = exhibitionBoard.getVideoContentId();
        if (videoContentId != null) {
            final VideoContent videoContent = this.videoContentService.getById(videoContentId);
            exhibitionBoard.setVideoContentName(videoContent.getName());

            assetQueryWrapper.clear();
            assetQueryWrapper = Wrappers.<Asset>lambdaQuery().eq(Asset::getRefItemId, videoContentId);
            assetQueryWrapper.eq(Asset::getFileCat, FileCatEnum.VIDEO_CONTENT.name());
            final List<Asset> videoList = this.assetService.list(assetQueryWrapper);
            exhibitionBoard.setVideoList(videoList);
        }
        return getResult(exhibitionBoard);
    }

liqin's avatar
liqin committed
338
    @ApiOperation(value = "获取展板详情(审核详情使用)", notes = "获取展板详情(审核详情使用)")
liqin's avatar
liqin committed
339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id", value = "标识ID", dataType = "String", paramType = "path", required = true)
    })
    @GetMapping("/getAudit/{id}")
    @RequiresAuthentication  //@RequiresPermissions("video:content:get:id")
    @MethodLog(operModule = OperModule.VIDEOCONTENT, operType = OperType.SELECT)
    public Map<String, Object> getAuditInfoById(@PathVariable("id") String id) {
        final ExhibitionBoard exhibitionBoard = JSONObject.parseObject(exhibitionBoardTmpService.getById(id).getData(), ExhibitionBoard.class);
        String exhibitionBoardCatId = exhibitionBoard.getExhibitionBoardCatId();
        if (exhibitionBoardCatId != null) {
            exhibitionBoard.setExhibitionBoardCatName(this.exhibitionBoardCatService.getById(exhibitionBoardCatId).getName());
        }
        String boardCopyrightOwnerId = exhibitionBoard.getBoardCopyrightOwnerId();
        if (boardCopyrightOwnerId != null) {
            exhibitionBoard.setBoardCopyrightOwnerName(this.copyrightOwnerService.getById(boardCopyrightOwnerId).getName());
        }
        if (exhibitionBoard.getVideoContentCopyrightOwnerId() != null) {
            String name = this.copyrightOwnerService.getById(exhibitionBoard.getVideoContentCopyrightOwnerId()).getName();
            exhibitionBoard.setVideoContentCopyrightOwnerName(name);
liqin's avatar
liqin committed
358
        }
liqin's avatar
liqin committed
359

liqin's avatar
liqin committed
360 361 362 363 364
        LambdaQueryWrapper<AssetTmp> assetTmpQueryWrapper = Wrappers.<AssetTmp>lambdaQuery().eq(AssetTmp::getRefItemId, exhibitionBoard.getId());
        assetTmpQueryWrapper.eq(AssetTmp::getFileCat, FileCatEnum.EXHIBITION_BOARD_AUDIO.name());
        final List<AssetTmp> audioTmpList = this.assetTmpService.list(assetTmpQueryWrapper);
        exhibitionBoard.setAudioTmpList(audioTmpList);
        exhibitionBoard.setAudioIdList(audioTmpList.stream().map(AssetTmp::getId).collect(Collectors.toList()));
liqin's avatar
liqin committed
365

liqin's avatar
liqin committed
366 367 368 369 370 371
        assetTmpQueryWrapper.clear();
        assetTmpQueryWrapper = Wrappers.<AssetTmp>lambdaQuery().eq(AssetTmp::getRefItemId, exhibitionBoard.getId());
        assetTmpQueryWrapper.eq(AssetTmp::getFileCat, FileCatEnum.EXHIBITION_BOARD_DATUM.name());
        final List<AssetTmp> datumTmpList = this.assetTmpService.list(assetTmpQueryWrapper);
        exhibitionBoard.setDatumTmpList(datumTmpList);
        exhibitionBoard.setDatumIdList(datumTmpList.stream().map(AssetTmp::getId).collect(Collectors.toList()));
liqin's avatar
liqin committed
372

liqin's avatar
liqin committed
373 374 375 376 377 378 379 380 381 382 383 384 385
        final LambdaQueryWrapper<Audit> auditQueryWrapper = Wrappers.<Audit>lambdaQuery().eq(Audit::getRefItemId, id);
        auditQueryWrapper.select(Audit::getContent);
        auditQueryWrapper.select(Audit::getType);
        auditQueryWrapper.select(Audit::getOperation);
        auditQueryWrapper.select(Audit::getStatus);
        auditQueryWrapper.select(Audit::getFirstTime);
        auditQueryWrapper.select(Audit::getFirstRemarks);
        auditQueryWrapper.select(Audit::getSecondTime);
        auditQueryWrapper.select(Audit::getSecondTime);
        auditQueryWrapper.select(Audit::getLevel);
        final List<Audit> auditList = this.auditService.list(auditQueryWrapper);
        exhibitionBoard.setAuditHistoryList(auditList);

liqin's avatar
liqin committed
386 387 388 389
        final String videoContentId = exhibitionBoard.getVideoContentId();
        if (videoContentId != null) {
            final VideoContent videoContent = this.videoContentService.getById(videoContentId);
            exhibitionBoard.setVideoContentName(videoContent.getName());
liqin's avatar
liqin committed
390

liqin's avatar
liqin committed
391 392 393
            final LambdaQueryWrapper<Asset> lambdaQueryWrapper = Wrappers.<Asset>lambdaQuery().eq(Asset::getRefItemId, videoContentId);
            lambdaQueryWrapper.eq(Asset::getFileCat, FileCatEnum.VIDEO_CONTENT.name());
            final List<Asset> videoList = this.assetService.list(lambdaQueryWrapper);
liqin's avatar
liqin committed
394
            exhibitionBoard.setVideoList(videoList);
liqin's avatar
liqin committed
395
        }
liqin's avatar
liqin committed
396 397 398
        return getResult(exhibitionBoard);
    }

liqin's avatar
liqin committed
399 400 401
    @ApiOperation(value = "上架/下架展板内容", notes = "上架/下架展板内容")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id", value = "标识ID", dataType = "String", paramType = "path"),
liqin's avatar
liqin committed
402
            @ApiImplicitParam(name = "isPublish", value = "是否上架", dataType = "boolean", paramType = "query", allowableValues = "True, False")
liqin's avatar
liqin committed
403 404
    })
    @PutMapping("/publish/{id}")
wzp's avatar
wzp committed
405
    @RequiresAuthentication  //@RequiresPermissions("exhibition:board:publish")
wzp's avatar
wzp committed
406
    @MethodLog(operModule = OperModule.DISPLAYCONTENT, operType = OperType.UPPER)
liqin's avatar
liqin committed
407
    public Map<String, Object> enableExhibitionBoard(@PathVariable("id") String id, @RequestParam("isPublish") Boolean isPublish) {
wzp's avatar
wzp committed
408
        TUser user = getcurUser();
liqin's avatar
liqin committed
409
        final Audit audit = Audit.builder()
wzp's avatar
wzp committed
410
                .userId(user.getId())
liqin's avatar
liqin committed
411
                .content(this.exhibitionBoardService.getById(id).getName())
liqin's avatar
liqin committed
412
                .refItemId(id)
liqin's avatar
liqin committed
413
                .type(AuditTypeEnum.EXHIBITION_BOARD.name())
wzp's avatar
wzp committed
414
                .operation(isPublish ? AuditOperationEnum.UPPER.name() : AuditOperationEnum.LOWER.name())
liqin's avatar
liqin committed
415
                .status(AuditStatusEnum.TBC.name())
liqin's avatar
liqin committed
416
                .deleted(false)
liqin's avatar
liqin committed
417
                .level(AuditStatusEnum.TBC.name())
liqin's avatar
liqin committed
418
                .build();
liqin's avatar
liqin committed
419
        this.auditService.save(audit);
liqin's avatar
liqin committed
420
        this.exhibitionBoardService.updateById(ExhibitionBoard.builder().id(id).auditStatus(AuditStatusEnum.TBC.name()).build());
liqin's avatar
liqin committed
421 422 423
        return getSuccessResult();
    }

liqin's avatar
liqin committed
424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449
    @DeleteMapping("/delete/{id}")
    @RequiresAuthentication  //@RequiresPermissions("exhibition:board:delete")
    @ApiOperation(value = "根据ID删除展板", notes = "根据ID删除展板")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "标识ID", paramType = "path", dataType = "String")
    })
    @MethodLog(operModule = OperModule.DISPLAYCONTENT, operType = OperType.DELETE)
    public Map<String, Object> deleteExhibitionBoard(@PathVariable("id") String id) {
        TUser user = getcurUser();
        final Audit audit = Audit.builder()
                .content(this.exhibitionBoardService.getById(id).getName())
                .userId(user.getId())
                .refItemId(id)
                .type(AuditTypeEnum.EXHIBITION_BOARD.name())
                .operation(AuditOperationEnum.REMOVE.name())
                .status(AuditStatusEnum.TBC.name())
                .deleted(false)
                .level(AuditStatusEnum.TBC.name())
                .build();
        final boolean result = this.auditService.save(audit);
        if (result) {
            return getSuccessResult();
        }
        return getFailResult();
    }

liqin's avatar
liqin committed
450 451
}