Complete operation addition, deletion, modification, and check

This commit is contained in:
JiaJu Zhuang
2023-09-02 14:51:48 +08:00
parent 26644b0e36
commit dcffa3d971
20 changed files with 259 additions and 47 deletions

View File

@ -79,4 +79,9 @@ public class Operation {
* operation type * operation type
*/ */
private String operationType; private String operationType;
/**
* 用户id
*/
private Long userId;
} }

View File

@ -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; import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam;

View File

@ -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; import ai.chat2db.server.tools.base.wrapper.param.PageQueryParam;

View File

@ -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;
}

View File

@ -1,4 +1,4 @@
package ai.chat2db.server.domain.api.param; package ai.chat2db.server.domain.api.param.operation;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;

View File

@ -1,8 +1,8 @@
package ai.chat2db.server.domain.api.service; 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.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.DataResult;
import ai.chat2db.server.tools.base.wrapper.result.PageResult; import ai.chat2db.server.tools.base.wrapper.result.PageResult;

View File

@ -1,14 +1,14 @@
package ai.chat2db.server.domain.api.service; 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.model.Operation;
import ai.chat2db.server.domain.api.param.OperationPageQueryParam; import ai.chat2db.server.domain.api.param.operation.OperationPageQueryParam;
import ai.chat2db.server.domain.api.param.OperationSavedParam; import ai.chat2db.server.domain.api.param.operation.OperationQueryParam;
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.tools.base.wrapper.result.ActionResult; 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.DataResult;
import ai.chat2db.server.tools.base.wrapper.result.PageResult; import ai.chat2db.server.tools.base.wrapper.result.PageResult;
import jakarta.validation.constraints.NotNull;
/** /**
* 用户保存ddl * 用户保存ddl
@ -25,7 +25,7 @@ public interface OperationService {
* @param param * @param param
* @return * @return
*/ */
DataResult<Long> create(OperationSavedParam param); DataResult<Long> createWithPermission(OperationSavedParam param);
/** /**
* 更新用户的ddl * 更新用户的ddl
@ -33,7 +33,7 @@ public interface OperationService {
* @param param * @param param
* @return * @return
*/ */
ActionResult update(OperationUpdateParam param); ActionResult updateWithPermission(OperationUpdateParam param);
/** /**
* 根据id查询 * 根据id查询
@ -43,13 +43,27 @@ public interface OperationService {
*/ */
DataResult<Operation> find(@NotNull Long id); 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 * @param id
* @return * @return
*/ */
ActionResult delete(@NotNull Long id); ActionResult deleteWithPermission(@NotNull Long id);
/** /**
* 查询用户执行的ddl记录 * 查询用户执行的ddl记录

View File

@ -3,8 +3,8 @@ package ai.chat2db.server.domain.core.converter;
import java.util.List; import java.util.List;
import ai.chat2db.server.domain.api.model.Operation; import ai.chat2db.server.domain.api.model.Operation;
import ai.chat2db.server.domain.api.param.OperationSavedParam; import ai.chat2db.server.domain.api.param.operation.OperationSavedParam;
import ai.chat2db.server.domain.api.param.OperationUpdateParam; import ai.chat2db.server.domain.api.param.operation.OperationUpdateParam;
import ai.chat2db.server.domain.repository.entity.OperationSavedDO; import ai.chat2db.server.domain.repository.entity.OperationSavedDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;

View File

@ -3,7 +3,7 @@ package ai.chat2db.server.domain.core.converter;
import java.util.List; import java.util.List;
import ai.chat2db.server.domain.api.model.OperationLog; 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 ai.chat2db.server.domain.repository.entity.OperationLogDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;

View File

@ -8,8 +8,8 @@ import java.util.stream.Collectors;
import ai.chat2db.server.domain.api.model.DataSource; import ai.chat2db.server.domain.api.model.DataSource;
import ai.chat2db.server.domain.api.model.OperationLog; 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.api.param.OperationLogPageQueryParam; import ai.chat2db.server.domain.api.param.operation.OperationLogPageQueryParam;
import ai.chat2db.server.domain.api.service.DataSourceService; import ai.chat2db.server.domain.api.service.DataSourceService;
import ai.chat2db.server.domain.api.service.OperationLogService; import ai.chat2db.server.domain.api.service.OperationLogService;
import ai.chat2db.server.domain.core.converter.OperationLogConverter; import ai.chat2db.server.domain.core.converter.OperationLogConverter;

View File

@ -9,19 +9,23 @@ import java.util.stream.Collectors;
import ai.chat2db.server.domain.api.model.DataSource; import ai.chat2db.server.domain.api.model.DataSource;
import ai.chat2db.server.domain.api.model.Operation; import ai.chat2db.server.domain.api.model.Operation;
import ai.chat2db.server.domain.api.param.OperationPageQueryParam; import ai.chat2db.server.domain.api.param.operation.OperationPageQueryParam;
import ai.chat2db.server.domain.api.param.OperationSavedParam; import ai.chat2db.server.domain.api.param.operation.OperationQueryParam;
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.api.service.DataSourceService; import ai.chat2db.server.domain.api.service.DataSourceService;
import ai.chat2db.server.domain.api.service.OperationService; import ai.chat2db.server.domain.api.service.OperationService;
import ai.chat2db.server.domain.core.converter.OperationConverter; 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.entity.OperationSavedDO;
import ai.chat2db.server.domain.repository.mapper.OperationSavedMapper; 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.ActionResult;
import ai.chat2db.server.tools.base.wrapper.result.DataResult; 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.ListResult;
import ai.chat2db.server.tools.base.wrapper.result.PageResult; 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.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -50,16 +54,20 @@ public class OperationServiceImpl implements OperationService {
private DataSourceService dataSourceService; private DataSourceService dataSourceService;
@Override @Override
public DataResult<Long> create(OperationSavedParam param) { public DataResult<Long> createWithPermission(OperationSavedParam param) {
OperationSavedDO userSavedDdlDO = operationConverter.param2do(param); OperationSavedDO userSavedDdlDO = operationConverter.param2do(param);
userSavedDdlDO.setGmtCreate(LocalDateTime.now()); userSavedDdlDO.setGmtCreate(LocalDateTime.now());
userSavedDdlDO.setGmtModified(LocalDateTime.now()); userSavedDdlDO.setGmtModified(LocalDateTime.now());
userSavedDdlDO.setUserId(ContextUtils.getUserId());
operationSavedMapper.insert(userSavedDdlDO); operationSavedMapper.insert(userSavedDdlDO);
return DataResult.of(userSavedDdlDO.getId()); return DataResult.of(userSavedDdlDO.getId());
} }
@Override @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); OperationSavedDO userSavedDdlDO = operationConverter.param2do(param);
userSavedDdlDO.setGmtModified(LocalDateTime.now()); userSavedDdlDO.setGmtModified(LocalDateTime.now());
operationSavedMapper.updateById(userSavedDdlDO); operationSavedMapper.updateById(userSavedDdlDO);
@ -78,7 +86,31 @@ public class OperationServiceImpl implements OperationService {
} }
@Override @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); operationSavedMapper.deleteById(id);
return ActionResult.isSuccess(); return ActionResult.isSuccess();
} }

View File

@ -0,0 +1,5 @@
ALTER TABLE `operation_saved`
modify COLUMN `user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '用户id';
update operation_saved
set user_id= 1;

View File

@ -1,12 +1,24 @@
package ai.chat2db.server.tools.common.model; package ai.chat2db.server.tools.common.model;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Predicate;
import ai.chat2db.server.tools.base.wrapper.param.OrderBy; import ai.chat2db.server.tools.base.wrapper.param.OrderBy;
import ai.chat2db.server.tools.common.util.EasySqlUtils; import ai.chat2db.server.tools.common.util.EasySqlUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper;
import com.baomidou.mybatisplus.core.conditions.SharedString;
import com.baomidou.mybatisplus.core.conditions.query.Query;
import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import static com.baomidou.mybatisplus.core.enums.SqlKeyword.EQ;
import static com.baomidou.mybatisplus.core.enums.SqlKeyword.ORDER_BY; import static com.baomidou.mybatisplus.core.enums.SqlKeyword.ORDER_BY;
/** /**
@ -14,7 +26,9 @@ import static com.baomidou.mybatisplus.core.enums.SqlKeyword.ORDER_BY;
* *
* @author Jiaju Zhuang * @author Jiaju Zhuang
*/ */
public class EasyLambdaQueryWrapper<T> extends LambdaQueryWrapper<T> { public class EasyLambdaQueryWrapper<T> extends AbstractLambdaWrapper<T, EasyLambdaQueryWrapper<T>>
implements Query<EasyLambdaQueryWrapper<T>, T, SFunction<T, ?>> {
public void orderBy(List<OrderBy> orderByList) { public void orderBy(List<OrderBy> orderByList) {
if (CollectionUtils.isEmpty(orderByList)) { if (CollectionUtils.isEmpty(orderByList)) {
return; return;
@ -24,4 +38,110 @@ public class EasyLambdaQueryWrapper<T> extends LambdaQueryWrapper<T> {
EasySqlUtils.parseOrderBy(orderBy.getDirection())); EasySqlUtils.parseOrderBy(orderBy.getDirection()));
} }
} }
public EasyLambdaQueryWrapper<T> eqWhenPresent(SFunction<T, ?> column, Object val) {
if (val != null) {
addCondition(true, column, EQ, val);
}
return typedThis;
}
// The following are the methods that come with the system
/**
* 查询字段
*/
private SharedString sqlSelect = new SharedString();
public EasyLambdaQueryWrapper() {
this((T)null);
}
public EasyLambdaQueryWrapper(T entity) {
super.setEntity(entity);
super.initNeed();
}
public EasyLambdaQueryWrapper(Class<T> entityClass) {
super.setEntityClass(entityClass);
super.initNeed();
}
EasyLambdaQueryWrapper(T entity, Class<T> entityClass, SharedString sqlSelect, AtomicInteger paramNameSeq,
Map<String, Object> paramNameValuePairs, MergeSegments mergeSegments, SharedString paramAlias,
SharedString lastSql, SharedString sqlComment, SharedString sqlFirst) {
super.setEntity(entity);
super.setEntityClass(entityClass);
this.paramNameSeq = paramNameSeq;
this.paramNameValuePairs = paramNameValuePairs;
this.expression = mergeSegments;
this.sqlSelect = sqlSelect;
this.paramAlias = paramAlias;
this.lastSql = lastSql;
this.sqlComment = sqlComment;
this.sqlFirst = sqlFirst;
}
/**
* SELECT 部分 SQL 设置
*
* @param columns 查询字段
*/
@SafeVarargs
@Override
public final EasyLambdaQueryWrapper<T> select(SFunction<T, ?>... columns) {
return select(Arrays.asList(columns));
}
public EasyLambdaQueryWrapper<T> select(List<SFunction<T, ?>> columns) {
if (com.baomidou.mybatisplus.core.toolkit.CollectionUtils.isNotEmpty(columns)) {
this.sqlSelect.setStringValue(columnsToString(false, columns));
}
return typedThis;
}
/**
* 过滤查询的字段信息(主键除外!)
* <p>例1: 只要 java 字段名以 "test" 开头的 -> select(i -&gt; i.getProperty().startsWith("test"))</p>
* <p>例2: 只要 java 字段属性是 CharSequence 类型的 -> select(TableFieldInfo::isCharSequence)</p>
* <p>例3: 只要 java 字段没有填充策略的 -> select(i -&gt; i.getFieldFill() == FieldFill.DEFAULT)</p>
* <p>例4: 要全部字段 -> select(i -&gt; true)</p>
* <p>例5: 只要主键字段 -> select(i -&gt; false)</p>
*
* @param predicate 过滤方式
* @return this
*/
@Override
public EasyLambdaQueryWrapper<T> select(Class<T> entityClass, Predicate<TableFieldInfo> predicate) {
if (entityClass == null) {
entityClass = getEntityClass();
} else {
setEntityClass(entityClass);
}
Assert.notNull(entityClass, "entityClass can not be null");
this.sqlSelect.setStringValue(TableInfoHelper.getTableInfo(entityClass).chooseSelect(predicate));
return typedThis;
}
@Override
public String getSqlSelect() {
return sqlSelect.getStringValue();
}
/**
* 用于生成嵌套 sql
* <p>故 sqlSelect 不向下传递</p>
*/
@Override
protected EasyLambdaQueryWrapper<T> instance() {
return new EasyLambdaQueryWrapper<>(getEntity(), getEntityClass(), null, paramNameSeq, paramNameValuePairs,
new MergeSegments(), paramAlias, SharedString.emptyString(), SharedString.emptyString(),
SharedString.emptyString());
}
@Override
public void clear() {
super.clear();
sqlSelect.toNull();
}
} }

