优化快照功能 更新sql文件
This commit is contained in:
7581
sql/yshop-pro.sql
7581
sql/yshop-pro.sql
File diff suppressed because one or more lines are too long
8644
sql/yshop_pro.sql
Normal file
8644
sql/yshop_pro.sql
Normal file
File diff suppressed because one or more lines are too long
@ -163,6 +163,7 @@ public interface ErrorCodeConstants {
|
|||||||
// ========== 站内信发送 1002028000 ==========
|
// ========== 站内信发送 1002028000 ==========
|
||||||
ErrorCode NOTIFY_SEND_TEMPLATE_PARAM_MISS = new ErrorCode(1002025000, "模板参数({})缺失");
|
ErrorCode NOTIFY_SEND_TEMPLATE_PARAM_MISS = new ErrorCode(1002025000, "模板参数({})缺失");
|
||||||
|
|
||||||
|
ErrorCode BACKUP_NO_BACKUP = new ErrorCode(100202711, "请先备份数据再还原备份!");
|
||||||
ErrorCode BACKUP_MANY = new ErrorCode(100202701, "备份太频繁,距离上一次备份未超过5分钟!");
|
ErrorCode BACKUP_MANY = new ErrorCode(100202701, "备份太频繁,距离上一次备份未超过5分钟!");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,7 @@ import java.util.stream.Collectors;
|
|||||||
|
|
||||||
import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static co.yixiang.yshop.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.BACKUP_MANY;
|
import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.BACKUP_MANY;
|
||||||
|
import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.BACKUP_NO_BACKUP;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 品牌 Service 实现类
|
* 品牌 Service 实现类
|
||||||
@ -34,7 +35,7 @@ import static co.yixiang.yshop.module.system.enums.ErrorCodeConstants.BACKUP_MAN
|
|||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@Validated
|
@Validated
|
||||||
public class BackupRecordServiceImpl extends ServiceImpl<BackupRecordMapper, BackupRecordDO> implements BackupRecordService {
|
public class BackupRecordServiceImpl extends ServiceImpl<BackupRecordMapper, BackupRecordDO> implements BackupRecordService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private BackupRecordMapper backupRecordMapper;
|
private BackupRecordMapper backupRecordMapper;
|
||||||
@ -46,33 +47,33 @@ public class BackupRecordServiceImpl extends ServiceImpl<BackupRecordMapper, Ba
|
|||||||
private AdminUserService adminUserService;
|
private AdminUserService adminUserService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private static final String orderCountKey = "yshop_order_count_cache:*";
|
private static final String orderCountKey = "yshop_order_count_cache:*";
|
||||||
|
|
||||||
private static final String orderAdminCountKey = "yshop_admin_order_count_cache:*";
|
private static final String orderAdminCountKey = "yshop_admin_order_count_cache:*";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<BackupRecordRespVO> backupPageList(BackupPageReqVO pageVO){
|
public PageResult<BackupRecordRespVO> backupPageList(BackupPageReqVO pageVO) {
|
||||||
PageResult<BackupRecordDO> pageResult = this.baseMapper.selectPage(pageVO);
|
PageResult<BackupRecordDO> pageResult = this.baseMapper.selectPage(pageVO);
|
||||||
if(pageResult.getTotal()>0){
|
if (pageResult.getTotal() > 0) {
|
||||||
List<Long> ids = new ArrayList<>();
|
List<Long> ids = new ArrayList<>();
|
||||||
pageResult.getList().forEach( record -> {
|
pageResult.getList().forEach(record -> {
|
||||||
ids.add(Long.parseLong(record.getCreator()));
|
ids.add(Long.parseLong(record.getCreator()));
|
||||||
if(!StringUtils.isEmpty(record.getUpdater())){
|
if (!StringUtils.isEmpty(record.getUpdater())) {
|
||||||
ids.add(Long.parseLong(record.getUpdater()));
|
ids.add(Long.parseLong(record.getUpdater()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
Map<Long,String> nameMap = adminUserService.getUserList(ids).stream()
|
Map<Long, String> nameMap = adminUserService.getUserList(ids).stream()
|
||||||
.collect(Collectors.toMap(AdminUserDO::getId,AdminUserDO::getUsername));
|
.collect(Collectors.toMap(AdminUserDO::getId, AdminUserDO::getUsername));
|
||||||
PageResult<BackupRecordRespVO> page= BackupRecordConvert.INSTANCE.convertPage(pageResult);
|
PageResult<BackupRecordRespVO> page = BackupRecordConvert.INSTANCE.convertPage(pageResult);
|
||||||
page.getList().forEach(resp->{
|
page.getList().forEach(resp -> {
|
||||||
resp.setCreatorName(nameMap.get(Long.parseLong(resp.getCreator())));
|
resp.setCreatorName(nameMap.get(Long.parseLong(resp.getCreator())));
|
||||||
if(!StringUtils.isEmpty(resp.getUpdater())){
|
if (!StringUtils.isEmpty(resp.getUpdater())) {
|
||||||
resp.setUpdaterName(nameMap.get(Long.parseLong(resp.getUpdater())));
|
resp.setUpdaterName(nameMap.get(Long.parseLong(resp.getUpdater())));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return page;
|
return page;
|
||||||
}else{
|
} else {
|
||||||
return PageResult.empty();
|
return PageResult.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,11 +81,11 @@ public class BackupRecordServiceImpl extends ServiceImpl<BackupRecordMapper, Ba
|
|||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
@Override
|
@Override
|
||||||
public void backup(){
|
public void backup() {
|
||||||
BackupRecordDO last = backupRecordMapper.selectOne(new LambdaQueryWrapper<BackupRecordDO>().orderByDesc(
|
BackupRecordDO last = backupRecordMapper.selectOne(new LambdaQueryWrapper<BackupRecordDO>().orderByDesc(
|
||||||
BackupRecordDO::getId
|
BackupRecordDO::getId
|
||||||
).last("limit 1"));
|
).last("limit 1"));
|
||||||
if(last!= null) {
|
if (last != null) {
|
||||||
if (last.getCreateTime().plusMinutes(5).isAfter(LocalDateTime.now())) {
|
if (last.getCreateTime().plusMinutes(5).isAfter(LocalDateTime.now())) {
|
||||||
throw exception(BACKUP_MANY);
|
throw exception(BACKUP_MANY);
|
||||||
}
|
}
|
||||||
@ -97,17 +98,18 @@ public class BackupRecordServiceImpl extends ServiceImpl<BackupRecordMapper, Ba
|
|||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
@Override
|
@Override
|
||||||
public void revertBackup(){
|
public void revertBackup() {
|
||||||
BackupRecordDO backupRecordDO = backupRecordMapper.selectOne(new LambdaQueryWrapper<BackupRecordDO>().orderByDesc(
|
BackupRecordDO backupRecordDO = backupRecordMapper.selectOne(new LambdaQueryWrapper<BackupRecordDO>().orderByDesc(
|
||||||
BackupRecordDO::getId
|
BackupRecordDO::getId
|
||||||
).last("limit 1"));
|
).last("limit 1"));
|
||||||
if(backupRecordDO!=null) {
|
|
||||||
if (backupRecordDO.getUpdateTime().plusMinutes(5).isAfter(LocalDateTime.now()) &&
|
Long count = backupRecordMapper.selectCount();
|
||||||
!backupRecordDO.getCreateTime().isEqual(backupRecordDO.getUpdateTime())) {
|
if (backupRecordDO == null) throw exception(BACKUP_NO_BACKUP);
|
||||||
throw exception(BACKUP_MANY);
|
if (backupRecordDO.getUpdateTime().plusMinutes(5).isAfter(LocalDateTime.now()) && count > 1) {
|
||||||
}
|
throw exception(BACKUP_MANY);
|
||||||
}
|
}
|
||||||
this.baseMapper.revertBackup();
|
this.baseMapper.revertBackup();
|
||||||
|
backupRecordDO.setUpdateTime(LocalDateTime.now());
|
||||||
this.baseMapper.updateById(backupRecordDO);
|
this.baseMapper.updateById(backupRecordDO);
|
||||||
//清除redis信息
|
//清除redis信息
|
||||||
Set<String> orderCountKeys = stringRedisTemplate.keys(orderCountKey);
|
Set<String> orderCountKeys = stringRedisTemplate.keys(orderCountKey);
|
||||||
|
Reference in New Issue
Block a user