mirror of
https://github.com/vran-dev/databasir.git
synced 2025-09-20 10:49:20 +08:00
feat: change remark model to discussion model
This commit is contained in:
@@ -6,10 +6,14 @@ import com.databasir.core.domain.database.data.DatabaseTypePageResponse;
|
||||
import com.databasir.core.domain.database.data.DatabaseTypeUpdateRequest;
|
||||
import com.databasir.dao.tables.pojos.DatabaseTypePojo;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
|
||||
@Mapper(componentModel = "spring")
|
||||
public interface DatabaseTypePojoConverter {
|
||||
|
||||
@Mapping(target = "id", ignore = true)
|
||||
@Mapping(target = "updateAt", ignore = true)
|
||||
@Mapping(target = "createAt", ignore = true)
|
||||
DatabaseTypePojo of(DatabaseTypeCreateRequest request);
|
||||
|
||||
DatabaseTypePojo of(DatabaseTypeUpdateRequest request);
|
||||
|
@@ -1,7 +1,7 @@
|
||||
package com.databasir.core.domain.remark.converter;
|
||||
|
||||
import com.databasir.core.domain.remark.data.DiscussionResponse;
|
||||
import com.databasir.dao.tables.pojos.DocumentRemarkPojo;
|
||||
import com.databasir.dao.tables.pojos.DocumentDiscussionPojo;
|
||||
import com.databasir.dao.tables.pojos.UserPojo;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
@@ -9,9 +9,9 @@ import org.mapstruct.Mapping;
|
||||
@Mapper(componentModel = "spring")
|
||||
public interface DiscussionResponseConverter {
|
||||
|
||||
@Mapping(target = "id", source = "remark.id")
|
||||
@Mapping(target = "createAt", source = "remark.createAt")
|
||||
@Mapping(target = "content", source = "remark.remark")
|
||||
DiscussionResponse of(DocumentRemarkPojo remark,
|
||||
@Mapping(target = "id", source = "discussion.id")
|
||||
@Mapping(target = "createAt", source = "discussion.createAt")
|
||||
@Mapping(target = "content", source = "discussion.content")
|
||||
DiscussionResponse of(DocumentDiscussionPojo discussion,
|
||||
UserPojo discussBy);
|
||||
}
|
||||
|
@@ -19,17 +19,17 @@ public class DiscussionListCondition {
|
||||
|
||||
public Condition toCondition(Integer projectId) {
|
||||
List<Condition> conditions = new ArrayList<>();
|
||||
Condition condition = Tables.DOCUMENT_REMARK.TABLE_NAME.eq(tableName);
|
||||
Condition condition = Tables.DOCUMENT_DISCUSSION.TABLE_NAME.eq(tableName);
|
||||
conditions.add(condition);
|
||||
|
||||
Condition columnCondition;
|
||||
if (columnName != null) {
|
||||
columnCondition = Tables.DOCUMENT_REMARK.COLUMN_NAME.eq(columnName);
|
||||
columnCondition = Tables.DOCUMENT_DISCUSSION.COLUMN_NAME.eq(columnName);
|
||||
} else {
|
||||
columnCondition = Tables.DOCUMENT_REMARK.COLUMN_NAME.isNull();
|
||||
columnCondition = Tables.DOCUMENT_DISCUSSION.COLUMN_NAME.isNull();
|
||||
}
|
||||
conditions.add(columnCondition);
|
||||
conditions.add(Tables.DOCUMENT_REMARK.PROJECT_ID.eq(projectId));
|
||||
conditions.add(Tables.DOCUMENT_DISCUSSION.PROJECT_ID.eq(projectId));
|
||||
return conditions.stream().reduce(Condition::and).orElse(DSL.trueCondition());
|
||||
}
|
||||
}
|
||||
|
@@ -8,7 +8,7 @@ import com.databasir.core.domain.remark.data.DiscussionResponse;
|
||||
import com.databasir.dao.impl.DocumentDiscussionDao;
|
||||
import com.databasir.dao.impl.ProjectDao;
|
||||
import com.databasir.dao.impl.UserDao;
|
||||
import com.databasir.dao.tables.pojos.DocumentRemarkPojo;
|
||||
import com.databasir.dao.tables.pojos.DocumentDiscussionPojo;
|
||||
import com.databasir.dao.tables.pojos.UserPojo;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.data.domain.Page;
|
||||
@@ -47,18 +47,18 @@ public class DocumentDiscussionService {
|
||||
Pageable pageable,
|
||||
DiscussionListCondition condition) {
|
||||
if (projectDao.exists(groupId, projectId)) {
|
||||
Page<DocumentRemarkPojo> data = documentDiscussionDao.selectByPage(pageable, condition.toCondition(projectId));
|
||||
Page<DocumentDiscussionPojo> data = documentDiscussionDao.selectByPage(pageable, condition.toCondition(projectId));
|
||||
Set<Integer> userIdList = data.getContent()
|
||||
.stream()
|
||||
.map(DocumentRemarkPojo::getUserId)
|
||||
.map(DocumentDiscussionPojo::getUserId)
|
||||
.collect(Collectors.toSet());
|
||||
Map<Integer, UserPojo> userMapById = userDao.selectUserIdIn(userIdList)
|
||||
.stream()
|
||||
.collect(Collectors.toMap(UserPojo::getId, Function.identity()));
|
||||
return data
|
||||
.map(remarkPojo -> {
|
||||
UserPojo userPojo = userMapById.get(remarkPojo.getUserId());
|
||||
return discussionResponseConverter.of(remarkPojo, userPojo);
|
||||
.map(dicussionPojo -> {
|
||||
UserPojo userPojo = userMapById.get(dicussionPojo.getUserId());
|
||||
return discussionResponseConverter.of(dicussionPojo, userPojo);
|
||||
});
|
||||
} else {
|
||||
throw new Forbidden();
|
||||
@@ -67,10 +67,10 @@ public class DocumentDiscussionService {
|
||||
|
||||
public void create(Integer groupId, Integer projectId, Integer userId, DiscussionCreateRequest request) {
|
||||
if (projectDao.exists(groupId, projectId)) {
|
||||
DocumentRemarkPojo pojo = new DocumentRemarkPojo();
|
||||
DocumentDiscussionPojo pojo = new DocumentDiscussionPojo();
|
||||
pojo.setUserId(userId);
|
||||
pojo.setProjectId(projectId);
|
||||
pojo.setRemark(request.getContent());
|
||||
pojo.setContent(request.getContent());
|
||||
pojo.setTableName(request.getTableName());
|
||||
pojo.setColumnName(request.getColumnName());
|
||||
documentDiscussionDao.insertAndReturnId(pojo);
|
||||
|
Reference in New Issue
Block a user