|
@@ -5229,18 +5229,38 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
@Override
|
|
|
public Page<FlowMonitorVO> getFlowMonitor(FlowMonitorDTO dto) {
|
|
|
LocalDate today = LocalDate.now();
|
|
|
-
|
|
|
+
|
|
|
if(dto.getCostBeginDate()==null && dto.getCostEndDate()==null){
|
|
|
LocalDate oneMonthAgo = today.minusMonths(1);
|
|
|
|
|
|
dto.setCostBeginDate(oneMonthAgo);
|
|
|
dto.setCostEndDate(today);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ if(dto.getOrderBeginDate()!=null && dto.getOrderEndDate()!=null){
|
|
|
+
|
|
|
+ if(dto.getOrderBeginDate().isBefore(dto.getCostBeginDate())){
|
|
|
+ dto.setOrderBeginDate(dto.getCostBeginDate());
|
|
|
+ }
|
|
|
+
|
|
|
+ if(dto.getOrderEndDate().isAfter(dto.getCostEndDate())){
|
|
|
+ dto.setOrderEndDate(dto.getCostEndDate());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
if(dto.getOrderBeginDate()==null && dto.getOrderEndDate()==null){
|
|
|
- LocalDate twoDaysAgo = today.minusDays(1);
|
|
|
-
|
|
|
- dto.setOrderBeginDate(twoDaysAgo);
|
|
|
- dto.setOrderEndDate(today);
|
|
|
+
|
|
|
+ dto.setOrderEndDate(dto.getCostEndDate());
|
|
|
+
|
|
|
+ LocalDate twoDaysAgo = dto.getCostEndDate().minusDays(1);
|
|
|
+
|
|
|
+ if(twoDaysAgo.isEqual(dto.getCostBeginDate())||twoDaysAgo.isAfter(dto.getCostBeginDate())){
|
|
|
+ dto.setOrderBeginDate(twoDaysAgo);
|
|
|
+ }else {
|
|
|
+ dto.setOrderBeginDate(dto.getCostEndDate());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
Pager pager = dao.createPager(dto.getPageNum(), dto.getPageSize());
|
|
@@ -5248,14 +5268,17 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
|
|
|
Criteria cri = getOrderQueryStr(dto);
|
|
|
|
|
|
+
|
|
|
+ Criteria agentCri = getAgentQueryStr(dto);
|
|
|
+
|
|
|
|
|
|
- Sql countSql = Sqls.create(getCountNumSql(cri));
|
|
|
+ Sql countSql = Sqls.create(getCountNumSql(cri,agentCri));
|
|
|
countSql.setCallback(Sqls.callback.integer());
|
|
|
dao.execute(countSql);
|
|
|
pager.setRecordCount(countSql.getInt());
|
|
|
|
|
|
|
|
|
- Sql sql = Sqls.create(flowMonitorSql(cri));
|
|
|
+ Sql sql = Sqls.create(flowMonitorSql(cri,agentCri));
|
|
|
|
|
|
sql.setCallback(Sqls.callback.entities());
|
|
|
sql.setEntity(dao.getEntity(FlowMonitorVO.class));
|
|
@@ -5325,7 +5348,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
return sql;
|
|
|
}
|
|
|
|
|
|
- private String getCountNumSql(Criteria cri){
|
|
|
+ private String getCountNumSql(Criteria cri,Criteria agentCri){
|
|
|
String sql = """
|
|
|
|
|
|
SELECT COUNT(*) FROM (
|
|
@@ -5539,7 +5562,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
) f
|
|
|
group by day, source_system
|
|
|
) ab
|
|
|
- """+ cri +"""
|
|
|
+ """+ agentCri +"""
|
|
|
order by day desc
|
|
|
|
|
|
|
|
@@ -5578,7 +5601,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
BigDecimal costBigDecimal = new BigDecimal(costCount);
|
|
|
BigDecimal amountBigDecimal = new BigDecimal(amountCount);
|
|
|
BigDecimal bd = amountBigDecimal.divide(costBigDecimal, 2, RoundingMode.HALF_UP);
|
|
|
- vo.setRecoveryCount(bd.doubleValue());
|
|
|
+ vo.setRecoveryCount(bd.doubleValue()*100);
|
|
|
}
|
|
|
return vo;
|
|
|
}
|
|
@@ -5623,7 +5646,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
* @param cri 条件
|
|
|
* @return sql
|
|
|
*/
|
|
|
- public String flowMonitorSql(Criteria cri){
|
|
|
+ public String flowMonitorSql(Criteria cri,Criteria agentCri){
|
|
|
|
|
|
String sql = """
|
|
|
select day as order_date,
|
|
@@ -5837,7 +5860,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
) f
|
|
|
group by day, source_system
|
|
|
) ab
|
|
|
- """+ cri +"""
|
|
|
+ """+ agentCri +"""
|
|
|
order by day desc
|
|
|
|
|
|
""";
|
|
@@ -5846,6 +5869,52 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
+ * 拼接查询条件
|
|
|
+ *
|
|
|
+ * @param dto
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Criteria getAgentQueryStr(FlowMonitorDTO dto) {
|
|
|
+ Criteria cri = Cnd.cri();
|
|
|
+
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(dto.getSourceSystem())) {
|
|
|
+ cri.where().andEquals("source_system", dto.getSourceSystem());
|
|
|
+ }
|
|
|
+
|
|
|
+ String gameColumn = "game_id";
|
|
|
+ if (dto.getGameDimension() != 1) {
|
|
|
+ gameColumn = "parent_game_id";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (CollectionUtils.isNotEmpty(dto.getGameId())) {
|
|
|
+ cri.where().andInList(gameColumn, dto.getGameId());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (dto.getOrderBeginDate() != null && dto.getOrderEndDate() != null) {
|
|
|
+ cri.where().andBetween("day", dto.getOrderBeginDate(), dto.getOrderEndDate());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if (CollectionUtils.isNotEmpty(dto.getPitcherId())) {
|
|
|
+ cri.where().andInList("pitcher_id", dto.getPitcherId());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (CollectionUtils.isNotEmpty(dto.getAgentId())) {
|
|
|
+ cri.where().andInList("agent_id", dto.getAgentId());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (CollectionUtils.isNotEmpty(dto.getAccountId())) {
|
|
|
+ cri.where().andInList("account_id", dto.getAccountId());
|
|
|
+ }
|
|
|
+
|
|
|
+ return cri;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
* 拼接查询条件
|
|
|
*
|
|
@@ -5875,6 +5944,10 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
cri.where().andBetween("day", dto.getOrderBeginDate(), dto.getOrderEndDate());
|
|
|
}
|
|
|
|
|
|
+ if(dto.getCostBeginDate()!=null && dto.getCostEndDate()!=null){
|
|
|
+ cri.where().andBetween("reg_time", dto.getCostBeginDate(), dto.getCostEndDate());
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(dto.getPitcherId())) {
|
|
|
cri.where().andInList("pitcher_id", dto.getPitcherId());
|
|
@@ -5891,6 +5964,7 @@ public class GameDataServiceImpl implements IGameDataService {
|
|
|
return cri;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
|
|
|
* 查询出每个游戏的注册查询时间内,注册当天且充值的所有用户id
|
|
|
*
|