Browse Source

系统配置

pull/23/head
Dreamglade 2 months ago
parent
commit
82fc7fe2c8
  1. 5
      yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java
  2. 72
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/SystemConfig/SystemConfigController.java
  3. 15
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/SystemConfig/vo/SystemConfigBaseVO.java
  4. 14
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/SystemConfig/vo/SystemConfigPageReqVO.java
  5. 13
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/SystemConfig/vo/SystemConfigRespVO.java
  6. 13
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/SystemConfig/vo/SystemConfigSaveReqVO.java
  7. 48
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/config/SystemConfigConvert.java
  8. 35
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/config/SystemConfigDO.java
  9. 23
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/config/SystemConfigMapper.java
  10. 44
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/config/SystemConfig/SystemConfigService.java
  11. 75
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/config/SystemConfig/SystemConfigServiceImpl.java

5
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java

@ -182,4 +182,9 @@ public interface ErrorCodeConstants {
// ========== 厂级 1-002-32-000 ==========
ErrorCode Factory_NOT_EXISTS = new ErrorCode(1_002_32_000, "厂级不存在");
ErrorCode Factory_NAME_DUPLICATE = new ErrorCode(1_002_32_001, "已经存在相同名字的厂级");
// ========== 系统配置 1-002-033-000 ==========
ErrorCode SYSTEM_CONFIG_NOT_EXISTS = new ErrorCode(1_002_033_000, "系统配置不存在");
ErrorCode SYSTEM_CONFIG_NAME_DUPLICATE = new ErrorCode(1_002_033_001, "已经存在该名字的系统配置");
}

72
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/SystemConfig/SystemConfigController.java

