feat: ASW-29 Application 恢复接口开发

This commit is contained in:
zhangshuai
2024-08-07 15:50:02 +08:00
parent 8932734ef6
commit f7caf6262c
5 changed files with 45 additions and 3 deletions

View File

@@ -112,4 +112,11 @@ public class ApplicationController {
Page page = applicationService.compare(id1, id2);
return R.ok().putData("record", page);
}
@PostMapping("/restore/{id}/{version}")
public R restore(@PathVariable("id") String id, @PathVariable("version") String version) {
applicationService.restore(id, version);
return R.ok();
}
}

View File

@@ -22,4 +22,6 @@ public interface IApplicationService extends IService<ApplicationEntity>{
Page compare(String id1, String id2);
List<ApplicationEntity> queryLogList(String id);
void restore(String id, String version);
}

View File

@@ -14,6 +14,7 @@ import net.geedge.asw.module.app.service.IApplicationLogService;
import net.geedge.asw.module.app.service.IApplicationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
@@ -40,6 +41,7 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationDao, Applicat
}
@Override
@Transactional(rollbackFor = Exception.class)
public ApplicationEntity saveApplication(ApplicationEntity entity) {
ApplicationEntity one = this.getOne(new LambdaQueryWrapper<ApplicationEntity>()
.eq(ApplicationEntity::getWorkspaceId, entity.getWorkspaceId())
@@ -59,6 +61,7 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationDao, Applicat
}
@Override
@Transactional(rollbackFor = Exception.class)
public ApplicationEntity updateApplication(ApplicationEntity entity) {
ApplicationEntity one = this.getOne(new LambdaQueryWrapper<ApplicationEntity>()
.eq(ApplicationEntity::getWorkspaceId, entity.getWorkspaceId())
@@ -75,13 +78,21 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationDao, Applicat
this.updateById(entity);
// save log
ApplicationLogEntity applicationLogEntity = T.BeanUtil.toBean(one, ApplicationLogEntity.class);
applicationLogService.save(applicationLogEntity);
this.saveApplcationToLog(one);
return entity;
}
private void saveApplcationToLog(ApplicationEntity one) {
ApplicationLogEntity applicationLogEntity = T.BeanUtil.toBean(one, ApplicationLogEntity.class);
applicationLogEntity.setUpdateTimestamp(System.currentTimeMillis());
applicationLogEntity.setUpdateUserId(StpUtil.getLoginIdAsString());
applicationLogEntity.setCreateTimestamp(System.currentTimeMillis());
applicationLogEntity.setCreateUserId(StpUtil.getLoginIdAsString());
applicationLogService.save(applicationLogEntity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void removeApplication(List<String> ids) {
// remove
this.removeBatchByIds(ids);
@@ -102,4 +113,24 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationDao, Applicat
page.setRecords(packageList);
return page;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void restore(String id, String version) {
// save current to log
ApplicationEntity curApplication = this.getById(id);
this.saveApplcationToLog(curApplication);
// restore
ApplicationLogEntity oldApplication = applicationLogService.getOne(new LambdaQueryWrapper<ApplicationLogEntity>()
.eq(ApplicationLogEntity::getId, id)
.eq(ApplicationLogEntity::getOpVersion, version));
oldApplication.setUpdateTimestamp(System.currentTimeMillis());
oldApplication.setUpdateUserId(StpUtil.getLoginIdAsString());
oldApplication.setOpVersion(curApplication.getOpVersion() + 1);
ApplicationEntity application = T.BeanUtil.toBean(oldApplication, ApplicationEntity.class);
this.updateById(application);
}
}

View File

@@ -14,6 +14,7 @@ INSERT INTO `sys_menu` (`id`, `name`, `i18n`, `pid`, `type`, `perms`, `route`, `
INSERT INTO `sys_menu` (`id`, `name`, `i18n`, `pid`, `type`, `perms`, `route`, `icon`, `order`, `create_timestamp`, `state`) VALUES ('2004', 'application_delete', 'buttons.delete', '2000', 'button', '', '', '', 4, 1722478572000, 1);
INSERT INTO `sys_menu` (`id`, `name`, `i18n`, `pid`, `type`, `perms`, `route`, `icon`, `order`, `create_timestamp`, `state`) VALUES ('2005', 'application_history', 'buttons.history', '2000', 'button', '', '', '', 5, 1722478572000, 1);
INSERT INTO `sys_menu` (`id`, `name`, `i18n`, `pid`, `type`, `perms`, `route`, `icon`, `order`, `create_timestamp`, `state`) VALUES ('2006', 'application_compare', 'buttons.compare', '2000', 'button', '', '', '', 6, 1722478572000, 1);
INSERT INTO `sys_menu` (`id`, `name`, `i18n`, `pid`, `type`, `perms`, `route`, `icon`, `order`, `create_timestamp`, `state`) VALUES ('2007', 'application_restore', 'buttons.restore', '2000', 'button', '', '', '', 7, 1722478572000, 1);
INSERT INTO `sys_menu` (`id`, `name`, `i18n`, `pid`, `type`, `perms`, `route`, `icon`, `order`, `create_timestamp`, `state`) VALUES ('3000', 'pcaps', 'overall.pcaps', '0', 'menu', '', '/pcaps', 'asw-icon icon-Pcaps', 2, 1722478572000, 1);
INSERT INTO `sys_menu` (`id`, `name`, `i18n`, `pid`, `type`, `perms`, `route`, `icon`, `order`, `create_timestamp`, `state`) VALUES ('3001', 'pacp_view', 'buttons.view', '3000', 'button', '', '', '', 1, 1722478572000, 1);

View File

@@ -14,6 +14,7 @@ INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES ('admin', '2003');
INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES ('admin', '2004');
INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES ('admin', '2005');
INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES ('admin', '2006');
INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES ('admin', '2007');
INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES ('admin', '3000');
INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES ('admin', '3001');