diff --git a/src/main/java/cn/lihongjie/coal/common/Constants.java b/src/main/java/cn/lihongjie/coal/common/Constants.java index 2c372dc1..7e43c5af 100644 --- a/src/main/java/cn/lihongjie/coal/common/Constants.java +++ b/src/main/java/cn/lihongjie/coal/common/Constants.java @@ -42,6 +42,7 @@ public class Constants { public static final String CACHE_ORG_ADMIN_HAS_PERMISSION = "orgAdminHasPermission"; public static final String SYSCONFIG_ENABLE_REQUEST_SUBMIT_TOKEN = "enable_request_submit_token"; public static final String HTTP_HEADER_SUBMIT_TOKEN = "X-Submit-Token"; + public static final String CACHE_ERROR_MSG = "errorMsg"; public static String SYSCONFIG_ENABLE_CAPTCHA = "enable_captcha"; public static String SYSCONFIG_ENABLE_REQUEST_SIGN = "enable_request_sign"; public static String SYSCONFIG_SESSION_TIMEOUT = "session_timeout"; diff --git a/src/main/java/cn/lihongjie/coal/errorMsg/controller/ErrorMsgController.java b/src/main/java/cn/lihongjie/coal/errorMsg/controller/ErrorMsgController.java new file mode 100644 index 00000000..dee438b1 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/errorMsg/controller/ErrorMsgController.java @@ -0,0 +1,52 @@ +package cn.lihongjie.coal.errorMsg.controller; + +import cn.lihongjie.coal.annotation.SysLog; +import cn.lihongjie.coal.base.dto.CommonQuery; +import cn.lihongjie.coal.base.dto.IdRequest; +import cn.lihongjie.coal.errorMsg.dto.CreateErrorMsgDto; +import cn.lihongjie.coal.errorMsg.dto.ErrorMsgDto; +import cn.lihongjie.coal.errorMsg.dto.UpdateErrorMsgDto; +import cn.lihongjie.coal.errorMsg.service.ErrorMsgService; + +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +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; + +@RestController +@RequestMapping("/errorMsg") +@SysLog(module = "错误消息") +@Slf4j +public class ErrorMsgController { + @Autowired private ErrorMsgService service; + + @PostMapping("/create") + public ErrorMsgDto create(@RequestBody CreateErrorMsgDto request) { + return this.service.create(request); + } + + @PostMapping("/update") + public ErrorMsgDto update(@RequestBody UpdateErrorMsgDto request) { + return this.service.update(request); + } + + @PostMapping("/delete") + public Object delete(@RequestBody IdRequest request) { + this.service.delete(request); + return true; + } + + @PostMapping("/getById") + public ErrorMsgDto getById(@RequestBody IdRequest request) { + return this.service.getById(request.getId()); + } + + @PostMapping("/list") + public Page list(@RequestBody CommonQuery request) { + return this.service.list(request); + } +} diff --git a/src/main/java/cn/lihongjie/coal/errorMsg/dto/CreateErrorMsgDto.java b/src/main/java/cn/lihongjie/coal/errorMsg/dto/CreateErrorMsgDto.java new file mode 100644 index 00000000..8f06516c --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/errorMsg/dto/CreateErrorMsgDto.java @@ -0,0 +1,10 @@ +package cn.lihongjie.coal.errorMsg.dto; + +import cn.lihongjie.coal.base.dto.CommonDto; + +import lombok.Data; + +@Data +public class CreateErrorMsgDto extends CommonDto { + private String msg; +} diff --git a/src/main/java/cn/lihongjie/coal/errorMsg/dto/ErrorMsgDto.java b/src/main/java/cn/lihongjie/coal/errorMsg/dto/ErrorMsgDto.java new file mode 100644 index 00000000..8753e246 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/errorMsg/dto/ErrorMsgDto.java @@ -0,0 +1,10 @@ +package cn.lihongjie.coal.errorMsg.dto; + +import cn.lihongjie.coal.base.dto.CommonDto; + +import lombok.Data; + +@Data +public class ErrorMsgDto extends CommonDto { + private String msg; +} diff --git a/src/main/java/cn/lihongjie/coal/errorMsg/dto/UpdateErrorMsgDto.java b/src/main/java/cn/lihongjie/coal/errorMsg/dto/UpdateErrorMsgDto.java new file mode 100644 index 00000000..ef17113b --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/errorMsg/dto/UpdateErrorMsgDto.java @@ -0,0 +1,10 @@ +package cn.lihongjie.coal.errorMsg.dto; + +import cn.lihongjie.coal.base.dto.CommonDto; + +import lombok.Data; + +@Data +public class UpdateErrorMsgDto extends CommonDto { + private String msg; +} diff --git a/src/main/java/cn/lihongjie/coal/errorMsg/entity/ErrorMsgEntity.java b/src/main/java/cn/lihongjie/coal/errorMsg/entity/ErrorMsgEntity.java new file mode 100644 index 00000000..9c40cbc4 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/errorMsg/entity/ErrorMsgEntity.java @@ -0,0 +1,14 @@ +package cn.lihongjie.coal.errorMsg.entity; + +import cn.lihongjie.coal.base.entity.CommonEntity; + +import jakarta.persistence.Entity; + +import lombok.Data; + +@Data +@Entity +public class ErrorMsgEntity extends CommonEntity { + + private String msg; +} diff --git a/src/main/java/cn/lihongjie/coal/errorMsg/mapper/ErrorMsgMapper.java b/src/main/java/cn/lihongjie/coal/errorMsg/mapper/ErrorMsgMapper.java new file mode 100644 index 00000000..0f8720c4 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/errorMsg/mapper/ErrorMsgMapper.java @@ -0,0 +1,19 @@ +package cn.lihongjie.coal.errorMsg.mapper; + +import cn.lihongjie.coal.base.mapper.BaseMapper; +import cn.lihongjie.coal.base.mapper.CommonEntityMapper; +import cn.lihongjie.coal.base.mapper.CommonMapper; +import cn.lihongjie.coal.errorMsg.dto.CreateErrorMsgDto; +import cn.lihongjie.coal.errorMsg.dto.ErrorMsgDto; +import cn.lihongjie.coal.errorMsg.dto.UpdateErrorMsgDto; +import cn.lihongjie.coal.errorMsg.entity.ErrorMsgEntity; + +import org.mapstruct.Mapper; +import org.mapstruct.control.DeepClone; + +@Mapper( + componentModel = org.mapstruct.MappingConstants.ComponentModel.SPRING, + uses = {CommonMapper.class, CommonEntityMapper.class}, + mappingControl = DeepClone.class) +public interface ErrorMsgMapper + extends BaseMapper {} diff --git a/src/main/java/cn/lihongjie/coal/errorMsg/repository/ErrorMsgRepository.java b/src/main/java/cn/lihongjie/coal/errorMsg/repository/ErrorMsgRepository.java new file mode 100644 index 00000000..33c7520a --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/errorMsg/repository/ErrorMsgRepository.java @@ -0,0 +1,13 @@ +package cn.lihongjie.coal.errorMsg.repository; + +import cn.lihongjie.coal.base.dao.BaseRepository; +import cn.lihongjie.coal.errorMsg.entity.ErrorMsgEntity; + +import org.springframework.data.jpa.repository.Query; +import org.springframework.stereotype.Repository; + +@Repository +public interface ErrorMsgRepository extends BaseRepository { + @Query("select e.msg from ErrorMsgEntity e where e.code = ?1") + String getMsg(String code); +} diff --git a/src/main/java/cn/lihongjie/coal/errorMsg/service/ErrorMsgService.java b/src/main/java/cn/lihongjie/coal/errorMsg/service/ErrorMsgService.java new file mode 100644 index 00000000..41ff62f3 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/errorMsg/service/ErrorMsgService.java @@ -0,0 +1,85 @@ +package cn.lihongjie.coal.errorMsg.service; + +import cn.lihongjie.coal.base.dto.CommonQuery; +import cn.lihongjie.coal.base.dto.IdRequest; +import cn.lihongjie.coal.base.service.BaseService; +import cn.lihongjie.coal.common.Constants; +import cn.lihongjie.coal.dbFunctions.DbFunctionService; +import cn.lihongjie.coal.errorMsg.dto.CreateErrorMsgDto; +import cn.lihongjie.coal.errorMsg.dto.ErrorMsgDto; +import cn.lihongjie.coal.errorMsg.dto.UpdateErrorMsgDto; +import cn.lihongjie.coal.errorMsg.entity.ErrorMsgEntity; +import cn.lihongjie.coal.errorMsg.mapper.ErrorMsgMapper; +import cn.lihongjie.coal.errorMsg.repository.ErrorMsgRepository; + +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.core.convert.ConversionService; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Sort; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@Slf4j +@Transactional +public class ErrorMsgService extends BaseService { + @Autowired private ErrorMsgRepository repository; + + @Autowired private ErrorMsgMapper mapper; + + @Autowired private ConversionService conversionService; + + @Autowired private DbFunctionService dbFunctionService; + + + @Cacheable(value = Constants.CACHE_ERROR_MSG, key = "#code") + public String getMsg(String code) { + log.info("get msg from db: {}", code); + return repository.getMsg(code); + } + + public ErrorMsgDto create(CreateErrorMsgDto request) { + ErrorMsgEntity entity = mapper.toEntity(request); + + this.repository.save(entity); + return getById(entity.getId()); + } + + @CacheEvict(value = Constants.CACHE_ERROR_MSG, key = "#request.code") + public ErrorMsgDto update(UpdateErrorMsgDto request) { + ErrorMsgEntity entity = this.repository.get(request.getId()); + this.mapper.updateEntity(entity, request); + + this.repository.save(entity); + + return getById(entity.getId()); + } + + @CacheEvict(value = Constants.CACHE_ERROR_MSG, allEntries = true) + public void delete(IdRequest request) { + this.repository.deleteAllById(request.getIds()); + } + + public ErrorMsgDto getById(String id) { + ErrorMsgEntity entity = repository.get(id); + + return mapper.toDto(entity); + } + + public Page list(CommonQuery query) { + Page page = + repository.findAll( + query.specification(conversionService), + PageRequest.of( + query.getPageNo(), + query.getPageSize(), + Sort.by(query.getOrders()))); + + return page.map(this.mapper::toDto); + } +} diff --git a/src/main/resources/scripts/dict/enum/errorMsgDict.groovy b/src/main/resources/scripts/dict/enum/errorMsgDict.groovy new file mode 100644 index 00000000..269fdfcd --- /dev/null +++ b/src/main/resources/scripts/dict/enum/errorMsgDict.groovy @@ -0,0 +1,17 @@ + +package scripts.dict + +import cn.lihongjie.coal.base.dto.CommonQuery +import cn.lihongjie.coal.errorMsg.controller.ErrorMsgController +import org.springframework.context.ApplicationContext + +ApplicationContext ioc = ioc + +def controller = ioc.getBean(ErrorMsgController.class) + + + + +return controller.list(new CommonQuery()) + +