| <?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.xzx.gc.pay.mapper.PayInfoMapper"> | 
|     <resultMap id="PayMap" type="com.xzx.gc.model.pay.PayInfoVo"> | 
|         <result column="pay_order_id" jdbcType="VARCHAR" property="payOrderId"/> | 
|         <result column="order_id" jdbcType="VARCHAR" property="orderId"/> | 
|         <result column="create_user_id" jdbcType="VARCHAR" property="createUserId"/> | 
|         <result column="account_id" jdbcType="VARCHAR" property="accountId"/> | 
|         <result column="create_time" jdbcType="VARCHAR" property="createTime"/> | 
|         <result column="pay_type" jdbcType="VARCHAR" property="payType"/> | 
|         <result column="open_id" jdbcType="VARCHAR" property="openId"/> | 
|     </resultMap> | 
|   | 
|     <resultMap id="AccountMap" type="com.xzx.gc.model.user.AccountVo"> | 
|         <result column="account_id" jdbcType="VARCHAR" property="accountId"/> | 
|         <result column="account_name" jdbcType="VARCHAR" property="accountName"/> | 
|         <result column="user_id" jdbcType="VARCHAR" property="userId"/> | 
|         <result column="pay_password" jdbcType="VARCHAR" property="payPassword"/> | 
|         <result column="freeze_money" jdbcType="VARCHAR" property="freezeMoney"/> | 
|         <result column="withdraw_money" jdbcType="VARCHAR" property="withdrawMoney"/> | 
|         <result column="overdraft_limit" jdbcType="VARCHAR" property="overdraftLimit"/> | 
|         <result column="lock_time" jdbcType="VARCHAR" property="lockTime"/> | 
|     </resultMap> | 
|   | 
|     <!-- 支付信息录入 --> | 
|     <insert id="payInfoAdd" parameterType="map"> | 
|         insert into xzx_pay_info(pay_order_id,order_id,create_user_id,money, | 
|         account_id,pay_type,open_id,status,create_time,fee) | 
|         values (#{payOrderId},#{orderId},#{createUserId},#{money}, | 
|         #{accountId},#{payType},#{openId},#{status},#{createTime},#{fee} ) | 
|     </insert> | 
|   | 
|     <insert id="payRequestInfoAdd" parameterType="map"> | 
|         insert into xzx_pay_request_info(pay_order_id,order_id,create_user_id,money, | 
|         account_id,pay_type,open_id,status,create_time,account_bind_id) | 
|         values (#{payOrderId},#{orderId},#{createUserId},#{money}, | 
|         #{accountId},#{payType},#{openId},#{status},#{createTime},#{accountBindId} ) | 
|     </insert> | 
|   | 
|     <!-- 查询我的环保金 --> | 
|     <select id="queryMyMoney" parameterType="map" resultMap="AccountMap"> | 
|         SELECT a.user_id,a.account_name,a.freeze_money,a.money,a.account_id, | 
|         a.withdraw_money,a.overdraft_limit,a.lock_time,a.pay_password | 
|         FROM xzx_account_info a | 
|         where del_flag=0 and is_prohibit='0' | 
|         <if test="userId!=null and userId!=''"> | 
|             and a.user_id=#{userId} | 
|         </if> | 
|         <if test="createUserId!=null and createUserId!=''"> | 
|             and a.user_id=#{createUserId} | 
|         </if> | 
|     </select> | 
|   | 
|   | 
|     <!-- 回收员支付环保金  订单创建人入账 --> | 
|     <update id="updateMyMoneyByOrder" parameterType="map"> | 
|         update xzx_account_info | 
|         set money = cast((cast(money as DECIMAL(9,2))+#{money}) as CHAR) | 
|         where user_id=#{userId} and del_flag=0 and is_prohibit='0' | 
|     </update> | 
|   | 
|     <!-- 支付信息查询 --> | 
|     <select id="queryPayInfo" parameterType="map" resultMap="PayMap"> | 
|         SELECT a.pay_order_id,a.order_id,a.money,a.account_id, | 
|         a.pay_type,a.create_time,a.create_user_id,a.status,a.fee | 
|         FROM xzx_pay_info a | 
|         where 1=1 | 
|         <if test="createUserId!=null and createUserId!=''"> | 
|             and a.create_user_id=#{createUserId} | 
|         </if> | 
|         <if test="payOrderId!=null and payOrderId!=''"> | 
|             and a.pay_order_id=#{payOrderId} | 
|         </if> | 
|   | 
|     </select> | 
|   | 
|     <select id="queryPayRequestInfo" parameterType="map" resultMap="PayMap"> | 
|         SELECT a.pay_order_id,a.order_id,a.money,a.account_id, | 
|         a.pay_type,a.create_time,a.create_user_id,a.status | 
|         FROM xzx_pay_request_info a | 
|         where 1=1 | 
|         <if test="createUserId!=null and createUserId!=''"> | 
|             and a.create_user_id=#{createUserId} | 
|         </if> | 
|         <if test="payOrderId!=null and payOrderId!=''"> | 
|             and a.pay_order_id=#{payOrderId} | 
|         </if> | 
|   | 
|     </select> | 
|   | 
|     <!-- 提现次数查询(一天只能提现一次) --> | 
|     <select id="queryWithdrawInfo" parameterType="map" resultMap="PayMap"> | 
|         SELECT a.pay_order_id,a.order_id,a.money, | 
|         a.pay_type,a.create_time,a.account_id | 
|         FROM xzx_pay_request_info a | 
|         where a.create_user_id=#{createUserId} and a.pay_type='4' and (status!=2 or  pay_flag!=3) | 
|         and DATE_FORMAT(a.create_time,'%Y-%m-%d') =current_date | 
|     </select> | 
|     <!--提现记录审核 取状态不为2的记录--> | 
|     <insert id="withdrawInfoVerify" parameterType="map"> | 
|         insert into xzx_pay_info(pay_order_id,order_id,create_user_id,money, | 
|         account_id,pay_type,open_id,status,create_time) | 
|         select pay_order_id,order_id,create_user_id,money, | 
|         account_id,pay_type,open_id,"3",create_time | 
|         from xzx_pay_request_info | 
|         where pay_order_id=#{payOrderId} and status!="2" | 
|     </insert> | 
|   | 
|     <!--提现记录更新为审核状态  2为审核--> | 
|     <update id="updateWithdrawStatus" parameterType="map"> | 
|         update xzx_pay_request_info set status=#{status} | 
|         where pay_order_id=#{payOrderId} | 
|     </update> | 
|   | 
|     <!-- 充值记录更新为2(已支付) --> | 
|     <update id="updatePayInfoStatus" parameterType="map"> | 
|         update xzx_pay_info set status=#{status} | 
|         where pay_order_id=#{payOrderId} | 
|     </update> | 
|   | 
|     <select id="findForWeekByUserIdAndType" resultType="com.xzx.gc.entity.PayInfo"> | 
|         SELECT | 
|             * | 
|         FROM | 
|             xzx_pay_info | 
|         WHERE | 
|             YEARWEEK( date_format( create_time, '%Y-%m-%d' ), 1 ) = YEARWEEK( now( ), 1 ) | 
|             AND create_user_id = #{userId} | 
|             AND pay_type = #{payType} | 
|             AND (`status` =2 or status=5) | 
|     </select> | 
|     <select id="findPayMethod" resultType="com.xzx.gc.entity.AccountBindInfo"> | 
|         SELECT | 
|             b.account_type AS accountType, | 
|             b.account_number AS accountNumber, | 
|             b.id, | 
|             b.account_name AS accountName, | 
|             b.bank_name AS bankName | 
|         FROM | 
|             xzx_pay_request_info a | 
|             INNER JOIN xzx_account_bind_info b ON a.account_bind_id = b.id | 
|         WHERE | 
|             a.pay_type = '4' | 
|             AND a.create_user_id = #{userId} | 
|             AND b.del_flag = 0 | 
|         ORDER BY | 
|             a.create_time DESC  limit 1 | 
|     </select> | 
|   | 
|     <insert id="addPayInfo"> | 
|         INSERT INTO `xzx_pay_info` (`pay_order_id`, `order_id`, `create_user_id`, `money`, | 
|                                     `account_id`, `pay_type`, `open_id`, `status`, `create_time`, `check_num`, `pay_img`, `pay_time`) | 
|         VALUES (#{payOrderId}, NULL, #{createUserId}, #{money}, #{accountId}, | 
|                                '1', NULL, #{status}, SYSDATE(), NULL, #{payImg}, #{payTime}) | 
|     </insert> | 
|   | 
|     <select id="queryRechangeMoney" resultType="java.lang.String"> | 
|         select sum(k.money) from ( select IFNULL(sum(a.money),0) as money | 
|         from xzx_pay_info a | 
|         left join xzx_user_info b on a.create_user_id=b.user_id | 
|         left join xzx_user_other_info c on a.create_user_id=c.user_id | 
|         where 1=1 | 
|         <if test="status!= null and status.size() != 0"> | 
|             and a.status in | 
|             <foreach collection="status" index="index" item="id" open="(" separator="," close=")"> | 
|                 #{id} | 
|             </foreach> | 
|         </if> | 
|         <if test="payType!= null and payType!=''"> | 
|             and a.pay_type=#{payType} | 
|         </if> | 
|         <if test="startTime!= null and startTime!=''"> | 
|             and a.create_time<![CDATA[>= ]]>#{startTime} | 
|         </if> | 
|         <if test="endTime!= null and endTime!=''"> | 
|             and a.create_time<![CDATA[<= ]]>#{endTime} | 
|         </if> | 
|         <if test="partnerIds!= null and partnerIds.size() != 0"> | 
|             and c.partner_id in | 
|             <foreach collection="partnerIds" index="index" item="id" open="(" separator="," close=")"> | 
|                 #{id} | 
|             </foreach> | 
|         </if> | 
|         )k | 
|     </select> | 
|   | 
|   | 
|     <select id="queryRechangeApiList" parameterType="com.xzx.gc.model.admin.MoneyModel" resultType="com.xzx.gc.model.admin.MoneyModel"> | 
|         select a.pay_order_id, a.create_time, a.money, IFNULL(b.nick_name,c.name) as nickName, | 
|         b.user_type,IFNULL(b.mobile_phone,c.mobile_phone) as mobilePhone,a.status, b.name,a.pay_time,a.create_user_id as createUserId, | 
|         IFNULL((select d.role_name from xzx_user_role_info d where role_code= c.user_type limit 1),'普通用户') as roleName, | 
|         e.partner_name as partnerName,e.mobile_phone as partnerPhone,e.partner_type as partnerType,a.pay_img,a.unpass_reason,a.fee,c.del_flag as delFlag | 
|         from xzx_pay_info a | 
|         left join xzx_user_info b on a.create_user_id=b.user_id | 
|         left join xzx_user_other_info c on a.create_user_id=c.user_id | 
|         left join xzx_city_partner e on a.create_user_id=e.user_id | 
|         where 1=1 | 
|         <if test="status!= null and status != ''"> | 
|             and a.status=#{status} | 
|         </if> | 
|         <if test="payType!= null and payType!=''"> | 
|             and a.pay_type=#{payType} | 
|         </if> | 
|         <if test="nickName!= null and nickName!=''"> | 
|             and (from_base64(b.nick_name) like concat("%",#{nickName},"%") or b.mobile_phone like concat("%",#{nickName},"%") or c.mobile_phone like concat("%",#{nickName},"%") | 
|             or e.mobile_phone like concat("%",#{nickName},"%") or e.partner_name like concat("%",#{nickName},"%")  or c.name like concat("%",#{nickName},"%") ) | 
|         </if> | 
|         <if test="name!= null and name != ''"> | 
|             and b.name=#{name} | 
|         </if> | 
|         <if test="startTime!= null and startTime!=''"> | 
|             and a.create_time<![CDATA[>= ]]>#{startTime} | 
|         </if> | 
|         <if test="endTime!= null and endTime!=''"> | 
|             and a.create_time<![CDATA[<= ]]>#{endTime} | 
|         </if> | 
|         <if test="partnerIds!= null and partnerIds.size() != 0"> | 
|             and c.partner_id in | 
|             <foreach collection="partnerIds" index="index" item="id" open="(" separator="," close=")"> | 
|                 #{id} | 
|             </foreach> | 
|         </if> | 
|   | 
|         order by a.create_time desc | 
|     </select> | 
|   | 
|   | 
|     <select id="queryRechangeApiDetail" parameterType="com.xzx.gc.model.admin.PayInfoModel" resultType="com.xzx.gc.model.admin.PayInfoModel"> | 
|         select a.*, | 
|             b.nick_name as nickName, | 
|             b.user_type as userType, | 
|             b.mobile_phone as mobilePhone, | 
|             IFNULL((select d.role_name from xzx_user_role_info d where d.role_code= f.user_type),'普通用户') as roleName, | 
|             IFNULL(f.name,b.name) as name | 
|         from xzx_pay_info a | 
|             LEFT JOIN xzx_user_info b ON a.create_user_id = b.user_id | 
|             LEFT JOIN xzx_user_other_info f ON a.create_user_id = f.user_id | 
|         where a.pay_order_id=#{payOrderId} | 
|               and a.create_user_id = b.user_id | 
|     </select> | 
|   | 
|   | 
|     <select id="queryPayInfoById" resultType="com.xzx.gc.model.admin.PayInfoModel"> | 
|         select * | 
|         from xzx_pay_info | 
|         where pay_order_id = #{payOrderId} | 
|     </select> | 
|   | 
|     <update id="updatePayInfoPass"> | 
|         update xzx_pay_info set | 
|         status=#{status} | 
|         <if test="unpassReason != null and unpassReason != ''"> | 
|             , unpass_reason=#{unpassReason} | 
|         </if> | 
|         where pay_order_id=#{payOrderId} | 
|     </update> | 
|   | 
|     <select id="scoreList" resultType="com.xzx.gc.model.pay.PayScoreResPerDTO"> | 
|         SELECT | 
|             a.pay_order_id, | 
|             a.create_time, | 
|             a.money, | 
|             a.`status`, | 
|             b.channel_type, | 
|             b.role_type, | 
|             b.new_plat_score, | 
|             c.rela_name, | 
|             c.rela_phone | 
|         FROM | 
|             xzx_pay_info a | 
|             INNER JOIN xzx_account_score_log b ON a.pay_order_id = b.pay_id | 
|             LEFT JOIN xzx_order_info c ON b.order_id = c.order_id | 
|             LEFT JOIN xzx_user_info d on b.create_user_id=d.user_id | 
|         WHERE | 
|             a.pay_type = '17' | 
|             <if test="status != null and status != ''"> | 
|                 and a.status=#{status} | 
|             </if> | 
|             <if test="partnerId != null and partnerId != ''"> | 
|                 and locate(#{partnerId} ,d.partner_id)>0 | 
|             </if> | 
|             <if test="channelType != null"> | 
|               and b.channel_type=#{channelType} | 
|             </if> | 
|             <if test="roleType != null"> | 
|                 and b.role_type=#{roleType} | 
|             </if> | 
|         order by a.create_time desc | 
|     </select> | 
|   | 
|   | 
| </mapper> |