You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
193 lines
7.5 KiB
193 lines
7.5 KiB
<?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.example.demo.mapper.OneMapper">
|
|
|
|
<!-- 第一个查询:getOne -->
|
|
<select id="getOne" resultType="com.example.demo.domain.work.One">
|
|
SELECT
|
|
COALESCE((SELECT SUM(recharge_coin + free_coin + task_coin)
|
|
FROM detail_y
|
|
WHERE DATE(create_time) = CURDATE()
|
|
<if test="areas != null">
|
|
AND area IN
|
|
<foreach collection="areas" item="areas" open="(" separator="," close=")">
|
|
#{areas}
|
|
</foreach>
|
|
</if>), 0) AS differr,
|
|
|
|
COALESCE((SELECT SUM(free_6 + free_12 + core_jb + buy_jb)
|
|
FROM user_gold
|
|
left join user on user.jwcode = user_gold.jwcode
|
|
<where> <if test="areas != null">
|
|
area IN
|
|
<foreach collection="areas" item="areas" open="(" separator="," close=")">
|
|
#{areas}
|
|
</foreach>
|
|
</if>
|
|
</where>), 0) AS sumgold,
|
|
|
|
COALESCE((SELECT SUM(buy_jb)
|
|
FROM user_gold
|
|
left join user on user.jwcode = user_gold.jwcode
|
|
<where> <if test="areas != null">
|
|
area IN
|
|
<foreach collection="areas" item="areas" open="(" separator="," close=")">
|
|
#{areas}
|
|
</foreach>
|
|
</if>
|
|
</where>), 0) AS rechargegold,
|
|
|
|
COALESCE((SELECT SUM(free_6)
|
|
FROM user_gold
|
|
left join user on user.jwcode = user_gold.jwcode
|
|
<where> <if test="areas != null">
|
|
area IN
|
|
<foreach collection="areas" item="areas" open="(" separator="," close=")">
|
|
#{areas}
|
|
</foreach>
|
|
</if>
|
|
</where>), 0) AS sfreegold,
|
|
|
|
COALESCE((SELECT SUM(free_12)
|
|
FROM user_gold
|
|
left join user on user.jwcode = user_gold.jwcode
|
|
<where> <if test="areas != null">
|
|
area IN
|
|
<foreach collection="areas" item="areas" open="(" separator="," close=")">
|
|
#{areas}
|
|
</foreach>
|
|
</if>
|
|
</where>), 0) AS dfreegold,
|
|
|
|
COALESCE((SELECT SUM(core_jb)
|
|
FROM user_gold
|
|
left join user on user.jwcode = user_gold.jwcode
|
|
<where> <if test="areas != null">
|
|
area IN
|
|
<foreach collection="areas" item="areas" open="(" separator="," close=")">
|
|
#{areas}
|
|
</foreach>
|
|
</if>
|
|
</where>), 0) AS taskgold,
|
|
|
|
COALESCE((SELECT SUM(free_6) + SUM(free_12)
|
|
FROM user_gold
|
|
left join user on user.jwcode = user_gold.jwcode
|
|
<where> <if test="areas != null">
|
|
area IN
|
|
<foreach collection="areas" item="areas" open="(" separator="," close=")">
|
|
#{areas}
|
|
</foreach>
|
|
</if>
|
|
</where>), 0) AS freegold;
|
|
</select>
|
|
|
|
<!-- 第二个查询:getTwo -->
|
|
<select id="getTwo" resultType="com.example.demo.domain.work.Two">
|
|
SELECT
|
|
COALESCE(SUM(CASE WHEN year_flag = 1 THEN total_coin ELSE 0 END), 0) AS totalgold,
|
|
COALESCE(SUM(CASE WHEN year_flag = 1 THEN recharge_coin ELSE 0 END), 0) AS totalcoin,
|
|
COALESCE(SUM(CASE WHEN yesterday_flag = 1 THEN total_coin ELSE 0 END), 0) AS yesterdaytotal,
|
|
COALESCE(SUM(CASE WHEN yesterday_flag = 1 THEN recharge_coin ELSE 0 END), 0) AS yesterdayrecharge,
|
|
COALESCE(SUM(CASE WHEN year_flag = 1 THEN recharge_coin ELSE 0 END), 0) AS rechargegold,
|
|
COALESCE(SUM(CASE WHEN year_flag = 1 THEN free_coin ELSE 0 END), 0) AS freegold,
|
|
COALESCE(SUM(CASE WHEN year_flag = 1 THEN task_coin ELSE 0 END), 0) AS taskgold
|
|
FROM (
|
|
SELECT
|
|
recharge_coin,
|
|
free_coin,
|
|
task_coin,
|
|
recharge_coin + free_coin + task_coin AS total_coin,
|
|
YEAR(create_time) = YEAR(CURDATE()) AS year_flag,
|
|
DATE(create_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY) AS yesterday_flag
|
|
FROM detail_y
|
|
WHERE update_type = 0
|
|
<if test="areas != null">
|
|
AND area IN
|
|
<foreach collection="areas" item="areas" open="(" separator="," close=")">
|
|
#{area}
|
|
</foreach>
|
|
</if>
|
|
) AS subquery
|
|
</select>
|
|
|
|
<!-- 第三个查询:getThree -->
|
|
<select id="getThree" resultType="com.example.demo.domain.work.Three">
|
|
SELECT
|
|
COALESCE((SELECT SUM(recharge_coin + free_coin + task_coin)
|
|
FROM detail_y
|
|
WHERE YEAR(create_time) = YEAR(CURDATE())
|
|
AND update_type = 1
|
|
<if test="areas != null">
|
|
AND area IN
|
|
<foreach collection="areas" item="areas" open="(" separator="," close=")">
|
|
#{areas}
|
|
</foreach>
|
|
</if>), 0) AS consumeGold,
|
|
|
|
COALESCE((SELECT SUM(recharge_coin + free_coin + task_coin)
|
|
FROM detail_y
|
|
WHERE YEAR(create_time) = YEAR(CURDATE())
|
|
AND update_type = 2
|
|
<if test="areas != null">
|
|
AND area IN
|
|
<foreach collection="areas" item="areas" open="(" separator="," close=")">
|
|
#{areas}
|
|
</foreach>
|
|
</if>), 0) AS refundcoin,
|
|
|
|
COALESCE((SELECT SUM(recharge_coin + free_coin + task_coin)
|
|
FROM detail_y
|
|
WHERE DATE(create_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
|
|
AND update_type = 1
|
|
<if test="areas != null">
|
|
AND area IN
|
|
<foreach collection="areas" item="areas" open="(" separator="," close=")">
|
|
#{areas}
|
|
</foreach>
|
|
</if>), 0) AS yesterdayGold,
|
|
|
|
COALESCE((SELECT SUM(recharge_coin)
|
|
FROM detail_y
|
|
WHERE DATE(create_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
|
|
AND update_type = 2
|
|
<if test="areas != null">
|
|
AND area IN
|
|
<foreach collection="areas" item="areas" open="(" separator="," close=")">
|
|
#{areas}
|
|
</foreach>
|
|
</if>), 0) AS yesterdayrefund,
|
|
COALESCE((SELECT SUM(recharge_coin)
|
|
FROM detail_y
|
|
WHERE YEAR(create_time) = YEAR(CURDATE())
|
|
AND update_type = 1
|
|
<if test="areas != null">
|
|
AND area IN
|
|
<foreach collection="areas" item="areas" open="(" separator="," close=")">
|
|
#{areas}
|
|
</foreach>
|
|
</if>), 0) AS rechargegold,
|
|
COALESCE((SELECT SUM(task_coin)
|
|
FROM detail_y
|
|
WHERE YEAR(create_time) = YEAR(CURDATE())
|
|
AND update_type = 1
|
|
<if test="areas != null">
|
|
AND area IN
|
|
<foreach collection="areas" item="areas" open="(" separator="," close=")">
|
|
#{areas}
|
|
</foreach>
|
|
</if>), 0) AS taskgold,
|
|
COALESCE((SELECT SUM(free_coin)
|
|
FROM detail_y
|
|
WHERE YEAR(create_time) = YEAR(CURDATE())
|
|
AND update_type = 1
|
|
<if test="areas != null">
|
|
AND area IN
|
|
<foreach collection="areas" item="areas" open="(" separator="," close=")">
|
|
#{areas}
|
|
</foreach>
|
|
</if>), 0) AS freegold
|
|
</select>
|
|
</mapper>
|