提交 d86f28c5 作者: yanxin

个人素材管理相关接口

上级 ad477b96
......@@ -4,6 +4,8 @@ import java.util.HashMap;
import java.util.Map;
public class Constants {
//个人素材知识库id
public static final String SC_USER = "1826201830565163010";
//redis缓存 key常量
public static final String FINANCE = "SAVE_ES:";
public static final String RESEARCH = "RESEARCH:";
......
package com.zzsn.knowbase.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.zzsn.knowbase.constant.Constants;
import com.zzsn.knowbase.entity.*;
import com.zzsn.knowbase.service.IKnowledgeService;
import com.zzsn.knowbase.service.ILocalFileService;
import com.zzsn.knowbase.service.KbKnowledgeProjectService;
import com.zzsn.knowbase.util.AuthUtil;
import com.zzsn.knowbase.util.ExcelExportUtil;
import com.zzsn.knowbase.util.SpringContextUtils;
import com.zzsn.knowbase.vo.KnowledgeParam;
import com.zzsn.knowbase.vo.KnowledgeVO;
import com.zzsn.knowbase.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.util.WebUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
/**
* 知识
* @Author: chenshiqiang
* @Version: V1.0
*/
@Api(tags = "知识")
@RestController
@RequestMapping("/api/knowledge/user")
@Slf4j
public class KnowledgeUserController {
@Autowired
private IKnowledgeService knowledgeService;
@Autowired
private KbKnowledgeProjectService knowledgeProjectService;
@Autowired
private ILocalFileService localFileService;
/**
* 新增用户分组
*/
@PostMapping(value = "/group/add")
public Result<?> groupAdd(@RequestBody KbKnowledgeProject knowledgeProject) {
LoginUser loginUser = AuthUtil.getLoginUser();
if(loginUser == null){
return Result.error("用户未登录!");
}
knowledgeProject.setPid(loginUser.getId());
knowledgeProject.setFullPath(loginUser.getId());
knowledgeProject.setHasChild("0");
knowledgeProject.setCategory("user");
knowledgeProject.setCreateTime(new Date());
log.info("新增用户分组:{}", knowledgeProject);
knowledgeProjectService.save(knowledgeProject);
return Result.OK("保存成功!");
}
/**
* 查询用户分组
*/
@GetMapping(value = "/group/list")
public Result<?> groupList() {
LoginUser loginUser = AuthUtil.getLoginUser();
if(loginUser == null){
return Result.error("用户未登录!");
}
List<KbKnowledgeProject> list = knowledgeProjectService.listByUserId(loginUser.getId());
return Result.OK(list);
}
/**
* 查询用户分组
*/
@PutMapping(value = "/group/edit")
public Result<?> groupEdit(@RequestBody KbKnowledgeProject knowledgeProject) {
LoginUser loginUser = AuthUtil.getLoginUser();
if(loginUser == null){
return Result.error("用户未登录!");
}
KbKnowledgeProject byId = knowledgeProjectService.getById(knowledgeProject.getId());
if(byId == null || !loginUser.getId().equals(byId.getPid())){
return Result.error("分类不存在!");
}
byId.setTypeName(knowledgeProject.getTypeName());
log.info("编辑用户分组:{}", byId);
knowledgeProjectService.updateById(byId);
return Result.OK("编辑成功!");
}
/**
* 查询用户分组
*/
@DeleteMapping(value = "/group/delete")
public Result<?> groupDelete(String id) {
LoginUser loginUser = AuthUtil.getLoginUser();
if(loginUser == null){
return Result.error("用户未登录!");
}
KbKnowledgeProject byId = knowledgeProjectService.getById(id);
if(byId == null || !loginUser.getId().equals(byId.getPid())){
return Result.error("分类不存在!");
}
log.info("删除用户分组:{}", byId);
knowledgeProjectService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 分页列表查询
*/
@GetMapping(value = "/list")
public Result<?> queryPageList(KnowledgeParam knowledgeParam,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
@RequestParam(name = "column", defaultValue = "common") String column,
@RequestParam(name = "order", defaultValue = "desc") String order,
HttpServletRequest request) {
LoginUser loginUser = AuthUtil.getLoginUser();
if(loginUser == null){
return Result.error("用户未登录!");
}
knowledgeParam.setKbKnowledgeId(Constants.SC_USER);
knowledgeParam.setUserId(loginUser.getId());
IPage<KnowledgeVO> pageList = knowledgeService.queryPageList(knowledgeParam, pageNo, pageSize, column, order);
return Result.OK(pageList);
}
/**
* 添加
*
* @param knowledge
* @return
*/
@ApiOperation(value = "知识-添加", notes = "知识-添加")
@PostMapping(value = "/uploadKnowledge")
public Result<?> uploadKnowledge(HttpServletRequest request, Knowledge knowledge) {
LoginUser loginUser = AuthUtil.getLoginUser();
if(loginUser == null){
return Result.error("用户未登录!");
}
knowledge.setUserId(loginUser.getId());
//对应个人素材知识库
knowledge.setKbKnowledgeId(Constants.SC_USER);
MultipartHttpServletRequest multipartRequest = WebUtils.getNativeRequest(request, MultipartHttpServletRequest.class);
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
Result<List<KnowFile>> result = localFileService.upload(fileMap);
log.info("upload result:{}", result);
if (!Integer.valueOf("200").equals(result.getCode())) {
return Result.error(result.getMessage());
}
List<KnowFile> resultList = result.getResult();
KbAuthorizedUser userInfo = SpringContextUtils.getUserInfo();
knowledge.setImportData(0);
CompletableFuture.runAsync(() -> this.add(resultList, knowledge, userInfo));
return Result.OK("添加成功!");
}
private void add(List<KnowFile> resultList, Knowledge knowledge, KbAuthorizedUser userInfo) {
if (null == resultList || resultList.isEmpty()) {
return;
}
for (KnowFile knowFileResult : resultList) {
knowledge.setId(null);
knowledge.setTitle(null);
knowledgeService.addKnowledge(knowFileResult, knowledge, userInfo);
}
}
/**
* 编辑
*
* @param knowledge
* @return
*/
@ApiOperation(value = "信息源组类别-编辑", notes = "信息源组类别-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@RequestBody Knowledge knowledge) {
knowledgeService.updateKnowledge(knowledge);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param
* @return
*/
@PostMapping(value = "/delete")
public Result<?> delete(@RequestBody DeleteParam deleteParam) {
knowledgeService.deleteKnowledge(deleteParam.getKnowledgeList());
return Result.OK("删除成功!");
}
/**
* 通过excel导入
*
* @return
*/
@RequestMapping(value = "/importInfo", method = RequestMethod.POST)
public Result<?> importInfo(HttpServletRequest request, HttpServletResponse response) {
LoginUser loginUser = AuthUtil.getLoginUser();
if(loginUser == null){
return Result.error("用户未登录!");
}
return knowledgeService.doImportInfo(request, loginUser.getId());
}
/**
* 下载导入模板
*/
@RequestMapping(value = "/download")
public Result<?> download(HttpServletRequest request, HttpServletResponse response) {
try {
List<KnowledgeUserExcel> dataList = new ArrayList<>();
String filePath = Constants.TEMP_FILES_DIR + "template.xlsx";
ExcelExportUtil.writeExcelFront(dataList, "素材导入模板", filePath, KnowledgeUserExcel.class);
ExcelExportUtil.download(response, filePath, true);
} catch (Exception e) {
e.printStackTrace();
}
return Result.OK();
}
}
\ No newline at end of file
......@@ -119,7 +119,10 @@ public class Knowledge implements Serializable {
* 0word 1excel&subject 2ppt 3pdf
*/
private Integer importData;
/**
* 个人素材所属用户id
*/
private String userId;
}
package com.zzsn.knowbase.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Description: 知识
* @Author: chenshiqiang
* @Version: V1.0
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class KnowledgeUserExcel {
@ExcelProperty(value = "标题", index = 0)
private String title;
@ExcelProperty(value = "正文", index = 1)
private String contentWithTag;
@ExcelProperty(value = "作者", index = 2)
private String author;
@ExcelProperty(value = "来源", index = 3)
private String origin;
@ExcelProperty(value = "发布时间", index = 4)
private String publishDate;
@ExcelProperty(value = "原文链接", index = 5)
private String sourceAddress;
}
package com.zzsn.knowbase.entity;
import java.util.Date;
import java.util.List;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 在线用户信息
* </p>
*
* @Author scott
* @since 2018-12-20
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class LoginUser {
/**
* 登录人id
*/
private String id;
/**
* 登录人账号
*/
private String username;
/**
* 登录人名字
*/
private String realname;
/**
* 登录人密码
*/
private String password;
/**
* md5密码盐
*/
private String salt;
/**
* 当前登录部门code
*/
private String orgCode;
/**
* 头像
*/
private String avatar;
/**
* 生日
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birthday;
/**
* 性别(1:男 2:女)
*/
private Integer sex;
/**
* 电子邮件
*/
private String email;
/**
* 电话
*/
private String phone;
/**
* 状态(1:正常 2:冻结 )
*/
private Integer status;
private Integer delFlag;
/**
* 同步工作流引擎1同步0不同步
*/
private Integer activitiSync;
/**
* 创建时间
*/
private Date createTime;
/**
* 身份(1 普通员工 2 上级)
*/
private Integer userIdentity;
/**
* 管理部门ids
*/
private String departIds;
/**
* 职务,关联职务表
*/
private String post;
/**
* 座机号
*/
private String telephone;
/**多租户id配置,编辑用户的时候设置*/
private String relTenantIds;
/**设备id uniapp推送用*/
private String clientId;
/**1-超级用户;2-普通用户;3-管理员用户(租户下)*/
private Integer category;
private List<String> roles;
/**用户绑定的角色所属的项目的id集合*/
List<String> projectIds;
}
......@@ -47,4 +47,6 @@ public interface KbKnowledgeProjectService extends IService<KbKnowledgeProject>
List<String> getKnowledgeListByUserId(String userId,List<String> knowProjectIdList );
List<KbAuthuserKnowledgeprojectMap> getKnowledgeProjectListByUserId(String userId);
List<KbKnowledgeProject> listByUserId(String userid);
}
......@@ -354,6 +354,14 @@ public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjec
.eq(KbAuthuserKnowledgeprojectMap::getAuthUserId,userId));
}
@Override
public List<KbKnowledgeProject> listByUserId(String userid) {
LambdaQueryWrapper<KbKnowledgeProject> queryWrapper = Wrappers.lambdaQuery();
queryWrapper.eq(KbKnowledgeProject::getPid,userid);
queryWrapper.orderByDesc(KbKnowledgeProject::getCreateBy);
return this.list(queryWrapper);
}
/**
* 根据所传pid查询旧的父级节点的子节点并修改相应状态值
* @param pid
......
package com.zzsn.knowbase.util;
import com.alibaba.fastjson.JSON;
import com.zzsn.knowbase.entity.LoginUser;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.*;
public class AuthUtil {
static SimpleDateFormat format;
public static LoginUser getLoginUser() {
try {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String userInfo = request.getHeader("loginUser");
return JSON.parseObject(userInfo, LoginUser.class);
}catch (Exception e){
return null;
}
}
}
......@@ -42,7 +42,7 @@ public class KnowledgeParam {
*/
private String verifierName;
/**
* 知识库id
* 分类id
*/
private String knowledgeProjectId;
/**
......@@ -77,7 +77,15 @@ public class KnowledgeParam {
* 审核结束时间
*/
private String verifyEndTime;
/**
* 知识库id
*/
private String kbKnowledgeId;
private String subjectId;
/**
* 个人素材所属用户id
*/
private String userId;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论