xiangpei
2024-07-09 0e5e319d7c245a2f929742db74a3f9b0f322c3fd
系统配置代码
9个文件已添加
329 ■■■■■ 已修改文件
src/main/java/com/ycl/jxkg/controller/admin/SysConfigController.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/domain/entity/SysConfig.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/domain/form/SysConfigForm.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/domain/query/SysConfigQuery.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/domain/vo/SysConfigVO.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/mapper/SysConfigMapper.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/service/SysConfigService.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/service/impl/SysConfigServiceImpl.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/SysConfigMapper.xml 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/controller/admin/SysConfigController.java
New file
@@ -0,0 +1,48 @@
package com.ycl.jxkg.controller.admin;
import com.ycl.jxkg.group.Update;
import com.ycl.jxkg.group.Add;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import lombok.RequiredArgsConstructor;
import java.util.List;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotEmpty;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.ycl.jxkg.service.SysConfigService;
import com.ycl.jxkg.base.Result;
import com.ycl.jxkg.domain.form.SysConfigForm;
import com.ycl.jxkg.domain.query.SysConfigQuery;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
/**
 * 系统配置表 前端控制器
 *
 * @author xp
 * @since 2024-07-09
 */
@Validated
@RequiredArgsConstructor
@Api(value = "系统配置表", tags = "系统配置表管理")
@RestController
@RequestMapping("/api/sys-config")
public class SysConfigController {
    private final SysConfigService sysConfigService;
    @GetMapping
    @ApiOperation(value = "获取系统配置", notes = "系统配置")
    @PreAuthorize("hasAuthority('sysConfig:config')")
    public Result config() {
        return sysConfigService.config();
    }
    @PutMapping
    @ApiOperation(value = "修改系统配置", notes = "系统配置")
    @PreAuthorize("hasAuthority('sysConfig:edit')")
    public Result edit(@RequestBody @Validated SysConfigForm form) {
        return sysConfigService.update(form);
    }
}
src/main/java/com/ycl/jxkg/domain/entity/SysConfig.java
New file
@@ -0,0 +1,27 @@
package com.ycl.jxkg.domain.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import com.ycl.jxkg.domain.base.AbsEntity;
import lombok.Data;
/**
 * 系统配置表
 *
 * @author xp
 * @since 2024-07-09
 */
@Data
@TableName("sys_config")
public class SysConfig extends AbsEntity {
    private static final long serialVersionUID = 1L;
    @TableField("password_expire_time")
    /** 密码过期时间 */
    private Integer passwordExpireTime;
}
src/main/java/com/ycl/jxkg/domain/form/SysConfigForm.java
New file
@@ -0,0 +1,38 @@
package com.ycl.jxkg.domain.form;
import com.ycl.jxkg.group.Update;
import com.ycl.jxkg.group.Add;
import com.ycl.jxkg.domain.base.AbsForm;
import com.ycl.jxkg.domain.entity.SysConfig;
import org.springframework.beans.BeanUtils;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import org.springframework.lang.NonNull;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * 系统配置表表单
 *
 * @author xp
 * @since 2024-07-09
 */
@Data
@ApiModel(value = "SysConfig表单", description = "系统配置表表单")
public class SysConfigForm extends AbsForm {
    @NotNull(message = "密码过期时间不能为空", groups = {Add.class, Update.class})
    @ApiModelProperty("密码过期时间")
    private Integer passwordExpireTime;
    public static SysConfig getEntityByForm(@NonNull SysConfigForm form, SysConfig entity) {
        if(entity == null) {
          entity = new SysConfig();
        }
        BeanUtils.copyProperties(form, entity);
        return entity;
    }
}
src/main/java/com/ycl/jxkg/domain/query/SysConfigQuery.java
New file
@@ -0,0 +1,22 @@
package com.ycl.jxkg.domain.query;
import com.ycl.jxkg.domain.base.AbsQuery;
import java.util.List;
import org.springframework.lang.NonNull;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * 系统配置表查询
 *
 * @author xp
 * @since 2024-07-09
 */
@Data
@ApiModel(value = "SysConfig查询", description = "系统配置表查询")
public class SysConfigQuery extends AbsQuery {
}
src/main/java/com/ycl/jxkg/domain/vo/SysConfigVO.java
New file
@@ -0,0 +1,33 @@
package com.ycl.jxkg.domain.vo;
import com.ycl.jxkg.domain.base.AbsVo;
import com.ycl.jxkg.domain.entity.SysConfig;
import java.util.List;
import org.springframework.lang.NonNull;
import org.springframework.beans.BeanUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * 系统配置表展示
 *
 * @author xp
 * @since 2024-07-09
 */
