package com.dragoninfo.dcuc.authweb.restcontroller.sub; import com.dragoninfo.dcuc.app.dto.sub.DataLevelDTO; import com.dragoninfo.dcuc.app.facade.sub.IDataLevelFacade; import com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.data.DataLevelVo; import com.dragoninfo.dcuc.authweb.util.VersionUtils; import com.dragoninfo.duceap.core.response.Result; import com.dragonsoft.duceap.core.search.Searchable; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.stream.Collectors; /** * @author mazq * @date 2021/5/25 */ @Api(tags = {"主客体授权-数据分级表码接口"}) @RestController @RequestMapping(value = "/datalevelsvr/"+ VersionUtils.VERSION_UID) public class DataLevelController { @Autowired private IDataLevelFacade dataLevelFacade; @ApiOperation(value = "数据分级分页列表") @ApiImplicitParam(name = "Searchable", value = "Searchable 数据分级分页查询对象,查询条件 levelName like ") @PostMapping(value = "search") public Result dataLevelPageList(Searchable searchable) { Page page = dataLevelFacade.pageSearch(searchable.toSearchDTO()); List content = page.getContent(); List vos = content.stream().map(item -> { DataLevelVo vo = new DataLevelVo(); BeanUtils.copyProperties(item, vo); return vo; }).collect(Collectors.toList()); return Result.success(page.getTotalElements(), vos); } @ApiOperation(value = "添加或修改数据分级") @ApiImplicitParam(name = "DataLevelVo", value = "数据分级Vo") @PostMapping(value = "save") public Result dataLevelAdd(@RequestBody DataLevelVo vo){ DataLevelDTO dto = new DataLevelDTO(); BeanUtils.copyProperties(vo,dto); DataLevelDTO dataLevelDTO = dataLevelFacade.saveOrUpdate(dto); return Result.success(dataLevelDTO.getId()); } @ApiOperation(value = "数据分级详情") @ApiImplicitParam(name = "id", value = "数据分级id") @GetMapping(value = "detail/{id}") public Result detail(@PathVariable("id") String id){ DataLevelDTO dataLevel = dataLevelFacade.detail(id); DataLevelVo vo = new DataLevelVo(); BeanUtils.copyProperties(dataLevel, vo); return Result.success(vo); } @ApiOperation(value = "根据code查询数据安全等级详情") @ApiImplicitParam(name = "levelCode", value = "levelCode: 数据安全等级代码") @GetMapping(value = "detailByCode/{levelCode}") public Result detailByCode(@PathVariable("levelCode") String levelCode){ DataLevelDTO dto = dataLevelFacade.detailByCode(levelCode); DataLevelVo vo = new DataLevelVo(); BeanUtils.copyProperties(dto, vo); return Result.success(vo); } @ApiOperation(value = "数据分级删除") @ApiImplicitParam(name = "id", value = "数据分级id") @DeleteMapping(value = "deleteById/{id}") public Result deleteById(@PathVariable("id") String id){ Boolean b = dataLevelFacade.deleteById(id); if (b) { return Result.success(); } else { return Result.fail(); } } }