<?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.ruoyi.order.mapper.TChargingOrderMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.ruoyi.order.api.model.TChargingOrder">
|
<id column="id" property="id" />
|
<result column="code" property="code" />
|
<result column="order_type" property="orderType" />
|
<result column="order_classification" property="orderClassification" />
|
<result column="app_user_id" property="appUserId" />
|
<result column="app_user_car_id" property="appUserCarId" />
|
<result column="site_id" property="siteId" />
|
<result column="parking_lot_id" property="parkingLotId" />
|
<result column="charging_pile_id" property="chargingPileId" />
|
<result column="charging_gun_id" property="chargingGunId" />
|
<result column="charging_capacity" property="chargingCapacity"/>
|
<result column="charging_power" property="chargingPower"/>
|
<result column="start_time" property="startTime" />
|
<result column="end_time" property="endTime" />
|
<result column="status" property="status" />
|
<result column="end_mode" property="endMode"/>
|
<result column="recharge_amount" property="rechargeAmount" />
|
<result column="recharge_payment_type" property="rechargePaymentType" />
|
<result column="recharge_payment_status" property="rechargePaymentStatus" />
|
<result column="recharge_serial_number" property="rechargeSerialNumber" />
|
<result column="residual_amount" property="residualAmount" />
|
<result column="order_amount" property="orderAmount" />
|
<result column="app_coupon_id" property="appCouponId" />
|
<result column="coupon_discount_amount" property="couponDiscountAmount" />
|
<result column="vip_discount" property="vipDiscount" />
|
<result column="vip_discount_amount" property="vipDiscountAmount" />
|
<result column="payment_amount" property="paymentAmount" />
|
<result column="refund_code" property="refundCode" />
|
<result column="refund_amount" property="refundAmount" />
|
<result column="refund_status" property="refundStatus" />
|
<result column="refund_serial_number" property="refundSerialNumber" />
|
<result column="refund_time" property="refundTime" />
|
<result column="create_time" property="createTime" />
|
<result column="del_flag" property="delFlag" />
|
</resultMap>
|
|
<!-- 通用查询结果列 -->
|
<sql id="Base_Column_List">
|
id, code, order_type, order_classification, app_user_id, app_user_car_id,site_id, parking_lot_id, charging_pile_id, charging_gun_id, start_time, end_time, status, recharge_amount, recharge_payment_type, recharge_payment_status, recharge_serial_number, order_amount, app_coupon_id, coupon_discount_amount, vip_discount, vip_discount_amount, payment_amount, refund_code, refund_amount, refund_status, refund_serial_number, refund_time, create_time, del_flag
|
</sql>
|
|
|
<select id="getMyChargingOrderList" resultMap="BaseResultMap">
|
select * from t_charging_order where del_flag = 0 and app_user_id = #{appUserId}
|
<if test="1 == type">
|
and id not in (select order_id from t_order_evaluate where order_type = 1 and app_user_id = #{appUserId} and del_flag = 0)
|
</if>
|
order by create_time desc
|
<if test="null != pageCurr and null != pageSize">
|
limit #{pageCurr}, #{pageSize}
|
</if>
|
</select>
|
<select id="getNoInvoicedOrder" resultMap="BaseResultMap">
|
select * from t_charging_order where del_flag = 0 and app_user_id = #{appUserId}
|
<if test="null != month and '' != month">
|
and DATE_FORMAT(end_time, '%Y-%m') = #{month}
|
</if>
|
and id not in (select order_id from t_order_invoice_detail where order_type = 1)
|
order by create_time desc
|
<if test="null != pageCurr and null != pageSize">
|
limit #{pageCurr}, #{pageSize}
|
</if>
|
</select>
|
|
<select id="chargingOrder" resultType="com.ruoyi.order.api.vo.ChargingOrderVO">
|
select t1.*
|
from t_charging_order t1
|
where 1=1
|
<if test="null != req.code and req.code!=''">
|
and t1.code LIKE CONCAT('%',#{req.code},'%')
|
</if>
|
<if test="null != req.userIds and req.userIds.size()>0" >
|
and t1.app_user_id in
|
<foreach collection="req.userIds" item="item" index="index" separator="," open="(" close=")">
|
#{item}
|
</foreach>
|
</if>
|
<if test="req.orderType != null ">
|
and t1.order_type = #{req.orderType}
|
</if>
|
<if test="req.status != null ">
|
and t1.status = #{req.status}
|
</if>
|
<if test="req.siteId != null ">
|
and t1.site_id = #{req.siteId}
|
</if>
|
<if test="req.pileId != null ">
|
and t1.charging_pile_id = #{req.pileId}
|
</if>
|
<if test="req.gunId != null ">
|
and t1.charging_gun_id = #{req.gunId}
|
</if>
|
<if test="startTime1 != null and startTime1!=''">
|
and (t1.start_time between #{startTime1} and #{startTime2}
|
</if>
|
<if test="endTime1 != null and endTime1!=''">
|
and (t1.end_time between #{endTime1} and #{endTime2}
|
</if>
|
</select>
|
<select id="payOrderQuery" resultType="com.ruoyi.order.dto.PayOrderDto">
|
SELECT * FROM (SELECT
|
id,
|
`code`,
|
1 as type,
|
title,
|
phone,
|
`status`,
|
order_amount,
|
payment_amount ,
|
create_time,
|
end_time,
|
pay_time,
|
refund_status,
|
(payment_amount-refund_amount) as final_amount,
|
del_flag
|
FROM
|
charging_pile_order.t_charging_order UNION ALL
|
SELECT
|
id,
|
`code`,
|
2 as type,
|
title,
|
phone,
|
`status`,
|
order_amount,
|
payment_amount ,
|
create_time,
|
receiving_time as end_time,
|
pay_time,
|
refund_status,
|
(payment_amount-refund_amount) as final_amount,
|
del_flag
|
FROM
|
charging_pile_order.t_shopping_order UNION ALL
|
SELECT
|
id,
|
`code`,
|
3 as type,
|
title,
|
phone,
|
payment_status AS `status`,
|
order_amount,
|
payment_amount ,
|
create_time,
|
create_time as end_time,
|
pay_time,
|
refund_status,
|
(payment_amount-refund_amount) as final_amount,
|
del_flag
|
FROM
|
charging_pile_order.t_vip_order UNION ALL
|
SELECT
|
id,
|
`code`,
|
4 as type,
|
title,
|
phone,
|
`status`,
|
order_amount ,
|
order_amount as payment_amount,
|
create_time,
|
out_parking_time as end_time,
|
out_parking_time as pay_time,
|
null as refund_status,
|
0 as final_amount,
|
0 as del_flag
|
FROM
|
charging_pile_service.t_parking_record ) o
|
<where>
|
o.del_flag = 0
|
<if test="data.code != null and data.code != ''">
|
AND o.code LIKE CONCAT('%',#{data.code},'%')
|
</if>
|
<if test="data.phone != null and data.phone != ''">
|
AND o.phone LIKE CONCAT('%',#{data.phone},'%')
|
</if>
|
<if test="data.type != null">
|
AND o.type = #{data.type}
|
</if>
|
<if test="data.createTime1 != null">
|
AND o.create_time >= #{data.createTime1}
|
</if>
|
<if test="data.createTime2 != null">
|
AND o.create_time <= #{data.createTime2}
|
</if>
|
</where>
|
ORDER BY o.create_time desc
|
|
</select>
|
<select id="getRefundList" resultType="com.ruoyi.order.api.model.TChargingOrderRefund">
|
|
select * from (SELECT re.id,
|
re.`code`,
|
re.refund_code,
|
re.refund_title,
|
re.refund_reason,
|
re.refund_amount,
|
re.refund_total_amount,
|
re.refund_time,
|
re.pay_type,
|
re.pay_amount,
|
re.refund_remark,
|
co.recharge_serial_number as serail_number,
|
co.payment_amount,
|
co.pay_time
|
FROM t_charging_order_refund re
|
LEFT JOIN t_charging_order co ON re.charging_order_id = co.id
|
UNION ALL
|
SELECT re.id,
|
re.`code`,
|
re.refund_code,
|
re.refund_title,
|
re.refund_reason,
|
re.refund_amount,
|
re.refund_total_amount,
|
re.refund_time,
|
re.pay_type,
|
re.pay_amount,
|
re.refund_remark,
|
so.serial_number,
|
so.payment_amount,
|
so.pay_time
|
FROM t_shopping_order_refund re
|
LEFT JOIN t_shopping_order so on re.shopping_order_id = so.id
|
UNION ALL
|
SELECT vr.id,
|
vr.`code`,
|
vr.refund_code,
|
vr.refund_title,
|
vr.refund_reason,
|
vr.refund_amount,
|
vr.refund_total_amount,
|
vr.refund_time,
|
vr.pay_type,
|
vr.pay_amount,
|
vr.refund_remark,
|
vo.serial_number,
|
vo.payment_amount,
|
vo.pay_time
|
FROM t_vip_order_refund vr
|
LEFT JOIN t_vip_order vo on vr.vip_order_id = vo.id
|
|
|
) o
|
<where>
|
<if test="data.code != null and data.code != ''">
|
AND o.code LIKE CONCAT('%',#{data.code},'%')
|
</if>
|
<if test="data.refundCode != null and data.refundCode != ''">
|
AND o.refund_code LIKE CONCAT('%',#{data.refundCode},'%')
|
</if>
|
</where>
|
|
|
</select>
|
<select id="chargingOrderGroup" resultType="com.ruoyi.common.core.dto.ChargingOrderGroup">
|
SELECT SUM(charging_capacity) ,site_id
|
FROM t_charging_order
|
GROUP BY site_id
|
<where>
|
<if test="chargingPercentProvinceDto.date1 != null">
|
AND create_time >= #{chargingPercentProvinceDto.date1}
|
</if>
|
<if test="chargingPercentProvinceDto.date2 != null">
|
AND create_time <= #{chargingPercentProvinceDto.date2}
|
</if>
|
<if test="chargingPercentProvinceDto.provinceCode != null">
|
AND province_code = #{chargingPercentProvinceDto.provinceCode}
|
</if>
|
</where>
|
|
|
</select>
|
<select id="charge" resultType="com.ruoyi.order.dto.SixChargingDto">
|
SELECT
|
DATE_FORMAT( subquery.create_time, '%m' ) AS MONTH,
|
SUM(electrovalence) AS electrovalence,
|
SUM(service_charge) AS service_charge
|
FROM
|
(
|
SELECT
|
create_time,
|
electrovalence,
|
service_charge
|
FROM
|
t_charging_order
|
<where>
|
del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status)
|
<if test="sixBefore != null">
|
AND create_time >= #{sixBefore}
|
</if>
|
<if test="siteIds != null and siteIds.size() > 0">
|
AND site_id IN
|
<foreach collection="siteIds" item="siteId" open="(" separator="," close=")">
|
#{siteId}
|
</foreach>
|
</if>
|
</where>
|
) AS subquery
|
GROUP BY
|
DATE_FORMAT( subquery.create_time, '%m' )
|
|
|
</select>
|
<select id="circle" resultType="com.ruoyi.order.dto.SixCircleDto">
|
SELECT
|
site_id as siteId,SUM(payment_amount) as paymentAmount
|
FROM
|
t_charging_order
|
<where>
|
del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status)
|
<if test="siteIds != null and siteIds.size() > 0">
|
AND site_id IN
|
<foreach collection="siteIds" item="siteId" open="(" separator="," close=")">
|
#{siteId}
|
</foreach>
|
</if>
|
<if test="sixBefore != null">
|
AND create_time >= #{sixBefore}
|
</if>
|
</where>
|
GROUP BY
|
site_id
|
|
|
</select>
|
<select id="countAll" resultType="java.util.Map">
|
select sum(electrovalence),sum(service_charge),sum(commission_amount),sum(sharing_amount)
|
from t_charging_order
|
where create_time >= #{sixBefore} and del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status)
|
</select>
|
<select id="getSumByType" resultType="java.util.Map">
|
SELECT
|
type,
|
SUM( charging_capacity ) as charging_capacity ,
|
SUM( period_service_price ) as period_electric_price,
|
SUM(period_electric_price+period_service_price) as total_amount
|
FROM
|
t_charging_order_accounting_strategy
|
<where>
|
<if test="chargingOrderIds != null and chargingOrderIds.size() > 0">
|
AND charging_order_id IN
|
<foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")">
|
#{chargingOrderId}
|
</foreach>
|
</if>
|
</where>
|
GROUP BY
|
type
|
</select>
|
<select id="getDateData" resultType="java.util.Map">
|
SELECT
|
DATE_FORMAT( create_time, '%Y-%m-%d %H' ) as time,
|
SUM(service_charge) as servicecharge,
|
SUM(electrovalence) as electrovalence
|
FROM
|
t_charging_order
|
<where>
|
del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status) and DATE(create_time) = CURDATE()
|
<if test="chargingOrderIds != null and chargingOrderIds.size() > 0">
|
AND id IN
|
<foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")">
|
#{chargingOrderId}
|
</foreach>
|
</if>
|
</where>
|
GROUP BY
|
time
|
ORDER BY
|
time
|
|
</select>
|
<select id="getWeekData" resultType="java.util.Map">
|
SELECT
|
DATE_FORMAT( create_time, '%Y-%m-%d' ) as time,
|
SUM(service_charge) as servicecharge,
|
SUM(electrovalence) as electrovalence
|
FROM
|
t_charging_order
|
<where>
|
del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status) and YEARWEEK(DATE_FORMAT(create_time, '%Y-%m-%d'), 1) = YEARWEEK(NOW(), 1)
|
<if test="chargingOrderIds != null and chargingOrderIds.size() > 0">
|
AND id IN
|
<foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")">
|
#{chargingOrderId}
|
</foreach>
|
</if>
|
</where>
|
GROUP BY
|
time
|
ORDER BY
|
time
|
|
</select>
|
<select id="getMonthData" resultType="java.util.Map">
|
SELECT
|
DATE_FORMAT( create_time, '%Y-%m-%d' ) as time,
|
SUM(service_charge) as servicecharge,
|
SUM(electrovalence) as electrovalence
|
FROM
|
t_charging_order
|
<where>
|
del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status) and MONTH(create_time) = MONTH(NOW()) AND YEAR(create_time) = YEAR(NOW())
|
<if test="chargingOrderIds != null and chargingOrderIds.size() > 0">
|
AND id IN
|
<foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")">
|
#{chargingOrderId}
|
</foreach>
|
</if>
|
</where>
|
GROUP BY
|
time
|
ORDER BY
|
time
|
|
</select>
|
<select id="getYearData" resultType="java.util.Map">
|
SELECT
|
DATE_FORMAT( create_time, '%Y-%m-%d' ) as time,
|
SUM(service_charge) as servicecharge,
|
SUM(electrovalence) as electrovalence
|
FROM
|
t_charging_order
|
<where>
|
del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status) and YEAR(createTime) = YEAR(NOW())
|
<if test="chargingOrderIds != null and chargingOrderIds.size() > 0">
|
AND id IN
|
<foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")">
|
#{chargingOrderId}
|
</foreach>
|
</if>
|
</where>
|
GROUP BY
|
time
|
ORDER BY
|
time
|
|
|
</select>
|
<select id="chargingList" resultType="com.ruoyi.order.api.vo.ChargingOrderListVO">
|
select t1.* from t_charging_order t1
|
where 1=1
|
<if test="null != req.code and req.code!=''">
|
and t1.code LIKE CONCAT('%',#{req.code},'%')
|
</if>
|
<if test="null != req.carIds and req.carIds.size()>0" >
|
and t1.app_user_car_id in
|
<foreach collection="req.carIds" item="item" index="index" separator="," open="(" close=")">
|
#{item}
|
</foreach>
|
</if>
|
<if test="null != req.userIds and req.userIds.size()>0" >
|
and t1.app_user_id in
|
<foreach collection="req.userIds" item="item" index="index" separator="," open="(" close=")">
|
#{item}
|
</foreach>
|
</if>
|
<if test="req.orderType != null ">
|
and t1.order_type = #{req.orderType}
|
</if>
|
<if test="req.status != null ">
|
and t1.status = #{status}
|
</if>
|
<if test="req.status != null ">
|
and t1.status = #{req.status}
|
</if>
|
<if test="req.siteId != null ">
|
and t1.site_id = #{req.siteId}
|
</if>
|
<if test="startTime1 != null and startTime1!=''">
|
and (t1.start_time between #{startTime1} and #{startTime2})
|
</if>
|
<if test="endTime1 != null and endTime1!=''">
|
and (t1.end_time between #{endTime1} and #{endTime2})
|
</if>
|
</select>
|
<select id="chargingList1" resultType="com.ruoyi.order.api.vo.ChargingOrderListVO">
|
select t1.* from t_charging_order t1
|
where 1=1
|
<if test="null != req.code and req.code!=''">
|
and t1.code LIKE CONCAT('%',#{req.code},'%')
|
</if>
|
<if test="null != req.carIds and req.carIds.size()>0" >
|
and t1.app_user_car_id in
|
<foreach collection="req.carIds" item="item" index="index" separator="," open="(" close=")">
|
#{item}
|
</foreach>
|
</if>
|
<if test="null != req.userIds and req.userIds.size()>0" >
|
and t1.app_user_id in
|
<foreach collection="req.userIds" item="item" index="index" separator="," open="(" close=")">
|
#{item}
|
</foreach>
|
</if>
|
<if test="req.orderType != null ">
|
and t1.order_type = #{req.orderType}
|
</if>
|
<if test="req.status != null ">
|
and t1.status = #{status}
|
</if>
|
<if test="req.status != null ">
|
and t1.status = #{req.status}
|
</if>
|
<if test="req.siteId != null ">
|
and t1.site_id = #{req.siteId}
|
</if>
|
<if test="startTime1 != null and startTime1!=''">
|
and (t1.start_time between #{startTime1} and #{startTime2})
|
</if>
|
<if test="endTime1 != null and endTime1!=''">
|
and (t1.end_time between #{endTime1} and #{endTime2})
|
</if>
|
</select>
|
</mapper>
|