Files
cloud_hash_backend/src/main/resources/mapper/lease/LeaseOrderItemMapper.xml

174 lines
6.1 KiB
XML

<?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.m2pool.lease.mapper.LeaseOrderItemMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.m2pool.lease.entity.LeaseOrderItem">
<id column="id" property="id" />
<result column="order_id" property="orderId" />
<result column="product_id" property="productId" />
<result column="product_machine_id" property="productMachineId" />
<result column="name" property="name" />
<result column="unit" property="unit" />
<result column="image" property="image" />
<result column="quantity" property="quantity" />
<result column="price" property="price" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
<result column="del" property="del" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, order_id, product_id,product_machine_id,`name`, unit, image, quantity, price, create_time, update_time, del
</sql>
<select id="getMachineByOrderStatusIsPayInData" resultType="java.lang.Long">
select product_machine_id AS productMachineId from lease_order_item
where
<foreach collection="list" item="item" separator="OR">
(`order_id` = #{item.orderId} and `shop_id` = #{item.shopId})
</foreach>
</select>
<select id="getOrderIds" resultType="java.lang.Long">
select DISTINCT order_id FROM lease_order_item
WHERE
id IN
<foreach item="id" collection="orderItemIds" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<select id="getOrderInfoStatus" resultType="com.m2pool.lease.dto.OrderStatusDto">
SELECT
order_id as orderId,
CASE
WHEN SUM(CASE WHEN status = 1 THEN 1 ELSE 0 END) > 0 THEN 7
ELSE 8
END as orderInfoStatus
FROM
`lease_order_item`
WHERE
order_id IN
<foreach item="id" collection="orderIds" open="(" separator="," close=")">
#{id}
</foreach>
GROUP BY
order_id;
</select>
<select id="selectOrderInfoIds" resultType="java.lang.Long">
SELECT
DISTINCT order_id
FROM
`lease_order_item`
WHERE
id IN
<foreach item="id" collection="itemIds" open="(" separator="," close=")">
#{id}
</foreach>
GROUP BY
order_id;
</select>
<select id="getNeedUpdateOrderItem" resultType="com.m2pool.lease.entity.LeaseOrderItem">
SELECT
id,
already_pay_real_amount AS alreadyPayRealAmount,
settle_pay_real_amount AS settlePayRealAmount,
del
FROM
`lease_order_item`
WHERE
order_id = #{orderId}
</select>
<select id="getOrderItemByOrderIds" resultType="com.m2pool.lease.entity.LeaseOrderItem">
SELECT
oi.user,
oi.miner,
oi.coin,
oi.from_address AS fromAddress,
oi.from_chain AS fromChain,
oi.from_symbol AS fromSymbol,
oi.address AS address,
oi.chain AS chain,
oi.symbol AS symbol,
COALESCE(prm.status,0) AS status
FROM
`lease_order_item` oi
LEFT JOIN lease_pay_record_message prm ON
oi.from_address = prm.from_address AND oi.from_chain = prm.from_chain AND oi.from_symbol = prm.from_symbol
AND oi.address = prm.to_address AND oi.chain = prm.to_chain AND oi.symbol = prm.to_symbol AND DATE(prm.create_time) = CURRENT_DATE
WHERE
oi.order_id IN
<foreach item="id" collection="orderIds" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<select id="getOneDayApartOrder" resultType="com.m2pool.lease.dto.v2.OrderTimeInfoDto">
select id,create_time as createTime,lease_time as leaseTime from lease_order_item where status = 1
</select>
<select id="getActiveOrderItems" resultType="com.m2pool.lease.entity.LeaseOrderItem">
SELECT
id,
`user`,
miner,
coin,
algorithm,
pool,
practical_power as practicalPower,
create_time as createTime,
lease_time as leaseTime
FROM lease_order_item
WHERE status = 1 AND del = false
</select>
<update id="updatePracticalPowerBatch">
UPDATE lease_order_item
SET practical_power = CASE
<foreach collection="list" item="item">
WHEN id = #{item.id}
THEN #{item.practicalPower}
</foreach>
ELSE practical_power
END
WHERE id IN (
<foreach collection="list" item="item" separator=",">
#{item.id}
</foreach>
)
</update>
<select id="checkShopExistRunningOrderNumbers" resultType="java.lang.Long">
SELECT COUNT(*)
FROM lease_order_item
WHERE status = 1
AND (
<foreach collection="list" item="item" separator=" OR ">
(chain = #{item.chain} AND from_symbol = #{item.payCoin} AND from_address = #{item.payAddress})
</foreach>
)
</select>
<update id="updateSettleAmount">
UPDATE lease_order_item
SET already_pay_real_amount = settle_pay_real_amount,settle_pay_real_amount = 0
WHERE order_id IN (
<foreach collection="list" item="item" separator=",">
#{item.orderId}
</foreach>
)
</update>
<select id="selectOrderItemShopOpenMap" resultType="com.m2pool.lease.dto.OrderItemShopOpenDto">
SELECT
oi.id,
ls.is_open AS isOpen
FROM lease_order_item oi
JOIN lease_shop ls ON oi.shop_id = ls.id
WHERE oi.id IN
<foreach item="id" collection="orderItemIds" open="(" separator="," close=")">
#{id}
</foreach>
</select>
</mapper>