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

liqin's avatar
liqin committed
3 4 5 6
import cn.chnmuseum.party.common.enums.*;
import cn.chnmuseum.party.common.log.MethodLog;
import cn.chnmuseum.party.common.log.OperModule;
import cn.chnmuseum.party.common.log.OperType;
7
import cn.chnmuseum.party.common.util.PinYinUtil;
liqin's avatar
liqin committed
8 9 10 11 12 13
import cn.chnmuseum.party.common.validator.groups.Add;
import cn.chnmuseum.party.common.validator.groups.Update;
import cn.chnmuseum.party.common.vo.GenericPageParam;
import cn.chnmuseum.party.model.*;
import cn.chnmuseum.party.service.*;
import cn.chnmuseum.party.web.controller.base.BaseController;
14
import cn.hutool.core.collection.CollectionUtil;
liqin's avatar
liqin committed
15
import com.alibaba.fastjson.JSONObject;
liqin's avatar
liqin committed
16
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
17
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
18 19
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
20
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
liqin's avatar
liqin committed
21 22 23 24 25 26 27 28
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
29
import org.apache.shiro.authz.annotation.RequiresAuthentication;
30
import org.springframework.transaction.annotation.Transactional;
liqin's avatar
liqin committed
31 32 33 34
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
35
import javax.validation.constraints.NotBlank;
36
import java.time.LocalDateTime;
37
import java.util.*;
liqin's avatar
liqin committed
38
import java.util.stream.Collectors;
liqin's avatar
liqin committed
39 40

/**
liqin's avatar
liqin committed
41
 * <pre>
liqin's avatar
liqin committed
42
 * 展板 前端控制器
liqin's avatar
liqin committed
43
 * </pre>
liqin's avatar
liqin committed
44 45
 *
 * @author Danny Lee
liqin's avatar
liqin committed
46
 * @since 2021-03-19
liqin's avatar
liqin committed
47
 */
liqin's avatar
liqin committed
48
@Slf4j
liqin's avatar
liqin committed
49
@RestController
liqin's avatar
liqin committed
50 51
@RequestMapping("/exhibitionBoard")
@Api(tags = {"展板操作接口"})
liqin's avatar
liqin committed
52 53
public class ExhibitionBoardController extends BaseController {

liqin's avatar
liqin committed
54 55
    @Resource
    private ExhibitionBoardService exhibitionBoardService;
liqin's avatar
liqin committed
56 57 58 59
    @Resource
    private ExhibitionBoardCatService exhibitionBoardCatService;
    @Resource
    private CopyrightOwnerService copyrightOwnerService;
liqin's avatar
liqin committed
60
    @Resource
liqin's avatar
liqin committed
61 62
    private VideoContentService videoContentService;
    @Resource
liqin's avatar
liqin committed
63
    private AuditService auditService;
liqin's avatar
liqin committed
64 65
    @Resource
    private AssetService assetService;
66 67 68 69
    @Resource
    private LearningContentBoardService learningContentBoardService;
    @Resource
    private LearningContentService learningContentService;
liqin's avatar
liqin committed
70 71

