182 lines
6.9 KiB
XML
182 lines
6.9 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
|
<Application name="lps" trace="yes">
|
|
|
|
<!--营业厅换卡通知-->
|
|
<Transaction code="2132030" log_switch="1">
|
|
<!-- 验证卡片合法性 -->
|
|
<DynSentence name="QRY_LPSTCRD_INFO">
|
|
<Sentence>
|
|
SELECT CRD_STS,SUB_AC,USR_IMSI,CRD_STSW,CRD_TYP,MAIN_AC,USR_NO FROM LPSTCRD WHERE MBL_NO=? AND CRD_STS!='2'
|
|
</Sentence>
|
|
<Fields>MBL_NO|</Fields>
|
|
</DynSentence>
|
|
|
|
<!-- 查询之前的卡片信息 -->
|
|
<DynSentence name="QRY_URMTPOCH_SUB_AC">
|
|
<Sentence>
|
|
SELECT SUB_AC
|
|
FROM URMTPOCH
|
|
WHERE AC_TYP='101' AND MBL_NO=?
|
|
AND SEQ_NO IN (SELECT MAX(SEQ_NO) MAX_SEQ_NO FROM URMTPOCH WHERE MBL_NO=? AND AC_TYP='101' )
|
|
</Sentence>
|
|
<Fields>MBL_NO|MBL_NO|</Fields>
|
|
</DynSentence>
|
|
|
|
<FlowCtrl>
|
|
<!-- 初始化BOSS返回值 -->
|
|
<Set>RSP_TYP=0</Set>
|
|
<Set>RSP_COD=0000</Set>
|
|
<If condition="IS_EQUAL_STRING($RTE_TYP,00)">
|
|
<Set>RTE_VAL=999</Set>
|
|
</If>
|
|
<Set>LAND_AP_DOM=MPAY</Set>
|
|
<Set>ORG_AP_DOM=BOSS</Set>
|
|
<Set>BR_NO=999999</Set>
|
|
<Exec func="PUB:GetUniqueNo">
|
|
<Arg name="Name" value="SEL_VAL"/>
|
|
<Arg name="Len" value="10"/>
|
|
</Exec>
|
|
<Set>SEL_VAL=ADDCHAR($SEL_VAL,16,0,1)</Set>
|
|
<Set>PRO_TIM=GETDATETIME()</Set>
|
|
<Set>LAND_JRN=STRCAT($PRO_TIM,$SEL_VAL)</Set>
|
|
<Set>PRO_RSL=00</Set>
|
|
<Set>RSP_MSG=交易成功</Set>
|
|
|
|
<!-- 判断卡片回收标志 -->
|
|
<If condition="AND(IS_EQUAL_INT($OCB_FLG,1),IS_EQUAL_INT($OCO_FLG,0))"> <!-- 好卡并且没有回收 -->
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS20068"/>
|
|
<Arg name="MsgDat" value="卡片完好需要回收"/>
|
|
</Exec>
|
|
<Set>RSP_TYP=2</Set>
|
|
<Set>RSP_COD=2998</Set>
|
|
<Set>RSP_MSG=好卡换卡需要回收</Set>
|
|
<Set>PRO_RSL=99</Set>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!-- 新旧IMSI相同 -->
|
|
<If condition="IS_EQUAL_STRING($OLD_MSI,$NEW_MSI)">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS20066"/>
|
|
<Arg name="MsgDat" value="新旧IMSI编号重复"/>
|
|
</Exec>
|
|
<Set>RSP_TYP=2</Set>
|
|
<Set>RSP_COD=2998</Set>
|
|
<Set>RSP_MSG=新旧IMSI重复</Set>
|
|
<Set>PRO_RSL=02</Set>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--检查钱包状态-->
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QRY_LPSTCRD_INFO"/>
|
|
</Exec>
|
|
<If condition="~RetCod=2">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS00000"/>
|
|
<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>
|
|
<Set>RSP_TYP=2</Set>
|
|
<Set>RSP_COD=2998</Set>
|
|
<Set>RSP_MSG=系统错误</Set>
|
|
<Set>PRO_RSL=99</Set>
|
|
<Return/>
|
|
</ElseIf>
|
|
|
|
<If condition="IS_EQUAL_STRING($NEW_MSI,$USR_IMSI)"> <!-- 新IMSI编号与平台保存的IMSI编号相同即开户之后进行换卡 -->
|
|
<!-- 查询原来卡片的应用序列号 -->
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QRY_URMTPOCH_SUB_AC"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS20069"/>
|
|
<Arg name="MsgDat" value="查询原卡片信息失败"/>
|
|
</Exec>
|
|
<Set>RSP_TYP=2</Set>
|
|
<Set>RSP_COD=2998</Set>
|
|
<Set>RSP_MSG=查询原卡片信息失败</Set>
|
|
<Set>PRO_RSL=99</Set>
|
|
<Return/>
|
|
</If>
|
|
</If>
|
|
<Else> <!-- 新IMSI编号与平台保存的IMSI编号不同即开户之前进行换卡通知 -->
|
|
<!--子账户销户-->
|
|
<Set>CRD_STSW=STRCAT(1,SUBSTR($CRD_STSW,2,31))</Set> <!-- 坏卡换卡 -->
|
|
<Call package="LPS_PUB" function="CancelOldSubAccount">
|
|
<Input>GWA|SUB_AC|CRD_STSW|</Input>
|
|
<Output>MSG_CD|</Output>
|
|
</Call>
|
|
<If condition="NOT(IS_SUCC(@O.MSG_CD))">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD"/>
|
|
</Exec>
|
|
<Set>RSP_TYP=2</Set>
|
|
<Set>RSP_COD=2998</Set>
|
|
<Set>RSP_MSG=补卡失败</Set>
|
|
<Set>PRO_RSL=99</Set>
|
|
<Return/>
|
|
</If>
|
|
</Else>
|
|
|
|
<!-- 登记卡片余额信息表 -->
|
|
<Set>TX_TYP=B</Set> <!-- 坏卡换卡 -->
|
|
<Set>PROC_MOD=0</Set>
|
|
<Set>PROC_RSL=U</Set> <!-- 未处理 -->
|
|
<Set>HLD_NO=XXXX</Set> <!-- 无冻结编号 -->
|
|
<Set>CRD_BAL=0.00</Set> <!-- 卡片余额设置为0 -->
|
|
<Set>REG_DT=$GWA.TX_DT</Set>
|
|
<Set>REG_TM=$GWA.TX_TM</Set>
|
|
|
|
<Exec func="PUB:InsertRecord" error="IGNORE">
|
|
<Arg name="TblNam" value="LPSTBAL"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS20071"/>
|
|
<Arg name="MsgDat" value="记录卡片余额信息表失败"/>
|
|
</Exec>
|
|
<Set>RSP_TYP=2</Set>
|
|
<Set>RSP_COD=2998</Set>
|
|
<Set>RSP_MSG=系统错误</Set>
|
|
<Set>PRO_RSL=99</Set>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--调用用户更新IMSI -->
|
|
<Set>INP_DAT.USR_NO=$USR_NO</Set>
|
|
<Set>INP_DAT.NEW_USR_IMSI=$NEW_MSI</Set>
|
|
<Call package="URM_PUB" function="UPD_IMSI">
|
|
<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"/>
|
|
<Arg name="MsgDat" value="更新用户IMSI失败"/>
|
|
</Exec>
|
|
<Set>RSP_TYP=2</Set>
|
|
<Set>RSP_COD=2998</Set>
|
|
<Set>RSP_MSG=补卡失败</Set>
|
|
<Set>PRO_RSL=99</Set>
|
|
<Return/>
|
|
</If>
|
|
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS00000"/>
|
|
</Exec>
|
|
|
|
|
|
</FlowCtrl>
|
|
</Transaction>
|
|
|
|
</Application>
|