package com.ld.igds.io.notify.impl; import com.ld.igds.constant.BizType; import com.ld.igds.constant.RedisConst; import com.ld.igds.inout.dto.InoutApiData; import com.ld.igds.io.notify.NotifyLprService; import com.ld.igds.util.ContextUtil; import com.ld.igds.util.RedisUtil; import com.ld.igds.websocket.WebSocketPacket; import com.ld.igds.websocket.WebSocketServer; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; @Slf4j @Repository(NotifyLprService.BEAN_ID) public class NotifyLprServiceImpl implements NotifyLprService { @Autowired private WebSocketServer socketServer; @Autowired private RedisUtil redisUtil; public static final String KEY_LPR = "T_LPR"; @SuppressWarnings("static-access") @Override public void notify(InoutApiData plate) { if (null == plate) return; WebSocketPacket packet = new WebSocketPacket(); packet.setCompanyId(ContextUtil.getDefaultCompanyId()); packet.setBizType(BizType.INOUT_IN.getCode()); packet.setBizTag(plate.getInoutProgress()); packet.setUserId(plate.getUserId()); packet.setBizId("PLATE_NUM"); packet.setData(plate); log.debug("向前端推送车牌信息={}", plate.toString()); socketServer.sendByUser(packet); } @Override public InoutApiData getLpr(String key) { key = RedisConst.buildKey(ContextUtil.getDefaultCompanyId(),KEY_LPR,key); InoutApiData lprDto = (InoutApiData) redisUtil.get(key); if(null == lprDto) return null; return lprDto; } @Override public void remove(String key) { key = RedisConst.buildKey(ContextUtil.getDefaultCompanyId(),KEY_LPR,key); redisUtil.del(key); } @Override public void setLpr(String sn, InoutApiData lprDto) { String key = RedisConst.buildKey(ContextUtil.getDefaultCompanyId(),KEY_LPR,sn); redisUtil.set(key,lprDto, 60 * 60); } }