sys param 删除 id

This commit is contained in:
GYJ 2025-02-10 13:28:34 +08:00
parent a10a934b40
commit a6f4cdb932
8 changed files with 184 additions and 48 deletions

View File

@ -3,11 +3,13 @@ package com.czg;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
/**
* @author ww
*/
@EnableCaching
@SpringBootApplication
@EnableDiscoveryClient
@MapperScan("com.czg.service.system.mapper")

View File

@ -9,6 +9,8 @@ import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author GYJoker
*/
@ -26,18 +28,48 @@ public class SysParamController {
* @return 新增结果
*/
@PostMapping
public CzgResult<Long> insertParams(@RequestBody @Validated({InsertGroup.class}) SysParamsDTO paramsDTO) {
public CzgResult<String> insertParams(@RequestBody @Validated({InsertGroup.class}) SysParamsDTO paramsDTO) {
return sysParamsService.insertParams(paramsDTO);
}
/**
* 修改参数
* @param paramsDTO 参数
* @return 修改结果
* @return 修改结果
*/
@PutMapping
public CzgResult<Long> updateParams(@RequestBody @Validated({UpdateGroup.class}) SysParamsDTO paramsDTO) {
public CzgResult<String> updateParams(@RequestBody @Validated({UpdateGroup.class}) SysParamsDTO paramsDTO) {
return sysParamsService.updateParams(paramsDTO);
}
/**
* 删除参数
* @param code 参数code
* @return 删除结果
*/
@DeleteMapping("/{code}")
public CzgResult<Boolean> deleteParams(@PathVariable String code) {
return sysParamsService.deleteParams(code);
}
/**
* 根据参数编码获取参数
* @param code 参数编码
* @return 参数
*/
@GetMapping("/code/{code}")
public CzgResult<SysParamsDTO> deleteCode(@PathVariable String code) {
return sysParamsService.getParamsByCode(code);
}
/**
* 根据参数类型获取参数
* @param type 参数类型
* @return 参数列表
*/
@GetMapping("/type/{type}")
public CzgResult<List<SysParamsDTO>> deleteType(@PathVariable String type) {
return sysParamsService.getParamsByType(Integer.valueOf(type));
}
}

View File

@ -19,5 +19,9 @@
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -1,41 +1,74 @@
package com.czg.config;
import jakarta.annotation.Resource;
import org.springframework.cache.CacheManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.*;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializationContext;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import java.time.Duration;
/**
* @author GYJoker
*/
@Configuration
public class RedisConfig {
/**
* redisTemplate相关配置
* [@Role(BeanDefinition.ROLE_INFRASTRUCTURE)] 表明这个bean是完全后台模式不需要被代理
*
* @param factory Redis连接工厂类
* @return 返回配置项对象
*/
@Resource
private RedisConnectionFactory factory;
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
RedisCacheConfiguration cacheConfiguration = RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofMinutes(30))
// 设置缓存过期时间为30分钟
.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()))
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer()))
.disableCachingNullValues();
RedisTemplate<String, Object> template = new RedisTemplate<>();
// 配置连接工厂
template.setConnectionFactory(factory);
return RedisCacheManager.builder(redisConnectionFactory)
.cacheDefaults(cacheConfiguration)
.build();
}
@Bean
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
redisTemplate.setConnectionFactory(factory);
return redisTemplate;
}
// 使用StringRedisSerializer来序列化和反序列化redis的key值
template.setKeySerializer(new StringRedisSerializer());
// 设置hash key 和value序列化模式
template.setHashKeySerializer(new StringRedisSerializer());
// template.setHashValueSerializer(jacksonSerial);
template.setHashValueSerializer(new StringRedisSerializer());
template.setValueSerializer(new StringRedisSerializer());
template.afterPropertiesSet();
@Bean
public HashOperations<String, String, Object> hashOperations(RedisTemplate<String, Object> redisTemplate) {
return redisTemplate.opsForHash();
}
return template;
@Bean
public ValueOperations<String, String> valueOperations(RedisTemplate<String, String> redisTemplate) {
return redisTemplate.opsForValue();
}
@Bean
public ListOperations<String, Object> listOperations(RedisTemplate<String, Object> redisTemplate) {
return redisTemplate.opsForList();
}
@Bean
public SetOperations<String, Object> setOperations(RedisTemplate<String, Object> redisTemplate) {
return redisTemplate.opsForSet();
}
@Bean
public ZSetOperations<String, Object> zSetOperations(RedisTemplate<String, Object> redisTemplate) {
return redisTemplate.opsForZSet();
}
}

View File