    @PostMapping("/save")
wzp's avatar
wzp committed
72
    @RequiresAuthentication  //@RequiresPermissions("exhibition:board:save")
liqin's avatar
liqin committed
73
    @ApiOperation(value = "添加展板", notes = "添加展板")
wzp's avatar
wzp committed
74
    @MethodLog(operModule = OperModule.DISPLAYCONTENT, operType = OperType.ADD)
75
    @Transactional
liqin's avatar
liqin committed
76
    public Map<String, Object> saveExhibitionBoard(@Validated(value = {Add.class}) ExhibitionBoard exhibitionBoard) {
liqin's avatar
liqin committed
77 78 79 80 81 82
        final LambdaQueryWrapper<ExhibitionBoard> lambdaQueryWrapper = Wrappers.<ExhibitionBoard>lambdaQuery().eq(ExhibitionBoard::getName, exhibitionBoard.getName().trim());
        final int count = this.exhibitionBoardService.count(lambdaQueryWrapper);
        if (count > 0) {
            return getFailResult("400", "名称已存在,请修改名称");
        }

wzp's avatar
wzp committed
83
        TUser user = getcurUser();
84 85 86 87
        // 6.24 需求变更:新建展板除名称以外其余都可为空
         List<String> audioIdList = exhibitionBoard.getAudioIdList();
        if (CollectionUtil.isEmpty(exhibitionBoard.getAudioIdList())) {
            audioIdList = Collections.emptyList();
liqin's avatar
liqin committed
88
        }
89 90 91 92 93 94
//        if (audioIdList == null || audioIdList.isEmpty()) {
//            return getFailResult("400", "导览音频文件必须上传");
//        }
        List<String> datumIdList = exhibitionBoard.getDatumIdList();
        if (CollectionUtil.isEmpty(datumIdList)) {
            datumIdList = Collections.emptyList();
liqin's avatar
liqin committed
95
        }
96 97 98 99 100
//        if (datumIdList == null || datumIdList.isEmpty()) {
//            return getFailResult("400", "参考资料文件必须上传");
//        }


liqin's avatar
liqin committed
101 102
        exhibitionBoard.setAuditStatus(AuditStatusEnum.TBC.name());
        exhibitionBoard.setPublished(false);
wzp's avatar
wzp committed
103
        exhibitionBoard.setDeleted(false);
104 105
        //填充拼音
        fillPinYin(exhibitionBoard);
liqin's avatar
liqin committed
106 107 108 109
        // 保存业务节点信息
        boolean result = exhibitionBoardService.save(exhibitionBoard);
        // 返回操作结果
        if (result) {
liqin's avatar
liqin committed
110 111 112 113 114 115 116 117 118 119 120 121 122 123
            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
124 125
            final Audit audit = Audit.builder()
                    .content(exhibitionBoard.getName())
liqin's avatar
liqin committed
126
                    .name(exhibitionBoard.getName())
liqin's avatar
liqin committed
127
                    .refItemId(exhibitionBoard.getId())
wzp's avatar
wzp committed
128
                    .userId(user.getId())
liqin's avatar
liqin committed
129
                    .organId(user.getOrgId())
liqin's avatar
liqin committed
130 131
                    .type(AuditTypeEnum.EXHIBITION_BOARD.name())
                    .operation(AuditOperationEnum.ADD.name())
liqin's avatar
liqin committed
132
                    .status(AuditStatusEnum.TBC.name())
liqin's avatar
liqin committed
133 134
                    .level(AuditStatusEnum.TBC.name())
                    .build();
liqin's avatar
liqin committed
135
            this.auditService.save(audit);
liqin's avatar
liqin committed
136 137 138 139 140 141 142
            return getSuccessResult();
        } else {
            // 保存失败
            return getFailResult();
        }
    }

143 144 145 146 147 148 149 150 151 152 153 154 155 156
    /**
     * 展板加上中文拼音,用于拼音或拼音首字母搜索
     *
     * @param exhibitionBoard
     */
    private void fillPinYin(ExhibitionBoard exhibitionBoard) {
        String name = exhibitionBoard.getName();
        if (StringUtils.isBlank(name)) {
            return;
        }
        exhibitionBoard.setNamePinYin(PinYinUtil.getPinYin(name, Boolean.FALSE, Boolean.FALSE));
        exhibitionBoard.setNameFirstPinYin(PinYinUtil.getPinYin(name, Boolean.TRUE, Boolean.FALSE));
    }

liqin's avatar
liqin committed
157
    @PutMapping("/update")
wzp's avatar
wzp committed
158
    @RequiresAuthentication  //@RequiresPermissions("exhibition:board:update")
liqin's avatar
liqin committed
159
    @ApiOperation(value = "修改展板信息", notes = "修改展板信息")
wzp's avatar
wzp committed
160
    @MethodLog(operModule = OperModule.DISPLAYCONTENT, operType = OperType.UPDATE)
161
    @Transactional
liqin's avatar
liqin committed
162
    public Map<String, Object> updateExhibitionBoard(@Validated(value = {Update.class}) ExhibitionBoard exhibitionBoard) {
liqin's avatar
liqin committed
163 164 165 166 167 168
        final LambdaQueryWrapper<ExhibitionBoard> lambdaQueryWrapper = Wrappers.<ExhibitionBoard>lambdaQuery().eq(ExhibitionBoard::getName, exhibitionBoard.getName().trim());
        lambdaQueryWrapper.ne(ExhibitionBoard::getId, exhibitionBoard.getId());
        final int count = this.exhibitionBoardService.count(lambdaQueryWrapper);
        if (count > 0) {
            return getFailResult("400", "名称已存在,请修改名称");
        }
169 170
         List<String> audioIdList = exhibitionBoard.getAudioIdList();
        if (CollectionUtil.isEmpty(audioIdList)) {
nie'hong's avatar
nie'hong committed
171
            audioIdList = new ArrayList<>();
liqin's avatar
liqin committed
172
        }
173 174 175 176 177
//        if (audioIdList == null || audioIdList.isEmpty()) {
//            return getFailResult("400", "导览音频文件必须上传");
//        }
        List<String> datumIdList = exhibitionBoard.getDatumIdList();
        if (CollectionUtil.isEmpty(datumIdList)) {
nie'hong's avatar
nie'hong committed
178
            audioIdList = new ArrayList<>();
liqin's avatar
liqin committed
179
        }
180 181 182
//        if (datumIdList == null || datumIdList.isEmpty()) {
//            return getFailResult("400", "参考资料文件必须上传");
//        }
183 184
        // 2021-05-31修改前
//        removeNotInIds(audioIdList,exhibitionBoard.getId());
185

liqin's avatar
liqin committed
186 187 188 189 190 191 192 193 194
        for (String audioId : audioIdList) {
            final Asset asset = this.assetService.getById(audioId);
            if (asset.getPublished()) {
                asset.setFileType(FileTypeEnum.AUDIO.name());
                asset.setFileCat(FileCatEnum.EXHIBITION_BOARD_AUDIO.name());
                asset.setRefItemId(exhibitionBoard.getId());
                this.assetService.updateById(asset);
            }
        }
195 196
        // 2021-05-31修改前
//        removeNotInIds(audioIdList,exhibitionBoard.getId());
197

liqin's avatar
liqin committed
198 199
        for (String datumId : datumIdList) {
            final Asset asset = this.assetService.getById(datumId);
200
            if (asset == null) {
201 202
                continue;
            }
liqin's avatar
liqin committed
203 204 205 206 207 208
            if (asset.getPublished()) {
                asset.setFileCat(FileCatEnum.EXHIBITION_BOARD_DATUM.name());
                asset.setRefItemId(exhibitionBoard.getId());
                this.assetService.updateById(asset);
            }
        }
209 210
        // 2021-05-31修改后
        audioIdList.addAll(datumIdList);
211 212 213
        if (CollectionUtil.isNotEmpty(audioIdList)) {
            removeNotInIds(audioIdList, exhibitionBoard.getId());
        }
liqin's avatar
liqin committed
214

liqin's avatar
liqin committed
215 216
        final ExhibitionBoard one = this.exhibitionBoardService.getById(exhibitionBoard.getId());
        one.setAuditStatus(AuditStatusEnum.TBC.name());
217 218
        //填充拼音
        fillPinYin(one);
liqin's avatar
liqin committed
219
        this.exhibitionBoardService.updateById(one);
liqin's avatar
liqin committed
220

liqin's avatar
liqin committed
221
        final TUser user = getcurUser();
liqin's avatar
liqin committed
222 223
        final Audit audit = Audit.builder()
                .content(exhibitionBoard.getName())
liqin's avatar
liqin committed
224
                .name(exhibitionBoard.getName())
liqin's avatar
liqin committed
225
                .refItemId(exhibitionBoard.getId())
liqin's avatar
liqin committed
226 227
                .userId(user.getId())
                .organId(user.getOrgId())
liqin's avatar
liqin committed
228 229 230 231 232 233 234 235
                .type(AuditTypeEnum.EXHIBITION_BOARD.name())
                .operation(AuditOperationEnum.EDIT.name())
                .status(AuditStatusEnum.TBC.name())
                .level(AuditStatusEnum.TBC.name())
                .modelData(JSONObject.toJSONString(exhibitionBoard))
                .build();
        this.auditService.save(audit);
        return getSuccessResult();
liqin's avatar
liqin committed
236 237
    }

238 239 240 241 242
    /**
     * 修改展板时,不在这个id集合李淼的 代表是要删除的
     *
     * @param assetIds
     */
243
    public void removeNotInIds(List<String> assetIds, String refItemId) {
244 245 246 247 248 249
        LambdaQueryWrapper<Asset> assetWrapper = new QueryWrapper<Asset>().lambda()
                .eq(Asset::getRefItemId, refItemId)
                .notIn(Asset::getId, assetIds);
        boolean remove = assetService.remove(assetWrapper);
    }

250 251 252 253
    @PostMapping("/getListByLearningId")
    @RequiresAuthentication  //@RequiresPermissions("exhibition:board:list")
    @ApiOperation(value = "根据学习项目获取展板全部列表(无分页)", notes = "根据学习项目获取展板全部列表(无分页)")
    @MethodLog(operModule = OperModule.DISPLAYCONTENT, operType = OperType.SELECT)
254
    public Map<String, Object> getExhibitionBoardList(String learningProjectId, @RequestParam(value = "exhibitionBoardCatIdList") List<String> boardCatIds) {
255
        if (StringUtils.isEmpty(learningProjectId)) {
256 257 258 259
            return getFailResult("学习项目不能为空!");
        }
        if (CollectionUtils.isEmpty(boardCatIds)) {
            return getFailResult("请选择展板分类!");
260 261 262 263 264 265 266 267 268 269 270 271 272
        }
        // 查询该学习项目的主要学习内容
        LambdaQueryWrapper<LearningContent> lambdaQueryWrapper = Wrappers.<LearningContent>lambdaQuery();
        lambdaQueryWrapper.eq(LearningContent::getLearningProjectId, learningProjectId);
        lambdaQueryWrapper.eq(LearningContent::getIsMajor, true);
        LearningContent one = this.learningContentService.getOne(lambdaQueryWrapper);

        // 查询主要学习内容的展板id
        final LambdaQueryWrapper<LearningContentBoard> learningContentBoardLambdaQueryWrapper = Wrappers.<LearningContentBoard>lambdaQuery();
        learningContentBoardLambdaQueryWrapper.eq(LearningContentBoard::getLearningContentId, one.getId());
        List<LearningContentBoard> list = this.learningContentBoardService.list(learningContentBoardLambdaQueryWrapper);
        List<String> boardId = list.stream().map(LearningContentBoard::getExhibitionBoardId).collect(Collectors.toList());

273 274
        // 查询在指定展板分类下的展板信息
        LambdaQueryWrapper<ExhibitionBoard> lambdaQuery = Wrappers.<ExhibitionBoard>lambdaQuery();
275
        lambdaQuery.eq(ExhibitionBoard::getPublished, true);
276 277 278
        lambdaQuery.in(ExhibitionBoard::getExhibitionBoardCatId, boardCatIds);
        lambdaQuery.in(ExhibitionBoard::getId, boardId);
        List<ExhibitionBoard> exhibitionBoardList = exhibitionBoardService.list(lambdaQuery);
279
        for (ExhibitionBoard exhibitionBoard : exhibitionBoardList) {
280 281
            // 展板版权方信息
            if (StringUtils.isNotEmpty(exhibitionBoard.getBoardCopyrightOwnerId())) {
282 283 284 285 286 287
                final CopyrightOwner copyrightOwner = this.copyrightOwnerService.getById(exhibitionBoard.getBoardCopyrightOwnerId());
                if (copyrightOwner == null) {
                    exhibitionBoard.setBoardCopyrightOwnerName("对应的展板版权方已被删除");
                } else {
                    exhibitionBoard.setBoardCopyrightOwnerName(copyrightOwner.getName());
                }
288 289
            }else{
                exhibitionBoard.setBoardCopyrightOwnerName("无");
290
            }
291 292 293

            // 视频版权方信息
            if (StringUtils.isNotEmpty(exhibitionBoard.getVideoContentCopyrightOwnerId())) {
294 295 296 297 298 299
                final CopyrightOwner copyrightOwner = this.copyrightOwnerService.getById(exhibitionBoard.getVideoContentCopyrightOwnerId());
                if (copyrightOwner == null) {
                    exhibitionBoard.setVideoContentCopyrightOwnerName("对应的视频内容版权方已被删除");
                } else {
                    exhibitionBoard.setVideoContentCopyrightOwnerName(copyrightOwner.getName());
                }
300 301
            }else {
                exhibitionBoard.setVideoContentCopyrightOwnerName("无");
302
            }
303 304 305

            // 展板分类信息
            if (StringUtils.isNotEmpty(exhibitionBoard.getExhibitionBoardCatId())) {
306 307 308 309 310 311
                final ExhibitionBoardCat exhibitionBoardCat = this.exhibitionBoardCatService.getById(exhibitionBoard.getExhibitionBoardCatId());
                if (exhibitionBoardCat == null) {
                    exhibitionBoard.setExhibitionBoardCatName("对应的展板分类已被删除");
                } else {
                    exhibitionBoard.setExhibitionBoardCatName(exhibitionBoardCat.getName());
                }
312 313
            }else {
                exhibitionBoard.setExhibitionBoardCatName("无");
314
            }
315 316 317

            // 展板对应的视频内容
            if (StringUtils.isNotEmpty(exhibitionBoard.getVideoContentId())) {
318 319 320 321 322 323 324 325 326
                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).eq(Asset::getPublished, true));
                    exhibitionBoard.setVideoList(videoList);
                }
327 328 329
            }else {
                exhibitionBoard.setVideoContentName("无");
                exhibitionBoard.setVideoList(Collections.emptyList());
330 331 332 333 334
            }
        }
        return getResult(exhibitionBoardList);
    }

