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

143 lines
4.9 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<Application name="lps" trace="yes">
<!--营业厅补卡-->
<Transaction code="2132010" log_switch="1">
<!-- 查询卡片基本信息 -->
<DynSentence name="QRY_LPSTCRD_CRDSTSW">
<Sentence>
SELECT CRD_STSW,SUB_AC,MAIN_AC,CRD_TYP ,USR_NO
FROM LPSTCRD
WHERE MBL_NO=? AND CRD_STS!='2'
FOR UPDATE
</Sentence>
<Fields>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>
<!-- 判断BOSS上送的新旧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_CRDSTSW"/>
</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>
<!-- 将卡片第三位置为1表示为补卡 -->
<Set>CRD_STSW=STRCAT(SUBSTR($CRD_STSW,1,2),1,SUBSTR($CRD_STSW,4,29))</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>
<!-- 登记余额信息处理表 -->
<Set>TX_TYP=L</Set> <!-- 补卡 -->
<Set>PROC_MOD=0</Set>
<Set>PROC_RSL=U</Set> <!-- 未处理 -->
<Set>HLD_NO=XXXX</Set> <!-- 无冻结编号 -->
<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>