<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace="com.nantian.sms.dao.mapper.CoreOnLineTransactionMapper">
<!--@author:libing -->
<!-- <resultMap id="BaseResultMap" type="com.nantian.sms.dao.model.CoreDataRealtime">
<id column="uniqueNo" property="S21NUM" jdbcType="DECIMAL" /> <result column="s21type"
property="S21TYPE" jdbcType="CHAR" /> <result column="s21txdt" property="S21TXDT"
jdbcType="DATE" /> <result column="s21ptxsq" property="S21PTXSQ" jdbcType="DECIMAL"
/> <result column="s21ctxsq" property="S21CTXSQ" jdbcType="DECIMAL" /> <result
column="s21acct" property="S21ACCT" jdbcType="CHAR" /> <result column="s21accs"
property="S21ACCS" jdbcType="CHAR" /> <result column="s21crdnum" property="S21CRDNUM"
jdbcType="CHAR" /> <result column="s21kzflg" property="S21KZFLG" jdbcType="CHAR"
/> <result column="s21ptxcd" property="S21PTXCD" jdbcType="CHAR" /> <result
column="S21ptxnam" property="S21PTXNAM" jdbcType="CHAR" /> <result column="s21sbno"
property="S21SBNO" jdbcType="CHAR" /> <result column="s21acctyp" property="S21ACCTYP"
jdbcType="CHAR" /> <result column="s21txtm" property="S21TXTM" jdbcType="TIME"
/> <result column="s21amt" property="S21AMT" jdbcType="DECIMAL" /> <result
column="s21bale" property="S21BALE" jdbcType="DECIMAL" /> <result column="s21crdrfg"
property="S21CRDRFG" jdbcType="CHAR" /> <result column="s21brcod" property="S21BRCOD"
jdbcType="CHAR" /> <result column="s21rmks" property="S21RMKS" jdbcType="CHAR"
/> <result column="s21othdtl" property="S21OTHDTL" jdbcType="CHAR" /> </resultMap>
查询核心库实时表CoreDataRealtime <select id="getCoreDataRealtime" resultType="com.nantian.sms.dao.model.CoreDataRealtime"
parameterType="String"> select cast(year(s21txdt)*10000+month(s21txdt)*100+day(s21txdt))*100000000+s21num
as uniqueNo ,S21TYPE,S21TXDT,S21PTXSQ,S21CTXSQ,S21ACCT,S21ACCS, S21CRDNUM,S21KZFLG,S21PTXCD,S21PTXNAM,S21SBNO,S21ACCTYP,
S21TXTM,S21AMT,S21BALE,S21CRDRFG,S21BRCOD,S21RMKS,S21OTHDTL from SMSLIB.SMFM21
where cast(year(s21txdt)*10000+month(s21txdt)*100+day(s21txdt))*100000000+s21num
> #{cursor} order by s21txdt,s21num fetch first #{pageSize} rows only </select> -->
<!-- jianjun.xue测试方法 -->
<resultMap id="BaseResultMap"
type="com.nantian.sms.dao.model.CoreDataRealtime">
<id column="uniqueNo" property="S21NUM" jdbcType="DECIMAL" />
<result column="s21type" property="S21TYPE" jdbcType="CHAR" />
<result column="s21txdt" property="S21TXDT" jdbcType="DATE" />
<result column="s21ptxsq" property="S21PTXSQ"
jdbcType="DECIMAL" />
<result column="s21ctxsq" property="S21CTXSQ"
jdbcType="DECIMAL" />
<result column="s21acct" property="S21ACCT" jdbcType="CHAR" />
<result column="s21accs" property="S21ACCS" jdbcType="CHAR" />
<result column="s21crdnum" property="S21CRDNUM" jdbcType="CHAR" />
<result column="s21kzflg" property="S21KZFLG" jdbcType="CHAR" />
<result column="s21ptxcd" property="S21PTXCD" jdbcType="CHAR" />
<result column="S21ptxnam" property="S21PTXNAM" jdbcType="CHAR" />
<result column="s21sbno" property="S21SBNO" jdbcType="CHAR" />
<result column="s21acctyp" property="S21ACCTYP" jdbcType="CHAR" />
<result column="s21txtm" property="S21TXTM" jdbcType="TIME" />
<result column="s21amt" property="S21AMT" jdbcType="DECIMAL" />
<result column="s21bale" property="S21BALE" jdbcType="DECIMAL" />
<result column="s21crdrfg" property="S21CRDRFG" jdbcType="CHAR" />
<result column="s21brcod" property="S21BRCOD" jdbcType="CHAR" />
<result column="s21rmks" property="S21RMKS" jdbcType="CHAR" />
<result column="s21othdtl" property="S21OTHDTL" jdbcType="CHAR" />
</resultMap>
<!-- 查询核心库实时表CoreDataRealtime -->
<select id="getCoreDataRealtimeByXjj"
resultType="com.nantian.sms.dao.model.CoreDataRealtime"
parameterType="String">
select * from db2
</select>
<!-- 短信签约表查询 -->
<select id="selectSignMsg" resultType="map">
select
cardNum,customName,idCard,opertionId,orgNum,mobile,bankServiceType,serviceType,bankProduct
from b_signmsg where cardNum=#{cardOrAccount}
</select>
<!-- 微信签约表查询 -->
<select id="selectSignWechat" resultType="map">
select cardType,cardNum,regFlag,regTime from
b_signwechat where cardNum=#{cardOrAccount} and regFlag="0";
</select>
<!-- 其他签约表查询 -->
<select id="selectSignOther" resultType="map">
select
sysCusNum,acctName,cardNum,acctType,cardType,aorcFlag,opNum,signType,orgNum,regTime,interceptionStartTime,
interceptionEndTime,rwSerialno,Tel from b_signother where
cardNum==#{cardOrAccount}
</select>
<!--往失败次数表b_advancecontrol中插入数据 -->
<insert id="saveAdvancecontrol" parameterType="map">
insert into b_advancecontrol
<foreach collection="advancecontrol.keys" item="key" open="(" close=")" separator=",">
${key}
</foreach>
values
<foreach collection="advancecontrol.keys" item="key" open="(" close=")" separator=",">
#{advancecontrol[${key}]}
</foreach>
</insert>
<!-- 首次查询失败次数表的失败次数,返回null值 -->
<select id="findAdvancecontrolFailures" resultType="INTEGER">
<!-- cardNumDB2为核心库DB2中的卡号/账号(已合并) -->
select failures from b_advancecontrol where failDate=#{transDate} and
cardNum=#{cardOrAccount}
and transChannelCode=#{transChannelCode} and
errorTypeCode=#{errorTypeCode}
</select>
<!-- 如果失败次数表中已记录失败次数,修改失败次数 -->
<update id="secondUpdateAdvancecontrolFailures">
update b_advancecontrol set failures=(failures+1)
where failDate=#{transDate} and cardNum=#{cardOrAccount}
and
transChannelCode=#{transChannelCode} and
errorTypeCode=#{errorTypeCode}
</update>
<!-- 失败次数达到四次存入短信发送表 -->
<insert id="failuresSaveSendMsgB" parameterType="map" >
insert into b_sendmsgb
<foreach collection="advancecontrol.keys" item="key" open="(" close=")" separator=",">
${key}
</foreach>
values
<foreach collection="advancecontrol.keys" item="key" open="(" close=")" separator=",">
#{advancecontrol[${key}]}
</foreach>
</insert>
<!-- 短信签约存入短信发送表 -->
<insert id="signMsgInsertSendMsgB" parameterType="map" >
insert into b_sendmsgb
<foreach collection="signMsgSaveSendMsgB.keys" item="key" open="(" close=")" separator=",">
${key}
</foreach>
values
<foreach collection="signMsgSaveSendMsgB.keys" item="key" open="(" close=")" separator=",">
#{signMsgSaveSendMsgB[${key}]}
</foreach>
</insert>
<!-- 微信签约存入报文发送表 -->
<insert id="signWechatInsertSendPacketMsg">
insert into b_sendpacketmsg
<foreach collection="signWechatSaveSendPacketMsg.keys" item="key" open="(" close=")" separator=",">
${key}
</foreach>
values
<foreach collection="signWechatSaveSendPacketMsg.keys" item="key" open="(" close=")" separator=",">
#{signWechatSaveSendPacketMsg[${key}]}
</foreach>
</insert>
<!-- 其他签约存入报文发送表 -->
<insert id="signOtherInsertSendPacketMsg">
insert into b_sendpacketmsg
<foreach collection="nullMobilePhone.keys" item="key" open="(" close=")" separator=",">
${key}
</foreach>
values
<foreach collection="nullMobilePhone.keys" item="key" open="(" close=")" separator=",">
#{nullMobilePhone[${key}]}
</foreach>
</insert>
<!-- 云闪付存入报文发送表 -->
<insert id="cloudFlashoverInsertSendPacketMsg">
insert into b_sendpacketmsg
<foreach collection="cloudInsertSendPacketMsg.keys" item="key" open="(" close=")" separator=",">
${key}
</foreach>
values
<foreach collection="cloudInsertSendPacketMsg.keys" item="key" open="(" close=")" separator=",">
#{cloudInsertSendPacketMsg[${key}]}
</foreach>
</insert>
<!-- 查询字典表中dictionaryVaule值 -->
<select id="selectDictionaryVaule" resultType="map">
select dictionaryVaule from s_dictionary where dictionaryKey="online_acctOnlyFlag"
</select>
<!-- 更新字典表中的dictionaryVaule -->
<update id="updateDictionaryVaule" >
update s_dictionary set dictionaryVaule=#{thisAcctOnlyFlag} where dictionaryKey="online_acctOnlyFlag"
</update>
</mapper>