订单分润统计

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>

View File

@ -0,0 +1,73 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('新增订单分成统计')" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-distrib-add">
<div class="form-group">
<label class="col-sm-3 control-label is-required">关联的订单ID</label>
<div class="col-sm-8">
<input name="orderId" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">订单编号:</label>
<div class="col-sm-8">
<input name="orderNo" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">运营商id</label>
<div class="col-sm-8">
<input name="companyId" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">运营商id</label>
<div class="col-sm-8">
<input name="storeId" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">引荐人id</label>
<div class="col-sm-8">
<input name="referralUserId" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">分配比例:</label>
<div class="col-sm-8">
<input name="distribRate" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">分配金额:</label>
<div class="col-sm-8">
<input name="distribAmount" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">删除标志:</label>
<div class="col-sm-8">
<input name="delFlag" class="form-control" type="text">
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var prefix = ctx + "orders/distrib"
$("#form-distrib-add").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/add", $('#form-distrib-add').serialize());
}
}
</script>
</body>
</html>

View File

@ -0,0 +1,294 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('订单分成统计列表')" />
<style>
.distrib-statistics {
padding: 2px;
background-color: #fff;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
margin-bottom: 15px;
}
.statistics-header {
display: flex;
align-items: center;
margin-bottom: 15px;
}
.statistics-header .title {
font-size: 16px;
font-weight: 600;
color: #333;
margin-left: 8px;
}
.statistics-content {
display: flex;
justify-content: space-between;
gap: 15px;
}
.stat-item {
flex: 1;
text-align: center;
border-radius: 6px;
width: 200px;
}
.stat-item .label {
background-color: #f8f9fa;
font-size: 15px;
margin-bottom: 5px;
}
.stat-item .value {
font-size: 18px;
font-weight: 600;
color: #333;
}
</style>
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<ul>
<input type="hidden" name="distribType" th:field="*{zcOrderDistrib.distribType}"/>
<li>
<label>所属运营商:</label>
<select name="companyId" id="companyId" >
<option value="">请选择所属运营商</option>
<option th:each="company : ${companyList}" th:value="${company.id}" th:text="${company.companyName}"></option>
</select>
</li>
<li>
<label>所属门店:</label>
<input type="text" name="zcOrderMain.storeName"/>
</li>
<li>
<label>车辆:</label>
<input type="text" name="zcOrderMain.licensePlate"/>
</li>
<li>
<label>订单编号:</label>
<input type="text" name="orderNo"/>
</li>
<li class="select-time">
<label>下单时间: </label>
<input type="text" class="time-input" id="beginFirstOrderTime" placeholder="开始时间" name="params[beginFirstOrderTime]"/>
<span>-</span>
<input type="text" class="time-input" id="endFirstOrderTime" placeholder="结束时间" name="params[endFirstOrderTime]"/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<!-- <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="orders:distrib:export">-->
<!-- <i class="fa fa-download"></i> 导出-->
<!-- </a>-->
<div class="distrib-statistics">
<div class="statistics-header">
<i class="fa fa-circle-o-notch text-blue"></i>
<span class="title"> <span th:text="${@dict.getLabel('key_order_distrib_type', zcOrderDistrib.distribType)}"></span>分成收益</span>
</div>
<div class="statistics-content">
<div class="stat-item">
<div class="label">订单总数</div>
<div class="value">0笔</div>
</div>
<div class="stat-item">
<div class="label">订单金额</div>
<div class="value">0元</div>
</div>
<div class="stat-item">
<div class="label">分成金额</div>
<div class="value">0元</div>
</div>
</div>
</div>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var editFlag = [[${@permission.hasPermi('orders:distrib:edit')}]];
var removeFlag = [[${@permission.hasPermi('orders:distrib:remove')}]];
var orderStatusDatas = [[${@dict.getType('key_order_status')}]];
var rentalTypeDatas = [[${@dict.getType('key_order_rental_type')}]];
var depositFreeDatas = [[${@dict.getType('key_rent_deposit_free')}]];
var autoDeductDatas = [[${@dict.getType('key_rent_auto_deduct')}]];
var prefix = ctx + "orders/distrib";
$(function() {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "订单分成统计",
columns: [{
checkbox: true
},
{
field: 'id',
title: 'ID',
visible: false
},
{
field: 'orderId',
title: '订单编号',
visible: false
},
{
field: 'zcOrderMain.operatorName',
title: '所属运营商',
width: '120px'
},
{
field: 'zcOrderMain.storeName',
title: '所属门店',
width: '120px'
},
{
field: 'orderNo',
title: '订单编号',
width: '220px',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs btnOption" href="javascript:void(0)" onclick="$.operate.detail(\'' + row.orderId + '\',1300,800)">' + value + '</a> ');
return actions.join('');
}
},
{
field: 'zcOrderMain.licensePlate',
title: '车架号',
width: '120px'
},
{
field: 'zcOrderMain.customerName',
title: '客户姓名',
width: '120px'
},
{
field: 'customerPhone',
title: '联系电话',
width: '120px'
},
{
field: 'zcOrderMain.rentalType',
title: '租赁类型',
width: '120px',
formatter: function(value, row, index) {
return $.table.selectDictLabel(rentalTypeDatas, value);
}
},
{
field: 'zcOrderMain.rentalPrice',
title: '租赁价格(元)',
width: '120px'
},
{
field: 'zcOrderMain.depositPrice',
title: '支付押金(元)',
width: '120px'
},
{
field: 'zcOrderMain.rentalDays',
title: '租赁天数',
width: '120px'
},
{
field: 'zcOrderMain.orderAmount',
title: '租金总额',
width: '120px'
},
{
field: 'zcOrderMain.firstOrderTime',
title: '首次下单时间',
width: '160px'
},
{
field: 'zcOrderMain.orderStatus',
title: '订单状态',
width: '120px',
formatter: function(value, row, index) {
return $.table.selectDictLabel(orderStatusDatas, value);
}
},
{
field: 'distribRate',
title: '分配比例'
},
{
field: 'distribAmount',
title: '分配金额'
}],
onLoadSuccess: function(data) {
loadSummaryStats(); // 表格加载成功后加载统计信息
}
};
$.table.init(options);
});
function loadSummaryStats() {
var formData = $("#formId").serialize();
$.ajax({
url: prefix + "/summary",
type: "post",
data: formData,
success: function(result) {
if (result) {
// 更新统计信息
$(".stat-item:eq(0) .value").text(formatAmount(result.orderCount) + "笔");
$(".stat-item:eq(1) .value").text(formatAmount(result.totalOrderAmount) + "元");
$(".stat-item:eq(2) .value").text(formatNumber(result.totalDistribAmount)+ "元");
}
}
});
}
function formatAmount(amount) {
if (amount == null) return "0";
return parseFloat(amount).toLocaleString('zh-CN', {maximumFractionDigits: 2});
}
function formatNumber(num) {
if (num == null) return "0";
return parseInt(num).toLocaleString('zh-CN');
}
// 修改搜索和重置函数
var originalSearch = $.table.search;
$.table.search = function() {
originalSearch.call(this);
loadSummaryStats(); // 搜索后加载统计信息
};
var originalReset = $.form.reset;
$.form.reset = function() {
originalReset.call(this);
loadSummaryStats(); // 重置后加载统计信息
};
</script>
</body>
</html>