@ -0,0 +1,72 @@
package cn.iocoder.yudao.module.system.controller.admin.config.SystemConfig;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.config.SystemConfig.vo.*;
import cn.iocoder.yudao.module.system.convert.config.SystemConfigConvert; // 确保引入正确的Convert
import cn.iocoder.yudao.module.system.dal.dataobject.config.SystemConfigDO;
import cn.iocoder.yudao.module.system.service.config.SystemConfig.SystemConfigService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Tag(name = "管理后台 - 系统配置")
@RestController
@RequestMapping("/system/system-config")
@Validated
public class SystemConfigController {
@Resource
private SystemConfigService systemConfigService;
@Resource
private SystemConfigConvert systemConfigConvert; // 【关键修正】注入Converter
@PostMapping("/create")
@Operation(summary = "创建系统配置")
@PreAuthorize("@ss.hasPermission('system:system-config:create')")
public CommonResult<Long> createSystemConfig(@Valid @RequestBody SystemConfigSaveReqVO createReqVO) {
return success(systemConfigService.createSystemConfig(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新系统配置")
@PreAuthorize("@ss.hasPermission('system:system-config:update')")
public CommonResult<Boolean> updateSystemConfig(@Valid @RequestBody SystemConfigSaveReqVO updateReqVO) {
systemConfigService.updateSystemConfig(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除系统配置")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('system:system-config:delete')")
public CommonResult<Boolean> deleteSystemConfig(@RequestParam("id") Long id) {
systemConfigService.deleteSystemConfig(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得系统配置")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('system:system-config:query')")
public CommonResult<SystemConfigRespVO> getSystemConfig(@RequestParam("id") Long id) {
SystemConfigDO config = systemConfigService.getSystemConfig(id);
return success(systemConfigConvert.convert(config)); // 【关键修正】使用注入的bean进行转换
}
@GetMapping("/page")
@Operation(summary = "获得系统配置分页")
@PreAuthorize("@ss.hasPermission('system:system-config:query')")
public CommonResult<PageResult<SystemConfigRespVO>> getSystemConfigPage(@Valid SystemConfigPageReqVO pageVO) {
PageResult<SystemConfigDO> pageResult = systemConfigService.getSystemConfigPage(pageVO);
return success(systemConfigConvert.convertPage(pageResult)); // 【关键修正】使用注入的bean进行转换
}
}

15
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/SystemConfig/vo/SystemConfigBaseVO.java

@ -0,0 +1,15 @@
package cn.iocoder.yudao.module.system.controller.admin.config.SystemConfig.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
@Data
public class SystemConfigBaseVO {
@Schema(description = "系统名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "锅炉系统")
@NotBlank(message = "系统名称不能为空")
private String name;
@Schema(description = "系统简称", example = "锅炉")
private String abbreviation;
}

14
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/SystemConfig/vo/SystemConfigPageReqVO.java

@ -0,0 +1,14 @@
package cn.iocoder.yudao.module.system.controller.admin.config.SystemConfig.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Schema(description = "管理后台 - 系统配置分页请求 VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class SystemConfigPageReqVO extends PageParam {
@Schema(description = "系统名称", example = "锅炉")
private String name;
}

13
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/SystemConfig/vo/SystemConfigRespVO.java

@ -0,0 +1,13 @@
package cn.iocoder.yudao.module.system.controller.admin.config.SystemConfig.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Schema(description = "管理后台 - 系统配置响应 VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class SystemConfigRespVO extends SystemConfigBaseVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED)
private Long id;
}

13
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/SystemConfig/vo/SystemConfigSaveReqVO.java

@ -0,0 +1,13 @@
package cn.iocoder.yudao.module.system.controller.admin.config.SystemConfig.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Schema(description = "管理后台 - 系统配置创建/修改 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class SystemConfigSaveReqVO extends SystemConfigBaseVO {
@Schema(description = "编号,更新时必填", example = "1")
private Long id;
}

48
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/config/SystemConfigConvert.java

@ -0,0 +1,48 @@
package cn.iocoder.yudao.module.system.convert.config;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.config.SystemConfig.vo.SystemConfigRespVO;
import cn.iocoder.yudao.module.system.controller.admin.config.SystemConfig.vo.SystemConfigSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.config.SystemConfigDO;
import org.mapstruct.Mapper;
import java.util.ArrayList;
import java.util.List;
@Mapper(componentModel = "spring")
public interface SystemConfigConvert {
default SystemConfigRespVO convert(SystemConfigDO bean) {
if (bean == null) {
return null;
}
SystemConfigRespVO respVO = new SystemConfigRespVO();
respVO.setId(bean.getId());
respVO.setName(bean.getName());
respVO.setAbbreviation(bean.getAbbreviation());
return respVO;
}
default List<SystemConfigRespVO> convertList(List<SystemConfigDO> list) {
if (list == null) {
return null;
}
List<SystemConfigRespVO> result = new ArrayList<>(list.size());
for (SystemConfigDO systemConfigDO : list) {
result.add(convert(systemConfigDO));
}
return result;
}
default PageResult<SystemConfigRespVO> convertPage(PageResult<SystemConfigDO> page) {
if (page == null) {
return null;
}
return new PageResult<>(convertList(page.getList()), page.getTotal());
}
SystemConfigDO convert(SystemConfigSaveReqVO bean);
}

35
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/config/SystemConfigDO.java

@ -0,0 +1,35 @@
package cn.iocoder.yudao.module.system.dal.dataobject.config;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
/**
* 系统配置 DO
*
* @author 芋道源码
*/
@TableName("system_cfg")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SystemConfigDO {
@TableId("system_id")
private Long id;
@TableField("system_name")
private String name;
@TableField("system_shortname")
private String abbreviation;
@TableField("system_type_id")
private Integer systemTypeId;
@TableField("unit_id")
private Integer unitId;
}

23
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/config/SystemConfigMapper.java

@ -0,0 +1,23 @@
package cn.iocoder.yudao.module.system.dal.mysql.config;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.system.controller.admin.config.SystemConfig.vo.SystemConfigPageReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.config.SystemConfigDO;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface SystemConfigMapper extends BaseMapperX<SystemConfigDO> {
// 【关键修正】恢复使用框架默认的分页查询,无需XML
default PageResult<SystemConfigDO> selectPage(SystemConfigPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<SystemConfigDO>()
.likeIfPresent(SystemConfigDO::getName, reqVO.getName())
.orderByDesc(SystemConfigDO::getId));
}
default SystemConfigDO selectByName(String name) {
return selectOne(SystemConfigDO::getName, name);
}
}

44
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/config/SystemConfig/SystemConfigService.java

@ -0,0 +1,44 @@
package cn.iocoder.yudao.module.system.service.config.SystemConfig;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.config.SystemConfig.vo.SystemConfigPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.config.SystemConfig.vo.SystemConfigSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.config.SystemConfigDO;
import jakarta.validation.Valid;
public interface SystemConfigService {
/**
* 创建系统配置
* @param createReqVO 创建信息
* @return 编号
*/
Long createSystemConfig(@Valid SystemConfigSaveReqVO createReqVO);
/**
* 更新系统配置
* @param updateReqVO 更新信息
*/
void updateSystemConfig(@Valid SystemConfigSaveReqVO updateReqVO);
/**
* 删除系统配置
* @param id 编号
*/
void deleteSystemConfig(Long id);
/**
* 获得系统配置
* @param id 编号
* @return 系统配置
*/
SystemConfigDO getSystemConfig(Long id);
/**
* 获得系统配置分页
* @param pageReqVO 分页查询
* @return 系统配置分页
*/
PageResult<SystemConfigDO> getSystemConfigPage(SystemConfigPageReqVO pageReqVO);
}

75
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/config/SystemConfig/SystemConfigServiceImpl.java

@ -0,0 +1,75 @@
package cn.iocoder.yudao.module.system.service.config.SystemConfig;
import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.config.SystemConfig.vo.SystemConfigPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.config.SystemConfig.vo.SystemConfigSaveReqVO;
import cn.iocoder.yudao.module.system.convert.config.SystemConfigConvert;
import cn.iocoder.yudao.module.system.dal.dataobject.config.SystemConfigDO;
import cn.iocoder.yudao.module.system.dal.mysql.config.SystemConfigMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import java.util.Objects;
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
@Service
@Validated
public class SystemConfigServiceImpl implements SystemConfigService {
@Resource
private SystemConfigMapper systemConfigMapper;
@Resource
private SystemConfigConvert systemConfigConvert;
@Override
public Long createSystemConfig(SystemConfigSaveReqVO createReqVO) {
validateNameDuplicate(createReqVO.getName(), null);
SystemConfigDO systemConfig = systemConfigConvert.convert(createReqVO);
systemConfigMapper.insert(systemConfig);
return systemConfig.getId();
}
@Override
public void updateSystemConfig(SystemConfigSaveReqVO updateReqVO) {
validateExists(updateReqVO.getId());
validateNameDuplicate(updateReqVO.getName(), updateReqVO.getId());
SystemConfigDO updateObj = systemConfigConvert.convert(updateReqVO);
systemConfigMapper.updateById(updateObj);
}
@Override
public void deleteSystemConfig(Long id) {
validateExists(id);
systemConfigMapper.deleteById(id);
}
@Override
public SystemConfigDO getSystemConfig(Long id) {
return systemConfigMapper.selectById(id);
}
@Override
public PageResult<SystemConfigDO> getSystemConfigPage(SystemConfigPageReqVO pageReqVO) {
return systemConfigMapper.selectPage(pageReqVO);
}
private void validateExists(Long id) {
if (systemConfigMapper.selectById(id) == null) {
throw ServiceExceptionUtil.exception(SYSTEM_CONFIG_NOT_EXISTS);
}
}
private void validateNameDuplicate(String name, Long id) {
SystemConfigDO config = systemConfigMapper.selectByName(name);
if (config == null) {
return;
}
if (id == null || !Objects.equals(config.getId(), id)) {
throw ServiceExceptionUtil.exception(SYSTEM_CONFIG_NAME_DUPLICATE);
}
}
}
Loading…
Cancel
Save