diff --git a/pom.xml b/pom.xml
index 08e4976..2019835 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,6 +33,7 @@
2.2.5.RELEASE
1.12.0
7.6.1
+ 1.3.1.Final
@@ -243,6 +244,18 @@
tensorflow
${tensorflow.version}
+
+
+ org.mapstruct
+ mapstruct-jdk8
+ ${mapstruct.version}
+
+
+ org.mapstruct
+ mapstruct-processor
+ ${mapstruct.version}
+
+
diff --git a/radar-admin/src/main/java/com/pgmmers/radar/util/ReflectUtil.java b/radar-admin/src/main/java/com/pgmmers/radar/util/ReflectUtil.java
index f36cba2..2127618 100644
--- a/radar-admin/src/main/java/com/pgmmers/radar/util/ReflectUtil.java
+++ b/radar-admin/src/main/java/com/pgmmers/radar/util/ReflectUtil.java
@@ -1,7 +1,5 @@
package com.pgmmers.radar.util;
-import com.pgmmers.radar.dal.util.JsonUtils;
-
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
diff --git a/radar-commons/pom.xml b/radar-commons/pom.xml
index 016619a..b2bb13d 100644
--- a/radar-commons/pom.xml
+++ b/radar-commons/pom.xml
@@ -51,6 +51,17 @@
junit
junit
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ provided
+
+
+ org.slf4j
+ slf4j-api
+ provided
+
diff --git a/radar-commons/src/main/java/com/pgmmers/App.java b/radar-commons/src/main/java/com/pgmmers/App.java
deleted file mode 100644
index 391a59d..0000000
--- a/radar-commons/src/main/java/com/pgmmers/App.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.pgmmers;
-
-/**
- * Hello world!
- *
- */
-public class App
-{
- public static void main( String[] args )
- {
- System.out.println( "Hello World!" );
- }
-}
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/dal/util/JsonUtils.java b/radar-commons/src/main/java/com/pgmmers/radar/util/JsonUtils.java
similarity index 52%
rename from radar-dal/src/main/java/com.pgmmers.radar/dal/util/JsonUtils.java
rename to radar-commons/src/main/java/com/pgmmers/radar/util/JsonUtils.java
index 281561f..958c77a 100644
--- a/radar-dal/src/main/java/com.pgmmers.radar/dal/util/JsonUtils.java
+++ b/radar-commons/src/main/java/com/pgmmers/radar/util/JsonUtils.java
@@ -1,26 +1,59 @@
-package com.pgmmers.radar.dal.util;
+package com.pgmmers.radar.util;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.core.JsonParser.Feature;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JavaType;
+import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
-
import java.io.IOException;
import java.util.Map;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.util.StringUtils;
/**
* json对象转换
+ *
* @author xushuai
*/
public class JsonUtils {
+
+ private static Logger logger = LoggerFactory.getLogger(JsonUtils.class);
+ public static ObjectMapper objectMapper = new ObjectMapper();
+
+ public static JsonNode getJsonNode(String str) {
+ try {
+ if (StringUtils.isEmpty(str)) {
+ return null;
+ }
+ return objectMapper.readTree(str);
+ } catch (JsonProcessingException e) {
+ logger.error("getJsonNode error{}", str, e);
+ return null;
+ }
+ }
+
+ public static String jsonNodeToString(JsonNode jsonNode) {
+ try {
+ if (jsonNode == null) {
+ return null;
+ }
+ return objectMapper.writeValueAsString(jsonNode);
+ } catch (JsonProcessingException e) {
+ logger.error("jsonNodeToString error{}", jsonNode.asText(), e);
+ return null;
+ }
+ }
+
public JsonUtils() {
}
public static String toJson(Object object) {
try {
- return (new ObjectMapper()).setSerializationInclusion(Include.NON_NULL).writeValueAsString(object);
+ return (new ObjectMapper()).setSerializationInclusion(Include.NON_NULL)
+ .writeValueAsString(object);
} catch (JsonProcessingException var2) {
throw new RuntimeException(var2);
}
@@ -28,14 +61,17 @@ public class JsonUtils {
public static E fromJson(String json, Class type) {
try {
- return (new ObjectMapper()).configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false).readValue(json, type);
+ return (new ObjectMapper())
+ .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
+ .readValue(json, type);
} catch (IOException var3) {
throw new RuntimeException(var3);
}
}
public static JavaType getCollectionType(Class> collectionClass, Class>... elementClasses) {
- return (new ObjectMapper()).getTypeFactory().constructParametricType(collectionClass, elementClasses);
+ return (new ObjectMapper()).getTypeFactory()
+ .constructParametricType(collectionClass, elementClasses);
}
public static String toJsonString(Object object) {
@@ -53,7 +89,7 @@ public class JsonUtils {
Map map = null;
try {
- map = (Map)mapper.readValue(json, Map.class);
+ map = (Map) mapper.readValue(json, Map.class);
return map;
} catch (IOException var4) {
throw new RuntimeException(var4);
diff --git a/radar-dal/pom.xml b/radar-dal/pom.xml
index 2bdab5f..9c7670b 100644
--- a/radar-dal/pom.xml
+++ b/radar-dal/pom.xml
@@ -27,7 +27,16 @@
com.fasterxml.jackson.core
jackson-databind
-
+
+
+ org.mapstruct
+ mapstruct-jdk8
+
+
+ org.mapstruct
+ mapstruct-processor
+
+
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/dal/data/impl/MobileInfoDalImpl.java b/radar-dal/src/main/java/com.pgmmers.radar/dal/data/impl/MobileInfoDalImpl.java
index 21fd34e..4a7b410 100644
--- a/radar-dal/src/main/java/com.pgmmers.radar/dal/data/impl/MobileInfoDalImpl.java
+++ b/radar-dal/src/main/java/com.pgmmers.radar/dal/data/impl/MobileInfoDalImpl.java
@@ -1,19 +1,18 @@
package com.pgmmers.radar.dal.data.impl;
-import java.util.ArrayList;
-import java.util.List;
-
+import com.github.pagehelper.PageHelper;
import com.pgmmers.radar.dal.data.MobileInfoDal;
-import com.pgmmers.radar.dal.util.POVOUtils;
import com.pgmmers.radar.mapper.MobileInfoMapper;
+import com.pgmmers.radar.mapstruct.MobileInfoMapping;
import com.pgmmers.radar.model.MobileInfoPO;
import com.pgmmers.radar.vo.data.MobileInfoVO;
+import java.util.ArrayList;
+import java.util.List;
+import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
-
-import com.github.pagehelper.PageHelper;
-
import tk.mybatis.mapper.entity.Example;
@Service
@@ -21,19 +20,18 @@ public class MobileInfoDalImpl implements MobileInfoDal {
@Autowired
private MobileInfoMapper mobileMapper;
+ @Resource
+ private MobileInfoMapping mobileInfoVOMapping;
@Override
public List listMobileInfo(int pageNum, int pageSize) {
Example example = new Example(MobileInfoPO.class);
PageHelper.startPage(pageNum, pageSize);
List poList = mobileMapper.selectByExample(example);
- List voList = new ArrayList();
- MobileInfoVO vo;
- for (MobileInfoPO po : poList) {
- vo = POVOUtils.copyFromMobileInfPO(po);
- voList.add(vo);
+ if (CollectionUtils.isEmpty(poList)) {
+ return new ArrayList<>();
}
- return voList;
+ return mobileInfoVOMapping.sourceToTarget(poList);
}
@Override
@@ -49,37 +47,38 @@ public class MobileInfoDalImpl implements MobileInfoDal {
example.createCriteria().andEqualTo("mobile", mobile);
List list = mobileMapper.selectByExample(example);
if (list != null && list.size() > 0) {
- return POVOUtils.copyFromMobileInfPO(list.get(0));
+ return mobileInfoVOMapping.sourceToTarget(list.get(0));
}
return null;
}
@Override
- public List listMobileInfo(String province, String city, int pageNum, int pageSize) {
+ public List listMobileInfo(String province, String city, int pageNum,
+ int pageSize) {
Example example = new Example(MobileInfoPO.class);
PageHelper.startPage(pageNum, pageSize);
Example.Criteria criteria = example.createCriteria();
if (!StringUtils.isEmpty(province)) {
criteria.andEqualTo("province", province);
}
-
+
if (!StringUtils.isEmpty(city)) {
criteria.andEqualTo("city", city);
}
-
+
List poList = mobileMapper.selectByExample(example);
- List voList = new ArrayList();
- MobileInfoVO vo;
- for (MobileInfoPO po : poList) {
- vo = POVOUtils.copyFromMobileInfPO(po);
- voList.add(vo);
+ List voList;
+ if (CollectionUtils.isEmpty(poList)) {
+ voList = new ArrayList<>();
+ } else {
+ voList=mobileInfoVOMapping.sourceToTarget(poList);
}
return voList;
}
@Override
public int save(MobileInfoVO info) {
- MobileInfoPO po = POVOUtils.copyFromMobileInfoVO(info);
+ MobileInfoPO po = mobileInfoVOMapping.targetToSource(info);
return mobileMapper.insertSelective(po);
}
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/AbstractionDalImpl.java b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/AbstractionDalImpl.java
index e1a9ecd..a9d0574 100644
--- a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/AbstractionDalImpl.java
+++ b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/AbstractionDalImpl.java
@@ -1,27 +1,26 @@
package com.pgmmers.radar.dal.model.impl;
+import com.github.pagehelper.Page;
+import com.github.pagehelper.PageHelper;
+import com.pgmmers.radar.dal.bean.AbstractionQuery;
+import com.pgmmers.radar.dal.bean.PageResult;
+import com.pgmmers.radar.dal.model.AbstractionDal;
+import com.pgmmers.radar.mapper.AbstractionMapper;
+import com.pgmmers.radar.mapstruct.AbstractionMapping;
+import com.pgmmers.radar.model.AbstractionPO;
+import com.pgmmers.radar.util.BaseUtils;
+import com.pgmmers.radar.vo.model.AbstractionVO;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
-
-import com.pgmmers.radar.dal.bean.AbstractionQuery;
-import com.pgmmers.radar.dal.bean.PageResult;
-import com.pgmmers.radar.dal.model.AbstractionDal;
-import com.pgmmers.radar.dal.util.POVOUtils;
-import com.pgmmers.radar.mapper.AbstractionMapper;
-import com.pgmmers.radar.model.AbstractionPO;
-import com.pgmmers.radar.util.BaseUtils;
-import com.pgmmers.radar.vo.model.AbstractionVO;
+import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
-
-import com.github.pagehelper.Page;
-import com.github.pagehelper.PageHelper;
import tk.mybatis.mapper.entity.Example;
@@ -32,14 +31,14 @@ public class AbstractionDalImpl implements AbstractionDal {
@Autowired
private AbstractionMapper abstractionMapper;
+ @Resource
+ private AbstractionMapping abstractionMapping;
@Override
public AbstractionVO get(Long id) {
AbstractionPO abstraction = abstractionMapper.selectByPrimaryKey(id);
if (abstraction != null) {
- AbstractionVO abstractionVO = new AbstractionVO();
- BeanUtils.copyProperties(abstraction, abstractionVO);
- return abstractionVO;
+ return abstractionMapping.sourceToTarget(abstraction);
}
return null;
}
@@ -50,14 +49,10 @@ public class AbstractionDalImpl implements AbstractionDal {
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("modelId", modelId);
List list = abstractionMapper.selectByExample(example);
-
- List listVO = new ArrayList();
- for (AbstractionPO abstractionPO : list) {
- AbstractionVO abstractionVO = new AbstractionVO();
- BeanUtils.copyProperties(abstractionPO, abstractionVO);
- listVO.add(abstractionVO);
+ if (CollectionUtils.isEmpty(list)) {
+ return new ArrayList<>();
}
- return listVO;
+ return abstractionMapping.sourceToTarget(list);
}
@Override
@@ -80,28 +75,21 @@ public class AbstractionDalImpl implements AbstractionDal {
List list = abstractionMapper.selectByExample(example);
Page page = (Page) list;
-
- List listVO = new ArrayList();
- for (AbstractionPO abstractionPO : page.getResult()) {
- AbstractionVO abstractionVO = new AbstractionVO();
- abstractionVO = POVOUtils.copyFromAbstractPO(abstractionPO);
- listVO.add(abstractionVO);
+ List listVO;
+ if (CollectionUtils.isEmpty(list)) {
+ listVO = new ArrayList<>();
+ } else {
+ listVO = abstractionMapping.sourceToTarget(list);
}
-
-// for (AbstractionPO abstractionPO : page.getResult()) {
-// AbstractionVO abstractionVO = new AbstractionVO();
-// BeanUtils.copyProperties(abstractionPO, abstractionVO);
-// listVO.add(abstractionVO);
-// }
-
- PageResult pageResult = new PageResult(page.getPageNum(), page.getPageSize(),
+ PageResult pageResult = new PageResult<>(page.getPageNum(),
+ page.getPageSize(),
(int) page.getTotal(), listVO);
return pageResult;
}
@Override
public int save(AbstractionVO abstraction) {
- AbstractionPO abstractionPO = POVOUtils.copyFromAbstractVO(abstraction);
+ AbstractionPO abstractionPO = abstractionMapping.targetToSource(abstraction);
Date sysDate = new Date();
int count = 0;
if (abstraction.getId() == null) {
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/ActivationDalImpl.java b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/ActivationDalImpl.java
index 051aa52..9761dcd 100644
--- a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/ActivationDalImpl.java
+++ b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/ActivationDalImpl.java
@@ -1,26 +1,26 @@
package com.pgmmers.radar.dal.model.impl;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-
+import com.github.pagehelper.Page;
+import com.github.pagehelper.PageHelper;
import com.pgmmers.radar.dal.bean.ActivationQuery;
import com.pgmmers.radar.dal.bean.PageResult;
import com.pgmmers.radar.dal.model.ActivationDal;
import com.pgmmers.radar.mapper.ActivationMapper;
+import com.pgmmers.radar.mapstruct.ActivationMapping;
import com.pgmmers.radar.model.ActivationPO;
import com.pgmmers.radar.util.BaseUtils;
import com.pgmmers.radar.vo.model.ActivationVO;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
-
-import com.github.pagehelper.Page;
-import com.github.pagehelper.PageHelper;
import tk.mybatis.mapper.entity.Example;
@@ -31,14 +31,13 @@ public class ActivationDalImpl implements ActivationDal {
@Autowired
private ActivationMapper activationMapper;
-
+ @Resource
+ private ActivationMapping activationMapping;
@Override
public ActivationVO get(Long id) {
ActivationPO activation = activationMapper.selectByPrimaryKey(id);
if (activation != null) {
- ActivationVO activationVO = new ActivationVO();
- BeanUtils.copyProperties(activation, activationVO);
- return activationVO;
+ return activationMapping.sourceToTarget(activation);
}
return null;
}
@@ -58,23 +57,20 @@ public class ActivationDalImpl implements ActivationDal {
}
List list = activationMapper.selectByExample(example);
Page page = (Page) list;
-
- List listVO = new ArrayList<>();
- for (ActivationPO activationPO : page.getResult()) {
- ActivationVO activationVO = new ActivationVO();
- BeanUtils.copyProperties(activationPO, activationVO);
- listVO.add(activationVO);
+ List listVO ;
+ if (CollectionUtils.isEmpty(list)){
+ listVO =new ArrayList<>();
+ }else {
+ listVO=activationMapping.sourceToTarget(list);
}
-
- PageResult pageResult = new PageResult(page.getPageNum(), page.getPageSize(),
+ PageResult pageResult = new PageResult<>(page.getPageNum(), page.getPageSize(),
(int) page.getTotal(), listVO);
return pageResult;
}
@Override
public int save(ActivationVO activation) {
- ActivationPO activationPO = new ActivationPO();
- BeanUtils.copyProperties(activation, activationPO);
+ ActivationPO activationPO = activationMapping.targetToSource(activation);
Date sysDate = new Date();
int count = 0;
if (activation.getId() == null) {
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/DataListDalImpl.java b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/DataListDalImpl.java
index 0e7c26f..b8bfc62 100644
--- a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/DataListDalImpl.java
+++ b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/DataListDalImpl.java
@@ -1,10 +1,7 @@
package com.pgmmers.radar.dal.model.impl;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-
+import com.github.pagehelper.Page;
+import com.github.pagehelper.PageHelper;
import com.pgmmers.radar.dal.bean.DataListQuery;
import com.pgmmers.radar.dal.bean.DataListRecordQuery;
import com.pgmmers.radar.dal.bean.PageResult;
@@ -12,6 +9,9 @@ import com.pgmmers.radar.dal.model.DataListDal;
import com.pgmmers.radar.mapper.DataListMetaMapper;
import com.pgmmers.radar.mapper.DataListRecordMapper;
import com.pgmmers.radar.mapper.DataListsMapper;
+import com.pgmmers.radar.mapstruct.DataListMetaMapping;
+import com.pgmmers.radar.mapstruct.DataListRecordMapping;
+import com.pgmmers.radar.mapstruct.DataListsMapping;
import com.pgmmers.radar.model.DataListMetaPO;
import com.pgmmers.radar.model.DataListRecordPO;
import com.pgmmers.radar.model.DataListsPO;
@@ -19,15 +19,17 @@ import com.pgmmers.radar.util.BaseUtils;
import com.pgmmers.radar.vo.model.DataListMetaVO;
import com.pgmmers.radar.vo.model.DataListRecordVO;
import com.pgmmers.radar.vo.model.DataListsVO;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
-
-import com.github.pagehelper.Page;
-import com.github.pagehelper.PageHelper;
import tk.mybatis.mapper.entity.Example;
@@ -38,44 +40,39 @@ public class DataListDalImpl implements DataListDal {
@Autowired
private DataListsMapper dataListMapper;
-
+ @Resource
+ private DataListsMapping dataListsMapping;
@Autowired
private DataListRecordMapper dataListRecordMapper;
-
+ @Resource
+ private DataListRecordMapping dataListRecordMapping;
@Autowired
private DataListMetaMapper dataListMetaMapper;
+ @Resource
+ private DataListMetaMapping dataListMetaMapping;
@Override
public List listDataMeta(Long dataListId) {
logger.info("listDataRecord,{}", dataListId);
- List volist = new ArrayList<>();
Example example = new Example(DataListMetaPO.class);
example.createCriteria().andEqualTo("dataListId", dataListId);
- DataListMetaVO vo;
List list = dataListMetaMapper.selectByExample(example);
- for (DataListMetaPO po : list) {
- vo = new DataListMetaVO();
- BeanUtils.copyProperties(po, vo);
- volist.add(vo);
+ if (CollectionUtils.isEmpty(list)) {
+ return new ArrayList<>();
}
- return volist;
+ return dataListMetaMapping.sourceToTarget(list);
}
@Override
public List listDataRecord(Long dataListId) {
logger.info("listDataRecord,{}", dataListId);
- List voList = new ArrayList<>();
Example example = new Example(DataListRecordPO.class);
example.createCriteria().andEqualTo("dataListId", dataListId);
List list = dataListRecordMapper.selectByExample(example);
- DataListRecordVO vo;
- for (DataListRecordPO po : list) {
- vo = new DataListRecordVO();
- BeanUtils.copyProperties(po, vo);
- voList.add(vo);
+ if (CollectionUtils.isEmpty(list)) {
+ return new ArrayList<>();
}
-
- return voList;
+ return dataListRecordMapping.sourceToTarget(list);
}
@Override
@@ -87,33 +84,23 @@ public class DataListDalImpl implements DataListDal {
@Override
public List listDataLists(Long modelId, Integer status) {
logger.info("listDataLists,{},{}", modelId, status);
- List dataLists = new ArrayList<>();
Example example = new Example(DataListsPO.class);
Example.Criteria cri = example.createCriteria();
if (status != null) {
cri.andEqualTo("status", status);
}
List list = dataListMapper.selectByExample(example);
- DataListsVO vo;
- if (list == null || list.size() == 0) {
- return null;
- } else {
- for (DataListsPO po : list) {
- vo = new DataListsVO();
- BeanUtils.copyProperties(po, vo);
- dataLists.add(vo);
- }
+ if (CollectionUtils.isEmpty(list)) {
+ return new ArrayList<>();
}
- return dataLists;
+ return dataListsMapping.sourceToTarget(list);
}
@Override
public DataListsVO get(Long id) {
DataListsPO dataListsPO = dataListMapper.selectByPrimaryKey(id);
if (dataListsPO != null) {
- DataListsVO dataListsVO = new DataListsVO();
- BeanUtils.copyProperties(dataListsPO, dataListsVO);
- return dataListsVO;
+ return dataListsMapping.sourceToTarget(dataListsPO);
}
return null;
}
@@ -124,14 +111,10 @@ public class DataListDalImpl implements DataListDal {
Example.Criteria criteria = example.createCriteria();
criteria.andIn("modelId", Arrays.asList(modelId, 0L));
List list = dataListMapper.selectByExample(example);
-
- List listVO = new ArrayList<>();
- for (DataListsPO dataListsPO : list) {
- DataListsVO dataListsVO = new DataListsVO();
- BeanUtils.copyProperties(dataListsPO, dataListsVO);
- listVO.add(dataListsVO);
+ if (CollectionUtils.isEmpty(list)) {
+ return new ArrayList<>();
}
- return listVO;
+ return dataListsMapping.sourceToTarget(list);
}
@Override
@@ -152,14 +135,12 @@ public class DataListDalImpl implements DataListDal {
}
List list = dataListMapper.selectByExample(example);
Page page = (Page) list;
-
- List listVO = new ArrayList<>();
- for (DataListsPO dataListsPO : page.getResult()) {
- DataListsVO dataListsVO = new DataListsVO();
- BeanUtils.copyProperties(dataListsPO, dataListsVO);
- listVO.add(dataListsVO);
+ List listVO;
+ if (CollectionUtils.isEmpty(list)) {
+ listVO = new ArrayList<>();
+ } else {
+ listVO = dataListsMapping.sourceToTarget(list);
}
-
PageResult pageResult = new PageResult<>(page.getPageNum(), page.getPageSize(),
(int) page.getTotal(), listVO);
return pageResult;
@@ -167,8 +148,7 @@ public class DataListDalImpl implements DataListDal {
@Override
public int save(DataListsVO datalist) {
- DataListsPO dataListsPO = new DataListsPO();
- BeanUtils.copyProperties(datalist, dataListsPO);
+ DataListsPO dataListsPO = dataListsMapping.targetToSource(datalist);
Date sysDate = new Date();
int count = 0;
if (datalist.getId() == null) {
@@ -196,17 +176,14 @@ public class DataListDalImpl implements DataListDal {
public DataListMetaVO getMeta(Long id) {
DataListMetaPO dataListMetaPO = dataListMetaMapper.selectByPrimaryKey(id);
if (dataListMetaPO != null) {
- DataListMetaVO dataListMetaVO = new DataListMetaVO();
- BeanUtils.copyProperties(dataListMetaPO, dataListMetaVO);
- return dataListMetaVO;
+ return dataListMetaMapping.sourceToTarget(dataListMetaPO);
}
return null;
}
@Override
public int saveMeta(DataListMetaVO dataListMeta) {
- DataListMetaPO dataListMetaPO = new DataListMetaPO();
- BeanUtils.copyProperties(dataListMeta, dataListMetaPO);
+ DataListMetaPO dataListMetaPO = dataListMetaMapping.targetToSource(dataListMeta);
Date sysDate = new Date();
int count = 0;
if (dataListMetaPO.getId() == null) {
@@ -234,9 +211,7 @@ public class DataListDalImpl implements DataListDal {
public DataListRecordVO getRecord(Long id) {
DataListRecordPO dataListRecordPO = dataListRecordMapper.selectByPrimaryKey(id);
if (dataListRecordPO != null) {
- DataListRecordVO dataListRecordVO = new DataListRecordVO();
- BeanUtils.copyProperties(dataListRecordPO, dataListRecordVO);
- return dataListRecordVO;
+ return dataListRecordMapping.sourceToTarget(dataListRecordPO);
}
return null;
}
@@ -249,14 +224,12 @@ public class DataListDalImpl implements DataListDal {
example.createCriteria().andEqualTo("dataListId", query.getDataListId());
List list = dataListRecordMapper.selectByExample(example);
Page page = (Page) list;
-
- List listVO = new ArrayList<>();
- for (DataListRecordPO dataListRecordPO : page.getResult()) {
- DataListRecordVO dataListRecordVO = new DataListRecordVO();
- BeanUtils.copyProperties(dataListRecordPO, dataListRecordVO);
- listVO.add(dataListRecordVO);
+ List listVO ;
+ if (CollectionUtils.isEmpty(list)){
+ listVO = new ArrayList<>();
+ }else {
+ listVO=dataListRecordMapping.sourceToTarget(list);
}
-
PageResult pageResult = new PageResult<>(page.getPageNum(),
page.getPageSize(), (int) page.getTotal(), listVO);
return pageResult;
@@ -264,8 +237,7 @@ public class DataListDalImpl implements DataListDal {
@Override
public int saveRecord(DataListRecordVO dataListRecord) {
- DataListRecordPO dataListRecordPO = new DataListRecordPO();
- BeanUtils.copyProperties(dataListRecord, dataListRecordPO);
+ DataListRecordPO dataListRecordPO = dataListRecordMapping.targetToSource(dataListRecord);
Date sysDate = new Date();
int count = 0;
if (dataListRecordPO.getId() == null) {
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/FieldDalImpl.java b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/FieldDalImpl.java
index 65694eb..58df2fd 100644
--- a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/FieldDalImpl.java
+++ b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/FieldDalImpl.java
@@ -1,27 +1,26 @@
package com.pgmmers.radar.dal.model.impl;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-
+import com.github.pagehelper.Page;
+import com.github.pagehelper.PageHelper;
import com.pgmmers.radar.dal.bean.FieldQuery;
import com.pgmmers.radar.dal.bean.PageResult;
import com.pgmmers.radar.dal.model.FieldDal;
import com.pgmmers.radar.mapper.FieldMapper;
+import com.pgmmers.radar.mapstruct.FieldMapping;
import com.pgmmers.radar.model.FieldPO;
import com.pgmmers.radar.util.BaseUtils;
import com.pgmmers.radar.vo.model.FieldVO;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
-
-import com.github.pagehelper.Page;
-import com.github.pagehelper.PageHelper;
import tk.mybatis.mapper.entity.Example;
@@ -32,14 +31,14 @@ public class FieldDalImpl implements FieldDal {
@Autowired
private FieldMapper fieldMapper;
+ @Resource
+ private FieldMapping fieldMapping;
@Override
public FieldVO get(Long id) {
FieldPO field = fieldMapper.selectByPrimaryKey(id);
if (field != null) {
- FieldVO fieldVO = new FieldVO();
- BeanUtils.copyProperties(field, fieldVO);
- return fieldVO;
+ return fieldMapping.sourceToTarget(field);
}
return null;
}
@@ -59,23 +58,21 @@ public class FieldDalImpl implements FieldDal {
}
List list = fieldMapper.selectByExample(example);
Page page = (Page) list;
-
- List listVO = new ArrayList<>();
- for (FieldPO fieldPO : page.getResult()) {
- FieldVO fieldVO = new FieldVO();
- BeanUtils.copyProperties(fieldPO, fieldVO);
- listVO.add(fieldVO);
+ List listVO;
+ if (CollectionUtils.isEmpty(list)) {
+ listVO = new ArrayList<>();
+ } else {
+ listVO = fieldMapping.sourceToTarget(list);
}
-
- PageResult pageResult = new PageResult(page.getPageNum(), page.getPageSize(),
+ PageResult pageResult = new PageResult<>(page.getPageNum(),
+ page.getPageSize(),
(int) page.getTotal(), listVO);
return pageResult;
}
@Override
public int save(FieldVO field) {
- FieldPO fieldPO = new FieldPO();
- BeanUtils.copyProperties(field, fieldPO);
+ FieldPO fieldPO = fieldMapping.targetToSource(field);
Date sysDate = new Date();
int count = 0;
if (field.getId() == null) {
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/ModelConfDalImpl.java b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/ModelConfDalImpl.java
index d264a9b..3c107bc 100644
--- a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/ModelConfDalImpl.java
+++ b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/ModelConfDalImpl.java
@@ -7,17 +7,17 @@ import com.pgmmers.radar.model.ModelConfPO;
import com.pgmmers.radar.model.ModelConfParamPO;
import com.pgmmers.radar.vo.model.ModelConfParamVO;
import com.pgmmers.radar.vo.model.ModelConfVO;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+import javax.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
-import javax.annotation.Resource;
-import java.util.Date;
-import java.util.List;
-import java.util.stream.Collectors;
-
@Service
public class ModelConfDalImpl implements ModelConfDal {
+
@Resource
private ModelConfMapper modelConfMapper;
@Resource
@@ -62,8 +62,8 @@ public class ModelConfDalImpl implements ModelConfDal {
@Override
public ModelConfParamVO getParamById(Long id) {
ModelConfParamVO modelConfParamVO = new ModelConfParamVO();
- ModelConfParamPO po = modelConfParamMapper.selectByPrimaryKey(id);
- BeanUtils.copyProperties(po,modelConfParamVO);
+ ModelConfParamPO po = modelConfParamMapper.selectByPrimaryKey(id);
+ BeanUtils.copyProperties(po, modelConfParamVO);
return modelConfParamVO;
}
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/ModelDalImpl.java b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/ModelDalImpl.java
index 7fe51bb..f784ac1 100644
--- a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/ModelDalImpl.java
+++ b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/ModelDalImpl.java
@@ -1,31 +1,55 @@
package com.pgmmers.radar.dal.model.impl;
+import com.github.pagehelper.Page;
+import com.github.pagehelper.PageHelper;
+import com.pgmmers.radar.dal.bean.ModelQuery;
+import com.pgmmers.radar.dal.bean.PageResult;
+import com.pgmmers.radar.dal.model.ModelDal;
+import com.pgmmers.radar.enums.StatusType;
+import com.pgmmers.radar.mapper.AbstractionMapper;
+import com.pgmmers.radar.mapper.ActivationMapper;
+import com.pgmmers.radar.mapper.DataListMetaMapper;
+import com.pgmmers.radar.mapper.DataListRecordMapper;
+import com.pgmmers.radar.mapper.DataListsMapper;
+import com.pgmmers.radar.mapper.FieldMapper;
+import com.pgmmers.radar.mapper.ModelMapper;
+import com.pgmmers.radar.mapper.PreItemMapper;
+import com.pgmmers.radar.mapper.RuleMapper;
+import com.pgmmers.radar.mapstruct.AbstractionMapping;
+import com.pgmmers.radar.mapstruct.ActivationMapping;
+import com.pgmmers.radar.mapstruct.FieldMapping;
+import com.pgmmers.radar.mapstruct.ModelMapping;
+import com.pgmmers.radar.mapstruct.PreItemMapping;
+import com.pgmmers.radar.mapstruct.RuleMapping;
+import com.pgmmers.radar.model.AbstractionPO;
+import com.pgmmers.radar.model.ActivationPO;
+import com.pgmmers.radar.model.DataListMetaPO;
+import com.pgmmers.radar.model.DataListRecordPO;
+import com.pgmmers.radar.model.DataListsPO;
+import com.pgmmers.radar.model.FieldPO;
+import com.pgmmers.radar.model.ModelPO;
+import com.pgmmers.radar.model.PreItemPO;
+import com.pgmmers.radar.model.RulePO;
+import com.pgmmers.radar.util.BaseUtils;
+import com.pgmmers.radar.vo.model.AbstractionVO;
+import com.pgmmers.radar.vo.model.ActivationVO;
+import com.pgmmers.radar.vo.model.FieldVO;
+import com.pgmmers.radar.vo.model.ModelVO;
+import com.pgmmers.radar.vo.model.PreItemVO;
+import com.pgmmers.radar.vo.model.RuleVO;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.UUID;
-
-import com.pgmmers.radar.dal.bean.ModelQuery;
-import com.pgmmers.radar.dal.bean.PageResult;
-import com.pgmmers.radar.dal.model.ModelDal;
-import com.pgmmers.radar.dal.util.POVOUtils;
-import com.pgmmers.radar.enums.StatusType;
-import com.pgmmers.radar.mapper.*;
-import com.pgmmers.radar.model.*;
-import com.pgmmers.radar.util.BaseUtils;
-import com.pgmmers.radar.vo.model.*;
+import javax.annotation.Resource;
+import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
-
-import com.github.pagehelper.Page;
-import com.github.pagehelper.PageHelper;
import tk.mybatis.mapper.entity.Example;
@@ -48,10 +72,10 @@ public class ModelDalImpl implements ModelDal {
@Autowired
private DataListsMapper dataListMapper;
-
+
@Autowired
private DataListMetaMapper dataListMetaMapper;
-
+
@Autowired
private DataListRecordMapper dataListRecordMapper;
@@ -60,13 +84,24 @@ public class ModelDalImpl implements ModelDal {
@Autowired
private PreItemMapper preItemMapper;
+ @Autowired
+ private PreItemMapping preItemMapping;
+ @Resource
+ private ModelMapping modelMapping;
+ @Resource
+ private FieldMapping fieldMapping;
+ @Resource
+ private RuleMapping ruleMapping;
+ @Resource
+ private AbstractionMapping abstractionMapping;
+ @Resource
+ private ActivationMapping activationMapping;
@Cacheable(value = "models", key = "#guid")
@Override
public ModelVO getModelByGuid(String guid) {
logger.info("getModelByGuid,{}", guid);
ModelPO po = null;
- ModelVO vo = new ModelVO();
Example example = new Example(ModelPO.class);
example.createCriteria().andEqualTo("guid", guid);
List models = modelMapper.selectByExample(example);
@@ -75,19 +110,16 @@ public class ModelDalImpl implements ModelDal {
} else {
po = models.get(0);
}
- BeanUtils.copyProperties(po, vo);
- return vo;
+ return modelMapping.sourceToTarget(po);
}
//@Cacheable(value = "models", key = "#modelId")
@Override
public ModelVO getModelById(Long modelId) {
logger.info("getModelById,{}", modelId);
- ModelVO vo = new ModelVO();
ModelPO model = modelMapper.selectByPrimaryKey(modelId);
if (model != null) {
- BeanUtils.copyProperties(model, vo);
- return vo;
+ return modelMapping.sourceToTarget(model);
}
return null;
}
@@ -107,72 +139,56 @@ public class ModelDalImpl implements ModelDal {
@Override
public List listField(Long modelId) {
logger.info("listField,{}", modelId);
- List fieldList = new ArrayList<>();
Example example = new Example(FieldPO.class);
example.createCriteria().andEqualTo("modelId", modelId);
List list = fieldMapper.selectByExample(example);
- FieldVO vo;
- if (list == null || list.size() == 0) {
- return null;
+ if (CollectionUtils.isEmpty(list)) {
+ return new ArrayList<>();
} else {
- for (FieldPO po : list) {
- vo = new FieldVO();
- BeanUtils.copyProperties(po, vo);
- fieldList.add(vo);
- }
+ return fieldMapping.sourceToTarget(list);
}
- return fieldList;
}
@Override
- public List listModel(String merchantCode, Integer status) {
- logger.info("listAbstraction,merchantCode:{},status:{}",merchantCode, status);
+ public List listModel(String merchantCode, Integer status) {
+ logger.info("listAbstraction,merchantCode:{},status:{}", merchantCode, status);
return listModel(merchantCode, status, null);
- }
+ }
- @Override
+ @Override
public List listModel(Integer status) {
logger.info("listAbstraction,status:{}", status);
- List modelList = new ArrayList<>();
Example example = new Example(ModelPO.class);
if (status != null) {
example.createCriteria().andEqualTo("status", status);
}
List list = modelMapper.selectByExample(example);
- for (ModelPO po : list) {
- modelList.add(POVOUtils.copyFromModelPO(po));
+ if (CollectionUtils.isEmpty(list)) {
+ return new ArrayList<>();
}
- return modelList;
+ return modelMapping.sourceToTarget(list);
}
@Override
public List listAbstraction(Long modelId, Integer status) {
logger.info("listAbstraction,{}", modelId);
- List absList = new ArrayList();
Example example = new Example(AbstractionPO.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("modelId", modelId);
if (status != null) {
- criteria.andEqualTo("status",status);
+ criteria.andEqualTo("status", status);
}
List list = abstractionMapper.selectByExample(example);
- AbstractionVO vo;
- if (list == null || list.size() == 0) {
- return null;
- } else {
- for (AbstractionPO po : list) {
- vo = new AbstractionVO();
- BeanUtils.copyProperties(po, vo);
- absList.add(vo);
- }
+ if (CollectionUtils.isEmpty(list)) {
+ return new ArrayList<>();
}
- return absList;
+ return abstractionMapping.sourceToTarget(list);
+
}
@Override
public List listActivation(Long modelId, Integer status) {
logger.info("listActivation,{}", modelId);
- List activationList = new ArrayList();
Example example = new Example(ActivationPO.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("modelId", modelId);
@@ -180,24 +196,16 @@ public class ModelDalImpl implements ModelDal {
criteria.andEqualTo("status", status);
}
List list = activationMapper.selectByExample(example);
- ActivationVO vo;
- if (list == null || list.size() == 0) {
- return null;
- } else {
- for (ActivationPO po : list) {
- vo = new ActivationVO();
- BeanUtils.copyProperties(po, vo);
- activationList.add(vo);
- }
+ if (CollectionUtils.isEmpty(list)) {
+ return new ArrayList<>();
}
- return activationList;
+ return activationMapping.sourceToTarget(list);
}
@Override
public List listRules(Long modelId, Long activationId, Integer status) {
logger.info("listRules:{},{},{}", modelId, activationId, status);
- List ruleList = new ArrayList<>();
Example example = new Example(RulePO.class);
Example.Criteria criteria = example.createCriteria();
if (modelId != null) {
@@ -209,20 +217,17 @@ public class ModelDalImpl implements ModelDal {
if (status != null) {
criteria.andEqualTo("status", status);
}
- RuleVO vo;
List rulePoList = ruleMapper.selectByExample(example);
- for (RulePO po : rulePoList) {
- vo = new RuleVO();
- BeanUtils.copyProperties(po, vo);
- ruleList.add(vo);
+ if (CollectionUtils.isEmpty(rulePoList)) {
+ return new ArrayList<>();
}
- return ruleList;
+ return ruleMapping.sourceToTarget(rulePoList);
}
@Override
public List listPreItem(Long modelId, Integer status) {
logger.info("listRules:{},{}", modelId, status);
- List itemList = new ArrayList<>();
+
Example example = new Example(PreItemPO.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("modelId", modelId);
@@ -230,73 +235,66 @@ public class ModelDalImpl implements ModelDal {
criteria.andEqualTo("status", status);
}
List itemPOList = preItemMapper.selectByExample(example);
- PreItemVO vo = null;
- for (PreItemPO po : itemPOList) {
- vo = new PreItemVO();
- vo = POVOUtils.copyFromPreItemPO(po);
- itemList.add(vo);
+ if (CollectionUtils.isEmpty(itemPOList)){
+ return new ArrayList<>();
}
- return itemList;
+ return preItemMapping.sourceToTarget(itemPOList);
}
- @Override
- public PageResult query(ModelQuery query) {
- PageHelper.startPage(query.getPageNo(), query.getPageSize());
+ @Override
+ public PageResult query(ModelQuery query) {
+ PageHelper.startPage(query.getPageNo(), query.getPageSize());
- Example example = new Example(ModelPO.class);
- Example.Criteria criteria = example.createCriteria();
- if (!StringUtils.isEmpty(query.getModelName())) {
- criteria.andLike("modelName", BaseUtils.buildLike(query.getModelName()));
- }
+ Example example = new Example(ModelPO.class);
+ Example.Criteria criteria = example.createCriteria();
+ if (!StringUtils.isEmpty(query.getModelName())) {
+ criteria.andLike("modelName", BaseUtils.buildLike(query.getModelName()));
+ }
if (!StringUtils.isEmpty(query.getLabel())) {
criteria.andLike("label", BaseUtils.buildLike(query.getLabel()));
}
- if (query.getStatus() != null) {
- criteria.andEqualTo("status", query.getStatus());
- }
- if (!StringUtils.isEmpty(query.getMerchantCode())) {
- criteria.andEqualTo("code", query.getMerchantCode());
- }
- List list = modelMapper.selectByExample(example);
- Page page = (Page) list;
-
- List listVO = new ArrayList<>();
- for (ModelPO modelPO : page.getResult()) {
- ModelVO modelVO = new ModelVO();
- BeanUtils.copyProperties(modelPO, modelVO);
- listVO.add(modelVO);
- }
-
- PageResult pageResult = new PageResult<>(page.getPageNum(), page.getPageSize(),
- (int) page.getTotal(), listVO);
- return pageResult;
- }
+ if (query.getStatus() != null) {
+ criteria.andEqualTo("status", query.getStatus());
+ }
+ if (!StringUtils.isEmpty(query.getMerchantCode())) {
+ criteria.andEqualTo("code", query.getMerchantCode());
+ }
+ List list = modelMapper.selectByExample(example);
+ Page page = (Page) list;
+ List listVO;
+ if (CollectionUtils.isEmpty(list)) {
+ listVO = new ArrayList<>();
+ } else {
+ listVO = modelMapping.sourceToTarget(list);
+ }
+ return new PageResult<>(page.getPageNum(), page.getPageSize(),
+ (int) page.getTotal(), listVO);
+ }
//@CachePut(value = "models", key = "#model.id")
@Override
- public int save(ModelVO model) {
- ModelPO modelPO = new ModelPO();
- BeanUtils.copyProperties(model, modelPO);
- Date sysDate = new Date();
- int count = 0;
- if (model.getId() == null) {
- modelPO.setCreateTime(sysDate);
- modelPO.setUpdateTime(sysDate);
- count = modelMapper.insertSelective(modelPO);
- model.setId(modelPO.getId());//返回id
- } else {
- modelPO.setUpdateTime(sysDate);
- count = modelMapper.updateByPrimaryKeySelective(modelPO);
- }
- return count;
- }
+ public int save(ModelVO model) {
+ ModelPO modelPO = modelMapping.targetToSource(model);
+ Date sysDate = new Date();
+ int count = 0;
+ if (model.getId() == null) {
+ modelPO.setCreateTime(sysDate);
+ modelPO.setUpdateTime(sysDate);
+ count = modelMapper.insertSelective(modelPO);
+ model.setId(modelPO.getId());//返回id
+ } else {
+ modelPO.setUpdateTime(sysDate);
+ count = modelMapper.updateByPrimaryKeySelective(modelPO);
+ }
+ return count;
+ }
- @Override
- public int delete(Long[] id) {
- Example example = new Example(ModelPO.class);
- example.createCriteria().andIn("id", Arrays.asList(id));
- int count = modelMapper.deleteByExample(example);
- // 删除关联子表
+ @Override
+ public int delete(Long[] id) {
+ Example example = new Example(ModelPO.class);
+ example.createCriteria().andIn("id", Arrays.asList(id));
+ int count = modelMapper.deleteByExample(example);
+ // 删除关联子表
example = new Example(FieldPO.class);
example.createCriteria().andIn("modelId", Arrays.asList(id));
fieldMapper.deleteByExample(example);
@@ -321,150 +319,150 @@ public class ModelDalImpl implements ModelDal {
example.createCriteria().andIn("modelId", Arrays.asList(id));
ruleMapper.deleteByExample(example);
-
return count;
- }
-
- @Override
- public int copy(ModelVO model){
- Long oldId=model.getId();
- model.setId(null);
- model.setStatus(StatusType.INIT.getKey());
+ }
+
+ @Override
+ public int copy(ModelVO model) {
+ Long oldId = model.getId();
+ model.setId(null);
+ model.setStatus(StatusType.INIT.getKey());
model.setGuid(UUID.randomUUID().toString().toUpperCase());
model.setTemplate(false);
- int count=this.save(model);
-
- Long newId=model.getId();
- Date sysDate = new Date();
-
- //复制field
- Example fieldExample = new Example(FieldPO.class);
- fieldExample.createCriteria().andEqualTo("modelId", oldId);
+ int count = this.save(model);
+
+ Long newId = model.getId();
+ Date sysDate = new Date();
+
+ //复制field
+ Example fieldExample = new Example(FieldPO.class);
+ fieldExample.createCriteria().andEqualTo("modelId", oldId);
List fieldList = fieldMapper.selectByExample(fieldExample);
- for(FieldPO po:fieldList){
- po.setModelId(newId);
- po.setId(null);
- po.setCreateTime(sysDate);
+ for (FieldPO po : fieldList) {
+ po.setModelId(newId);
+ po.setId(null);
+ po.setCreateTime(sysDate);
po.setUpdateTime(sysDate);
fieldMapper.insertSelective(po);
}
-
+
//复制preItem
Example preItemExample = new Example(PreItemPO.class);
preItemExample.createCriteria().andEqualTo("modelId", oldId);
List preItemList = preItemMapper.selectByExample(preItemExample);
- for(PreItemPO po:preItemList){
- po.setModelId(newId);
- po.setId(null);
- po.setCreateTime(sysDate);
+ for (PreItemPO po : preItemList) {
+ po.setModelId(newId);
+ po.setId(null);
+ po.setCreateTime(sysDate);
po.setUpdateTime(sysDate);
preItemMapper.insertSelective(po);
}
-
+
//复制dataList
Example dataListsExample = new Example(DataListsPO.class);
dataListsExample.createCriteria().andEqualTo("modelId", oldId);
- List dataListsList=dataListMapper.selectByExample(dataListsExample);
- for(DataListsPO po:dataListsList){
- Long oldDataListId=po.getId();
-
- po.setModelId(newId);
- po.setId(null);
- po.setCreateTime(sysDate);
+ List dataListsList = dataListMapper.selectByExample(dataListsExample);
+ for (DataListsPO po : dataListsList) {
+ Long oldDataListId = po.getId();
+
+ po.setModelId(newId);
+ po.setId(null);
+ po.setCreateTime(sysDate);
po.setUpdateTime(sysDate);
dataListMapper.insertSelective(po);
-
- Long newDataListId=po.getId();
-
+
+ Long newDataListId = po.getId();
+
//复制dataListMeta
Example dataListMetaExample = new Example(DataListMetaPO.class);
dataListMetaExample.createCriteria().andEqualTo("dataListId", oldDataListId);
- List dataListMetaList=dataListMetaMapper.selectByExample(dataListMetaExample);
- for(DataListMetaPO metaPO:dataListMetaList){
- metaPO.setDataListId(newDataListId);
- metaPO.setId(null);
- metaPO.setCreateTime(sysDate);
- metaPO.setUpdateTime(sysDate);
- dataListMetaMapper.insertSelective(metaPO);
+ List dataListMetaList = dataListMetaMapper
+ .selectByExample(dataListMetaExample);
+ for (DataListMetaPO metaPO : dataListMetaList) {
+ metaPO.setDataListId(newDataListId);
+ metaPO.setId(null);
+ metaPO.setCreateTime(sysDate);
+ metaPO.setUpdateTime(sysDate);
+ dataListMetaMapper.insertSelective(metaPO);
}
-
+
//复制dataListRecord
Example dataListRecordExample = new Example(DataListRecordPO.class);
dataListRecordExample.createCriteria().andEqualTo("dataListId", oldDataListId);
- List dataListRecordList=dataListRecordMapper.selectByExample(dataListRecordExample);
- for(DataListRecordPO recordPO:dataListRecordList){
- recordPO.setDataListId(newDataListId);
- recordPO.setId(null);
- recordPO.setCreateTime(sysDate);
- recordPO.setUpdateTime(sysDate);
- dataListRecordMapper.insertSelective(recordPO);
+ List dataListRecordList = dataListRecordMapper
+ .selectByExample(dataListRecordExample);
+ for (DataListRecordPO recordPO : dataListRecordList) {
+ recordPO.setDataListId(newDataListId);
+ recordPO.setId(null);
+ recordPO.setCreateTime(sysDate);
+ recordPO.setUpdateTime(sysDate);
+ dataListRecordMapper.insertSelective(recordPO);
}
}
-
+
//复制abstraction
Example abstractionExample = new Example(AbstractionPO.class);
abstractionExample.createCriteria().andEqualTo("modelId", oldId);
List abstractionList = abstractionMapper.selectByExample(abstractionExample);
- for(AbstractionPO po:abstractionList){
- po.setModelId(newId);
- po.setId(null);
- po.setCreateTime(sysDate);
+ for (AbstractionPO po : abstractionList) {
+ po.setModelId(newId);
+ po.setId(null);
+ po.setCreateTime(sysDate);
po.setUpdateTime(sysDate);
abstractionMapper.insertSelective(po);
}
-
+
//复制activation
Example activationExample = new Example(ActivationPO.class);
activationExample.createCriteria().andEqualTo("modelId", oldId);
List activationList = activationMapper.selectByExample(activationExample);
- for(ActivationPO po:activationList){
- Long oldActivationID=po.getId();
-
- po.setModelId(newId);
- po.setId(null);
- po.setCreateTime(sysDate);
+ for (ActivationPO po : activationList) {
+ Long oldActivationID = po.getId();
+
+ po.setModelId(newId);
+ po.setId(null);
+ po.setCreateTime(sysDate);
po.setUpdateTime(sysDate);
activationMapper.insertSelective(po);
-
- Long newActivationID=po.getId();
-
+
+ Long newActivationID = po.getId();
+
//复制rule
Example ruleExample = new Example(RulePO.class);
ruleExample.createCriteria().andEqualTo("activationId", oldActivationID);
List ruleList = ruleMapper.selectByExample(ruleExample);
- for(RulePO rulePO:ruleList){
- rulePO.setModelId(newId);
- rulePO.setActivationId(newActivationID);
- rulePO.setId(null);
- rulePO.setCreateTime(sysDate);
- rulePO.setUpdateTime(sysDate);
- ruleMapper.insertSelective(rulePO);
+ for (RulePO rulePO : ruleList) {
+ rulePO.setModelId(newId);
+ rulePO.setActivationId(newActivationID);
+ rulePO.setId(null);
+ rulePO.setCreateTime(sysDate);
+ rulePO.setUpdateTime(sysDate);
+ ruleMapper.insertSelective(rulePO);
}
}
-
- return count;
- }
+
+ return count;
+ }
@Override
public List listModel(String merchantCode, Integer status,
Boolean isTemplate) {
- List modelList = new ArrayList<>();
Example example = new Example(ModelPO.class);
Example.Criteria criteria = example.createCriteria();
- if (!StringUtils.isEmpty(merchantCode)){
+ if (!StringUtils.isEmpty(merchantCode)) {
criteria.andEqualTo("code", merchantCode);
}
if (status != null) {
- criteria.andEqualTo("status",status);
+ criteria.andEqualTo("status", status);
}
if (isTemplate != null) {
criteria.andEqualTo("template", isTemplate);
}
List list = modelMapper.selectByExample(example);
- for (ModelPO po : list) {
- modelList.add(POVOUtils.copyFromModelPO(po));
+ if (list == null) {
+ return new ArrayList<>();
}
- return modelList;
+ return modelMapping.sourceToTarget(list);
}
}
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/PreItemDalImpl.java b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/PreItemDalImpl.java
index 97d1ba3..9a0828d 100644
--- a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/PreItemDalImpl.java
+++ b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/PreItemDalImpl.java
@@ -5,22 +5,22 @@ import com.github.pagehelper.PageHelper;
import com.pgmmers.radar.dal.bean.PageResult;
import com.pgmmers.radar.dal.bean.PreItemQuery;
import com.pgmmers.radar.dal.model.PreItemDal;
-import com.pgmmers.radar.dal.util.POVOUtils;
import com.pgmmers.radar.mapper.PreItemMapper;
+import com.pgmmers.radar.mapstruct.PreItemMapping;
import com.pgmmers.radar.model.PreItemPO;
import com.pgmmers.radar.vo.model.PreItemVO;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.StringUtils;
-import tk.mybatis.mapper.entity.Example;
-
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
+import javax.annotation.Resource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+import tk.mybatis.mapper.entity.Example;
@Service
public class PreItemDalImpl implements PreItemDal {
@@ -29,15 +29,13 @@ public class PreItemDalImpl implements PreItemDal {
@Autowired
private PreItemMapper preItemMapper;
-
+ @Resource
+ private PreItemMapping preItemMapping;
@Override
public PreItemVO get(Long id) {
PreItemPO preItem = preItemMapper.selectByPrimaryKey(id);
if (preItem != null) {
- PreItemVO preItemVO = new PreItemVO();
- //BeanUtils.copyProperties(preItem, preItemVO);
- preItemVO = POVOUtils.copyFromPreItemPO(preItem);
- return preItemVO;
+ return preItemMapping.sourceToTarget(preItem);
}
return null;
}
@@ -62,14 +60,12 @@ public class PreItemDalImpl implements PreItemDal {
List list = preItemMapper.selectByExample(example);
Page page = (Page) list;
-
- List listVO = new ArrayList();
- for (PreItemPO preItemPO : page.getResult()) {
- PreItemVO preItemVO ;
- preItemVO = POVOUtils.copyFromPreItemPO(preItemPO);
- listVO.add(preItemVO);
+ List listVO;
+ if (CollectionUtils.isEmpty(list)){
+ listVO = new ArrayList<>();
+ }else {
+ listVO=preItemMapping.sourceToTarget(list);
}
-
PageResult pageResult = new PageResult<>(page.getPageNum(), page.getPageSize(),
(int) page.getTotal(), listVO);
return pageResult;
@@ -78,7 +74,7 @@ public class PreItemDalImpl implements PreItemDal {
@Override
public int save(PreItemVO preItem) {
PreItemPO preItemPO ;
- preItemPO = POVOUtils.copyFromPreItemVO(preItem);
+ preItemPO = preItemMapping.targetToSource(preItem);
Date sysDate = new Date();
int count = 0;
if (preItemPO.getId() == null) {
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/RuleDalImpl.java b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/RuleDalImpl.java
index 86f6b23..4cfed35 100644
--- a/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/RuleDalImpl.java
+++ b/radar-dal/src/main/java/com.pgmmers.radar/dal/model/impl/RuleDalImpl.java
@@ -1,31 +1,31 @@
package com.pgmmers.radar.dal.model.impl;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-
+import com.github.pagehelper.Page;
+import com.github.pagehelper.PageHelper;
import com.pgmmers.radar.dal.bean.PageResult;
import com.pgmmers.radar.dal.bean.RuleHistoryQuery;
import com.pgmmers.radar.dal.bean.RuleQuery;
import com.pgmmers.radar.dal.model.RuleDal;
-import com.pgmmers.radar.dal.util.POVOUtils;
import com.pgmmers.radar.mapper.RuleHistoryMapper;
import com.pgmmers.radar.mapper.RuleMapper;
+import com.pgmmers.radar.mapstruct.RuleHistoryMapping;
+import com.pgmmers.radar.mapstruct.RuleMapping;
import com.pgmmers.radar.model.RuleHistoryPO;
import com.pgmmers.radar.model.RulePO;
import com.pgmmers.radar.util.BaseUtils;
import com.pgmmers.radar.vo.model.RuleHistoryVO;
import com.pgmmers.radar.vo.model.RuleVO;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
-
-import com.github.pagehelper.Page;
-import com.github.pagehelper.PageHelper;
import tk.mybatis.mapper.entity.Example;
@@ -36,16 +36,19 @@ public class RuleDalImpl implements RuleDal {
@Autowired
private RuleMapper ruleMapper;
-
+
@Autowired
private RuleHistoryMapper ruleHistoryMapper;
+ @Resource
+ private RuleHistoryMapping ruleHistoryMapping;
+ @Resource
+ private RuleMapping ruleMapping;
@Override
public RuleVO get(Long id) {
RulePO rule = ruleMapper.selectByPrimaryKey(id);
if (rule != null) {
- RuleVO ruleVO = POVOUtils.copyFromRulePO(rule);
- return ruleVO;
+ return ruleMapping.sourceToTarget(rule);
}
return null;
}
@@ -61,36 +64,32 @@ public class RuleDalImpl implements RuleDal {
rule.setStatus(query.getStatus());
rule.setName(query.getName());
-
-
- criteria.andEqualTo("activationId",query.getActivationId());
+ criteria.andEqualTo("activationId", query.getActivationId());
if (!StringUtils.isEmpty(query.getName())) {
criteria.andLike("name", BaseUtils.buildLike(query.getName()));
}
if (query.getStatus() != null) {
- criteria.andEqualTo("status", query.getStatus());
+ criteria.andEqualTo("status", query.getStatus());
}
List list = ruleMapper.selectByExample(example);
-
Page page = (Page) list;
- List listVO = new ArrayList();
- for (RulePO rulePO : page.getResult()) {
-// RuleVO ruleVO = new RuleVO();
-// BeanUtils.copyProperties(rulePO, ruleVO);
- RuleVO ruleVO = POVOUtils.copyFromRulePO(rulePO);
- listVO.add(ruleVO);
+ List listVO;
+ if (CollectionUtils.isEmpty(list)) {
+ listVO = new ArrayList<>();
+ } else {
+ listVO = ruleMapping.sourceToTarget(list);
}
- PageResult pageResult = new PageResult(page.getPageNum(), page.getPageSize(),
+ PageResult pageResult = new PageResult<>(page.getPageNum(), page.getPageSize(),
(int) page.getTotal(), listVO);
return pageResult;
}
@Override
public int save(RuleVO rule) {
- RulePO rulePO = POVOUtils.copyFromRuleVO(rule);
+ RulePO rulePO = ruleMapping.targetToSource(rule);
Date sysDate = new Date();
int count = 0;
if (rule.getId() == null) {
@@ -114,9 +113,9 @@ public class RuleDalImpl implements RuleDal {
return count;
}
- @Override
- public PageResult queryHistory(RuleHistoryQuery query) {
- PageHelper.startPage(query.getPageNo(), query.getPageSize());
+ @Override
+ public PageResult queryHistory(RuleHistoryQuery query) {
+ PageHelper.startPage(query.getPageNo(), query.getPageSize());
Example example = new Example(RuleHistoryPO.class);
Example.Criteria criteria = example.createCriteria();
@@ -124,28 +123,27 @@ public class RuleDalImpl implements RuleDal {
List list = ruleHistoryMapper.selectByExample(example);
Page page = (Page) list;
- List listVO = new ArrayList();
- for (RuleHistoryPO ruleHistoryPO : page.getResult()) {
- RuleHistoryVO ruleHistoryVO = new RuleHistoryVO();
- BeanUtils.copyProperties(ruleHistoryPO, ruleHistoryVO);
- listVO.add(ruleHistoryVO);
+ List listVO;
+ if (CollectionUtils.isEmpty(list)) {
+ listVO = new ArrayList<>();
+ } else {
+ listVO = ruleHistoryMapping.sourceToTarget(list);
}
-
- PageResult pageResult = new PageResult(page.getPageNum(), page.getPageSize(),
+ PageResult pageResult = new PageResult(page.getPageNum(),
+ page.getPageSize(),
(int) page.getTotal(), listVO);
return pageResult;
- }
+ }
- @Override
- public int saveHistory(RuleHistoryVO ruleHistory) {
- RuleHistoryPO ruleHistoryPO = new RuleHistoryPO();
- BeanUtils.copyProperties(ruleHistory, ruleHistoryPO);
+ @Override
+ public int saveHistory(RuleHistoryVO ruleHistory) {
+ RuleHistoryPO ruleHistoryPO = ruleHistoryMapping.targetToSource(ruleHistory);
Date sysDate = new Date();
int count = 0;
ruleHistoryPO.setUpdateTime(sysDate);
count = ruleHistoryMapper.insertSelective(ruleHistoryPO);
ruleHistory.setId(ruleHistoryPO.getId());// 返回id
return count;
- }
+ }
}
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/dal/util/POVOUtils.java b/radar-dal/src/main/java/com.pgmmers.radar/dal/util/POVOUtils.java
deleted file mode 100644
index 2fa86c3..0000000
--- a/radar-dal/src/main/java/com.pgmmers.radar/dal/util/POVOUtils.java
+++ /dev/null
@@ -1,121 +0,0 @@
-package com.pgmmers.radar.dal.util;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.util.JSONPObject;
-import com.pgmmers.radar.model.*;
-import com.pgmmers.radar.vo.data.MobileInfoVO;
-import com.pgmmers.radar.vo.model.AbstractionVO;
-import com.pgmmers.radar.vo.model.ModelVO;
-import com.pgmmers.radar.vo.model.PreItemVO;
-import com.pgmmers.radar.vo.model.RuleVO;
-import jdk.nashorn.internal.parser.JSONParser;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.BeanUtils;
-
-import java.io.IOException;
-
-
-public class POVOUtils {
-
- public static ObjectMapper objectMapper = new ObjectMapper();
-
- public static MobileInfoVO copyFromMobileInfPO(MobileInfoPO po) {
- MobileInfoVO vo = new MobileInfoVO();
- BeanUtils.copyProperties(po, vo);
- return vo;
- }
-
- public static ModelVO copyFromModelPO(ModelPO po) {
- ModelVO vo = new ModelVO();
- BeanUtils.copyProperties(po, vo);
- return vo;
- }
-
- public static MobileInfoPO copyFromMobileInfoVO(MobileInfoVO vo) {
- MobileInfoPO po = new MobileInfoPO();
- BeanUtils.copyProperties(vo, po);
- return po;
- }
-
- public static AbstractionVO copyFromAbstractPO(AbstractionPO po) {
- AbstractionVO vo = new AbstractionVO();
- BeanUtils.copyProperties(po, vo);
- JsonNode json = null;
- try {
- json = objectMapper.readTree(po.getRuleDefinition());
- } catch (Exception e) {
- e.printStackTrace();
- }
- vo.setRuleDefinition(json);
- return vo;
- }
-
- public static AbstractionPO copyFromAbstractVO(AbstractionVO vo) {
- AbstractionPO po = new AbstractionPO();
- BeanUtils.copyProperties(vo, po);
- try {
- String str = objectMapper.writeValueAsString(vo.getRuleDefinition());
- po.setRuleDefinition(str);
- } catch (JsonProcessingException e) {
- e.printStackTrace();
- }
- return po;
- }
-
- public static RuleVO copyFromRulePO(RulePO po) {
- RuleVO vo = new RuleVO();
- BeanUtils.copyProperties(po, vo);
- JsonNode json = null;
- try {
- json = objectMapper.readTree(po.getRuleDefinition());
- } catch (IOException e) {
- e.printStackTrace();
- }
- vo.setRuleDefinition(json);
- return vo;
- }
-
- public static RulePO copyFromRuleVO(RuleVO vo) {
- RulePO po = new RulePO();
- BeanUtils.copyProperties(vo, po);
- try {
- String str = objectMapper.writeValueAsString(vo.getRuleDefinition());
- po.setRuleDefinition(str);
- } catch (JsonProcessingException e) {
- e.printStackTrace();
- }
- return po;
- }
-
- public static PreItemPO copyFromPreItemVO(PreItemVO vo) {
- PreItemPO po = new PreItemPO();
- BeanUtils.copyProperties(vo, po);
- try {
- if (vo.getConfigJson() != null) {
- String str = objectMapper.writeValueAsString(vo.getConfigJson());
- po.setConfigJson(str);
- }
-
- } catch (JsonProcessingException e) {
- e.printStackTrace();
- }
- return po;
- }
-
- public static PreItemVO copyFromPreItemPO(PreItemPO po) {
- PreItemVO vo = new PreItemVO();
- BeanUtils.copyProperties(po, vo);
- JsonNode json = null;
- try {
- if (!StringUtils.isEmpty(po.getConfigJson())) {
- json = objectMapper.readTree(po.getConfigJson());
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- vo.setConfigJson(json);
- return vo;
- }
-}
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/AbstractionMapping.java b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/AbstractionMapping.java
new file mode 100644
index 0000000..7ab4f37
--- /dev/null
+++ b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/AbstractionMapping.java
@@ -0,0 +1,20 @@
+package com.pgmmers.radar.mapstruct;
+
+import com.pgmmers.radar.model.AbstractionPO;
+import com.pgmmers.radar.vo.model.AbstractionVO;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+
+@Mapper(componentModel = "spring")
+public interface AbstractionMapping extends BaseMapping {
+
+ @Mapping(target = "dataCollectionNames", source = "")
+ @Mapping(target = "ruleDefinition", expression = "java(com.pgmmers.radar.util.JsonUtils.getJsonNode(var1.getRuleDefinition()))")
+ @Override
+ AbstractionVO sourceToTarget(AbstractionPO var1);
+
+ @Mapping(target = "ruleDefinition", expression = "java(com.pgmmers.radar.util.JsonUtils.jsonNodeToString(var1.getRuleDefinition()))")
+ @Override
+ AbstractionPO targetToSource(AbstractionVO var1);
+
+}
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/ActivationMapping.java b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/ActivationMapping.java
new file mode 100644
index 0000000..effecf0
--- /dev/null
+++ b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/ActivationMapping.java
@@ -0,0 +1,10 @@
+package com.pgmmers.radar.mapstruct;
+
+import com.pgmmers.radar.model.ActivationPO;
+import com.pgmmers.radar.vo.model.ActivationVO;
+import org.mapstruct.Mapper;
+
+@Mapper(componentModel = "spring")
+public interface ActivationMapping extends BaseMapping {
+
+}
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/BaseMapping.java b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/BaseMapping.java
new file mode 100644
index 0000000..41c060f
--- /dev/null
+++ b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/BaseMapping.java
@@ -0,0 +1,44 @@
+package com.pgmmers.radar.mapstruct;
+
+import java.util.List;
+import java.util.stream.Stream;
+import org.mapstruct.InheritConfiguration;
+import org.mapstruct.InheritInverseConfiguration;
+import org.mapstruct.MapperConfig;
+
+@MapperConfig
+public interface BaseMapping {
+
+ /**
+ * 映射同名属性
+ */
+ TARGET sourceToTarget(SOURCE var1);
+
+ /**
+ * 反向,映射同名属性
+ */
+ @InheritInverseConfiguration(name = "sourceToTarget")
+ SOURCE targetToSource(TARGET var1);
+
+ /**
+ * 映射同名属性,集合形式
+ */
+ @InheritConfiguration(name = "sourceToTarget")
+ List sourceToTarget(List var1);
+
+ /**
+ * 反向,映射同名属性,集合形式
+ */
+ @InheritConfiguration(name = "targetToSource")
+ List targetToSource(List var1);
+
+ /**
+ * 映射同名属性,集合流形式
+ */
+ List sourceToTarget(Stream stream);
+
+ /**
+ * 反向,映射同名属性,集合流形式
+ */
+ List targetToSource(Stream stream);
+}
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/DataListMetaMapping.java b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/DataListMetaMapping.java
new file mode 100644
index 0000000..df0a57c
--- /dev/null
+++ b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/DataListMetaMapping.java
@@ -0,0 +1,10 @@
+package com.pgmmers.radar.mapstruct;
+
+import com.pgmmers.radar.model.DataListMetaPO;
+import com.pgmmers.radar.vo.model.DataListMetaVO;
+import org.mapstruct.Mapper;
+
+@Mapper(componentModel = "spring")
+public interface DataListMetaMapping extends BaseMapping {
+
+}
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/DataListRecordMapping.java b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/DataListRecordMapping.java
new file mode 100644
index 0000000..40a587f
--- /dev/null
+++ b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/DataListRecordMapping.java
@@ -0,0 +1,10 @@
+package com.pgmmers.radar.mapstruct;
+
+import com.pgmmers.radar.model.DataListRecordPO;
+import com.pgmmers.radar.vo.model.DataListRecordVO;
+import org.mapstruct.Mapper;
+
+@Mapper(componentModel = "spring")
+public interface DataListRecordMapping extends BaseMapping {
+
+}
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/DataListsMapping.java b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/DataListsMapping.java
new file mode 100644
index 0000000..c20b7bc
--- /dev/null
+++ b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/DataListsMapping.java
@@ -0,0 +1,10 @@
+package com.pgmmers.radar.mapstruct;
+
+import com.pgmmers.radar.model.DataListsPO;
+import com.pgmmers.radar.vo.model.DataListsVO;
+import org.mapstruct.Mapper;
+
+@Mapper(componentModel = "spring")
+public interface DataListsMapping extends BaseMapping {
+
+}
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/FieldMapping.java b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/FieldMapping.java
new file mode 100644
index 0000000..6bbee4b
--- /dev/null
+++ b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/FieldMapping.java
@@ -0,0 +1,11 @@
+package com.pgmmers.radar.mapstruct;
+
+
+import com.pgmmers.radar.model.FieldPO;
+import com.pgmmers.radar.vo.model.FieldVO;
+import org.mapstruct.Mapper;
+
+@Mapper(componentModel = "spring")
+public interface FieldMapping extends BaseMapping {
+
+}
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/MobileInfoMapping.java b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/MobileInfoMapping.java
new file mode 100644
index 0000000..043daa5
--- /dev/null
+++ b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/MobileInfoMapping.java
@@ -0,0 +1,10 @@
+package com.pgmmers.radar.mapstruct;
+
+import com.pgmmers.radar.model.MobileInfoPO;
+import com.pgmmers.radar.vo.data.MobileInfoVO;
+import org.mapstruct.Mapper;
+
+@Mapper(componentModel = "spring")
+public interface MobileInfoMapping extends BaseMapping {
+
+}
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/ModelMapping.java b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/ModelMapping.java
new file mode 100644
index 0000000..944e95f
--- /dev/null
+++ b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/ModelMapping.java
@@ -0,0 +1,10 @@
+package com.pgmmers.radar.mapstruct;
+
+import com.pgmmers.radar.model.ModelPO;
+import com.pgmmers.radar.vo.model.ModelVO;
+import org.mapstruct.Mapper;
+
+@Mapper(componentModel = "spring")
+public interface ModelMapping extends BaseMapping {
+
+}
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/PreItemMapping.java b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/PreItemMapping.java
new file mode 100644
index 0000000..b532cbd
--- /dev/null
+++ b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/PreItemMapping.java
@@ -0,0 +1,20 @@
+package com.pgmmers.radar.mapstruct;
+
+import com.pgmmers.radar.model.PreItemPO;
+import com.pgmmers.radar.vo.model.PreItemVO;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+
+@Mapper(componentModel = "spring")
+public interface PreItemMapping extends BaseMapping {
+ @Mapping(target = "configJson", expression = "java(com.pgmmers.radar.util.JsonUtils.getJsonNode(var1.getConfigJson()))")
+ @Override
+ PreItemVO sourceToTarget(PreItemPO var1);
+
+
+ @Mapping(target = "configJson", expression = "java(com.pgmmers.radar.util.JsonUtils.jsonNodeToString(var1.getConfigJson()))")
+ @Override
+ PreItemPO targetToSource(PreItemVO var1);
+
+
+}
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/RuleHistoryMapping.java b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/RuleHistoryMapping.java
new file mode 100644
index 0000000..32bb989
--- /dev/null
+++ b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/RuleHistoryMapping.java
@@ -0,0 +1,10 @@
+package com.pgmmers.radar.mapstruct;
+
+import com.pgmmers.radar.model.RuleHistoryPO;
+import com.pgmmers.radar.vo.model.RuleHistoryVO;
+import org.mapstruct.Mapper;
+
+@Mapper(componentModel = "spring")
+public interface RuleHistoryMapping extends BaseMapping {
+
+}
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/RuleMapping.java b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/RuleMapping.java
new file mode 100644
index 0000000..fd1a899
--- /dev/null
+++ b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/RuleMapping.java
@@ -0,0 +1,19 @@
+package com.pgmmers.radar.mapstruct;
+
+import com.pgmmers.radar.model.RulePO;
+import com.pgmmers.radar.vo.model.RuleVO;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+
+@Mapper(componentModel = "spring")
+public interface RuleMapping extends BaseMapping {
+ @Mapping(target = "ruleDefinition", expression = "java(com.pgmmers.radar.util.JsonUtils.getJsonNode(var1.getRuleDefinition()))")
+ @Override
+ RuleVO sourceToTarget(RulePO var1);
+
+
+ @Mapping(target = "ruleDefinition", expression = "java(com.pgmmers.radar.util.JsonUtils.jsonNodeToString(var1.getRuleDefinition()))")
+ @Override
+ RulePO targetToSource(RuleVO var1);
+
+}
diff --git a/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/UserMapping.java b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/UserMapping.java
new file mode 100644
index 0000000..7a3e509
--- /dev/null
+++ b/radar-dal/src/main/java/com.pgmmers.radar/mapstruct/UserMapping.java
@@ -0,0 +1,10 @@
+package com.pgmmers.radar.mapstruct;
+
+import com.pgmmers.radar.model.UserPO;
+import com.pgmmers.radar.vo.admin.UserVO;
+import org.mapstruct.Mapper;
+
+@Mapper(componentModel = "spring")
+public interface UserMapping extends BaseMapping {
+
+}
diff --git a/radar-engine/src/main/test/com/pgmmers/radar/dal/MapStructTest.java b/radar-engine/src/main/test/com/pgmmers/radar/dal/MapStructTest.java
new file mode 100644
index 0000000..d76af6c
--- /dev/null
+++ b/radar-engine/src/main/test/com/pgmmers/radar/dal/MapStructTest.java
@@ -0,0 +1,256 @@
+package com.pgmmers.radar.dal;
+
+import com.pgmmers.radar.EngineApplication;
+import com.pgmmers.radar.mapper.AbstractionMapper;
+import com.pgmmers.radar.mapper.ActivationMapper;
+import com.pgmmers.radar.mapper.DataListMetaMapper;
+import com.pgmmers.radar.mapper.DataListRecordMapper;
+import com.pgmmers.radar.mapper.DataListsMapper;
+import com.pgmmers.radar.mapper.FieldMapper;
+import com.pgmmers.radar.mapper.MobileInfoMapper;
+import com.pgmmers.radar.mapper.ModelMapper;
+import com.pgmmers.radar.mapper.PreItemMapper;
+import com.pgmmers.radar.mapper.RuleHistoryMapper;
+import com.pgmmers.radar.mapper.RuleMapper;
+import com.pgmmers.radar.mapper.UserMapper;
+import com.pgmmers.radar.mapstruct.AbstractionMapping;
+import com.pgmmers.radar.mapstruct.ActivationMapping;
+import com.pgmmers.radar.mapstruct.DataListMetaMapping;
+import com.pgmmers.radar.mapstruct.DataListRecordMapping;
+import com.pgmmers.radar.mapstruct.DataListsMapping;
+import com.pgmmers.radar.mapstruct.FieldMapping;
+import com.pgmmers.radar.mapstruct.MobileInfoMapping;
+import com.pgmmers.radar.mapstruct.ModelMapping;
+import com.pgmmers.radar.mapstruct.PreItemMapping;
+import com.pgmmers.radar.mapstruct.RuleHistoryMapping;
+import com.pgmmers.radar.mapstruct.RuleMapping;
+import com.pgmmers.radar.mapstruct.UserMapping;
+import com.pgmmers.radar.model.AbstractionPO;
+import com.pgmmers.radar.model.ActivationPO;
+import com.pgmmers.radar.model.DataListMetaPO;
+import com.pgmmers.radar.model.DataListRecordPO;
+import com.pgmmers.radar.model.DataListsPO;
+import com.pgmmers.radar.model.FieldPO;
+import com.pgmmers.radar.model.MobileInfoPO;
+import com.pgmmers.radar.model.ModelPO;
+import com.pgmmers.radar.model.PreItemPO;
+import com.pgmmers.radar.model.RuleHistoryPO;
+import com.pgmmers.radar.model.RulePO;
+import com.pgmmers.radar.model.UserPO;
+import com.pgmmers.radar.vo.admin.UserVO;
+import com.pgmmers.radar.vo.data.MobileInfoVO;
+import com.pgmmers.radar.vo.model.AbstractionVO;
+import com.pgmmers.radar.vo.model.ActivationVO;
+import com.pgmmers.radar.vo.model.DataListMetaVO;
+import com.pgmmers.radar.vo.model.DataListRecordVO;
+import com.pgmmers.radar.vo.model.DataListsVO;
+import com.pgmmers.radar.vo.model.FieldVO;
+import com.pgmmers.radar.vo.model.ModelVO;
+import com.pgmmers.radar.vo.model.PreItemVO;
+import com.pgmmers.radar.vo.model.RuleHistoryVO;
+import com.pgmmers.radar.vo.model.RuleVO;
+import java.util.Date;
+import java.util.List;
+import javax.annotation.Resource;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+/**
+ * author: wangcheng Date: 2020/3/17 Time: 下午5:19 Description:
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = EngineApplication.class)
+public class MapStructTest {
+
+
+ @Autowired
+ private ModelMapper modelMapper;
+ @Autowired
+ private ModelMapping modelMapping;
+
+ @Resource
+ private AbstractionMapping abstractionMapping;
+ @Autowired
+ private AbstractionMapper abstractionMapper;
+ @Resource
+ private ActivationMapping activationMapping;
+ @Autowired
+ private ActivationMapper activationMapper;
+ @Resource
+ private FieldMapping fieldMapping;
+ @Autowired
+ private FieldMapper fieldMapper;
+ @Resource
+ private RuleMapping ruleMapping;
+ @Autowired
+ private RuleMapper ruleMapper;
+
+ @Test
+ public void modelTest() {
+ List pos = modelMapper.selectAll();
+ Assert.assertNotNull(pos);
+ List vos = modelMapping.sourceToTarget(pos);
+ Assert.assertNotNull(vos);
+ List pos1 = modelMapping.targetToSource(vos);
+ Assert.assertNotNull(pos1);
+ }
+
+ @Test
+ public void abstractionTest() {
+ List pos = abstractionMapper.selectAll();
+ Assert.assertNotNull(pos);
+ List vos = abstractionMapping.sourceToTarget(pos);
+ Assert.assertNotNull(vos);
+ List pos1 = abstractionMapping.targetToSource(vos);
+ Assert.assertNotNull(pos1);
+ }
+
+ @Test
+ public void activationTest() {
+ List pos = activationMapper.selectAll();
+ Assert.assertNotNull(pos);
+ List vos = activationMapping.sourceToTarget(pos);
+ Assert.assertNotNull(vos);
+ List pos1 = activationMapping.targetToSource(vos);
+ Assert.assertNotNull(pos1);
+
+ }
+
+ @Test
+ public void fieldTest() {
+ List pos = fieldMapper.selectAll();
+ Assert.assertNotNull(pos);
+ List vos = fieldMapping.sourceToTarget(pos);
+ Assert.assertNotNull(vos);
+ List pos1 = fieldMapping.targetToSource(vos);
+ Assert.assertNotNull(pos1);
+ }
+
+ @Test
+ public void ruleTest() {
+ List pos = ruleMapper.selectAll();
+ Assert.assertNotNull(pos);
+ List vos = ruleMapping.sourceToTarget(pos);
+ Assert.assertNotNull(vos);
+ List pos1 = ruleMapping.targetToSource(vos);
+ Assert.assertNotNull(pos1);
+ }
+
+ @Resource
+ DataListMetaMapping dataListMetaMapping;
+ @Autowired
+ DataListMetaMapper dataListMetaMapper;
+
+ @Test
+ public void datalistMetaTest() {
+ List pos = dataListMetaMapper.selectAll();
+ Assert.assertNotNull(pos);
+ List vos = dataListMetaMapping.sourceToTarget(pos);
+ Assert.assertNotNull(vos);
+ List pos1 = dataListMetaMapping.targetToSource(vos);
+ Assert.assertNotNull(pos1);
+ }
+
+ @Resource
+ private DataListRecordMapping dataListRecordMapping;
+ @Autowired
+ private DataListRecordMapper dataListRecordMapper;
+
+ @Test
+ public void dataListRecordTest() {
+ List pos = dataListRecordMapper.selectAll();
+ Assert.assertNotNull(pos);
+ List vos = dataListRecordMapping.sourceToTarget(pos);
+ Assert.assertNotNull(vos);
+ List pos1 = dataListRecordMapping.targetToSource(vos);
+ Assert.assertNotNull(pos1);
+ ;
+ }
+
+ @Resource
+ private DataListsMapping dataListsMapping;
+ @Autowired
+ private DataListsMapper dataListsMapper;
+
+ @Test
+ public void dataListsTest() {
+ List pos = dataListsMapper.selectAll();
+ Assert.assertNotNull(pos);
+ List vos = dataListsMapping.sourceToTarget(pos);
+ Assert.assertNotNull(vos);
+ List pos1 = dataListsMapping.targetToSource(vos);
+ Assert.assertNotNull(pos1);
+ }
+
+ @Resource
+ private MobileInfoMapping mobileInfoMapping;
+ @Autowired
+ private MobileInfoMapper mobileInfoMapper;
+
+ @Test
+ public void mobileInfoTest() {
+ MobileInfoPO po = new MobileInfoPO();
+ po.setCity("hangzhou");
+ po.setCreateTime(new Date());
+ po.setId(1L);
+ po.setMobile("1234");
+ po.setProvince("zj");
+ po.setRegionCode("11");
+ po.setSupplier("1");
+ po.setUpdateTime(new Date());
+ MobileInfoVO vos = mobileInfoMapping.sourceToTarget(po);
+ Assert.assertNotNull(vos);
+ MobileInfoPO pos1 = mobileInfoMapping.targetToSource(vos);
+ Assert.assertNotNull(pos1);
+ }
+
+ @Resource
+ private PreItemMapping preItemMapping;
+ @Autowired
+ private PreItemMapper preItemMapper;
+
+ @Test
+ public void preItemTest() {
+ List pos = preItemMapper.selectAll();
+ Assert.assertNotNull(pos);
+ List vos = preItemMapping.sourceToTarget(pos);
+ Assert.assertNotNull(vos);
+ List pos1 = preItemMapping.targetToSource(vos);
+ Assert.assertNotNull(pos1);
+ }
+
+ @Resource
+ private RuleHistoryMapping ruleHistoryMapping;
+ @Autowired
+ private RuleHistoryMapper ruleHistoryMapper;
+
+ @Test
+ public void ruleHistoryTest() {
+ List pos = ruleHistoryMapper.selectAll();
+ Assert.assertNotNull(pos);
+ List vos = ruleHistoryMapping.sourceToTarget(pos);
+ Assert.assertNotNull(vos);
+ List pos1 = ruleHistoryMapping.targetToSource(vos);
+ Assert.assertNotNull(pos1);
+ }
+
+ @Resource
+ private UserMapping userMapping;
+ @Autowired
+ private UserMapper userMapper;
+
+ @Test
+ public void userTest() {
+ List pos = userMapper.selectAll();
+ Assert.assertNotNull(pos);
+ List vos = userMapping.sourceToTarget(pos);
+ Assert.assertNotNull(vos);
+ List pos1 = userMapping.targetToSource(vos);
+ Assert.assertNotNull(pos1);
+ }
+
+}
diff --git a/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/admin/UserServiceImpl.java b/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/admin/UserServiceImpl.java
index 2e93ec7..f78b588 100644
--- a/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/admin/UserServiceImpl.java
+++ b/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/admin/UserServiceImpl.java
@@ -4,23 +4,25 @@ package com.pgmmers.radar.service.impl.admin;
import com.pgmmers.radar.dal.bean.PageResult;
import com.pgmmers.radar.dal.bean.UserQuery;
import com.pgmmers.radar.dal.model.UserDal;
+import com.pgmmers.radar.mapstruct.UserMapping;
import com.pgmmers.radar.model.UserPO;
import com.pgmmers.radar.service.admin.UserService;
import com.pgmmers.radar.service.common.CommonResult;
import com.pgmmers.radar.vo.admin.UserVO;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
+import javax.annotation.Resource;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDal userDal;
+ @Resource
+ private UserMapping userMapping;
@Override
public CommonResult query(UserQuery query) {
@@ -36,18 +38,13 @@ public class UserServiceImpl implements UserService {
@Override
public Optional> list(String userName, String passwd) {
List list = userDal.list(userName, passwd);
- List users= list.stream().map(userPO -> {
- UserVO vo = new UserVO();
- BeanUtils.copyProperties(userPO, vo);
- return vo;
- }).collect(Collectors.toList());
+ List users = list.stream().map(userPO -> userMapping.sourceToTarget(userPO)).collect(Collectors.toList());
return Optional.ofNullable(users);
}
@Override
public Integer insert(UserVO userVO) {
- UserPO userPO = new UserPO();
- BeanUtils.copyProperties(userVO, userPO);
+ UserPO userPO = userMapping.targetToSource(userVO);
Integer integer = userDal.insert(userPO);
return integer;
}
diff --git a/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/model/ModelServiceImpl.java b/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/model/ModelServiceImpl.java
index 8001d8f..28ba3ec 100644
--- a/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/model/ModelServiceImpl.java
+++ b/radar-service-impl/src/main/java/com/pgmmers/radar/service/impl/model/ModelServiceImpl.java
@@ -69,7 +69,7 @@ public class ModelServiceImpl implements ModelService, SubscribeHandle {
@Override
public List listModel(Integer status) {
if (modelList == null) {
- modelList = modelDal.listModel(null);
+ modelList = modelDal.listModel(status);
}
return modelList;
}