diff --git a/dolphin-commons/dolphin-common-core/pom.xml b/dolphin-commons/dolphin-common-core/pom.xml index ac7bd4a..831937d 100644 --- a/dolphin-commons/dolphin-common-core/pom.xml +++ b/dolphin-commons/dolphin-common-core/pom.xml @@ -17,6 +17,10 @@ org.springframework.boot spring-boot-starter-web + + org.springframework.boot + spring-boot-starter-validation + io.jsonwebtoken diff --git a/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/entity/PageRequest.java b/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/entity/PageRequest.java new file mode 100644 index 0000000..eb7123d --- /dev/null +++ b/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/entity/PageRequest.java @@ -0,0 +1,25 @@ +package day.gitlab.dolphin.common.core.entity; + +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageRequest { + + /** 当前分页,默认1 */ + @Min(1) + @NotNull + private Long pageNumber = 1L; + + /** 分页条数,默认10 */ + @Min(1) + @NotNull + private Long pageSize = 10L; +} diff --git a/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/entity/PageResponse.java b/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/entity/PageResponse.java new file mode 100644 index 0000000..3ef5a1a --- /dev/null +++ b/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/entity/PageResponse.java @@ -0,0 +1,27 @@ +package day.gitlab.dolphin.common.core.entity; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageResponse { + + /** 总记录数 */ + private Long total = 0L; + + /** 当前分页,默认1 */ + private Long pageNumber = 1L; + + /** 分页条数,默认10 */ + private Long pageSize = 10L; + + /** 记录 */ + private List records; +} diff --git a/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/entity/QueryPageRequest.java b/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/entity/QueryPageRequest.java new file mode 100644 index 0000000..ba59305 --- /dev/null +++ b/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/entity/QueryPageRequest.java @@ -0,0 +1,15 @@ +package day.gitlab.dolphin.common.core.entity; + +import lombok.*; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class QueryPageRequest extends PageRequest { + + /** + * 查询参数 + */ + private T query; +} diff --git a/dolphin-commons/dolphin-common-mybatis/src/main/java/day/gitlab/dolphin/common/mybatis/Pages.java b/dolphin-commons/dolphin-common-mybatis/src/main/java/day/gitlab/dolphin/common/mybatis/Pages.java new file mode 100644 index 0000000..12f9dbd --- /dev/null +++ b/dolphin-commons/dolphin-common-mybatis/src/main/java/day/gitlab/dolphin/common/mybatis/Pages.java @@ -0,0 +1,35 @@ +package day.gitlab.dolphin.common.mybatis; + +import com.mybatisflex.core.BaseMapper; +import com.mybatisflex.core.paginate.Page; +import com.mybatisflex.core.query.QueryWrapper; +import day.gitlab.dolphin.common.core.entity.PageResponse; +import day.gitlab.dolphin.common.core.entity.QueryPageRequest; + +import java.util.Objects; +import java.util.function.BiFunction; +import java.util.function.Function; + +public class Pages { + + public static Page paginate(BaseMapper mapper, QueryPageRequest pageRequest, BiFunction biFunction) { + Page page = new Page<>(pageRequest.getPageNumber(), pageRequest.getPageSize()); + QueryWrapper wrapper = new QueryWrapper(); + wrapper = biFunction.apply(pageRequest.getQuery(), wrapper); + + return mapper.paginate(page, wrapper); + } + + public static PageResponse toPageResponse(Page page, Function mapFunction) { + PageResponse pageResponse = new PageResponse<>(); + pageResponse.setPageNumber(page.getPageNumber()); + pageResponse.setPageSize(page.getPageSize()); + pageResponse.setTotal(page.getTotalRow()); + + if (page.getRecords() != null) { + pageResponse.setRecords(page.getRecords().stream().map(mapFunction).filter(Objects::nonNull).toList()); + } + + return pageResponse; + } +} diff --git a/dolphin-commons/dolphin-common-mybatis/src/main/java/day/gitlab/dolphin/common/mybatis/UUIDv7KeyGenerator.java b/dolphin-commons/dolphin-common-mybatis/src/main/java/day/gitlab/dolphin/common/mybatis/UUIDv7KeyGenerator.java index 311da48..763d933 100644 --- a/dolphin-commons/dolphin-common-mybatis/src/main/java/day/gitlab/dolphin/common/mybatis/UUIDv7KeyGenerator.java +++ b/dolphin-commons/dolphin-common-mybatis/src/main/java/day/gitlab/dolphin/common/mybatis/UUIDv7KeyGenerator.java @@ -9,6 +9,6 @@ public class UUIDv7KeyGenerator implements IKeyGenerator { @Override public Object generate(Object entity, String keyColumn) { - return UUIDv7.randomUUID().timestamp(); + return UUIDv7.randomUUID().toString(); } } diff --git a/dolphin-compose/src/main/resources/application.yml b/dolphin-compose/src/main/resources/application.yml index 6944be5..42114c6 100644 --- a/dolphin-compose/src/main/resources/application.yml +++ b/dolphin-compose/src/main/resources/application.yml @@ -17,5 +17,6 @@ spring: port: 10001 database: 0 password: 123456 - + jackson: + date-format: yyyy-MM-dd HH:mm:ss diff --git a/dolphin-compose/src/main/resources/i18n/messages.properties b/dolphin-compose/src/main/resources/i18n/messages.properties index 1a21797..7738a2d 100644 --- a/dolphin-compose/src/main/resources/i18n/messages.properties +++ b/dolphin-compose/src/main/resources/i18n/messages.properties @@ -1,9 +1,12 @@ 00000000=success 99999999=failure + 00010001=Unauthorized 00010002=Token invalid 00010003=Token expired 00010004=Refresh Token expired 00010005=Forbidden 00010101=Username or password is incorrect -00010102=User is not enabled \ No newline at end of file +00010102=User is not enabled + +00020101=Fields required:[{0}] \ No newline at end of file diff --git a/dolphin-compose/src/main/resources/i18n/messages_zh_CN.properties b/dolphin-compose/src/main/resources/i18n/messages_zh_CN.properties index 1b6ad56..3d86f36 100644 --- a/dolphin-compose/src/main/resources/i18n/messages_zh_CN.properties +++ b/dolphin-compose/src/main/resources/i18n/messages_zh_CN.properties @@ -3,6 +3,7 @@ 99999999=失败 # 00 系统 + # 0001 系统->认证授权 00010001=未授权 00010002=令牌无效 @@ -12,3 +13,6 @@ # 000101 系统->认证授权->登录 00010101=用户名或密码错误 00010102=用户已被禁用 + +# 0002 核心模块 +00020101=字段不能为空:[{0}] diff --git a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/constants/Exceptions.java b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/constants/Exceptions.java new file mode 100644 index 0000000..f1d4603 --- /dev/null +++ b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/constants/Exceptions.java @@ -0,0 +1,6 @@ +package day.gitlab.dolphin.core.constants; + +public class Exceptions { + + public static final String FIELD_REQUIRED = "00020101"; +} diff --git a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/controller/DictionaryController.java b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/controller/DictionaryController.java index 046407c..d223722 100644 --- a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/controller/DictionaryController.java +++ b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/controller/DictionaryController.java @@ -1,18 +1,15 @@ package day.gitlab.dolphin.core.controller; -import com.mybatisflex.core.paginate.Page; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.beans.factory.annotation.Autowired; -import day.gitlab.dolphin.core.entity.Dictionary; +import day.gitlab.dolphin.common.core.entity.PageResponse; +import day.gitlab.dolphin.common.core.entity.QueryPageRequest; +import day.gitlab.dolphin.common.core.entity.Result; +import day.gitlab.dolphin.common.security.annotation.AuthorityCheck; +import day.gitlab.dolphin.common.security.annotation.AuthorityType; +import day.gitlab.dolphin.core.entity.dto.DictionaryDTO; +import day.gitlab.dolphin.core.entity.vo.DictionaryVO; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.*; import day.gitlab.dolphin.core.service.DictionaryService; -import org.springframework.web.bind.annotation.RestController; -import java.util.List; /** * 字典 控制层。 @@ -24,72 +21,45 @@ import java.util.List; @RequestMapping("/dictionary") public class DictionaryController { - @Autowired + @Resource private DictionaryService dictionaryService; - /** - * 保存字典。 - * - * @param dictionary 字典 - * @return {@code true} 保存成功,{@code false} 保存失败 - */ - @PostMapping("save") - public boolean save(@RequestBody Dictionary dictionary) { - return dictionaryService.save(dictionary); - } - - /** - * 根据主键删除字典。 - * - * @param id 主键 - * @return {@code true} 删除成功,{@code false} 删除失败 - */ - @DeleteMapping("remove/{id}") - public boolean remove(@PathVariable String id) { - return dictionaryService.removeById(id); - } - - /** - * 根据主键更新字典。 - * - * @param dictionary 字典 - * @return {@code true} 更新成功,{@code false} 更新失败 - */ - @PutMapping("update") - public boolean update(@RequestBody Dictionary dictionary) { - return dictionaryService.updateById(dictionary); - } - - /** - * 查询所有字典。 - * - * @return 所有数据 - */ - @GetMapping("list") - public List list() { - return dictionaryService.list(); - } - - /** - * 根据主键获取字典。 - * - * @param id 字典主键 - * @return 字典详情 - */ - @GetMapping("getInfo/{id}") - public Dictionary getInfo(@PathVariable String id) { - return dictionaryService.getById(id); - } - /** * 分页查询字典。 * - * @param page 分页对象 + * @param pageRequest 分页请求参数 * @return 分页对象 */ - @GetMapping("page") - public Page page(Page page) { - return dictionaryService.page(page); + @GetMapping("paginate") + public Result> page(@RequestBody QueryPageRequest pageRequest) { + return Result.success(dictionaryService.page(pageRequest)); } + @PostMapping("add") + @AuthorityCheck(type = AuthorityType.OR, value = {"ROLE00001"}) + public Result add(@RequestBody DictionaryDTO dictionaryDTO) { + dictionaryService.add(dictionaryDTO); + return Result.success(); + } + + @PostMapping("edit") + @AuthorityCheck(type = AuthorityType.OR, value = {"ROLE00001"}) + public Result edit(@RequestBody DictionaryDTO dictionaryDTO) { + dictionaryService.edit(dictionaryDTO); + return Result.success(); + } + + @PostMapping("delete") + @AuthorityCheck(type = AuthorityType.OR, value = {"ROLE00001"}) + public Result delete(@RequestBody DictionaryDTO dictionaryDTO) { + dictionaryService.delete(dictionaryDTO.getId()); + return Result.success(); + } + + @PostMapping("deleteBatch") + @AuthorityCheck(type = AuthorityType.OR, value = {"ROLE00001"}) + public Result deleteBatch(@RequestBody DictionaryDTO dictionaryDTO) { + dictionaryService.deleteBatch(dictionaryDTO.getIds()); + return Result.success(); + } } diff --git a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/controller/DictionaryItemController.java b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/controller/DictionaryItemController.java index d0c3bc6..52a30a1 100644 --- a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/controller/DictionaryItemController.java +++ b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/controller/DictionaryItemController.java @@ -1,18 +1,7 @@ package day.gitlab.dolphin.core.controller; -import com.mybatisflex.core.paginate.Page; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.beans.factory.annotation.Autowired; -import day.gitlab.dolphin.core.entity.DictionaryItem; -import day.gitlab.dolphin.core.service.DictionaryItemService; import org.springframework.web.bind.annotation.RestController; -import java.util.List; /** * 字典项 控制层。 @@ -23,73 +12,4 @@ import java.util.List; @RestController @RequestMapping("/dictionaryItem") public class DictionaryItemController { - - @Autowired - private DictionaryItemService dictionaryItemService; - - /** - * 保存字典项。 - * - * @param dictionaryItem 字典项 - * @return {@code true} 保存成功,{@code false} 保存失败 - */ - @PostMapping("save") - public boolean save(@RequestBody DictionaryItem dictionaryItem) { - return dictionaryItemService.save(dictionaryItem); - } - - /** - * 根据主键删除字典项。 - * - * @param id 主键 - * @return {@code true} 删除成功,{@code false} 删除失败 - */ - @DeleteMapping("remove/{id}") - public boolean remove(@PathVariable String id) { - return dictionaryItemService.removeById(id); - } - - /** - * 根据主键更新字典项。 - * - * @param dictionaryItem 字典项 - * @return {@code true} 更新成功,{@code false} 更新失败 - */ - @PutMapping("update") - public boolean update(@RequestBody DictionaryItem dictionaryItem) { - return dictionaryItemService.updateById(dictionaryItem); - } - - /** - * 查询所有字典项。 - * - * @return 所有数据 - */ - @GetMapping("list") - public List list() { - return dictionaryItemService.list(); - } - - /** - * 根据主键获取字典项。 - * - * @param id 字典项主键 - * @return 字典项详情 - */ - @GetMapping("getInfo/{id}") - public DictionaryItem getInfo(@PathVariable String id) { - return dictionaryItemService.getById(id); - } - - /** - * 分页查询字典项。 - * - * @param page 分页对象 - * @return 分页对象 - */ - @GetMapping("page") - public Page page(Page page) { - return dictionaryItemService.page(page); - } - } diff --git a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/entity/Dictionary.java b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/entity/Dictionary.java index ce87921..c27deaa 100644 --- a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/entity/Dictionary.java +++ b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/entity/Dictionary.java @@ -1,6 +1,7 @@ package day.gitlab.dolphin.core.entity; import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; import com.mybatisflex.annotation.Table; import java.io.Serializable; import java.sql.Timestamp; diff --git a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/entity/dto/DictionaryDTO.java b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/entity/dto/DictionaryDTO.java new file mode 100644 index 0000000..268077a --- /dev/null +++ b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/entity/dto/DictionaryDTO.java @@ -0,0 +1,27 @@ +package day.gitlab.dolphin.core.entity.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DictionaryDTO { + + private String id; + + private String name; + + private String code; + + private String type; + + private String description; + + private List ids; +} diff --git a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/entity/dto/DictionarySearchParamsDTO.java b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/entity/dto/DictionarySearchParamsDTO.java new file mode 100644 index 0000000..20cb963 --- /dev/null +++ b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/entity/dto/DictionarySearchParamsDTO.java @@ -0,0 +1,27 @@ +package day.gitlab.dolphin.core.entity.dto; + +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class DictionarySearchParamsDTO { + + @Min(1) + @NotNull + private Long current; + + @Min(1) + @NotNull + private Long size; + + private String name; + + private String code; + + private String type; +} diff --git a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/entity/vo/DictionaryVO.java b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/entity/vo/DictionaryVO.java new file mode 100644 index 0000000..d4135e7 --- /dev/null +++ b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/entity/vo/DictionaryVO.java @@ -0,0 +1,29 @@ +package day.gitlab.dolphin.core.entity.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.sql.Timestamp; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DictionaryVO { + + private String id; + + private String name; + + private String code; + + private String type; + + private String description; + + private Timestamp createTime; + + private Timestamp updateTime; +} diff --git a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/mapper/DictionaryMapper.java b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/mapper/DictionaryMapper.java index 9798dd8..9e1ae2e 100644 --- a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/mapper/DictionaryMapper.java +++ b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/mapper/DictionaryMapper.java @@ -1,8 +1,14 @@ package day.gitlab.dolphin.core.mapper; +import com.mybatisflex.core.paginate.Page; +import day.gitlab.dolphin.common.core.entity.QueryPageRequest; +import day.gitlab.dolphin.common.mybatis.Pages; +import day.gitlab.dolphin.core.entity.dto.DictionaryDTO; +import day.gitlab.dolphin.core.entity.table.DictionaryTableDef; import org.apache.ibatis.annotations.Mapper; import com.mybatisflex.core.BaseMapper; import day.gitlab.dolphin.core.entity.Dictionary; +import org.springframework.util.StringUtils; /** * 字典 映射层。 @@ -13,4 +19,19 @@ import day.gitlab.dolphin.core.entity.Dictionary; @Mapper public interface DictionaryMapper extends BaseMapper { + default Page page(QueryPageRequest pageRequest) { + return Pages.paginate(this, pageRequest, (dict, wrapper) -> { + if (StringUtils.hasText(dict.getName())) { + wrapper.and(DictionaryTableDef.DICTIONARY.NAME.like(dict.getName())); + } + if (StringUtils.hasText(dict.getCode())) { + wrapper.and(DictionaryTableDef.DICTIONARY.CODE.like(dict.getCode())); + } + if (StringUtils.hasText(dict.getType())) { + wrapper.and(DictionaryTableDef.DICTIONARY.TYPE.eq(dict.getType())); + } + + return wrapper; + }); + } } diff --git a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/service/DictionaryItemService.java b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/service/DictionaryItemService.java index 9443ea2..8c0b0dd 100644 --- a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/service/DictionaryItemService.java +++ b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/service/DictionaryItemService.java @@ -1,14 +1,11 @@ package day.gitlab.dolphin.core.service; -import com.mybatisflex.core.service.IService; -import day.gitlab.dolphin.core.entity.DictionaryItem; - /** * 字典项 服务层。 * * @author jiangyc * @since 2025-11-28 */ -public interface DictionaryItemService extends IService { +public interface DictionaryItemService { } diff --git a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/service/DictionaryService.java b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/service/DictionaryService.java index 078eca9..0e0b665 100644 --- a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/service/DictionaryService.java +++ b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/service/DictionaryService.java @@ -1,7 +1,11 @@ package day.gitlab.dolphin.core.service; -import com.mybatisflex.core.service.IService; -import day.gitlab.dolphin.core.entity.Dictionary; +import day.gitlab.dolphin.common.core.entity.PageResponse; +import day.gitlab.dolphin.common.core.entity.QueryPageRequest; +import day.gitlab.dolphin.core.entity.dto.DictionaryDTO; +import day.gitlab.dolphin.core.entity.vo.DictionaryVO; + +import java.util.List; /** * 字典 服务层。 @@ -9,6 +13,15 @@ import day.gitlab.dolphin.core.entity.Dictionary; * @author jiangyc * @since 2025-11-28 */ -public interface DictionaryService extends IService { +public interface DictionaryService { + PageResponse page(QueryPageRequest pageRequest); + + void add(DictionaryDTO dictionaryDTO); + + void edit(DictionaryDTO dictionaryDTO); + + void delete(String id); + + void deleteBatch(List ids); } diff --git a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/service/impl/DictionaryItemServiceImpl.java b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/service/impl/DictionaryItemServiceImpl.java index 2b6decc..a57f727 100644 --- a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/service/impl/DictionaryItemServiceImpl.java +++ b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/service/impl/DictionaryItemServiceImpl.java @@ -1,8 +1,5 @@ package day.gitlab.dolphin.core.service.impl; -import com.mybatisflex.spring.service.impl.ServiceImpl; -import day.gitlab.dolphin.core.entity.DictionaryItem; -import day.gitlab.dolphin.core.mapper.DictionaryItemMapper; import day.gitlab.dolphin.core.service.DictionaryItemService; import org.springframework.stereotype.Service; @@ -13,6 +10,6 @@ import org.springframework.stereotype.Service; * @since 2025-11-28 */ @Service -public class DictionaryItemServiceImpl extends ServiceImpl implements DictionaryItemService{ +public class DictionaryItemServiceImpl implements DictionaryItemService { } diff --git a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/service/impl/DictionaryServiceImpl.java b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/service/impl/DictionaryServiceImpl.java index 255ee52..07694e5 100644 --- a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/service/impl/DictionaryServiceImpl.java +++ b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/service/impl/DictionaryServiceImpl.java @@ -1,10 +1,24 @@ package day.gitlab.dolphin.core.service.impl; -import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.mybatisflex.core.paginate.Page; +import day.gitlab.dolphin.common.core.entity.PageResponse; +import day.gitlab.dolphin.common.core.entity.QueryPageRequest; +import day.gitlab.dolphin.common.core.i18n.MessagesHelper; +import day.gitlab.dolphin.common.mybatis.Pages; +import day.gitlab.dolphin.core.constants.Exceptions; import day.gitlab.dolphin.core.entity.Dictionary; +import day.gitlab.dolphin.core.entity.dto.DictionaryDTO; +import day.gitlab.dolphin.core.entity.vo.DictionaryVO; import day.gitlab.dolphin.core.mapper.DictionaryMapper; import day.gitlab.dolphin.core.service.DictionaryService; +import jakarta.annotation.Resource; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.sql.Timestamp; +import java.time.Instant; +import java.util.ArrayList; +import java.util.List; /** * 字典 服务层实现。 @@ -13,6 +27,86 @@ import org.springframework.stereotype.Service; * @since 2025-11-28 */ @Service -public class DictionaryServiceImpl extends ServiceImpl implements DictionaryService{ +public class DictionaryServiceImpl implements DictionaryService { + @Resource + private DictionaryMapper dictionaryMapper; + + @Resource + private MessagesHelper messagesHelper; + + @Override + public PageResponse page(QueryPageRequest pageRequest) { + Page page = dictionaryMapper.page(pageRequest); + + return Pages.toPageResponse(page, (rec) -> { + DictionaryVO vo = new DictionaryVO(); + vo.setId(rec.getId()); + vo.setName(rec.getName()); + vo.setCode(rec.getCode()); + vo.setType(rec.getType()); + vo.setDescription(rec.getDescription()); + vo.setCreateTime(rec.getCreateTime()); + vo.setUpdateTime(rec.getUpdateTime()); + return vo; + }); + } + + @Override + public void add(DictionaryDTO dictionaryDTO) { + validate(dictionaryDTO); + + Dictionary dict = Dictionary.builder() + .name(dictionaryDTO.getName()) + .code(dictionaryDTO.getCode()) + .type(dictionaryDTO.getType()) + .description(dictionaryDTO.getDescription()) + .createTime(Timestamp.from(Instant.now())) + .updateTime(Timestamp.from(Instant.now())) + .build(); + dictionaryMapper.insert(dict); + } + + @Override + public void edit(DictionaryDTO dictionaryDTO) { + validate(dictionaryDTO); + + Dictionary dict = Dictionary.builder() + .id(dictionaryDTO.getId()) + .name(dictionaryDTO.getName()) + .code(dictionaryDTO.getCode()) + .type(dictionaryDTO.getType()) + .description(dictionaryDTO.getDescription()) + .updateTime(Timestamp.from(Instant.now())) + .build(); + dictionaryMapper.update(dict); + } + + @Override + public void delete(String id) { + dictionaryMapper.deleteById(id); + } + + @Override + public void deleteBatch(List ids) { + dictionaryMapper.deleteBatchByIds(ids); + } + + private void validate(DictionaryDTO dictionaryDTO) { + List fields = new ArrayList<>(); + + if (!StringUtils.hasText(dictionaryDTO.getName())) { + fields.add("name"); + } + if (!StringUtils.hasText(dictionaryDTO.getCode())) { + fields.add("code"); + } + if (!StringUtils.hasText(dictionaryDTO.getType())) { + fields.add("type"); + } + + if (!fields.isEmpty()) { + throw messagesHelper.newBusinessException(Exceptions.FIELD_REQUIRED, String.join(",", fields)); + } + } } diff --git a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/controller/DepartmentController.java b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/controller/DepartmentController.java index 4c75a38..8d872f7 100644 --- a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/controller/DepartmentController.java +++ b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/controller/DepartmentController.java @@ -1,18 +1,7 @@ package day.gitlab.dolphin.rbac.controller; -import com.mybatisflex.core.paginate.Page; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.beans.factory.annotation.Autowired; -import day.gitlab.dolphin.rbac.entity.Department; -import day.gitlab.dolphin.rbac.service.DepartmentService; import org.springframework.web.bind.annotation.RestController; -import java.util.List; /** * 部门表 控制层。 @@ -23,73 +12,4 @@ import java.util.List; @RestController @RequestMapping("/department") public class DepartmentController { - - @Autowired - private DepartmentService departmentService; - - /** - * 保存部门表。 - * - * @param department 部门表 - * @return {@code true} 保存成功,{@code false} 保存失败 - */ - @PostMapping("save") - public boolean save(@RequestBody Department department) { - return departmentService.save(department); - } - - /** - * 根据主键删除部门表。 - * - * @param id 主键 - * @return {@code true} 删除成功,{@code false} 删除失败 - */ - @DeleteMapping("remove/{id}") - public boolean remove(@PathVariable String id) { - return departmentService.removeById(id); - } - - /** - * 根据主键更新部门表。 - * - * @param department 部门表 - * @return {@code true} 更新成功,{@code false} 更新失败 - */ - @PutMapping("update") - public boolean update(@RequestBody Department department) { - return departmentService.updateById(department); - } - - /** - * 查询所有部门表。 - * - * @return 所有数据 - */ - @GetMapping("list") - public List list() { - return departmentService.list(); - } - - /** - * 根据主键获取部门表。 - * - * @param id 部门表主键 - * @return 部门表详情 - */ - @GetMapping("getInfo/{id}") - public Department getInfo(@PathVariable String id) { - return departmentService.getById(id); - } - - /** - * 分页查询部门表。 - * - * @param page 分页对象 - * @return 分页对象 - */ - @GetMapping("page") - public Page page(Page page) { - return departmentService.page(page); - } - } diff --git a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/controller/RegionController.java b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/controller/RegionController.java index 1527dda..ca5cb29 100644 --- a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/controller/RegionController.java +++ b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/controller/RegionController.java @@ -23,73 +23,4 @@ import java.util.List; @RestController @RequestMapping("/region") public class RegionController { - - @Autowired - private RegionService regionService; - - /** - * 保存区划项。 - * - * @param region 区划项 - * @return {@code true} 保存成功,{@code false} 保存失败 - */ - @PostMapping("save") - public boolean save(@RequestBody Region region) { - return regionService.save(region); - } - - /** - * 根据主键删除区划项。 - * - * @param id 主键 - * @return {@code true} 删除成功,{@code false} 删除失败 - */ - @DeleteMapping("remove/{id}") - public boolean remove(@PathVariable String id) { - return regionService.removeById(id); - } - - /** - * 根据主键更新区划项。 - * - * @param region 区划项 - * @return {@code true} 更新成功,{@code false} 更新失败 - */ - @PutMapping("update") - public boolean update(@RequestBody Region region) { - return regionService.updateById(region); - } - - /** - * 查询所有区划项。 - * - * @return 所有数据 - */ - @GetMapping("list") - public List list() { - return regionService.list(); - } - - /** - * 根据主键获取区划项。 - * - * @param id 区划项主键 - * @return 区划项详情 - */ - @GetMapping("getInfo/{id}") - public Region getInfo(@PathVariable String id) { - return regionService.getById(id); - } - - /** - * 分页查询区划项。 - * - * @param page 分页对象 - * @return 分页对象 - */ - @GetMapping("page") - public Page page(Page page) { - return regionService.page(page); - } - } diff --git a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/controller/RoleController.java b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/controller/RoleController.java index 5ae2e71..930fb13 100644 --- a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/controller/RoleController.java +++ b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/controller/RoleController.java @@ -1,18 +1,7 @@ package day.gitlab.dolphin.rbac.controller; -import com.mybatisflex.core.paginate.Page; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.beans.factory.annotation.Autowired; -import day.gitlab.dolphin.rbac.entity.Role; -import day.gitlab.dolphin.rbac.service.RoleService; import org.springframework.web.bind.annotation.RestController; -import java.util.List; /** * 角色表 控制层。 @@ -23,73 +12,4 @@ import java.util.List; @RestController @RequestMapping("/role") public class RoleController { - - @Autowired - private RoleService roleService; - - /** - * 保存角色表。 - * - * @param role 角色表 - * @return {@code true} 保存成功,{@code false} 保存失败 - */ - @PostMapping("save") - public boolean save(@RequestBody Role role) { - return roleService.save(role); - } - - /** - * 根据主键删除角色表。 - * - * @param id 主键 - * @return {@code true} 删除成功,{@code false} 删除失败 - */ - @DeleteMapping("remove/{id}") - public boolean remove(@PathVariable String id) { - return roleService.removeById(id); - } - - /** - * 根据主键更新角色表。 - * - * @param role 角色表 - * @return {@code true} 更新成功,{@code false} 更新失败 - */ - @PutMapping("update") - public boolean update(@RequestBody Role role) { - return roleService.updateById(role); - } - - /** - * 查询所有角色表。 - * - * @return 所有数据 - */ - @GetMapping("list") - public List list() { - return roleService.list(); - } - - /** - * 根据主键获取角色表。 - * - * @param id 角色表主键 - * @return 角色表详情 - */ - @GetMapping("getInfo/{id}") - public Role getInfo(@PathVariable String id) { - return roleService.getById(id); - } - - /** - * 分页查询角色表。 - * - * @param page 分页对象 - * @return 分页对象 - */ - @GetMapping("page") - public Page page(Page page) { - return roleService.page(page); - } - } diff --git a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/controller/UserController.java b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/controller/UserController.java index a8d5fbd..582461a 100644 --- a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/controller/UserController.java +++ b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/controller/UserController.java @@ -1,18 +1,7 @@ package day.gitlab.dolphin.rbac.controller; -import com.mybatisflex.core.paginate.Page; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.beans.factory.annotation.Autowired; -import day.gitlab.dolphin.rbac.entity.User; -import day.gitlab.dolphin.rbac.service.UserService; import org.springframework.web.bind.annotation.RestController; -import java.util.List; /** * 用户表 控制层。 @@ -23,73 +12,4 @@ import java.util.List; @RestController @RequestMapping("/user") public class UserController { - - @Autowired - private UserService userService; - - /** - * 保存用户表。 - * - * @param user 用户表 - * @return {@code true} 保存成功,{@code false} 保存失败 - */ - @PostMapping("save") - public boolean save(@RequestBody User user) { - return userService.save(user); - } - - /** - * 根据主键删除用户表。 - * - * @param id 主键 - * @return {@code true} 删除成功,{@code false} 删除失败 - */ - @DeleteMapping("remove/{id}") - public boolean remove(@PathVariable String id) { - return userService.removeById(id); - } - - /** - * 根据主键更新用户表。 - * - * @param user 用户表 - * @return {@code true} 更新成功,{@code false} 更新失败 - */ - @PutMapping("update") - public boolean update(@RequestBody User user) { - return userService.updateById(user); - } - - /** - * 查询所有用户表。 - * - * @return 所有数据 - */ - @GetMapping("list") - public List list() { - return userService.list(); - } - - /** - * 根据主键获取用户表。 - * - * @param id 用户表主键 - * @return 用户表详情 - */ - @GetMapping("getInfo/{id}") - public User getInfo(@PathVariable String id) { - return userService.getById(id); - } - - /** - * 分页查询用户表。 - * - * @param page 分页对象 - * @return 分页对象 - */ - @GetMapping("page") - public Page page(Page page) { - return userService.page(page); - } - } diff --git a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/DepartmentService.java b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/DepartmentService.java index a3ce1ac..1a8ea23 100644 --- a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/DepartmentService.java +++ b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/DepartmentService.java @@ -1,14 +1,11 @@ package day.gitlab.dolphin.rbac.service; -import com.mybatisflex.core.service.IService; -import day.gitlab.dolphin.rbac.entity.Department; - /** * 部门表 服务层。 * * @author jiangyc * @since 2025-11-28 */ -public interface DepartmentService extends IService { +public interface DepartmentService { } diff --git a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/RegionService.java b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/RegionService.java index b03a796..c1f09d2 100644 --- a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/RegionService.java +++ b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/RegionService.java @@ -1,14 +1,11 @@ package day.gitlab.dolphin.rbac.service; -import com.mybatisflex.core.service.IService; -import day.gitlab.dolphin.rbac.entity.Region; - /** * 区划项 服务层。 * * @author jiangyc * @since 2025-11-28 */ -public interface RegionService extends IService { +public interface RegionService { } diff --git a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/RoleService.java b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/RoleService.java index 7454b67..753f759 100644 --- a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/RoleService.java +++ b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/RoleService.java @@ -1,14 +1,11 @@ package day.gitlab.dolphin.rbac.service; -import com.mybatisflex.core.service.IService; -import day.gitlab.dolphin.rbac.entity.Role; - /** * 角色表 服务层。 * * @author jiangyc * @since 2025-11-28 */ -public interface RoleService extends IService { +public interface RoleService { } diff --git a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/UserService.java b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/UserService.java index b150a98..81136b5 100644 --- a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/UserService.java +++ b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/UserService.java @@ -1,14 +1,11 @@ package day.gitlab.dolphin.rbac.service; -import com.mybatisflex.core.service.IService; -import day.gitlab.dolphin.rbac.entity.User; - /** * 用户表 服务层。 * * @author jiangyc * @since 2025-11-28 */ -public interface UserService extends IService { +public interface UserService { } diff --git a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/impl/DepartmentServiceImpl.java b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/impl/DepartmentServiceImpl.java index 100cd9c..5bfd726 100644 --- a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/impl/DepartmentServiceImpl.java +++ b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/impl/DepartmentServiceImpl.java @@ -1,8 +1,5 @@ package day.gitlab.dolphin.rbac.service.impl; -import com.mybatisflex.spring.service.impl.ServiceImpl; -import day.gitlab.dolphin.rbac.entity.Department; -import day.gitlab.dolphin.rbac.mapper.DepartmentMapper; import day.gitlab.dolphin.rbac.service.DepartmentService; import org.springframework.stereotype.Service; @@ -13,6 +10,6 @@ import org.springframework.stereotype.Service; * @since 2025-11-28 */ @Service -public class DepartmentServiceImpl extends ServiceImpl implements DepartmentService{ +public class DepartmentServiceImpl implements DepartmentService { } diff --git a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/impl/RegionServiceImpl.java b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/impl/RegionServiceImpl.java index ad4e372..736dd3a 100644 --- a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/impl/RegionServiceImpl.java +++ b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/impl/RegionServiceImpl.java @@ -1,8 +1,5 @@ package day.gitlab.dolphin.rbac.service.impl; -import com.mybatisflex.spring.service.impl.ServiceImpl; -import day.gitlab.dolphin.rbac.entity.Region; -import day.gitlab.dolphin.rbac.mapper.RegionMapper; import day.gitlab.dolphin.rbac.service.RegionService; import org.springframework.stereotype.Service; @@ -13,6 +10,6 @@ import org.springframework.stereotype.Service; * @since 2025-11-28 */ @Service -public class RegionServiceImpl extends ServiceImpl implements RegionService{ +public class RegionServiceImpl implements RegionService { } diff --git a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/impl/RoleServiceImpl.java b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/impl/RoleServiceImpl.java index c5c736b..0c409a8 100644 --- a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/impl/RoleServiceImpl.java +++ b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/impl/RoleServiceImpl.java @@ -1,8 +1,5 @@ package day.gitlab.dolphin.rbac.service.impl; -import com.mybatisflex.spring.service.impl.ServiceImpl; -import day.gitlab.dolphin.rbac.entity.Role; -import day.gitlab.dolphin.rbac.mapper.RoleMapper; import day.gitlab.dolphin.rbac.service.RoleService; import org.springframework.stereotype.Service; @@ -13,6 +10,6 @@ import org.springframework.stereotype.Service; * @since 2025-11-28 */ @Service -public class RoleServiceImpl extends ServiceImpl implements RoleService{ +public class RoleServiceImpl implements RoleService { } diff --git a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/impl/UserServiceImpl.java b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/impl/UserServiceImpl.java index 52f3579..c9152b4 100644 --- a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/impl/UserServiceImpl.java +++ b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/service/impl/UserServiceImpl.java @@ -1,8 +1,5 @@ package day.gitlab.dolphin.rbac.service.impl; -import com.mybatisflex.spring.service.impl.ServiceImpl; -import day.gitlab.dolphin.rbac.entity.User; -import day.gitlab.dolphin.rbac.mapper.UserMapper; import day.gitlab.dolphin.rbac.service.UserService; import org.springframework.stereotype.Service; @@ -13,6 +10,6 @@ import org.springframework.stereotype.Service; * @since 2025-11-28 */ @Service -public class UserServiceImpl extends ServiceImpl implements UserService{ +public class UserServiceImpl implements UserService { }