wzp's avatar
wzp committed
335
    @PostMapping("/getList")
wzp's avatar
wzp committed
336
    @RequiresAuthentication  //@RequiresPermissions("exhibition:board:list")
liqin's avatar
liqin committed
337
    @ApiOperation(value = "获取展板全部列表(无分页)", notes = "获取展板全部列表(无分页)")
wzp's avatar
wzp committed
338
    @MethodLog(operModule = OperModule.DISPLAYCONTENT, operType = OperType.SELECT)
liqin's avatar
liqin committed
339 340 341
    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
342
        final LambdaQueryWrapper<ExhibitionBoard> lambdaQueryWrapper = Wrappers.<ExhibitionBoard>lambdaQuery().eq(ExhibitionBoard::getPublished, true);
liqin's avatar
liqin committed
343 344 345 346 347 348
        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
349
        lambdaQueryWrapper.orderByDesc(ExhibitionBoard::getCreateTime);
wzp's avatar
wzp committed
350
        List<ExhibitionBoard> exhibitionBoardList = exhibitionBoardService.list(lambdaQueryWrapper);
liqin's avatar
liqin committed
351
        for (ExhibitionBoard exhibitionBoard : exhibitionBoardList) {
352 353
            // 展板版权方信息
            if (StringUtils.isNotEmpty(exhibitionBoard.getBoardCopyrightOwnerId())) {
liqin's avatar
liqin committed
354 355 356 357 358 359
                final CopyrightOwner copyrightOwner = this.copyrightOwnerService.getById(exhibitionBoard.getBoardCopyrightOwnerId());
                if (copyrightOwner == null) {
                    exhibitionBoard.setBoardCopyrightOwnerName("对应的展板版权方已被删除");
                } else {
                    exhibitionBoard.setBoardCopyrightOwnerName(copyrightOwner.getName());
                }
360 361
            }else{
                exhibitionBoard.setBoardCopyrightOwnerName("无");
liqin's avatar
liqin committed
362
            }
363 364 365

            // 展板对应视频版权方信息
            if (StringUtils.isNotEmpty(exhibitionBoard.getVideoContentCopyrightOwnerId())) {
liqin's avatar
liqin committed
366 367 368 369 370 371
                final CopyrightOwner copyrightOwner = this.copyrightOwnerService.getById(exhibitionBoard.getVideoContentCopyrightOwnerId());
                if (copyrightOwner == null) {
                    exhibitionBoard.setVideoContentCopyrightOwnerName("对应的视频内容版权方已被删除");
                } else {
                    exhibitionBoard.setVideoContentCopyrightOwnerName(copyrightOwner.getName());
                }
372 373
            }else {
                exhibitionBoard.setVideoContentCopyrightOwnerName("无");
liqin's avatar
liqin committed
374
            }
375 376

            // 展板分类信息
liqin's avatar
liqin committed
377
            if (exhibitionBoard.getExhibitionBoardCatId() != null) {
liqin's avatar
liqin committed
378 379 380 381 382 383
                final ExhibitionBoardCat exhibitionBoardCat = this.exhibitionBoardCatService.getById(exhibitionBoard.getExhibitionBoardCatId());
                if (exhibitionBoardCat == null) {
                    exhibitionBoard.setExhibitionBoardCatName("对应的展板分类已被删除");
                } else {
                    exhibitionBoard.setExhibitionBoardCatName(exhibitionBoardCat.getName());
                }
384 385
            }else {
                exhibitionBoard.setExhibitionBoardCatName("无");
liqin's avatar
liqin committed
386
            }
387 388 389

            // 展板视频信息
            if (StringUtils.isNotEmpty(exhibitionBoard.getVideoContentId())) {
liqin's avatar
liqin committed
390 391 392 393 394 395
                String videoContentId = exhibitionBoard.getVideoContentId();
                final VideoContent videoContent = this.videoContentService.getById(videoContentId);
                if (videoContent == null) {
                    exhibitionBoard.setVideoList(Collections.emptyList());
                } else {
                    exhibitionBoard.setVideoContentName(videoContent.getName());
liqin's avatar
liqin committed
396
                    final List<Asset> videoList = this.assetService.list(Wrappers.<Asset>lambdaQuery().eq(Asset::getRefItemId, videoContentId).eq(Asset::getPublished, true));
liqin's avatar
liqin committed
397 398 399
                    exhibitionBoard.setVideoList(videoList);
                }
            }
liqin's avatar
liqin committed
400
        }
