<?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.admin.mapper.OrderMapper">
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.ruoyi.admin.entity.Order">
|
<id column="id" property="id"/>
|
<result column="site_id" property="siteId"/>
|
<result column="site_name" property="siteName"/>
|
<result column="serve_id" property="serveId"/>
|
<result column="serve_name" property="serveName"/>
|
<result column="reservation_name" property="reservationName"/>
|
<result column="reservation_phone" property="reservationPhone"/>
|
<result column="reservation_address" property="reservationAddress"/>
|
<result column="time" property="time"/>
|
<result column="server_id" property="serverId"/>
|
<result column="server_name" property="serverName"/>
|
<result column="reservation_remark" property="reservationRemark"/>
|
<result column="state" property="state"/>
|
<result column="createBy" property="createBy"/>
|
<result column="updateBy" property="updateBy"/>
|
<result column="createTime" property="createTime"/>
|
<result column="updateTime" property="updateTime"/>
|
<result column="is_delete" property="isDelete"/>
|
</resultMap>
|
|
|
<select id="orderCountByYear" resultType="com.ruoyi.admin.vo.OrderQueryVO">
|
SELECT DATE_FORMAT(createTime, '%Y-%m') AS dateTime, COUNT(*) AS number, sum(serve_price) as totalPrice
|
FROM t_order
|
<where>
|
YEAR(createTime) = YEAR(NOW())
|
<!--<if test="ids != null and ids.size() != 0">
|
and city_id in
|
<foreach collection="ids" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
</if>-->
|
<if test="orderState != null and orderState != ''">
|
and state = #{orderState}
|
</if>
|
<if test="startTime != null and startTime != ''">
|
and createTime <![CDATA[ >= ]]> #{startTime}
|
</if>
|
<if test="endTime != null and endTime != ''">
|
and createTime <![CDATA[ <= ]]> #{endTime}
|
</if>
|
</where>
|
GROUP BY DATE_FORMAT(createTime, '%Y-%m')
|
order by dateTime
|
</select>
|
|
<select id="orderCountByWeek" resultType="com.ruoyi.admin.vo.OrderQueryVO">
|
SELECT DATE_FORMAT(createTime, '%Y-%m-%d') AS dateTime, COUNT(*) AS number, sum(serve_price) as totalPrice
|
FROM t_order
|
<where>
|
YEARWEEK(DATE_FORMAT(createTime, '%Y-%m-%d')) = YEARWEEK(NOW())
|
<!--<if test="ids != null and ids.size() != 0">
|
and city_id in
|
<foreach collection="ids" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
</if>-->
|
<if test="orderState != null and orderState != ''">
|
and state = #{orderState}
|
</if>
|
<if test="startTime != null and startTime != ''">
|
and createTime <![CDATA[ >= ]]> #{startTime}
|
</if>
|
<if test="endTime != null and endTime != ''">
|
and createTime <![CDATA[ <= ]]> #{endTime}
|
</if>
|
</where>
|
GROUP BY DATE_FORMAT(createTime, '%Y-%m-%d')
|
order by dateTime
|
</select>
|
|
<select id="orderCountByMonth" resultType="com.ruoyi.admin.vo.OrderQueryVO">
|
SELECT DATE_FORMAT(createTime, '%Y-%m-%d') AS dateTime, COUNT(*) AS number, sum(serve_price) as totalPrice
|
FROM t_order
|
<where>
|
MONTH(createTime) = MONTH(NOW())
|
AND YEAR(createTime) = YEAR(NOW())
|
<!--<if test="ids != null and ids.size() != 0">
|
and city_id in
|
<foreach collection="ids" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
</if>-->
|
<if test="orderState != null and orderState != ''">
|
and state = #{orderState}
|
</if>
|
<if test="startTime != null and startTime != ''">
|
and createTime <![CDATA[ >= ]]> #{startTime}
|
</if>
|
<if test="endTime != null and endTime != ''">
|
and createTime <![CDATA[ <= ]]> #{endTime}
|
</if>
|
</where>
|
GROUP BY DATE_FORMAT(createTime, '%Y-%m-%d')
|
order by dateTime
|
</select>
|
|
<select id="orderCountByToday" resultType="com.ruoyi.admin.vo.OrderQueryVO">
|
SELECT DATE_FORMAT(createTime, '%Y-%m-%d %H') AS dateTime, COUNT(*) AS number, sum(serve_price) as totalPrice
|
FROM t_order
|
<where>
|
DATE(createTime) = CURDATE()
|
<!--<if test="ids != null and ids.size() != 0">
|
and city_id in
|
<foreach collection="ids" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
</if>-->
|
<if test="orderState != null and orderState != ''">
|
and state = #{orderState}
|
</if>
|
<if test="startTime != null and startTime != ''">
|
and createTime <![CDATA[ >= ]]> #{startTime}
|
</if>
|
<if test="endTime != null and endTime != ''">
|
and createTime <![CDATA[ <= ]]> #{endTime}
|
</if>
|
</where>
|
GROUP BY DATE_FORMAT(createTime, '%Y-%m-%d %H')
|
order by dateTime
|
</select>
|
|
<select id="totalMoneyByQuarter" resultType="java.math.BigDecimal">
|
select sum(order_money)
|
from t_order
|
<where>
|
is_delete = 0
|
and state = 4
|
<if test="start != null and start != ''">
|
and createTime <![CDATA[ >= ]]> #{start}
|
</if>
|
<if test="end != null and end != ''">
|
and createTime <![CDATA[ <= ]]> #{end}
|
</if>
|
</where>
|
</select>
|
|
<select id="totalMoneyByYear" resultType="java.math.BigDecimal">
|
SELECT sum(serve_price) as totalPrice
|
FROM t_order
|
where YEAR(createTime) = YEAR(NOW())
|
and is_delete = 0
|
and state = 4
|
</select>
|
|
<select id="totalMoneyByMonth" resultType="java.math.BigDecimal">
|
SELECT sum(serve_price) as totalPrice
|
FROM t_order
|
where MONTH(createTime) = MONTH(NOW())
|
AND YEAR(createTime) = YEAR(NOW())
|
and is_delete = 0
|
and state = 4
|
</select>
|
|
<select id="orderCount" resultType="com.ruoyi.admin.vo.OrderCountVO">
|
SELECT w.real_name AS realName,
|
w.profile_picture as profilePicture,
|
SUM(CASE WHEN o.state = 3 THEN 1 ELSE 0 END) AS toBeCompletedNumber,
|
SUM(CASE WHEN o.state = 4 THEN 1 ELSE 0 END) AS completedNumber,
|
SUM(CASE WHEN o.state = 5 THEN 1 ELSE 0 END) AS reInvestment
|
FROM t_order o
|
LEFT JOIN sys_master_worker w ON o.server_id = w.id
|
WHERE w.is_delete = 0
|
AND o.is_delete = 0
|
<if test="phone != null and phone != ''">
|
and w.phone like concat('%', #{phone}, '%')
|
</if>
|
<if test="name != null and name != ''">
|
and w.real_name like concat('%', #{name}, '%')
|
</if>
|
GROUP BY w.real_name, w.profile_picture
|
</select>
|
</mapper>
|