795 lines
31 KiB
XML
795 lines
31 KiB
XML
<?xml version="1.0" encoding='UTF-8'?>
|
|
<!--
|
|
==========================================================================
|
|
修改时间 PLOG 修改人 备注
|
|
2010.12.13 gaopeng3 增加发放红包后通知省平台步骤
|
|
2011.01.30 zhang_zh 删除通知省平台(临时解决方案)
|
|
==========================================================================
|
|
-->
|
|
<Package>
|
|
<!-- 红包发放批量处理(BonusIss_BAT) -->
|
|
<Function name="BonusIss_BAT">
|
|
<Input>JRN_NO|TX_CD|BOS_AMT|BAT_NO|BAT_SEQ|GWA|</Input>
|
|
<Output>OUT_DAT|MSG_CD|</Output>
|
|
|
|
<!--查询批量信息-->
|
|
<DynSentence name="QRY_MKMTBAT_INF">
|
|
<Sentence>
|
|
SELECT A.MBL_NO, A.MKT_ID, A.LOG_NO, A.PRD_ID, A.ISS_ID, A.BON_AMT,
|
|
B.ISS_CUR_AMT AS ISS_CUR_AMT1, B.ISS_TOT_AMT AS ISS_TOT_AMT1,
|
|
B.CAP_ID_TYP, B.CAP_ID, A.BAT_NO, A.BAT_SEQ, B.MKT_BON_FLG, B.CAP_TYP, C.ISS_PCT_TYP
|
|
FROM MKMTBAT A, MKMTACT B, MKMTPINF C
|
|
WHERE A.STS = '0'
|
|
AND A.DO_FLG = 'Y'
|
|
AND A.MKT_ID = B.MKT_ID
|
|
AND A.PRD_ID = C.PRD_ID
|
|
AND A.BAT_NO = ?
|
|
AND A.BAT_SEQ = ?
|
|
</Sentence>
|
|
<Fields>BAT_NO|BAT_SEQ|</Fields>
|
|
</DynSentence>
|
|
|
|
<!-- 查询发行方中发放对象限制类型 -->
|
|
<DynSentence name="QRY_MKMTISS_USR">
|
|
<Sentence>
|
|
SELECT USR_LMT_TYP, ISS_TOT_AMT AS ISS_TOT_AMT2, ISS_CUR_AMT AS ISS_CUR_AMT2,
|
|
ISS_EFF_DT, ISS_EXP_DT, ISS_PROV, OMBL_MAX_CNT AS ISSOMBL_MAX_CNT,
|
|
PERD_TYP AS ISSPERD_TYP, PRED AS ISSPRED
|
|
FROM MKMTISS
|
|
WHERE MKT_ID = ?
|
|
AND ISS_ID = ?
|
|
</Sentence>
|
|
<Fields>MKT_ID|ISS_ID|</Fields>
|
|
</DynSentence>
|
|
|
|
<!-- 查询该用户归属省市是否在范围内 -->
|
|
<DynSentence name="QRY_MKMTIAREA">
|
|
<Sentence>
|
|
SELECT 'Y' ISEXISTS
|
|
FROM DUAL
|
|
WHERE EXISTS(
|
|
SELECT 'Y'
|
|
FROM MKMTIAREA
|
|
WHERE MKT_ID = ?
|
|
AND ISS_ID = ?
|
|
AND USR_PROV = ?
|
|
AND (USR_CITY = 'ALL' OR USR_CITY = ?))
|
|
</Sentence>
|
|
<Fields>MKT_ID|ISS_ID|USR_PROV|USR_CITY|</Fields>
|
|
</DynSentence>
|
|
|
|
<!-- 查询该用户是否在指定的用户范围内 -->
|
|
<DynSentence name="QRY_MKMTIUSR_INF">
|
|
<Sentence>
|
|
SELECT 'Y' ISEXISTS
|
|
FROM DUAL
|
|
WHERE EXISTS(
|
|
SELECT 'Y'
|
|
FROM MKMTIUSR
|
|
WHERE MKT_ID = ?
|
|
AND ISS_ID = ?
|
|
AND MBL_NO = ?)
|
|
</Sentence>
|
|
<Fields>MKT_ID|ISS_ID|MBL_NO|</Fields>
|
|
</DynSentence>
|
|
|
|
<!-- 查询活动表 -->
|
|
<DynSentence name="QRY_MKMTACT_LINF">
|
|
<Sentence>
|
|
SELECT ISS_CUR_AMT AS ISS_CUR_AMT1, ISS_TOT_AMT AS ISS_TOT_AMT1, CAP_ID_TYP, CAP_ID
|
|
FROM MKMTACT
|
|
WHERE MKT_ID = ?
|
|
</Sentence>
|
|
<Fields>MKT_ID|</Fields>
|
|
</DynSentence>
|
|
|
|
<!-- 登记原因说明 -->
|
|
<DynSentence name="UPD_MKMTBAT_INF">
|
|
<Sentence>
|
|
UPDATE MKMTBAT
|
|
SET MSG_CD = ?,
|
|
ISS_FAIL_INF = ?
|
|
WHERE BAT_NO = ?
|
|
AND BAT_SEQ = ?
|
|
</Sentence>
|
|
<Fields>MSG_CD|ISS_FAIL_INF|BAT_NO|BAT_SEQ|</Fields>
|
|
</DynSentence>
|
|
|
|
<!--更新批量发放状态-->
|
|
<DynSentence name="UPD_MKMTBAT_STS">
|
|
<Sentence>
|
|
UPDATE MKMTBAT
|
|
SET STS = ?
|
|
WHERE BAT_NO = ?
|
|
AND BAT_SEQ = ?
|
|
AND STS = '0'
|
|
</Sentence>
|
|
<Fields>STS|BAT_NO|BAT_SEQ|</Fields>
|
|
</DynSentence>
|
|
|
|
<!--登记批量发放电子券编号-->
|
|
<DynSentence name="UPD_MKMTBAT_BONID">
|
|
<Sentence>
|
|
UPDATE MKMTBAT
|
|
SET BON_ID = ?,
|
|
STS = ?
|
|
WHERE BAT_NO = ?
|
|
AND BAT_SEQ = ?
|
|
AND STS = '0'
|
|
</Sentence>
|
|
<Fields>BON_ID|STS|BAT_NO|BAT_SEQ|</Fields>
|
|
</DynSentence>
|
|
|
|
<!--查询产品信息-->
|
|
<DynSentence name="QRY_MKMTPINF_INF">
|
|
<Sentence>
|
|
SELECT OMBL_MAX_CNT, PERD_TYP, PRED, PRD_NM, ISS_ID_TYP, ISS_BILL_AMT,
|
|
EFF_DT_CNT, CLR_TYP, USE_BEG_REF_AMT, USE_END_REF_AMT, PRD_TYP,
|
|
ISS_CUR_CNT, ISS_MAX_CNT, ISS_DLY_LMT, ISS_DLY_CNT, ULT_CLR_DT,
|
|
LST_ISS_DT, ISS_PCT, ID_NO_FLG
|
|
FROM MKMTPINF
|
|
WHERE PRD_ID = ?
|
|
AND MKT_ID = ?
|
|
AND ISS_ID = ?
|
|
</Sentence>
|
|
<Fields>PRD_ID|MKT_ID|ISS_ID|</Fields>
|
|
</DynSentence>
|
|
<Process>
|
|
<Set>CUR_DT=$GWA.TX_DT</Set> <!-- 获取当前系统日期 -->
|
|
<Set>CUR_TM=$GWA.TX_TM</Set> <!-- 获取当前系统时间 -->
|
|
<Set>CUR_DAY=SUBSTR($CUR_DT,5,4)</Set> <!-- 当前月份日期 -->
|
|
<Set>CUR_MMDDMIHHSS=STRCAT($CUR_DAY,$CUR_TM)</Set>
|
|
|
|
<!--必输项检查-->
|
|
<If condition="ISNULL($BOS_AMT)">
|
|
<Set>MSG_CD=MKM40131</Set>
|
|
<Set>MSG_DAT=电子券面额不能为空</Set>
|
|
<Set>ISS_FAIL_INF=$MSG_DAT</Set>
|
|
<Set>STS=2</Set>
|
|
|
|
<!-- 登记原因说明 -->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_INF"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--更新红包批量表中状态-->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_STS"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM00000" />
|
|
<Arg name="MsgDat" value="交易成功"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!-- 查询批量信息 -->
|
|
<Exec func="PUB:ReadRecord">
|
|
<Arg name="SqlCmd" value="QRY_MKMTBAT_INF"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>MSG_CD=MKM22019</Set>
|
|
<Set>MSG_DAT=券别发放信息有误</Set>
|
|
<Set>ISS_FAIL_INF=$MSG_DAT</Set>
|
|
<Set>STS=2</Set>
|
|
|
|
<!-- 登记原因说明 -->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_INF"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--更新红包批量表中状态-->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_STS"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM00000" />
|
|
<Arg name="MsgDat" value="交易成功"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!-- 判断是否为折扣发行电子券 -->
|
|
<If condition="AND(IS_EQUAL_STRING($CAP_TYP,3),IS_EQUAL_STRING($MKT_BON_FLG,2))">
|
|
<Set>PCT_BON_FLG=Y</Set>
|
|
</If>
|
|
|
|
<!-- 单笔交易状态初始值(1:成功 2:失败) -->
|
|
<Set>STS=1</Set>
|
|
|
|
<If condition="OR(IS_NOEQUAL_STRING($PCT_BON_FLG,Y),IS_EQUAL_STRING($ISS_PCT_TYP,2))"> <!-- 非转让市场折扣发行电子券需要检查用户信息 -->
|
|
<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)=1">
|
|
<Set>MBL_NO=@O.MBL_NO</Set>
|
|
<Set>USR_NO=@O.USR_NO</Set>
|
|
<Set>USR_PROV=@O.USR_PROV</Set>
|
|
<Set>USR_CITY=@O.USR_CITY</Set>
|
|
<Set>USR_CITY_NM=DELBOTHSPACE(@O.USR_CITY_NM)</Set>
|
|
|
|
<!-- @add 2012-11-9 -->
|
|
<!-- 调用手机号段查询 -->
|
|
<Set>GMNS_INP.MBL_NO=$MBL_NO</Set>
|
|
<Exec func="CMM:GetMobilNoSegment">
|
|
<Arg name="_I_INP_DAT" value="GMNS_INP"/>
|
|
<Arg name="_O_OUT_DAT" value="GMNS_OUT"/>
|
|
</Exec>
|
|
<If condition="IS_SUCC(@O.MSG_CD)=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD"/>
|
|
</Exec>
|
|
<Set>MSG_CD=@O.MSG_CD</Set>
|
|
<Set>MSG_DAT=@O.MSG_DAT</Set>
|
|
<Set>ISS_FAIL_INF=非中国移动手机号码</Set>
|
|
<Set>STS=2</Set>
|
|
|
|
<!-- 登记原因说明 -->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_INF"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--更新红包批量表中状态-->
|
|
<Exec func="PUB:ExecSql" >
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_STS"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM00000" />
|
|
<Arg name="MsgDat" value="交易成功"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
<!-- end -->
|
|
|
|
</If>
|
|
<Else>
|
|
<Set>OPEN_USR_FLG=N</Set>
|
|
</Else>
|
|
</If>
|
|
|
|
<!-- 未开户或转让市场折扣发行类电子券需查询号段信息 -->
|
|
<If condition="OR(IS_EQUAL_STRING($OPEN_USR_FLG,N),IS_EQUAL_STRING($ISS_PCT_TYP,1))">
|
|
<!-- 调用手机号段查询 -->
|
|
<Set>GMNS_INP.MBL_NO=$MBL_NO</Set>
|
|
<Exec func="CMM:GetMobilNoSegment">
|
|
<Arg name="_I_INP_DAT" value="GMNS_INP"/>
|
|
<Arg name="_O_OUT_DAT" value="GMNS_OUT"/>
|
|
</Exec>
|
|
<If condition="IS_SUCC(@O.MSG_CD)=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD"/>
|
|
</Exec>
|
|
<Set>MSG_CD=@O.MSG_CD</Set>
|
|
<Set>MSG_DAT=@O.MSG_DAT</Set>
|
|
<Set>ISS_FAIL_INF=非中国移动手机号码</Set>
|
|
<Set>STS=2</Set>
|
|
|
|
<!-- 登记原因说明 -->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_INF"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--更新红包批量表中状态-->
|
|
<Exec func="PUB:ExecSql" >
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_STS"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM00000" />
|
|
<Arg name="MsgDat" value="交易成功"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
<Set>USR_PROV=@O.GMNS_OUT.PROV_CD</Set>
|
|
<Set>USR_CITY=@O.GMNS_OUT.CITY_CD</Set>
|
|
<Set>USR_CITY_NM=@O.GMNS_OUT.CITY_NM</Set>
|
|
<If condition="IS_EQUAL_STRING($ISS_PCT_TYP,1)"> <!-- 转让市场内发行折扣电子券需要设置特殊用户号 -->
|
|
<Set>USR_NO=#PCT_BON_USR_NO</Set>
|
|
</If>
|
|
<Else>
|
|
<Set>USR_NO=0</Set>
|
|
</Else>
|
|
</If>
|
|
|
|
|
|
<!--查询产品信息-->
|
|
<Exec func="PUB:ReadRecord">
|
|
<Arg name="SqlCmd" value="QRY_MKMTPINF_INF"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>MSG_CD=MKM20805</Set>
|
|
<Set>MSG_DAT=不存在该券别编号或该编号与活动编号不匹配</Set>
|
|
<Set>ISS_FAIL_INF=$MSG_DAT</Set>
|
|
<Set>STS=2</Set>
|
|
|
|
<!-- 登记原因说明 -->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_INF"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--更新红包批量表中状态-->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_STS"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM00000" />
|
|
<Arg name="MsgDat" value="交易成功"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!-- 检查电子券面额是否合法 -->
|
|
<If condition="IS_EQUAL_STRING($PRD_TYP,0)">
|
|
<If condition="DOUBLECMP($BON_AMT,le,0)">
|
|
<Set>MSG_CD=MKM22053</Set>
|
|
<Set>MSG_DAT=电子券面额非法</Set>
|
|
<Set>ISS_FAIL_INF=电子券面额非法</Set>
|
|
<Set>STS=2</Set>
|
|
|
|
<!-- 登记原因说明 -->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_INF"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--更新红包批量表中状态-->
|
|
<Exec func="PUB:ExecSql" >
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_STS"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22053" />
|
|
<Arg name="MsgDat" value="代金券金额与券别中金额不符"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM00000" />
|
|
<Arg name="MsgDat" value="交易成功"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
</If>
|
|
|
|
<!-- 检查代金券面额是否合法 -->
|
|
<If condition="IS_EQUAL_STRING($PRD_TYP,1)">
|
|
<If condition="DOUBLECMP($BON_AMT,ne,$ISS_BILL_AMT)">
|
|
<Set>MSG_CD=MKM22053</Set>
|
|
<Set>MSG_DAT=代金券金额与券别中金额不符</Set>
|
|
<Set>ISS_FAIL_INF=代金券金额与券别中金额不符</Set>
|
|
<Set>STS=2</Set>
|
|
|
|
<!-- 登记原因说明 -->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_INF"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--更新红包批量表中状态-->
|
|
<Exec func="PUB:ExecSql" >
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_STS"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22053" />
|
|
<Arg name="MsgDat" value="代金券金额与券别中金额不符"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM00000" />
|
|
<Arg name="MsgDat" value="交易成功"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
</If>
|
|
|
|
<!-- 查询发行方中发放对象限制类型 -->
|
|
<Exec func="PUB:ReadRecord">
|
|
<Arg name="SqlCmd" value="QRY_MKMTISS_USR"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM41329"/>
|
|
<Arg name="MsgDat" value="系统忙,请稍后再试"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!-- 本省用户 -->
|
|
<If condition="IS_EQUAL_STRING($USR_LMT_TYP,1)">
|
|
<If condition="IS_NOEQUAL_STRING($ISS_PROV,$USR_PROV)">
|
|
<Set>MSG_CD=MKM22050</Set>
|
|
<Set>ISS_FAIL_INF=用户不在该活动指定的发放范围内</Set>
|
|
<Set>STS=2</Set>
|
|
|
|
<!-- 登记原因说明 -->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_INF"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--更新红包批量表中状态-->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_STS"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM00000" />
|
|
<Arg name="MsgDat" value="交易成功"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
</If>
|
|
|
|
<!-- 多省市用户 -->
|
|
<If condition="IS_EQUAL_STRING($USR_LMT_TYP,2)">
|
|
<!-- 查询该用户归属省市是否在范围内 -->
|
|
<Exec func="PUB:ReadRecord">
|
|
<Arg name="SqlCmd" value="QRY_MKMTIAREA"/>
|
|
</Exec>
|
|
<If condition="IS_NOEQUAL_STRING($ISEXISTS,Y)">
|
|
<Set>MSG_CD=MKM22050</Set>
|
|
<Set>ISS_FAIL_INF=用户不在该活动指定的发放范围内</Set>
|
|
<Set>STS=2</Set>
|
|
|
|
<!-- 登记原因说明 -->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_INF"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--更新红包批量表中状态-->
|
|
<Exec func="PUB:ExecSql" >
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_STS"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<!-- @msg更新红包批量表失败 -->
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM00000" />
|
|
<Arg name="MsgDat" value="交易成功"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
</If>
|
|
|
|
<!-- 指定用户 -->
|
|
<If condition="IS_EQUAL_STRING($USR_LMT_TYP,3)">
|
|
<!-- 查询该用户是否在指定的用户范围内 -->
|
|
<Exec func="PUB:ReadRecord">
|
|
<Arg name="SqlCmd" value="QRY_MKMTIUSR_INF"/>
|
|
</Exec>
|
|
<If condition="IS_NOEQUAL_STRING($ISEXISTS,Y)">
|
|
<Set>MSG_CD=MKM22050</Set>
|
|
<Set>ISS_FAIL_INF=用户不在该活动指定的发放范围内</Set>
|
|
<Set>STS=2</Set>
|
|
|
|
<!-- 登记原因说明 -->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_INF"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--更新红包批量表中状态-->
|
|
<Exec func="PUB:ExecSql" >
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_STS"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<!-- @msg更新红包批量表失败 -->
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM00000" />
|
|
<Arg name="MsgDat" value="交易成功"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
</If>
|
|
|
|
<If condition="DOUBLECMP($BON_AMT,lt,0.00)">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM41298" />
|
|
<Arg name="MsgDat" value="红包金额非法"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!-- 查询活动表 -->
|
|
<Exec func="PUB:ReadRecord">
|
|
<Arg name="SqlCmd" value="QRY_MKMTACT_LINF"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!-- 查询发行方表 -->
|
|
<Exec func="PUB:ReadRecord">
|
|
<Arg name="SqlCmd" value="QRY_MKMTISS_USR"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--检查单一手机号最多领用张数-->
|
|
<Call function="CHK_OMblMaxCnt_BAT" package="MKM">
|
|
<Input>MBL_NO|USR_NO|MKT_ID|ISS_ID|ISS_EFF_DT|ISS_EXP_DT|ISSOMBL_MAX_CNT|ISSPERD_TYP|ISSPRED|PRD_ID|OMBL_MAX_CNT|PERD_TYP|PRED|CUR_DT|ID_NO_FLG|</Input>
|
|
<Output>MSG_CD|MSG_DAT|</Output>
|
|
</Call>
|
|
<If condition="IS_SUCC(@O.MSG_CD)=0">
|
|
<Set>MSG_CD=@O.MSG_CD</Set>
|
|
<Set>MSG_DAT=@O.MSG_DAT</Set>
|
|
<Set>ISS_FAIL_INF=$MSG_DAT</Set>
|
|
<Set>STS=2</Set>
|
|
|
|
<!-- 登记原因说明 -->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_INF"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--更新红包批量表中状态-->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_STS"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM00000" />
|
|
<Arg name="MsgDat" value="交易成功"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--生成红包编号,并登记相关信息-->
|
|
<Set>BUS_CNL=$GWA.BUS_CNL</Set>
|
|
<Set>SYS_CNL=$GWA.BUS_CNL</Set>
|
|
<Call function="ISSBONVCH_BAT" package="MKM">
|
|
<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>
|
|
<Set>MSG_CD=@O.MSG_CD</Set>
|
|
<Set>MSG_DAT=@O.MSG_DAT</Set>
|
|
<Set>ISS_FAIL_INF=$MSG_DAT</Set>
|
|
<Set>STS=2</Set>
|
|
|
|
<!-- 登记原因说明 -->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_INF"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--更新红包批量表中状态-->
|
|
<Exec func="PUB:ExecSql" >
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_STS"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM00000" />
|
|
<Arg name="MsgDat" value="交易成功"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!-- ISSBONVCH_REC 输出参数 -->
|
|
<Set>CR_AMT=@O.OUT_DAT.CR_AMT</Set>
|
|
<Set>PRD_TYP=@O.OUT_DAT.PRD_TYP</Set>
|
|
<Set>ISS_ID=@O.OUT_DAT.ISS_ID</Set>
|
|
<Set>ISS_TYP=@O.OUT_DAT.ISS_TYP</Set>
|
|
<Set>BON_ID=@O.OUT_DAT.BON_ID</Set>
|
|
<Set>EFF_DT=@O.OUT_DAT.EFF_DT</Set>
|
|
<Set>EXP_DT=@O.OUT_DAT.EXP_DT</Set>
|
|
<If condition="IS_EQUAL_STRING($STS,1)"> <!-- 若状态为发放成功 -->
|
|
<If condition="IS_EQUAL_STRING($ISS_PCT_TYP,1)"> <!-- 转让市场发行的折扣电子券需要同步转让市场 -->
|
|
<!-- 同步单张电子券转让信息-->
|
|
<Set>INP_DAT.OPR_TYP=SS</Set>
|
|
<Set>INP_DAT.BON_ID=$BON_ID</Set> <!-- modify by tan_wj -->
|
|
<Set>INP_DAT.USR_MBL_NO=$MBL_NO</Set>
|
|
<Set>INP_DAT.USR_NO=$USR_NO</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>
|
|
</If>
|
|
<Else> <!-- 非转让市场折扣发行类电子券需要发放短信通知 -->
|
|
<Set>ISS_SMS_TYP=1</Set> <!-- 领用下发短信 -->
|
|
<!-- 登记每分钟发放1000笔 -->
|
|
<Set>ADD_TM=DIV($BAT_SEQ,1000)</Set>
|
|
<Set>MO_STR_TM=SUBSTR(CALCTIME($CUR_MMDDMIHHSS,+,m,$ADD_TM),5,6)</Set>
|
|
<If condition="INTCMP($MO_STR_TM,gt,200000)">
|
|
<Set>MO_STR_TM=090000</Set>
|
|
</If>
|
|
<Set>MO_END_TM=210000</Set>
|
|
<!--调用ECAP发放短信-->
|
|
<Call function="SENDMSG" package="MKM">
|
|
<Output>MSG_CD|</Output>
|
|
</Call>
|
|
</Else>
|
|
</If>
|
|
|
|
<!--更新红包批量表中状态-->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_MKMTBAT_BONID"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM22022" />
|
|
<Arg name="MsgDat" value="更新红包批量表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="MKM00000" />
|
|
<Arg name="MsgDat" value="交易成功"/>
|
|
</Exec>
|
|
</Process>
|
|
</Function>
|
|
</Package> |