字典功能 #5
18
common/src/main/java/net/rzdata/demo/trait/TreeNode.java
Normal file
18
common/src/main/java/net/rzdata/demo/trait/TreeNode.java
Normal 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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
@ -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> {
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user