package com.moon.server.service.data;
|
|
import com.alibaba.fastjson.JSON;
|
import com.moon.server.entity.all.ResponseMsg;
|
import com.moon.server.entity.all.StaticData;
|
import com.moon.server.entity.ctrl.PubEntity;
|
import com.moon.server.entity.data.MetaEntity;
|
import com.moon.server.entity.data.PublishEntity;
|
import com.moon.server.helper.RestHelper;
|
import com.moon.server.helper.StringHelper;
|
import com.moon.server.mapper.data.PublishMapper;
|
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.LogFactory;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import java.lang.reflect.Field;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 数据发布
|
* @author WWW
|
*/
|
@Service
|
public class PublishService implements PublishMapper {
|
@Value("${sys.exportServer}")
|
private String exportServer;
|
|
@Resource
|
PublishMapper publishMapper;
|
|
@Resource
|
ShuJianService shuJianService;
|
|
private final static Log log = LogFactory.getLog(PublishService.class);
|
|
@Override
|
public Integer selectCount(String name, String dircode, String type) {
|
name = StringHelper.getLikeUpperStr(name);
|
dircode = StringHelper.getRightLike(dircode);
|
|
return publishMapper.selectCount(name, dircode, type);
|
}
|
|
@Override
|
public List<PublishEntity> selectByPage(String name, String dircode, String type, Integer limit, Integer offset) {
|
name = StringHelper.getLikeUpperStr(name);
|
dircode = StringHelper.getRightLike(dircode);
|
|
return publishMapper.selectByPage(name, dircode, type, limit, offset);
|
}
|
|
@Override
|
public List<PublishEntity> selectAll() {
|
return publishMapper.selectAll();
|
}
|
|
@Override
|
public PublishEntity selectById(int id) {
|
return publishMapper.selectById(id);
|
}
|
|
@Override
|
public List<PublishEntity> selectByIds(String ids) {
|
return publishMapper.selectByIds(ids);
|
}
|
|
@Override
|
public List<String> selectCodesForDir(String dircode, Integer isDom) {
|
return publishMapper.selectCodesForDir(dircode, isDom);
|
}
|
|
@Override
|
public Integer insert(PublishEntity entity) {
|
return publishMapper.insert(entity);
|
}
|
|
@Override
|
public Integer inserts(List<PublishEntity> list) {
|
return publishMapper.inserts(list);
|
}
|
|
@Override
|
public Integer insertPubDown(Integer pubid, Integer downid, Integer createUser) {
|
return publishMapper.insertPubDown(pubid, downid, createUser);
|
}
|
|
@Override
|
public Integer delete(int id) {
|
return publishMapper.delete(id);
|
}
|
|
@Override
|
public Integer deletes(String ids) {
|
return publishMapper.deletes(ids);
|
}
|
|
@Override
|
public Integer update(PublishEntity entity) {
|
return publishMapper.update(entity);
|
}
|
|
@Override
|
public Integer updates(List<PublishEntity> list) {
|
return publishMapper.updates(list);
|
}
|
|
@Override
|
public Integer selectMetasByCount(String depcode, String dircode, Integer verid, String types, String name) {
|
depcode = StringHelper.getRightLike(depcode);
|
dircode = StringHelper.getRightLike(dircode);
|
name = StringHelper.getLikeUpperStr(name);
|
|
return publishMapper.selectMetasByCount(depcode, dircode, verid, types, name);
|
}
|
|
@Override
|
public List<MetaEntity> selectMetasByPage(String depcode, String dircode, Integer verid, String types, String name, Integer limit, Integer offset) {
|
depcode = StringHelper.getRightLike(depcode);
|
dircode = StringHelper.getRightLike(dircode);
|
name = StringHelper.getLikeUpperStr(name);
|
|
return publishMapper.selectMetasByPage(depcode, dircode, verid, types, name, limit, offset);
|
}
|
|
/**
|
* 发送发布请求
|
*/
|
public long postForPub(PubEntity entity, String method, HttpServletRequest req) {
|
Map<String, Object> map = getMapData(entity);
|
|
String str = RestHelper.postForRest(exportServer + method, map);
|
if (StringHelper.isEmpty(str)) {
|
return 0;
|
}
|
|
ResponseMsg<String> msg = JSON.parseObject(str, ResponseMsg.class);
|
if (msg == null || msg.getCode() != StaticData.TWO_HUNDRED) {
|
return 0;
|
}
|
|
return msg.getCount();
|
}
|
|
/**
|
* 获取Map数据
|
*/
|
private Map<String, Object> getMapData(PubEntity entity) {
|
Map<String, Object> map = new HashMap<>(3);
|
|
Field[] fields = entity.getClass().getDeclaredFields();
|
for (Field field : fields) {
|
try {
|
if ("serialVersionUID".equals(field.getName())) {
|
continue;
|
}
|
|
field.setAccessible(true);
|
Object obj = field.get(entity);
|
|
map.put(field.getName(), obj);
|
} catch (Exception ex) {
|
//
|
}
|
}
|
|
return map;
|
}
|
|
/**
|
* 获取服务类型
|
*/
|
private String getServerType(PublishEntity entity) {
|
switch (entity.getType()) {
|
case "DOM":
|
return "TMS服务";
|
case "DEM":
|
return "三维地形服务";
|
case "mpt":
|
return "三维场景服务";
|
case "las":
|
case "laz":
|
case "cpt":
|
return "三维点云服务";
|
default:
|
return "三维模型服务";
|
}
|
}
|
|
/**
|
* 删除多条
|
*/
|
public Integer deletes(List<Integer> idList, HttpServletRequest req) {
|
String ids = StringHelper.join(idList, ",");
|
|
List<PublishEntity> list = selectByIds(ids);
|
for (PublishEntity entity : list) {
|
shuJianService.deleteServe(entity);
|
}
|
|
return deletes(ids);
|
}
|
|
/**
|
* 发送发布请求
|
*/
|
public long postForPub(PubEntity entity, String method) {
|
Map<String, Object> map = getMapData(entity);
|
|
String str = RestHelper.postForRest(exportServer + method, map);
|
if (StringHelper.isEmpty(str)) {
|
return 0;
|
}
|
|
ResponseMsg<String> msg = JSON.parseObject(str, ResponseMsg.class);
|
if (msg == null || msg.getCode() != StaticData.TWO_HUNDRED) {
|
return 0;
|
}
|
|
return msg.getCount();
|
}
|
}
|