CopyrightOwnerController.java 9.73 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.CopyrightOwnerTypeEnum;
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.*;
import cn.wisenergy.chnmuseum.party.service.*;
liqin's avatar
liqin committed
9
import cn.wisenergy.chnmuseum.party.web.controller.base.BaseController;
liqin's avatar
liqin committed
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
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;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
liqin's avatar
liqin committed
25
import java.util.ArrayList;
liqin's avatar
liqin committed
26 27
import java.util.List;
import java.util.Map;
liqin's avatar
liqin committed
28
import java.util.stream.Collectors;
liqin's avatar
liqin committed
29 30

/**
liqin's avatar
liqin committed
31
 * <pre>
liqin's avatar
liqin committed
32
 * 版权方 前端控制器
liqin's avatar
liqin committed
33
 * </pre>
liqin's avatar
liqin committed
34 35
 *
 * @author Danny Lee
liqin's avatar
liqin committed
36
 * @since 2021-03-17
liqin's avatar
liqin committed
37
 */
liqin's avatar
liqin committed
38
@Slf4j
liqin's avatar
liqin committed
39
@RestController
liqin's avatar
liqin committed
40
@RequestMapping("/copyrightOwner")
liqin's avatar
liqin committed
41
@Api(tags = {"版权方接口"})
liqin's avatar
liqin committed
42 43
public class CopyrightOwnerController extends BaseController {

liqin's avatar
liqin committed
44 45 46 47 48 49
    @Resource
    private CopyrightOwnerService copyrightOwnerService;

    @Resource
    private AssetService assetService;

liqin's avatar
liqin committed
50 51 52 53 54 55
    @Resource
    private AssetTypeService assetTypeService;

    @Resource
    private CopyrightOwnerAssetTypeService copyrightOwnerAssetTypeService;

liqin's avatar
liqin committed
56 57 58 59 60 61 62 63 64 65
    @Resource
    private ExhibitionBoardService exhibitionBoardService;

    @PostMapping("/save")
    @RequiresPermissions("copyright:owner:save")
    @ApiOperation(value = "添加版权方", notes = "添加版权方")
    public Map<String, Object> saveCopyrightOwner(@Validated(value = {Add.class}) CopyrightOwner copyrightOwner, @RequestParam("copyrightOwnerType") CopyrightOwnerTypeEnum copyrightOwnerTypeEnum) {
        copyrightOwner.setOwnerType(copyrightOwnerTypeEnum.name());
        // 保存业务节点信息
        boolean result = copyrightOwnerService.save(copyrightOwner);
liqin's avatar
liqin committed
66 67 68 69 70 71 72 73 74 75 76 77 78

        List<String> assetTypeIdList = copyrightOwner.getAssetTypeIdList();
        if (assetTypeIdList != null && !assetTypeIdList.isEmpty()) {
            List<CopyrightOwnerAssetType> copyrightOwnerAssetTypeList = new ArrayList<>();
            for (String assetTypeId : assetTypeIdList) {
                copyrightOwnerAssetTypeList.add(CopyrightOwnerAssetType.builder()
                        .assetTypeId(assetTypeId)
                        .copyrightOwnerId(copyrightOwner.getId())
                        .build());
            }
            this.copyrightOwnerAssetTypeService.saveBatch(copyrightOwnerAssetTypeList);
        }

liqin's avatar
liqin committed
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
        // 返回操作结果
        if (result) {
            return getSuccessResult();
        } else {
            // 保存失败
            return getFailResult();
        }
    }

    @PutMapping("/update")
    @RequiresPermissions("copyright:owner:update")
    @ApiOperation(value = "修改版权方信息", notes = "修改版权方信息")
    public Map<String, Object> updateCopyrightOwner(@Validated(value = {Update.class}) CopyrightOwner copyrightOwner, @RequestParam("copyrightOwnerType") CopyrightOwnerTypeEnum copyrightOwnerTypeEnum) {
        copyrightOwner.setOwnerType(copyrightOwnerTypeEnum.name());
        boolean flag = copyrightOwnerService.updateById(copyrightOwner);
liqin's avatar
liqin committed
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108

        List<String> assetTypeIdList = copyrightOwner.getAssetTypeIdList();
        if (assetTypeIdList != null && !assetTypeIdList.isEmpty()) {
            LambdaUpdateWrapper<CopyrightOwnerAssetType> updateWrapper = Wrappers.<CopyrightOwnerAssetType>lambdaUpdate().eq(CopyrightOwnerAssetType::getCopyrightOwnerId, copyrightOwner.getId());
            this.copyrightOwnerAssetTypeService.remove(updateWrapper);

            List<CopyrightOwnerAssetType> copyrightOwnerAssetTypeList = new ArrayList<>();
            for (String assetTypeId : assetTypeIdList) {
                copyrightOwnerAssetTypeList.add(CopyrightOwnerAssetType.builder()
                        .assetTypeId(assetTypeId)
                        .copyrightOwnerId(copyrightOwner.getId())
                        .build());
            }
            this.copyrightOwnerAssetTypeService.saveBatch(copyrightOwnerAssetTypeList);
        }
liqin's avatar
liqin committed
109 110 111 112 113 114 115 116 117 118 119 120 121
        if (flag) {
            return getSuccessResult();
        }
        return getFailResult();
    }

