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

230 lines
9.3 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<Package>
<Function name="CLOSE_USER">
<Input>GWA|INP_DAT</Input>
<Output>OUT_DAT|MSG_CD</Output>
<DynSentence name="QRY_URMTOPER_BY_MBLNO">
<Sentence>
SELECT USR_NO,USR_OPR_NO,USR_OPR_LOG_ID,USR_OPR_LOG_SHOW
FROM URMTOPER
WHERE USR_OPR_ID=?
</Sentence>
<Fields>INP_DAT.MBL_NO|</Fields>
</DynSentence>
<!-- 根据手机号查询手机用户信息表 -->
<DynSentence name="QRY_URMTPINF_BY_USRNO">
<Sentence>
SELECT USR_NO,USR_STS,MAIN_AC
FROM URMTPINF
WHERE USR_NO=?
</Sentence>
<Fields>USR_NO|</Fields>
</DynSentence>
<!-- 根据主账户查询是否存在未处理坏卡余额记录 -->
<DynSentence name="QRY_LPSTBAL">
<Sentence>
SELECT MAIN_AC,SUB_AC,TX_TYP,PROC_RSL FROM LPSTBAL
WHERE MAIN_AC=? AND TX_TYP='B' AND PROC_RSL NOT IN ('S')
</Sentence>
<Fields>MAIN_AC|</Fields>
</DynSentence>
<DynSentence name="UPD_URMTPINF_STS">
<Sentence>
UPDATE URMTPINF
SET USR_STS='1',MBL_NO=?,CLO_DT=?,UPD_JRN=?
WHERE USR_NO=?
</Sentence>
<Fields>GDM_OUT.MBL_NO|GWA.CUR_AC_DT|GWA.JRN_NO|USR_NO</Fields>
</DynSentence>
<DynSentence name="UPD_URMTOPER_STS">
<Sentence>
UPDATE URMTOPER
SET USR_OPR_STS='1',UPD_JRN=?,OLD_OPR_LOG_ID=USR_OPR_LOG_ID,USR_OPR_LOG_ID=?,USR_OPR_ID=?
WHERE USR_NO=?
</Sentence>
<Fields>GWA.JRN_NO|IN_OPR_LOG_ID|GDM_OUT.MBL_NO|USR_NO|</Fields>
</DynSentence>
<DynSentence name="UPD_URMTCOMI_STS">
<Sentence>
UPDATE URMTCOMI
SET USR_STS='1'
WHERE USR_NO=?
</Sentence>
<Fields>USR_NO|</Fields>
</DynSentence>
<!-- 更新开销户历史表 -->
<DynSentence name="UPD_URMTPOCH">
<Sentence>
UPDATE URMTPOCH SET CLO_DT=?, CLO_TM=?,CLO_BUS_CNL=?
WHERE SUB_AC=? AND SEQ_NO='1'
</Sentence>
<Fields>|GWA.TX_DT|GWA.TX_TM|GWA.BUS_CNL|MAIN_AC</Fields>
</DynSentence>
<Process>
<Exec func="PUB:DumpETF"/> <!-- test -->
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="URM00000"/>
</Exec>
<!-- 根据手机号查询用户操作员信息表 -->
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_URMTOPER_BY_MBLNO"/>
</Exec>
<If condition="~RetCod=2">
<Exec func="PUB:CMPSetMsg">
<Arg name="MsgCd" value="URM20019"/>
</Exec>
<Return/>
</If>
<Set>IN_OPR_LOG_ID=STRCAT(!,$USR_OPR_NO)</Set> <!-- 虚拟别名 -->
<!-- 根据手机号查询手机用户信息表 -->
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_URMTPINF_BY_USRNO"/>
</Exec>
<If condition="~RetCod=2">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="URM20012"/> <!-- 未开通手机支付功能 -->
</Exec>
<Return/>
</If>
<If condition="USR_STS=1">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="URM20009"/> <!-- 该用户已销户 -->
</Exec>
<Return/>
</If>
<If condition="USR_STS=3">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="URM20069"/> <!-- 该用户已待销户 -->
</Exec>
<Return/>
</If>
<!-- 调用帐户-主帐户销户 -->
<Set>CMA_INP.AC_NO=$MAIN_AC</Set>
<Set>CMA_INP.CLS_FUN=N</Set> <!-- 销户标志 -->
<Exec func="ACMPUB:CloseMainAccount">
<Arg name="_I_GWA" value="GWA" />
<Arg name="_I_INP_DAT" value="CMA_INP"/>
<Arg name="_O_OUT_DAT" value="CMA_OUT"/>
</Exec>
<If condition="IS_SUCC(@O.MSG_CD)=0">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="@O.MSG_CD"/>
</Exec>
<Return/>
</If>
<!-- 调用公共-生成虚拟手机号 -->
<Exec func="CMM:GenerateDummyMobilNo">
<Arg name="_I_INP_DAT" value="11"/> <!-- test -->
<Arg name="_O_OUT_DAT" value="GDM_OUT"/>
</Exec>
<If condition="IS_SUCC(@O.MSG_CD)=0">
<Exec func="PUB:CMPSetMsg">
<Arg name="MsgCd" value="@O.MSG_CD"/>
</Exec>
<Return/>
</If>
<Set>GDM_OUT=VAL("@O.GDM_OUT")</Set>
<!-- 更新手机用户信息表 -->
<Exec func="PUB:ExecSql">
<Arg name="SqlCmd" value="UPD_URMTPINF_STS"/>
</Exec>
<If condition="~RetCod=2">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="URM20003"/> <!-- 更新数据库时,数据不存在 -->
</Exec>
<Return/>
</If>
<!-- 更新操作员信息表 -->
<Exec func="PUB:ExecSql">
<Arg name="SqlCmd" value="UPD_URMTOPER_STS"/>
</Exec>
<If condition="~RetCod=2">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="URM20003"/> <!-- 更新数据库时,数据不存在 -->
</Exec>
<Return/>
</If>
<!-- 更新公共属性表 -->
<Exec func="PUB:ExecSql">
<Arg name="SqlCmd" value="UPD_URMTCOMI_STS"/>
</Exec>
<If condition="~RetCod=2">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="URM20003"/> <!-- 更新数据库时,数据不存在 -->
</Exec>
<Return/>
</If>
<!-- 更新开销户历史表 -->
<Exec func="PUB:ExecSql">
<Arg name="SqlCmd" value="UPD_URMTPOCH"/>
</Exec>
<If condition="~RetCod=2">
<!-- 没有开户历史,登记新的销户历史 -->
<Set>INP_DAT.SEQ_NO=1</Set>
<Set>INP_DAT.AC_TYP=100</Set>
<Set>INP_DAT.SUB_AC=$MAIN_AC</Set>
<Set>INP_DAT.CLO_DT=$GWA.TX_DT</Set>
<Set>INP_DAT.CLO_TM=$GWA.TX_TM</Set>
<Set>INP_DAT.CLO_BUS_CNL=$GWA.BUS_CNL</Set>
<Set>INP_DAT.USR_NO=$USR_NO</Set>
<Exec func="PUB:InsertRecord">
<Arg name="TblNam" value="URMTPOCH"/> <!-- 用户支付密码保护信息表 -->
<Arg name="GrpNam" value="INP_DAT"/>
</Exec>
<If condition="~RetCod=1">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="URM20000"/> <!-- 插入多条记录,存在失败的记录 -->
</Exec>
<Return/>
</If>
</If>
<!-- 异步通知BOSS系统手机支付用户退订关系 -->
<Set>TLOG_NO=$GWA.JRN_NO</Set>
<Exec func="PUB:GetUniqueNo">
<Arg name="Name" value="SEL_VAL"/> <!--可选参数,自定义生成的序号节点名,默认为ID-->
<Arg name="Len" value="10"/> <!--必输参数,生成的序号的长度,最大长度为18位-->
</Exec>
<Set>SEL_VAL=ADDCHAR($SEL_VAL,16,0,1)</Set>
<Set>PRO_TIM=GETDATETIME()</Set>
<Set>TRAN_IDO=STRCAT($PRO_TIM,$SEL_VAL)</Set>
<Set>TRAN_IDH=STRCAT($PRO_TIM,$SEL_VAL)</Set>
<Set>SEL_VAL=SUBSTR($SEL_VAL,11,6)</Set>
<Set>OPR_LOG=STRCAT(0034BIP2B260,$PRO_TIM,$SEL_VAL)</Set>
<Set>CHG_OPR=02</Set>
<Exec func="PUB:InvokeService">
<Arg name="ServiceName" value="T2001060"/>
<Arg name='Mode' value='NOTIFY'/>
<Arg name="LogID" value="SBSGPUB1"/>
<Arg name="ObjSvr" value="SBSGPUB1"/>
</Exec>
<Set>RetCod=~RetCod</Set>
<Exec func="PUB:DumpETF"/>
</Process>
</Function>
</Package>