liqin's avatar
liqin committed
401 402 403 404 405 406 407 408 409 410 411 412
        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
413
    @RequiresAuthentication  //@RequiresPermissions("exhibition:board:page")
liqin's avatar
liqin committed
414
    @ApiOperation(value = "获取展板分页列表", notes = "获取展板分页列表")
wzp's avatar
wzp committed
415
    @MethodLog(operModule = OperModule.DISPLAYCONTENT, operType = OperType.SELECT)
liqin's avatar
liqin committed
416 417 418 419 420 421 422
    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
423
        if (StringUtils.isNotBlank(genericPageParam.getBoardCopyrightOwnerId())) {
liqin's avatar
liqin committed
424
            queryWrapper.eq(ExhibitionBoard::getBoardCopyrightOwnerId, genericPageParam.getBoardCopyrightOwnerId());
liqin's avatar
liqin committed
425
        }
liqin's avatar
liqin committed
426 427 428 429
        // 对版权方模糊查询
        if (StringUtils.isNotBlank(genericPageParam.getExhibitionBoardCatId())) {
            queryWrapper.eq(ExhibitionBoard::getExhibitionBoardCatId, genericPageParam.getExhibitionBoardCatId());
        }
liqin's avatar
liqin committed
430 431 432 433 434 435 436 437 438 439 440
        // 根据创建时间区间检索
        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
