Files
ctg-app-ui/mkm/etc/pkg/MKM_UserBonTransSet_PKG.XML
2021-01-12 22:04:24 +08:00

257 lines
10 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<Package>
<!-- 输入 -->
<!-- INP_DAT.MBL_NO : 手机号码 -->
<!-- INP_DAT.TRANS_TYP : 转让类型 (1. 单张转让 2. 批量转让) -->
<!-- INP_DAT.TRANS_BON_RAT : 转让折扣 -->
<!-- INP_DAT.TRANS_DAY : 可选_到期前转让天数 -->
<!--用户红包转让参数设置接口组件(UserBonTransSet)-->
<Function name="UserBonTransSet">
<!-- 参数设定 -->
<Input>INP_DAT|</Input>
<Output>OUT_DAT|MSG_CD|MSG_DAT|</Output>
<!-- 更改券别状态为已领用 -->
<DynSentence name="UPD_MKMTBON_NORMALSTS">
<Sentence>
UPDATE MKMTBON
SET BON_STS = 'A',
BON_RAT = '0',
RAT_AMT = '0.00',
TM_SMP = ?
WHERE BON_STS = 'W'
AND PRD_TYP = '0'
AND USR_MBL_NO = ?
AND USR_NO = ?
</Sentence>
<Fields>TM_SMP|MBL_NO|USR_NO|</Fields>
</DynSentence >
<Process>
<!-- 获取日期时间 -->
<Set>CUR_DT=$GWA.TX_DT</Set> <!-- 当前系统日期 -->
<Set>CUR_TM=$GWA.TX_TM</Set> <!-- 当前系统时间 -->
<Set>TM_SMP=STRCAT($CUR_DT,$CUR_TM)</Set> <!-- 时间戳 -->
<!-- 输入参数 -->
<Set>MBL_NO=DELBOTHSPACE($INP_DAT.MBL_NO)</Set> <!-- 手机号码 -->
<Set>TRANS_TYP=DELBOTHSPACE($INP_DAT.TRANS_TYP)</Set> <!-- 转让类型: 1. 单张转让 2. 批量转让 -->
<Set>TRANS_BON_RAT=DELBOTHSPACE($INP_DAT.TRANS_BON_RAT)</Set> <!-- 折扣比例 -->
<Set>TRANS_DAY=DELBOTHSPACE($INP_DAT.TRANS_DAY)</Set> <!-- 可选:到期前转让天数 -->
<Set>SET_PTC_FLG=DELBOTHSPACE($INP_DAT.PTC_FLG)</Set> <!-- 可选:到期前转让天数 -->
<!--必输项判断-->
<If condition="ISNULL($MBL_NO)">
<Exec func="PUB:CmpSetMsg">
<!-- @msg 用户手机号不能为空 -->
<Arg name="MsgCd" value="MKM10132"/>
<Arg name="MsgDat" value="用户手机号不能为空"/>
</Exec>
<Return/>
</If>
<If condition="ISNULL($TRANS_TYP)">
<Exec func="PUB:CmpSetMsg">
<!-- @msg 转让类型不能为空 -->
<Arg name="MsgCd" value="MKM41282"/>
<Arg name="MsgDat" value="转让类型不能为空"/>
</Exec>
<Return/>
</If>
<If condition="ISNULL($TRANS_BON_RAT)">
<Exec func="PUB:CmpSetMsg">
<!-- @msg 转让比例不能为空 -->
<Arg name="MsgCd" value="MKM41283"/>
<Arg name="MsgDat" value="转让比例不能为空"/>
</Exec>
<Return/>
</If>
<If condition="DOUBLECMP($TRANS_BON_RAT,ge,10)">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="MKM41356"/>
<Arg name="MsgDat" value="转让折扣非法"/>
</Exec>
<Return/>
</If>
<!-- @add 2012-11-09 -->
<!-- 调用手机号段查询 -->
<Set>INP_DAT.MBL_NO=$MBL_NO</Set>
<Call function="GetMobilNoSegmentNew" package="URM">
<Input>INP_DAT</Input>
<Output>OUT_DAT|MSG_CD</Output>
</Call>
<If condition="IS_SUCC(@O.MSG_CD)=0">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="@O.MSG_CD" />
<Arg name="MsgDat" value="@O.MSG_DAT"/>
</Exec>
<Return/>
</If>
<If condition="IS_SUCC(@O.MSG_CD)=1">
<If condition="IS_NOEQUAL_STRING(@O.OUT_DAT.MBL_FLG,1)">
<Exec func="PUB:CmpSetMsg">
<Arg name="MSG_CD" value="MKM51070"/>
<Arg name="MSG_INF" value="营销工具暂不支持异网用户"/>
</Exec>
<Return/>
</If>
</If>
<!-- end -->
<!--调用查询手机号或内部用户号的组件-->
<Set>MBL_NO=$MBL_NO</Set>
<Set>USR_NO=</Set>
<Call function="Query_MBLNO_USRNO" package="MKM">
<Input>MBL_NO|USR_NO|</Input>
<Output>MSG_CD|MSG_DAT|MBL_NO|USR_NO|USR_PROV|USR_CITY|USR_CITY_NM|USR_STS|</Output>
</Call>
<If condition="IS_SUCC(@O.MSG_CD)=0">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="@O.MSG_CD" />
<Arg name="MsgDat" value="@O.MSG_DAT"/>
</Exec>
<Return/>
</If>
<Set>MBL_NO=@O.MBL_NO</Set>
<Set>USR_NO=@O.USR_NO</Set>
<Set>USR_STS=@O.USR_STS</Set>
<!-- 对于销户、待销户状态的用户不允许转让-->
<If condition="IS_EQUAL_STRING($USR_STS,1,3)">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="MKM41279" />
<Arg name="MsgDat" value="用户该状态下无法进行转让操作"/>
</Exec>
<Return/>
</If>
<!-- 查询用户个人转让参数设置 -->
<Exec func="PUB:CallThirdService">
<Arg name="ObjSvr" value="OURMPUB1"/>
<Arg name="HTxnCd" value="0011920"/>
</Exec>
<If condition="~RetCod=1">
<Exec func="PUB:CmpSetMsg">
<!-- @msg 查询用户红包转让参数超时 -->
<Arg name="MsgCd" value="MKM41287"/>
<Arg name="MsgDat" value="查询用户红包转让参数超时"/>
</Exec>
<Return />
</If>
<Set>TRS_DAY=$TRS_DAY</Set>
<Set>DISC_NUM=$DISC_NUM</Set>
<!-- TRANS_TYP = 1, 单张转让 -->
<If condition="IS_EQUAL_STRING($TRANS_TYP,1)">
<Set>SET_PTC_FLG=N</Set> <!-- 单张转让禁止自动缴话费 -->
<!-- 用户未设置过 -->
<If condition="OR(ISNULL($TRS_DAY),ISNULL($DISC_NUM))">
</If>
<!-- 用户之前参数为自定义 -->
<ElseIf condition="AND(IS_EQUAL_STRING($TRS_DAY,0),IS_EQUAL_STRING($DISC_NUM,0))">
<Exec func="PUB:CmpSetMsg">
<!-- @msg交易成功 -->
<Arg name="MsgCd" value="MKM00000"/>
<Arg name="MsgDat" value="交易成功"/>
</Exec>
<Return />
</ElseIf>
<!-- 用户之前参数为批量转让 -->
<ElseIf condition="AND(IS_NOEQUAL_STRING($TRS_DAY,0),IS_NOEQUAL_STRING($DISC_NUM,0))">
<!-- 更新该用户待转让红包为正常状态 -->
<Exec func="PUB:ExecSql">
<Arg name="SqlCmd" value="UPD_MKMTBON_NORMALSTS" />
</Exec>
<If condition="~RetCod=-1">
<Exec func="PUB:CmpSetMsg">
<!-- @msg 转让参数设置失败,请稍后再试 -->
<Arg name="MsgCd" value="MKM41288" />
<Arg name="MsgDat" value="转让参数设置失败,请稍后再试"/>
</Exec>
<Return/>
</If>
</ElseIf>
</If>
<!-- TRANS_TYP = 2, 批量转让 -->
<If condition="IS_EQUAL_STRING($TRANS_TYP,2)">
<!-- 若用户设置过 -->
<If condition="NOT(AND(ISNULL($TRS_DAY),ISNULL($DISC_NUM)))">
<!-- 更新该用户待转让红包为正常状态 -->
<Exec func="PUB:ExecSql">
<Arg name="SqlCmd" value="UPD_MKMTBON_NORMALSTS" />
</Exec>
<If condition="~RetCod=-1">
<Exec func="PUB:CmpSetMsg">
<!-- @msg 转让参数设置失败,请稍后再试 -->
<Arg name="MsgCd" value="MKM41288" />
<Arg name="MsgDat" value="转让参数设置失败,请稍后再试"/>
</Exec>
<Return/>
</If>
</If>
</If>
<!-- 用户转让参数 -->
<Set>USR_NO=$USR_NO</Set>
<Set>TRS_DAY=$TRANS_DAY</Set>
<Set>DISC_NUM=$TRANS_BON_RAT</Set>
<!-- 修改用户转让参数信息 -->
<Set>PTC_FLG=$SET_PTC_FLG</Set>
<Exec func="PUB:CallThirdService">
<Arg name="ObjSvr" value="OURMPUB1"/>
<Arg name="HTxnCd" value="0011910"/>
</Exec>
<If condition="~RetCod=1">
<Exec func="PUB:CmpSetMsg">
<!-- @msg 转让参数设置失败,请稍后再试-->
<Arg name="MsgCd" value="MKM41288"/>
<Arg name="MsgDat" value="转让参数设置失败,请稍后再试"/>
</Exec>
<Return />
</If>
<If condition="IS_SUCC($GWA.MSG_CD)=0">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="$GWA.MSG_CD"/>
<Arg name="MsgDat" value="$GWA.MsgDat"/>
</Exec>
<Return />
</If>
<!-- 调用组件删除用户待转让电子券信息 -->
<Set>INP_DAT.USR_MBL_NO=$MBL_NO</Set>
<Set>INP_DAT.USR_NO=$USR_NO</Set>
<Set>INP_DAT.OPR_TYP=DA</Set>
<Call function="TransInfoSysc" package="MKM">
<Input>INP_DAT|GWA|</Input>
<Output>OUT_DAT|MSG_CD|MSG_DAT|</Output>
</Call>
<If condition="IS_SUCC(@O.MSG_CD)=0">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="@O.MSG_CD" />
<Arg name="MsgDat" value="@O.MSG_DAT"/>
</Exec>
<Return/>
</If>
<Exec func="PUB:CmpSetMsg">
<!-- @msg交易成功 -->
<Arg name="MsgCd" value="MKM00000"/>
<Arg name="MsgDat" value="交易成功"/>
</Exec>
<Exec func="PUB:DumpETF"/>
</Process>
</Function>
</Package>