sharding分表查询
This commit is contained in:
@@ -46,13 +46,18 @@ public class RoomHourDiamondAdminService {
|
||||
}
|
||||
roomUid = user.getUid();
|
||||
}
|
||||
Date startTime = DateUtil.parse(startTimeStr);
|
||||
Date endTime = DateUtil.parse(endTimeStr);
|
||||
IPage<RoomHourDiamondNum> iPage = roomHourDiamondNumService.listDiamondNum(new Page<>(pageNo, pageSize), roomUid, startTime, endTime, partitionId, regionId);
|
||||
Date startTime = DateUtil.parseDateTime(startTimeStr);
|
||||
Date endTime = DateUtil.parseDateTime(endTimeStr);
|
||||
PageResult<RoomHourDiamondAdminVo> pageResult = new PageResult<>();
|
||||
pageResult.setTotal((int) iPage.getTotal());
|
||||
Integer count = roomHourDiamondNumService.countDiamondNum(roomUid, startTime, endTime, partitionId, regionId);
|
||||
List<RoomHourDiamondAdminVo> list = new ArrayList<>();
|
||||
pageResult.setRows(list);
|
||||
pageResult.setRows(list);
|
||||
pageResult.setTotal(count);
|
||||
if (count <= 0) {
|
||||
return pageResult;
|
||||
}
|
||||
IPage<RoomHourDiamondNum> page = new Page<>(pageNo, pageSize, false);
|
||||
IPage<RoomHourDiamondNum> iPage = roomHourDiamondNumService.listDiamondNum(page, roomUid, startTime, endTime, partitionId, regionId);
|
||||
List<RoomHourDiamondNum> records = iPage.getRecords();
|
||||
if (CollectionUtils.isEmpty(records)) {
|
||||
return pageResult;
|
||||
|
@@ -241,7 +241,7 @@ public class ShardingSphereConfig {
|
||||
}
|
||||
|
||||
private AlgorithmConfiguration getjoyGameShardingAlgorithmConfiguration() {
|
||||
return getMonthShardingAlgorithmConfiguration();
|
||||
return getMonthShardingAlgorithmConfigurationV2();
|
||||
}
|
||||
|
||||
private AlgorithmConfiguration getBaiShunGameRecordShardingAlgorithmConfiguration() {
|
||||
@@ -276,13 +276,10 @@ public class ShardingSphereConfig {
|
||||
}
|
||||
|
||||
private AlgorithmConfiguration getRoomHourDiamondShardingAlgorithmConfiguration() {
|
||||
AlgorithmConfiguration algorithmConfiguration = getMonthShardingAlgorithmConfiguration();
|
||||
AlgorithmConfiguration algorithmConfiguration = getMonthShardingAlgorithmConfigurationV2();
|
||||
return algorithmConfiguration;
|
||||
}
|
||||
|
||||
/**
|
||||
* =====账单表分表策略=====
|
||||
**/
|
||||
private AlgorithmConfiguration getMonthShardingAlgorithmConfiguration() {
|
||||
Properties properties = new Properties();
|
||||
properties.setProperty("datetime-pattern", DateTimeUtil.DEFAULT_DATE_PATTERN_YEAR_MONTH);
|
||||
@@ -294,6 +291,18 @@ public class ShardingSphereConfig {
|
||||
return new AlgorithmConfiguration("INTERVAL", properties);
|
||||
}
|
||||
|
||||
private AlgorithmConfiguration getMonthShardingAlgorithmConfigurationV2() {
|
||||
Properties properties = new Properties();
|
||||
properties.setProperty("datetime-pattern", DateTimeUtil.DEFAULT_DATETIME_PATTERN);
|
||||
properties.setProperty("datetime-lower", "2025-01-01 00:00:00");
|
||||
properties.setProperty("datetime-upper", "2026-12-31 23:59:59");
|
||||
|
||||
properties.setProperty("sharding-suffix-pattern", DateTimeUtil.DATE_FORMAT_YEAR_MONTH);
|
||||
properties.setProperty("datetime-interval-amount", "1");
|
||||
properties.setProperty("datetime-interval-unit", "MONTHS");
|
||||
return new AlgorithmConfiguration("INTERVAL", properties);
|
||||
}
|
||||
|
||||
/**
|
||||
* =======动态评论表分表策略===========
|
||||
**/
|
||||
|
@@ -18,4 +18,8 @@ public interface RoomHourDiamondNumMapper extends BaseMapper<RoomHourDiamondNum>
|
||||
IPage<RoomHourDiamondNum> listDiamondNum(IPage<RoomHourDiamondNum> iPage, @Param("uid") Long uid,
|
||||
@Param("statTime") Date statTime, @Param("endTime") Date endTime,
|
||||
@Param("partitionId") Integer partitionId, @Param("regionId") Integer regionId);
|
||||
|
||||
Integer countDiamondNum(@Param("uid") Long uid,
|
||||
@Param("statTime") Date statTime, @Param("endTime") Date endTime,
|
||||
@Param("partitionId") Integer partitionId, @Param("regionId") Integer regionId);
|
||||
}
|
||||
|
@@ -22,4 +22,22 @@
|
||||
order by diamondNum desc
|
||||
</select>
|
||||
|
||||
<select id="countDiamondNum" resultType="java.lang.Integer">
|
||||
select
|
||||
count(distinct r.room_uid)
|
||||
from room_hour_diamond_num r
|
||||
left join users u on u.uid=r.room_uid
|
||||
where r.stat_date >= #{statTime}
|
||||
and r.stat_date <= #{endTime}
|
||||
<if test="uid != null">
|
||||
and r.room_uid = #{uid}
|
||||
</if>
|
||||
<if test="partitionId != null and partitionId != 0">
|
||||
and u.partition_id = #{partitionId}
|
||||
</if>
|
||||
<if test="regionId != null and regionId != 0">
|
||||
and u.region_id = #{regionId}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
@@ -34,4 +34,7 @@ public interface RoomHourDiamondNumService extends IService<RoomHourDiamondNum>
|
||||
|
||||
IPage<RoomHourDiamondNum> listDiamondNum(IPage<RoomHourDiamondNum> iPage, Long uid, Date statTime, Date endTime,
|
||||
Integer partitionId, Integer regionId);
|
||||
|
||||
Integer countDiamondNum(Long uid, Date statTime, Date endTime,
|
||||
Integer partitionId, Integer regionId);
|
||||
}
|
||||
|
@@ -105,6 +105,12 @@ public class RoomHourDiamondNumServiceImpl extends ServiceImpl<RoomHourDiamondNu
|
||||
return baseMapper.listDiamondNum(iPage, uid, statTime, endTime, partitionId, regionId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer countDiamondNum(Long uid, Date statTime,
|
||||
Date endTime, Integer partitionId, Integer regionId) {
|
||||
return baseMapper.countDiamondNum(uid, statTime, endTime, partitionId, regionId);
|
||||
}
|
||||
|
||||
private String getCacheKeyPatten(Date statDate) {
|
||||
Date currentYYYYMMDDHHTime = getCurrentYYYYMMDDHHTime(statDate);
|
||||
return DateUtil.format(currentYYYYMMDDHHTime, DATE_HOUR_PATTERN);
|
||||
|
Reference in New Issue
Block a user