修改河南项目的管理后台ui和删除之前不需要的游戏

This commit is contained in:
2026-09-22 17:14:18 +08:00
parent 1e256b94e8
commit 687a1f0f98
36 changed files with 327 additions and 309 deletions
@@ -16,13 +16,13 @@ public class RedisConstants {
public static final String SUGAR_GAME_REWARD_POOL_CACHE = "ruoyi:sugar:reward:pool";
public static final String WHEEL_GAME_REWARD_POOL_CACHE = "ruoyi:wheel:reward:pool";
public static final String BULLET_GAME_REWARD_POOL_CACHE = "ruoyi:bullet:reward:pool";
// ========== Olympus 电子游戏 ==========
// 单局进行中缓存:ruoyi:olympus:{userId},存整局步骤,TTL 30 分钟
public static final String OLYMPUS_GAME_CACHE = "ruoyi:olympus:";
// 按箱奖池(水位):ruoyi:olympus:reward:pool:box:{boxId}:bet/:win/:adjust,仅统计真实玩家(白号隔离)
public static final String OLYMPUS_GAME_REWARD_POOL_CACHE = "ruoyi:olympus:reward:pool";
// 一轮内RTP动态收敛账本:Hash ruoyi:olympus:cycle:{boxId}:{audience},字段 drawn/mulSum/conv:{ornamentId}
public static final String OLYMPUS_GAME_CYCLE = "ruoyi:olympus:cycle:";
// ========== 麻将胡了电子游戏 ==========
// 单局进行中缓存:ruoyi:mahjong:{userId},存整局步骤,TTL 30 分钟
public static final String MAHJONG_GAME_CACHE = "ruoyi:mahjong:";
// 一轮内 RTP 收敛账本:Hash ruoyi:mahjong:cycle:{boxId}:{audience}
public static final String MAHJONG_GAME_CYCLE = "ruoyi:mahjong:cycle:";
// 按【箱 × 身份】奖池水位:ruoyi:mahjong:reward:pool:box:{boxId}:{audience}:*
public static final String MAHJONG_GAME_REWARD_POOL_CACHE = "ruoyi:mahjong:reward:pool";
/**
@@ -10,6 +10,7 @@ import com.ruoyi.admin.mapper.TtDeliveryRecordMapper;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.domain.entity.delivery.TtDeliveryRecord;
import com.ruoyi.domain.common.constant.TtAccountRecordSource;
import com.ruoyi.domain.common.constant.TtboxRecordSource;
import com.ruoyi.domain.entity.TtOrder;
import com.ruoyi.domain.entity.TtRechargeConfig;
import com.ruoyi.domain.entity.TtUserBlendErcash;
@@ -150,8 +151,7 @@ public class TtRechargeRecordController extends BaseController {
List<BigDecimal> luckyUpgradeList = new ArrayList<>();
List<BigDecimal> westernDuelList = new ArrayList<>();
List<BigDecimal> wheelList = new ArrayList<>();
List<BigDecimal> roseladyList = new ArrayList<>();
List<BigDecimal> mahjongList = new ArrayList<>();
List<Integer> sources = Arrays.asList(
TtAccountRecordSource.RECHARGE.getCode(),
TtAccountRecordSource.GAME_TYPE_01.getCode(),
@@ -159,8 +159,8 @@ public class TtRechargeRecordController extends BaseController {
TtAccountRecordSource.GOLD_DEVICE.getCode(),
TtAccountRecordSource.BULLET_SPIN.getCode(),
TtAccountRecordSource.LUCKLY_WHEEL_SPIN.getCode(),
TtAccountRecordSource.WHEEL_BET_REFUND.getCode(), // 转盘兜底退款:折线按净口径冲减
TtAccountRecordSource.OLYMPUS_SPIN.getCode());
TtAccountRecordSource.MAHJONG_SPIN.getCode(),
TtAccountRecordSource.WHEEL_BET_REFUND.getCode()); // 转盘兜底退款:折线按净口径冲减
LocalDate today = LocalDate.now();
// bucketKey -> (source -> 金额):原值与绝对值两份
@@ -175,7 +175,7 @@ public class TtRechargeRecordController extends BaseController {
for (int h = 0; h <= 23; h++) {
dateList.add(String.format("%02d:00", h));
appendPoint(Collections.singletonList(String.valueOf(h)), rawByBucket, absByBucket,
rechargeList, boxOpenList, fightBoxOpenList, luckyUpgradeList, westernDuelList, wheelList, roseladyList);
rechargeList, boxOpenList, fightBoxOpenList, luckyUpgradeList, westernDuelList, wheelList, mahjongList);
}
} else if ("week".equals(type)) {
// 按周:近4周,单次查询按日聚合,再在内存中合并为每周
@@ -193,7 +193,7 @@ public class TtRechargeRecordController extends BaseController {
keys.add(d.toString());
}
appendPoint(keys, rawByBucket, absByBucket,
rechargeList, boxOpenList, fightBoxOpenList, luckyUpgradeList, westernDuelList, wheelList, roseladyList);
rechargeList, boxOpenList, fightBoxOpenList, luckyUpgradeList, westernDuelList, wheelList, mahjongList);
}
} else {
// 按天:近7天,单次查询按日聚合
@@ -205,7 +205,7 @@ public class TtRechargeRecordController extends BaseController {
LocalDate date = today.minusDays(i);
dateList.add(date.getMonthValue() + "/" + date.getDayOfMonth());
appendPoint(Collections.singletonList(date.toString()), rawByBucket, absByBucket,
rechargeList, boxOpenList, fightBoxOpenList, luckyUpgradeList, westernDuelList, wheelList, roseladyList);
rechargeList, boxOpenList, fightBoxOpenList, luckyUpgradeList, westernDuelList, wheelList, mahjongList);
}
}
@@ -217,7 +217,7 @@ public class TtRechargeRecordController extends BaseController {
result.put("luckyUpgradeList", luckyUpgradeList);
result.put("westernDuelList", westernDuelList);
result.put("wheelList", wheelList);
result.put("roseladyList", roseladyList);
result.put("mahjongList", mahjongList);
return com.ruoyi.common.core.domain.R.ok(result);
}
@@ -250,15 +250,15 @@ public class TtRechargeRecordController extends BaseController {
List<BigDecimal> rechargeList, List<BigDecimal> boxOpenList,
List<BigDecimal> fightBoxOpenList, List<BigDecimal> luckyUpgradeList,
List<BigDecimal> westernDuelList, List<BigDecimal> wheelList,
List<BigDecimal> roseladyList) {
List<BigDecimal> mahjongList) {
BigDecimal recharge = BigDecimal.ZERO;
BigDecimal box = BigDecimal.ZERO;
BigDecimal fightBox = BigDecimal.ZERO;
BigDecimal luckyUpgrade = BigDecimal.ZERO;
BigDecimal westernDuel = BigDecimal.ZERO;
BigDecimal wheel = BigDecimal.ZERO;
BigDecimal mahjong = BigDecimal.ZERO;
BigDecimal wheelRefund = BigDecimal.ZERO;
BigDecimal roselady = BigDecimal.ZERO;
for (String key : bucketKeys) {
Map<Integer, BigDecimal> raw = rawByBucket.getOrDefault(key, Collections.emptyMap());
Map<Integer, BigDecimal> abs = absByBucket.getOrDefault(key, Collections.emptyMap());
@@ -268,8 +268,8 @@ public class TtRechargeRecordController extends BaseController {
luckyUpgrade = luckyUpgrade.add(abs.getOrDefault(TtAccountRecordSource.GOLD_DEVICE.getCode(), BigDecimal.ZERO));
westernDuel = westernDuel.add(abs.getOrDefault(TtAccountRecordSource.BULLET_SPIN.getCode(), BigDecimal.ZERO));
wheel = wheel.add(abs.getOrDefault(TtAccountRecordSource.LUCKLY_WHEEL_SPIN.getCode(), BigDecimal.ZERO));
mahjong = mahjong.add(abs.getOrDefault(TtAccountRecordSource.MAHJONG_SPIN.getCode(), BigDecimal.ZERO));
wheelRefund = wheelRefund.add(abs.getOrDefault(TtAccountRecordSource.WHEEL_BET_REFUND.getCode(), BigDecimal.ZERO));
roselady = roselady.add(abs.getOrDefault(TtAccountRecordSource.OLYMPUS_SPIN.getCode(), BigDecimal.ZERO));
}
rechargeList.add(recharge);
boxOpenList.add(box);
@@ -278,7 +278,7 @@ public class TtRechargeRecordController extends BaseController {
westernDuelList.add(westernDuel);
// 转盘取净口径:消费 − 兜底退款(退款局的注单没进奖池,毛口径会与奖池统计对不上)
wheelList.add(wheel.subtract(wheelRefund).max(BigDecimal.ZERO));
roseladyList.add(roselady);
mahjongList.add(mahjong);
}
/**
@@ -375,7 +375,7 @@ public class TtRechargeRecordController extends BaseController {
/**
* 实时RTP(Return To Player)统计:当日各游戏的投注/奖励/RTP百分比。
* 唯一化改造后所有产出先入背包,返奖统一按 tt_box_records 今日产出(按 source 分组、不看 status)统计,
* 投注仍取 tt_user_blend_ercash 各游戏消费 source;覆盖全部 8 个产出游戏(含玫瑰女郎)。
* 投注仍取 tt_user_blend_ercash 各游戏消费 source;覆盖全部 8 个产出游戏(含麻将胡了)。
*/
@GetMapping("/realTimeRtp")
public AjaxResult realTimeRtp() {
@@ -383,8 +383,9 @@ public class TtRechargeRecordController extends BaseController {
Timestamp startOfDay = Timestamp.valueOf(today.atStartOfDay());
Timestamp endOfDay = Timestamp.valueOf(today.plusDays(1).atStartOfDay());
// 投注 source:7 个游戏消费(含 Roll房=6、荒野争锋=34)+ 玫瑰女郎=60 + 转盘兜底退款=64(净口径冲减用)
List<Integer> betSources = Arrays.asList(2, 4, 6, 34, 38, 40, 50, 60,
// 投注 source:8 个游戏消费(含 Roll房=6、荒野争锋=34、麻将胡了=68)+ 转盘兜底退款=64(净口径冲减用)
List<Integer> betSources = Arrays.asList(2, 4, 6, 34, 38, 40, 50,
TtAccountRecordSource.MAHJONG_SPIN.getCode(),
TtAccountRecordSource.WHEEL_BET_REFUND.getCode());
// 一次查询获取所有投注 source 的聚合数据,避免 N+1
@@ -416,11 +417,11 @@ public class TtRechargeRecordController extends BaseController {
{40, 4}, // 幸运升级
{2, 1}, // 经典开箱
{4, 2}, // 对战
{6, 3}, // Roll 房(索引 5)
{6, 3}, // Roll 房(索引 5,勿动:下方 i == 5 分支依赖此下标)
{34, 12}, // 荒野争锋
{60, 13} // 玫瑰女郎(索引 7,投注=60,背包=13)
{TtAccountRecordSource.MAHJONG_SPIN.getCode(), TtboxRecordSource.MAHJONG_BOX.getCode()} // 麻将胡了(新游戏)
};
String[] gameNames = {"极速糖果", "疯狂转盘", "幸运升级", "经典开箱", "对战", "Roll 房", "荒野争锋", "玫瑰女郎"};
String[] gameNames = {"极速糖果", "疯狂转盘", "幸运升级", "经典开箱", "对战", "Roll 房", "荒野争锋", "麻将胡了"};
List<Map<String, Object>> data = new ArrayList<>();
BigDecimal rollRoomBet = BigDecimal.ZERO;
@@ -47,7 +47,7 @@ public class TtUserAmountRecordsController extends BaseController {
/** 聚合类排序字段集合(这些字段需要全局排序,不能用当页排序) */
private static final java.util.Set<String> AGG_SORT_FIELDS = java.util.Set.of(
"totalRecharge", "totalTurnover", "classicBox", "fightGame",
"luckyUpgrade", "wheelGame", "olympusGame", "rollRoom");
"luckyUpgrade", "wheelGame", "mahjongGame", "rollRoom");
/**
* 用户流水统计列表
@@ -158,7 +158,7 @@ public class TtBoxServiceImpl extends ServiceImpl<TtBoxMapper, TtBox> implements
String formattedDate = StringUtils.isNull(date) ? dateFormat.format(DateUtils.getNowDate()) : dateFormat.format(date);
// 对战宝箱(is_fight='0')与经典宝箱只统计各自的开箱渠道:对战=急速对战(source=2),经典=常规开箱(source=0/1),
// 指数盲盒/roll房/幸运升级/福利开箱/荒野争锋/玫瑰女郎等其他电子游戏的开箱不计入本统计。
// 指数盲盒/roll房/幸运升级/福利开箱/荒野争锋/麻将胡了等其他电子游戏的开箱不计入本统计。
// 对战开箱记录先按常规开箱(source=1)落库,一轮对战结束后才改成急速对战(source=2),两个来源都算才不会漏掉中途中断的对局。
boolean fightBox = "0".equals(ttBox.getIsFight());
List<Integer> sources = fightBox
@@ -2293,7 +2293,7 @@ public class TtUserServiceImpl extends ServiceImpl<TtUserMapper, TtUser> impleme
return;
}
// 根据游戏类型确定佣金比例和来源码
// 根据游戏类型确定佣金比例和来源码(新游戏=麻将胡了,走 newGameCommissionRate)
BigDecimal rate = BigDecimal.ZERO;
TtAccountRecordSource commissionSource = TtAccountRecordSource.GAME_CONSUME_COMMISSION;
if (TtAccountRecordSource.isNewGameConsumeForCommission(source.getCode())) {
@@ -71,12 +71,12 @@ public class WebsiteSetupServiceImpl implements WebsiteSetupService {
parameterSetting.setWesternDuelMaintenance(getConfigValue(parameterSettingMap, "westernDuelMaintenance"));
parameterSetting.setLuckyUpgradeMaintenance(getConfigValue(parameterSettingMap, "luckyUpgradeMaintenance"));
parameterSetting.setWheelMaintenance(getConfigValue(parameterSettingMap, "wheelMaintenance"));
// 玫瑰女郎维护配置(对应键 olympusMaintenance,可能不存在,安全读取,兜底 "0")
List<ConfigData> olympusMaintenanceList = parameterSettingMap.get("olympusMaintenance");
if (olympusMaintenanceList != null && !olympusMaintenanceList.isEmpty()) {
parameterSetting.setOlympusMaintenance(olympusMaintenanceList.get(0).getConfigValue());
// 麻将胡了维护配置(对应键 mahjongMaintenance,可能不存在,安全读取,兜底 "0")
List<ConfigData> mahjongMaintenanceList = parameterSettingMap.get("mahjongMaintenance");
if (mahjongMaintenanceList != null && !mahjongMaintenanceList.isEmpty()) {
parameterSetting.setMahjongMaintenance(mahjongMaintenanceList.get(0).getConfigValue());
} else {
parameterSetting.setOlympusMaintenance("0");
parameterSetting.setMahjongMaintenance("0");
}
// 充值渠道维护配置(可能不存在,安全读取,兜底 "0")
List<ConfigData> rechargeMaintenanceList = parameterSettingMap.get("rechargeMaintenance");
@@ -151,7 +151,7 @@ public class WebsiteSetupServiceImpl implements WebsiteSetupService {
westernDuelMaintenance = parameterSettingBody.getWesternDuelMaintenance(),
luckyUpgradeMaintenance = parameterSettingBody.getLuckyUpgradeMaintenance(),
wheelMaintenance = parameterSettingBody.getWheelMaintenance(),
olympusMaintenance = parameterSettingBody.getOlympusMaintenance();
mahjongMaintenance = parameterSettingBody.getMahjongMaintenance();
List<ConfigData> parameterSettingList = websiteSetupMapper.selectParameterSettingList();
Map<String, List<ConfigData>> parameterSettingMap = parameterSettingList.stream().collect(Collectors.groupingBy(ConfigData::getConfigKey));
List<ConfigData> updateList = new ArrayList<>();
@@ -174,7 +174,7 @@ public class WebsiteSetupServiceImpl implements WebsiteSetupService {
setConfigValue(parameterSettingMap, "westernDuelMaintenance", westernDuelMaintenance, updateList);
setConfigValue(parameterSettingMap, "luckyUpgradeMaintenance", luckyUpgradeMaintenance, updateList);
setConfigValue(parameterSettingMap, "wheelMaintenance", wheelMaintenance, updateList);
setConfigValue(parameterSettingMap, "olympusMaintenance", olympusMaintenance, updateList);
setConfigValue(parameterSettingMap, "mahjongMaintenance", mahjongMaintenance, updateList);
// 充值渠道维护配置(安全读写,不存在时跳过,避免未执行 SQL 时报错)
String rechargeMaintenance = parameterSettingBody.getRechargeMaintenance();
List<ConfigData> rechargeMaintenanceUpdateList = parameterSettingMap.get("rechargeMaintenance");
@@ -516,7 +516,7 @@
GROUP BY user_id
</select>
<!-- 今日游戏饰品返奖总额:唯一化改造后所有产出先入背包,按产出统计全部8个游戏(1,2,3,4,11,12,13,99,含玫瑰女郎),不看status(含当日已分解) -->
<!-- 今日游戏饰品返奖总额:唯一化改造后所有产出先入背包,按产出统计全部8个游戏(1,2,3,4,11,12,15,99,含麻将胡了),不看status(含当日已分解) -->
<select id="todayOrnamentRewardTotal" resultType="java.math.BigDecimal">
SELECT COALESCE(SUM(tbr.ornaments_price), 0)
FROM tt_box_records tbr
@@ -525,13 +525,13 @@
AND ttu.user_type != '03'
AND ttu.status != '1'
AND ttu.del_flag = '0'
WHERE tbr.source IN (1, 2, 3, 4, 11, 12, 13, 99)
WHERE tbr.source IN (1, 2, 3, 4, 11, 12, 15, 99)
AND tbr.create_time >= #{startOfDay}
AND tbr.create_time &lt; #{endOfDay}
</select>
<!-- 历史游戏饰品返奖总额:与今日总返奖(todayOrnamentRewardTotal)同口径,仅不限时间范围;
覆盖全部8个游戏(1,2,3,4,11,12,13,99,含玫瑰女郎),不看status(含已分解),排除无效用户 -->
覆盖全部8个游戏(1,2,3,4,11,12,15,99,含麻将胡了),不看status(含已分解),排除无效用户 -->
<select id="historyOrnamentRewardTotal" resultType="java.math.BigDecimal">
SELECT COALESCE(SUM(tbr.ornaments_price), 0)
FROM tt_box_records tbr
@@ -540,7 +540,7 @@
AND ttu.user_type != '03'
AND ttu.status != '1'
AND ttu.del_flag = '0'
WHERE tbr.source IN (1, 2, 3, 4, 11, 12, 13, 99)
WHERE tbr.source IN (1, 2, 3, 4, 11, 12, 15, 99)
</select>
<select id="todayOrnamentRewardBySource" resultType="java.util.Map">
@@ -551,7 +551,7 @@
AND ttu.user_type != '03'
AND ttu.status != '1'
AND ttu.del_flag = '0'
WHERE tbr.source IN (1, 2, 3, 4, 11, 12, 13, 99)
WHERE tbr.source IN (1, 2, 3, 4, 11, 12, 15, 99)
AND tbr.create_time >= #{startOfDay}
AND tbr.create_time &lt; #{endOfDay}
GROUP BY tbr.source
@@ -500,7 +500,7 @@
COALESCE(agg.fightGame, 0) AS `fightGame`,
COALESCE(agg.luckyUpgrade, 0) AS `luckyUpgrade`,
COALESCE(agg.wheelGame, 0) AS `wheelGame`,
COALESCE(agg.olympusGame, 0) AS `olympusGame`,
COALESCE(agg.mahjongGame, 0) AS `mahjongGame`,
COALESCE(agg.rollRoom, 0) AS `rollRoom`
FROM (
SELECT user_id, nick_name, user_name, phone_number, user_type
@@ -519,14 +519,14 @@
SELECT
e.user_id,
SUM(CASE WHEN e.type = 1 AND e.source = 1 THEN e.amount ELSE 0 END) AS totalRecharge,
SUM(CASE WHEN e.type = 0 AND e.source IN (2, 4, 40, 38, 60) THEN ABS(e.total) ELSE 0 END)
SUM(CASE WHEN e.type = 0 AND e.source IN (2, 4, 40, 38, 68) THEN ABS(e.total) ELSE 0 END)
+ SUM(CASE WHEN e.type = 0 AND e.source = 59 THEN ABS(e.amount) ELSE 0 END)
- SUM(CASE WHEN e.type = 1 AND e.source = 56 AND e.amount > 0 THEN e.amount ELSE 0 END) AS totalTurnover,
SUM(CASE WHEN e.type = 0 AND e.source = 2 THEN ABS(e.total) ELSE 0 END) AS classicBox,
SUM(CASE WHEN e.type = 0 AND e.source = 4 THEN ABS(e.total) ELSE 0 END) AS fightGame,
SUM(CASE WHEN e.type = 0 AND e.source = 40 THEN ABS(e.total) ELSE 0 END) AS luckyUpgrade,
SUM(CASE WHEN e.type = 0 AND e.source = 38 THEN ABS(e.total) ELSE 0 END) AS wheelGame,
SUM(CASE WHEN e.type = 0 AND e.source = 60 THEN ABS(e.total) ELSE 0 END) AS olympusGame,
SUM(CASE WHEN e.type = 0 AND e.source = 68 THEN ABS(e.total) ELSE 0 END) AS mahjongGame,
SUM(CASE WHEN e.type = 0 AND e.source = 59 THEN ABS(e.amount) ELSE 0 END)
- SUM(CASE WHEN e.type = 1 AND e.source = 56 AND e.amount > 0 THEN e.amount ELSE 0 END) AS rollRoom
FROM (
@@ -573,7 +573,7 @@
COALESCE(agg.fightGame, 0) AS `fightGame`,
COALESCE(agg.luckyUpgrade, 0) AS `luckyUpgrade`,
COALESCE(agg.wheelGame, 0) AS `wheelGame`,
COALESCE(agg.olympusGame, 0) AS `olympusGame`,
COALESCE(agg.mahjongGame, 0) AS `mahjongGame`,
COALESCE(agg.rollRoom, 0) AS `rollRoom`
FROM (
SELECT user_id, nick_name, user_name, phone_number, user_type
@@ -590,14 +590,14 @@
SELECT
e.user_id,
SUM(CASE WHEN e.type = 1 AND e.source = 1 THEN e.amount ELSE 0 END) AS totalRecharge,
SUM(CASE WHEN e.type = 0 AND e.source IN (2, 4, 40, 38, 60) THEN ABS(e.total) ELSE 0 END)
SUM(CASE WHEN e.type = 0 AND e.source IN (2, 4, 40, 38, 68) THEN ABS(e.total) ELSE 0 END)
+ SUM(CASE WHEN e.type = 0 AND e.source = 59 THEN ABS(e.amount) ELSE 0 END)
- SUM(CASE WHEN e.type = 1 AND e.source = 56 AND e.amount > 0 THEN e.amount ELSE 0 END) AS totalTurnover,
SUM(CASE WHEN e.type = 0 AND e.source = 2 THEN ABS(e.total) ELSE 0 END) AS classicBox,
SUM(CASE WHEN e.type = 0 AND e.source = 4 THEN ABS(e.total) ELSE 0 END) AS fightGame,
SUM(CASE WHEN e.type = 0 AND e.source = 40 THEN ABS(e.total) ELSE 0 END) AS luckyUpgrade,
SUM(CASE WHEN e.type = 0 AND e.source = 38 THEN ABS(e.total) ELSE 0 END) AS wheelGame,
SUM(CASE WHEN e.type = 0 AND e.source = 60 THEN ABS(e.total) ELSE 0 END) AS olympusGame,
SUM(CASE WHEN e.type = 0 AND e.source = 68 THEN ABS(e.total) ELSE 0 END) AS mahjongGame,
SUM(CASE WHEN e.type = 0 AND e.source = 59 THEN ABS(e.amount) ELSE 0 END)
- SUM(CASE WHEN e.type = 1 AND e.source = 56 AND e.amount > 0 THEN e.amount ELSE 0 END) AS rollRoom
FROM (
@@ -632,7 +632,7 @@
<when test="sortField == 'fightGame'">ORDER BY fightGame</when>
<when test="sortField == 'luckyUpgrade'">ORDER BY luckyUpgrade</when>
<when test="sortField == 'wheelGame'">ORDER BY wheelGame</when>
<when test="sortField == 'olympusGame'">ORDER BY olympusGame</when>
<when test="sortField == 'mahjongGame'">ORDER BY mahjongGame</when>
<when test="sortField == 'rollRoom'">ORDER BY rollRoom</when>
<otherwise>ORDER BY totalTurnover</otherwise>
</choose>
@@ -27,7 +27,7 @@
COALESCE(agg.fightGame, 0) AS `fightGame`,
COALESCE(agg.luckyUpgrade, 0) AS `luckyUpgrade`,
COALESCE(agg.wheelGame, 0) AS `wheelGame`,
COALESCE(agg.olympusGame, 0) AS `olympusGame`
COALESCE(agg.mahjongGame, 0) AS `mahjongGame`
FROM (
SELECT user_id, nick_name, user_name, phone_number, user_type
FROM tt_user
@@ -45,12 +45,12 @@
SELECT
user_id,
SUM(CASE WHEN source = 1 THEN diff ELSE 0 END) AS totalRecharge,
SUM(CASE WHEN source IN (2, 4, 40, 38, 60) THEN diff ELSE 0 END) AS totalTurnover,
SUM(CASE WHEN source IN (2, 4, 40, 38, 68) THEN diff ELSE 0 END) AS totalTurnover,
SUM(CASE WHEN source = 2 THEN diff ELSE 0 END) AS classicBox,
SUM(CASE WHEN source = 4 THEN diff ELSE 0 END) AS fightGame,
SUM(CASE WHEN source = 40 THEN diff ELSE 0 END) AS luckyUpgrade,
SUM(CASE WHEN source = 38 THEN diff ELSE 0 END) AS wheelGame,
SUM(CASE WHEN source = 60 THEN diff ELSE 0 END) AS olympusGame
SUM(CASE WHEN source = 68 THEN diff ELSE 0 END) AS mahjongGame
FROM (
SELECT
r.user_id,
@@ -93,7 +93,7 @@
COALESCE(agg.fightGame, 0) AS `fightGame`,
COALESCE(agg.luckyUpgrade, 0) AS `luckyUpgrade`,
COALESCE(agg.wheelGame, 0) AS `wheelGame`,
COALESCE(agg.olympusGame, 0) AS `olympusGame`
COALESCE(agg.mahjongGame, 0) AS `mahjongGame`
FROM (
SELECT user_id, nick_name, user_name, phone_number, user_type
FROM tt_user
@@ -109,12 +109,12 @@
SELECT
user_id,
SUM(CASE WHEN source = 1 THEN diff ELSE 0 END) AS totalRecharge,
SUM(CASE WHEN source IN (2, 4, 40, 38, 60) THEN diff ELSE 0 END) AS totalTurnover,
SUM(CASE WHEN source IN (2, 4, 40, 38, 68) THEN diff ELSE 0 END) AS totalTurnover,
SUM(CASE WHEN source = 2 THEN diff ELSE 0 END) AS classicBox,
SUM(CASE WHEN source = 4 THEN diff ELSE 0 END) AS fightGame,
SUM(CASE WHEN source = 40 THEN diff ELSE 0 END) AS luckyUpgrade,
SUM(CASE WHEN source = 38 THEN diff ELSE 0 END) AS wheelGame,
SUM(CASE WHEN source = 60 THEN diff ELSE 0 END) AS olympusGame
SUM(CASE WHEN source = 68 THEN diff ELSE 0 END) AS mahjongGame
FROM (
SELECT
r.user_id,
@@ -144,7 +144,7 @@
<when test="sortField == 'fightGame'">ORDER BY fightGame</when>
<when test="sortField == 'luckyUpgrade'">ORDER BY luckyUpgrade</when>
<when test="sortField == 'wheelGame'">ORDER BY wheelGame</when>
<when test="sortField == 'olympusGame'">ORDER BY olympusGame</when>
<when test="sortField == 'mahjongGame'">ORDER BY mahjongGame</when>
<otherwise>ORDER BY totalTurnover</otherwise>
</choose>
<choose>