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

114 lines
4.5 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<Package>
<!--用户营销工具消费明细查询接口组件(UserBonUseQuery)-->
<Function name="UserBonUseQuery">
<Input>INP_DAT|</Input>
<Output>OUT_DAT|MSG_CD|MSG_DAT|</Output>
<!--查询交易流水中消费信息-->
<DynSentence name="QRY_MKMTJNL">
<Sentence>
SELECT A.BON_ID,
C.BON_NM,
A.PRD_TYP,
A.MKT_ID,
B.MKT_NM,
A.DR_AMT AS USE_AMT,
A.TX_SYS_DT AS USE_DT,
A.TX_SYS_TM AS USE_TM,
A.MERC_ID,
A.REAL_MERC_NM AS MERC_NM,
A.MERC_ORD_NO
FROM MKMTJNL A, MKMTACT B, MKMTBON C
WHERE C.USR_NO = ?
AND C.USR_MBL_NO = ?
AND (A.PRD_TYP = ? OR ? = ' ')
AND (A.USE_TYP = '1' OR A.USE_TYP = '2')
AND A.TX_STS = 'S'
AND A.TX_ACC_DT BETWEEN ? AND ?
AND A.MKT_ID = B.MKT_ID
AND A.BON_ID = C.BON_ID
AND A.USR_NO = C.USR_NO
</Sentence>
<Fields>USR_NO|MBL_NO|PRD_TYP|PRD_TYP|BEG_DT|END_DT|</Fields>
</DynSentence>
<Process>
<Set>MBL_NO=DELBOTHSPACE($INP_DAT.MBL_NO)</Set>
<Set>PRD_TYP=DELBOTHSPACE($INP_DAT.PRD_TYP)</Set>
<Set>BEG_DT=DELBOTHSPACE($INP_DAT.BEG_DT)</Set>
<Set>END_DT=DELBOTHSPACE($INP_DAT.END_DT)</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($BEG_DT)">
<Exec func="PUB:CmpSetMsg">
<!-- @msg起始日期不能为空 -->
<Arg name="MsgCd" value="MKM22026"/>
<Arg name="MsgDat" value="起始日期不能为空"/>
</Exec>
<Return/>
</If>
<If condition="ISNULL($END_DT)">
<Exec func="PUB:CmpSetMsg">
<!-- @msg结束日期不能为空 -->
<Arg name="MsgCd" value="MKM22027"/>
<Arg name="MsgDat" value="结束日期不能为空"/>
</Exec>
<Return/>
</If>
<!--调用查询手机号或内部用户号的组件-->
<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>
<!--对于portal调用的查询红包消费明细的交易,需判断营销工具类型为红包-->
<If condition="AND(IS_EQUAL_STRING($INP_DAT.MKM_PTS_FLG,PTS0301010),IS_NOEQUAL_STRING($PRD_TYP,0))">
<Exec func="PUB:CmpSetMsg">
<!-- @msg只能查询红包的消费明细 -->
<Arg name="MsgCd" value="MKM20307"/>
<Arg name="MsgDat" value="只能查询红包的消费明细"/>
</Exec>
<Return/>
</If>
<If condition="ISNULL($PRD_TYP)">
<Set>PRD_TYP=SPACE(1,0)</Set>
</If>
<!--查询交易流水-->
<Exec func="PUB:DBMultiQueryPage">
<Arg name="PageNo" value="$PAG_NO"/>
<Arg name="SqlCmd" value="QRY_MKMTJNL"/>
<Arg name="RecNumPerPage" value="$PAG_NUM"/>
</Exec>
<If condition="~RetCod=-1">
<Exec func="PUB:CmpSetMsg">
<!-- @msg查询用户消费流水失败 -->
<Arg name="MsgCd" value="MKM10133"/>
<Arg name="MsgDat" value="查询用户消费流水失败"/>
</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>