package com.izouma.nineth.web; import com.izouma.nineth.config.MetaConstants; import com.izouma.nineth.domain.MetaResourceVersion; import com.izouma.nineth.dto.MetaRestResult; import com.izouma.nineth.dto.PageQuery; import com.izouma.nineth.exception.BusinessException; import com.izouma.nineth.repo.MetaResourceVersionRepo; import com.izouma.nineth.service.MetaResourceVersionService; import com.izouma.nineth.utils.ObjUtils; import com.izouma.nineth.utils.excel.ExcelUtils; import lombok.AllArgsConstructor; import org.apache.commons.collections.CollectionUtils; import org.springframework.data.domain.Page; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; import java.util.Objects; @RestController @RequestMapping("/metaResourceVersion") @AllArgsConstructor public class MetaResourceVersionController extends BaseController { private MetaResourceVersionService metaResourceVersionService; private MetaResourceVersionRepo metaResourceVersionRepo; //@PreAuthorize("hasRole('ADMIN')") @PostMapping("/save") public MetaResourceVersion save(@RequestBody MetaResourceVersion record) { MetaResourceVersion metaResourceVersion = metaResourceVersionRepo.findByCondition(MetaConstants.LIKE.concat(record.getVersion()).concat(MetaConstants.LIKE)); if (Objects.nonNull(metaResourceVersion) && !Objects.equals(metaResourceVersion.getId(), record.getId())) { throw new BusinessException("当前版本编号已经存在"); } if (record.getId() != null) { MetaResourceVersion orig = metaResourceVersionRepo.findById(record.getId()).orElseThrow(new BusinessException("无记录")); ObjUtils.merge(orig, record); return metaResourceVersionRepo.save(orig); } return metaResourceVersionRepo.save(record); } //@PreAuthorize("hasRole('ADMIN')") @PostMapping("/all") public Page all(@RequestBody PageQuery pageQuery) { return metaResourceVersionService.all(pageQuery); } @GetMapping("/get/{id}") public MetaResourceVersion get(@PathVariable Long id) { return metaResourceVersionRepo.findById(id).orElseThrow(new BusinessException("无记录")); } @PostMapping("/del/{id}") public void del(@PathVariable Long id) { metaResourceVersionRepo.softDelete(id); } @GetMapping("/excel") @ResponseBody public void excel(HttpServletResponse response, PageQuery pageQuery) throws IOException { List data = all(pageQuery).getContent(); ExcelUtils.export(response, data); } @GetMapping("/{version}/downloadUrl") public MetaRestResult downloadUrl(@PathVariable String version) { MetaResourceVersion metaResourceVersion = metaResourceVersionRepo.findByVersionAndDel(version, false); if (Objects.isNull(metaResourceVersion)) { return MetaRestResult.returnError("不存在该版本的资源"); } return MetaRestResult.returnSuccess(metaResourceVersion.getDownloadUrl()); } @GetMapping("/findAll") public MetaRestResult> findAll() { List metaResourceVersions = metaResourceVersionRepo.findAllByDel(false); if (CollectionUtils.isEmpty(metaResourceVersions)) { return MetaRestResult.returnError("当前未配置过资源版本"); } return MetaRestResult.returnSuccess(metaResourceVersions); } @GetMapping("/findVersion") public MetaRestResult findVersion() { MetaResourceVersion metaResourceVersion = metaResourceVersionRepo.findVersion(); if (Objects.isNull(metaResourceVersion)) { return MetaRestResult.returnError("当前无资源版本信息!"); } return MetaRestResult.returnSuccess("查询成功", metaResourceVersion); } }