    @DeleteMapping("/delete/{id}")
    @RequiresPermissions("copyright:owner:delete")
    @ApiOperation(value = "根据ID删除版权方", notes = "根据ID删除版权方")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "标识ID", paramType = "path", dataType = "String")
    })
    public Map<String, Object> deleteCopyrightOwner(@PathVariable("id") String id) {
liqin's avatar
liqin committed
122 123 124
        LambdaUpdateWrapper<Asset> updateWrapper = Wrappers.<Asset>lambdaUpdate().eq(Asset::getAssetCopyrightOwnerId, id);
        updateWrapper.set(Asset::getAssetCopyrightOwnerId, null);
        boolean result1 = this.assetService.update(updateWrapper);
liqin's avatar
liqin committed
125

liqin's avatar
liqin committed
126 127
        LambdaUpdateWrapper<ExhibitionBoard> updateWrapper1 = Wrappers.<ExhibitionBoard>lambdaUpdate().eq(ExhibitionBoard::getBoardCopyrightOwnerId, id);
        updateWrapper1.set(ExhibitionBoard::getBoardCopyrightOwnerId, null);
liqin's avatar
liqin committed
128
        boolean result2 = this.exhibitionBoardService.update(updateWrapper1);
liqin's avatar
liqin committed
129

liqin's avatar
liqin committed
130 131
        LambdaUpdateWrapper<CopyrightOwnerAssetType> updateWrapper2 = Wrappers.<CopyrightOwnerAssetType>lambdaUpdate().eq(CopyrightOwnerAssetType::getCopyrightOwnerId, id);
        boolean result3 = this.copyrightOwnerAssetTypeService.remove(updateWrapper2);
liqin's avatar
liqin committed
132

liqin's avatar
liqin committed
133 134
        boolean result = this.copyrightOwnerService.removeById(id);
        if (result && result1 && result2 && result3) {
liqin's avatar
liqin committed
135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178
            return getSuccessResult();
        }
        return getFailResult();
    }

    @GetMapping("/getList")
    @RequiresPermissions("copyright:owner:list")
    @ApiOperation(value = "获取版权方全部列表(无分页)", notes = "获取版权方全部列表(无分页)")
    public Map<String, Object> getCopyrightOwnerList() {
        List<CopyrightOwner> copyrightOwnerList = copyrightOwnerService.list(Wrappers.<CopyrightOwner>lambdaQuery());
        return getResult(copyrightOwnerList);
    }

    @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 = "startDate", value = "创建时间-开始", paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "endDate", value = "创建时间-结束", paramType = "query", dataType = "String")
    })
    @PostMapping("/getPageList")
    @RequiresPermissions("copyright:owner:page")
    @ApiOperation(value = "获取版权方分页列表", notes = "获取版权方分页列表")
    public Map<String, Object> getCopyrightOwnerPageList(GenericPageParam genericPageParam) {
        LambdaQueryWrapper<CopyrightOwner> queryWrapper = new LambdaQueryWrapper<>();
        // 对名称或编码模糊查询
        if (StringUtils.isNotBlank(genericPageParam.getNameOrCode())) {
            queryWrapper.like(CopyrightOwner::getName, genericPageParam.getNameOrCode());
        }
        // 根据创建时间区间检索
        if (genericPageParam.getStartDate() != null && genericPageParam.getEndDate() != null) {
            queryWrapper.ge(CopyrightOwner::getCreateTime, genericPageParam.getStartDate().atTime(0, 0, 0))
                    .le(CopyrightOwner::getCreateTime, genericPageParam.getEndDate().atTime(23, 59, 59));
        }
        // 设置排序规则
        queryWrapper.orderByDesc(CopyrightOwner::getCreateTime);
        // 设置查询内容
        queryWrapper.select(
                CopyrightOwner::getId,
                CopyrightOwner::getName,
                CopyrightOwner::getCreateTime,
                CopyrightOwner::getUpdateTime);
        Page<CopyrightOwner> page = this.copyrightOwnerService.page(getPage(), queryWrapper);
        for (CopyrightOwner copyrightOwner : page.getRecords()) {
liqin's avatar
liqin committed
179 180 181 182 183
            final List<CopyrightOwnerAssetType> CopyrightOwnerAssetTypeList = this.copyrightOwnerAssetTypeService.list(Wrappers.<CopyrightOwnerAssetType>lambdaQuery().eq(CopyrightOwnerAssetType::getCopyrightOwnerId, copyrightOwner.getId()));
            final List<String> idList = CopyrightOwnerAssetTypeList.stream().map(CopyrightOwnerAssetType::getAssetTypeId).collect(Collectors.toList());
            List<AssetType> assetTypeList = this.assetTypeService.listByIds(idList);
            final String assetTypeNameList = assetTypeList.stream().map(AssetType::getName).collect(Collectors.joining("、"));
            copyrightOwner.setAssetTypeNames(assetTypeNameList);
liqin's avatar
liqin committed
184 185 186 187 188 189 190 191 192 193 194 195 196 197 198
        }
        return getResult(page);
    }

    @ApiOperation(value = "获取版权方详情", notes = "获取版权方详情")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id", value = "标识ID", dataType = "String", paramType = "path")
    })
    @GetMapping("/get/{id}")
    @RequiresPermissions("copyright:owner:get:id")
    public Map<String, Object> getById(@PathVariable("id") String id) {
        CopyrightOwner copyrightOwner = copyrightOwnerService.getById(id);
        return getResult(copyrightOwner);
    }

liqin's avatar
liqin committed
199 200
}