View File

@ -3,8 +3,8 @@ package ai.chat2db.server.web.api.controller.operation.log;
import java.util.List; import java.util.List;
import ai.chat2db.server.domain.api.model.OperationLog; 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.api.param.OperationLogPageQueryParam; import ai.chat2db.server.domain.api.param.operation.OperationLogPageQueryParam;
import ai.chat2db.server.domain.api.service.OperationLogService; import ai.chat2db.server.domain.api.service.OperationLogService;
import ai.chat2db.server.tools.base.wrapper.result.DataResult; import ai.chat2db.server.tools.base.wrapper.result.DataResult;
import ai.chat2db.server.tools.base.wrapper.result.PageResult; import ai.chat2db.server.tools.base.wrapper.result.PageResult;

View File

@ -3,8 +3,8 @@ package ai.chat2db.server.web.api.controller.operation.log.converter;
import java.util.List; import java.util.List;
import ai.chat2db.server.domain.api.model.OperationLog; 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.api.param.OperationLogPageQueryParam; import ai.chat2db.server.domain.api.param.operation.OperationLogPageQueryParam;
import ai.chat2db.server.web.api.controller.operation.log.request.OperationLogCreateRequest; import ai.chat2db.server.web.api.controller.operation.log.request.OperationLogCreateRequest;
import ai.chat2db.server.web.api.controller.operation.log.request.OperationLogQueryRequest; import ai.chat2db.server.web.api.controller.operation.log.request.OperationLogQueryRequest;
import ai.chat2db.server.web.api.controller.operation.log.vo.OperationLogVO; import ai.chat2db.server.web.api.controller.operation.log.vo.OperationLogVO;

