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; }