<?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.system.mapper.TOrderSaleMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.ruoyi.system.domain.TOrderSale">
|
<id column="id" property="id" />
|
<result column="orderTime" property="orderTime" />
|
<result column="remark" property="remark" />
|
<result column="createTime" property="createTime" />
|
<result column="updateTime" property="updateTime" />
|
<result column="disabled" property="disabled" />
|
<result column="createBy" property="createBy" />
|
<result column="updateBy" property="updateBy" />
|
<result column="orderNum" property="orderNum" />
|
<result column="status" property="status" />
|
<result column="orderMoney" property="orderMoney" />
|
<result column="payMoney" property="payMoney" />
|
<result column="shopId" property="shopId" />
|
<result column="generatorId" property="generatorId" />
|
<result column="payType" property="payType" />
|
<result column="isCover" property="isCover" />
|
</resultMap>
|
|
<!-- 通用查询结果列 -->
|
<sql id="Base_Column_List">
|
id, orderTime, remark, createTime, updateTime, disabled, createBy, updateBy, orderNum, status,orderMoney,payMoney,shopId,generatorId,payType,isCover
|
</sql>
|
<delete id="deleteByShopId">
|
delete from t_order_sale where shopId = #{shopId}
|
</delete>
|
<select id="pageList" resultType="com.ruoyi.system.vo.TOrderSaleVO">
|
select id, orderTime, remark, createTime, updateTime, disabled, createBy, updateBy, orderNum, status,orderMoney,payMoney,shopId,generatorId,payType,isCover
|
from t_order_sale
|
<where>
|
<if test="query.orderNum != null and query.orderNum != ''">
|
AND orderNum LIKE concat('%', #{query.orderNum}, '%')
|
</if>
|
<if test="query.payType != null">
|
AND payType = #{query.payType}
|
</if>
|
<if test="query.status != null">
|
AND status = #{query.status}
|
</if>
|
<if test="query.shopId != null">
|
and shopId = #{query.shopId}
|
</if>
|
<if test="query.isCover != null">
|
and isCover = #{query.isCover}
|
</if>
|
<if test="query.generatorId != null">
|
and generatorId = #{query.generatorId}
|
</if>
|
<if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
|
AND (orderTime BETWEEN #{query.startTime} AND #{query.endTime})
|
</if>
|
AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
|
</where>
|
ORDER BY orderTime DESC
|
</select>
|
<select id="amountSum" resultType="com.ruoyi.system.vo.AmountSumVO">
|
select
|
COUNT(id) AS orderCount,
|
IFNULL(SUM(orderMoney),0) AS saleAmount,
|
IFNULL(SUM(payMoney),0) AS payAmount,
|
IFNULL(SUM(orderMoney - IFNULL(payMoney,0)),0) AS obligation
|
from t_order_sale
|
<where>
|
<if test="query.orderNum != null and query.orderNum != ''">
|
AND orderNum LIKE concat('%', #{query.orderNum}, '%')
|
</if>
|
<if test="query.payType != null">
|
AND payType = #{query.payType}
|
</if>
|
<if test="query.status != null">
|
AND status = #{query.status}
|
</if>
|
<if test="query.shopId != null">
|
and shopId = #{query.shopId}
|
</if>
|
<if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
|
AND (orderTime BETWEEN #{query.startTime} AND #{query.endTime})
|
</if>
|
AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
|
AND isCover = 1
|
</where>
|
</select>
|
<select id="salesVolume" resultType="com.ruoyi.system.vo.SalesVolumeVO">
|
select
|
IFNULL(SUM(CASE WHEN payType = 1 THEN payMoney ELSE 0 END),0) AS moneyPay,
|
IFNULL(SUM(CASE WHEN payType = 2 THEN payMoney ELSE 0 END),0) AS aliPay,
|
IFNULL(SUM(CASE WHEN payType = 3 THEN payMoney ELSE 0 END),0) AS weiXinPay,
|
IFNULL(SUM(CASE WHEN payType = 4 THEN payMoney ELSE 0 END),0) AS cardPay,
|
IFNULL(SUM(CASE WHEN payType = 5 THEN payMoney ELSE 0 END),0) AS otherPay
|
from t_order_sale
|
<where>
|
<if test="query.shopId != null">
|
and shopId = #{query.shopId}
|
</if>
|
<if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
|
AND (orderTime BETWEEN #{query.startTime} AND #{query.endTime})
|
</if>
|
AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
|
AND isCover = 1
|
AND status = 2
|
</where>
|
</select>
|
<select id="exportOrderSale" resultType="com.ruoyi.system.vo.TOrderSaleVO">
|
select id, orderTime, remark, createTime, updateTime, disabled, createBy, updateBy, orderNum, status,orderMoney,payMoney,shopId,payType
|
from t_order_sale
|
<where>
|
<if test="query.orderNum != null and query.orderNum != ''">
|
AND orderNum LIKE concat('%', #{query.orderNum}, '%')
|
</if>
|
<if test="query.payType != null">
|
AND payType = #{query.payType}
|
</if>
|
<if test="query.status != null">
|
AND status = #{query.status}
|
</if>
|
<if test="query.shopId != null">
|
and shopId = #{query.shopId}
|
</if>
|
<if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
|
AND (orderTime BETWEEN #{query.startTime} AND #{query.endTime})
|
</if>
|
AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
|
AND isCover = 1
|
</where>
|
ORDER BY orderTime DESC
|
</select>
|
<select id="orderingTrends" resultType="com.ruoyi.system.vo.OrderTrendsVO">
|
select
|
DATE_FORMAT(orderTime, '%Y-%m-%d') AS dayTime,
|
COUNT(id) AS orderCount
|
from t_order_sale
|
<where>
|
<if test="query.shopId != null">
|
AND shopId = #{query.shopId}
|
</if>
|
<if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
|
AND (orderTime BETWEEN #{query.startTime} AND #{query.endTime})
|
</if>
|
AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
|
AND isCover = 1
|
AND status = 2
|
</where>
|
GROUP BY DATE_FORMAT(orderTime, '%Y-%m-%d')
|
</select>
|
<select id="getDataGeneratorSaleDetail" resultType="java.util.Map">
|
SELECT
|
IFNULL(SUM(CASE WHEN payType = 1 THEN payMoney ELSE 0 END),0) AS moneyPay,
|
IFNULL(SUM(CASE WHEN payType = 2 THEN payMoney ELSE 0 END),0) AS aliPay,
|
IFNULL(SUM(CASE WHEN payType = 3 THEN payMoney ELSE 0 END),0) AS weiXinPay,
|
IFNULL(SUM(CASE WHEN payType = 4 THEN payMoney ELSE 0 END),0) AS cardPay,
|
IFNULL(SUM(CASE WHEN payType = 5 THEN payMoney ELSE 0 END),0) AS otherPay
|
from t_order_sale
|
<where>
|
<if test="query.generatorId != null">
|
and generatorId = #{query.generatorId}
|
</if>
|
<if test="query.orderNum != null and query.orderNum != ''">
|
AND orderNum LIKE concat('%', #{query.orderNum}, '%')
|
</if>
|
<if test="query.payType != null">
|
and payType = #{query.payType}
|
</if>
|
<if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
|
AND (orderTime BETWEEN #{query.startTime} AND #{query.endTime})
|
</if>
|
AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
|
</where>
|
</select>
|
<select id="saleGeneratorExport" resultType="com.ruoyi.system.vo.TOrderSaleVO">
|
select id, orderTime, remark, createTime, updateTime, disabled, createBy, updateBy, orderNum, status,orderMoney,payMoney,shopId,payType
|
from t_order_sale
|
<where>
|
<if test="query.generatorId != null">
|
and generatorId = #{query.generatorId}
|
</if>
|
<if test="query.orderNum != null and query.orderNum != ''">
|
AND orderNum LIKE concat('%', #{query.orderNum}, '%')
|
</if>
|
<if test="query.payType != null">
|
and payType = #{query.payType}
|
</if>
|
<if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
|
AND (orderTime BETWEEN #{query.startTime} AND #{query.endTime})
|
</if>
|
AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
|
</where>
|
ORDER BY orderTime DESC
|
</select>
|
<select id="saleGeneratorListExport" resultType="com.ruoyi.system.vo.TDataGeneratorVO">
|
select tdg.id, tdg.userId, tdg.userName, tdg.shopId, tdg.startTime, tdg.endTime, tdg.minMoney, tdg.maxMoney, tdg.status, tdg.createTime,
|
tdg.updateTime, tdg.disabled, tdg.createBy, tdg.updateBy,tdg.orderType,tdg.weiXinPay,tdg.aliPay,tdg.cardPay,tdg.moneyPay,tdg.otherPay,
|
ts.shopName
|
from t_data_generator tdg
|
left join t_shop ts on tdg.shopId = ts.id
|
<where>
|
<if test="query.shopName != null and query.shopName != ''">
|
and ts.shopName like concat('%', #{query.shopName}, '%')
|
</if>
|
<if test="query.userName != null and query.userName != ''">
|
and tdg.userName like concat('%', #{query.userName}, '%')
|
</if>
|
<if test="query.status != null">
|
and tdg.status = #{query.status}
|
</if>
|
<if test="query.ids != null and query.ids.size()>0">
|
and tdg.id IN
|
<foreach collection="query.ids" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
</if>
|
<if test="query.orderType != null">
|
and tdg.orderType = #{query.orderType}
|
</if>
|
<if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
|
AND (tdg.createTime BETWEEN #{query.startTime} AND #{query.endTime})
|
</if>
|
AND tdg.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
|
and tdg.orderType = 2
|
</where>
|
ORDER BY tdg.createTime DESC
|
</select>
|
<select id="profitDetails" resultType="com.ruoyi.system.vo.GoodsProfitVO">
|
SELECT
|
tomg.goodsName,
|
(select typeName from t_goods_type where id = tomg.typeId) AS typeName,
|
IFNULL(SUM( tomg.goodsCount ),0) AS totalSalesCount,
|
IFNULL(SUM( tomg.goodsCount * tomg.thisSalePrice ),0) AS goodsSaleAmount,
|
IFNULL(SUM( tomg.goodsCount * tomg.goodsCostPrice ),0) AS goodsCostAmount,
|
IFNULL(SUM(tomg.goodsCount *(tomg.thisSalePrice - tomg.goodsCostPrice)),0) AS goodsProfitAmount
|
FROM t_order_sale_goods tomg
|
LEFT JOIN t_order_sale tom ON tom.id = tomg.orderId
|
<where>
|
<if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
|
AND (tom.orderTime BETWEEN #{query.startTime} AND #{query.endTime})
|
</if>
|
<if test="query.goodsName != null and query.goodsName != ''">
|
AND tomg.goodsName like concat('%', #{query.goodsName}, '%')
|
</if>
|
<if test="query.typeId != null and query.typeId != ''">
|
AND tomg.typeId = #{query.typeId}
|
</if>
|
<if test="query.shopId != null">
|
AND tom.shopId = #{query.shopId}
|
</if>
|
AND tom.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
|
AND tom.isCover = 1
|
AND tom.status = 2
|
</where>
|
GROUP BY tomg.goodsName
|
</select>
|
<select id="profitDetailsStatistics" resultType="java.util.Map">
|
SELECT
|
IFNULL(SUM(a.goodsSaleAmount),0) AS totalSales,
|
IFNULL(SUM(a.goodsCostAmount),0) AS totalCosts,
|
IFNULL(SUM(a.goodsProfitAmount),0) AS totalProfits
|
FROM (
|
SELECT
|
tomg.goodsName,
|
IFNULL(SUM( tomg.goodsCount ),0) AS totalSalesCount,
|
IFNULL(SUM( tomg.goodsCount * tomg.thisSalePrice ),0) AS goodsSaleAmount,
|
IFNULL(SUM( tomg.goodsCount * tomg.goodsCostPrice ),0) AS goodsCostAmount,
|
IFNULL(SUM(tomg.goodsCount * (tomg.thisSalePrice - tomg.goodsCostPrice)),0) AS goodsProfitAmount
|
FROM t_order_sale_goods tomg
|
LEFT JOIN t_order_sale tom ON tom.id = tomg.orderId
|
<where>
|
<if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
|
AND (tom.orderTime BETWEEN #{query.startTime} AND #{query.endTime})
|
</if>
|
<if test="query.goodsName != null and query.goodsName != ''">
|
AND tomg.goodsName like concat('%', #{query.goodsName}, '%')
|
</if>
|
<if test="query.typeId != null and query.typeId != ''">
|
AND tomg.typeId = #{query.typeId}
|
</if>
|
<if test="query.shopId != null">
|
AND tom.shopId = #{query.shopId}
|
</if>
|
AND tom.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
|
AND tom.isCover = 1
|
AND tom.status = 2
|
</where>
|
GROUP BY tomg.goodsName) a
|
</select>
|
<select id="profitDetailsExport" resultType="com.ruoyi.system.vo.GoodsProfitVO">
|
SELECT
|
tomg.goodsName,
|
(select typeName from t_goods_type where id = tomg.typeId) AS typeName,
|
IFNULL(SUM( tomg.goodsCount ),0) AS totalSalesCount,
|
IFNULL(SUM( tomg.goodsCount * tomg.thisSalePrice ),0) AS goodsSaleAmount,
|
IFNULL(SUM( tomg.goodsCount * tomg.goodsCostPrice ),0) AS goodsCostAmount,
|
IFNULL(SUM(tomg.goodsCount *(tomg.thisSalePrice - tomg.goodsCostPrice)),0) AS goodsProfitAmount
|
FROM t_order_sale_goods tomg
|
LEFT JOIN t_order_sale tom ON tom.id = tomg.orderId
|
<where>
|
<if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
|
AND (tom.orderTime BETWEEN #{query.startTime} AND #{query.endTime})
|
</if>
|
<if test="query.goodsName != null and query.goodsName != ''">
|
AND tomg.goodsName like concat('%', #{query.goodsName}, '%')
|
</if>
|
<if test="query.typeId != null and query.typeId != ''">
|
AND tomg.typeId = #{query.typeId}
|
</if>
|
<if test="query.shopId != null">
|
AND tom.shopId = #{query.shopId}
|
</if>
|
AND tom.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
|
AND tom.isCover = 1
|
AND tom.status = 2
|
</where>
|
GROUP BY tomg.goodsName
|
</select>
|
<select id="getDataGeneratorSaleDetailOrderMoney" resultType="java.util.Map">
|
SELECT
|
IFNULL(SUM(CASE WHEN payType = 1 THEN orderMoney ELSE 0 END),0) AS moneyPay,
|
IFNULL(SUM(CASE WHEN payType = 2 THEN orderMoney ELSE 0 END),0) AS aliPay,
|
IFNULL(SUM(CASE WHEN payType = 3 THEN orderMoney ELSE 0 END),0) AS weiXinPay,
|
IFNULL(SUM(CASE WHEN payType = 4 THEN orderMoney ELSE 0 END),0) AS cardPay,
|
IFNULL(SUM(CASE WHEN payType = 5 THEN orderMoney ELSE 0 END),0) AS otherPay
|
from t_order_sale
|
<where>
|
<if test="query.generatorId != null">
|
and generatorId = #{query.generatorId}
|
</if>
|
<if test="query.orderNum != null and query.orderNum != ''">
|
AND orderNum LIKE concat('%', #{query.orderNum}, '%')
|
</if>
|
<if test="query.payType != null">
|
and payType = #{query.payType}
|
</if>
|
<if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
|
AND (orderTime BETWEEN #{query.startTime} AND #{query.endTime})
|
</if>
|
AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
|
</where>
|
</select>
|
|
</mapper>
|