订单分润统计

This commit is contained in:
19173159168
2025-08-23 17:45:27 +08:00
parent 3de561a277
commit 5552778829
14 changed files with 1273 additions and 6 deletions

View File

@ -0,0 +1,203 @@
<?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.orders.mapper.ZcOrderDistribMapper">
<resultMap type="ZcOrderDistrib" id="ZcOrderDistribResult" >
<result property="id" column="id" />
<result property="orderId" column="order_id" />
<result property="orderNo" column="order_no" />
<result property="companyId" column="company_id" />
<result property="storeId" column="store_id" />
<result property="referralUserId" column="referral_user_id" />
<result property="distribType" column="distrib_type" />
<result property="distribRate" column="distrib_rate" />
<result property="distribAmount" column="distrib_amount" />
<result property="delFlag" column="del_flag" />
<result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" />
<association property="zcOrderMain" javaType="ZcOrderMain">
<result property="orderNo" column="main_order_no" />
<result property="orderStatus" column="main_order_status" />
<result property="operatorId" column="main_operator_id" />
<result property="storeId" column="main_store_id" />
<result property="vehicleId" column="main_vehicle_id" />
<result property="carModelId" column="main_car_model_id" />
<result property="customerId" column="main_customer_id" />
<result property="customerName" column="main_customer_name" />
<result property="customerPhone" column="main_customer_phone" />
<result property="batteryType" column="main_battery_type" />
<result property="rentalType" column="main_rental_type" />
<result property="rentalDays" column="main_rental_days" />
<result property="rentalPrice" column="main_rental_price" />
<result property="depositPrice" column="main_deposit_price" />
<result property="overdueFee" column="main_overdue_fee" />
<result property="overdueType" column="main_overdue_type" />
<result property="isDepositFree" column="main_is_deposit_free" />
<result property="isAutoDeduct" column="main_is_auto_deduct" />
<result property="firstOrderTime" column="main_first_order_time" />
<result property="pickCarTime" column="main_pick_car_time" />
<result property="startRentTime" column="main_start_rent_time" />
<result property="endRentTime" column="main_end_rent_time" />
<result property="reqEndRentTime" column="main_req_end_rent_time" />
<result property="actEndRentTime" column="main_act_end_rent_time" />
<result property="overdueDays" column="main_overdue_days" />
<result property="renewalTimes" column="main_renewal_times" />
<result property="chargeTimes" column="main_charge_times" />
<result property="rentCarRuleId" column="main_rent_car_rule_id" />
<result property="rentBatteyRuleId" column="main_rent_battey_rule_id" />
<result property="damageAmount" column="main_damage_amount" />
<result property="damageDesc" column="main_damage_desc" />
<result property="orderAmount" column="main_order_amount" />
<result property="overdueAmount" column="main_overdue_amount" />
<result property="endOrderTime" column="main_end_order_time" />
<result property="createTime" column="main_create_time" />
<result property="updateTime" column="main_update_time" />
<result property="operatorName" column="main_operator_name" />
<result property="storeName" column="main_store_name" />
<result property="licensePlate" column="main_license_plate" />
</association>
</resultMap>
<sql id="selectZcOrderDistribVo">
select a.id, a.order_id, a.order_no, a.company_id, a.store_id, a.referral_user_id, a.distrib_type, a.distrib_rate, a.distrib_amount, a.del_flag, a.create_time, a.update_time,
b.order_status as main_order_status, b.vehicle_id as main_vehicle_id, b.car_model_id as main_car_model_id, b.customer_id as main_customer_id, b.customer_name as main_customer_name, b.customer_phone as main_customer_phone,
b.battery_type as main_battery_type, b.rental_type as main_rental_type, b.rental_days as main_rental_days, b.rental_price as main_rental_price, b.deposit_price as main_deposit_price, b.overdue_fee as main_overdue_fee,
b.overdue_type as main_overdue_type, b.is_deposit_free as main_is_deposit_free, b.is_auto_deduct as main_is_auto_deduct, b.first_order_time as main_first_order_time, b.pick_car_time as main_pick_car_time, b.start_rent_time as main_start_rent_time,
b.end_rent_time as main_end_rent_time, b.req_end_rent_time as main_req_end_rent_time, b.act_end_rent_time as main_act_end_rent_time, b.overdue_days as main_overdue_days, b.renewal_times as main_renewal_times, b.charge_times as main_charge_times,
b.rent_car_rule_id as main_rent_car_rule_id, b.rent_battey_rule_id as main_rent_battey_rule_id, b.damage_amount as main_damage_amount,b.damage_desc as main_damage_desc, b.order_amount as main_order_amount, b.overdue_amount as main_overdue_amount,
b.end_order_time as main_end_order_time, b.create_time as main_create_time, b.update_time as main_update_time ,
c.company_name as main_operator_name,
s.name as main_store_name,
zc.license_plate as main_license_plate
from zc_order_distrib a
left join zc_order_main b on a.order_id = b.order_id
left join zc_company c on c.id = a.company_id
left join zc_company_store s on s.id = a.store_id
left join zc_car zc on zc.id = b.vehicle_id
</sql>
<select id="selectZcOrderDistribList" parameterType="ZcOrderDistrib" resultMap="ZcOrderDistribResult">
<include refid="selectZcOrderDistribVo"/>
<where>
<if test="orderId != null "> and a.order_id = #{orderId}</if>
<if test="orderNo != null and orderNo != ''"> and a.order_no = #{orderNo}</if>
<if test="companyId != null "> and a.company_id = #{companyId}</if>
<if test="referralUserId != null "> and a.referral_user_id = #{referralUserId}</if>
<if test="distribType != null and distribType != ''"> and a.distrib_type = #{distribType}</if>
<if test="distribRate != null "> and a.distrib_rate = #{distribRate}</if>
<if test="distribAmount != null "> and a.distrib_amount = #{distribAmount}</if>
<if test="params.beginFirstOrderTime != null and params.beginFirstOrderTime != ''"><!-- 开始时间检索 -->
and date_format(b.first_order_time,'%y%m%d') &gt;= date_format(#{params.beginFirstOrderTime},'%y%m%d')
</if>
<if test="params.endFirstOrderTime != null and params.endFirstOrderTime != ''"><!-- 结束时间检索 -->
and date_format(b.first_order_time,'%y%m%d') &lt;= date_format(#{params.endFirstOrderTime},'%y%m%d')
</if>
<if test="zcOrderMain != null and zcOrderMain.storeName != null and zcOrderMain.storeName != '' "> and s.name = #{zcOrderMain.storeName}</if>
<if test="zcOrderMain != null and zcOrderMain.licensePlate != null and zcOrderMain.licensePlate != '' "> and zc.license_plate = #{zcOrderMain.licensePlate}</if>
</where>
order by b.first_order_time desc
</select>
<!-- 汇总统计查询 -->
<select id="selectZcOrderDistribSummary" parameterType="ZcOrderDistrib" resultType="map">
SELECT
COUNT(a.id) as orderCount,
IFNULL(SUM(b.order_amount), 0) as totalOrderAmount,
IFNULL(SUM(a.distrib_amount), 0) as totalDistribAmount
FROM zc_order_distrib a
LEFT JOIN zc_order_main b ON a.order_id = b.order_id
LEFT JOIN zc_company c ON c.id = a.company_id
LEFT JOIN zc_company_store s ON s.id = a.store_id
LEFT JOIN zc_car zc ON zc.id = b.vehicle_id
<where>
<if test="orderId != null "> and a.order_id = #{orderId}</if>
<if test="orderNo != null and orderNo != ''"> and a.order_no = #{orderNo}</if>
<if test="companyId != null "> and a.company_id = #{companyId}</if>
<if test="referralUserId != null "> and a.referral_user_id = #{referralUserId}</if>
<if test="distribType != null and distribType != ''"> and a.distrib_type = #{distribType}</if>
<if test="distribRate != null "> and a.distrib_rate = #{distribRate}</if>
<if test="distribAmount != null "> and a.distrib_amount = #{distribAmount}</if>
<if test="params.beginFirstOrderTime != null and params.beginFirstOrderTime != ''"><!-- 开始时间检索 -->
and date_format(b.first_order_time,'%y%m%d') &gt;= date_format(#{params.beginFirstOrderTime},'%y%m%d')
</if>
<if test="params.endFirstOrderTime != null and params.endFirstOrderTime != ''"><!-- 结束时间检索 -->
and date_format(b.first_order_time,'%y%m%d') &lt;= date_format(#{params.endFirstOrderTime},'%y%m%d')
</if>
<if test="zcOrderMain != null and zcOrderMain.storeName != null and zcOrderMain.storeName != '' "> and s.name = #{zcOrderMain.storeName}</if>
<if test="zcOrderMain != null and zcOrderMain.licensePlate != null and zcOrderMain.licensePlate != '' "> and zc.license_plate = #{zcOrderMain.licensePlate}</if>
</where>
</select>
<select id="selectZcOrderDistribById" parameterType="Long" resultMap="ZcOrderDistribResult">
<include refid="selectZcOrderDistribVo"/>
where id = #{id}
</select>
<insert id="insertZcOrderDistrib" parameterType="ZcOrderDistrib" useGeneratedKeys="true" keyProperty="id">
insert into zc_order_distrib
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="orderId != null">order_id,</if>
<if test="orderNo != null and orderNo != ''">order_no,</if>
<if test="companyId != null">company_id,</if>
<if test="storeId != null">store_id,</if>
<if test="referralUserId != null">referral_user_id,</if>
<if test="distribType != null and distribType != ''">distrib_type,</if>
<if test="distribRate != null">distrib_rate,</if>
<if test="distribAmount != null">distrib_amount,</if>
<if test="delFlag != null">del_flag,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="orderId != null">#{orderId},</if>
<if test="orderNo != null and orderNo != ''">#{orderNo},</if>
<if test="companyId != null">#{companyId},</if>
<if test="storeId != null">#{storeId},</if>
<if test="referralUserId != null">#{referralUserId},</if>
<if test="distribType != null and distribType != ''">#{distribType},</if>
<if test="distribRate != null">#{distribRate},</if>
<if test="distribAmount != null">#{distribAmount},</if>
<if test="delFlag != null">#{delFlag},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateZcOrderDistrib" parameterType="ZcOrderDistrib">
update zc_order_distrib
<trim prefix="SET" suffixOverrides=",">
<if test="orderId != null">order_id = #{orderId},</if>
<if test="orderNo != null and orderNo != ''">order_no = #{orderNo},</if>
<if test="companyId != null">company_id = #{companyId},</if>
<if test="storeId != null">store_id = #{storeId},</if>
<if test="referralUserId != null">referral_user_id = #{referralUserId},</if>
<if test="distribType != null and distribType != ''">distrib_type = #{distribType},</if>
<if test="distribRate != null">distrib_rate = #{distribRate},</if>
<if test="distribAmount != null">distrib_amount = #{distribAmount},</if>
<if test="delFlag != null">del_flag = #{delFlag},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteZcOrderDistribById" parameterType="Long">
delete from zc_order_distrib where id = #{id}
</delete>
<delete id="deleteZcOrderDistribByIds" parameterType="String">
delete from zc_order_distrib where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -63,6 +63,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="createdAt" column="sub_created_at" />
<result property="paymentId" column="sub_payment_id" />
<result property="paidAt" column="sub_paid_at" />
<result property="payStatus" column="sub_pay_status" />
<result property="transactionId" column="sub_transaction_id" />
<result property="remark" column="sub_remark" />
<result property="delFlag" column="sub_del_flag" />
<result property="createTime" column="sub_create_time" />
@ -123,7 +125,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="params.beginFirstOrderTime != null and params.beginFirstOrderTime != ''"><!-- 开始时间检索 -->
and date_format(a.first_order_time,'%y%m%d') &gt;= date_format(#{params.beginFirstOrderTime},'%y%m%d')
</if>
<if test="params.endFirstOrderTime != null and params.endFirstOrderTime != ''"><!-- 结束时间检索 -->
<if test="params.enstoreNamedFirstOrderTime != null and params.endFirstOrderTime != ''"><!-- 结束时间检索 -->
and date_format(a.first_order_time,'%y%m%d') &lt;= date_format(#{params.endFirstOrderTime},'%y%m%d')
</if>
</where>
@ -132,7 +134,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectZcOrderMainByOrderId" parameterType="Long" resultMap="ZcOrderMainZcOrderSubResult">
select a.order_id, a.order_no, a.order_status, a.operator_id, a.store_id, a.vehicle_id, a.car_model_id, a.customer_id, a.customer_name, a.customer_phone, a.battery_type, a.rental_type, a.rental_days, a.rental_price, a.deposit_price, a.overdue_fee, a.overdue_type, a.is_deposit_free, a.is_auto_deduct, a.first_order_time, a.pick_car_time, a.start_rent_time, a.end_rent_time, a.req_end_rent_time, a.act_end_rent_time, a.overdue_days, a.renewal_times, a.charge_times, a.rent_car_rule_id, a.rent_battey_rule_id, a.damage_amount,a.damage_desc,a.order_amount, a.overdue_amount, a.end_order_time, a.del_flag, a.create_time, a.update_time,
b.suborder_id as sub_suborder_id, b.order_id as sub_order_id, b.suborder_no as sub_suborder_no, b.suborder_type as sub_suborder_type, b.amount as sub_amount, b.payment_method as sub_payment_method, b.vin_battery_no as sub_vin_battery_no, b.created_at as sub_created_at, b.payment_id as sub_payment_id, b.paid_at as sub_paid_at, b.remark as sub_remark, b.del_flag as sub_del_flag, b.create_time as sub_create_time, b.update_time as sub_update_time,
b.suborder_id as sub_suborder_id, b.order_id as sub_order_id, b.suborder_no as sub_suborder_no, b.suborder_type as sub_suborder_type, b.amount as sub_amount, b.payment_method as sub_payment_method, b.vin_battery_no as sub_vin_battery_no, b.created_at as sub_created_at, b.payment_id as sub_payment_id, b.paid_at as sub_paid_at, b.pay_status as sub_pay_status,b.transaction_id as sub_transaction_id, b.remark as sub_remark, b.del_flag as sub_del_flag, b.create_time as sub_create_time, b.update_time as sub_update_time,
c.company_name as operator_name,s.name as store_name,zc.license_plate as license_plate,
i.id as sub_id, i.order_id as sub_order_id, i.order_no as sub_order_no, i.img_type as sub_img_type, i.img_url as sub_img_url, i.create_time as sub_create_time, i.update_time as sub_update_time
from zc_order_main a

View File

@ -15,6 +15,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="createdAt" column="created_at" />
<result property="paymentId" column="payment_id" />
<result property="paidAt" column="paid_at" />
<result property="payStatus" column="pay_status" />
<result property="transactionId" column="transaction_id" />
<result property="remark" column="remark" />
<result property="delFlag" column="del_flag" />
<result property="createTime" column="create_time" />
@ -22,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectZcOrderSubVo">
select suborder_id, order_id, suborder_no, suborder_type, amount, payment_method, vin_battery_no, created_at, payment_id, paid_at, remark, del_flag, create_time, update_time from zc_order_sub
select suborder_id, order_id, suborder_no, suborder_type, amount, payment_method, vin_battery_no, created_at, payment_id, paid_at, pay_status, transaction_id, remark, del_flag, create_time, update_time from zc_order_sub
</sql>
<select id="selectZcOrderSubList" parameterType="ZcOrderSub" resultMap="ZcOrderSubResult">
@ -37,6 +39,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="createdAt != null "> and created_at = #{createdAt}</if>
<if test="paymentId != null and paymentId != ''"> and payment_id = #{paymentId}</if>
<if test="paidAt != null "> and paid_at = #{paidAt}</if>
<if test="payStatus != null and payStatus != '' "> and pay_status = #{payStatus}</if>
<if test="transactionId != null and transactionId != '' "> and transaction_id = #{transactionId}</if>
<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
and date_format(create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
</if>
@ -97,6 +101,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="createdAt != null">created_at = #{createdAt},</if>
<if test="paymentId != null and paymentId != ''">payment_id = #{paymentId},</if>
<if test="paidAt != null">paid_at = #{paidAt},</if>
<if test="payStatus != null and payStatus != '' "> pay_status = #{payStatus},</if>
<if test="transactionId != null and transactionId != '' "> transaction_id = #{transactionId},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="delFlag != null">del_flag = #{delFlag},</if>
<if test="createTime != null">create_time = #{createTime},</if>