441 442
                ExhibitionBoard::getRemarks,
                ExhibitionBoard::getQrcodeUrl,
liqin's avatar
liqin committed
443 444
                ExhibitionBoard::getAuditStatus,
                ExhibitionBoard::getPublished,
liqin's avatar
liqin committed
445
                ExhibitionBoard::getDeleted,
liqin's avatar
liqin committed
446
                ExhibitionBoard::getVideoContentCopyrightOwnerId,
liqin's avatar
liqin committed
447
                ExhibitionBoard::getExhibitionBoardCatId,
liqin's avatar
liqin committed
448 449
                ExhibitionBoard::getBoardCopyrightOwnerId,
                ExhibitionBoard::getVideoContentId,
liqin's avatar
liqin committed
450 451 452 453
                ExhibitionBoard::getCreateTime,
                ExhibitionBoard::getUpdateTime);
        Page<ExhibitionBoard> page = this.exhibitionBoardService.page(getPage(), queryWrapper);
        for (ExhibitionBoard exhibitionBoard : page.getRecords()) {
454 455
            // 展板版权方信息
            if (StringUtils.isNotEmpty(exhibitionBoard.getBoardCopyrightOwnerId())) {
liqin's avatar
liqin committed
456 457 458 459 460 461
                final CopyrightOwner copyrightOwner = this.copyrightOwnerService.getById(exhibitionBoard.getBoardCopyrightOwnerId());
                if (copyrightOwner == null) {
                    exhibitionBoard.setBoardCopyrightOwnerName("对应的展板版权方已被删除");
                } else {
                    exhibitionBoard.setBoardCopyrightOwnerName(copyrightOwner.getName());
                }
462 463
            }else {
                exhibitionBoard.setBoardCopyrightOwnerName("无");
liqin's avatar
liqin committed
464
            }
465

466 467 468 469 470
            // 展板简介
            if (StringUtils.isEmpty(exhibitionBoard.getRemarks())) {
                exhibitionBoard.setRemarks("无");
            }

471
            // 展板视频版权方信息
472
            if (StringUtils.isNotEmpty(exhibitionBoard.getVideoContentCopyrightOwnerId())) {
liqin's avatar
liqin committed
473 474 475 476 477 478
                final CopyrightOwner copyrightOwner = this.copyrightOwnerService.getById(exhibitionBoard.getVideoContentCopyrightOwnerId());
                if (copyrightOwner == null) {
                    exhibitionBoard.setVideoContentCopyrightOwnerName("对应的视频内容版权方已被删除");
                } else {
                    exhibitionBoard.setVideoContentCopyrightOwnerName(copyrightOwner.getName());
                }
479
            }else {
480 481 482
                exhibitionBoard.setVideoContentCopyrightOwnerName("无");
                exhibitionBoard.setVideoContentName("无");
            }
483

484 485
            // 展板分类信息
            if (StringUtils.isNotEmpty(exhibitionBoard.getExhibitionBoardCatId())) {
liqin's avatar
liqin committed
486 487 488 489 490 491
                final ExhibitionBoardCat exhibitionBoardCat = this.exhibitionBoardCatService.getById(exhibitionBoard.getExhibitionBoardCatId());
                if (exhibitionBoardCat == null) {
                    exhibitionBoard.setExhibitionBoardCatName("对应的展板分类已被删除");
                } else {
                    exhibitionBoard.setExhibitionBoardCatName(exhibitionBoardCat.getName());
                }
492 493
            }else {
                exhibitionBoard.setExhibitionBoardCatName("无");
liqin's avatar
liqin committed
494
            }
495 496

            // 展板对应视频
497
            if (StringUtils.isNotEmpty(exhibitionBoard.getVideoContentId() )) {
liqin's avatar
liqin committed
498 499
                String videoContentId = exhibitionBoard.getVideoContentId();
                final VideoContent videoContent = this.videoContentService.getById(videoContentId);
liqin's avatar
liqin committed
500
                if (videoContent == null) {
liqin's avatar
liqin committed
501
                    exhibitionBoard.setVideoContentName("对应的视频内容已被删除");
liqin's avatar
liqin committed
502 503
                } else {
                    exhibitionBoard.setVideoContentName(videoContent.getName());
liqin's avatar
liqin committed
504
                    final List<Asset> videoList = this.assetService.list(Wrappers.<Asset>lambdaQuery().eq(Asset::getRefItemId, videoContentId).eq(Asset::getPublished, true));
liqin's avatar
liqin committed
505
                    exhibitionBoard.setVideoList(videoList);
liqin's avatar
liqin committed
506
                }
507 508
            }else {
                exhibitionBoard.setVideoContentName("无");
liqin's avatar
liqin committed
509
            }
liqin's avatar
liqin committed
510 511 512 513 514 515 516 517 518
        }
        return getResult(page);
    }

    @ApiOperation(value = "获取展板详情", notes = "获取展板详情")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id", value = "标识ID", dataType = "String", paramType = "path")
    })
    @GetMapping("/get/{id}")