@ -5,14 +5,14 @@ import com.czg.group.UpdateGroup;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* @author GYJoker
*/
@Data
@Accessors(chain = true)
public class SysParamsDTO {
@NotNull(message = "id不能为空", groups = {UpdateGroup.class})
private Long id;
@NotBlank(message = "参数编码不能为空", groups = {UpdateGroup.class, InsertGroup.class})
private String paramCode;

View File

@ -2,19 +2,17 @@ package com.czg.service.system.entity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 实体类
*
@ -32,15 +30,10 @@ public class SysParams implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* ID
*/
@Id(keyType = KeyType.Auto)
private Long id;
/**
* 参数编码
*/
@Id
private String paramCode;
/**

View File

@ -5,6 +5,8 @@ import com.czg.service.system.dto.SysParamsDTO;
import com.mybatisflex.core.service.IService;
import com.czg.service.system.entity.SysParams;
import java.util.List;
/**
* 服务层
*
@ -18,12 +20,34 @@ public interface SysParamsService extends IService<SysParams> {
* @param paramsDTO 参数
* @return 新增结果
*/
CzgResult<Long> insertParams(SysParamsDTO paramsDTO);
CzgResult<String> insertParams(SysParamsDTO paramsDTO);
/**
* 修改参数
* @param paramsDTO 参数
* @return 修改结果
*/
CzgResult<Long> updateParams(SysParamsDTO paramsDTO);
CzgResult<String> updateParams(SysParamsDTO paramsDTO);
/**
* 删除参数
* @param code 参数code
* @return 删除结果
*/
CzgResult<Boolean> deleteParams(String code);
/**
* 根据参数编码获取参数
* @param code 参数编码
* @return 参数
*/
CzgResult<SysParamsDTO> getParamsByCode(String code);
/**
* 根据参数类型获取参数
* @param type 参数类型
* @return 参数列表
*/
CzgResult<List<SysParamsDTO>> getParamsByType(Integer type);
}

View File

@ -1,5 +1,6 @@
package com.czg.service.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.czg.resp.CzgResult;
import com.czg.sa.StpKit;
import com.czg.service.system.dto.SysParamsDTO;
@ -8,8 +9,14 @@ import com.czg.service.system.mapper.SysParamsMapper;
import com.czg.service.system.service.SysParamsService;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* 服务层实现
*
@ -17,10 +24,11 @@ import org.springframework.stereotype.Service;
* @since 2025-02-07
*/
@Service
@CacheConfig(cacheNames = "params")
public class SysParamsServiceImpl extends ServiceImpl<SysParamsMapper, SysParams> implements SysParamsService{
@Override
public CzgResult<Long> insertParams(SysParamsDTO paramsDTO) {
public CzgResult<String> insertParams(SysParamsDTO paramsDTO) {
// 查询 paramCode 是否存在
SysParams sysParams = getOne(new QueryWrapper().eq(SysParams::getParamCode, paramsDTO.getParamCode()));
if (sysParams != null) {
@ -39,14 +47,15 @@ public class SysParamsServiceImpl extends ServiceImpl<SysParamsMapper, SysParams
save(sysParams);
return CzgResult.success(sysParams.getId());
return CzgResult.success(sysParams.getParamCode());
}
@Override
public CzgResult<Long> updateParams(SysParamsDTO paramsDTO) {
@CacheEvict(key = "#paramsDTO.paramCode")
public CzgResult<String> updateParams(SysParamsDTO paramsDTO) {
// 查询 paramCode 是否存在
SysParams sysParams = getOne(new QueryWrapper().eq(SysParams::getParamCode, paramsDTO.getParamCode())
.ne(SysParams::getId, paramsDTO.getId()));
.ne(SysParams::getParamCode, paramsDTO.getParamCode()));
if (sysParams != null) {
return CzgResult.failure("参数编码已存在");
}
@ -54,14 +63,53 @@ public class SysParamsServiceImpl extends ServiceImpl<SysParamsMapper, SysParams
Long userId = StpKit.ADMIN.getLoginId(1L);
// 修改参数
sysParams = getById(paramsDTO.getId());
sysParams.setParamCode(paramsDTO.getParamCode())
.setParamValue(paramsDTO.getParamValue())
sysParams = getById(paramsDTO.getParamCode());
if (!sysParams.getParamCode().equals(paramsDTO.getParamCode())) {
return CzgResult.failure("参数编码不能修改");
}
sysParams.setParamValue(paramsDTO.getParamValue())
.setParamType(paramsDTO.getParamType())
.setUpdateUserId(userId);
updateById(sysParams);
return CzgResult.success(sysParams.getId());
return CzgResult.success(sysParams.getParamCode());
}
@Override
@CacheEvict(key = "#code")
public CzgResult<Boolean> deleteParams(String code) {
SysParams sysParams = getById(code);
if (sysParams == null) {
return CzgResult.failure("参数不存在");
}
removeById(code);
return CzgResult.success(true);
}
@Override
@Cacheable(key = "#code")
public CzgResult<SysParamsDTO> getParamsByCode(String code) {
SysParams sysParams = getOne(new QueryWrapper().eq(SysParams::getParamCode, code));
if (sysParams == null) {
return CzgResult.failure("参数不存在");
}
SysParamsDTO sysParamsDTO = BeanUtil.toBean(sysParams, SysParamsDTO.class);
return CzgResult.success(sysParamsDTO);
}
@Override
public CzgResult<List<SysParamsDTO>> getParamsByType(Integer type) {
List<SysParams> sysParamsList = list(new QueryWrapper().eq(SysParams::getParamType, type));
List<SysParamsDTO> sysParamsDTOList = new ArrayList<>();
for (SysParams sysParams : sysParamsList) {
sysParamsDTOList.add(BeanUtil.toBean(sysParams, SysParamsDTO.class));
}
return CzgResult.success(sysParamsDTOList);
}
}