Skip to content

Commit 777ecbc

Browse files
committed
add menu
1 parent 8e52248 commit 777ecbc

File tree

24 files changed

+572
-0
lines changed

24 files changed

+572
-0
lines changed

components-server/components-server/pom.xml

+7
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,13 @@
3939
<version>${project.version}</version>
4040
</dependency>
4141

42+
43+
<dependency>
44+
<groupId>com.codingapi.components</groupId>
45+
<artifactId>menu-restapi</artifactId>
46+
<version>${project.version}</version>
47+
</dependency>
48+
4249
</dependencies>
4350

4451

Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mvn -DskipTests=true deploy
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<parent>
7+
<groupId>com.codingapi.components</groupId>
8+
<artifactId>menu-parent</artifactId>
9+
<version>0.0.1</version>
10+
<relativePath>../pom.xml</relativePath>
11+
</parent>
12+
13+
<artifactId>menu-application</artifactId>
14+
15+
<dependencies>
16+
<dependency>
17+
<groupId>com.codingapi.components</groupId>
18+
<artifactId>menu-domain</artifactId>
19+
<version>${project.version}</version>
20+
</dependency>
21+
</dependencies>
22+
23+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
package com.codingapi.components.menu.application;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
package com.codingapi.components.menu.handler;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<parent>
7+
<groupId>com.codingapi.components</groupId>
8+
<artifactId>menu-parent</artifactId>
9+
<version>0.0.1</version>
10+
<relativePath>../pom.xml</relativePath>
11+
</parent>
12+
13+
<artifactId>menu-domain</artifactId>
14+
15+
16+
17+
18+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package com.codingapi.components.menu.config;
2+
3+
import com.codingapi.components.menu.domain.Menu;
4+
import com.codingapi.components.menu.repository.MenuRepository;
5+
import com.codingapi.components.menu.service.MenuService;
6+
import com.codingapi.components.menu.context.MenuContextRegister;
7+
import com.codingapi.springboot.framework.dto.request.PageRequest;
8+
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
9+
import org.springframework.context.annotation.Bean;
10+
import org.springframework.context.annotation.Configuration;
11+
import org.springframework.data.domain.Page;
12+
13+
@Configuration
14+
public class MenuDomainConfiguration {
15+
16+
17+
@Bean
18+
@ConditionalOnMissingBean
19+
public MenuRepository menuRepository() {
20+
return new MenuRepository() {
21+
22+
@Override
23+
public void save(Menu menu) {
24+
25+
}
26+
27+
@Override
28+
public void delete(int id) {
29+
30+
}
31+
32+
@Override
33+
public Page<Menu> list(PageRequest request) {
34+
return null;
35+
}
36+
37+
@Override
38+
public Menu getParam(String code) {
39+
return null;
40+
}
41+
};
42+
}
43+
44+
45+
@Bean
46+
@ConditionalOnMissingBean
47+
public MenuService menuService(MenuRepository menuRepository) {
48+
return new MenuService(menuRepository);
49+
}
50+
51+
@Bean
52+
@ConditionalOnMissingBean
53+
public MenuContextRegister menuContextRegister(MenuRepository menuRepository){
54+
return new MenuContextRegister(menuRepository);
55+
}
56+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package com.codingapi.components.menu.context;
2+
3+
import com.codingapi.components.menu.domain.Menu;
4+
import com.codingapi.components.menu.repository.MenuRepository;
5+
import lombok.Getter;
6+
7+
public class MenuContext {
8+
9+
@Getter
10+
public static final MenuContext instance = new MenuContext();
11+
12+
private MenuRepository menuRepository;
13+
14+
void init(MenuRepository menuRepository){
15+
this.menuRepository = menuRepository;
16+
}
17+
18+
private MenuContext(){
19+
20+
}
21+
22+
public Menu getParam(String code){
23+
return menuRepository.getParam(code);
24+
}
25+
26+
public int getIntParam(String code,int defaultValue){
27+
Menu menu = menuRepository.getParam(code);
28+
if(menu !=null){
29+
return menu.getIntValue();
30+
}
31+
return defaultValue;
32+
}
33+
34+
35+
public String getStringParam(String code,String defaultValue){
36+
Menu menu = menuRepository.getParam(code);
37+
if(menu !=null){
38+
return menu.getValue();
39+
}
40+
return defaultValue;
41+
}
42+
43+
44+
public long getLongParam(String code,long defaultValue){
45+
Menu menu = menuRepository.getParam(code);
46+
if(menu !=null){
47+
return menu.getLongValue();
48+
}
49+
return defaultValue;
50+
}
51+
52+
public float getFloatParam(String code,float defaultValue){
53+
Menu menu = menuRepository.getParam(code);
54+
if(menu !=null){
55+
return menu.getFloatValue();
56+
}
57+
return defaultValue;
58+
}
59+
60+
61+
public double getDoubleParam(String code,double defaultValue){
62+
Menu menu = menuRepository.getParam(code);
63+
if(menu !=null){
64+
return menu.getDoubleValue();
65+
}
66+
return defaultValue;
67+
}
68+
69+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.codingapi.components.menu.context;
2+
3+
import com.codingapi.components.menu.repository.MenuRepository;
4+
5+
public class MenuContextRegister {
6+
7+
public MenuContextRegister(MenuRepository menuRepository) {
8+
MenuContext.getInstance().init(menuRepository);
9+
}
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.codingapi.components.menu.domain;
2+
3+
import com.fasterxml.jackson.annotation.JsonIgnore;
4+
import jakarta.persistence.*;
5+
import lombok.Getter;
6+
import lombok.Setter;
7+
8+
@Setter
9+
@Getter
10+
@Entity
11+
public class Menu {
12+
13+
@Id
14+
@GeneratedValue(strategy = GenerationType.IDENTITY)
15+
private Integer id;
16+
17+
private Integer sort;
18+
19+
private String name;
20+
21+
@Column(unique = true)
22+
private String code;
23+
24+
private String value;
25+
26+
@Column(length = 200)
27+
private String description;
28+
29+
private String unit;
30+
31+
32+
@JsonIgnore
33+
public int getIntValue() {
34+
return Integer.parseInt(value);
35+
}
36+
37+
@JsonIgnore
38+
public long getLongValue() {
39+
return Long.getLong(value);
40+
}
41+
42+
@JsonIgnore
43+
public double getDoubleValue() {
44+
return Double.parseDouble(value);
45+
}
46+
47+
@JsonIgnore
48+
public float getFloatValue() {
49+
return Float.parseFloat(value);
50+
}
51+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.codingapi.components.menu.repository;
2+
3+
import com.codingapi.components.menu.domain.Menu;
4+
import com.codingapi.springboot.framework.dto.request.PageRequest;
5+
import org.springframework.data.domain.Page;
6+
7+
public interface MenuRepository {
8+
9+
void save(Menu menu);
10+
11+
void delete(int id);
12+
13+
Page<Menu> list(PageRequest request);
14+
15+
Menu getParam(String code);
16+
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.codingapi.components.menu.service;
2+
3+
import com.codingapi.components.menu.domain.Menu;
4+
import com.codingapi.components.menu.repository.MenuRepository;
5+
import com.codingapi.springboot.framework.dto.request.PageRequest;
6+
import lombok.AllArgsConstructor;
7+
import org.springframework.data.domain.Page;
8+
import org.springframework.data.domain.Sort;
9+
10+
@AllArgsConstructor
11+
public class MenuService {
12+
13+
private final MenuRepository menuRepository;
14+
15+
16+
public void delete(int id) {
17+
menuRepository.delete(id);
18+
}
19+
20+
public void save(Menu menu) {
21+
menuRepository.save(menu);
22+
}
23+
24+
25+
public Page<Menu> list(PageRequest request) {
26+
request.addSort(Sort.by("sort").ascending());
27+
return menuRepository.list(request);
28+
}
29+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
com.codingapi.components.menu.config.MenuDomainConfiguration
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<parent>
7+
<groupId>com.codingapi.components</groupId>
8+
<artifactId>menu-parent</artifactId>
9+
<version>0.0.1</version>
10+
<relativePath>../pom.xml</relativePath>
11+
</parent>
12+
13+
<artifactId>menu-infrastructure-db</artifactId>
14+
15+
16+
<dependencies>
17+
18+
<dependency>
19+
<groupId>com.codingapi.components</groupId>
20+
<artifactId>menu-domain</artifactId>
21+
<version>${project.version}</version>
22+
</dependency>
23+
24+
<dependency>
25+
<groupId>com.codingapi.springboot</groupId>
26+
<artifactId>springboot-starter-data-fast</artifactId>
27+
<version>${codingapi.framework.version}</version>
28+
</dependency>
29+
30+
31+
<dependency>
32+
<groupId>com.mysql</groupId>
33+
<artifactId>mysql-connector-j</artifactId>
34+
<scope>runtime</scope>
35+
</dependency>
36+
</dependencies>
37+
38+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.codingapi.components.infrastructure.menu.config;
2+
3+
import com.codingapi.components.infrastructure.menu.jpa.JpaMenuRepository;
4+
import com.codingapi.components.infrastructure.menu.repository.impl.MenuRepositoryImpl;
5+
import com.codingapi.components.menu.repository.MenuRepository;
6+
import org.springframework.boot.autoconfigure.domain.EntityScan;
7+
import org.springframework.context.annotation.Bean;
8+
import org.springframework.context.annotation.Configuration;
9+
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
10+
11+
@EnableJpaRepositories(basePackages = "com.codingapi.components.infrastructure.menu")
12+
@EntityScan(basePackages = "com.codingapi.components.menu.domain")
13+
@Configuration
14+
public class MenuInfrastructureConfiguration {
15+
16+
17+
@Bean
18+
public MenuRepository menuRepository(JpaMenuRepository jpaMenuRepository) {
19+
return new MenuRepositoryImpl(jpaMenuRepository);
20+
}
21+
22+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.codingapi.components.infrastructure.menu.jpa;
2+
3+
import com.codingapi.components.menu.domain.Menu;
4+
import com.codingapi.springboot.fast.jpa.repository.FastRepository;
5+
6+
public interface JpaMenuRepository extends FastRepository<Menu,Integer> {
7+
8+
Menu getParameterByCode(String code);
9+
}

0 commit comments

Comments
 (0)