fengyanjie 4 rokov pred
rodič
commit
9f27bc4049

+ 24 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/controller/RwdeditRefTypeController.java

@@ -0,0 +1,24 @@
+package com.persagy.dmp.rwd.edit.controller;
+
+import com.persagy.common.criteria.JacksonCriteria;
+import com.persagy.common.web.PagedResponse;
+import com.persagy.dmp.rwd.edit.model.RwdeditRefTypeModel;
+import com.persagy.dmp.rwd.edit.service.RwdeditRefTypeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/rwdedit/ref/type")
+public class RwdeditRefTypeController {
+
+    @Autowired
+    private RwdeditRefTypeService service;
+
+    @PostMapping("/query")
+    public PagedResponse<RwdeditRefTypeModel> query(@RequestBody JacksonCriteria criteria) {
+        return service.query(criteria);
+    }
+}

+ 48 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/entity/RefTypeInfoPK.java

@@ -0,0 +1,48 @@
+package com.persagy.dmp.rwd.edit.entity;
+
+import javax.persistence.Column;
+import javax.persistence.Embeddable;
+import java.io.Serializable;
+import java.util.Objects;
+
+/**
+ * @author: yaoll
+ * @date: 2020-11-01
+ * @verison: 1.0
+ */
+@Embeddable
+public class RefTypeInfoPK implements Serializable {
+
+    @Column
+    private String refKey;
+
+    @Column
+    private String code;
+
+    public RefTypeInfoPK() {
+    }
+
+    public RefTypeInfoPK(String refKey, String code) {
+        this.refKey = refKey;
+        this.code = code;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        RefTypeInfoPK groupPK = (RefTypeInfoPK) o;
+        return refKey.equals(groupPK.refKey) &&
+                code.equals(groupPK.code);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(refKey, code);
+    }
+
+    @Override
+    public String toString() {
+        return "GroupPK{id=\"" + refKey + "\", groupCode=\"" + code + "\"}";
+    }
+}

+ 59 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/entity/RwdeditRefType.java

@@ -0,0 +1,59 @@
+package com.persagy.dmp.rwd.edit.entity;
+
+import com.persagy.dmp.rwd.edit.model.RwdeditRefTypeModel;
+import lombok.Getter;
+import lombok.Setter;
+import org.hibernate.annotations.CreationTimestamp;
+import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.UpdateTimestamp;
+
+import javax.persistence.*;
+import java.util.Date;
+import java.util.List;
+
+@Setter
+@Getter
+@Entity
+@Table(name = "rwdedit_ref_type")
+public class RwdeditRefType {
+
+    @Id
+    @GeneratedValue(generator = "assignedId")
+    @GenericGenerator(name = "assignedId", strategy = "assigned")
+    private String refKey;
+    private String name;
+    @Column(updatable = false)
+    private Integer createUser;
+    @CreationTimestamp
+    @Column(updatable = false)
+    private Date createTime;
+    private Integer updateUser;
+    @UpdateTimestamp
+    private Date updateTime;
+
+    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "refKey")
+    private List<RwdeditRefTypeInfos> infos;
+
+    public static RwdeditRefType fromModel(RwdeditRefTypeModel model) {
+        RwdeditRefType entity = new RwdeditRefType();
+        entity.setRefKey(model.getRefKey());
+        entity.setName(model.getName());
+        entity.setCreateTime(model.getCreateTime());
+        entity.setUpdateTime(model.getUpdateTime());
+        entity.setCreateUser(model.getCreateUser());
+        entity.setUpdateUser(model.getUpdateUser());
+        entity.setInfos(model.getInfos());
+        return entity;
+    }
+
+    public RwdeditRefTypeModel toModel() {
+        RwdeditRefTypeModel model = new RwdeditRefTypeModel();
+        model.setRefKey(this.getRefKey());
+        model.setName(this.getName());
+        model.setCreateTime(this.getCreateTime());
+        model.setUpdateTime(this.getUpdateTime());
+        model.setCreateUser(this.getCreateUser());
+        model.setUpdateUser(this.getUpdateUser());
+        return model;
+    }
+}

+ 37 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/entity/RwdeditRefTypeInfos.java

