From 7aab004601e77890b158f19d1735594a8326feaa Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期四, 24 四月 2025 17:11:17 +0800 Subject: [PATCH] 数据库事务注解位置调整 --- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLineHandle.java | 76 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 76 insertions(+), 0 deletions(-) diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLineHandle.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLineHandle.java new file mode 100644 index 0000000..a95c192 --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLineHandle.java @@ -0,0 +1,76 @@ +package com.dy.common.mw.protocol; + +import java.util.Collection; +import java.util.HashMap; + +public class OnLineHandle { + + /** + * 瑙f瀽涓婄嚎鏁版嵁锛屽緱鍒癛tuAddr + * @param bs 瀛楄妭鏁扮粍 + * @return OnLine.OnLineResult + */ + public OnLine.OnLineResult parse(byte[] bs)throws Exception{ + OnLine.OnLineResult rs = null ; + HashMap<String, AnnotationOnLineVo> onLineMap = ProtocolCache.getOnLineMap() ; + Collection<AnnotationOnLineVo> set = onLineMap.values() ; + if(set.size() == 0){ + throw new Exception("澶勭悊涓婄嚎鏃讹紝寰楀埌鐨勫崗璁泦鍚堜负绌恒��") ; + } + int prority = ProtocolConstant.firstPriority ; + while(true){ + Object[] objs = this.getClassObjAndAnnotationVo(prority, set) ; + OnLine onLine = (OnLine)objs[0] ; + if(onLine == null && prority == ProtocolConstant.firstPriority){ + throw new Exception("澶勭悊涓婄嚎鏃讹紝鏈緱鍒颁紭鍏堢骇涓�" + prority + "涓婄嚎澶勭悊绫伙紒") ; + }else if(onLine == null){ + //璇存槑涓婄嚎澶勭悊闆嗗悎宸茬粡閬嶅巻瀹屼簡銆� + break ; + } + rs = onLine.parse(bs) ; + OnLinePool.freeInstance(((AnnotationOnLineVo)objs[1]).clazz, onLine); + if(rs != null){ + if(rs.result == OnLine.OnLineAction_success){ + //鎴愬姛, 鍋滄寰幆锛岃繑鍥炵粨鏋� + break ; + }else if(rs.result == OnLine.OnLineAction_success_noMe){ + //涓嶆槸鏈崗璁暟鎹� , 寰幆缁х画 + prority++ ; + }else if(rs.result == OnLine.OnLineAction_success_response){ + //瑙f瀽涓婄嚎鏁版嵁锛岄渶瑕佸洖鍐欐暟鎹� + //鍋滄寰幆锛岃繑鍥炵粨鏋� + break ; + }else if(rs.result == OnLine.OnLineAction_fail){ + //瑙f瀽涓婄嚎鏁版嵁閿欒锛屼竴鑸槸涓婅鏁版嵁涓虹┖ + throw new Exception("澶勭悊涓婄嚎鏃讹紝瑙f瀽ID鍑洪敊(鍙兘绋嬪簭閿欒锛屼笂琛屾暟鎹负null)锛�") ; + } + } + } + if(rs == null){ + throw new Exception("澶勭悊涓婄嚎鏃跺嚭閿欙紝鏈兘鎴愬姛鍒嗘瀽鍑篒MEI鍙凤紒") ; + } + return rs ; + } + + /** + * 寰楀埌澶勭悊绫诲璞� + * @param priority 浼樺厛绾� + * @param set 闆嗗悎 + * @return Object[] + * @throws Exception 寮傚父 + */ + private Object[] getClassObjAndAnnotationVo(int priority, Collection<AnnotationOnLineVo> set) throws Exception{ + OnLine obj = null ; + AnnotationOnLineVo rVo = null ; + for(AnnotationOnLineVo vo : set){ + if(priority == vo.priority){ + obj = OnLinePool.getInstance(vo.clazz) ; + rVo = vo ; + break ; + } + } + return new Object[]{obj, rVo} ; + } + + +} -- Gitblit v1.8.0