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.MetaPubEntity; 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; @Service @SuppressWarnings("ALL") public class PublishService implements PublishMapper { @Value("${sys.exportServer}") private String exportServer; @Resource PublishMapper publishMapper; 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 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 selectAll() { return publishMapper.selectAll(); } @Override public PublishEntity selectById(int id) { return publishMapper.selectById(id); } @Override public List selectByIds(String ids) { return publishMapper.selectByIds(ids); } @Override public List selectMetasByPubid(Integer pubid) { return publishMapper.selectMetasByPubid(pubid); } @Override public List selectRaster() { return publishMapper.selectRaster(); } @Override public PublishEntity selectByLayerId(Integer layerId) { return publishMapper.selectByLayerId(layerId); } @Override public List 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 list) { return publishMapper.inserts(list); } @Override public Integer insertPubDown(Integer pubid, Integer downid, Integer createUser) { return publishMapper.insertPubDown(pubid, downid, createUser); } @Override public Integer insertMetaPub(MetaPubEntity mp) { return publishMapper.insertMetaPub(mp); } @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 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 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 map = getMapData(entity); String str = RestHelper.postForRest(exportServer + method, map); if (StringHelper.isEmpty(str)) { return 0; } ResponseMsg msg = JSON.parseObject(str, ResponseMsg.class); if (msg == null || msg.getCode() != StaticData.TWO_HUNDRED) { return 0; } return msg.getCount(); } private Map getMapData(PubEntity entity) { Map 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; } public long postForPub(PubEntity entity, String method) { Map map = getMapData(entity); String str = RestHelper.postForRest(exportServer + method, map); if (StringHelper.isEmpty(str)) { return 0; } ResponseMsg msg = JSON.parseObject(str, ResponseMsg.class); if (msg == null || msg.getCode() != StaticData.TWO_HUNDRED) { return 0; } return msg.getCount(); } }