Files
2021-01-12 22:04:24 +08:00

110 lines
3.7 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<Application name="lps" trace="yes">
<!--换卡圈存查询-->
<Transaction code="2141020" log_switch="1">
<!-- 验证卡片合法性 -->
<DynSentence name="QRY_LPSTCRD_CRDSTS">
<Sentence>
SELECT CRD_STS,CRD_STSW,USR_NO,MBL_NO,MAIN_AC FROM LPSTCRD WHERE SUB_AC=? AND CRD_STS!='2'
</Sentence>
<Fields>SUB_AC|</Fields>
</DynSentence>
<!-- 查询换卡圈存金额 -->
<DynSentence name="QRY_LPSTBAL_AMT">
<Sentence>
SELECT CRD_BAL
FROM LPSTBAL
WHERE HLD_NO IN
(SELECT MAX(HLD_NO) FROM LPSTBAL WHERE TX_TYP='C' AND PROC_RSL!='S' AND MAIN_AC=?)
AND MAIN_AC=?
</Sentence>
<Fields>MAIN_AC|MAIN_AC|</Fields>
</DynSentence>
<FlowCtrl>
<!--检查钱包状态-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_LPSTCRD_CRDSTS"/>
</Exec>
<If condition="~RetCod=2">
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="LPS20055"/>
<Arg name="MsgDat" value="用户尚未开通手机钱包"/>
</Exec>
<Return/>
</If>
<ElseIf condition="~RetCod!=0">
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="LPS00001"/>
<Arg name="MsgDat" value="数据库操作出错"/>
</Exec>
<Return/>
</ElseIf>
<!--判断卡片状态-->
<If condition="OR(IS_EQUAL_STRING($CRD_STS,3),IS_NOEQUAL_STRING(SUBSTR($CRD_STSW,1,5),00000))">
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="LPS20086"/>
<Arg name="MsgDat" value="卡片状态异常"/>
</Exec>
<Return/>
</If>
<!--用户-用户状态查询-->
<Set>INP_DAT.MBLNO_OR_LOGID=$MBL_NO</Set>
<Set>INP_DAT.TX_CD=$GWA.TX_CD</Set>
<Call package="URM_PUB" function="CHK_USER_STS">
<Input>INP_DAT|</Input>
<Output>OUT_DAT|MSG_CD|</Output>
</Call>
<If condition="NOT(IS_SUCC(@O.MSG_CD))">
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="@O.MSG_CD"/>
</Exec>
<Return/>
</If>
<!--查询换卡圈存余额-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_LPSTBAL_AMT"/>
</Exec>
<If condition="~RetCod=2">
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="LPS20095"/>
<Arg name="MsgDat" value="未找到卡片余额信息记录"/>
</Exec>
<Return/>
</If>
<ElseIf condition="~RetCod!=0">
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="LPS00001"/>
<Arg name="MsgDat" value="数据库操作出错"/>
</Exec>
<Return/>
</ElseIf>
<!--圈存金额为0-->
<If condition="DOUBLECMP($CRD_BAL,3,0.00)">
<Exec func="PUB:GWAAddMsg">
<Arg name="MsgCd" value="LPS20096"/>
<Arg name="MsgDat" value="异常情况-换卡圈存金额为0元"/>
</Exec>
</If>
<Set>TX_AMT=ADDCHAR(AMTPOWER($CRD_BAL,2),12,0,1)</Set>
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="LPS00000"/>
</Exec>
</FlowCtrl>
</Transaction>
</Application>