1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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<SystemCompanyConfigRespVO> 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<Long> saveCompanyConfig(@Valid @RequestBody SystemCompanyConfigSaveReqVO reqVO) {
        return success(companyConfigService.saveCompanyConfig(reqVO));
    }
 
}