263 lines
11 KiB
XML
263 lines
11 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
|
<Package>
|
|
|
|
<!-- 用户参与活动资格查询组件PFBK_BonusQuery)-->
|
|
<!--输入参数:MBL_NO 手机号 选输 -->
|
|
<!-- USR_NO 内部用户号 必输 -->
|
|
<!-- MERC_ID 商户号 必输 -->
|
|
<!-- RAT_AMT 折扣金额 必输 -->
|
|
<!-- BUS_TYP 业务类型 必输 -->
|
|
<!-- BUS_CNL 业务渠道 必输 -->
|
|
|
|
|
|
<!-- OUT_DAT USR_ACT_FLG 用户可参与标志 -->
|
|
|
|
<Function name="PFBK_BonusQuery">
|
|
<Input>INP_DAT|GWA|</Input>
|
|
<Output>OUT_DAT|MSG_CD|MSG_DAT</Output>
|
|
<!--查询该商是否是聚惠啦 商户-->
|
|
<DynSentence name="QRY_MERC_IS_EFF">
|
|
<Sentence>
|
|
SELECT A.MERC_ID, A.IS_GRP,B.MERC_ID,A.MKT_ID
|
|
FROM PAYADM.MKMTMERC A, PAYADM.MKMTMERCRL B
|
|
WHERE A.MERC_STS = 'A'
|
|
AND B.MERC_GRP='1207060001'
|
|
AND A.MERC_ID = B.MERC_GRP
|
|
AND B.MERC_ID NOT IN ('888009953110001','888009948160002')
|
|
AND B.MERC_ID=?
|
|
AND MKT_ID=?
|
|
</Sentence>
|
|
<Fields>MERC_ID|MKT_ID</Fields>
|
|
</DynSentence>
|
|
<!-- 查询用记身份证号 -->
|
|
<DynSentence name="QRY_USR_IDNO_INFO">
|
|
<Sentence>
|
|
SELECT ID_NO,MBL_NO ,USR_NO FROM URMTPINF WHERE ID_TYP = '00' AND USR_NO = ? AND MBL_NO = ?
|
|
</Sentence>
|
|
<Fields>USR_NO|MBL_NO</Fields>
|
|
</DynSentence>
|
|
|
|
<!--查询用户当前月是否享受过订单直减-->
|
|
<DynSentence name="QRY_USR_SUIT_MKT1">
|
|
<Sentence>
|
|
SELECT * FROM MKMTPRIZE
|
|
WHERE PRZ_CD=? AND PRZ_RUL_ID=? AND ISS_DT BETWEEN ? AND ?
|
|
</Sentence>
|
|
<Fields>ID_NO|MOT_DT|STA_DT|ISS_DT</Fields>
|
|
</DynSentence>
|
|
|
|
<!-- 查询 浦发快捷支付活动奖品规则信息表-->
|
|
<DynSentence name="QRY_MKT_INFO">
|
|
<Sentence>
|
|
SELECT PRZ_RUL_ID AS MKT_ID ,EFF_DT,EXP_DT ,PRZ_TYP PUB_USR FROM PAYADM.MKMTPRZRULE WHERE PRZ_NM='浦发快捷支付活动'
|
|
</Sentence>
|
|
</DynSentence>
|
|
|
|
<DynSentence name="QRY_MKT_CUR_BAL">
|
|
<Sentence>
|
|
SELECT NVL(SUM(CUR_AC_BAL),0) USE_AMT FROM MKMTBON WHERE BON_STS='A' AND MKT_ID=? AND USR_MBL_NO=?
|
|
</Sentence>
|
|
<Fields>MKT_ID|PUB_USR|</Fields>
|
|
</DynSentence>
|
|
|
|
<Process>
|
|
<Set>MBL_NO=DELBOTHSPACE($INP_DAT.MBL_NO)</Set>
|
|
<Set>USR_NO=DELBOTHSPACE($INP_DAT.USR_NO)</Set>
|
|
<Set>MERC_ID=DELBOTHSPACE($INP_DAT.MERC_ID)</Set>
|
|
<Set>RAT_AMT=DELBOTHSPACE($INP_DAT.RAT_AMT)</Set>
|
|
<Set>BUS_TYP=DELBOTHSPACE($INP_DAT.BUS_TYP)</Set>
|
|
<Set>BUS_CNL=DELBOTHSPACE($INP_DAT.BUS_CNL)</Set>
|
|
<Set>SYS_DT=$GWA.AC_DT</Set>
|
|
<Set>USE_BUS_TYP=$BUS_TYP</Set>
|
|
|
|
<!-- 输出项赋值 -->
|
|
<Set>OUT_DAT.USR_ACT_FLG=Y</Set>
|
|
<!--必输项检查-->
|
|
<If condition="ISNULL($MBL_NO)">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM10232"/>
|
|
<Arg name="MsgDat" value="用户手机号不能为空"/>
|
|
</Exec>
|
|
<Set>OUT_DAT.USR_ACT_FLG =N</Set>
|
|
<Return/>
|
|
</If>
|
|
<If condition="ISNULL($USR_NO)">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<!-- @msg 商户编号不能为空 -->
|
|
<Arg name="MsgCd" value="MKM40001"/>
|
|
<Arg name="MsgDat" value="用户号不能为空"/>
|
|
</Exec>
|
|
<Set>OUT_DAT.USR_ACT_FLG =N</Set>
|
|
<Return/>
|
|
</If>
|
|
<If condition="ISNULL($MERC_ID)">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<!-- @msg 商户编号不能为空 -->
|
|
<Arg name="MsgCd" value="MKM20200"/>
|
|
<Arg name="MsgDat" value="商户编号不能为空"/>
|
|
</Exec>
|
|
<Set>OUT_DAT.USR_ACT_FLG =N</Set>
|
|
<Return/>
|
|
</If>
|
|
|
|
<If condition="ISNULL($BUS_CNL)">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM41217"/>
|
|
<Arg name="MsgDat" value="业务渠道不能为空"/>
|
|
</Exec>
|
|
<Set>OUT_DAT.USR_ACT_FLG =N</Set>
|
|
<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>
|
|
<Set>OUT_DAT.USR_ACT_FLG =N</Set>
|
|
<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">
|
|
<!-- @msg交易成功 -->
|
|
<Arg name="MsgCd" value="MKM40002" />
|
|
<Arg name="MsgDat" value="销户或待销户的用户不符合此次活动资格"/>
|
|
</Exec>
|
|
<Set>OUT_DAT.USR_ACT_FLG =N</Set>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!-- 查询快捷活动编号 -->
|
|
<Exec func="PUB:ReadRecord">
|
|
<Arg name="SqlCmd" value="QRY_MKT_INFO"/>
|
|
</Exec>
|
|
<If condition="~RetCod=2">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<!-- @msg不存在快捷营销活动-->
|
|
<Arg name="MsgCd" value="MKM40003"/>
|
|
<Arg name="MsgDat" value="营销活动不存在"/>
|
|
</Exec>
|
|
<Set>OUT_DAT.USR_ACT_FLG =N</Set>
|
|
<Return/>
|
|
</If>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<!-- @msg不存在快捷营销活动-->
|
|
<Arg name="MsgCd" value="MKM40003"/>
|
|
<Arg name="MsgDat" value="营销活动不存在"/>
|
|
</Exec>
|
|
<Set>OUT_DAT.USR_ACT_FLG =N</Set>
|
|
<Return/>
|
|
</If>
|
|
<Set>MKT_ID=$MKT_ID</Set>
|
|
<Set>CUR_DT=$GWA.TX_DT</Set>
|
|
<If condition="INTCMP($CUR_DT,1,$EFF_DT)">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<!-- @msg不存在快捷营销活动-->
|
|
<Arg name="MsgCd" value="MKM40004"/>
|
|
<Arg name="MsgDat" value="此营销活动还未生效"/>
|
|
</Exec>
|
|
<Set>OUT_DAT.USR_ACT_FLG =N</Set>
|
|
<Return/>
|
|
</If>
|
|
<If condition="INTCMP($CUR_DT,6,$EXP_DT)">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM40005"/>
|
|
<Arg name="MsgDat" value="此营销活动已失效"/>
|
|
</Exec>
|
|
<Set>OUT_DAT.USR_ACT_FLG =N</Set>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--查询该商户是否满足订单扣减资格-->
|
|
<Exec func="PUB:ReadRecord">
|
|
<Arg name="SqlCmd" value="QRY_MERC_IS_EFF" />
|
|
</Exec>
|
|
<If condition="~RetCod=2">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<!-- @msg不存在该营销工具 -->
|
|
<Arg name="MsgCd" value="MKM40006"/>
|
|
<Arg name="MsgDat" value="此商户不属于订单直减商户"/>
|
|
</Exec>
|
|
<Set>OUT_DAT.USR_ACT_FLG =N</Set>
|
|
<Return/>
|
|
</If>
|
|
<!-- 扣减金额检查:单笔直减金额最高不超过50元 -->
|
|
<If condition="DOUBLECMP($RAT_AMT,6,50)">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<!-- @msg扣减金额单笔限额超过50元-->
|
|
<Arg name="MsgCd" value="MKM40007"/>
|
|
<Arg name="MsgDat" value="扣减金额单笔限额超过50元"/>
|
|
</Exec>
|
|
<Set>OUT_DAT.USR_ACT_FLG =N</Set>
|
|
<Return/>
|
|
</If>
|
|
<!-- 扣减金额检查,扣减金额为非法金额 -->
|
|
<If condition="DOUBLECMP($RAT_AMT,le,0)">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<!-- @msg扣减金额为非法金额-->
|
|
<Arg name="MsgCd" value="MKM40008"/>
|
|
<Arg name="MsgDat" value="扣减金额非法"/>
|
|
</Exec>
|
|
<Set>OUT_DAT.USR_ACT_FLG =N</Set>
|
|
<Return/>
|
|
</If>
|
|
<!--红包余额的情况-->
|
|
<Exec func="PUB:ReadRecord">
|
|
<Arg name="SqlCmd" value="QRY_MKT_CUR_BAL" />
|
|
</Exec>
|
|
<Set>USE_AMT=$USE_AMT</Set>
|
|
<If condition="DOUBLECMP($USE_AMT,1,$RAT_AMT)">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM40011"/>
|
|
<Arg name="MsgDat" value="此活动的余额已不足扣减"/>
|
|
</Exec>
|
|
<Set>OUT_DAT.USR_ACT_FLG=N</Set>
|
|
<Return/>
|
|
</If>
|
|
<!-- 查询用户身份证号 -->
|
|
<Exec func="PUB:ReadRecord">
|
|
<Arg name="SqlCmd" value="QRY_USR_IDNO_INFO" />
|
|
</Exec>
|
|
<If condition="~RetCod=2">
|
|
<Set>ID_NO=0</Set>
|
|
</If>
|
|
<ElseIf condition="~RetCod=0">
|
|
<Set>ID_NO=$ID_NO</Set>
|
|
</ElseIf>
|
|
<If condition="IS_NOEQUAL_STRING($ID_NO,0)">
|
|
<!-- 用户是否满足资格,一月只领一次 -->
|
|
<Set>ISS_DT=$GWA.TX_DT</Set> <!-- 计算用户当月是否有过订单直减 -->
|
|
<Set>STA_DT=STRCAT(SUBSTR($ISS_DT,1,6),01)</Set> <!-- 计算月初 -->
|
|
<Set>MOT_DT=SUBSTR($ISS_DT,1,6)</Set>
|
|
<Exec func="PUB:ReadRecord">
|
|
<Arg name="SqlCmd" value="QRY_USR_SUIT_MKT1" />
|
|
</Exec>
|
|
<If condition="~RetCod=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<!-- @msg不存在该营销工具 -->
|
|
<Arg name="MsgCd" value="MKM40012"/>
|
|
<Arg name="MsgDat" value="此用户当月已享受过浦发快捷赠送电子券活动"/>
|
|
</Exec>
|
|
<Set>OUT_DAT.USR_ACT_FLG=N</Set>
|
|
<Return/>
|
|
</If >
|
|
</If>
|
|
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<!-- @msg交易成功 -->
|
|
<Arg name="MsgCd" value="MKM00000"/>
|
|
<Arg name="MsgDat" value="交易成功"/>
|
|
</Exec>
|
|
<Exec func="PUB:DumpETF"/>
|
|
</Process>
|
|
</Function>
|
|
</Package> |