Rev 1946 | Rev 2289 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?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="in.shop2020.payment.persistence.PaymentMapper"><resultMap type="payment" id="paymentResult"><id property="id" column="id"/><collection property="attributes" javaType="ArrayList" column="id" ofType="paymentAttribute" select="getAttributesForPayment"/></resultMap><insert id="insertPayment" parameterType="payment" useGeneratedKeys="true" keyProperty="id">INSERT INTO payment(gatewayId, userId, merchantTxnId, amount, status, initTimestamp)VALUES(#{gatewayId}, #{userId}, #{merchantTxnId}, #{amount}, #{status}, now())</insert><insert id="insertPaymentAttribute" parameterType="map">INSERT INTO paymentattribute(payment_id, name, value)VALUES(#{paymentId}, #{name}, #{value})ON DUPLICATE KEY UPDATE value=values(value);</insert><update id="updatePayment" parameterType="payment">UPDATE paymentSET gatewayPaymentId = #{gatewayPaymentId},sessionId = #{sessionId},gatewayTxnStatus = #{gatewayTxnStatus},description = #{description},gatewayTxnId = #{gatewayTxnId},authCode = #{authCode},referenceCode = #{referenceCode},errorCode = #{errorCode},status = #{status},gatewayTxnDate = #{gatewayTxnDate},successTimestamp = #{successTimestamp},errorTimestamp = #{errorTimestamp}WHERE id=#{id}</update><sql id="selectAllPaymentFields">SELECT * FROM payment</sql><select id="getPayment" parameterType="int" resultMap="paymentResult"><include refid="selectAllPaymentFields"/>WHERE id=#{id}</select><select id="getPaymentForTxn" parameterType="int" resultMap="paymentResult">SELECT * FROM paymentWHERE merchantTxnId=#{merchantTxnId}</select><sql id="getPaymentsWhereClause"><if test="fromTime != ''">initTimestamp >= #{fromTime}</if><if test="toTime != '' && status == 0">AND initTimestamp <= #{toTime}</if><if test="toTime != '' && status != 0">AND (errorTimestamp <= #{toTime} OR successTimestamp <= #{toTime})</if><if test="status != -1">AND status=#{status}</if><if test="gatewayId != 0">AND gatewayId = #{gatewayId}</if></sql><select id="getPayments" parameterType="map" resultMap="paymentResult">SELECT * FROM payment<where><include refid="getPaymentsWhereClause"/></where>ORDER BY id</select><select id="getPaymentsForUser" parameterType="map" resultMap="paymentResult">SELECT * FROM payment<where><include refid="getPaymentsWhereClause"/>AND userId=#{userId}</where>ORDER BY id</select><select id="getMinMaxPaymentAmount" resultType="hashmap">SELECT MIN(AMOUNT) MIN, MAX(AMOUNT) MAX from payment</select><select id="getAttributesForPayment" parameterType="int" resultType="paymentAttribute">SELECT * FROM paymentattribute where payment_id = #{id}</select></mapper>