page 问题 sharding配置
This commit is contained in:
@@ -50,6 +50,11 @@ public class ShardingConfig {
|
||||
*/
|
||||
private String showSql;
|
||||
|
||||
/**
|
||||
* 广播表
|
||||
*/
|
||||
private Set<String> broadcastTables;
|
||||
|
||||
/**
|
||||
* 中心库的节点
|
||||
*/
|
||||
@@ -106,6 +111,9 @@ public class ShardingConfig {
|
||||
// 配置数据库主从
|
||||
shardingRuleConfig.setMasterSlaveRuleConfigs(masterSlaveRuleConfigs());
|
||||
|
||||
// 配置广播表
|
||||
shardingRuleConfig.setBroadcastTables(broadcastTables);
|
||||
|
||||
// 配置表的切分策略
|
||||
shardingRuleConfig.setTableRuleConfigs(addTableRuleConfigs());
|
||||
|
||||
@@ -134,8 +142,6 @@ public class ShardingConfig {
|
||||
String.format(centerTablesDataNode, centerTable));
|
||||
sets.add(tableRuleConfig);
|
||||
}
|
||||
//雪花算法方法
|
||||
InvitationCodeUtil.getSnowFlakeId();
|
||||
// 定义区域表的分库规则
|
||||
InlineShardingStrategyConfiguration databaseShardingStrategyConfig = new InlineShardingStrategyConfiguration(
|
||||
regionTablesShardingDatabaseColumn, regionTablesShardingDatabaseAlgorithm);
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package com.sqx.modules.app.controller.app;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.sqx.common.utils.Result;
|
||||
import com.sqx.modules.announcement.entity.Announcement;
|
||||
import com.sqx.modules.announcement.service.AnnouncementService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -21,10 +23,11 @@ public class AppAnnouncementController {
|
||||
|
||||
@GetMapping
|
||||
public Result get() {
|
||||
List<Announcement> records = announcementService.page(new Page<>(1, 1), new LambdaQueryWrapper<Announcement>()
|
||||
.eq(Announcement::getState, 1)
|
||||
.orderByDesc(Announcement::getCreateTime)).getRecords();
|
||||
return Result.success().put("data", records.isEmpty() ? null : records.get(0));
|
||||
PageHelper.startPage(1,1);
|
||||
List<Announcement> list = announcementService.list(new LambdaQueryWrapper<Announcement>()
|
||||
.eq(Announcement::getState, 1)
|
||||
.orderByDesc(Announcement::getCreateTime));
|
||||
return Result.success().put("data", list.isEmpty() ? null : list.get(0));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,10 +2,9 @@ package com.sqx.modules.app.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.sqx.modules.app.entity.UserEntity;
|
||||
import com.sqx.modules.app.entity.UserInfo;
|
||||
import com.sqx.modules.app.service.UserInfoService;
|
||||
import com.sqx.modules.app.mapper.UserInfoMapper;
|
||||
import com.sqx.modules.app.service.UserInfoService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
|
||||
@@ -45,7 +45,7 @@ public class UserMoneyDetailsServiceImpl extends ServiceImpl<UserMoneyDetailsDao
|
||||
queryWrapper.in("classify", arrayList);
|
||||
}
|
||||
queryWrapper.orderByDesc("create_time");
|
||||
return Result.success().put("data", PageUtils.page(new PageInfo<>(baseMapper.selectList(queryWrapper))));
|
||||
return Result.success().put("data", PageUtils.page(new PageInfo<>(baseMapper.selectList(queryWrapper)),true));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2,7 +2,8 @@ package com.sqx.modules.discSpinning.controller;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.sqx.common.annotation.Debounce;
|
||||
import com.sqx.common.exception.CzgException;
|
||||
import com.sqx.common.utils.*;
|
||||
@@ -27,7 +28,9 @@ import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.*;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@@ -126,8 +129,10 @@ public class DiscSpinningController {
|
||||
})
|
||||
@ApiOperation("查询大转盘")
|
||||
public Result selectDiscSpinning(@RequestParam(required = false, defaultValue = "1") Integer source) {
|
||||
return Result.success().put("data", discSpinningService.page(new Page<>(1, 20),
|
||||
new QueryWrapper<DiscSpinning>().eq("disc_type", source).orderByAsc("disc_type", "odds")));
|
||||
PageHelper.startPage(1,20);
|
||||
return Result.success().put("data", PageUtils.page(new PageInfo<>(discSpinningService.list(
|
||||
new QueryWrapper<DiscSpinning>().eq("disc_type", source).orderByAsc("disc_type", "odds"))),true)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.sqx.modules.invite.controller.app;
|
||||
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.extra.qrcode.QrCodeUtil;
|
||||
import cn.hutool.extra.qrcode.QrConfig;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.sqx.common.utils.PageUtils;
|
||||
import com.sqx.common.utils.Result;
|
||||
import com.sqx.modules.app.annotation.Login;
|
||||
@@ -25,7 +25,6 @@ import com.sqx.modules.invite.service.InviteAwardService;
|
||||
import com.sqx.modules.invite.service.InviteMoneyService;
|
||||
import com.sqx.modules.invite.service.InviteService;
|
||||
import com.sqx.modules.urlAddress.service.UrlAddressService;
|
||||
import com.sqx.modules.userSign.entity.UserSignRecord;
|
||||
import com.sqx.modules.utils.SenInfoCheckUtil;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@@ -36,7 +35,6 @@ import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -170,7 +168,8 @@ public class AppInviteController {
|
||||
@GetMapping("/selectInviteAwardList")
|
||||
@ApiOperation("查询邀请奖励列表")
|
||||
public Result selectInviteAwardList(Integer page, Integer limit) {
|
||||
return Result.success().put("data", inviteAwardService.page(new Page<>(page, limit), new QueryWrapper<InviteAward>().orderByAsc("invite_count")));
|
||||
PageHelper.startPage(page,limit);
|
||||
return Result.success().put("data", PageUtils.page(new PageInfo<>(inviteAwardService.list(new QueryWrapper<InviteAward>().orderByAsc("invite_count"))),true));
|
||||
}
|
||||
|
||||
@Login
|
||||
|
||||
@@ -3,8 +3,10 @@ package com.sqx.modules.taskCenter.controller;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.sqx.common.annotation.Debounce;
|
||||
import com.sqx.common.utils.PageUtils;
|
||||
import com.sqx.common.utils.Result;
|
||||
import com.sqx.modules.app.annotation.Login;
|
||||
import com.sqx.modules.taskCenter.entity.TaskCenter;
|
||||
@@ -13,7 +15,6 @@ import com.sqx.modules.taskCenter.entity.TaskCenterReward;
|
||||
import com.sqx.modules.taskCenter.service.TaskCenterRecordService;
|
||||
import com.sqx.modules.taskCenter.service.TaskCenterRewardService;
|
||||
import com.sqx.modules.taskCenter.service.TaskCenterService;
|
||||
import com.sqx.modules.userSign.entity.UserSignRecord;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
@@ -74,7 +75,8 @@ public class TaskCenterController {
|
||||
@GetMapping("/taskCenter/selectTaskCenter")
|
||||
@ApiOperation("查询任务中心")
|
||||
public Result selectTaskCenter(Integer page, Integer limit) {
|
||||
return Result.success().put("data", taskCenterService.page(new Page<>(page, limit), new QueryWrapper<TaskCenter>().orderByAsc("sort", "type")));
|
||||
PageHelper.startPage(page,limit);
|
||||
return Result.success().put("data", PageUtils.page(new PageInfo<>(taskCenterService.list(new QueryWrapper<TaskCenter>().orderByAsc("sort", "type"))),true));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -127,8 +127,8 @@ public class InvitationCodeUtil {
|
||||
return res;
|
||||
}
|
||||
|
||||
public static String getSnowFlakeId() {
|
||||
return String.valueOf(((SnowFlake) Objects.requireNonNull(SpringContextUtils.getSpringBean(SnowFlake.class))).nextId(false));
|
||||
}
|
||||
// public static String getSnowFlakeId() {
|
||||
// return String.valueOf(((SnowFlake) Objects.requireNonNull(SpringContextUtils.getSpringBean(SnowFlake.class))).nextId(false));
|
||||
// }
|
||||
|
||||
}
|
||||
@@ -12,7 +12,7 @@ minimum-idle: 5
|
||||
# 最大连接数,小于等于0会被重置为默认值10;大于零小于1会被重置为minimum-idle的值
|
||||
maximum-pool-size: 15
|
||||
# 空闲连接超时时间,默认值600000(10分钟),大于等于max-lifetime且max-lifetime>0,会被重置为0;不等于0且小于10秒,会被重置为10秒。
|
||||
idle-timeout: 30000
|
||||
idle-timeout: 20000
|
||||
# 连接最大存活时间.不等于0且小于30秒,会被重置为默认值30分钟.设置应该比mysql设置的超时时间短
|
||||
max-lifetime: 30000
|
||||
# 连接超时时间:毫秒,小于250毫秒,否则被重置为默认值30秒
|
||||
@@ -167,24 +167,30 @@ spring:
|
||||
duanju:
|
||||
masterDataSourceName: duanju
|
||||
slaveDataSourceNames:
|
||||
# - duanju
|
||||
- duanju-slave
|
||||
duanju-0:
|
||||
masterDataSourceName: duanju-0
|
||||
slaveDataSourceNames:
|
||||
# - duanju-0
|
||||
- duanju-slave-0
|
||||
duanju-1:
|
||||
masterDataSourceName: duanju-1
|
||||
slaveDataSourceNames:
|
||||
# - duanju-1
|
||||
- duanju-slave-1
|
||||
duanju-2:
|
||||
masterDataSourceName: duanju-2
|
||||
slaveDataSourceNames:
|
||||
# - duanju-2
|
||||
- duanju-slave-2
|
||||
duanju-3:
|
||||
masterDataSourceName: duanju-3
|
||||
slaveDataSourceNames:
|
||||
# - duanju-3
|
||||
- duanju-slave-3
|
||||
duanju-4:
|
||||
masterDataSourceName: duanju-4
|
||||
slaveDataSourceNames:
|
||||
# - duanju-4
|
||||
- duanju-slave-4
|
||||
|
||||
@@ -12,7 +12,7 @@ minimum-idle: 5
|
||||
# 最大连接数,小于等于0会被重置为默认值10;大于零小于1会被重置为minimum-idle的值
|
||||
maximum-pool-size: 15
|
||||
# 空闲连接超时时间,默认值600000(10分钟),大于等于max-lifetime且max-lifetime>0,会被重置为0;不等于0且小于10秒,会被重置为10秒。
|
||||
idle-timeout: 30000
|
||||
idle-timeout: 20000
|
||||
# 连接最大存活时间.不等于0且小于30秒,会被重置为默认值30分钟.设置应该比mysql设置的超时时间短
|
||||
max-lifetime: 30000
|
||||
# 连接超时时间:毫秒,小于250毫秒,否则被重置为默认值30秒
|
||||
|
||||
@@ -19,25 +19,33 @@ management:
|
||||
db:
|
||||
enabled: false #关闭数据库健康检查isV
|
||||
#mybatis
|
||||
mybatis-plus:
|
||||
mapper-locations: classpath*:/mapper/**/*.xml
|
||||
#实体扫描,多个package用逗号或者分号分隔
|
||||
typeAliasesPackage: com.sqx.modules.*.entity
|
||||
global-config:
|
||||
#数据库相关配置
|
||||
db-config:
|
||||
#主键类型 AUTO:"数据库ID自增", INPUT:"用户输入ID", ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID";
|
||||
id-type: AUTO
|
||||
logic-delete-value: -1
|
||||
logic-not-delete-value: 0
|
||||
banner: false
|
||||
#原生配置
|
||||
configuration:
|
||||
map-underscore-to-camel-case: true
|
||||
cache-enabled: false
|
||||
call-setters-on-nulls: true
|
||||
jdbc-type-for-null: 'null'
|
||||
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
pagehelper:
|
||||
offsetAsPageNum: true
|
||||
rowBoundsWithCount: true
|
||||
helperDialect: mysql
|
||||
reasonable: true
|
||||
supportMethodsArguments: true
|
||||
params:
|
||||
count: countSql
|
||||
#mybatis-plus:
|
||||
# mapper-locations: classpath*:/mapper/**/*.xml
|
||||
# #实体扫描,多个package用逗号或者分号分隔
|
||||
# typeAliasesPackage: com.sqx.modules.*.entity
|
||||
# global-config:
|
||||
# #数据库相关配置
|
||||
# db-config:
|
||||
# #主键类型 AUTO:"数据库ID自增", INPUT:"用户输入ID", ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID";
|
||||
# id-type: AUTO
|
||||
# logic-delete-value: -1
|
||||
# logic-not-delete-value: 0
|
||||
# banner: false
|
||||
# #原生配置
|
||||
# configuration:
|
||||
# map-underscore-to-camel-case: true
|
||||
# cache-enabled: false
|
||||
# call-setters-on-nulls: true
|
||||
# jdbc-type-for-null: 'null'
|
||||
## log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
|
||||
sqx:
|
||||
redis:
|
||||
@@ -70,7 +78,7 @@ spring:
|
||||
allow-bean-definition-overriding: true
|
||||
# 环境 dev|test|prod
|
||||
profiles:
|
||||
active: prod
|
||||
active: dev
|
||||
# jackson时间格式化
|
||||
jackson:
|
||||
time-zone: GMT+8
|
||||
@@ -98,6 +106,9 @@ spring:
|
||||
# pathmatch:
|
||||
# matching-strategy: ant_path_matcher
|
||||
shardingsphere:
|
||||
#广播表
|
||||
broadcast-tables:
|
||||
- course
|
||||
# 短剧集表 通过course_id 分
|
||||
course-details:
|
||||
- course_details
|
||||
@@ -116,15 +127,17 @@ spring:
|
||||
- user_sign_record
|
||||
- invite_achievement
|
||||
- invite_money
|
||||
- user_info
|
||||
- sys_user
|
||||
#中心表
|
||||
center-tables:
|
||||
- message_info
|
||||
- announcement
|
||||
- schedule_job_log
|
||||
- invite
|
||||
- msg
|
||||
- sys_role_menu
|
||||
- sdk_info
|
||||
- course
|
||||
- user_integral_details
|
||||
- common_info
|
||||
- sys_log
|
||||
@@ -133,7 +146,6 @@ spring:
|
||||
- sys_user_role
|
||||
- sys_menu
|
||||
- comment_good
|
||||
- sys_user
|
||||
- course_comment
|
||||
- banner
|
||||
- disc_spinning
|
||||
|
||||
@@ -5,28 +5,23 @@
|
||||
|
||||
|
||||
<select id="selectCourseByCollect" resultType="com.sqx.modules.course.entity.Course">
|
||||
SELECT
|
||||
MAX(u.update_time) AS produceEndTime,
|
||||
c.*,
|
||||
d.course_details_name AS courseDetailsName,
|
||||
d.course_details_id AS courseDetailsId,
|
||||
COUNT(d.course_details_id) AS courseDetailsCount
|
||||
FROM
|
||||
course_collect u
|
||||
LEFT JOIN
|
||||
course c ON u.course_id = c.course_id
|
||||
LEFT JOIN
|
||||
course_details d ON u.course_details_id = d.course_details_id
|
||||
LEFT JOIN
|
||||
course_collect cc ON u.course_id = cc.course_id AND cc.user_id = #{userId} AND cc.classify = 3
|
||||
WHERE
|
||||
u.user_id = #{userId}
|
||||
AND u.classify = #{classify}
|
||||
AND c.course_id IS NOT NULL
|
||||
GROUP BY
|
||||
u.course_id, c.course_id, d.course_details_name, d.course_details_id
|
||||
ORDER BY
|
||||
produceEndTime DESC;
|
||||
SELECT MAX(u.update_time) AS produceEndTime,
|
||||
c.*,
|
||||
d.course_details_name AS courseDetailsName,
|
||||
d.course_details_id AS courseDetailsId,
|
||||
COUNT(d.course_details_id) AS courseDetailsCount
|
||||
FROM course_collect u
|
||||
LEFT JOIN
|
||||
course c ON u.course_id = c.course_id
|
||||
LEFT JOIN
|
||||
course_details d ON u.course_details_id = d.course_details_id
|
||||
LEFT JOIN
|
||||
course_collect cc ON u.course_id = cc.course_id AND cc.user_id = #{userId} AND cc.classify = 3
|
||||
WHERE u.user_id = #{userId}
|
||||
AND u.classify = #{classify}
|
||||
AND c.course_id IS NOT NULL
|
||||
GROUP BY u.course_id, c.course_id, d.course_details_name, d.course_details_id
|
||||
ORDER BY produceEndTime DESC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user