<update id="updatePaymentStatus"> update po_payment_order set pay_status = #{dto.payStatus} where po_order_id = #{dto.poOrderId} and pay_status =1 </update>
时间: 2024-04-04 12:35:09 浏览: 14
这是一段XML代码,其中包含一个ID为"updatePaymentStatus"的SQL更新语句。它会将"po_payment_order"表中"po_order_id"等于传入参数"dto.poOrderId"且"pay_status"等于1的记录的"pay_status"字段更新为传入参数"dto.payStatus"的值。
相关问题
<if test="dto.payType != null"> ( select DISTINCT(o.id) , o.status, o.pay_status, o.is_practice, o.order_no, o.shop_id, o.create_time, o.phone_number, o.member_name_code, o.sys_user_id, o.net_retail_amount , o.total_point, o.total_amount, o.total_retail_amount from po_order o left join po_order_pay pay on o.id = pay.po_order_id and pay.receipt_type != 2 AND pay.po_order_id IS NOT NULL AND pay.is_valid = 1 AND pay_type = #{dto.payType} LEFT JOIN po_payment_order paym on o.id = paym.po_order_id AND paym.po_order_id IS NOT NULL <if test="dto.payType == 1"> AND paym.settlement_type = 2 </if> <if test="dto.payType == 5"> AND paym.settlement_type = 1 </if> <if test="dto.payType != 1 and dto.payType != 5"> AND 1=2 </if> where pay.id is not null or paym.id is not null ) </if>
这是一段 SQL 查询语句,根据不同情况拼接了不同的条件。根据传入的参数 dto.payType 是否为 null 或者为 1 或者为 5,选择不同的查询方式。查询的表为 po_order,关联了 po_order_pay 和 po_payment_order 表,根据这些表中的字段进行联合查询,返回结果包括 o.id、o.status、o.pay_status、o.is_practice、o.order_no、o.shop_id、o.create_time、o.phone_number、o.member_name_code、o.sys_user_id、o.net_retail_amount、o.total_point、o.total_amount、o.total_retail_amount。
select IFNULL(sum(give.giveAmount),0) from( select IF(sum(IF(pay.receipt_type!=3,pay.pay_amount,0))-x.total_amount>0,sum(IF(pay.receipt_type!=3,pay.pay_amount,0))-x.total_amount,0) as 'giveAmount' from po_order x LEFT JOIN po_order_pay pay on x.id=pay.po_order_id where x.is_valid = 1 and x.pay_status = 3 AND x.STATUS = 2 AND x.net_retail_amount>0 <if test="dto.shopClassRecordId != null and dto.shopClassRecordId != ''"> and x.shop_class_record_id = #{dto.shopClassRecordId} </if> GROUP BY x.id ) give
这也是一段 SQL 语句,用于查询 po_order 表中满足一定条件的记录的 giveAmount 总和。其中,giveAmount 的计算方式是:如果该订单对应的支付记录的 receipt_type 不等于 3,则将该支付记录的 pay_amount 累加起来,否则忽略该支付记录;然后将得到的总和减去该订单的 total_amount,如果结果大于 0,则将该结果作为 giveAmount,否则将 giveAmount 设为 0。最后,对每个订单的 giveAmount 求和,如果没有符合条件的记录,则返回 0。其中,条件包括:is_valid 等于 1,pay_status 等于 3,STATUS 等于 2,net_retail_amount 大于 0。如果传入了参数 dto.shopClassRecordId,则还要加上一个条件 x.shop_class_record_id 等于该参数的值。