View File

@ -3,9 +3,10 @@ package ai.chat2db.server.web.api.controller.operation.saved;
import java.util.List; import java.util.List;
import ai.chat2db.server.domain.api.model.Operation; import ai.chat2db.server.domain.api.model.Operation;
import ai.chat2db.server.domain.api.param.OperationPageQueryParam; import ai.chat2db.server.domain.api.param.operation.OperationPageQueryParam;
import ai.chat2db.server.domain.api.param.OperationSavedParam; import ai.chat2db.server.domain.api.param.operation.OperationQueryParam;
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.api.service.OperationService; import ai.chat2db.server.domain.api.service.OperationService;
import ai.chat2db.server.tools.base.wrapper.result.ActionResult; 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.DataResult;
@ -54,7 +55,7 @@ public class OperationSavedController {
*/ */
@GetMapping("/list") @GetMapping("/list")
public WebPageResult<OperationVO> list(OperationQueryRequest request) { public WebPageResult<OperationVO> list(OperationQueryRequest request) {
OperationPageQueryParam param = operationWebConverter.queryReq2param(request); OperationPageQueryParam param = operationWebConverter.queryReq2param(request,ContextUtils.getUserId());
param.setUserId(ContextUtils.getUserId()); param.setUserId(ContextUtils.getUserId());
PageResult<Operation> dtoPageResult = operationService.queryPage(param); PageResult<Operation> dtoPageResult = operationService.queryPage(param);
List<OperationVO> operationVOS = operationWebConverter.dto2vo(dtoPageResult.getData()); List<OperationVO> operationVOS = operationWebConverter.dto2vo(dtoPageResult.getData());
@ -69,8 +70,11 @@ public class OperationSavedController {
*/ */
@GetMapping("/{id}") @GetMapping("/{id}")
public DataResult<OperationVO> get(@PathVariable("id") Long id) { public DataResult<OperationVO> get(@PathVariable("id") Long id) {
DataResult<Operation> dtoPageResult = operationService.find(id); OperationQueryParam param = new OperationQueryParam();
return DataResult.of(operationWebConverter.dto2vo(dtoPageResult.getData())); param.setId(id);
param.setUserId(ContextUtils.getUserId());
return operationService.queryExistent(param)
.map(operationWebConverter::dto2vo);
} }
/** /**
@ -83,7 +87,7 @@ public class OperationSavedController {
public DataResult<Long> create(@RequestBody OperationCreateRequest request) { public DataResult<Long> create(@RequestBody OperationCreateRequest request) {
OperationSavedParam param = operationWebConverter.req2param(request); OperationSavedParam param = operationWebConverter.req2param(request);
param.setTabOpened("y"); param.setTabOpened("y");
return operationService.create(param); return operationService.createWithPermission(param);
} }
/** /**
@ -95,7 +99,7 @@ public class OperationSavedController {
@RequestMapping(value = "/update", method = {RequestMethod.POST, RequestMethod.PUT}) @RequestMapping(value = "/update", method = {RequestMethod.POST, RequestMethod.PUT})
public ActionResult update(@RequestBody OperationUpdateRequest request) { public ActionResult update(@RequestBody OperationUpdateRequest request) {
OperationUpdateParam param = operationWebConverter.updateReq2param(request); OperationUpdateParam param = operationWebConverter.updateReq2param(request);
return operationService.update(param); return operationService.updateWithPermission(param);
} }
/** /**
@ -113,7 +117,7 @@ public class OperationSavedController {
OperationUpdateParam param = new OperationUpdateParam(); OperationUpdateParam param = new OperationUpdateParam();
param.setId(id); param.setId(id);
param.setTabOpened("n"); param.setTabOpened("n");
operationService.update(param); operationService.updateWithPermission(param);
}); });
return ActionResult.isSuccess(); return ActionResult.isSuccess();
} }
@ -126,6 +130,6 @@ public class OperationSavedController {
*/ */
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
public ActionResult delete(@PathVariable("id") Long id) { public ActionResult delete(@PathVariable("id") Long id) {
return operationService.delete(id); return operationService.deleteWithPermission(id);
} }
} }

View File

@ -3,9 +3,9 @@ package ai.chat2db.server.web.api.controller.operation.saved.converter;
import java.util.List; import java.util.List;
import ai.chat2db.server.domain.api.model.Operation; import ai.chat2db.server.domain.api.model.Operation;
import ai.chat2db.server.domain.api.param.OperationPageQueryParam; import ai.chat2db.server.domain.api.param.operation.OperationPageQueryParam;
import ai.chat2db.server.domain.api.param.OperationSavedParam; import ai.chat2db.server.domain.api.param.operation.OperationSavedParam;
import ai.chat2db.server.domain.api.param.OperationUpdateParam; import ai.chat2db.server.domain.api.param.operation.OperationUpdateParam;
import ai.chat2db.server.web.api.controller.operation.saved.request.OperationCreateRequest; import ai.chat2db.server.web.api.controller.operation.saved.request.OperationCreateRequest;
import ai.chat2db.server.web.api.controller.operation.saved.request.OperationQueryRequest; import ai.chat2db.server.web.api.controller.operation.saved.request.OperationQueryRequest;
import ai.chat2db.server.web.api.controller.operation.saved.request.OperationUpdateRequest; import ai.chat2db.server.web.api.controller.operation.saved.request.OperationUpdateRequest;
@ -45,7 +45,7 @@ public abstract class OperationWebConverter {
* @param request * @param request
* @return * @return
*/ */
public abstract OperationPageQueryParam queryReq2param(OperationQueryRequest request); public abstract OperationPageQueryParam queryReq2param(OperationQueryRequest request, Long userId);
/** /**
* 模型转换 * 模型转换

View File

@ -43,4 +43,9 @@ public class OperationUpdateRequest {
* operation type * operation type
*/ */
private String operationType; private String operationType;
/**
* 用户id
*/
private Long userId;
} }