wzp's avatar
wzp committed
519
    @RequiresAuthentication  //@RequiresPermissions("exhibition:board:get:id")
wzp's avatar
wzp committed
520
    @MethodLog(operModule = OperModule.DISPLAYCONTENT, operType = OperType.SELECT)
liqin's avatar
liqin committed
521 522
    public Map<String, Object> getById(@PathVariable("id") String id) {
        ExhibitionBoard exhibitionBoard = exhibitionBoardService.getById(id);
liqin's avatar
liqin committed
523
        String exhibitionBoardCatId = exhibitionBoard.getExhibitionBoardCatId();
524
        // 展板分类信息
525
        if (StringUtils.isNotEmpty(exhibitionBoardCatId)) {
liqin's avatar
liqin committed
526
            exhibitionBoard.setExhibitionBoardCatName(this.exhibitionBoardCatService.getById(exhibitionBoardCatId).getName());
527 528
        }else {
            exhibitionBoard.setExhibitionBoardCatName("暂无数据");
liqin's avatar
liqin committed
529
        }
530 531

        // 展板版权方信息
liqin's avatar
liqin committed
532
        String boardCopyrightOwnerId = exhibitionBoard.getBoardCopyrightOwnerId();
533
        if (StringUtils.isNotEmpty(boardCopyrightOwnerId)) {
liqin's avatar
liqin committed
534
            exhibitionBoard.setBoardCopyrightOwnerName(this.copyrightOwnerService.getById(boardCopyrightOwnerId).getName());
535 536
        }else {
            exhibitionBoard.setBoardCopyrightOwnerName("暂无数据");
liqin's avatar
liqin committed
537
        }
538 539 540 541 542 543 544

        // 展板简介
        if (StringUtils.isEmpty(exhibitionBoard.getRemarks())) {
            exhibitionBoard.setRemarks("暂无数据");
        }

        // 视频版权方信息
545
        if (StringUtils.isNotEmpty(exhibitionBoard.getVideoContentCopyrightOwnerId())) {
liqin's avatar
liqin committed
546 547 548
            String name = this.copyrightOwnerService.getById(exhibitionBoard.getVideoContentCopyrightOwnerId()).getName();
            exhibitionBoard.setVideoContentCopyrightOwnerName(name);
        }
liqin's avatar
liqin committed
549

liqin's avatar
liqin committed
550
        LambdaQueryWrapper<Asset> assetQueryWrapper = Wrappers.<Asset>lambdaQuery().eq(Asset::getRefItemId, id);
liqin's avatar
liqin committed
551 552 553
        assetQueryWrapper.eq(Asset::getFileCat, FileCatEnum.EXHIBITION_BOARD_AUDIO.name());
        final List<Asset> audioList = this.assetService.list(assetQueryWrapper);
        exhibitionBoard.setAudioList(audioList);
liqin's avatar
liqin committed
554
        exhibitionBoard.setAudioIdList(audioList.stream().map(Asset::getId).collect(Collectors.toList()));
liqin's avatar
liqin committed
555

liqin's avatar
liqin committed
556
        assetQueryWrapper.clear();
liqin's avatar
liqin committed
557
        assetQueryWrapper = Wrappers.<Asset>lambdaQuery().eq(Asset::getRefItemId, exhibitionBoard.getId()).eq(Asset::getPublished, true);
liqin's avatar
liqin committed
558 559 560
        assetQueryWrapper.eq(Asset::getFileCat, FileCatEnum.EXHIBITION_BOARD_DATUM.name());
        final List<Asset> datumList = this.assetService.list(assetQueryWrapper);
        exhibitionBoard.setDatumList(datumList);
liqin's avatar
liqin committed
561
        exhibitionBoard.setDatumIdList(datumList.stream().map(Asset::getId).collect(Collectors.toList()));
liqin's avatar
liqin committed
562

liqin's avatar
liqin committed
563
        final LambdaQueryWrapper<Audit> auditQueryWrapper = Wrappers.<Audit>lambdaQuery().eq(Audit::getRefItemId, id);
liqin's avatar
liqin committed
564 565 566
        final List<Audit> auditList = this.auditService.list(auditQueryWrapper);
        exhibitionBoard.setAuditHistoryList(auditList);

liqin's avatar
liqin committed
567
        final String videoContentId = exhibitionBoard.getVideoContentId();
568
        if (StringUtils.isNotEmpty(videoContentId)) {
liqin's avatar
liqin committed
569 570 571 572
            final VideoContent videoContent = this.videoContentService.getById(videoContentId);
            exhibitionBoard.setVideoContentName(videoContent.getName());

            assetQueryWrapper.clear();
liqin's avatar
liqin committed
573
            assetQueryWrapper = Wrappers.<Asset>lambdaQuery().eq(Asset::getRefItemId, videoContentId).eq(Asset::getPublished, true);
liqin's avatar
liqin committed
574 575 576 577 578 579 580 581 582
            assetQueryWrapper.eq(Asset::getFileCat, FileCatEnum.VIDEO_CONTENT.name());
            final List<Asset> videoList = this.assetService.list(assetQueryWrapper);
            exhibitionBoard.setVideoList(videoList);
        }
        return getResult(exhibitionBoard);
    }

    @ApiOperation(value = "获取展板详情(审核详情使用)", notes = "获取展板详情(审核详情使用)")
    @ApiImplicitParams({
liqin's avatar
liqin committed
583
            @ApiImplicitParam(name = "auditId", value = "审核ID", dataType = "String", paramType = "path", required = true)
liqin's avatar
liqin committed
584
    })
