Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/server java #374

Merged
merged 11 commits into from
Aug 7, 2024
4 changes: 4 additions & 0 deletions lombok.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
lombok.accessors.chain=true
lombok.equalsAndHashCode.doNotUseGetters=true
lombok.toString.doNotUseGetters=true
lombok.equalsAndHashCode.callSuper=SKIP
6 changes: 6 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
<lang3.version>3.14.0</lang3.version>
<fastjson.version>1.2.83</fastjson.version>
<jwt.version>4.4.0</jwt.version>
<dozer.version>5.5.1</dozer.version>
</properties>

<dependencyManagement>
Expand Down Expand Up @@ -83,6 +84,11 @@
<artifactId>commons-lang3</artifactId>
<version>${lang3.version}</version>
</dependency>
<dependency>
<groupId>net.sf.dozer</groupId>
<artifactId>dozer</artifactId>
<version>${dozer.version}</version>
</dependency>
</dependencies>

</dependencyManagement>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.xiaojusurvey.engine.common.entity;

import lombok.Data;

/**
* @description: InitBaseEntity
* @author: wangchenglong
* @time: 2024/7/31 17:12
*/
@Data
public class InitBaseEntity extends BaseEntity {

}
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,4 @@ public class Status implements Serializable {

private String status;


public Long getDate() {
return date;
}

public void setDate(Long date) {
this.date = date;
}

public String getStatus() {
return status;
}

public void setStatus(String status) {
this.status = status;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.xiaojusurvey.engine.common.entity.workspace;

import com.xiaojusurvey.engine.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.data.mongodb.core.mapping.Document;

/**
* @description: 空间
* @author: wangchenglong
* @time: 2024/7/24 10:50
*/
@Document("workspace")
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Data
public class Workspace extends BaseEntity {
private String ownerId;
private String name;
private String description;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.xiaojusurvey.engine.common.entity.workspace;

import com.xiaojusurvey.engine.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.data.mongodb.core.mapping.Document;

/**
* @description: 空间成员
* @author: wangchenglong
* @time: 2024/7/24 10:51
*/
@Document("workspaceMember")
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Data
public class WorkspaceMember extends BaseEntity {
private String userId;

private String workspaceId;

private String role;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package com.xiaojusurvey.engine.common.enums;

/**
* @description: 状态类型
* @author: wangchenglong
* @time: 2024/7/30 16:08
*/
public enum RecordStatusEnum {

// 新建
NEW("new"),

// 编辑
EDITING("editing"),

// 暂停
PAUSING("pausing"),

// 发布
PUBLISHED("published"),

// 删除
REMOVED("removed"),

// 从回收站删除
FORCE_REMOVED("forceRemoved");

private final String statusType;

RecordStatusEnum(String statusType) {
this.statusType = statusType;
}

public String getStatusType() {
return this.statusType;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.xiaojusurvey.engine.common.enums;

/**
* @description: 用户角色枚举
* @author: wangchenglong
* @time: 2024/7/24 14:47
*/
public enum RoleEmum {

USER(0, "user"),

ADMIN(1, "admin");

private final Integer state;

private final String value;

RoleEmum(Integer state, String value) {
this.state = state;
this.value = value;
}

public Integer getState() {
return this.state;
}

public String getValue() {
return this.value;
}

}
4 changes: 4 additions & 0 deletions survey-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>net.sf.dozer</groupId>
<artifactId>dozer</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.xiaojusurvey.engine.bean;

import org.dozer.DozerBeanMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
* @description: net.sf.dozer
* @author: wangchenglong
* @time: 2024/7/24 22:25
*/
@Configuration
public class ConvertorConfig {
@Bean
public DozerBeanMapper dozerBeanMapper() {
return new DozerBeanMapper();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
package com.xiaojusurvey.engine.bean;


import org.dozer.Mapper;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;

/**
* @description: 对象转换
* @author: wangchenglong
* @time: 2024/7/24 14:23
*/
@Component
public class GeneralConvertor {

@Resource
private Mapper mapper;

/**
* List 实体类 转换器
*
* @param source 原数据
* @param clz 转换类型
* @param <T>
* @param <S>
* @return
*/
public <T, S> List<T> convertor(List<S> source, Class<T> clz) {
if (source == null) {
return null;
}
List<T> map = new ArrayList<>();
for (S s : source) {
map.add(mapper.map(s, clz));
}
return map;
}


/**
* Set 实体类 深度转换器
*
* @param source 原数据
* @param clz 目标对象
* @param <T>
* @param <S>
* @return
*/
public <T, S> Set<T> convertor(Set<S> source, Class<T> clz) {
if (source == null) {
return null;
}
Set<T> set = new TreeSet<>();
for (S s : source) {
set.add(mapper.map(s, clz));
}
return set;
}

/**
* 实体类 深度转换器
*
* @param source
* @param clz
* @param <T>
* @param <S>
* @return
*/
public <T, S> T convertor(S source, Class<T> clz) {
if (source == null) {
return null;
}
return mapper.map(source, clz);
}

public void convertor(Object source, Object object) {
mapper.map(source, object);
}

public <T> void copyConvertor(T source, Object object) {
mapper.map(source, object);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.xiaojusurvey.engine.core.workspace;

import com.xiaojusurvey.engine.common.entity.workspace.WorkspaceMember;
import com.xiaojusurvey.engine.core.workspace.param.CreateWorkspaceMemberParam;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
* @description:
* @author: wangchenglong
* @time: 2024/7/24 14:23
*/
public interface WorkspaceMemberService {

List<WorkspaceMember> getWorkspaceMembers(String workspaceId, List<String> userId);

List<WorkspaceMember> getWorkspaceMembers(String userId, Integer pageSize, Integer curPage);

List<WorkspaceMember> getWorkspaceMembers(String workspaceId);

WorkspaceMember getWorkspaceMember(String workspaceId, String userId);

String create(CreateWorkspaceMemberParam createWorkspaceMemberParam);

void delete(CreateWorkspaceMemberParam workspaceMemberParam);

void updateRole(@RequestBody CreateWorkspaceMemberParam createWorkspaceMemberParam);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.xiaojusurvey.engine.core.workspace;

import com.xiaojusurvey.engine.core.workspace.param.WorkspaceParam;
import com.xiaojusurvey.engine.core.workspace.vo.WorkspaceListVO;
import com.xiaojusurvey.engine.core.workspace.vo.WorkspaceMemberVO;
import org.springframework.web.bind.annotation.RequestBody;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
* @description:
* @author: wangchenglong
* @time: 2024/7/24 14:23
*/
public interface WorkspaceService {

String createWorkspace(HttpServletRequest request, @RequestBody WorkspaceParam workspaceParam);

WorkspaceListVO findAll(HttpServletRequest request, Integer pageSize, Integer curPage, String name);

WorkspaceMemberVO getWorkspaceInfo(HttpServletRequest request, String workspaceId);

void update(HttpServletRequest request, @RequestBody WorkspaceParam workspaceParam, String workspaceId);

void delete(HttpServletRequest request, String workspaceId);

List<WorkspaceMemberVO> findAllByUserId(HttpServletRequest request);
}
Loading