From 0e5e319d7c245a2f929742db74a3f9b0f322c3fd Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 09 七月 2024 15:55:42 +0800
Subject: [PATCH] 系统配置代码

---
 src/main/java/com/ycl/jxkg/mapper/SysConfigMapper.java               |   34 +++++
 src/main/java/com/ycl/jxkg/domain/query/SysConfigQuery.java          |   22 +++
 src/main/java/com/ycl/jxkg/domain/entity/SysConfig.java              |   27 ++++
 src/main/java/com/ycl/jxkg/controller/admin/SysConfigController.java |   48 ++++++++
 src/main/java/com/ycl/jxkg/service/impl/SysConfigServiceImpl.java    |   62 ++++++++++
 src/main/java/com/ycl/jxkg/domain/form/SysConfigForm.java            |   38 ++++++
 src/main/java/com/ycl/jxkg/domain/vo/SysConfigVO.java                |   33 +++++
 src/main/java/com/ycl/jxkg/service/SysConfigService.java             |   33 +++++
 src/main/resources/mapper/SysConfigMapper.xml                        |   32 +++++
 9 files changed, 329 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ycl/jxkg/controller/admin/SysConfigController.java b/src/main/java/com/ycl/jxkg/controller/admin/SysConfigController.java
new file mode 100644
index 0000000..b698b90
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/controller/admin/SysConfigController.java
@@ -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);
+    }
+}
diff --git a/src/main/java/com/ycl/jxkg/domain/entity/SysConfig.java b/src/main/java/com/ycl/jxkg/domain/entity/SysConfig.java
new file mode 100644
index 0000000..9eb49e5
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/domain/entity/SysConfig.java
@@ -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;
+
+
+}
diff --git a/src/main/java/com/ycl/jxkg/domain/form/SysConfigForm.java b/src/main/java/com/ycl/jxkg/domain/form/SysConfigForm.java
new file mode 100644
index 0000000..32d79d7
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/domain/form/SysConfigForm.java
@@ -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;
+    }
+
+}
diff --git a/src/main/java/com/ycl/jxkg/domain/query/SysConfigQuery.java b/src/main/java/com/ycl/jxkg/domain/query/SysConfigQuery.java
new file mode 100644
index 0000000..38bdc45
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/domain/query/SysConfigQuery.java
@@ -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 {
+}
+
diff --git a/src/main/java/com/ycl/jxkg/domain/vo/SysConfigVO.java b/src/main/java/com/ycl/jxkg/domain/vo/SysConfigVO.java
new file mode 100644
index 0000000..33737a2
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/domain/vo/SysConfigVO.java
@@ -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;
+    }
+
+}
diff --git a/src/main/java/com/ycl/jxkg/mapper/SysConfigMapper.java b/src/main/java/com/ycl/jxkg/mapper/SysConfigMapper.java
new file mode 100644
index 0000000..c4521dd
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/mapper/SysConfigMapper.java
@@ -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);
+
+}
diff --git a/src/main/java/com/ycl/jxkg/service/SysConfigService.java b/src/main/java/com/ycl/jxkg/service/SysConfigService.java
new file mode 100644
index 0000000..c3c2bcd
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/service/SysConfigService.java
@@ -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();
+}
diff --git a/src/main/java/com/ycl/jxkg/service/impl/SysConfigServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/SysConfigServiceImpl.java
new file mode 100644
index 0000000..8012e7c
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/service/impl/SysConfigServiceImpl.java
@@ -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));
+    }
+}
diff --git a/src/main/resources/mapper/SysConfigMapper.xml b/src/main/resources/mapper/SysConfigMapper.xml
new file mode 100644
index 0000000..dea5071
--- /dev/null
+++ b/src/main/resources/mapper/SysConfigMapper.xml
@@ -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>

--
Gitblit v1.8.0