@@ -0,0 +1,37 @@
+package com.persagy.dmp.rwd.edit.entity;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import lombok.Getter;
+import lombok.Setter;
+import org.hibernate.annotations.CreationTimestamp;
+import org.hibernate.annotations.Type;
+import org.hibernate.annotations.UpdateTimestamp;
+
+import javax.persistence.*;
+import java.util.Date;
+
+@Setter
+@Getter
+@Entity
+@Table(name = "rwdedit_ref_type_infos")
+@IdClass(RefTypeInfoPK.class)
+public class RwdeditRefTypeInfos {
+
+    @Id
+    private String refKey;
+    @Id
+    private String code;
+    private String name;
+    private String parentCode;
+    @Type(type = "json")
+    private ObjectNode dataSource;
+    @Column(updatable = false)
+    private Integer createUser;
+    @CreationTimestamp
+    @Column(updatable = false)
+    private Date createTime;
+    private Integer updateUser;
+    @UpdateTimestamp
+    private Date updateTime;
+}

+ 21 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/model/RwdeditRefTypeModel.java

@@ -0,0 +1,21 @@
+package com.persagy.dmp.rwd.edit.model;
+
+import com.persagy.dmp.rwd.edit.entity.RwdeditRefTypeInfos;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+import java.util.List;
+
+@Setter
+@Getter
+public class RwdeditRefTypeModel {
+
+    private String refKey;
+    private String name;
+    private Integer createUser;
+    private Date createTime;
+    private Integer updateUser;
+    private Date updateTime;
+    private List<RwdeditRefTypeInfos> infos;
+}

+ 9 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/repository/RwdeditRefTypeIfnosRepository.java

@@ -0,0 +1,9 @@
+package com.persagy.dmp.rwd.edit.repository;
+
+import com.persagy.dmp.rwd.edit.entity.RwdeditRefTypeInfos;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.querydsl.QuerydslPredicateExecutor;
+
+public interface RwdeditRefTypeIfnosRepository extends JpaRepository<RwdeditRefTypeInfos, String>, QuerydslPredicateExecutor<RwdeditRefTypeInfos> {
+}
+

+ 9 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/repository/RwdeditRefTypeRepository.java

@@ -0,0 +1,9 @@
+package com.persagy.dmp.rwd.edit.repository;
+
+import com.persagy.dmp.rwd.edit.entity.RwdeditRefType;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.querydsl.QuerydslPredicateExecutor;
+
+public interface RwdeditRefTypeRepository extends JpaRepository<RwdeditRefType, String>, QuerydslPredicateExecutor<RwdeditRefType> {
+}
+

+ 55 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/RwdeditRefTypeService.java

@@ -0,0 +1,55 @@
+package com.persagy.dmp.rwd.edit.service;
+
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.common.criteria.CriteriaUtils;
+import com.persagy.common.criteria.JacksonCriteria;
+import com.persagy.common.web.PagedResponse;
+import com.persagy.dmp.rwd.edit.entity.QRwdeditRefType;
+import com.persagy.dmp.rwd.edit.entity.RwdeditRefType;
+import com.persagy.dmp.rwd.edit.model.RwdeditRefTypeModel;
+import com.querydsl.core.types.dsl.BooleanExpression;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+@Slf4j
+@Service
+public class RwdeditRefTypeService {
+
+    @Autowired
+    private CriteriaUtils criteriaUtils;
+
+    private List<BooleanExpression> parse(ObjectNode object) {
+        List<BooleanExpression> list = new LinkedList<>();
+        QRwdeditRefType qt = QRwdeditRefType.rwdeditRefType;
+        list.addAll(CriteriaUtils.parse(qt.refKey, object.get("refKey")));
+        list.addAll(CriteriaUtils.parse(qt.createUser, object.get("createUser")));
+        list.addAll(CriteriaUtils.parse(qt.updateUser, object.get("updateUser")));
+        return list;
+    }
+
+    public PagedResponse<RwdeditRefTypeModel> query(JacksonCriteria criteria) {
+        PagedResponse<RwdeditRefType> resp = criteriaUtils.query(QRwdeditRefType.rwdeditRefType, this::parse, criteria);
+        PagedResponse<RwdeditRefTypeModel> result = new PagedResponse<>();
+        result.setCount(resp.getCount());
+        List<RwdeditRefType> dataList = resp.getData();
+        Set<String> withColumns = criteria.getWithColumns();
+        if (dataList != null && dataList.size() > 0) {
+            List<RwdeditRefTypeModel> collect = dataList.stream().map(entity -> {
+                RwdeditRefTypeModel model = entity.toModel();
+                if (withColumns != null && withColumns.contains("infos")) {
+                    model.setInfos(entity.getInfos());
+                }
+                return model;
+            }).collect(Collectors.toList());
+            result.setData(collect);
+        }
+        return result;
+    }
+}
+