vran
3 years ago
18 changed files with 1012 additions and 2 deletions
@ -0,0 +1,60 @@ |
|||||
|
package com.databasir.api; |
||||
|
|
||||
|
import com.databasir.api.config.security.DatabasirUserDetails; |
||||
|
import com.databasir.common.JsonData; |
||||
|
import com.databasir.core.domain.remark.data.RemarkCreateRequest; |
||||
|
import com.databasir.core.domain.remark.data.RemarkListCondition; |
||||
|
import com.databasir.core.domain.remark.data.RemarkResponse; |
||||
|
import com.databasir.core.domain.remark.service.DocumentRemarkService; |
||||
|
import lombok.RequiredArgsConstructor; |
||||
|
import org.springframework.data.domain.Page; |
||||
|
import org.springframework.data.domain.Pageable; |
||||
|
import org.springframework.data.domain.Sort; |
||||
|
import org.springframework.data.web.PageableDefault; |
||||
|
import org.springframework.security.access.prepost.PreAuthorize; |
||||
|
import org.springframework.security.core.context.SecurityContextHolder; |
||||
|
import org.springframework.validation.annotation.Validated; |
||||
|
import org.springframework.web.bind.annotation.*; |
||||
|
|
||||
|
import javax.validation.Valid; |
||||
|
|
||||
|
@RestController |
||||
|
@Validated |
||||
|
@RequiredArgsConstructor |
||||
|
public class DocumentRemarkController { |
||||
|
|
||||
|
private final DocumentRemarkService documentRemarkService; |
||||
|
|
||||
|
@GetMapping(Routes.DocumentRemark.LIST) |
||||
|
public JsonData<Page<RemarkResponse>> listByProjectId(@PathVariable Integer groupId, |
||||
|
@PathVariable Integer projectId, |
||||
|
@PageableDefault(sort = "id", |
||||
|
direction = Sort.Direction.DESC) |
||||
|
Pageable request, |
||||
|
RemarkListCondition condition) { |
||||
|
var data = documentRemarkService.list(groupId, projectId, request, condition); |
||||
|
return JsonData.ok(data); |
||||
|
} |
||||
|
|
||||
|
@DeleteMapping(Routes.DocumentRemark.DELETE) |
||||
|
@PreAuthorize("hasAnyAuthority('SYS_OWNER', 'GROUP_OWNER?groupId='+#groupId)") |
||||
|
public JsonData<Void> delete(@PathVariable Integer groupId, |
||||
|
@PathVariable Integer projectId, |
||||
|
@PathVariable Integer remarkId) { |
||||
|
documentRemarkService.deleteById(groupId, projectId, remarkId); |
||||
|
return JsonData.ok(); |
||||
|
} |
||||
|
|
||||
|
@PostMapping(Routes.DocumentRemark.CREATE) |
||||
|
@PreAuthorize("hasAnyAuthority('SYS_OWNER', 'GROUP_OWNER?groupId='+#groupId, 'GROUP_MEMBER?groupId='+#groupId)") |
||||
|
public JsonData<Void> create(@PathVariable Integer groupId, |
||||
|
@PathVariable Integer projectId, |
||||
|
@RequestBody @Valid RemarkCreateRequest request) { |
||||
|
DatabasirUserDetails principal = (DatabasirUserDetails) SecurityContextHolder.getContext() |
||||
|
.getAuthentication() |
||||
|
.getPrincipal(); |
||||
|
Integer userId = principal.getUserPojo().getId(); |
||||
|
documentRemarkService.create(groupId, projectId, userId, request); |
||||
|
return JsonData.ok(); |
||||
|
} |
||||
|
} |
@ -0,0 +1,19 @@ |
|||||
|
package com.databasir.core.domain.remark.converter; |
||||
|
|
||||
|
import com.databasir.core.domain.remark.data.RemarkResponse; |
||||
|
import com.databasir.dao.tables.pojos.DocumentRemarkPojo; |
||||
|
import com.databasir.dao.tables.pojos.UserPojo; |
||||
|
import org.mapstruct.Mapper; |
||||
|
import org.mapstruct.Mapping; |
||||
|
|
||||
|
@Mapper(componentModel = "spring") |
||||
|
public interface RemarkResponseConverter { |
||||
|
|
||||
|
@Mapping(target = "remarkBy.userId", source = "remarkBy.id") |
||||
|
@Mapping(target = "remarkBy.nickname", source = "remarkBy.nickname") |
||||
|
@Mapping(target = "remarkBy.email", source = "remarkBy.email") |
||||
|
@Mapping(target = "id", source = "remark.id") |
||||
|
@Mapping(target = "createAt", source = "remark.createAt") |
||||
|
RemarkResponse of(DocumentRemarkPojo remark, |
||||
|
UserPojo remarkBy); |
||||
|
} |
@ -0,0 +1,18 @@ |
|||||
|
package com.databasir.core.domain.remark.data; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
|
||||
|
import javax.validation.constraints.NotBlank; |
||||
|
import javax.validation.constraints.NotNull; |
||||
|
|
||||
|
@Data |
||||
|
public class RemarkCreateRequest { |
||||
|
|
||||
|
@NotBlank |
||||
|
private String remark; |
||||
|
|
||||
|
@NotNull |
||||
|
private String tableName; |
||||
|
|
||||
|
private String columnName; |
||||
|
} |
@ -0,0 +1,35 @@ |
|||||
|
package com.databasir.core.domain.remark.data; |
||||
|
|
||||
|
import com.databasir.dao.Tables; |
||||
|
import lombok.Data; |
||||
|
import org.jooq.Condition; |
||||
|
import org.jooq.impl.DSL; |
||||
|
|
||||
|
import javax.validation.constraints.NotBlank; |
||||
|
import java.util.ArrayList; |
||||
|
import java.util.List; |
||||
|
|
||||
|
@Data |
||||
|
public class RemarkListCondition { |
||||
|
|
||||
|
@NotBlank |
||||
|
private String tableName; |
||||
|
|
||||
|
private String columnName; |
||||
|
|
||||
|
public Condition toCondition(Integer projectId) { |
||||
|
List<Condition> conditions = new ArrayList<>(); |
||||
|
Condition condition = Tables.DOCUMENT_REMARK.TABLE_NAME.eq(tableName); |
||||
|
conditions.add(condition); |
||||
|
|
||||
|
Condition columnCondition; |
||||
|
if (columnName != null) { |
||||
|
columnCondition = Tables.DOCUMENT_REMARK.COLUMN_NAME.eq(columnName); |
||||
|
} else { |
||||
|
columnCondition = Tables.DOCUMENT_REMARK.COLUMN_NAME.isNull(); |
||||
|
} |
||||
|
conditions.add(columnCondition); |
||||
|
conditions.add(Tables.DOCUMENT_REMARK.PROJECT_ID.eq(projectId)); |
||||
|
return conditions.stream().reduce(Condition::and).orElse(DSL.trueCondition()); |
||||
|
} |
||||
|
} |
@ -0,0 +1,30 @@ |
|||||
|
package com.databasir.core.domain.remark.data; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
|
||||
|
import java.time.LocalDateTime; |
||||
|
|
||||
|
@Data |
||||
|
public class RemarkResponse { |
||||
|
|
||||
|
private Integer id; |
||||
|
|
||||
|
private Integer projectId; |
||||
|
|
||||
|
private String remark; |
||||
|
|
||||
|
private RemarkUser remarkBy; |
||||
|
|
||||
|
private LocalDateTime createAt; |
||||
|
|
||||
|
@Data |
||||
|
public static class RemarkUser { |
||||
|
|
||||
|
private Integer userId; |
||||
|
|
||||
|
private String nickname; |
||||
|
|
||||
|
private String email; |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,81 @@ |
|||||
|
package com.databasir.core.domain.remark.service; |
||||
|
|
||||
|
import com.databasir.common.exception.Forbidden; |
||||
|
import com.databasir.core.domain.remark.converter.RemarkResponseConverter; |
||||
|
import com.databasir.core.domain.remark.data.RemarkCreateRequest; |
||||
|
import com.databasir.core.domain.remark.data.RemarkListCondition; |
||||
|
import com.databasir.core.domain.remark.data.RemarkResponse; |
||||
|
import com.databasir.dao.impl.DocumentRemarkDao; |
||||
|
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.UserPojo; |
||||
|
import lombok.RequiredArgsConstructor; |
||||
|
import org.springframework.data.domain.Page; |
||||
|
import org.springframework.data.domain.Pageable; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
import java.util.Map; |
||||
|
import java.util.Set; |
||||
|
import java.util.function.Function; |
||||
|
import java.util.stream.Collectors; |
||||
|
|
||||
|
@Service |
||||
|
@RequiredArgsConstructor |
||||
|
public class DocumentRemarkService { |
||||
|
|
||||
|
private final DocumentRemarkDao documentRemarkDao; |
||||
|
|
||||
|
private final ProjectDao projectDao; |
||||
|
|
||||
|
private final UserDao userDao; |
||||
|
|
||||
|
private final RemarkResponseConverter remarkResponseConverter; |
||||
|
|
||||
|
public void deleteById(Integer groupId, |
||||
|
Integer projectId, |
||||
|
Integer remarkId) { |
||||
|
if (projectDao.exists(groupId, projectId)) { |
||||
|
documentRemarkDao.deleteById(remarkId); |
||||
|
} else { |
||||
|
throw new Forbidden(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public Page<RemarkResponse> list(Integer groupId, |
||||
|
Integer projectId, |
||||
|
Pageable pageable, |
||||
|
RemarkListCondition condition) { |
||||
|
if (projectDao.exists(groupId, projectId)) { |
||||
|
Page<DocumentRemarkPojo> data = documentRemarkDao.selectByPage(pageable, condition.toCondition(projectId)); |
||||
|
Set<Integer> userIdList = data.getContent() |
||||
|
.stream() |
||||
|
.map(DocumentRemarkPojo::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 remarkResponseConverter.of(remarkPojo, userPojo); |
||||
|
}); |
||||
|
} else { |
||||
|
throw new Forbidden(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public void create(Integer groupId, Integer projectId, Integer userId, RemarkCreateRequest request) { |
||||
|
if (projectDao.exists(groupId, projectId)) { |
||||
|
DocumentRemarkPojo pojo = new DocumentRemarkPojo(); |
||||
|
pojo.setUserId(userId); |
||||
|
pojo.setProjectId(projectId); |
||||
|
pojo.setRemark(request.getRemark()); |
||||
|
pojo.setTableName(request.getTableName()); |
||||
|
pojo.setColumnName(request.getColumnName()); |
||||
|
documentRemarkDao.insertAndReturnId(pojo); |
||||
|
} else { |
||||
|
throw new Forbidden(); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,176 @@ |
|||||
|
/* |
||||
|
* This file is generated by jOOQ. |
||||
|
*/ |
||||
|
package com.databasir.dao.tables; |
||||
|
|
||||
|
|
||||
|
import com.databasir.dao.Databasir; |
||||
|
import com.databasir.dao.Indexes; |
||||
|
import com.databasir.dao.Keys; |
||||
|
import com.databasir.dao.tables.records.DocumentRemarkRecord; |
||||
|
|
||||
|
import java.time.LocalDateTime; |
||||
|
import java.util.Arrays; |
||||
|
import java.util.List; |
||||
|
|
||||
|
import org.jooq.Field; |
||||
|
import org.jooq.ForeignKey; |
||||
|
import org.jooq.Identity; |
||||
|
import org.jooq.Index; |
||||
|
import org.jooq.Name; |
||||
|
import org.jooq.Record; |
||||
|
import org.jooq.Row7; |
||||
|
import org.jooq.Schema; |
||||
|
import org.jooq.Table; |
||||
|
import org.jooq.TableField; |
||||
|
import org.jooq.TableOptions; |
||||
|
import org.jooq.UniqueKey; |
||||
|
import org.jooq.impl.DSL; |
||||
|
import org.jooq.impl.SQLDataType; |
||||
|
import org.jooq.impl.TableImpl; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* This class is generated by jOOQ. |
||||
|
*/ |
||||
|
@SuppressWarnings({ "all", "unchecked", "rawtypes" }) |
||||
|
public class DocumentRemark extends TableImpl<DocumentRemarkRecord> { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** |
||||
|
* The reference instance of <code>databasir.document_remark</code> |
||||
|
*/ |
||||
|
public static final DocumentRemark DOCUMENT_REMARK = new DocumentRemark(); |
||||
|
|
||||
|
/** |
||||
|
* The class holding records for this type |
||||
|
*/ |
||||
|
@Override |
||||
|
public Class<DocumentRemarkRecord> getRecordType() { |
||||
|
return DocumentRemarkRecord.class; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* The column <code>databasir.document_remark.id</code>. |
||||
|
*/ |
||||
|
public final TableField<DocumentRemarkRecord, Integer> ID = createField(DSL.name("id"), SQLDataType.INTEGER.nullable(false).identity(true), this, ""); |
||||
|
|
||||
|
/** |
||||
|
* The column <code>databasir.document_remark.remark</code>. |
||||
|
*/ |
||||
|
public final TableField<DocumentRemarkRecord, String> REMARK = createField(DSL.name("remark"), SQLDataType.CLOB.nullable(false), this, ""); |
||||
|
|
||||
|
/** |
||||
|
* The column <code>databasir.document_remark.user_id</code>. user.id |
||||
|
*/ |
||||
|
public final TableField<DocumentRemarkRecord, Integer> USER_ID = createField(DSL.name("user_id"), SQLDataType.INTEGER.nullable(false), this, "user.id"); |
||||
|
|
||||
|
/** |
||||
|
* The column <code>databasir.document_remark.project_id</code>. |
||||
|
*/ |
||||
|
public final TableField<DocumentRemarkRecord, Integer> PROJECT_ID = createField(DSL.name("project_id"), SQLDataType.INTEGER.nullable(false), this, ""); |
||||
|
|
||||
|
/** |
||||
|
* The column <code>databasir.document_remark.table_name</code>. |
||||
|
*/ |
||||
|
public final TableField<DocumentRemarkRecord, String> TABLE_NAME = createField(DSL.name("table_name"), SQLDataType.VARCHAR(255).nullable(false), this, ""); |
||||
|
|
||||
|
/** |
||||
|
* The column <code>databasir.document_remark.column_name</code>. |
||||
|
*/ |
||||
|
public final TableField<DocumentRemarkRecord, String> COLUMN_NAME = createField(DSL.name("column_name"), SQLDataType.VARCHAR(255), this, ""); |
||||
|
|
||||
|
/** |
||||
|
* The column <code>databasir.document_remark.create_at</code>. |
||||
|
*/ |
||||
|
public final TableField<DocumentRemarkRecord, LocalDateTime> CREATE_AT = createField(DSL.name("create_at"), SQLDataType.LOCALDATETIME(0).nullable(false).defaultValue(DSL.field("CURRENT_TIMESTAMP", SQLDataType.LOCALDATETIME)), this, ""); |
||||
|
|
||||
|
private DocumentRemark(Name alias, Table<DocumentRemarkRecord> aliased) { |
||||
|
this(alias, aliased, null); |
||||
|
} |
||||
|
|
||||
|
private DocumentRemark(Name alias, Table<DocumentRemarkRecord> aliased, Field<?>[] parameters) { |
||||
|
super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table()); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Create an aliased <code>databasir.document_remark</code> table reference |
||||
|
*/ |
||||
|
public DocumentRemark(String alias) { |
||||
|
this(DSL.name(alias), DOCUMENT_REMARK); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Create an aliased <code>databasir.document_remark</code> table reference |
||||
|
*/ |
||||
|
public DocumentRemark(Name alias) { |
||||
|
this(alias, DOCUMENT_REMARK); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Create a <code>databasir.document_remark</code> table reference |
||||
|
*/ |
||||
|
public DocumentRemark() { |
||||
|
this(DSL.name("document_remark"), null); |
||||
|
} |
||||
|
|
||||
|
public <O extends Record> DocumentRemark(Table<O> child, ForeignKey<O, DocumentRemarkRecord> key) { |
||||
|
super(child, key, DOCUMENT_REMARK); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Schema getSchema() { |
||||
|
return aliased() ? null : Databasir.DATABASIR; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public List<Index> getIndexes() { |
||||
|
return Arrays.asList(Indexes.DOCUMENT_REMARK_IDX_PROJECT_ID); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Identity<DocumentRemarkRecord, Integer> getIdentity() { |
||||
|
return (Identity<DocumentRemarkRecord, Integer>) super.getIdentity(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public UniqueKey<DocumentRemarkRecord> getPrimaryKey() { |
||||
|
return Keys.KEY_DOCUMENT_REMARK_PRIMARY; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public DocumentRemark as(String alias) { |
||||
|
return new DocumentRemark(DSL.name(alias), this); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public DocumentRemark as(Name alias) { |
||||
|
return new DocumentRemark(alias, this); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Rename this table |
||||
|
*/ |
||||
|
@Override |
||||
|
public DocumentRemark rename(String name) { |
||||
|
return new DocumentRemark(DSL.name(name), null); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Rename this table |
||||
|
*/ |
||||
|
@Override |
||||
|
public DocumentRemark rename(Name name) { |
||||
|
return new DocumentRemark(name, null); |
||||
|
} |
||||
|
|
||||
|
// -------------------------------------------------------------------------
|
||||
|
// Row7 type methods
|
||||
|
// -------------------------------------------------------------------------
|
||||
|
|
||||
|
@Override |
||||
|
public Row7<Integer, String, Integer, Integer, String, String, LocalDateTime> fieldsRow() { |
||||
|
return (Row7) super.fieldsRow(); |
||||
|
} |
||||
|
} |
@ -0,0 +1,170 @@ |
|||||
|
/* |
||||
|
* This file is generated by jOOQ. |
||||
|
*/ |
||||
|
package com.databasir.dao.tables.pojos; |
||||
|
|
||||
|
|
||||
|
import java.io.Serializable; |
||||
|
import java.time.LocalDateTime; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* This class is generated by jOOQ. |
||||
|
*/ |
||||
|
@SuppressWarnings({ "all", "unchecked", "rawtypes" }) |
||||
|
public class DocumentRemarkPojo implements Serializable { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
private Integer id; |
||||
|
private String remark; |
||||
|
private Integer userId; |
||||
|
private Integer projectId; |
||||
|
private String tableName; |
||||
|
private String columnName; |
||||
|
private LocalDateTime createAt; |
||||
|
|
||||
|
public DocumentRemarkPojo() {} |
||||
|
|
||||
|
public DocumentRemarkPojo(DocumentRemarkPojo value) { |
||||
|
this.id = value.id; |
||||
|
this.remark = value.remark; |
||||
|
this.userId = value.userId; |
||||
|
this.projectId = value.projectId; |
||||
|
this.tableName = value.tableName; |
||||
|
this.columnName = value.columnName; |
||||
|
this.createAt = value.createAt; |
||||
|
} |
||||
|
|
||||
|
public DocumentRemarkPojo( |
||||
|
Integer id, |
||||
|
String remark, |
||||
|
Integer userId, |
||||
|
Integer projectId, |
||||
|
String tableName, |
||||
|
String columnName, |
||||
|
LocalDateTime createAt |
||||
|
) { |
||||
|
this.id = id; |
||||
|
this.remark = remark; |
||||
|
this.userId = userId; |
||||
|
this.projectId = projectId; |
||||
|
this.tableName = tableName; |
||||
|
this.columnName = columnName; |
||||
|
this.createAt = createAt; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Getter for <code>databasir.document_remark.id</code>. |
||||
|
*/ |
||||
|
public Integer getId() { |
||||
|
return this.id; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Setter for <code>databasir.document_remark.id</code>. |
||||
|
*/ |
||||
|
public void setId(Integer id) { |
||||
|
this.id = id; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Getter for <code>databasir.document_remark.remark</code>. |
||||
|
*/ |
||||
|
public String getRemark() { |
||||
|
return this.remark; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Setter for <code>databasir.document_remark.remark</code>. |
||||
|
*/ |
||||
|
public void setRemark(String remark) { |
||||
|
this.remark = remark; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Getter for <code>databasir.document_remark.user_id</code>. user.id |
||||
|
*/ |
||||
|
public Integer getUserId() { |
||||
|
return this.userId; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Setter for <code>databasir.document_remark.user_id</code>. user.id |
||||
|
*/ |
||||
|
public void setUserId(Integer userId) { |
||||
|
this.userId = userId; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Getter for <code>databasir.document_remark.project_id</code>. |
||||
|
*/ |
||||
|
public Integer getProjectId() { |
||||
|
return this.projectId; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Setter for <code>databasir.document_remark.project_id</code>. |
||||
|
*/ |
||||
|
public void setProjectId(Integer projectId) { |
||||
|
this.projectId = projectId; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Getter for <code>databasir.document_remark.table_name</code>. |
||||
|
*/ |
||||
|
public String getTableName() { |
||||
|
return this.tableName; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Setter for <code>databasir.document_remark.table_name</code>. |
||||
|
*/ |
||||
|
public void setTableName(String tableName) { |
||||
|
this.tableName = tableName; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Getter for <code>databasir.document_remark.column_name</code>. |
||||
|
*/ |
||||
|
public String getColumnName() { |
||||
|
return this.columnName; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Setter for <code>databasir.document_remark.column_name</code>. |
||||
|
*/ |
||||
|
public void setColumnName(String columnName) { |
||||
|
this.columnName = columnName; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Getter for <code>databasir.document_remark.create_at</code>. |
||||
|
*/ |
||||
|
public LocalDateTime getCreateAt() { |
||||
|
return this.createAt; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Setter for <code>databasir.document_remark.create_at</code>. |
||||
|
*/ |
||||
|
public void setCreateAt(LocalDateTime createAt) { |
||||
|
this.createAt = createAt; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public String toString() { |
||||
|
StringBuilder sb = new StringBuilder("DocumentRemarkPojo ("); |
||||
|
|
||||
|
sb.append(id); |
||||
|
sb.append(", ").append(remark); |
||||
|
sb.append(", ").append(userId); |
||||
|
sb.append(", ").append(projectId); |
||||
|
sb.append(", ").append(tableName); |
||||
|
sb.append(", ").append(columnName); |
||||
|
sb.append(", ").append(createAt); |
||||
|
|
||||
|
sb.append(")"); |
||||
|
return sb.toString(); |
||||
|
} |
||||
|
} |
@ -0,0 +1,349 @@ |
|||||
|
/* |
||||
|
* This file is generated by jOOQ. |
||||
|
*/ |
||||
|
package com.databasir.dao.tables.records; |
||||
|
|
||||
|
|
||||
|
import com.databasir.dao.tables.DocumentRemark; |
||||
|
import com.databasir.dao.tables.pojos.DocumentRemarkPojo; |
||||
|
|
||||
|
import java.time.LocalDateTime; |
||||
|
|
||||
|
import org.jooq.Field; |
||||
|
import org.jooq.Record1; |
||||
|
import org.jooq.Record7; |
||||
|
import org.jooq.Row7; |
||||
|
import org.jooq.impl.UpdatableRecordImpl; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* This class is generated by jOOQ. |
||||
|
*/ |
||||
|
@SuppressWarnings({ "all", "unchecked", "rawtypes" }) |
||||
|
public class DocumentRemarkRecord extends UpdatableRecordImpl<DocumentRemarkRecord> implements Record7<Integer, String, Integer, Integer, String, String, LocalDateTime> { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** |
||||
|
* Setter for <code>databasir.document_remark.id</code>. |
||||
|
*/ |
||||
|
public void setId(Integer value) { |
||||
|
set(0, value); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Getter for <code>databasir.document_remark.id</code>. |
||||
|
*/ |
||||
|
public Integer getId() { |
||||
|
return (Integer) get(0); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Setter for <code>databasir.document_remark.remark</code>. |
||||
|
*/ |
||||
|
public void setRemark(String value) { |
||||
|
set(1, value); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Getter for <code>databasir.document_remark.remark</code>. |
||||
|
*/ |
||||
|
public String getRemark() { |
||||
|
return (String) get(1); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Setter for <code>databasir.document_remark.user_id</code>. user.id |
||||
|
*/ |
||||
|
public void setUserId(Integer value) { |
||||
|
set(2, value); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Getter for <code>databasir.document_remark.user_id</code>. user.id |
||||
|
*/ |
||||
|
public Integer getUserId() { |
||||
|
return (Integer) get(2); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Setter for <code>databasir.document_remark.project_id</code>. |
||||
|
*/ |
||||
|
public void setProjectId(Integer value) { |
||||
|
set(3, value); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Getter for <code>databasir.document_remark.project_id</code>. |
||||
|
*/ |
||||
|
public Integer getProjectId() { |
||||
|
return (Integer) get(3); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Setter for <code>databasir.document_remark.table_name</code>. |
||||
|
*/ |
||||
|
public void setTableName(String value) { |
||||
|
set(4, value); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Getter for <code>databasir.document_remark.table_name</code>. |
||||
|
*/ |
||||
|
public String getTableName() { |
||||
|
return (String) get(4); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Setter for <code>databasir.document_remark.column_name</code>. |
||||
|
*/ |
||||
|
public void setColumnName(String value) { |
||||
|
set(5, value); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Getter for <code>databasir.document_remark.column_name</code>. |
||||
|
*/ |
||||
|
public String getColumnName() { |
||||
|
return (String) get(5); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Setter for <code>databasir.document_remark.create_at</code>. |
||||
|
*/ |
||||
|
public void setCreateAt(LocalDateTime value) { |
||||
|
set(6, value); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Getter for <code>databasir.document_remark.create_at</code>. |
||||
|
*/ |
||||
|
public LocalDateTime getCreateAt() { |
||||
|
return (LocalDateTime) get(6); |
||||
|
} |
||||
|
|
||||
|
// -------------------------------------------------------------------------
|
||||
|
// Primary key information
|
||||
|
// -------------------------------------------------------------------------
|
||||
|
|
||||
|
@Override |
||||
|
public Record1<Integer> key() { |
||||
|
return (Record1) super.key(); |
||||
|
} |
||||
|
|
||||
|
// -------------------------------------------------------------------------
|
||||
|
// Record7 type implementation
|
||||
|
// -------------------------------------------------------------------------
|
||||
|
|
||||
|
@Override |
||||
|
public Row7<Integer, String, Integer, Integer, String, String, LocalDateTime> fieldsRow() { |
||||
|
return (Row7) super.fieldsRow(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Row7<Integer, String, Integer, Integer, String, String, LocalDateTime> valuesRow() { |
||||
|
return (Row7) super.valuesRow(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Field<Integer> field1() { |
||||
|
return DocumentRemark.DOCUMENT_REMARK.ID; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Field<String> field2() { |
||||
|
return DocumentRemark.DOCUMENT_REMARK.REMARK; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Field<Integer> field3() { |
||||
|
return DocumentRemark.DOCUMENT_REMARK.USER_ID; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Field<Integer> field4() { |
||||
|
return DocumentRemark.DOCUMENT_REMARK.PROJECT_ID; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Field<String> field5() { |
||||
|
return DocumentRemark.DOCUMENT_REMARK.TABLE_NAME; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Field<String> field6() { |
||||
|
return DocumentRemark.DOCUMENT_REMARK.COLUMN_NAME; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Field<LocalDateTime> field7() { |
||||
|
return DocumentRemark.DOCUMENT_REMARK.CREATE_AT; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Integer component1() { |
||||
|
return getId(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public String component2() { |
||||
|
return getRemark(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Integer component3() { |
||||
|
return getUserId(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Integer component4() { |
||||
|
return getProjectId(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public String component5() { |
||||
|
return getTableName(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public String component6() { |
||||
|
return getColumnName(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public LocalDateTime component7() { |
||||
|
return getCreateAt(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Integer value1() { |
||||
|
return getId(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public String value2() { |
||||
|
return getRemark(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Integer value3() { |
||||
|
return getUserId(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Integer value4() { |
||||
|
return getProjectId(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public String value5() { |
||||
|
return getTableName(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public String value6() { |
||||
|
return getColumnName(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public LocalDateTime value7() { |
||||
|
return getCreateAt(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public DocumentRemarkRecord value1(Integer value) { |
||||
|
setId(value); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public DocumentRemarkRecord value2(String value) { |
||||
|
setRemark(value); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public DocumentRemarkRecord value3(Integer value) { |
||||
|
setUserId(value); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public DocumentRemarkRecord value4(Integer value) { |
||||
|
setProjectId(value); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public DocumentRemarkRecord value5(String value) { |
||||
|
setTableName(value); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public DocumentRemarkRecord value6(String value) { |
||||
|
setColumnName(value); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public DocumentRemarkRecord value7(LocalDateTime value) { |
||||
|
setCreateAt(value); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public DocumentRemarkRecord values(Integer value1, String value2, Integer value3, Integer value4, String value5, String value6, LocalDateTime value7) { |
||||
|
value1(value1); |
||||
|
value2(value2); |
||||
|
value3(value3); |
||||
|
value4(value4); |
||||
|
value5(value5); |
||||
|
value6(value6); |
||||
|
value7(value7); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
// -------------------------------------------------------------------------
|
||||
|
// Constructors
|
||||
|
// -------------------------------------------------------------------------
|
||||
|
|
||||
|
/** |
||||
|
* Create a detached DocumentRemarkRecord |
||||
|
*/ |
||||
|
public DocumentRemarkRecord() { |
||||
|
super(DocumentRemark.DOCUMENT_REMARK); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Create a detached, initialised DocumentRemarkRecord |
||||
|
*/ |
||||
|
public DocumentRemarkRecord(Integer id, String remark, Integer userId, Integer projectId, String tableName, String columnName, LocalDateTime createAt) { |
||||
|
super(DocumentRemark.DOCUMENT_REMARK); |
||||
|
|
||||
|
setId(id); |
||||
|
setRemark(remark); |
||||
|
setUserId(userId); |
||||
|
setProjectId(projectId); |
||||
|
setTableName(tableName); |
||||
|
setColumnName(columnName); |
||||
|
setCreateAt(createAt); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Create a detached, initialised DocumentRemarkRecord |
||||
|
*/ |
||||
|
public DocumentRemarkRecord(DocumentRemarkPojo value) { |
||||
|
super(DocumentRemark.DOCUMENT_REMARK); |
||||
|
|
||||
|
if (value != null) { |
||||
|
setId(value.getId()); |
||||
|
setRemark(value.getRemark()); |
||||
|
setUserId(value.getUserId()); |
||||
|
setProjectId(value.getProjectId()); |
||||
|
setTableName(value.getTableName()); |
||||
|
setColumnName(value.getColumnName()); |
||||
|
setCreateAt(value.getCreateAt()); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,32 @@ |
|||||
|
package com.databasir.dao.impl; |
||||
|
|
||||
|
import com.databasir.dao.tables.pojos.DocumentRemarkPojo; |
||||
|
import com.databasir.dao.tables.records.DocumentRemarkRecord; |
||||
|
import lombok.Getter; |
||||
|
import org.jooq.DSLContext; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Repository; |
||||
|
|
||||
|
import java.util.Optional; |
||||
|
|
||||
|
import static com.databasir.dao.Tables.DOCUMENT_REMARK; |
||||
|
|
||||
|
|
||||
|
@Repository |
||||
|
public class DocumentRemarkDao extends BaseDao<DocumentRemarkRecord, DocumentRemarkPojo> { |
||||
|
|
||||
|
@Autowired |
||||
|
@Getter |
||||
|
private DSLContext dslContext; |
||||
|
|
||||
|
public DocumentRemarkDao() { |
||||
|
super(DOCUMENT_REMARK, DocumentRemarkPojo.class); |
||||
|
} |
||||
|
|
||||
|
public Optional<DocumentRemarkPojo> selectByProjectIdAndId(Integer projectId, Integer id) { |
||||
|
return this.getDslContext() |
||||
|
.selectFrom(DOCUMENT_REMARK).where(DOCUMENT_REMARK.PROJECT_ID.eq(projectId) |
||||
|
.and(DOCUMENT_REMARK.ID.eq(id))) |
||||
|
.fetchOptionalInto(DocumentRemarkPojo.class); |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue