package com.qianwen.smartman.modules.resource.controller; import javax.validation.Valid; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.qianwen.core.boot.ctrl.BladeController; import com.qianwen.core.cache.utils.CacheUtil; import com.qianwen.core.mp.support.Condition; import com.qianwen.core.mp.support.Query; import com.qianwen.core.oss.enums.OssStatusEnum; import com.qianwen.core.oss.props.OssProperties; import com.qianwen.core.scanner.modular.annotation.GetResource; import com.qianwen.core.scanner.modular.annotation.PostResource; import com.qianwen.core.scanner.modular.stereotype.ApiResource; import com.qianwen.core.secure.annotation.PreAuth; import com.qianwen.core.secure.utils.AuthUtil; import com.qianwen.core.tenant.annotation.NonDS; import com.qianwen.core.tool.api.R; import com.qianwen.core.tool.utils.Func; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.smartman.common.constant.ExtCacheConstant; import com.qianwen.smartman.modules.resource.entity.Oss; import com.qianwen.smartman.modules.resource.service.IOssService; import com.qianwen.smartman.modules.resource.vo.OssVO; import com.qianwen.smartman.modules.resource.wrapper.OssWrapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @Api(value = "对象存储接口", tags = {"对象存储接口"}) @RestController @ApiResource({"blade-resource/oss"}) @NonDS /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/resource/controller/OssController.class */ public class OssController extends BladeController { private final IOssService ossService; private final OssProperties ossProperties; public OssController(final IOssService ossService, final OssProperties ossProperties) { this.ossService = ossService; this.ossProperties = ossProperties; } @ApiOperationSupport(order = 1) @GetResource({"/detail"}) @ApiOperation(value = "详情", notes = "传入oss") public R detail(Oss oss) { Oss detail = this.ossService.getOne(Condition.getQueryWrapper(oss)); return R.data(OssWrapper.build().entityVO(detail)); } @ApiOperationSupport(order = 2) @GetResource({"/list"}) @ApiOperation(value = "分页", notes = "传入oss") public R> list(Oss oss, Query query) { IPage pages = this.ossService.page(Condition.getPage(query), Condition.getQueryWrapper(oss)); return R.data(OssWrapper.build().pageVO(pages)); } @ApiOperationSupport(order = 3) @GetResource({"/page"}) @ApiOperation(value = "分页", notes = "传入oss") public R> page(OssVO oss, Query query) { IPage pages = this.ossService.selectOssPage(Condition.getPage(query), oss); return R.data(pages); } @ApiOperationSupport(order = 4) @PostResource({"/save"}) @ApiOperation(value = "新增", notes = "传入oss") public R save(@Valid @RequestBody Oss oss) { CacheUtil.clear("blade:resource", ExtCacheConstant.TENANT_MODE); return R.status(this.ossService.save(oss)); } @ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL) @PostResource({"/update"}) @ApiOperation(value = "修改", notes = "传入oss") @PreAuth public R update(@Valid @RequestBody Oss oss) { CacheUtil.clear("blade:resource", ExtCacheConstant.TENANT_MODE); return R.status(this.ossService.updateById(oss)); } @ApiOperationSupport(order = 6) @PostResource({"/submit"}) @ApiOperation(value = "新增或修改", notes = "传入oss") public R submit(@Valid @RequestBody Oss oss) { CacheUtil.clear("blade:resource", ExtCacheConstant.TENANT_MODE); return R.status(this.ossService.submit(oss)); } @ApiOperationSupport(order = 7) @PostResource({"/remove"}) @ApiOperation(value = "逻辑删除", notes = "传入ids") public R remove(@RequestParam @ApiParam(value = "主键集合", required = true) String ids) { CacheUtil.clear("blade:resource", ExtCacheConstant.TENANT_MODE); return R.status(this.ossService.deleteLogic(Func.toLongList(ids))); } @ApiOperationSupport(order = 8) @PostResource({"/enable"}) @ApiOperation(value = "配置启用", notes = "传入id") public R enable(@RequestParam @ApiParam(value = "主键", required = true) Long id) { CacheUtil.clear("blade:resource", ExtCacheConstant.TENANT_MODE); return R.status(this.ossService.enable(id)); } @ApiOperationSupport(order = 9) @GetResource({"/default"}) @ApiOperation("获取默认OSS存储地址") public R defaultOss() { String result; LambdaQueryWrapper lqw = Wrappers.query().lambda().eq(Oss::getTenantId, AuthUtil.getTenantId()); lqw.eq(Oss::getStatus, Integer.valueOf(OssStatusEnum.ENABLE.getNum())); Oss detail = this.ossService.getOne(lqw); /* Wrapper wrapper = (LambdaQueryWrapper) Wrappers.query().lambda().eq((v0) -> { return v0.getTenantId(); }, AuthUtil.getTenantId()); wrapper.eq((v0) -> { return v0.getStatus(); }, Integer.valueOf(OssStatusEnum.ENABLE.getNum())); Oss detail = (Oss) this.ossService.getOne(wrapper);*/ if (Func.isEmpty(detail)) { result = this.ossProperties.getEndpoint(); } else { result = detail.getEndpoint(); } return R.data(result); } }