View File

@ -0,0 +1,68 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('修改订单分成统计')" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-distrib-edit" th:object="${zcOrderDistrib}">
<input name="id" th:field="*{id}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label is-required">关联的订单ID</label>
<div class="col-sm-8">
<input name="orderId" th:field="*{orderId}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">订单编号:</label>
<div class="col-sm-8">
<input name="orderNo" th:field="*{orderNo}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">运营商id</label>
<div class="col-sm-8">
<input name="companyId" th:field="*{companyId}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">运营商id</label>
<div class="col-sm-8">
<input name="storeId" th:field="*{storeId}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">引荐人id</label>
<div class="col-sm-8">
<input name="referralUserId" th:field="*{referralUserId}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">分配比例:</label>
<div class="col-sm-8">
<input name="distribRate" th:field="*{distribRate}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">分配金额:</label>
<div class="col-sm-8">
<input name="distribAmount" th:field="*{distribAmount}" class="form-control" type="text" required>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var prefix = ctx + "orders/distrib";
$("#form-distrib-edit").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/edit", $('#form-distrib-edit').serialize());
}
}
</script>
</body>
</html>

View File

@ -252,9 +252,18 @@
{
field: 'paymentId',
align: 'center',
title: '支付'
title: '支付ID'
},
{
field: 'transactionId',
align: 'center',
title: '平台支付流水号'
},
{
field: 'payStatus',
align: 'center',
title: '支付状态'
},
{
field: 'paidAt',
align: 'center',

View File

@ -119,7 +119,17 @@
},
{
field: 'paymentId',
title: '支付方式'
title: '支付ID'
},
{
field: 'transactionId',
align: 'center',
title: '平台支付流水号'
},
{
field: 'payStatus',
align: 'center',
title: '支付状态'
},
{
field: 'paidAt',