package cn.iocoder.yudao.module.system.controller.admin.companyconfig; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.system.controller.admin.companyconfig.vo.SystemCompanyConfigRespVO; import cn.iocoder.yudao.module.system.controller.admin.companyconfig.vo.SystemCompanyConfigSaveReqVO; import cn.iocoder.yudao.module.system.dal.dataobject.companyconfig.SystemCompanyConfigDO; import cn.iocoder.yudao.module.system.service.companyconfig.SystemCompanyConfigService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.annotation.security.PermitAll; import jakarta.validation.Valid; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - 公司品牌信息") @RestController @RequestMapping("/system/company-config") @Validated public class SystemCompanyConfigController { @Resource private SystemCompanyConfigService companyConfigService; /** * 获得公司品牌信息 * * 免登录公开接口,供前端登录页 / 应用启动时读取公司名称、logo、登录页标题。 */ @GetMapping("/get") @Operation(summary = "获得公司品牌信息(免登录公开)") @PermitAll public CommonResult getCompanyConfig() { SystemCompanyConfigDO config = companyConfigService.getCompanyConfig(); return success(BeanUtils.toBean(config, SystemCompanyConfigRespVO.class)); } /** * 保存公司品牌信息 * * 单行 upsert,需登录且拥有 system:company-config:update 权限。 * 权限通过菜单「公司信息配置 - 修改」授权(见 sql/mysql/system_company_config_menu.sql)。 */ @PostMapping("/save") @Operation(summary = "保存公司品牌信息") @PreAuthorize("@ss.hasPermission('system:company-config:update')") public CommonResult saveCompanyConfig(@Valid @RequestBody SystemCompanyConfigSaveReqVO reqVO) { return success(companyConfigService.saveCompanyConfig(reqVO)); } }