
com.diboot.framework.service.impl.MetadataServiceImpl Maven / Gradle / Ivy
The newest version!
package com.diboot.framework.service.impl;
import com.diboot.framework.model.BaseModel;
import com.diboot.framework.model.Metadata;
import com.diboot.framework.service.MetadataService;
import com.diboot.framework.service.mapper.BaseMapper;
import com.diboot.framework.service.mapper.MetadataMapper;
import com.diboot.framework.utils.BaseHelper;
import com.diboot.framework.utils.Query;
import com.diboot.framework.utils.V;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
/**
* @author [email protected]
* @version 2017/4/17
*
*/
@Service("metadataService")
public class MetadataServiceImpl extends BaseServiceImpl implements MetadataService {
private static final Logger logger = LoggerFactory.getLogger(MetadataServiceImpl.class);
@Autowired
private MetadataMapper metadataMapper;
@Override
protected BaseMapper getMapper(){return metadataMapper;}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean createModel(BaseModel model) {
boolean success = super.createModel(model);
if(success){
// 保存子项
Metadata metadata = (Metadata)model;
if(V.notEmpty(metadata.getChildren())){
List modelList = metadata.getChildren();
for(Metadata child : modelList){
child.setParentId(metadata.getId());
child.setType(metadata.getType());
child.setSystem(metadata.isSystem());
}
if(!modelList.isEmpty()){
success = batchCreateModels(modelList);
}
}
}
return success;
}
@Override
public Metadata getModel(Object id) {
Metadata model = metadataMapper.get(id);
if(model.isTopLevel()){
Map criteria = super.newCriteria(Metadata.F.parentId, id);
List children = metadataMapper.getList(criteria);
model.setChildren(children);
}
return model;
}
@Override
public List getChildrenByType(String type) {
Query query = new Query(Metadata.F.type, type);
query.addGT(Metadata.F.parentId, 0);
List children = metadataMapper.getList(query.toMap());
return children;
}
@Override
public List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy