| | |
| | | package com.lf.server.service.data; |
| | | |
| | | import com.lf.server.entity.all.StaticData; |
| | | import com.lf.server.entity.data.MetaEntity; |
| | | import com.lf.server.entity.data.MetaFileEntity; |
| | | import com.lf.server.helper.PathHelper; |
| | | import com.lf.server.helper.StringHelper; |
| | | import com.lf.server.helper.WebHelper; |
| | | import com.lf.server.mapper.data.MetaMapper; |
| | | import org.apache.commons.logging.Log; |
| | | import org.apache.commons.logging.LogFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.File; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | @Service |
| | | public class MetaService implements MetaMapper { |
| | | @Autowired |
| | | PathHelper pathHelper; |
| | | |
| | | @Autowired |
| | | MetaMapper metaMapper; |
| | | |
| | | @Override |
| | | public Integer selectCount(Integer dirid, String name) { |
| | | name = StringHelper.getLikeStr(name); |
| | | private final static Log log = LogFactory.getLog(MetaService.class); |
| | | |
| | | return metaMapper.selectCount(dirid, name); |
| | | @Override |
| | | public Integer selectCount(String depcode, String dircode, Integer verid, String name) { |
| | | depcode = StringHelper.getRightLike(depcode); |
| | | dircode = StringHelper.getRightLike(dircode); |
| | | name = StringHelper.getLikeUpperStr(name); |
| | | |
| | | return metaMapper.selectCount(depcode, dircode, verid, name); |
| | | } |
| | | |
| | | @Override |
| | | public List<MetaEntity> selectByPage(Integer dirid, String name, Integer limit, Integer offset) { |
| | | name = StringHelper.getLikeStr(name); |
| | | public List<MetaEntity> selectByPage(String depcode, String dircode, Integer verid, String name, Integer limit, Integer offset) { |
| | | depcode = StringHelper.getRightLike(depcode); |
| | | dircode = StringHelper.getRightLike(dircode); |
| | | name = StringHelper.getLikeUpperStr(name); |
| | | |
| | | return metaMapper.selectByPage(dirid, name, limit, offset); |
| | | return metaMapper.selectByPage(depcode, dircode, verid, name, limit, offset); |
| | | } |
| | | |
| | | @Override |
| | | public Integer selectMetasForCount(String depcode, String dirs, String name) { |
| | | depcode = StringHelper.getRightLike(depcode); |
| | | name = StringHelper.getLikeUpperStr(name); |
| | | |
| | | return metaMapper.selectMetasForCount(depcode, dirs, name); |
| | | } |
| | | |
| | | @Override |
| | | public List<MetaEntity> selectMetasForPage(String depcode, String dirs, String name, Integer limit, Integer offset) { |
| | | depcode = StringHelper.getRightLike(depcode); |
| | | name = StringHelper.getLikeUpperStr(name); |
| | | |
| | | return metaMapper.selectMetasForPage(depcode, dirs, name, limit, offset); |
| | | } |
| | | |
| | | @Override |
| | | public Integer selectCountForUpload(String name, Integer createUser, String types) { |
| | | name = StringHelper.getLikeStr(name); |
| | | name = StringHelper.getLikeUpperStr(name); |
| | | |
| | | return metaMapper.selectCountForUpload(name, createUser, types); |
| | | } |
| | | |
| | | @Override |
| | | public List<MetaEntity> selectByPageForUpload(String name, Integer createUser, String types, Integer limit, Integer offset) { |
| | | name = StringHelper.getLikeStr(name); |
| | | name = StringHelper.getLikeUpperStr(name); |
| | | |
| | | return metaMapper.selectByPageForUpload(name, createUser, types, limit, offset); |
| | | } |
| | | |
| | | @Override |
| | | public List<MetaEntity> selectAll() { |
| | | return metaMapper.selectAll(); |
| | | public Integer selectCountByPid(Integer metaid, String name) { |
| | | name = StringHelper.getLikeUpperStr(name); |
| | | |
| | | return metaMapper.selectCountByPid(metaid, name); |
| | | } |
| | | |
| | | @Override |
| | | public List<MetaEntity> selectPageByPid(Integer metaid, String name, Integer limit, Integer offset) { |
| | | name = StringHelper.getLikeUpperStr(name); |
| | | |
| | | return metaMapper.selectPageByPid(metaid, name, limit, offset); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<MetaFileEntity> selectMetaFiles(List<Integer> ids) { |
| | | public MetaEntity selectByGuid(String guid, String tab) { |
| | | return metaMapper.selectByGuid(guid, tab); |
| | | } |
| | | |
| | | @Override |
| | | public List<MetaEntity> selectByIdsForTab(String ids) { |
| | | return metaMapper.selectByIdsForTab(ids); |
| | | } |
| | | |
| | | @Override |
| | | public List<MetaEntity> selectMetaFiles(List<Integer> ids) { |
| | | return metaMapper.selectMetaFiles(ids); |
| | | } |
| | | |
| | | @Override |
| | | public List<MetaEntity> selectXlsAnnex(Integer[] ids, String tabs) { |
| | | return metaMapper.selectXlsAnnex(ids, tabs); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | public Integer delete(int id) { |
| | | return metaMapper.delete(id); |
| | | } |
| | | |
| | | @Override |
| | | public Integer deletes(List<Integer> ids) { |
| | | return metaMapper.deletes(ids); |
| | | } |
| | | |
| | | @Override |
| | | public Integer deleteCascade(String ids) { |
| | | return metaMapper.deleteCascade(ids); |
| | | public Integer deletes(String sql, String ids) { |
| | | return metaMapper.deletes(sql, ids); |
| | | } |
| | | |
| | | @Override |
| | |
| | | public Integer updates(List<MetaEntity> list) { |
| | | return metaMapper.updates(list); |
| | | } |
| | | |
| | | /** |
| | | * 删除元数据 |
| | | */ |
| | | public Integer deletes(List<Integer> list) { |
| | | String ids = StringHelper.join(list, ","); |
| | | |
| | | String sql = null; |
| | | List<MetaEntity> metas = selectByIdsForTab(ids); |
| | | if (null != metas && metas.size() > 0) { |
| | | sql = getDelTabsSql(metas); |
| | | } |
| | | |
| | | return deletes(sql, ids); |
| | | } |
| | | |
| | | /** |
| | | * 获取删除表记录SQL |
| | | */ |
| | | public String getDelTabsSql(List<MetaEntity> metas) { |
| | | List<String> list = new ArrayList<>(); |
| | | String tab = metas.get(0).getTab(); |
| | | |
| | | List<String> pids = new ArrayList<>(); |
| | | for (MetaEntity me : metas) { |
| | | if (tab.equals(me.getTab())) { |
| | | pids.add("'" + me.getEventid() + "'"); |
| | | } else { |
| | | list.add(String.format("delete from %s where parentid in (%s)", tab, StringHelper.join(pids, ","))); |
| | | |
| | | pids.clear(); |
| | | tab = me.getTab(); |
| | | pids.add("'" + me.getEventid() + "'"); |
| | | } |
| | | } |
| | | if (pids.size() > 0) { |
| | | list.add(String.format("delete from %s where parentid in (%s)", tab, StringHelper.join(pids, ","))); |
| | | } |
| | | |
| | | // 关联删除 |
| | | int i = 0, c = list.size(); |
| | | while (i < c) { |
| | | String str = list.get(i); |
| | | if (str.contains("bs.m_pipelinepoint")) { |
| | | list.add(str.replace("bs.m_pipelinepoint", "bs.m_pipesegment")); |
| | | list.add(str.replace("bs.m_pipelinepoint", "bs.m_pipeline")); |
| | | } |
| | | if (str.contains("bs.s_explorationpoint")) { |
| | | list.add(str.replace("bs.s_explorationpoint", "bs.s_surveyworksite")); |
| | | } |
| | | |
| | | i++; |
| | | } |
| | | |
| | | return StringHelper.join(list, ";"); |
| | | } |
| | | |
| | | /** |
| | | * 查看文件 |
| | | */ |
| | | public void downloadForView(String guid, boolean inline, HttpServletResponse res) { |
| | | try { |
| | | if (StringHelper.isEmpty(guid)) { |
| | | WebHelper.writeStr2Page(res, StaticData.NO_FILE); |
| | | return; |
| | | } |
| | | |
| | | MetaEntity me = selectByGuid(guid, null); |
| | | if (me == null) { |
| | | WebHelper.writeStr2Page(res, StaticData.NO_FILE); |
| | | return; |
| | | } |
| | | |
| | | String filePath = pathHelper.getConfig().getUploadPath() + File.separator + me.getPath(); |
| | | File file = new File(filePath); |
| | | if (!file.exists() || file.isDirectory()) { |
| | | WebHelper.writeJson2Page(res, "文件不存在"); |
| | | } |
| | | |
| | | WebHelper.download(filePath, me.getName(), inline, res); |
| | | } catch (Exception ex) { |
| | | WebHelper.writeJson2Page(res, "文件下载出错"); |
| | | log.error(ex.getMessage(), ex); |
| | | } |
| | | } |
| | | } |