|
|
<?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.example.demo.mapper.cash.CashCollectionMapper">
<insert id="add" parameterType="com.example.demo.domain.entity.CashRecord" useGeneratedKeys="true" keyProperty="id"> insert into cash_record_collection(order_type,jwcode,name,market,activity, order_code,goods_name,good_num,num_unit,permanent_gold,free_gold, payment_currency,payment_amount,received_market, pay_type,pay_time,status,submitter_id,submitter_market, voucher,remark) values(#{orderType},#{jwcode},#{name},#{market},#{activity}, #{orderCode},#{goodsName},#{goodNum},#{numUnit},#{permanentGold},#{freeGold},#{paymentCurrency}, #{paymentAmount},#{receivedMarket},#{payType},#{payTime}, #{status},#{submitterId},#{submitterMarket},#{voucher},#{remark}) </insert><!-- <insert id="syncToCashRecord">
insert into cash_record(order_type,jwcode,name,market,activity, order_code,goods_name,good_num,permanent_gold,free_gold, payment_currency,payment_amount,received_market, pay_type,pay_time,status,submitter_id, voucher,remark) values(1,#{jwcode},#{name},#{market},#{activity}, #{order_code},#{goods_name},#{good_num},#{permanent} ) </insert>-->
<!--更新订单状态--> <update id="updateStatus"> update cash_record_collection set status=#{status} where order_code=#{orderCode} </update> <!--更新订单--> <update id="updateByOrderCode"> UPDATE cash_record_collection <set> jwcode = #{cashRecordCollection.jwcode}, name = #{cashRecordCollection.name}, market = #{cashRecordCollection.market}, activity = #{cashRecordCollection.activity}, goods_name = #{cashRecordCollection.goodsName}, good_num = #{cashRecordCollection.goodNum}, num_unit = #{cashRecordCollection.numUnit}, permanent_gold = #{cashRecordCollection.permanentGold}, free_gold = #{cashRecordCollection.freeGold}, payment_currency = #{cashRecordCollection.paymentCurrency}, payment_amount = #{cashRecordCollection.paymentAmount}, received_market = #{cashRecordCollection.receivedMarket}, pay_type = #{cashRecordCollection.payType}, pay_time = #{cashRecordCollection.payTime}, voucher = #{cashRecordCollection.voucher}, remark = #{cashRecordCollection.remark}, status = 0, </set> WHERE order_code = #{cashRecordCollection.orderCode} AND status = 5 </update> <!--补全手续费等字段--> <update id="complete"> UPDATE cash_record_collection <set> handling_charge = #{cashRecordCollection.handlingCharge}, received_currency = #{cashRecordCollection.receivedCurrency}, <if test="cashRecordCollection.receivedAmount != 0"> received_amount = #{cashRecordCollection.receivedAmount}, </if> received_time = #{cashRecordCollection.receivedTime}, payment_currency = #{cashRecordCollection.paymentCurrency}, <if test="cashRecordCollection.paymentAmount != 0"> payment_amount = #{cashRecordCollection.paymentAmount}, </if> <!-- 只有 这些字段全部非空才更新状态 --> status = CASE WHEN handling_charge IS NOT NULL AND received_currency IS NOT NULL AND received_currency != '' AND received_amount IS NOT NULL AND received_time IS NOT NULL AND payment_currency IS NOT NULL AND payment_currency != '' AND payment_amount IS NOT NULL THEN 4 ELSE status END </set> WHERE order_code = #{cashRecordCollection.orderCode} AND status IN (1, 3) </update> <!--设置gOrder订单为已同步--> <update id="markSynced"> update g_order set is_synced = 1 where id = #{orderId} </update> <!--根据jwcode获取所属地区--> <select id="getMarketByJwcode" resultType="java.lang.String"> select market from user where jwcode=#{jwcode} </select> <!--根据订单号获取订单id与状态--> <select id="selectByOrderCode" resultType="com.example.demo.domain.entity.CashRecord"> select id ,status from cash_record_collection where order_code=#{orderCode} </select> <!--多条件查询收款订单列表--> <select id="selectCollection1" resultType="com.example.demo.domain.vo.cash.CashCollection"> select cr.order_type, cr.id,cr.jwcode,cr.name,cr.market, m1.name as marketName, ra.id as activityId, ra.activity_name as activity,cr.order_code,cr.bank_code, cr.goods_name,cr.good_num, cr.num_unit, cr.permanent_gold/100 as permanentGold,cr.free_gold/100 as freeGold,cr.payment_amount/100 as paymentAmount, r1.rate_name as paymentCurrency, r2.rate_name as receivedCurrency, m2.name as receivedMarket, cr.received_amount/100 as receivedAmount,cr.handling_charge/100 as handlingCharge, cr.pay_type,cr.pay_time,cr.received_time, cr.status,cr.submitter_id,cr.submitter_market,cr.voucher,cr.remark,cr.reject_reason, cr.audit_id,cr.create_time,cr.update_time,cr.audit_time, a1.admin_name as submitterName, a2.admin_name as auditName from cash_record_collection cr left join admin a1 on cr.submitter_id = a1.id left join admin a2 on cr.audit_id = a2.id left join market m1 on m1.id = cr.market left join market m2 on m2.id = cr.received_market left join rate r1 on r1.id = cr.payment_currency left join rate r2 on r2.id = cr.received_currency left join recharge_activity ra on ra.id = cr.activity <where> 1 = 1 <if test="cashCollection.market != null and cashCollection.market != ''"> AND cr.market = #{cashCollection.market} </if> <if test="cashCollection.jwcode != null and cashCollection.jwcode!=''"> AND cr.jwcode = #{cashCollection.jwcode} </if> <if test="cashCollection.name!=null and cashCollection.name !=''"> AND cr.name like concat('%',#{cashCollection.name},'%') </if> <if test="cashCollection.submitterId!=null and cashCollection.submitterId !=''"> AND cr.submitter_id = #{cashCollection.submitterId} </if> <!-- 其他原有条件不变 --> <choose> <when test="cashCollection.status != null and (cashCollection.status == 46||cashCollection.status == 13)"> <if test="cashCollection.receivedMarket != null and cashCollection.receivedMarket != ''"> AND (cr.received_market = #{cashCollection.receivedMarket} <if test="cashCollection.submitterMarket != null and cashCollection.submitterMarket != ''"> OR cr.submitter_market = #{cashCollection.submitterMarket} </if> ) </if> <if test="(cashCollection.receivedMarket == null or cashCollection.receivedMarket == '') and cashCollection.submitterMarket != null and cashCollection.submitterMarket != ''"> AND cr.submitter_market = #{cashCollection.submitterMarket} </if> </when>
<!-- 非 status=46 保持原逻辑:同时满足 --> <otherwise> <if test="cashCollection.receivedMarket != null and cashCollection.receivedMarket != ''"> AND cr.received_market = #{cashCollection.receivedMarket} </if> <if test="cashCollection.submitterMarket != null and cashCollection.submitterMarket != ''"> AND cr.submitter_market = #{cashCollection.submitterMarket} </if> </otherwise> </choose> <if test="cashCollection.activity!=null and cashCollection.activity!=''"> AND cr.activity =#{cashCollection.activity} </if> <if test="cashCollection.paymentCurrency!=null and cashCollection.paymentCurrency!=''"> AND cr.payment_currency like concat('%',#{cashCollection.paymentCurrency},'%') </if>
<if test="cashCollection.goodsName!=null and cashCollection.goodsName!=''"> AND cr.goods_name like concat('%',#{cashCollection.goodsName},'%') </if> <if test="cashCollection.payType!=null and cashCollection.payType!=''"> AND cr.pay_type = #{cashCollection.payType} </if> <if test="cashCollection.status != null"> AND cr.status IN <foreach collection="cashCollection.status.toString().toCharArray()" item="digit" open="(" separator="," close=")"> #{digit} </foreach> </if> <if test="cashCollection.startTime!=null and cashCollection.endTime!=null"> AND cr.pay_time between #{cashCollection.startTime} and #{cashCollection.endTime} </if> and cr.order_type=1 </where> <choose> <when test="cashCollection.sortField != null and cashCollection.sortField.length > 0 or cashCollection.sortOrder != null and cashCollection.sortOrder.length > 0"> ORDER BY ${cashCollection.sortField} ${cashCollection.sortOrder} </when> <otherwise> ORDER BY create_time DESC </otherwise> </choose> </select> <select id="selectAuditByOrderCode" resultType="com.example.demo.domain.entity.CashRecord"> select crc.id,jwcode,name,market,ra.activity_name as activity, order_code,bank_code,goods_name,good_num,num_unit,permanent_gold,free_gold, payment_currency,payment_amount,pay_type,pay_time,crc.status,submitter_id, voucher,remark from cash_record_collection crc left join recharge_activity ra on ra.id = crc.activity where order_code=#{orderCode} </select> <!--根据精网号获取姓名--> <select id="getNameByJwcode" resultType="java.lang.String"> select name from user where jwcode=#{jwcode} </select> <select id="getMarketNameByJwcode" resultType="java.lang.String"> select m.name from user u left join market m on u.market=m.id where u.jwcode=#{jwcode}</select> <select id="getActivityList" resultType="com.example.demo.domain.entity.RechargeActivity"> select ra.id,ra.activity_name,ra.business_belong,m.name as area,ra.status from recharge_activity ra left join market m on m.id=ra.area where ra.flag=1 </select> <!--查找未同步的订单--> <select id="getUnSync" resultType="com.example.demo.domain.entity.GOrder"> select id,jwcode,order_no,type,price,count,pay_style,state, success_time,ios_environment,ios_transaction_id,ios_receipt_data, add_time,is_synced from g_order where is_synced=0 and state=1 and type='gold_coin' and pay_style in(3,5,6,7,9) limit #{size} </select> <select id="selectById" resultType="com.example.demo.domain.vo.cash.CashCollection"> select cr.id,cr.jwcode,cr.name,cr.market, cr.order_code,cr.bank_code,cr.goods_name,cr.good_num,cr.num_unit,cr.permanent_gold,cr.free_gold, cr.payment_currency,cr.payment_amount,cr.received_currency,cr.received_amount,cr.handling_charge, cr.pay_type,cr.received_market,cr.pay_time,cr.received_time,cr.audit_id,cr.status,cr.submitter_id, cr.submitter_market,cr.voucher,cr.remark,cr.audit_time,a1.admin_name as submitterName, a2.admin_name as auditName,ra.activity_name as activity from cash_record_collection cr left join admin a1 on cr.submitter_id = a1.id left join admin a2 on cr.audit_id = a2.id left join recharge_activity ra on ra.id = cr.activity where cr.id=#{id} </select> <!--根据id查询收款订单--> <select id="selectBatchIds" resultType="com.example.demo.domain.vo.cash.CashCollection"> select cr.id, cr.jwcode, cr.name, cr.market, cr.order_code, cr.bank_code, cr.goods_name, cr.good_num, cr.num_unit, cr.permanent_gold, cr.free_gold, cr.payment_amount, cr.received_amount, cr.handling_charge, cr.pay_type, cr.received_market, cr.pay_time, cr.received_time, cr.audit_id, cr.status, cr.submitter_id, cr.submitter_market, cr.voucher, cr.remark, cr.audit_time, a1.admin_name as submitterName, a2.admin_name as auditName, ra.activity_name as activity, r1.rate_name as paymentCurrency, r2.rate_name as receivedCurrency from cash_record_collection cr left join admin a1 on cr.submitter_id = a1.id left join admin a2 on cr.audit_id = a2.id left join recharge_activity ra on ra.id = cr.activity left join rate r1 on r1.id = cr.payment_currency left join rate r2 on r2.id = cr.received_currency where 1 = 0 <if test="relatedIds != null and relatedIds.size() > 0"> OR cr.id IN <foreach collection="relatedIds" item="id" open="(" separator="," close=")"> #{id} </foreach> </if> </select> <select id="selectByGoldCoinOrderCode" resultType="com.example.demo.domain.vo.cash.CashCollection"> select * from cash_record_collection where order_no=#{orderNo} </select>
<!--根据glodcoin订单号更新收款订单--> <update id="updateByGoldCoinOrderCode"> update cash_record_collection <set> received_time=#{time}, payment_currency=#{currency}, received_currency=#{currency}, payment_amount=#{order_amount}, received_amount=#{net_amount}, handling_charge=#{charge}, order_no_status=0 </set> where order_code=#{merchant_reference} </update></mapper>
|