@Data
public class SysConfigVO extends AbsVo {
    /** 密码过期时间 */
    private Integer passwordExpireTime;
    public static SysConfigVO getVoByEntity(@NonNull SysConfig entity, SysConfigVO vo) {
        if(vo == null) {
            vo = new SysConfigVO();
        }
        BeanUtils.copyProperties(entity, vo);
        return vo;
    }
}
src/main/java/com/ycl/jxkg/mapper/SysConfigMapper.java
New file
@@ -0,0 +1,34 @@
package com.ycl.jxkg.mapper;
import com.ycl.jxkg.domain.entity.SysConfig;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ycl.jxkg.domain.query.SysConfigQuery;
import com.ycl.jxkg.domain.vo.SysConfigVO;
import com.ycl.jxkg.domain.form.SysConfigForm;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
 * 系统配置表 Mapper 接口
 *
 * @author xp
 * @since 2024-07-09
 */
@Mapper
public interface SysConfigMapper extends BaseMapper<SysConfig> {
    /**
     * id查找系统配置表
     * @param id
     * @return
     */
    SysConfigVO getById(Integer id);
    /**
    *  分页
    */
    IPage getPage(IPage page, @Param("query") SysConfigQuery query);
}
src/main/java/com/ycl/jxkg/service/SysConfigService.java
New file
@@ -0,0 +1,33 @@
package com.ycl.jxkg.service;
import com.ycl.jxkg.domain.entity.SysConfig;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ycl.jxkg.base.Result;
import com.ycl.jxkg.domain.form.SysConfigForm;
import com.ycl.jxkg.domain.query.SysConfigQuery;
import java.util.List;
/**
 * 系统配置表 服务类
 *
 * @author xp
 * @since 2024-07-09
 */
public interface SysConfigService extends IService<SysConfig> {
    /**
     * 修改配置
     *
     * @param form
     * @return
     */
    Result update(SysConfigForm form);
    /**
     * 获取系统配置
     *
     * @return
     */
    Result config();
}
src/main/java/com/ycl/jxkg/service/impl/SysConfigServiceImpl.java
New file
@@ -0,0 +1,62 @@
package com.ycl.jxkg.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ycl.jxkg.domain.entity.SysConfig;
import com.ycl.jxkg.mapper.SysConfigMapper;
import com.ycl.jxkg.service.SysConfigService;
import com.ycl.jxkg.base.Result;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.jxkg.domain.form.SysConfigForm;
import com.ycl.jxkg.domain.vo.SysConfigVO;
import com.ycl.jxkg.domain.query.SysConfigQuery;
import org.springframework.stereotype.Service;
import lombok.RequiredArgsConstructor;
import com.ycl.jxkg.utils.PageUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.util.Assert;
import java.rmi.ServerException;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * 系统配置表 服务实现类
 *
 * @author xp
 * @since 2024-07-09
 */
@Service
@RequiredArgsConstructor
public class SysConfigServiceImpl extends ServiceImpl<SysConfigMapper, SysConfig> implements SysConfigService {
    private final SysConfigMapper sysConfigMapper;
    /**
     * 修改
     * @param form
     * @return
     */
    @Override
    public Result update(SysConfigForm form) {
        SysConfig entity = baseMapper.selectById(form.getId());
        if (Objects.isNull(entity)) {
            entity = new SysConfig();
        }
        BeanUtils.copyProperties(form, entity);
        this.saveOrUpdate(entity);
        return Result.ok("修改成功");
    }
    @Override
    public Result config() {
        List<SysConfig> configList = baseMapper.selectList(null);
        if (configList.size() > 1) {
            throw new RuntimeException("发现多个系统配置,无法正常运行,请联系系统管理员");
        }
        if (configList.size() < 1) {
            return Result.ok(new SysConfig());
        }
        return Result.ok().data(configList.get(0));
    }
}
src/main/resources/mapper/SysConfigMapper.xml
New file
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ycl.jxkg.mapper.SysConfigMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.ycl.jxkg.domain.vo.SysConfigVO">
        <result column="password_expire_time" property="passwordExpireTime" />
    </resultMap>
    <select id="getById" resultMap="BaseResultMap">
        SELECT
            SC.password_expire_time,
            SC.id
        FROM
            sys_config SC
        WHERE
            SC.id = #{id} AND SC.deleted = 0
    </select>
    <select id="getPage" resultMap="BaseResultMap">
        SELECT
            SC.password_expire_time,
            SC.id
        FROM
            sys_config SC
        WHERE
            SC.deleted = 0
    </select>
</mapper>