From bb42b219d41988faf04ca6740e01be1123b6b95b Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Fri, 3 Jan 2025 10:23:25 +0800 Subject: [PATCH] =?UTF-8?q?page=20=E9=97=AE=E9=A2=98=20sharding=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/sqx/config/ShardingConfig.java | 10 +++- .../app/AppAnnouncementController.java | 15 +++-- .../app/service/impl/UserInfoServiceImpl.java | 3 +- .../impl/UserMoneyDetailsServiceImpl.java | 2 +- .../controller/DiscSpinningController.java | 13 +++-- .../controller/app/AppInviteController.java | 9 ++- .../controller/TaskCenterController.java | 8 ++- .../sqx/modules/utils/InvitationCodeUtil.java | 6 +- src/main/resources/application-dev.yml | 8 ++- src/main/resources/application-prod.yml | 2 +- src/main/resources/application.yml | 56 +++++++++++-------- .../mapper/course/CourseCollectDao.xml | 39 ++++++------- 12 files changed, 99 insertions(+), 72 deletions(-) diff --git a/src/main/java/com/sqx/config/ShardingConfig.java b/src/main/java/com/sqx/config/ShardingConfig.java index b3ff6244..36cfeaab 100644 --- a/src/main/java/com/sqx/config/ShardingConfig.java +++ b/src/main/java/com/sqx/config/ShardingConfig.java @@ -50,6 +50,11 @@ public class ShardingConfig { */ private String showSql; + /** + * 广播表 + */ + private Set 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); diff --git a/src/main/java/com/sqx/modules/app/controller/app/AppAnnouncementController.java b/src/main/java/com/sqx/modules/app/controller/app/AppAnnouncementController.java index 2a42387a..b3cbb836 100644 --- a/src/main/java/com/sqx/modules/app/controller/app/AppAnnouncementController.java +++ b/src/main/java/com/sqx/modules/app/controller/app/AppAnnouncementController.java @@ -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 records = announcementService.page(new Page<>(1, 1), new LambdaQueryWrapper() - .eq(Announcement::getState, 1) - .orderByDesc(Announcement::getCreateTime)).getRecords(); - return Result.success().put("data", records.isEmpty() ? null : records.get(0)); + PageHelper.startPage(1,1); + List list = announcementService.list(new LambdaQueryWrapper() + .eq(Announcement::getState, 1) + .orderByDesc(Announcement::getCreateTime)); + return Result.success().put("data", list.isEmpty() ? null : list.get(0)); } } diff --git a/src/main/java/com/sqx/modules/app/service/impl/UserInfoServiceImpl.java b/src/main/java/com/sqx/modules/app/service/impl/UserInfoServiceImpl.java index ba87f1c2..e129cf11 100644 --- a/src/main/java/com/sqx/modules/app/service/impl/UserInfoServiceImpl.java +++ b/src/main/java/com/sqx/modules/app/service/impl/UserInfoServiceImpl.java @@ -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; /** diff --git a/src/main/java/com/sqx/modules/app/service/impl/UserMoneyDetailsServiceImpl.java b/src/main/java/com/sqx/modules/app/service/impl/UserMoneyDetailsServiceImpl.java index 06835b7e..50a16fed 100644 --- a/src/main/java/com/sqx/modules/app/service/impl/UserMoneyDetailsServiceImpl.java +++ b/src/main/java/com/sqx/modules/app/service/impl/UserMoneyDetailsServiceImpl.java @@ -45,7 +45,7 @@ public class UserMoneyDetailsServiceImpl extends ServiceImpl(baseMapper.selectList(queryWrapper)))); + return Result.success().put("data", PageUtils.page(new PageInfo<>(baseMapper.selectList(queryWrapper)),true)); } @Override diff --git a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java index 0db4ddbf..82ed50d6 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java @@ -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().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().eq("disc_type", source).orderByAsc("disc_type", "odds"))),true) + ); } diff --git a/src/main/java/com/sqx/modules/invite/controller/app/AppInviteController.java b/src/main/java/com/sqx/modules/invite/controller/app/AppInviteController.java index e6ccf197..68bc8277 100644 --- a/src/main/java/com/sqx/modules/invite/controller/app/AppInviteController.java +++ b/src/main/java/com/sqx/modules/invite/controller/app/AppInviteController.java @@ -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().orderByAsc("invite_count"))); + PageHelper.startPage(page,limit); + return Result.success().put("data", PageUtils.page(new PageInfo<>(inviteAwardService.list(new QueryWrapper().orderByAsc("invite_count"))),true)); } @Login diff --git a/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterController.java b/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterController.java index 8c5bee0a..32be8744 100644 --- a/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterController.java +++ b/src/main/java/com/sqx/modules/taskCenter/controller/TaskCenterController.java @@ -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().orderByAsc("sort", "type"))); + PageHelper.startPage(page,limit); + return Result.success().put("data", PageUtils.page(new PageInfo<>(taskCenterService.list(new QueryWrapper().orderByAsc("sort", "type"))),true)); } diff --git a/src/main/java/com/sqx/modules/utils/InvitationCodeUtil.java b/src/main/java/com/sqx/modules/utils/InvitationCodeUtil.java index 66e95faf..69eb0c1d 100644 --- a/src/main/java/com/sqx/modules/utils/InvitationCodeUtil.java +++ b/src/main/java/com/sqx/modules/utils/InvitationCodeUtil.java @@ -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)); +// } } \ No newline at end of file diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 6b938cb4..cd56d1e0 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -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 diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index ba9a00c5..b3ce2cef 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -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秒 diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index c3358817..aba66daf 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -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 diff --git a/src/main/resources/mapper/course/CourseCollectDao.xml b/src/main/resources/mapper/course/CourseCollectDao.xml index 10dd5fc4..8ae23d2f 100644 --- a/src/main/resources/mapper/course/CourseCollectDao.xml +++ b/src/main/resources/mapper/course/CourseCollectDao.xml @@ -5,28 +5,23 @@