From a70e327a8efaf38d74911ea568419a087fbd235a Mon Sep 17 00:00:00 2001 From: lawrencehj <1934378145@qq.com> Date: 星期四, 15 四月 2021 11:42:05 +0800 Subject: [PATCH] 修改用户密码前先验证旧密码,增加安全性 --- src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java | 144 +++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 118 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java index 071bf68..5d1cfc8 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java @@ -2,21 +2,21 @@ import java.util.*; -import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; -import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; -import com.genersoft.iot.vmp.gb28181.bean.ParentPlatformCatch; -import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyDto; +import com.genersoft.iot.vmp.gb28181.bean.*; +import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem; +import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; -import com.genersoft.iot.vmp.gb28181.bean.MobilePosition; import com.genersoft.iot.vmp.storager.dao.*; -import com.genersoft.iot.vmp.vmanager.platform.bean.ChannelReduce; +import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.stereotype.Component; -import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.storager.IVideoManagerStorager; +import org.springframework.transaction.TransactionDefinition; +import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.annotation.Transactional; /** @@ -27,6 +27,11 @@ @SuppressWarnings("rawtypes") @Component public class VideoManagerStoragerImpl implements IVideoManagerStorager { + @Autowired + DataSourceTransactionManager dataSourceTransactionManager; + + @Autowired + TransactionDefinition transactionDefinition; @Autowired private DeviceMapper deviceMapper; @@ -44,12 +49,16 @@ private IRedisCatchStorage redisCatchStorage; @Autowired - private PatformChannelMapper patformChannelMapper; + private PlatformChannelMapper platformChannelMapper; @Autowired private StreamProxyMapper streamProxyMapper; + @Autowired + private StreamPushMapper streamPushMapper; + @Autowired + private GbStreamMapper gbStreamMapper; /** @@ -216,9 +225,10 @@ */ @Override public synchronized boolean outline(String deviceId) { + System.out.println("鏇存柊璁惧绂荤嚎: " + deviceId); Device device = deviceMapper.getDeviceByDeviceId(deviceId); + if (device == null) return false; device.setOnline(0); - System.out.println("鏇存柊璁惧绂荤嚎"); return deviceMapper.update(device) > 0; } @@ -283,7 +293,7 @@ public boolean deleteParentPlatform(ParentPlatform parentPlatform) { int result = platformMapper.delParentPlatform(parentPlatform); // 鍒犻櫎鍏宠仈鐨勯�氶亾 - patformChannelMapper.cleanChannelForGB(parentPlatform.getServerGBId()); + platformChannelMapper.cleanChannelForGB(parentPlatform.getServerGBId()); return result > 0; } @@ -333,7 +343,7 @@ } List<String> deviceAndChannelList = new ArrayList<>(deviceAndChannels.keySet()); // 鏌ヨ褰撳墠宸茬粡瀛樺湪鐨� - List<String> relatedPlatformchannels = patformChannelMapper.findChannelRelatedPlatform(platformId, deviceAndChannelList); + List<String> relatedPlatformchannels = platformChannelMapper.findChannelRelatedPlatform(platformId, deviceAndChannelList); if (relatedPlatformchannels != null) { deviceAndChannelList.removeAll(relatedPlatformchannels); } @@ -344,7 +354,7 @@ // 瀵瑰墿涓嬬殑鏁版嵁杩涜瀛樺偍 int result = 0; if (channelReducesToAdd.size() > 0) { - result = patformChannelMapper.addChannels(platformId, channelReducesToAdd); + result = platformChannelMapper.addChannels(platformId, channelReducesToAdd); } return result; @@ -354,20 +364,20 @@ @Override public int delChannelForGB(String platformId, List<ChannelReduce> channelReduces) { - int result = patformChannelMapper.delChannelForGB(platformId, channelReduces); + int result = platformChannelMapper.delChannelForGB(platformId, channelReduces); return result; } @Override public DeviceChannel queryChannelInParentPlatform(String platformId, String channelId) { - DeviceChannel channel = patformChannelMapper.queryChannelInParentPlatform(platformId, channelId); + DeviceChannel channel = platformChannelMapper.queryChannelInParentPlatform(platformId, channelId); return channel; } @Override public Device queryVideoDeviceByPlatformIdAndChannelId(String platformId, String channelId) { - Device device = patformChannelMapper.queryVideoDeviceByPlatformIdAndChannelId(platformId, channelId); + Device device = platformChannelMapper.queryVideoDeviceByPlatformIdAndChannelId(platformId, channelId); return device; } @@ -390,27 +400,56 @@ /** * 鏂板浠g悊娴� - * @param streamProxyDto + * @param streamProxyItem * @return */ @Override - public int addStreamProxy(StreamProxyDto streamProxyDto) { - return streamProxyMapper.add(streamProxyDto); + public boolean addStreamProxy(StreamProxyItem streamProxyItem) { + TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition); + boolean result = false; + streamProxyItem.setStreamType("proxy"); + streamProxyItem.setStatus(true); + try { + if (gbStreamMapper.add(streamProxyItem)<0 || streamProxyMapper.add(streamProxyItem) < 0) { + //浜嬪姟鍥炴粴 + dataSourceTransactionManager.rollback(transactionStatus); + } + result = true; + dataSourceTransactionManager.commit(transactionStatus); //鎵嬪姩鎻愪氦 + }catch (Exception e) { + dataSourceTransactionManager.rollback(transactionStatus); + } + return result; } /** * 鏇存柊浠g悊娴� - * @param streamProxyDto + * @param streamProxyItem * @return */ @Override - public int updateStreamProxy(StreamProxyDto streamProxyDto) { - return streamProxyMapper.update(streamProxyDto); + public boolean updateStreamProxy(StreamProxyItem streamProxyItem) { + TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition); + boolean result = false; + streamProxyItem.setStreamType("proxy"); + try { + if (gbStreamMapper.update(streamProxyItem)<0 || streamProxyMapper.update(streamProxyItem) < 0) { + //浜嬪姟鍥炴粴 + dataSourceTransactionManager.rollback(transactionStatus); + } + dataSourceTransactionManager.commit(transactionStatus); //鎵嬪姩鎻愪氦 + result = true; + }catch (Exception e) { + e.printStackTrace(); + dataSourceTransactionManager.rollback(transactionStatus); + } + return result; } /** * 绉婚櫎浠g悊娴� - * @param id + * @param app + * @param stream * @return */ @Override @@ -424,7 +463,7 @@ * @return */ @Override - public List<StreamProxyDto> getStreamProxyListForEnable(boolean enable) { + public List<StreamProxyItem> getStreamProxyListForEnable(boolean enable) { return streamProxyMapper.selectForEnable(enable); } @@ -435,12 +474,32 @@ * @return */ @Override - public PageInfo<StreamProxyDto> queryStreamProxyList(Integer page, Integer count) { + public PageInfo<StreamProxyItem> queryStreamProxyList(Integer page, Integer count) { PageHelper.startPage(page, count); - List<StreamProxyDto> all = streamProxyMapper.selectAll(); + List<StreamProxyItem> all = streamProxyMapper.selectAll(); return new PageInfo<>(all); } + /** + * 鏍规嵁鍥芥爣ID鑾峰彇骞冲彴鍏宠仈鐨勭洿鎾祦 + * @param platformId + * @param gbId + * @return + */ + @Override + public GbStream queryStreamInParentPlatform(String platformId, String gbId) { + return gbStreamMapper.queryStreamInPlatform(platformId, gbId); + } + + /** + * 鑾峰彇骞冲彴鍏宠仈鐨勭洿鎾祦 + * @param platformId + * @return + */ + @Override + public List<GbStream> queryGbStreamListInPlatform(String platformId) { + return gbStreamMapper.queryGbStreamListInPlatform(platformId); + } /** * 鎸夌収鏄痑pp鍜宻tream鑾峰彇浠g悊娴� @@ -449,7 +508,40 @@ * @return */ @Override - public StreamProxyDto queryStreamProxy(String app, String stream){ + public StreamProxyItem queryStreamProxy(String app, String stream){ return streamProxyMapper.selectOne(app, stream); } + + @Override + public void updateMediaList(List<StreamPushItem> streamPushItems) { + if (streamPushItems == null || streamPushItems.size() == 0) return; + System.out.printf("updateMediaList: " + streamPushItems.size()); + streamPushMapper.addAll(streamPushItems); + // TODO 寰呬紭鍖� + for (int i = 0; i < streamPushItems.size(); i++) { + gbStreamMapper.setStatus(streamPushItems.get(i).getApp(), streamPushItems.get(i).getStream(), true); + } + } + + @Override + public void updateMedia(StreamPushItem streamPushItem) { + streamPushMapper.del(streamPushItem.getApp(), streamPushItem.getStream()); + streamPushMapper.add(streamPushItem); + gbStreamMapper.setStatus(streamPushItem.getApp(), streamPushItem.getStream(), true); + } + + @Override + public void removeMedia(String app, String stream) { + streamPushMapper.del(app, stream); + } + + @Override + public void clearMediaList() { + streamPushMapper.clear(); + } + + @Override + public void mediaOutline(String app, String streamId) { + gbStreamMapper.setStatus(app, streamId, false); + } } -- Gitblit v1.8.0