Commit 91ecb374 authored by linpeiqin's avatar linpeiqin

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	zzlogs/application-webadmin/application-webadmin.log
parents d0b622bc f8d29640
package com.yice.webadmin.app.controller;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.extra.pinyin.PinyinUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONException;
......@@ -17,17 +19,21 @@ import com.yice.common.log.model.constant.SysOperationLogType;
import com.yice.webadmin.app.config.KnowledgeConfig;
import com.yice.webadmin.app.dto.KnowledgeManageDto;
import com.yice.webadmin.app.model.KnowledgeManage;
import com.yice.webadmin.app.model.KnowledgeUser;
import com.yice.webadmin.app.service.KnowledgeManageService;
import com.yice.webadmin.app.service.ProxyPythonService;
import com.yice.webadmin.app.vo.KnowledgeManageVo;
import com.yice.webadmin.upms.dto.SysUserDto;
import com.yice.webadmin.upms.model.SysUser;
import com.yice.webadmin.upms.vo.SysUserVo;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
* 知识库管理操作控制器类。
......@@ -57,13 +63,14 @@ public class KnowledgeManageController {
@ApiOperationSupport(ignoreParameters = {"knowledgeManageDto.knowledgeId", "knowledgeManageDto.searchString"})
@OperationLog(type = SysOperationLogType.ADD)
@PostMapping("/add")
public ResponseResult<String> add(@MyRequestBody KnowledgeManageDto knowledgeManageDto) {
public ResponseResult<KnowledgeManage> add(@MyRequestBody KnowledgeManageDto knowledgeManageDto) {
String errorMessage = MyCommonUtil.getModelValidationError(knowledgeManageDto, false);
if (errorMessage != null) {
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
}
KnowledgeManage knowledgeManage = MyModelUtil.copyTo(knowledgeManageDto, KnowledgeManage.class);
String requestBody = "{\n" + " \"knowledge_base_name\": \"" + knowledgeManage.getKnowledgeName() + "\",\n" + " \"vector_store_type\": \"faiss\",\n" + " \"embed_model\": \"m3e-base\"\n" + "}";
knowledgeManage.setKnowledgeCode(PinyinUtil.getPinyin(knowledgeManage.getKnowledgeName()).replace(" ","_"));
String requestBody = "{\n" + " \"knowledge_base_name\": \"" + knowledgeManage.getKnowledgeCode() + "\",\n" + " \"vector_store_type\": \"faiss\",\n" + " \"embed_model\": \"m3e-base\"\n" + "}";
try {
String result = proxyPythonService.predictPost(knowledgeConfig.getKnowledgeInterface() + knowledgeConfig.getCreate(), requestBody);
JSONObject jo = JSON.parseObject(result);
......@@ -71,16 +78,130 @@ public class KnowledgeManageController {
String msg = jo.getString("msg");
String data = jo.getString("data");
if (code != null && code == 200) {
knowledgeManageService.saveNew(knowledgeManage);
return ResponseResult.success(data);
KnowledgeManage reKnowledgeManage = knowledgeManageService.saveNew(knowledgeManage);
return ResponseResult.success(reKnowledgeManage);
} else {
return ResponseResult.create(ErrorCodeEnum.SERVER_INTERNAL_ERROR, msg, data);
return ResponseResult.create(ErrorCodeEnum.SERVER_INTERNAL_ERROR, msg, null);
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
/**
* 为指定页面添加用户列表。该操作可同时给一批用户赋值页面,并在同一事务内完成。
*
* @param knowledgeId 知识库id。
* @param userIdListString 逗号分隔的用户Id列表。
* @return 应答结果对象。
*/
@OperationLog(type = SysOperationLogType.ADD_M2M)
@PostMapping("/addKnowledgeUser")
public ResponseResult<Void> addKnowledgeUser(@MyRequestBody Long knowledgeId,
@MyRequestBody String userIdListString) {
if (MyCommonUtil.existBlankArgument(knowledgeId, userIdListString)) {
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
}
Set<Long> userIdSet = Arrays.stream(
userIdListString.split(",")).map(Long::valueOf).collect(Collectors.toSet());
KnowledgeUser knowledgeUser = null;
List<KnowledgeUser> knowledgeUserList = new LinkedList<>();
for (Long userId : userIdSet) {
knowledgeUser = new KnowledgeUser(userId, knowledgeId);
knowledgeUserList.add(knowledgeUser);
}
knowledgeManageService.addKnowledgeUserList(knowledgeUserList);
return ResponseResult.success();
}
/**
* 获取不包含指定面Id的用户列表。
* 用户和面是多对多关系,当前接口将返回没有赋值指定PageId的用户列表。可用于给页面添加新用户。
*
* @param knowledgeId 知识库标识。
* @param sysUserDtoFilter 用户过滤对象。
* @param orderParam 排序参数。
* @param pageParam 分页参数。
* @return 应答结果对象,包含用户列表数据。
*/
@PostMapping("/listNotInKnowledgeUser")
public ResponseResult<MyPageData<SysUserVo>> listNotInKnowledgeUser(
@MyRequestBody Long knowledgeId,
@MyRequestBody SysUserDto sysUserDtoFilter,
@MyRequestBody MyOrderParam orderParam,
@MyRequestBody MyPageParam pageParam) {
if (MyCommonUtil.existBlankArgument(knowledgeId)) {
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
}
if (pageParam != null) {
PageMethod.startPage(pageParam.getPageNum(), pageParam.getPageSize());
}
SysUser filter = MyModelUtil.copyTo(sysUserDtoFilter, SysUser.class);
String orderBy = MyOrderParam.buildOrderBy(orderParam, SysUser.class);
List<SysUser> userList = knowledgeManageService.getNotInSysUserListByKnowledgeId(knowledgeId, filter, orderBy);
return ResponseResult.success(MyPageUtil.makeResponseData(userList, SysUser.INSTANCE));
}
/**
* 拥有指定页面的用户列表。
*
* @param knowledgeId 知识库标识。
* @param sysUserDtoFilter 用户过滤对象。
* @param orderParam 排序参数。
* @param pageParam 分页参数。
* @return 应答结果对象,包含用户列表数据。
*/
@PostMapping("/listKnowledgeUser")
public ResponseResult<MyPageData<SysUserVo>> listKnowledgeUser(
@MyRequestBody Long knowledgeId,
@MyRequestBody SysUserDto sysUserDtoFilter,
@MyRequestBody MyOrderParam orderParam,
@MyRequestBody MyPageParam pageParam) {
if (MyCommonUtil.existBlankArgument(knowledgeId)) {
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
}
if (pageParam != null) {
PageMethod.startPage(pageParam.getPageNum(), pageParam.getPageSize());
}
SysUser filter = MyModelUtil.copyTo(sysUserDtoFilter, SysUser.class);
String orderBy = MyOrderParam.buildOrderBy(orderParam, SysUser.class);
List<SysUser> userList = knowledgeManageService.getSysUserListByKnowledgeId(knowledgeId, filter, orderBy);
return ResponseResult.success(MyPageUtil.makeResponseData(userList, SysUser.INSTANCE));
}
/**
* 为指定用户移除指定页面。
*
* @param knowledgeId 知识库标识。
* @param userId 指定用户主键Id。
* @return 应答数据结果。
*/
@OperationLog(type = SysOperationLogType.DELETE_M2M)
@PostMapping("/deleteKnowledgeUser")
public ResponseResult<Void> deleteKnowledgeUser(@MyRequestBody Long knowledgeId, @MyRequestBody Long userId) {
if (MyCommonUtil.existBlankArgument(knowledgeId, userId)) {
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
}
if (!knowledgeManageService.removeKnowledgeUser(knowledgeId, userId)) {
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
}
return ResponseResult.success();
}
/**
* 列出符合过滤条件的在线表单页面列表。
*
* @return 应答结果对象,包含查询结果集。
*/
@PostMapping("/load")
public ResponseResult<List<KnowledgeManageVo>> load() {
KnowledgeManage knowledgeManageFilter = new KnowledgeManage();
TokenData tokenData = TokenData.takeFromRequest();
knowledgeManageFilter.setCreateUserId(BooleanUtil.isTrue(tokenData.getIsAdmin()) ? null : tokenData.getUserId());
List<KnowledgeManage> knowledgeManageList = knowledgeManageService.loadKnowledgeUserList(knowledgeManageFilter, "create_time");
return ResponseResult.success(KnowledgeManage.INSTANCE.fromModelList(knowledgeManageList));
}
/**
* 更新知识库管理数据。
*
......@@ -90,7 +211,7 @@ public class KnowledgeManageController {
@ApiOperationSupport(ignoreParameters = {"knowledgeManageDto.searchString"})
@OperationLog(type = SysOperationLogType.UPDATE)
@PostMapping("/update")
public ResponseResult<Void> update(@MyRequestBody KnowledgeManageDto knowledgeManageDto) {
public ResponseResult<KnowledgeManage> update(@MyRequestBody KnowledgeManageDto knowledgeManageDto) {
String errorMessage = MyCommonUtil.getModelValidationError(knowledgeManageDto, true);
if (errorMessage != null) {
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
......@@ -105,7 +226,7 @@ public class KnowledgeManageController {
if (!knowledgeManageService.update(knowledgeManage, originalKnowledgeManage)) {
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
}
return ResponseResult.success();
return ResponseResult.success(originalKnowledgeManage);
}
/**
......@@ -304,7 +425,7 @@ public class KnowledgeManageController {
if (code != null && code == 200) {
for (KnowledgeManage knowledgeManage : knowledgeManageList) {
for (Object jsonObject : jsonArray) {
if (knowledgeManage.getKnowledgeName().equals(String.valueOf(jsonObject))) {
if (knowledgeManage.getKnowledgeCode().equals(String.valueOf(jsonObject))) {
reKnowledgeManageList.add(knowledgeManage);
}
}
......@@ -335,7 +456,7 @@ public class KnowledgeManageController {
if (code != null && code == 200) {
for (KnowledgeManage knowledgeManage : knowledgeManageList) {
for (Object jsonObject : jsonArray) {
if (knowledgeManage.getKnowledgeName().equals(String.valueOf(jsonObject))) {
if (knowledgeManage.getKnowledgeCode().equals(String.valueOf(jsonObject))) {
reKnowledgeManageList.add(knowledgeManage);
}
}
......@@ -408,6 +529,6 @@ public class KnowledgeManageController {
errorMessage = "数据操作失败,删除的对象不存在,请刷新后重试!";
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST, errorMessage);
}
return this.doDeleteByName(originalKnowledgeManage.getKnowledgeName());
return this.doDeleteByName(originalKnowledgeManage.getKnowledgeCode());
}
}
......@@ -174,8 +174,11 @@ public class ModelVersionController {
*/
@PostMapping("/listModels")
public ResponseResult<JSONArray> listModels() throws IOException {
String url = this.pythonConfig.getChatAddress() + "llm_model/list_models";
String result = proxyPythonService.predictPost(url, "");
JSONObject jsonObject = new JSONObject();
jsonObject.put("controller_address", pythonConfig.getControllerAddress());
jsonObject.put("placeholder", "string");
String url = this.pythonConfig.getChatAddress() + "llm_model/list_running_models";
String result = proxyPythonService.predictPost(url, jsonObject.toJSONString());
JSONObject jo = JSON.parseObject(result);
Integer code = jo.getIntValue("code");
String msg = jo.getString("msg");
......
......@@ -12,7 +12,7 @@ import java.util.List;
* @author linking
* @date 2023-04-13
*/
public interface KnowledgeManageMapper extends BaseDaoMapper<KnowledgeManage> {
public interface KnowledgeManageMapper extends BaseDaoMapper<KnowledgeManage> {
/**
* 批量插入对象列表。
......@@ -25,9 +25,21 @@ public interface KnowledgeManageMapper extends BaseDaoMapper<KnowledgeManage> {
* 获取过滤后的对象列表。
*
* @param knowledgeManageFilter 主表过滤对象。
* @param orderBy 排序字符串,order by从句的参数。
* @param orderBy 排序字符串,order by从句的参数。
* @return 对象列表。
*/
List<KnowledgeManage> getKnowledgeManageList(
@Param("knowledgeManageFilter") KnowledgeManage knowledgeManageFilter, @Param("orderBy") String orderBy);
/**
* 获取过滤后的对象列表。
*
* @param knowledgeManageFilter 主表过滤对象。
* @param orderBy 排序字符串,order by从句的参数。
* @return 对象列表。
*/
List<KnowledgeManage> loadKnowLedgeList(
@Param("knowledgeManageFilter") KnowledgeManage knowledgeManageFilter, @Param("orderBy") String orderBy);
}
package com.yice.webadmin.app.dao;
import com.yice.common.core.base.dao.BaseDaoMapper;
import com.yice.webadmin.app.model.KnowledgeUser;
import com.yice.webadmin.upms.model.SysUser;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 知识库管理数据操作访问接口。
*
* @author linking
* @date 2023-04-13
*/
public interface KnowledgeUserMapper extends BaseDaoMapper<KnowledgeUser> {
/**
* 批量插入对象列表。
*
* @param knowledgeUserList 新增对象列表。
*/
void insertList(List<KnowledgeUser> knowledgeUserList);
/**
* 根据页面Id,获取关联的用户列表。
*
* @param knowledgeId 知识库ID。
* @param sysUserFilter 用户过滤条件对象。
* @param orderBy order by从句的参数。
* @return 和角色Id关联的用户列表。
*/
List<SysUser> getSysUserListByKnowledgeId(
@Param("knowledgeId") Long knowledgeId,
@Param("sysUserFilter") SysUser sysUserFilter,
@Param("orderBy") String orderBy);
/**
* 获取不属于指定知识库的用户列表。
*
* @param knowledgeId 知识库ID。
* @param sysUserFilter 用户过滤条件对象。
* @param orderBy order by从句的参数。
* @return 和RoleId没有建立关联关系的用户列表。
*/
List<SysUser> getNotInSysUserListByKnowledgeId(
@Param("knowledgeId") Long knowledgeId,
@Param("sysUserFilter") SysUser sysUserFilter,
@Param("orderBy") String orderBy);
}
......@@ -8,6 +8,7 @@
<result column="update_user_id" jdbcType="BIGINT" property="updateUserId"/>
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
<result column="knowledge_name" jdbcType="VARCHAR" property="knowledgeName"/>
<result column="knowledge_code" jdbcType="VARCHAR" property="knowledgeCode"/>
<result column="knowledge_describe" jdbcType="VARCHAR" property="knowledgeDescribe"/>
</resultMap>
......@@ -19,6 +20,7 @@
update_user_id,
update_time,
knowledge_name,
knowledge_code,
knowledge_describe)
VALUES
<foreach collection="list" index="index" item="item" separator=",">
......@@ -28,6 +30,7 @@
#{item.updateUserId},
#{item.updateTime},
#{item.knowledgeName},
#{item.knowledgeCode},
#{item.knowledgeDescribe})
</foreach>
</insert>
......@@ -38,6 +41,18 @@
<include refid="com.yice.webadmin.app.dao.KnowledgeManageMapper.inputFilterRef"/>
</sql>
<select id="loadKnowLedgeList" resultMap="BaseResultMap" parameterType="com.yice.webadmin.app.model.KnowledgeManage">
SELECT DISTINCT lmp_knowledge_manage.*
FROM lmp_knowledge_manage
LEFT JOIN lmp_knowledge_user ON lmp_knowledge_user.knowledge_id = lmp_knowledge_manage.knowledge_id
<if test="knowledgeManageFilter.createUserId != null">
WHERE lmp_knowledge_user.user_id = #{knowledgeManageFilter.createUserId}
</if>
<if test="orderBy != null and orderBy != ''">
ORDER BY ${orderBy}
</if>
</select>
<!-- 这里仅包含调用接口输入的主表过滤条件 -->
<sql id="inputFilterRef">
<if test="knowledgeManageFilter != null">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yice.webadmin.app.dao.KnowledgeUserMapper">
<resultMap id="BaseResultMap" type="com.yice.webadmin.upms.model.SysUser">
<id column="user_id" jdbcType="BIGINT" property="userId"/>
<result column="login_name" jdbcType="VARCHAR" property="loginName"/>
<result column="password" jdbcType="VARCHAR" property="password"/>
<result column="dept_id" jdbcType="BIGINT" property="deptId"/>
<result column="show_name" jdbcType="VARCHAR" property="showName"/>
<result column="user_type" jdbcType="INTEGER" property="userType"/>
<result column="head_image_url" jdbcType="VARCHAR" property="headImageUrl"/>
<result column="user_status" jdbcType="INTEGER" property="userStatus"/>
<result column="email" jdbcType="VARCHAR" property="email"/>
<result column="mobile" jdbcType="VARCHAR" property="mobile"/>
<result column="create_user_id" jdbcType="BIGINT" property="createUserId"/>
<result column="update_user_id" jdbcType="BIGINT" property="updateUserId"/>
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
<result column="deleted_flag" jdbcType="INTEGER" property="deletedFlag"/>
</resultMap>
<insert id="insertList">
INSERT INTO lmp_knowledge_user(user_id,knowledge_id)
VALUES
<foreach collection="list" index="index" item="item" separator="," >
(#{item.userId},#{item.knowledgeId})
</foreach>
</insert>
<!-- 如果有逻辑删除字段过滤,请写到这里 -->
<sql id="filterRef">
<!-- 这里必须加上全包名,否则当filterRef被其他Mapper.xml包含引用的时候,就会调用Mapper.xml中的该SQL片段 -->
<include refid="com.yice.webadmin.upms.dao.SysUserMapper.inputFilterRef"/>
AND sys_user.deleted_flag = ${@com.yice.common.core.constant.GlobalDeletedFlag@NORMAL}
</sql>
<select id="getSysUserListByKnowledgeId" resultMap="BaseResultMap">
SELECT
sys_user.*
FROM
lmp_knowledge_user,
sys_user
<where>
AND lmp_knowledge_user.knowledge_id = #{knowledgeId}
AND lmp_knowledge_user.user_id = sys_user.user_id
<include refid="filterRef"/>
</where>
<if test="orderBy != null and orderBy != ''">
ORDER BY ${orderBy}
</if>
</select>
<select id="getNotInSysUserListByKnowledgeId" resultMap="BaseResultMap">
SELECT * FROM sys_user
<where>
NOT EXISTS (SELECT * FROM lmp_knowledge_user
WHERE lmp_knowledge_user.knowledge_id = #{knowledgeId} AND lmp_knowledge_user.user_id = sys_user.user_id)
<include refid="filterRef"/>
</where>
<if test="orderBy != null and orderBy != ''">
ORDER BY ${orderBy}
</if>
</select>
</mapper>
......@@ -38,6 +38,12 @@ public class KnowledgeManageDto {
@ApiModelProperty(value = "知识库描述")
private String knowledgeDescribe;
/**
* 知识库编码。
*/
@ApiModelProperty(value = "知识库编码")
private String knowledgeCode;
/**
* knowledge_name LIKE搜索字符串。
*/
......
......@@ -38,6 +38,11 @@ public class KnowledgeManage extends BaseModel {
*/
private String knowledgeName;
/**
* 知识库编码。
*/
private String knowledgeCode;
/**
* 知识库描述。
*/
......
package com.yice.webadmin.app.model;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* KnowledgeUser实体对象。
*
* @author linking
* @date 2022-04-05
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "lmp_knowledge_user")
public class KnowledgeUser {
/**
* 用户id。
*/
private Long userId;
/**
* 知识库id。
*/
private Long knowledgeId;
}
......@@ -2,6 +2,8 @@ package com.yice.webadmin.app.service;
import com.yice.common.core.base.service.IBaseService;
import com.yice.webadmin.app.model.KnowledgeManage;
import com.yice.webadmin.app.model.KnowledgeUser;
import com.yice.webadmin.upms.model.SysUser;
import java.util.List;
......@@ -21,6 +23,51 @@ public interface KnowledgeManageService extends IBaseService<KnowledgeManage, Lo
*/
KnowledgeManage saveNew(KnowledgeManage knowledgeManage);
/**
* 批量新增用户页面关联。
*
* @param knowledgeUserList 用户页面关系数据列表。
*/
void addKnowledgeUserList(List<KnowledgeUser> knowledgeUserList);
/**
* 移除指定用户和指定知识库的关联关系。
*
* @param knowledgeId 知识库标识。
* @param userId 用户主键Id。
* @return 移除成功返回true,否则false。
*/
boolean removeKnowledgeUser(Long knowledgeId, Long userId);
/**
* 获取指定角色的用户列表。
*
* @param knowledgeId 知识库标识。
* @param filter 用户过滤对象。
* @param orderBy 排序参数。
* @return 用户列表。
*/
List<SysUser> getSysUserListByKnowledgeId(Long knowledgeId, SysUser filter, String orderBy);
/**
* 获取不属于指定知识库的用户列表。
*
* @param knowledgeId 知识库ID。
* @param filter 用户过滤对象。
* @param orderBy 排序参数。
* @return 用户列表。
*/
List<SysUser> getNotInSysUserListByKnowledgeId(Long knowledgeId, SysUser filter, String orderBy);
/**
* 获取单表查询结果。由于没有关联数据查询,因此在仅仅获取单表数据的场景下,效率更高。
*
* @param filter 过滤对象。
* @param orderBy 排序参数。
* @return 查询结果集。
*/
List<KnowledgeManage> loadKnowledgeUserList(KnowledgeManage filter, String orderBy);
/**
* 利用数据库的insertList语法,批量插入对象列表。
*
......
package com.yice.webadmin.app.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.github.pagehelper.Page;
import com.yice.common.core.base.dao.BaseDaoMapper;
......@@ -9,8 +10,11 @@ import com.yice.common.core.object.MyRelationParam;
import com.yice.common.core.util.MyModelUtil;
import com.yice.common.sequence.wrapper.IdGeneratorWrapper;
import com.yice.webadmin.app.dao.KnowledgeManageMapper;
import com.yice.webadmin.app.dao.KnowledgeUserMapper;
import com.yice.webadmin.app.model.KnowledgeManage;
import com.yice.webadmin.app.model.KnowledgeUser;
import com.yice.webadmin.app.service.KnowledgeManageService;
import com.yice.webadmin.upms.model.SysUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -32,7 +36,8 @@ public class KnowledgeManageServiceImpl extends BaseService<KnowledgeManage, Lon
private KnowledgeManageMapper knowledgeManageMapper;
@Autowired
private IdGeneratorWrapper idGenerator;
@Autowired
private KnowledgeUserMapper knowledgeUserMapper;
/**
* 返回当前Service的主表Mapper对象。
......@@ -71,6 +76,59 @@ public class KnowledgeManageServiceImpl extends BaseService<KnowledgeManage, Lon
}
}
/**
* 批量新增用户页面关联。
*
* @param knowledgeUserList 用户页面关系数据列表。
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void addKnowledgeUserList(List<KnowledgeUser> knowledgeUserList) {
if(CollUtil.isNotEmpty(knowledgeUserList)){
knowledgeUserMapper.insertList(knowledgeUserList);
}
}
/**
* 获取指定角色的用户列表。
*
* @param knowledgeId 知识库标识。
* @param filter 用户过滤对象。
* @param orderBy 排序参数。
* @return 用户列表。
*/
@Override
public List<SysUser> getSysUserListByKnowledgeId(Long knowledgeId, SysUser filter, String orderBy) {
return knowledgeUserMapper.getSysUserListByKnowledgeId(knowledgeId, filter, orderBy);
}
/**
* 获取不属于指定知识库的用户列表。
*
* @param knowledgeId 知识库ID。
* @param filter 用户过滤对象。
* @param orderBy 排序参数。
* @return 用户列表。
*/
@Override
public List<SysUser> getNotInSysUserListByKnowledgeId(Long knowledgeId, SysUser filter, String orderBy) {
return knowledgeUserMapper.getNotInSysUserListByKnowledgeId(knowledgeId, filter, orderBy);
}
/**
* 移除指定用户和指定知识库的关联关系。
*
* @param knowledgeId 知识库标识。
* @param userId 用户主键Id。
* @return 移除成功返回true,否则false。
*/
@Transactional(rollbackFor = Exception.class)
@Override
public boolean removeKnowledgeUser(Long knowledgeId, Long userId) {
KnowledgeUser knowledgeUser = new KnowledgeUser(userId, knowledgeId);
return knowledgeUserMapper.delete(new QueryWrapper<>(knowledgeUser)) == 1;
}
/**
* 更新数据对象。
*
......@@ -87,6 +145,21 @@ public class KnowledgeManageServiceImpl extends BaseService<KnowledgeManage, Lon
return knowledgeManageMapper.update(knowledgeManage, uw) == 1;
}
/**
* 获取单表查询结果。由于没有关联数据查询,因此在仅仅获取单表数据的场景下,效率更高。
*
* @param filter 过滤对象。
* @param orderBy 排序参数。
* @return 查询结果集。
*/
@Override
public List<KnowledgeManage> loadKnowledgeUserList(KnowledgeManage filter, String orderBy) {
if (filter == null) {
filter = new KnowledgeManage();
}
return knowledgeManageMapper.loadKnowLedgeList(filter, orderBy);
}
/**
* 删除指定数据。
*
......
......@@ -37,6 +37,12 @@ public class KnowledgeManageVo extends BaseVo {
@ApiModelProperty(value = "知识库描述")
private String knowledgeDescribe;
/**
* 知识库编码。
*/
@ApiModelProperty(value = "知识库编码")
private String knowledgeCode;
/**
* 创建人名称。
*/
......
......@@ -23,6 +23,13 @@ public interface SysUserMapper extends BaseDaoMapper<SysUser> {
*/
void insertList(List<SysUser> sysUserList);
/**
* 根据用户编号进行删除。
*
* @param userId 用户编号。
*/
Integer deleteByUserId(@Param("userId") Long userId);
/**
* 获取过滤后的对象列表。
*
......
......@@ -386,4 +386,8 @@
ORDER BY
r.role_id, m.menu_id
</select>
<delete id="deleteByUserId" parameterType="java.lang.Long">
DELETE FROM sys_user WHERE user_id = #{userId}
</delete>
</mapper>
......@@ -20,6 +20,8 @@ import com.yice.common.ext.base.BizWidgetDatasource;
import com.yice.common.ext.constant.BizWidgetDatasourceType;
import com.yice.common.ext.util.BizWidgetDatasourceExtHelper;
import com.yice.common.sequence.wrapper.IdGeneratorWrapper;
import com.yice.webadmin.app.dao.KnowledgeUserMapper;
import com.yice.webadmin.app.model.KnowledgeUser;
import com.yice.webadmin.upms.dao.SysDataPermUserMapper;
import com.yice.webadmin.upms.dao.SysUserMapper;
import com.yice.webadmin.upms.dao.SysUserPostMapper;
......@@ -59,6 +61,8 @@ public class SysUserServiceImpl extends BaseService<SysUser, Long> implements Sy
@Autowired
private SysDataPermUserMapper sysDataPermUserMapper;
@Autowired
private KnowledgeUserMapper knowledgeUserMapper;
@Autowired
private SysDeptService sysDeptService;
@Autowired
private SysRoleService sysRoleService;
......@@ -308,7 +312,7 @@ public class SysUserServiceImpl extends BaseService<SysUser, Long> implements Sy
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long userId) {
if (sysUserMapper.deleteById(userId) == 0) {
if (sysUserMapper.deleteByUserId(userId) == 0) {
return false;
}
SysUserRole userRole = new SysUserRole();
......@@ -320,6 +324,9 @@ public class SysUserServiceImpl extends BaseService<SysUser, Long> implements Sy
SysDataPermUser dataPermUser = new SysDataPermUser();
dataPermUser.setUserId(userId);
sysDataPermUserMapper.delete(new QueryWrapper<>(dataPermUser));
KnowledgeUser knowledgeUser = new KnowledgeUser();
knowledgeUser.setUserId(userId);
knowledgeUserMapper.delete(new QueryWrapper<>(knowledgeUser));
return true;
}
......
......@@ -78,9 +78,9 @@ python:
#python websocket 服务地址
pythonWebsocketUri: ws://192.168.0.36:7860/queue/join
#输出控制地址
controllerAddress: http://0.0.0.0:20001
controllerAddress: http://192.168.0.36:20001
#对话基础路径
chatAddress: http://192.168.0.36:8000/
chatAddress: http://192.168.0.36:7861/
knowledge:
#知识库通用接口地址
......@@ -177,9 +177,9 @@ redis:
# 连接池中最小空闲数量。
minIdle: 5
minio:
enabled: true
endpoint: http://192.168.0.145:9090
accessKey: minioadmin
secretKey: minioadmin
bucketName: application
#minio:
# enabled: true
# endpoint: http://192.168.0.145:9090
# accessKey: minioadmin
# secretKey: minioadmin
# bucketName: application
......@@ -166,7 +166,11 @@
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>io.github.biezhi</groupId>
<artifactId>TinyPinyin</artifactId>
<version>2.0.3.RELEASE</version>
</dependency>
</dependencies>
<dependencyManagement>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment