yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/companyconfig/SystemCompanyConfigController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,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)); } } yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/companyconfig/vo/SystemCompanyConfigRespVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,33 @@ package cn.iocoder.yudao.module.system.controller.admin.companyconfig.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.time.LocalDateTime; @Schema(description = "管çåå° - å ¬å¸åçä¿¡æ¯ Response VO") @Data public class SystemCompanyConfigRespVO { @Schema(description = "主é®", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long id; @Schema(description = "å ¬å¸åç§°", example = "å®å¤ä¹æ³åå·¥") private String companyName; @Schema(description = "logo æ°¸ä¹ å ¬å¼é¾æ¥ï¼previewURLï¼", example = "http://domain/admin-api/system/storage-blob/preview/xxx?publicKey=xxx") private String logoUrl; @Schema(description = "logo 对åºç blob è®°å½ ID", example = "86") private Long logoBlobId; @Schema(description = "ç»å½é¡µæ é¢", example = "å¶é è¿è¥ç®¡çå¹³å°") private String loginTitle; @Schema(description = "ç»å½é¡µæè¿°", example = "å·¥ç¨åã髿§è½ãè·¨ç»ä»¶åºçå端模ç") private String loginDescription; @Schema(description = "å建æ¶é´", requiredMode = Schema.RequiredMode.REQUIRED) private LocalDateTime createTime; } yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/companyconfig/vo/SystemCompanyConfigSaveReqVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,35 @@ package cn.iocoder.yudao.module.system.controller.admin.companyconfig.vo; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Size; import lombok.Data; @Schema(description = "管çåå° - å ¬å¸åçä¿¡æ¯ä¿å Request VO") @Data public class SystemCompanyConfigSaveReqVO { @Schema(description = "主é®ï¼åè¡é ç½®ï¼å¯ä¸ä¼ ï¼", example = "1") private Long id; @Schema(description = "å ¬å¸åç§°", requiredMode = Schema.RequiredMode.REQUIRED, example = "å®å¤ä¹æ³åå·¥") @NotBlank(message = "å ¬å¸åç§°ä¸è½ä¸ºç©º") @Size(max = 128, message = "å ¬å¸åç§°ä¸è½è¶ è¿128个å符") private String companyName; @Schema(description = "logo æ°¸ä¹ å ¬å¼é¾æ¥ï¼previewURLï¼", example = "http://domain/admin-api/system/storage-blob/preview/xxx?publicKey=xxx") @Size(max = 512, message = "logo å°åä¸è½è¶ è¿512个å符") private String logoUrl; @Schema(description = "logo 对åºç blob è®°å½ ID", example = "86") private Long logoBlobId; @Schema(description = "ç»å½é¡µæ é¢", example = "å¶é è¿è¥ç®¡çå¹³å°") @Size(max = 128, message = "ç»å½é¡µæ é¢ä¸è½è¶ è¿128个å符") private String loginTitle; @Schema(description = "ç»å½é¡µæè¿°", example = "å·¥ç¨åã髿§è½ãè·¨ç»ä»¶åºçå端模ç") @Size(max = 128, message = "ç»å½é¡µæè¿°ä¸è½è¶ è¿128个å符") private String loginDescription; } yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/companyconfig/SystemCompanyConfigDO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,47 @@ package cn.iocoder.yudao.module.system.dal.dataobject.companyconfig; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; /** * å ¬å¸åçä¿¡æ¯é ç½® DO * * åè¡é ç½®ï¼ä¿åå ¬å¸åç§°/logo/ç»å½é¡µæ é¢ï¼å端å¯å¨æ¶è¯»åå¹¶èå¨ç»å½é¡µãèåæ ãç½é¡µæ é¢ã * * @author è¶ çº§ç®¡çå */ @TableName("system_company_config") @KeySequence("system_company_config_seq") // ç¨äº OracleãPostgreSQLãKingbaseãDB2ãH2 æ°æ®åºç主é®èªå¢ãå¦ææ¯ MySQL çæ°æ®åºï¼å¯ä¸åã @Data @EqualsAndHashCode(callSuper = true) public class SystemCompanyConfigDO extends BaseDO { /** * ä¸»é® */ private Long id; /** * å ¬å¸åç§° */ private String companyName; /** * logo æ°¸ä¹ å ¬å¼é¾æ¥ï¼public-upload è¿åç previewURLï¼ */ private String logoUrl; /** * logo 对åºç blob è®°å½ ID */ private Long logoBlobId; /** * ç»å½é¡µæ é¢ */ private String loginTitle; /** * ç»å½é¡µæè¿° */ private String loginDescription; } yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/companyconfig/SystemCompanyConfigMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,15 @@ package cn.iocoder.yudao.module.system.dal.mysql.companyconfig; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.module.system.dal.dataobject.companyconfig.SystemCompanyConfigDO; import org.apache.ibatis.annotations.Mapper; /** * å ¬å¸åçä¿¡æ¯é ç½® Mapper * * @author è¶ çº§ç®¡çå */ @Mapper public interface SystemCompanyConfigMapper extends BaseMapperX<SystemCompanyConfigDO> { } yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/companyconfig/SystemCompanyConfigService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,28 @@ package cn.iocoder.yudao.module.system.service.companyconfig; import cn.iocoder.yudao.module.system.controller.admin.companyconfig.vo.SystemCompanyConfigSaveReqVO; import cn.iocoder.yudao.module.system.dal.dataobject.companyconfig.SystemCompanyConfigDO; /** * å ¬å¸åçä¿¡æ¯é ç½® Service æ¥å£ * * @author è¶ çº§ç®¡çå */ public interface SystemCompanyConfigService { /** * è·å¾å ¬å¸åçä¿¡æ¯ï¼åè¡é ç½®ï¼ * * @return å ¬å¸åçä¿¡æ¯ï¼æªé ç½®æ¶è¿å null */ SystemCompanyConfigDO getCompanyConfig(); /** * ä¿åå ¬å¸åçä¿¡æ¯ï¼åè¡ upsertï¼ * * @param reqVO ä¿åè¯·æ± * @return ä¸»é® */ Long saveCompanyConfig(SystemCompanyConfigSaveReqVO reqVO); } yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/companyconfig/SystemCompanyConfigServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,50 @@ package cn.iocoder.yudao.module.system.service.companyconfig; import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; 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.dal.mysql.companyconfig.SystemCompanyConfigMapper; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import java.util.List; /** * å ¬å¸åçä¿¡æ¯é ç½® Service å®ç°ç±» * * @author è¶ çº§ç®¡çå */ @Service public class SystemCompanyConfigServiceImpl implements SystemCompanyConfigService { @Resource private SystemCompanyConfigMapper companyConfigMapper; @Override public SystemCompanyConfigDO getCompanyConfig() { // åè¡é ç½®ï¼æä¸»é®ååºåç¬¬ä¸æ¡ List<SystemCompanyConfigDO> list = companyConfigMapper.selectList(new LambdaQueryWrapperX<SystemCompanyConfigDO>() .orderByAsc(SystemCompanyConfigDO::getId) .last("LIMIT 1")); return CollUtil.getFirst(list); } @Override public Long saveCompanyConfig(SystemCompanyConfigSaveReqVO reqVO) { SystemCompanyConfigDO config = getCompanyConfig(); if (config == null) { // 馿¬¡ä¿åï¼æå ¥ SystemCompanyConfigDO insertObj = BeanUtils.toBean(reqVO, SystemCompanyConfigDO.class); companyConfigMapper.insert(insertObj); return insertObj.getId(); } // å·²åå¨ï¼æ´æ°åè¡ SystemCompanyConfigDO updateObj = BeanUtils.toBean(reqVO, SystemCompanyConfigDO.class); updateObj.setId(config.getId()); companyConfigMapper.updateById(updateObj); return config.getId(); } }