liqin's avatar
liqin committed
585
    @GetMapping("/getAudit/{auditId}")
liqin's avatar
liqin committed
586 587 588 589 590
    @RequiresAuthentication  //@RequiresPermissions("video:content:get:id")
    @MethodLog(operModule = OperModule.DISPLAYCONTENT, operType = OperType.SELECT)
    public Map<String, Object> getAuditInfoById(@PathVariable("auditId") String auditId) {
        final ExhibitionBoard exhibitionBoard = JSONObject.parseObject(this.auditService.getById(auditId).getModelData(), ExhibitionBoard.class);
        String exhibitionBoardCatId = exhibitionBoard.getExhibitionBoardCatId();
591
        if (StringUtils.isNotEmpty(exhibitionBoardCatId)) {
liqin's avatar
liqin committed
592 593 594
            exhibitionBoard.setExhibitionBoardCatName(this.exhibitionBoardCatService.getById(exhibitionBoardCatId).getName());
        }
        String boardCopyrightOwnerId = exhibitionBoard.getBoardCopyrightOwnerId();
595
        if (StringUtils.isNotEmpty(boardCopyrightOwnerId)) {
liqin's avatar
liqin committed
596 597
            exhibitionBoard.setBoardCopyrightOwnerName(this.copyrightOwnerService.getById(boardCopyrightOwnerId).getName());
        }
598
        if (StringUtils.isNotEmpty(exhibitionBoard.getVideoContentCopyrightOwnerId())) {
liqin's avatar
liqin committed
599 600 601 602
            String name = this.copyrightOwnerService.getById(exhibitionBoard.getVideoContentCopyrightOwnerId()).getName();
            exhibitionBoard.setVideoContentCopyrightOwnerName(name);
        }

liqin's avatar
liqin committed
603 604 605 606
        final List<String> audioIdList = exhibitionBoard.getAudioIdList();
        if (audioIdList != null && !audioIdList.isEmpty()) {
            final List<Asset> audioList = this.assetService.listByIds(audioIdList);
            exhibitionBoard.setAudioIdList(audioIdList);
liqin's avatar
liqin committed
607 608 609
            exhibitionBoard.setAudioList(audioList);
        }

liqin's avatar
liqin committed
610 611 612 613
        final List<String> datumIdList = exhibitionBoard.getDatumIdList();
        if (datumIdList != null && !datumIdList.isEmpty()) {
            final List<Asset> datumList = this.assetService.listByIds(datumIdList);
            exhibitionBoard.setDatumIdList(datumIdList);
liqin's avatar
liqin committed
614 615 616 617
            exhibitionBoard.setDatumList(datumList);
        }

        final LambdaQueryWrapper<Audit> auditQueryWrapper = Wrappers.<Audit>lambdaQuery().eq(Audit::getRefItemId, exhibitionBoard.getId());
liqin's avatar
liqin committed
618 619 620
        final List<Audit> auditList = this.auditService.list(auditQueryWrapper);
        exhibitionBoard.setAuditHistoryList(auditList);

liqin's avatar
liqin committed
621
        final String videoContentId = exhibitionBoard.getVideoContentId();
622
        if (StringUtils.isNotEmpty(videoContentId)) {
liqin's avatar
liqin committed
623
            final VideoContent videoContent = this.videoContentService.getById(videoContentId);
liqin's avatar
liqin committed
624 625 626 627 628 629 630
            if (videoContent != null) {
                exhibitionBoard.setVideoContentName(videoContent.getName());
            } else {
                exhibitionBoard.setVideoContentName("相关视频内容已被删除");
            }
            final LambdaQueryWrapper<Asset> lambdaQueryWrapper = Wrappers.<Asset>lambdaQuery().eq(Asset::getRefItemId, videoContentId);
            lambdaQueryWrapper.eq(Asset::getFileCat, FileCatEnum.VIDEO_CONTENT.name());
liqin's avatar
liqin committed
631
            lambdaQueryWrapper.eq(Asset::getPublished, true);
liqin's avatar
liqin committed
632
            final List<Asset> videoList = this.assetService.list(lambdaQueryWrapper);
liqin's avatar
liqin committed
633
            exhibitionBoard.setVideoList(videoList);
liqin's avatar
liqin committed
634
        }
liqin's avatar
liqin committed
635 636 637
        return getResult(exhibitionBoard);
    }

liqin's avatar
liqin committed
638 639 640
    @ApiOperation(value = "上架/下架展板内容", notes = "上架/下架展板内容")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id", value = "标识ID", dataType = "String", paramType = "path"),
liqin's avatar
liqin committed
641
            @ApiImplicitParam(name = "isPublish", value = "是否上架", dataType = "boolean", paramType = "query", allowableValues = "True, False")
liqin's avatar
liqin committed
642 643
    })
    @PutMapping("/publish/{id}")
wzp's avatar
wzp committed
644
    @RequiresAuthentication  //@RequiresPermissions("exhibition:board:publish")
wzp's avatar
wzp committed
645
    @MethodLog(operModule = OperModule.DISPLAYCONTENT, operType = OperType.UPPER)
