feat(dify): 添加应用启用禁用功能和可用应用列表接口- 在 DifyServerService 接口中添加 enabledApp 方法

- 在 DifyServerServiceImpl 中实现 enabledApp 方法,用于切换应用的启用状态
- 在 V1ServerController 中添加 enabledApp 控制器方法- 新增 getAbleApps接口,用于获取可用应用列表
- 优化应用列表查询,使用 LambdaQueryWrapper 替代 QueryWrapper
This commit is contained in:
zhuangtianxiang 2025-04-26 11:57:29 +08:00
parent b4d5584f9b
commit 9b72d5deb0
4 changed files with 30 additions and 4 deletions

View File

@ -10,6 +10,7 @@ import org.springframework.security.authentication.ProviderManager;
import org.springframework.security.authentication.dao.DaoAuthenticationProvider; import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity;
import org.springframework.security.core.session.SessionRegistry; import org.springframework.security.core.session.SessionRegistry;
import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.SecurityFilterChain;
@ -23,6 +24,7 @@ import javax.sql.DataSource;
/** /**
* @author harry_yao * @author harry_yao
*/ */
//@EnableWebFluxSecurity
@AllArgsConstructor @AllArgsConstructor
@EnableMethodSecurity @EnableMethodSecurity
@Configuration @Configuration

View File

@ -1,6 +1,7 @@
package com.zsc.edu.dify.modules.dify.controller; package com.zsc.edu.dify.modules.dify.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.zsc.edu.dify.modules.dify.entity.AppEntity; import com.zsc.edu.dify.modules.dify.entity.AppEntity;
import com.zsc.edu.dify.modules.dify.service.DifyServerService; import com.zsc.edu.dify.modules.dify.service.DifyServerService;
import io.github.guoshiqiufeng.dify.server.DifyServer; import io.github.guoshiqiufeng.dify.server.DifyServer;
@ -82,11 +83,25 @@ public class V1ServerController {
} }
/** /**
* 切换启用状态
* *
* @param id 应用id
* @return
*/ */
@PostMapping("/app/{id}") @PostMapping("/app/{id}")
public boolean enabledApp(@PathVariable("id") String id) { public boolean enabledApp(@PathVariable String id) {
return true; return difyServerService.enabledApp(id);
}
/**
* 获取可用应用列表
* @return
*/
@GetMapping("/apps/able")
public List<AppEntity> getAbleApps() {
LambdaQueryWrapper<AppEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(AppEntity::isEnabled, true);
return difyServerService.list(queryWrapper);
} }
} }

View File

@ -9,4 +9,5 @@ import java.util.List;
public interface DifyServerService extends IService<AppEntity> { public interface DifyServerService extends IService<AppEntity> {
List<AppsResponseVO> getApps(String mode, String name); List<AppsResponseVO> getApps(String mode, String name);
boolean enabledApp(String id);
} }

View File

@ -1,9 +1,7 @@
package com.zsc.edu.dify.modules.dify.service.Impl; package com.zsc.edu.dify.modules.dify.service.Impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zsc.edu.dify.common.util.TreeUtil;
import com.zsc.edu.dify.exception.ConstraintException; import com.zsc.edu.dify.exception.ConstraintException;
import com.zsc.edu.dify.modules.dify.entity.AppEntity; import com.zsc.edu.dify.modules.dify.entity.AppEntity;
import com.zsc.edu.dify.modules.dify.mapper.AppEntityMapper; import com.zsc.edu.dify.modules.dify.mapper.AppEntityMapper;
@ -57,4 +55,14 @@ public class DifyServerServiceImpl extends ServiceImpl<AppEntityRepository, AppE
return appsResponseList; return appsResponseList;
} }
@Override
public boolean enabledApp(String id) {
AppEntity appEntity = baseMapper.selectById(id);
if(appEntity == null){
throw new ConstraintException("应用不存在");
}
appEntity.setEnabled(!appEntity.isEnabled());
baseMapper.updateById(appEntity);
return true;
}
} }