mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2025-08-02 05:20:15 +08:00
Complete operation addition, deletion, modification, and check
This commit is contained in:
@ -79,4 +79,9 @@ public class Operation {
|
||||
* operation type
|
||||
*/
|
||||
private String operationType;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
private Long userId;
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
package ai.chat2db.server.domain.api.param;
|
||||
package ai.chat2db.server.domain.api.param.operation;
|
||||
|
||||
import lombok.Data;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package ai.chat2db.server.domain.api.param;
|
||||
package ai.chat2db.server.domain.api.param.operation;
|
||||
|
||||
import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package ai.chat2db.server.domain.api.param;
|
||||
package ai.chat2db.server.domain.api.param.operation;
|
||||
|
||||
import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam;
|
||||
|
@ -0,0 +1,27 @@
|
||||
package ai.chat2db.server.domain.api.param.operation;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.NonNull;
|
||||
|
||||
/**
|
||||
* query
|
||||
*
|
||||
* @author Jiaju Zhuang
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class OperationQueryParam {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@NonNull
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
@NonNull
|
||||
private Long userId;
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package ai.chat2db.server.domain.api.param;
|
||||
package ai.chat2db.server.domain.api.param.operation;
|
||||
|
||||
import lombok.Data;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package ai.chat2db.server.domain.api.param;
|
||||
package ai.chat2db.server.domain.api.param.operation;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
@ -1,8 +1,8 @@
|
||||
package ai.chat2db.server.domain.api.service;
|
||||
|
||||
import ai.chat2db.server.domain.api.param.OperationLogPageQueryParam;
|
||||
import ai.chat2db.server.domain.api.param.operation.OperationLogPageQueryParam;
|
||||
import ai.chat2db.server.domain.api.model.OperationLog;
|
||||
import ai.chat2db.server.domain.api.param.OperationLogCreateParam;
|
||||
import ai.chat2db.server.domain.api.param.operation.OperationLogCreateParam;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
package ai.chat2db.server.domain.api.service;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
import ai.chat2db.server.domain.api.model.Operation;
|
||||
import ai.chat2db.server.domain.api.param.OperationPageQueryParam;
|
||||
import ai.chat2db.server.domain.api.param.OperationSavedParam;
|
||||
import ai.chat2db.server.domain.api.param.OperationUpdateParam;
|
||||
import ai.chat2db.server.domain.api.param.operation.OperationPageQueryParam;
|
||||
import ai.chat2db.server.domain.api.param.operation.OperationQueryParam;
|
||||
import ai.chat2db.server.domain.api.param.operation.OperationSavedParam;
|
||||
import ai.chat2db.server.domain.api.param.operation.OperationUpdateParam;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 用户保存ddl
|
||||
@ -25,7 +25,7 @@ public interface OperationService {
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
DataResult<Long> create(OperationSavedParam param);
|
||||
DataResult<Long> createWithPermission(OperationSavedParam param);
|
||||
|
||||
/**
|
||||
* 更新用户的ddl
|
||||
@ -33,7 +33,7 @@ public interface OperationService {
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
ActionResult update(OperationUpdateParam param);
|
||||
ActionResult updateWithPermission(OperationUpdateParam param);
|
||||
|
||||
/**
|
||||
* 根据id查询
|
||||
@ -43,13 +43,27 @@ public interface OperationService {
|
||||
*/
|
||||
DataResult<Operation> find(@NotNull Long id);
|
||||
|
||||
/**
|
||||
* 根据id查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
DataResult<Operation> queryExistent(@NotNull Long id);
|
||||
/**
|
||||
* 查询一条数据
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
DataResult<Operation> queryExistent(@NotNull OperationQueryParam param);
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
ActionResult delete(@NotNull Long id);
|
||||
ActionResult deleteWithPermission(@NotNull Long id);
|
||||
|
||||
/**
|
||||
* 查询用户执行的ddl记录
|
||||
|
@ -3,8 +3,8 @@ package ai.chat2db.server.domain.core.converter;
|
||||
import java.util.List;
|
||||
|
||||
import ai.chat2db.server.domain.api.model.Operation;
|
||||
import ai.chat2db.server.domain.api.param.OperationSavedParam;
|
||||
import ai.chat2db.server.domain.api.param.OperationUpdateParam;
|
||||
import ai.chat2db.server.domain.api.param.operation.OperationSavedParam;
|
||||
import ai.chat2db.server.domain.api.param.operation.OperationUpdateParam;
|
||||
import ai.chat2db.server.domain.repository.entity.OperationSavedDO;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
|
@ -3,7 +3,7 @@ package ai.chat2db.server.domain.core.converter;
|
||||
import java.util.List;
|
||||
|
||||
import ai.chat2db.server.domain.api.model.OperationLog;
|
||||
import ai.chat2db.server.domain.api.param.OperationLogCreateParam;
|
||||
import ai.chat2db.server.domain.api.param.operation.OperationLogCreateParam;
|
||||
import ai.chat2db.server.domain.repository.entity.OperationLogDO;
|
||||
|
||||
import org.mapstruct.Mapper;
|
||||
|
@ -8,8 +8,8 @@ import java.util.stream.Collectors;
|
||||
|
||||
import ai.chat2db.server.domain.api.model.DataSource;
|
||||
import ai.chat2db.server.domain.api.model.OperationLog;
|
||||
import ai.chat2db.server.domain.api.param.OperationLogCreateParam;
|
||||
import ai.chat2db.server.domain.api.param.OperationLogPageQueryParam;
|
||||
import ai.chat2db.server.domain.api.param.operation.OperationLogCreateParam;
|
||||
import ai.chat2db.server.domain.api.param.operation.OperationLogPageQueryParam;
|
||||
import ai.chat2db.server.domain.api.service.DataSourceService;
|
||||
import ai.chat2db.server.domain.api.service.OperationLogService;
|
||||
import ai.chat2db.server.domain.core.converter.OperationLogConverter;
|
||||
|
@ -9,19 +9,23 @@ import java.util.stream.Collectors;
|
||||
|
||||
import ai.chat2db.server.domain.api.model.DataSource;
|
||||
import ai.chat2db.server.domain.api.model.Operation;
|
||||
import ai.chat2db.server.domain.api.param.OperationPageQueryParam;
|
||||
import ai.chat2db.server.domain.api.param.OperationSavedParam;
|
||||
import ai.chat2db.server.domain.api.param.OperationUpdateParam;
|
||||
import ai.chat2db.server.domain.api.param.operation.OperationPageQueryParam;
|
||||
import ai.chat2db.server.domain.api.param.operation.OperationQueryParam;
|
||||
import ai.chat2db.server.domain.api.param.operation.OperationSavedParam;
|
||||
import ai.chat2db.server.domain.api.param.operation.OperationUpdateParam;
|
||||
import ai.chat2db.server.domain.api.service.DataSourceService;
|
||||
import ai.chat2db.server.domain.api.service.OperationService;
|
||||
import ai.chat2db.server.domain.core.converter.OperationConverter;
|
||||
import ai.chat2db.server.domain.core.util.PermissionUtils;
|
||||
import ai.chat2db.server.domain.repository.entity.OperationSavedDO;
|
||||
import ai.chat2db.server.domain.repository.mapper.OperationSavedMapper;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
|
||||
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
|
||||
|
||||
import ai.chat2db.server.tools.common.exception.DataNotFoundException;
|
||||
import ai.chat2db.server.tools.common.model.EasyLambdaQueryWrapper;
|
||||
import ai.chat2db.server.tools.common.util.ContextUtils;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@ -50,16 +54,20 @@ public class OperationServiceImpl implements OperationService {
|
||||
private DataSourceService dataSourceService;
|
||||
|
||||
@Override
|
||||
public DataResult<Long> create(OperationSavedParam param) {
|
||||
public DataResult<Long> createWithPermission(OperationSavedParam param) {
|
||||
OperationSavedDO userSavedDdlDO = operationConverter.param2do(param);
|
||||
userSavedDdlDO.setGmtCreate(LocalDateTime.now());
|
||||
userSavedDdlDO.setGmtModified(LocalDateTime.now());
|
||||
userSavedDdlDO.setUserId(ContextUtils.getUserId());
|
||||
operationSavedMapper.insert(userSavedDdlDO);
|
||||
return DataResult.of(userSavedDdlDO.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionResult update(OperationUpdateParam param) {
|
||||
public ActionResult updateWithPermission(OperationUpdateParam param) {
|
||||
Operation data = queryExistent(param.getId()).getData();
|
||||
PermissionUtils.checkOperationPermission(data.getUserId());
|
||||
|
||||
OperationSavedDO userSavedDdlDO = operationConverter.param2do(param);
|
||||
userSavedDdlDO.setGmtModified(LocalDateTime.now());
|
||||
operationSavedMapper.updateById(userSavedDdlDO);
|
||||
@ -78,7 +86,31 @@ public class OperationServiceImpl implements OperationService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionResult delete(Long id) {
|
||||
public DataResult<Operation> queryExistent(Long id) {
|
||||
DataResult<Operation> dataResult = find(id);
|
||||
if (dataResult.getData() == null) {
|
||||
throw new DataNotFoundException();
|
||||
}
|
||||
return dataResult;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataResult<Operation> queryExistent(OperationQueryParam param) {
|
||||
EasyLambdaQueryWrapper<OperationSavedDO> queryWrapper = new EasyLambdaQueryWrapper<>();
|
||||
queryWrapper.eqWhenPresent(OperationSavedDO::getId, param.getId())
|
||||
.eqWhenPresent(OperationSavedDO::getUserId, param.getUserId());
|
||||
IPage<OperationSavedDO> page = operationSavedMapper.selectPage(new Page<>(1, 1), queryWrapper);
|
||||
if (CollectionUtils.isEmpty(page.getRecords())) {
|
||||
throw new DataNotFoundException();
|
||||
}
|
||||
return DataResult.of(operationConverter.do2dto(page.getRecords().get(0)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionResult deleteWithPermission(Long id) {
|
||||
Operation data = queryExistent(id).getData();
|
||||
PermissionUtils.checkOperationPermission(data.getUserId());
|
||||
|
||||
operationSavedMapper.deleteById(id);
|
||||
return ActionResult.isSuccess();
|
||||
}
|
||||
|
Reference in New Issue
Block a user