liqin's avatar
liqin committed
646
    public Map<String, Object> enableExhibitionBoard(@PathVariable("id") String id, @RequestParam("isPublish") Boolean isPublish) {
wzp's avatar
wzp committed
647
        TUser user = getcurUser();
648 649 650 651 652 653 654 655
        // 下架一个展板时,该展板对应的学习内容没下架不允许下架该展板
        if (!isPublish) {
            // 查询该展板对应的所有学习内容的id
            LambdaQueryWrapper<LearningContentBoard> objectLambdaQueryWrapper = new LambdaQueryWrapper<>();
            objectLambdaQueryWrapper.eq(LearningContentBoard::getExhibitionBoardId, id);
            List<LearningContentBoard> list = this.learningContentBoardService.list(objectLambdaQueryWrapper);
            List<String> collect = list.stream().map(LearningContentBoard::getLearningContentId).collect(Collectors.toList());
            // 查询学习内容,判断是否已全部下架
nie'hong's avatar
nie'hong committed
656 657
            if (CollectionUtil.isNotEmpty(collect)) {
                LambdaQueryWrapper<LearningContent> learningContentLambdaQueryWrapper = new LambdaQueryWrapper<>();
658
                learningContentLambdaQueryWrapper.in(LearningContent::getId, collect);
nie'hong's avatar
nie'hong committed
659
                learningContentLambdaQueryWrapper.eq(LearningContent::getIsMajor, false);
nie'hong's avatar
nie'hong committed
660 661 662 663 664
                List<LearningContent> list1 = this.learningContentService.list(learningContentLambdaQueryWrapper);
                for (LearningContent learningContent : list1) {
                    if (learningContent.getPublished()) {
                        return getFailResult("该展板所在学习内容未下架,展板不能被下架!");
                    }
665 666 667 668
                }
            }
        }

liqin's avatar
liqin committed
669
        final ExhibitionBoard exhibitionBoard = this.exhibitionBoardService.getById(id);
liqin's avatar
liqin committed
670
        final Audit audit = Audit.builder()
wzp's avatar
wzp committed
671
                .userId(user.getId())
liqin's avatar
liqin committed
672 673
                .content(exhibitionBoard.getName())
                .name(exhibitionBoard.getName())
liqin's avatar
liqin committed
674
                .refItemId(id)
liqin's avatar
liqin committed
675
                .organId(user.getOrgId())
liqin's avatar
liqin committed
676
                .type(AuditTypeEnum.EXHIBITION_BOARD.name())
wzp's avatar
wzp committed
677
                .operation(isPublish ? AuditOperationEnum.UPPER.name() : AuditOperationEnum.LOWER.name())
liqin's avatar
liqin committed
678 679
                .status(AuditStatusEnum.TBC.name())
                .level(AuditStatusEnum.TBC.name())
liqin's avatar
liqin committed
680
                .build();
liqin's avatar
liqin committed
681
        this.auditService.save(audit);
liqin's avatar
liqin committed
682
        this.exhibitionBoardService.updateById(ExhibitionBoard.builder().id(id).auditStatus(AuditStatusEnum.TBC.name()).build());
liqin's avatar
liqin committed
683 684 685
        return getSuccessResult();
    }

liqin's avatar
liqin committed
686 687 688 689 690 691 692 693
    @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) {
694 695 696 697 698 699 700 701 702 703
        ExhibitionBoard byId = this.exhibitionBoardService.getById(id);
        // 上架状态下的展板需要判断是否被学习内容使用
        if (byId.getPublished()) {
            // 查询该展板是否被学习内容使用
            final LambdaQueryWrapper<LearningContentBoard> queryWrapper = Wrappers.lambdaQuery();
            // 查询展板对应的学习内容id
            queryWrapper.eq(LearningContentBoard::getExhibitionBoardId, id);
            queryWrapper.select(LearningContentBoard::getLearningContentId);
            List<String> list = this.learningContentBoardService.listObjs(queryWrapper, Object::toString);
            if (CollectionUtil.isNotEmpty(list)) {
704 705
                List<LearningContent> learningContents = this.learningContentService.listByIds(list);
                String collect = learningContents.stream().map(LearningContent::getName).collect(Collectors.joining(","));
706 707
                return getFailResult("该展板被学习内容:" + collect + "使用,不能被删除!");
            }
708 709
        }

liqin's avatar
liqin committed
710
        TUser user = getcurUser();
liqin's avatar
liqin committed
711
        final ExhibitionBoard exhibitionBoard = this.exhibitionBoardService.getById(id);
liqin's avatar
liqin committed
712
        final Audit audit = Audit.builder()
liqin's avatar
liqin committed
713 714
                .content(exhibitionBoard.getName())
                .name(exhibitionBoard.getName())
liqin's avatar
liqin committed
715 716
                .userId(user.getId())
                .refItemId(id)
liqin's avatar
liqin committed
717
                .organId(user.getOrgId())
liqin's avatar
liqin committed
718 719 720 721 722 723
                .type(AuditTypeEnum.EXHIBITION_BOARD.name())
                .operation(AuditOperationEnum.REMOVE.name())
                .status(AuditStatusEnum.TBC.name())
                .level(AuditStatusEnum.TBC.name())
                .build();
        final boolean result = this.auditService.save(audit);
724 725 726 727 728 729 730 731
        //修改自身状态为待初审
        LambdaUpdateWrapper<ExhibitionBoard> wrapper = new UpdateWrapper<ExhibitionBoard>().lambda()
                .eq(ExhibitionBoard::getId, exhibitionBoard.getId())
                .set(ExhibitionBoard::getAuditStatus, AuditStatusEnum.TBC.name())
                .set(ExhibitionBoard::getUpdateTime, LocalDateTime.now());

        boolean update = exhibitionBoardService.update(wrapper);

liqin's avatar
liqin committed
732 733 734 735 736 737
        if (result) {
            return getSuccessResult();
        }
        return getFailResult();
    }

liqin's avatar
liqin committed
738 739
}