初始化 字典 包

This commit is contained in:
jiangdingxuan 2024-01-08 13:38:00 +08:00
parent 6e51306ced
commit 2ae7c39b9f
9 changed files with 159 additions and 0 deletions

View File

@ -0,0 +1,18 @@
package net.rzdata.demo.trait;
import java.util.List;
public interface TreeNode<T extends TreeNode<T, ID>, ID> {
ID getId();
ID getParentId();
List<T> getChildren();
void setChildren(List<T> children);
default boolean isLeaf() {
return getChildren() == null;
}
}

View File

@ -0,0 +1,21 @@
package net.rzdata.demo.dict;
import net.rzdata.demo.dict.domain.AddDictTypeReq;
import net.rzdata.demo.dict.domain.Dict;
import net.rzdata.demo.dict.domain.UpdateDictReq;
import net.rzdata.domain.Id;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/dict")
public class DictController {
private final DictService dictService;
public DictController(DictService dictService) {
this.dictService = dictService;
}
}

View File

@ -0,0 +1,16 @@
package net.rzdata.demo.dict;
import net.rzdata.demo.dict.domain.Dict;
import net.rzdata.demo.dict.mapper.DictMapper;
import net.rzdata.demo.dict.mapper.DictRepository;
import org.springframework.stereotype.Service;
@Service
public class DictService {
private final DictRepository dictRepository;
public DictService(DictRepository dictRepository) {
this.dictRepository = dictRepository;
}
}

View File

@ -0,0 +1,58 @@
package net.rzdata.demo.dict.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.*;
import net.rzdata.demo.trait.TreeNode;
import java.util.Collections;
import java.util.List;
/**
* 字典
*/
@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class Dict implements TreeNode<Dict, String> {
public static final Dict ROOT = new Dict("0", "字典", "dict", "dict", 0, false, "0", Collections.emptyList());
/**
* 字典主键
*/
@TableId(type = IdType.ASSIGN_ID)
String id;
/**
* 字典标签
*/
String label;
/**
* 字典键值
*/
String value;
/**
* 字典类型
*/
String type;
/**
* 字典排序
*/
Integer sort;
/**
* 是否停用
*/
Boolean disabled;
/**
* 父节点ID
*/
String parentId;
/**
* 子节点
*/
@TableField(exist = false)
List<Dict> children;
}

View File

@ -0,0 +1,9 @@
package net.rzdata.demo.dict.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.rzdata.demo.dict.domain.Dict;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DictMapper extends BaseMapper<Dict> {
}

View File

@ -0,0 +1,13 @@
package net.rzdata.demo.dict.mapper;
import net.rzdata.demo.dict.domain.Dict;
import net.rzdata.demo.trait.BaseRepository;
import org.springframework.stereotype.Repository;
@Repository
public class DictRepository extends BaseRepository<Dict, DictMapper> {
public DictRepository(DictMapper mapper) {
super(mapper);
}
}

View File

@ -0,0 +1,12 @@
package net.rzdata.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoTestApplication {
public static void main(String[] args) {
SpringApplication.run(DemoTestApplication.class, args);
}
}

View File

@ -0,0 +1,12 @@
package net.rzdata.demo.dict;
import jakarta.annotation.Resource;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class DictServiceTest {
@Resource
private transient DictService dictService;
}