项目新建

This commit is contained in:
wans 2021-12-28 16:09:40 +08:00
parent 9b963e5c76
commit dcd8d08d73
1178 changed files with 384949 additions and 0 deletions

129
pom.xml Normal file
View File

@ -0,0 +1,129 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
<relativePath/>
</parent>
<groupId>cn.com.tenlion</groupId>
<artifactId>system-knowledge-library</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>system-knowledge-library</name>
<description>Knowledge Library</description>
<properties>
<java.version>1.8</java.version>
<spring-mybatis.version>2.1.4</spring-mybatis.version>
<mysql.version>8.0.22</mysql.version>
<druid.version>1.1.9</druid.version>
</properties>
<dependencies>
<!-- spring boot web依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- thymeleaf模板依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!-- mysql数据库依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${spring-mybatis.version}</version>
</dependency>
<!-- 德鲁伊连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<!-- 角色模块,该模块包含权限模块、菜单模块、组织机构模块、用户模块、文件模块 -->
<!--<dependency>
<groupId>ink.wgink</groupId>
<artifactId>service-role</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>-->
<!-- OAuth2客户端 -->
<dependency>
<groupId>ink.wgink</groupId>
<artifactId>login-oauth2-client</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- 用于实现对APP的的管理包含了APP的token管理token格式的校验 -->
<dependency>
<groupId>ink.wgink</groupId>
<artifactId>basic-app</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- 数据字典 -->
<dependency>
<groupId>ink.wgink</groupId>
<artifactId>module-dictionary</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- 文件上传 -->
<dependency>
<groupId>ink.wgink</groupId>
<artifactId>mongo-module-file</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- mongodb start -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<!-- mongodb end -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,17 @@
package cn.com.tenlion.knowledgelibrary;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@EnableSwagger2
@SpringBootApplication(scanBasePackages = {"cn.com.tenlion", "ink.wgink"})
@MapperScan(basePackages = {"cn.com.tenlion.**.dao", "ink.wgink.**.dao"})
public class SystemKnowledgeLibraryApplication {
public static void main(String[] args) {
SpringApplication.run(SystemKnowledgeLibraryApplication.class, args);
}
}

View File

@ -0,0 +1,117 @@
package cn.com.tenlion.knowledgelibrary.controller.api.askforknowledge;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.askforknowledge.AskForKnowledgeDTO;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgehistory.KnowledgeHistoryDTO;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.pojo.vos.knowledgelib.KnowledgeLibVO;
import cn.com.tenlion.knowledgelibrary.service.askforknowledge.IAskForKnowledgeService;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeHistoryService;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeLibService;
import ink.wgink.annotation.CheckRequestBodyAnnotation;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.interfaces.consts.ISystemConstant;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.ErrorResult;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultData;
import ink.wgink.pojo.result.SuccessResultList;
import ink.wgink.util.map.HashMapUtil;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* @ClassName: AskForKnowledgeController
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "接口")
@RestController
@RequestMapping(ISystemConstant.API_PREFIX + "/ask-for-knowledge")
public class AskForKnowledgeController extends DefaultBaseController {
@Autowired
private IAskForKnowledgeService askForKnowledgeService;
@ApiOperation(value = "分页列表", notes = "分页列表接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "page", value = "当前页码", paramType = "query", dataType = "int", defaultValue = "1"),
@ApiImplicitParam(name = "rows", value = "显示数量", paramType = "query", dataType = "int", defaultValue = "20"),
@ApiImplicitParam(name = "keywords", value = "关键字", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "startTime", value = "开始时间", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "endTime", value = "结束时间", paramType = "query", dataType = "String")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("listpage")
public SuccessResultList<List<AskForKnowledgeDTO>> listPage(ListPage page) {
Map<String, Object> params = requestParams();
page.setParams(params);
return askForKnowledgeService.listPage(page);
}
@ApiOperation(value = "列表", notes = "列表接口")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("list")
public List<AskForKnowledgeDTO> list() {
Map<String, Object> params = requestParams();
return askForKnowledgeService.list(params);
}
@ApiOperation(value = "get查询", notes = "get查询")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("get")
public AskForKnowledgeDTO get() {
Map<String, Object> params = requestParams();
return askForKnowledgeService.get(params);
}
@ApiOperation(value = "知识索要", notes = "知识索要新增接口")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@PostMapping("save")
@CheckRequestBodyAnnotation
public SuccessResult save(@RequestBody AskForKnowledgeDTO askForKnowledgeDTO) {
askForKnowledgeService.save(null, askForKnowledgeDTO);
return new SuccessResult();
}
/** 知识索要回复 **/
@PostMapping("update-answer/{askId}")
public SuccessResult updateAnswer(@PathVariable("askId") String askId,
@RequestBody Map<String, Object> params) {
params.put("askId",askId);
askForKnowledgeService.updateAnswer(params);
return new SuccessResult();
}
@ApiOperation(value = "修改", notes = "修改接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "knowledgeId", value = "ID", paramType = "path")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@PostMapping("update/{askId}")
@CheckRequestBodyAnnotation
public SuccessResult update(@PathVariable("askId") String askId, @RequestBody AskForKnowledgeDTO askForKnowledgeDTO) {
Map<String, Object> params = HashMapUtil.beanToMap(askForKnowledgeDTO);
params.put("askId", askId);
askForKnowledgeService.update(null, params);
return new SuccessResult();
}
@ApiOperation(value = "删除", notes = "删除接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "ids", value = "ID列表用下划线分隔", paramType = "path", example = "1_2_3")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@DeleteMapping("remove/{ids}")
public SuccessResult remove(@PathVariable("ids") String ids) {
askForKnowledgeService.remove(Arrays.asList(ids.split("\\_")));
return new SuccessResult();
}
}

View File

@ -0,0 +1,49 @@
package cn.com.tenlion.knowledgelibrary.controller.api.departmentcontroller;
import cn.com.tenlion.knowledgelibrary.service.departmentservice.IOauthDepartmentService;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.exceptions.SearchException;
import ink.wgink.interfaces.consts.ISystemConstant;
import ink.wgink.pojo.dtos.ZTreeDTO;
import ink.wgink.pojo.dtos.department.DepartmentDTO;
import ink.wgink.pojo.result.ErrorResult;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
* 获取统一用户部门接口
* @author xwangs
* @create 2021-11-08 10:19
* @description
*/
@RestController
@RequestMapping(ISystemConstant.API_PREFIX + "/oauth-department")
public class OauthDepartmentController extends DefaultBaseController {
@Autowired
private IOauthDepartmentService departmentService;
@ApiOperation(value = "获取部门列表(departmentParentId)", notes = "获取部门列表")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("list-dept-pid")
public List<DepartmentDTO> listBaseDepartmentByPid() throws SearchException {
Map<String, Object> params = requestParams();
return departmentService.listBaseDepartmentByPid(params);
}
@ApiOperation(value = "获取部门ZTree(departmentParentId)", notes = "获取部门ZTree")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("list-base-dept-ztree")
public List<ZTreeDTO> listBaseDeptZTree() throws SearchException {
Map<String, Object> params = requestParams();
return departmentService.listBaseDeptZTree(params);
}
}

View File

@ -0,0 +1,53 @@
package cn.com.tenlion.knowledgelibrary.controller.api.deptyellowpage;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.service.deptyellowpage.IDeptYellowPageService;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.interfaces.consts.ISystemConstant;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
* 部门黄页API
* @author xwangs
* @create 2021-10-29 16:43
* @description
*/
@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "部门黄页API")
@RestController
@RequestMapping(ISystemConstant.API_PREFIX + "/dept-yellow-page")
public class DeptYellowPageController extends DefaultBaseController {
@Autowired
private IDeptYellowPageService yellowPageService;
/** 根据部门ID 主题分类 查询知识库列表 **/
@GetMapping("list-knowledge-lib")
public List<KnowledgeLibDTO> listKnowledgeLib(){
Map<String, Object> params = requestParams();
return yellowPageService.listKnowledgeLib(params);
}
/** 根据部门ID获取当前部门下所有主题类别 **/
@GetMapping("list-category-by-dept/{departmentId}")
public List<Map<String, Object>> listCateGoryByDept(@PathVariable("departmentId") String departmentId){
Map<String, Object> params = requestParams();
params.put("departmentId",departmentId);
List<Map<String, Object>> list = yellowPageService.listCateGoryByDept(params);
return list;
}
/** 查询部门上报量 总浏览量 评分情况 **/
@GetMapping("get-dept-knowledge-info")
public Map<String, Object> getDeptKnowledgeInfo(){
Map<String, Object> params = requestParams();
return yellowPageService.getDeptKnowledgeInfo(params);
}
}

View File

@ -0,0 +1,90 @@
package cn.com.tenlion.knowledgelibrary.controller.api.keywordsrelation;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.keywordsrelation.KeywordsRelationDTO;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.pojo.vos.knowledgelib.KnowledgeLibVO;
import cn.com.tenlion.knowledgelibrary.service.keywordsrelation.IKeywordsRelationService;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.interfaces.consts.ISystemConstant;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultList;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 知识关键词API
* @author xwangs
* @create 2021-10-29 16:43
* @description
*/
@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "知识关键词API")
@RestController
@RequestMapping(ISystemConstant.API_PREFIX + "/keywords-relation")
public class KeywordsRelationController extends DefaultBaseController {
@Autowired
private IKeywordsRelationService keywordsRelationService;
/**
* 关键词分页列表
* @param page
* @return
*/
@GetMapping("list-page")
public SuccessResultList<List<KeywordsRelationDTO>> listPage(ListPage page) {
Map<String, Object> params = requestParams();
page.setParams(params);
return keywordsRelationService.listPage(page);
}
/**
* 关键词删除
* @param ids
* @return
*/
@DeleteMapping("remove/{ids}")
public SuccessResult remove(@PathVariable("ids") String ids) {
keywordsRelationService.remove(Arrays.asList(ids.split("\\_")));
return new SuccessResult();
}
/**
* 关键词新增
* @param dto
* @return
*/
@PostMapping("save")
public SuccessResult save(@RequestBody KeywordsRelationDTO dto) {
keywordsRelationService.save(dto);
return new SuccessResult();
}
/**
* 关键词新增
* @param dto
* @return
*/
@PostMapping("update/{keywordsId}")
public SuccessResult update(@PathVariable("keywordsId") String keywordsId,
@RequestBody KeywordsRelationDTO dto) {
dto.setKeywordsId(keywordsId);
keywordsRelationService.update(dto);
return new SuccessResult();
}
/**
* 关键词查询
* @return
*/
@GetMapping("get")
public KeywordsRelationDTO getReport() {
Map<String, Object> params = requestParams();
return keywordsRelationService.get(params);
}
}

View File

@ -0,0 +1,113 @@
package cn.com.tenlion.knowledgelibrary.controller.api.knowledgeappraise;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.service.knowledgeappraise.IKnowledgeAppraiseService;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.interfaces.consts.ISystemConstant;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* 知识评价API
* @author xwangs
* @create 2021-10-29 16:43
* @description
*/
@RestController
@RequestMapping(ISystemConstant.API_PREFIX + "/knowledge-appraise")
public class KnowledgeAppraiseController extends DefaultBaseController {
@Autowired
private IKnowledgeAppraiseService appraiseService;
/**
* 保存评价
* @param params
* @param knowledgeId
* @return
*/
@PostMapping("save-appraise/{knowledgeId}")
public SuccessResult saveAppraise(@PathVariable("knowledgeId") String knowledgeId,
@RequestBody Map<String, Object> params) {
params.put("knowledgeId",knowledgeId);
appraiseService.saveAppraise(params);
return new SuccessResult();
}
/**
* 知识评价分页列表
* @param page
* @return
*/
@GetMapping("list-page-appraise")
public SuccessResultList<List<Map<String, Object>>> listPageAppraise(ListPage page){
Map<String, Object> params = requestParams();
page.setParams(params);
return appraiseService.listPageAppraise(page);
}
/**
* 知识评价列表
* @return
*/
@GetMapping("list-appraise")
public List<Map<String, Object>> listAppraise(){
Map<String, Object> params = requestParams();
return appraiseService.listAppraise(params);
}
/**
* 知识收藏列表
* @return
*/
@GetMapping("list-page-collect")
public SuccessResultList<List<KnowledgeLibDTO>> listPageCollect(ListPage page){
Map<String, Object> params = requestParams();
page.setParams(params);
return appraiseService.listPageCollect(page);
}
/**
* 我的知识收藏列表
* @return
*/
@GetMapping("list-page-my-collect")
public SuccessResultList<List<KnowledgeLibDTO>> listPageMyCollect(ListPage page){
Map<String, Object> params = requestParams();
page.setParams(params);
return appraiseService.listPageMyCollect(page);
}
/**
* 收藏知识
* @param knowledgeId
* @return
*/
@PostMapping("save-collect/{knowledgeId}")
public SuccessResult saveCollect(@PathVariable("knowledgeId") String knowledgeId) {
Map<String, Object> params = requestParams();
params.put("knowledgeId",knowledgeId);
appraiseService.saveCollect(params);
return new SuccessResult();
}
/**
* 取消收藏
* @param knowledgeId
* @return
*/
@PostMapping("update-cancel-collect/{knowledgeId}")
public SuccessResult updateCancelCollect(@PathVariable("knowledgeId") String knowledgeId) {
Map<String, Object> params = requestParams();
params.put("knowledgeId",knowledgeId);
appraiseService.updateCancelCollect(params);
return new SuccessResult();
}
}

View File

@ -0,0 +1,90 @@
package cn.com.tenlion.knowledgelibrary.controller.api.knowledgecorrection;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgecorrection.KnowledgeCorrectionDTO;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.pojo.vos.knowledgecorrection.KnowledgeCorrectionVO;
import cn.com.tenlion.knowledgelibrary.service.knowledgecorrection.IKnowledgeCorrectionService;
import cn.com.tenlion.knowledgelibrary.service.knowledgeversion.IKnowledgeVersionService;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.interfaces.consts.ISystemConstant;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* 知识纠错
* @author xwangs
* @create 2021-10-28 11:25
* @description
*/
@RestController
@RequestMapping(ISystemConstant.API_PREFIX + "/knowledge-correction")
public class KnowledgeCorrectionController extends DefaultBaseController {
@Autowired
private IKnowledgeCorrectionService correctionService;
/**
* 知识纠错分页列表
* @param page
* @return
*/
@GetMapping("list-page-correction")
public SuccessResultList<List<KnowledgeCorrectionDTO>> listPageCorrection(ListPage page) {
Map<String, Object> params = requestParams();
page.setParams(params);
return correctionService.listPageCorrection(page);
}
/** 保存知识纠错 **/
@PostMapping("save-correction/{knowledgeId}")
public SuccessResult saveCorrection(@PathVariable("knowledgeId")String knowledgeId,
@RequestBody KnowledgeCorrectionVO vo) {
vo.setKnowledgeId(knowledgeId);
correctionService.saveCorrection(vo);
return new SuccessResult();
}
@GetMapping("get-correction/{id}")
public KnowledgeCorrectionDTO getCorrection(@PathVariable("id") String id) {
Map<String, Object> params = requestParams();
params.put("id", id);
return correctionService.getCorrection(params);
}
/** 核实知识纠错 **/
@PostMapping("update-correction/{id}")
public SuccessResult updateCorrection(@PathVariable("id") String id,
@RequestBody Map<String, Object> params) {
params.put("id",id);
correctionService.updateCorrection(params);
return new SuccessResult();
}
/** 通知修改人 **/
@PostMapping("save-correction-notice/{id}")
public SuccessResult saveCorrectionNotice(@PathVariable("id") String id,
@RequestBody Map<String, Object> params) {
params.put("id",id);
correctionService.saveCorrectionNotice(params);
return new SuccessResult();
}
/**
* 我的知识纠错分页列表
* @param page
* @return
*/
@GetMapping("list-page-my-correction")
public SuccessResultList<List<KnowledgeCorrectionDTO>> listPageMyCorrection(ListPage page) {
Map<String, Object> params = requestParams();
page.setParams(params);
return correctionService.listPageMyCorrection(page);
}
}

View File

@ -0,0 +1,142 @@
package cn.com.tenlion.knowledgelibrary.controller.api.knowledgelib;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgehistory.KnowledgeHistoryDTO;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeHistoryService;
import com.alibaba.excel.EasyExcel;
import ink.wgink.annotation.CheckRequestBodyAnnotation;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.exceptions.SaveException;
import ink.wgink.exceptions.SearchException;
import ink.wgink.interfaces.consts.ISystemConstant;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.ErrorResult;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultData;
import ink.wgink.pojo.result.SuccessResultList;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.pojo.vos.knowledgelib.KnowledgeLibVO;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeLibService;
import ink.wgink.util.UUIDUtil;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* @ClassName: KnowledgeLibController
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "接口")
@RestController
@RequestMapping(ISystemConstant.API_PREFIX + "/knowledgelib")
public class KnowledgeLibController extends DefaultBaseController {
@Autowired
private IKnowledgeLibService knowledgeLibService;
@Autowired
private IKnowledgeHistoryService knowledgeHistoryService;
@ApiOperation(value = "分页列表", notes = "分页列表接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "page", value = "当前页码", paramType = "query", dataType = "int", defaultValue = "1"),
@ApiImplicitParam(name = "rows", value = "显示数量", paramType = "query", dataType = "int", defaultValue = "20"),
@ApiImplicitParam(name = "keywords", value = "关键字", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "startTime", value = "开始时间", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "endTime", value = "结束时间", paramType = "query", dataType = "String")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("listpage")
public SuccessResultList<List<KnowledgeLibDTO>> listPage(ListPage page) {
Map<String, Object> params = requestParams();
page.setParams(params);
return knowledgeLibService.listPage(null, page);
}
@ApiOperation(value = "列表", notes = "列表接口")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("list")
public List<KnowledgeLibDTO> list() {
Map<String, Object> params = requestParams();
return knowledgeLibService.list(null,params);
}
@ApiOperation(value = "getById查询", notes = "getById查询")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("get/{knowledgeId}")
public KnowledgeLibDTO get(@PathVariable("knowledgeId") String knowledgeId) {
Map<String, Object> params = requestParams();
params.put("knowledgeId",knowledgeId);
return knowledgeLibService.get(params);
}
@ApiOperation(value = "新增", notes = "新增接口")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@PostMapping("save")
@CheckRequestBodyAnnotation
public SuccessResult save(@RequestBody KnowledgeLibVO knowledgeLibVO) {
knowledgeLibService.save(knowledgeLibVO);
return new SuccessResult();
}
@ApiOperation(value = "修改", notes = "修改接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "knowledgeId", value = "ID", paramType = "path")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@PutMapping("update/{knowledgeId}")
@CheckRequestBodyAnnotation
public SuccessResult update(@PathVariable("knowledgeId") String knowledgeId, @RequestBody KnowledgeLibVO knowledgeLibVO) {
knowledgeLibService.update(knowledgeId, knowledgeLibVO);
return new SuccessResult();
}
@ApiOperation(value = "删除", notes = "删除接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "ids", value = "ID列表用下划线分隔", paramType = "path", example = "1_2_3")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@DeleteMapping("remove/{ids}")
public SuccessResult remove(@PathVariable("ids") String ids) {
knowledgeLibService.remove(Arrays.asList(ids.split("\\_")));
return new SuccessResult();
}
/** 知识审核 **/
@PutMapping("pass-update")
public SuccessResult passUpdate(@RequestBody Map<String, Object> params) {
return knowledgeLibService.passUpdate(params);
}
/** 知识上架 **/
@PutMapping("publish-up")
public SuccessResult publishUp(@RequestBody Map<String, Object> params) {
return knowledgeLibService.publishUp(params);
}
/** 知识下架 **/
@PutMapping("publish-down")
public SuccessResult publishDown(@RequestBody Map<String, Object> params) {
return knowledgeLibService.publishDown(params);
}
/** 知识审核历史 **/
@GetMapping("list-knowledge-history")
public List<KnowledgeHistoryDTO> listKnowledgeHistory() {
Map<String, Object> params = requestParams();
return knowledgeHistoryService.listKnowledgeHistory(params);
}
}

View File

@ -0,0 +1,46 @@
package cn.com.tenlion.knowledgelibrary.controller.api.knowledgelib;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeHistoryService;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeLibService;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.HashMap;
import java.util.Map;
/**
* 知识上报批量导入工具类
* @author xwangs
* @create 2021-10-27 17:36
* @description
*/
public class KnowledgeLibExcelListener extends AnalysisEventListener<Map<Integer, Object>> {
private static Logger log = LoggerFactory.getLogger(KnowledgeLibExcelListener.class);
private IKnowledgeLibService service;
public KnowledgeLibExcelListener(IKnowledgeLibService serviceObj){
this.service = serviceObj;
}
@Override
public void invoke(Map<Integer, Object> data, AnalysisContext context) {
Map<String, Object> elem = new HashMap<>(8);
elem.put("title",data.get(0));
elem.put("summary",data.get(1));
elem.put("richContent",data.get(2));
try {
service.saveExcelImport(elem);
} catch (Exception e){
log.error("[批量导入上报信息失败]:" + data.toString());
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
}
}

View File

@ -0,0 +1,38 @@
package cn.com.tenlion.knowledgelibrary.controller.api.knowledgepageviews;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.service.knowledgepageviews.IKnowledgePageViewsService;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.interfaces.consts.ISystemConstant;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultData;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* 浏览记录
* @author xwangs
* @create 2021-10-29 16:43
* @description
*/
@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "浏览记录")
@RestController
@RequestMapping(ISystemConstant.API_PREFIX + "/knowledge-page-views")
public class KnowledgePageViewsController extends DefaultBaseController {
@Autowired
private IKnowledgePageViewsService pageViewsService;
@PostMapping("save-knowledge-page-views/{knowledgeId}")
public SuccessResultData saveViewsByToken(@PathVariable("knowledgeId")String knowledgeId) {
Map<String, Object> params = requestParams();
params.put("knowledgeId",knowledgeId);
params.put("source","system");
return pageViewsService.saveKnowledgePageViews(null, params);
}
}

View File

@ -0,0 +1,168 @@
package cn.com.tenlion.knowledgelibrary.controller.api.knowledgereport;
import cn.com.tenlion.knowledgelibrary.controller.api.knowledgelib.KnowledgeLibExcelListener;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgehistory.KnowledgeHistoryDTO;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.pojo.vos.knowledgelib.KnowledgeLibVO;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeHistoryService;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeLibService;
import com.alibaba.excel.EasyExcel;
import ink.wgink.annotation.CheckRequestBodyAnnotation;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.exceptions.SearchException;
import ink.wgink.interfaces.consts.ISystemConstant;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.ErrorResult;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultData;
import ink.wgink.pojo.result.SuccessResultList;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 知识上报API
* @ClassName: KnowledgeReportController
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "知识上报API")
@RestController
@RequestMapping(ISystemConstant.API_PREFIX + "/knowledge-report")
public class KnowledgeReportController extends DefaultBaseController {
@Autowired
private IKnowledgeLibService knowledgeLibService;
/**
* 知识上报分页列表
* @param page
* @return
*/
@GetMapping("list-page-report")
public SuccessResultList<List<KnowledgeLibDTO>> listPageReport(ListPage page) {
Map<String, Object> params = requestParams();
page.setParams(params);
return knowledgeLibService.listPageReport(page);
}
/**
* 知识上报列表
* @return
*/
@GetMapping("list-report")
public List<KnowledgeLibDTO> listReport() {
Map<String, Object> params = requestParams();
return knowledgeLibService.listReport(params);
}
/**
* 知识上报修改
* @param knowledgeId
* @param knowledgeLibVO
* @return
*/
@PutMapping("update-report/{knowledgeId}")
public SuccessResult update(@PathVariable("knowledgeId") String knowledgeId,
@RequestBody KnowledgeLibVO knowledgeLibVO) {
knowledgeLibVO.setKnowledgeId(knowledgeId);
knowledgeLibService.updateReport(knowledgeLibVO);
return new SuccessResult();
}
/**
* 知识上报保存
* @param knowledgeLibVO
* @return
*/
@PostMapping("save-report")
public SuccessResult saveReport(@RequestBody KnowledgeLibVO knowledgeLibVO) {
knowledgeLibService.saveReport(knowledgeLibVO);
return new SuccessResult();
}
/**
* 知识上报-根据ID查询
* @param knowledgeId
* @return
*/
@GetMapping("get-report/{knowledgeId}")
public KnowledgeLibDTO getReport(@PathVariable("knowledgeId") String knowledgeId) {
Map<String, Object> params = requestParams();
params.put("knowledgeId",knowledgeId);
return knowledgeLibService.getReport(params);
}
/**
* 知识上报删除
* @param ids
* @return
*/
@DeleteMapping("remove-report/{ids}")
public SuccessResult removeReport(@PathVariable("ids") String ids) {
knowledgeLibService.removeReport(null, Arrays.asList(ids.split("\\_")));
return new SuccessResult();
}
/**
* 知识上报提交审核
* @param ids
* @return
*/
@DeleteMapping("update-report-pass/{ids}")
public SuccessResult updateReportPass(@PathVariable("ids") String ids) {
knowledgeLibService.updateReportPass(Arrays.asList(ids.split("\\_")));
return new SuccessResult();
}
/** 知识上报审核 **/
@PutMapping("update-pass-type")
public SuccessResult updatePassType(@RequestBody Map<String, Object> params) {
return knowledgeLibService.updatePassType(params);
}
/**
* 知识索要转知识库
* @param knowledgeLibVO
* @return
*/
@PostMapping("save-aks-knowledge")
public SuccessResult saveAksKnowledge(@RequestBody KnowledgeLibVO knowledgeLibVO) {
knowledgeLibService.saveAksKnowledge(knowledgeLibVO);
return new SuccessResult();
}
/** 批量导入模板下载 **/
@GetMapping("download-template")
public void downLoadTemplate(HttpServletResponse response) throws SearchException, IOException {
response.setContentType("application/vnd.ms-excel");
String fileName = URLEncoder.encode("知识上报批量导入Excel模板", "UTF-8");
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
List<List<String>> listHeader = new ArrayList<>();
String[] headers = {"知识名称", "知识摘要", "内容"};
for (String item : headers){
List<String> title = new ArrayList<>();
title.add(item);
listHeader.add(title);
}
EasyExcel.write(response.getOutputStream()).sheet("知识上报批量导入Excel模板").head(listHeader).doWrite(new ArrayList());
}
@PostMapping("upload-template")
public SuccessResultData uploadTemplate(@RequestParam(value = "file") MultipartFile file) throws SearchException, IOException {
EasyExcel.read(file.getInputStream(),new KnowledgeLibExcelListener(knowledgeLibService)).sheet().doRead();
return new SuccessResultData("导入完成");
}
}

View File

@ -0,0 +1,78 @@
package cn.com.tenlion.knowledgelibrary.controller.api.knowledgeversion;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgeversion.KnowledgeVersionDTO;
import cn.com.tenlion.knowledgelibrary.service.knowledgeversion.IKnowledgeVersionService;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.interfaces.consts.ISystemConstant;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultData;
import ink.wgink.pojo.result.SuccessResultList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* 知识版本维护
* @author xwangs
* @create 2021-10-28 11:25
* @description
*/
@RestController
@RequestMapping(ISystemConstant.API_PREFIX + "/knowledge-version")
public class KnowledgeVersionController extends DefaultBaseController {
@Autowired
private IKnowledgeVersionService knowledgeVersionService;
@GetMapping("list-page")
public SuccessResultList<List<KnowledgeVersionDTO>> listPage(ListPage page) {
Map<String, Object> params = requestParams();
page.setParams(params);
return knowledgeVersionService.listPage(page);
}
/** 递交知识修改申请 **/
@PostMapping("save-reform")
public SuccessResult saveReform(@RequestBody Map<String, Object> params) {
knowledgeVersionService.saveReform(params);
return new SuccessResult();
}
@GetMapping("list-need-reform-knowledge")
public SuccessResultList<List<KnowledgeLibDTO>> listPageNeedReformKnowledge(ListPage page) {
Map<String, Object> params = requestParams();
page.setParams(params);
return knowledgeVersionService.listPageNeedReformKnowledge(page);
}
/** 递交知识修改申请 **/
@PostMapping("save-knowledge-version")
public SuccessResult saveKnowledgeVersion(@RequestBody KnowledgeVersionDTO dto) {
knowledgeVersionService.saveKnowledgeVersion(dto);
return new SuccessResult();
}
/** 知识版本更新审核 **/
@PostMapping("save-pass-version")
public SuccessResult savePassVersion(@RequestBody KnowledgeVersionDTO dto) {
knowledgeVersionService.savePassVersion(dto);
return new SuccessResult();
}
@GetMapping("get-version/{id}")
public KnowledgeVersionDTO getVersion(@PathVariable("id") String id) {
Map<String, Object> params = requestParams();
params.put("id",id);
return knowledgeVersionService.getVersion(params);
}
@GetMapping("get-check-version")
public SuccessResultData getCheckVersion() {
Map<String, Object> params = requestParams();
return knowledgeVersionService.getCheckVersion(params);
}
}

View File

@ -0,0 +1,126 @@
package cn.com.tenlion.knowledgelibrary.controller.app.askforknowledge;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.askforknowledge.AskForKnowledgeDTO;
import cn.com.tenlion.knowledgelibrary.service.askforknowledge.IAskForKnowledgeService;
import ink.wgink.annotation.CheckRequestBodyAnnotation;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.interfaces.consts.ISystemConstant;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.ErrorResult;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultList;
import ink.wgink.util.map.HashMapUtil;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 知识岁索要APP接口
* @ClassName: AskForKnowledgeAppController
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@Api(tags = ISystemConstant.API_TAGS_APP_PREFIX + "接口")
@RestController
@RequestMapping(ISystemConstant.APP_PREFIX + "/ask-for-knowledge")
public class AskForKnowledgeAppController extends DefaultBaseController {
@Autowired
private IAskForKnowledgeService askForKnowledgeService;
@ApiOperation(value = "知识索要发起", notes = "知识索要发起")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@PostMapping("save")
public SuccessResult save(@RequestHeader("token") String token,
@RequestBody AskForKnowledgeDTO askForKnowledgeDTO) {
askForKnowledgeService.save(token,askForKnowledgeDTO);
return new SuccessResult();
}
@ApiOperation(value = "知识索要分页列表", notes = "知识索要分页列表接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "page", value = "当前页码", paramType = "query", dataType = "int", defaultValue = "1"),
@ApiImplicitParam(name = "rows", value = "显示数量", paramType = "query", dataType = "int", defaultValue = "20"),
@ApiImplicitParam(name = "keywords", value = "标题|描述", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "deptId", value = "索要部门ID", paramType = "query"),
@ApiImplicitParam(name = "askType", value = "索要状态(0未答复 1已答复 -1不予答复 )", paramType = "query"),
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("listpage")
public SuccessResultList<List<AskForKnowledgeDTO>> listPage(ListPage page) {
Map<String, Object> params = requestParams();
page.setParams(params);
return askForKnowledgeService.listPage(page);
}
@ApiOperation(value = "知识索要列表", notes = "知识索要列表")
@ApiImplicitParams({
@ApiImplicitParam(name = "deptId", value = "索要部门ID", paramType = "query"),
@ApiImplicitParam(name = "askType", value = "索要状态(0未答复 1已答复 -1不予答复 )", paramType = "query"),
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("list")
public List<AskForKnowledgeDTO> list() {
Map<String, Object> params = requestParams();
return askForKnowledgeService.list(params);
}
@ApiOperation(value = "知识索要修改", notes = "知识索要修改")
@ApiImplicitParams({
@ApiImplicitParam(name = "askId", value = "ID", paramType = "path")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@PostMapping("update/{askId}")
public SuccessResult update(@RequestHeader("token") String token,
@PathVariable("askId") String askId,
@RequestBody AskForKnowledgeDTO askForKnowledgeDTO) {
Map<String, Object> params = HashMapUtil.beanToMap(askForKnowledgeDTO);
params.put("askId", askId);
askForKnowledgeService.update(token,params);
return new SuccessResult();
}
@ApiOperation(value = "知识答复", notes = "知识答复")
@ApiImplicitParams({
@ApiImplicitParam(name = "askId", value = "ID", paramType = "path")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@PostMapping("update-answer/{askId}")
public SuccessResult updateAnswer(@RequestHeader("token") String token,
@PathVariable("askId") String askId,
@RequestBody AskForKnowledgeDTO askForKnowledgeDTO) {
Map<String, Object> params = HashMapUtil.beanToMap(askForKnowledgeDTO);
params.put("askId", askId);
askForKnowledgeService.updateAnswer(token,params);
return new SuccessResult();
}
@ApiOperation(value = "知识索要详情", notes = "知识索要详情")
@ApiImplicitParams({
@ApiImplicitParam(name = "askId", value = "知识索要ID", paramType = "query")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("get")
public AskForKnowledgeDTO get() {
Map<String, Object> params = requestParams();
return askForKnowledgeService.get(params);
}
@ApiOperation(value = "知识索要删除", notes = "知识索要删除接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "ids", value = "ID列表用下划线分隔", paramType = "path", example = "1_2_3")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@DeleteMapping("remove/{ids}")
public SuccessResult remove(@PathVariable("ids") String ids) {
askForKnowledgeService.remove(Arrays.asList(ids.split("\\_")));
return new SuccessResult();
}
}

View File

@ -0,0 +1,64 @@
package cn.com.tenlion.knowledgelibrary.controller.app.deptyellowpage;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.service.deptyellowpage.IDeptYellowPageService;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.exceptions.SearchException;
import ink.wgink.interfaces.consts.ISystemConstant;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.dtos.department.DepartmentDTO;
import ink.wgink.pojo.result.ErrorResult;
import ink.wgink.pojo.result.SuccessResultList;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
* 部门黄页
* @author xwangs
* @create 2021-10-29 16:43
* @description
*/
@Api(tags = ISystemConstant.API_TAGS_APP_PREFIX + "部门黄页数据接口")
@RestController
@RequestMapping(ISystemConstant.APP_PREFIX + "/dept-yellow-page")
public class DeptYellowPageAppController extends DefaultBaseController {
@Autowired
private IDeptYellowPageService deptYellowPageService;
@ApiOperation(value = "获取部门列表", notes = "获取部门列表")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("release/list-dept-pid")
public List<DepartmentDTO> listBaseDepartmentByPid() throws SearchException {
Map<String, Object> params = requestParams();
return deptYellowPageService.listBaseDepartmentByPid(params);
}
/** 根据部门ID获取当前部门下所有主题类别 **/
@GetMapping("list-category-by-dept/{departmentId}")
public List<Map<String, Object>> listCateGoryByDept(@PathVariable("departmentId") String departmentId){
Map<String, Object> params = requestParams();
params.put("departmentId",departmentId);
List<Map<String, Object>> list = deptYellowPageService.listCateGoryByDept(params);
return list;
}
/** 根据部门ID 主题分类 查询知识库列表 **/
@GetMapping("list-page-knowledge-lib")
public SuccessResultList<List<KnowledgeLibDTO>> listPageKnowledgeLib(ListPage page){
Map<String, Object> params = requestParams();
page.setParams(params);
return deptYellowPageService.listKnowledgeLib(page);
}
}

View File

@ -0,0 +1,63 @@
package cn.com.tenlion.knowledgelibrary.controller.app.knowledgeappraise;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.service.knowledgeappraise.IKnowledgeAppraiseService;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.exceptions.SearchException;
import ink.wgink.interfaces.consts.ISystemConstant;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.ErrorResult;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultList;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* 知识评价
* @author xwangs
* @create 2021-10-29 16:43
* @description
*/
@Api(tags = ISystemConstant.API_TAGS_APP_PREFIX + "知识评价")
@RestController
@RequestMapping(ISystemConstant.APP_PREFIX + "/knowledge-appraise")
public class KnowledgeAppraiseAppController extends DefaultBaseController {
@Autowired
private IKnowledgeAppraiseService appraiseService;
@ApiOperation(value = "保存知识评价", notes = "APP保存知识评价")
@ApiImplicitParams({
@ApiImplicitParam(name = "token", value = "token", paramType = "header"),
@ApiImplicitParam(name = "knowledgeId", value = "知识ID", paramType = "path")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@PostMapping("save-appraise/{knowledgeId}")
public SuccessResult saveAppraise(@RequestHeader("token") String token,
@PathVariable("knowledgeId") String knowledgeId,
@RequestBody Map<String, Object> params) {
params.put("knowledgeId",knowledgeId);
appraiseService.saveAppraiseApp(token,params);
return new SuccessResult();
}
@ApiOperation(value = "知识评价列表", notes = "知识评价列表")
@ApiImplicitParams({
@ApiImplicitParam(name = "token", value = "token", paramType = "header"),
@ApiImplicitParam(name = "knowledgeId", value = "1已上架", paramType = "query")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("list-page-knowledge-appraise")
public SuccessResultList<List<Map<String, Object>>> listPageKnowledgeAppraise(@RequestHeader("token") String token,
ListPage page) throws SearchException {
Map<String, Object> params = requestParams();
page.setParams(params);
return appraiseService.listPageKnowledgeAppraise(token, page);
}
}

View File

@ -0,0 +1,52 @@
package cn.com.tenlion.knowledgelibrary.controller.app.knowledgecorrection;
import cn.com.tenlion.knowledgelibrary.pojo.vos.knowledgecorrection.KnowledgeCorrectionVO;
import cn.com.tenlion.knowledgelibrary.service.knowledgeappraise.IKnowledgeAppraiseService;
import cn.com.tenlion.knowledgelibrary.service.knowledgecorrection.IKnowledgeCorrectionService;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.exceptions.SearchException;
import ink.wgink.interfaces.consts.ISystemConstant;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.ErrorResult;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultList;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* 知识评价
* @author xwangs
* @create 2021-10-29 16:43
* @description
*/
@Api(tags = ISystemConstant.API_TAGS_APP_PREFIX + "知识纠错")
@RestController
@RequestMapping(ISystemConstant.APP_PREFIX + "/knowledge-correction")
public class KnowledgeCorrectionAppController extends DefaultBaseController {
@Autowired
private IKnowledgeCorrectionService correctionService;
@ApiOperation(value = "APP保存知识纠错", notes = "APP保存知识纠错")
@ApiImplicitParams({
@ApiImplicitParam(name = "token", value = "token", paramType = "header"),
@ApiImplicitParam(name = "knowledgeId", value = "知识ID", paramType = "path"),
@ApiImplicitParam(name = "correctionDescribe", value = "知识ID", paramType = "query"),
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@PostMapping("save-correction/{knowledgeId}")
public SuccessResult saveCorrection(@RequestHeader("token") String token,
@PathVariable("knowledgeId")String knowledgeId,
@RequestBody KnowledgeCorrectionVO vo) {
vo.setKnowledgeId(knowledgeId);
correctionService.saveCorrectionApp(token,vo);
return new SuccessResult();
}
}

View File

@ -0,0 +1,107 @@
package cn.com.tenlion.knowledgelibrary.controller.app.knowledgelib;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.pojo.vos.knowledgelib.KnowledgeLibVO;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeHistoryService;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeLibService;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.exceptions.SearchException;
import ink.wgink.interfaces.consts.ISystemConstant;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.ErrorResult;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultList;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* 知识库 APP 相关接口
* @ClassName: KnowledgeLibAppController
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@Api(tags = ISystemConstant.API_TAGS_APP_PREFIX + "知识库 APP 相关")
@RestController
@RequestMapping(ISystemConstant.APP_PREFIX + "/knowledge-lib")
public class KnowledgeLibAppController extends DefaultBaseController {
@Autowired
private IKnowledgeLibService knowledgeLibService;
@Autowired
private IKnowledgeHistoryService knowledgeHistoryService;
@ApiOperation(value = "知识上报第三方推送接口", notes = "知识上报第三方推送接口")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@PostMapping("release/save-knowledge-push")
public SuccessResult saveKnowledgePush(@RequestBody KnowledgeLibVO knowledgeLibVO) {
knowledgeLibService.saveKnowledgePush(knowledgeLibVO);
return new SuccessResult();
}
@ApiOperation(value = "知识库列表", notes = "知识库列表")
@ApiImplicitParams({
@ApiImplicitParam(name = "token", value = "token", paramType = "header"),
@ApiImplicitParam(name = "publishType", value = "1已上架", paramType = "query"),
@ApiImplicitParam(name = "keywords", value = "title|summary|richContent", paramType = "query")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("list-page-knowledge-lib")
public SuccessResultList<List<KnowledgeLibDTO>> listPageKnowledgeLib(@RequestHeader("token") String token,
ListPage page) throws SearchException {
Map<String, Object> params = requestParams();
page.setParams(params);
return knowledgeLibService.listPage(token, page);
}
@ApiOperation(value = "知识库详情(通过ID)", notes = "知识库详情(通过ID)")
@ApiImplicitParams({
@ApiImplicitParam(name = "token", value = "token", paramType = "header"),
@ApiImplicitParam(name = "knowledgeId", value = "知识ID", paramType = "path")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("get-knowledge-lib-by-id/{knowledgeId}")
public KnowledgeLibDTO getKnowledgeLibById(@RequestHeader("token") String token,
@PathVariable("knowledgeId") String knowledgeId) throws SearchException {
Map<String, Object> params = requestParams();
params.put("knowledgeId",knowledgeId);
return knowledgeLibService.get(params);
}
@ApiOperation(value = "知识上架", notes = "知识上架")
@ApiImplicitParams({
@ApiImplicitParam(name = "token", value = "token", paramType = "header"),
@ApiImplicitParam(name = "knowledgeId", value = "知识ID", paramType = "path"),
@ApiImplicitParam(name = "publishReason", value = "上架原由", paramType = "query")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@PostMapping("publish-up/{knowledgeId}")
public SuccessResult publishUp(@RequestHeader("token") String token,
@PathVariable("knowledgeId") String knowledgeId,
@RequestBody Map<String, Object> params) {
params.put("knowledgeId",knowledgeId);
return knowledgeLibService.publishUp(token, params);
}
@ApiOperation(value = "知识下架", notes = "知识下架")
@ApiImplicitParams({
@ApiImplicitParam(name = "token", value = "token", paramType = "header"),
@ApiImplicitParam(name = "knowledgeId", value = "知识ID", paramType = "path"),
@ApiImplicitParam(name = "publishReason", value = "下架原由", paramType = "query")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@PostMapping("publish-down/{knowledgeId}")
public SuccessResult publishDown(@RequestHeader("token") String token,
@PathVariable("knowledgeId") String knowledgeId,
@RequestBody Map<String, Object> params) {
params.put("knowledgeId",knowledgeId);
return knowledgeLibService.publishDown(token, params);
}
}

View File

@ -0,0 +1,44 @@
package cn.com.tenlion.knowledgelibrary.controller.app.knowledgepageviews;
import cn.com.tenlion.knowledgelibrary.service.knowledgepageviews.IKnowledgePageViewsService;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.interfaces.consts.ISystemConstant;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultData;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
* 页面浏览量统计
* @author xwangs
* @create 2021-10-29 16:43
* @description
*/
@Api(tags = ISystemConstant.API_TAGS_APP_PREFIX + "页面浏览量统计")
@RestController
@RequestMapping(ISystemConstant.APP_PREFIX + "/knowledge-page-views")
public class KnowledgePageViewsAppController extends DefaultBaseController {
@Autowired
private IKnowledgePageViewsService pageViewsService;
@PostMapping("release/save-knowledge-page-views/{knowledgeId}")
public SuccessResultData saveViews(@PathVariable("knowledgeId")String knowledgeId) {
Map<String, Object> params = requestParams();
params.put("knowledgeId",knowledgeId);
return pageViewsService.saveKnowledgePageViews(null, params);
}
@PostMapping("save-knowledge-page-views/{knowledgeId}")
public SuccessResultData saveViewsByToken(@RequestHeader("token") String token,
@PathVariable("knowledgeId")String knowledgeId) {
Map<String, Object> params = requestParams();
params.put("knowledgeId",knowledgeId);
params.put("source","app");
return pageViewsService.saveKnowledgePageViews(token, params);
}
}

View File

@ -0,0 +1,101 @@
package cn.com.tenlion.knowledgelibrary.controller.app.knowledgereport;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.pojo.vos.knowledgelib.KnowledgeLibVO;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeLibService;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.interfaces.consts.ISystemConstant;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.ErrorResult;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultList;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* APP知识上报
* @ClassName: KnowledgeReportAppController
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@Api(tags = ISystemConstant.API_TAGS_APP_PREFIX + "APP知识上报")
@RestController
@RequestMapping(ISystemConstant.APP_PREFIX + "/knowledge-report")
public class KnowledgeReportAppController extends DefaultBaseController {
@Autowired
private IKnowledgeLibService knowledgeLibService;
@ApiOperation(value = "APP知识上报", notes = "APP知识上报")
@PostMapping("save-report")
public SuccessResult saveReport(@RequestHeader("token") String token,
@RequestBody KnowledgeLibVO knowledgeLibVO) {
knowledgeLibService.saveReport(token, knowledgeLibVO);
return new SuccessResult();
}
/**
* 知识上报分页列表
* @param page
* @return
*/
@ApiOperation(value = "APP知识上报分页列表", notes = "APP知识上报")
@ApiImplicitParams({
@ApiImplicitParam(name = "page", value = "当前页码", paramType = "query", dataType = "int", defaultValue = "1"),
@ApiImplicitParam(name = "rows", value = "显示数量", paramType = "query", dataType = "int", defaultValue = "20"),
@ApiImplicitParam(name = "keywords", value = "标题|描述", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "sourceDept", value = "部门", paramType = "query", dataType = "String")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("list-page-report")
public SuccessResultList<List<KnowledgeLibDTO>> listPageReport(ListPage page) {
Map<String, Object> params = requestParams();
page.setParams(params);
return knowledgeLibService.listPageReport(page);
}
@ApiOperation(value = "APP知识上报详情-根据ID查询", notes = "APP知识上报详情-根据ID查询")
@ApiImplicitParams({
@ApiImplicitParam(name = "knowledgeId", value = "上报知识ID", paramType = "path", dataType = "String")
})
@GetMapping("get-report/{knowledgeId}")
public KnowledgeLibDTO getReport(@PathVariable("knowledgeId") String knowledgeId) {
Map<String, Object> params = requestParams();
params.put("knowledgeId",knowledgeId);
return knowledgeLibService.getReport(params);
}
@ApiOperation(value = "APP知识上报修改", notes = "APP知识上报修改")
@PutMapping("update-report/{knowledgeId}")
public SuccessResult update(@RequestHeader("token") String token,
@PathVariable("knowledgeId") String knowledgeId,
@RequestBody KnowledgeLibVO knowledgeLibVO) {
knowledgeLibVO.setKnowledgeId(knowledgeId);
knowledgeLibService.updateReport(token, knowledgeLibVO);
return new SuccessResult();
}
/**
* 知识上报删除
* @param ids
* @return
*/
@ApiOperation(value = "APP知识上报删除", notes = "APP知识上报删除")
@ApiImplicitParams({
@ApiImplicitParam(name = "ids", value = "ID列表用下划线分隔", paramType = "path", example = "1_2_3")
})
@DeleteMapping("remove-report/{ids}")
public SuccessResult removeReport(@RequestHeader("token") String token,
@PathVariable("ids") String ids) {
knowledgeLibService.removeReport(token, Arrays.asList(ids.split("\\_")));
return new SuccessResult();
}
}

View File

@ -0,0 +1,29 @@
package cn.com.tenlion.knowledgelibrary.dao.askforknowledge;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.askforknowledge.AskForKnowledgeDTO;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* @ClassName: IAskForKnowledgeDao
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@Repository
public interface IAskForKnowledgeDao {
void save(Map<String, Object> params);
List<AskForKnowledgeDTO> list(Map<String, Object> param);
AskForKnowledgeDTO get(Map<String, Object> params);
void update(Map<String, Object> params);
void remove(Map<String, Object> params);
}

View File

@ -0,0 +1,17 @@
package cn.com.tenlion.knowledgelibrary.dao.deptyellowpage;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* @author xwangs
* @create 2021-11-09 15:05
* @description
*/
@Repository
public interface IDeptYellowPageDao {
List<Map<String, Object>> listCateGoryByDept(Map<String, Object> params);
}

View File

@ -0,0 +1,27 @@
package cn.com.tenlion.knowledgelibrary.dao.keywordsrelation;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.keywordsrelation.KeywordsRelationDTO;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* 知识关键词Dao
* @author xwangs
* @create 2021-11-09 17:03
* @description
*/
@Repository
public interface IKeywordsRelationDao {
List<KeywordsRelationDTO> list(Map<String, Object> params);
void remove(Map<String, Object> params);
void save(Map<String, Object> params);
void update(Map<String, Object> params);
KeywordsRelationDTO get(Map<String, Object> params);
}

View File

@ -0,0 +1,27 @@
package cn.com.tenlion.knowledgelibrary.dao.knowledgeappraise;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* @author xwangs
* @create 2021-10-29 16:48
* @description
*/
@Repository
public interface IKnowledgeAppraiseDao {
void saveAppraise(Map<String, Object> params);
List<Map<String, Object>> listAppraise(Map<String, Object> params);
List<Map<String, Object>> listCollect(Map<String, Object> query);
void saveCollect(Map<String, Object> params);
void cancelCollect(Map<String, Object> params);
Map<String, Object> getUserCollect(Map<String, Object> params);
}

View File

@ -0,0 +1,29 @@
package cn.com.tenlion.knowledgelibrary.dao.knowledgecorrection;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgecorrection.KnowledgeCorrectionDTO;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* @author xwangs
* @create 2021-10-29 16:48
* @description
*/
@Repository
public interface IKnowledgeCorrectionDao {
void saveCorrection(Map<String, Object> params);
List<KnowledgeCorrectionDTO> listCorrection(Map<String, Object> params);
KnowledgeCorrectionDTO getCorrection(Map<String, Object> params);
void updateCorrection(Map<String, Object> params);
void updateCorrectionNotice(Map<String, Object> params);
List<KnowledgeCorrectionDTO> listMyCorrection(Map<String, Object> params);
}

View File

@ -0,0 +1,24 @@
package cn.com.tenlion.knowledgelibrary.dao.knowledgelib;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgehistory.KnowledgeHistoryDTO;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* @ClassName: IKnowledgeLibDao
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@Repository
public interface IKnowledgeHistoryDao {
void save(Map<String, Object> params);
List<KnowledgeHistoryDTO> listKnowledgeHistory(Map<String, Object> params);
void saveKnowledgePushMsg(Map<String, Object> pushMsg);
}

View File

@ -0,0 +1,119 @@
package cn.com.tenlion.knowledgelibrary.dao.knowledgelib;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import ink.wgink.exceptions.RemoveException;
import ink.wgink.exceptions.SaveException;
import ink.wgink.exceptions.SearchException;
import ink.wgink.exceptions.UpdateException;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* @ClassName: IKnowledgeLibDao
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@Repository
public interface IKnowledgeLibDao {
/**
* 列表
*
* @param params
* @return
* @throws SearchException
*/
List<KnowledgeLibDTO> list(Map<String, Object> params) throws SearchException;
/**
* 新增
*
* @param params
* @throws SaveException
*/
void save(Map<String, Object> params) throws SaveException;
/**
* 修改
*
* @param params
* @throws UpdateException
*/
void update(Map<String, Object> params) throws UpdateException;
/**
* 详情
*
* @param params
* @return
* @throws SearchException
*/
KnowledgeLibDTO get(Map<String, Object> params) throws SearchException;
/**
* 删除
*
* @param params
* @throws RemoveException
*/
void remove(Map<String, Object> params) throws RemoveException;
/**
* 删除物理
*
* @param params
* @throws RemoveException
*/
void delete(Map<String, Object> params) throws RemoveException;
/**
* 统计
*
* @param params
* @return
* @throws SearchException
*/
Integer count(Map<String, Object> params) throws SearchException;
/**
* 知识上报列表
* @param params
* @return
*/
List<KnowledgeLibDTO> listReport(Map<String, Object> params);
/**
* 知识上报保存
* @param params
*/
void saveReport(Map<String, Object> params);
/**
* 知识上报修改
* @param params
*/
void updateReport(Map<String, Object> params);
/**
* 知识上报详情
* @param params
* @return
*/
KnowledgeLibDTO getReport(Map<String, Object> params);
/**
* 知识上报删除
*
* @param params
* @throws RemoveException
*/
void removeReport(Map<String, Object> params);
void updateReportPass(Map<String, Object> params);
void updatePassReport(Map<String, Object> params);
}

View File

@ -0,0 +1,21 @@
package cn.com.tenlion.knowledgelibrary.dao.knowledgepageviews;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* @author xwangs
* @create 2021-11-05 14:46
* @description
*/
@Repository
public interface IKnowledgePageViewsDao {
void saveKnowledgePageViews(Map<String, Object> params);
Integer getKnowledgePageViewsCount(Map<String, Object> params);
List<Map<String, Object>> list(Map<String, Object> params);
}

View File

@ -0,0 +1,36 @@
package cn.com.tenlion.knowledgelibrary.dao.knowledgeversion;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgeversion.KnowledgeVersionDTO;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* @ClassName: IKnowledgeVersionDao
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@Repository
public interface IKnowledgeVersionDao {
void changeKnowledgeReformType(Map<String, Object> params);
void saveReform(Map<String, Object> params);
List<Map<String, Object>> listNeedReformKnowledge(Map<String, Object> params);
void saveKnowledgeVersion(Map<String, Object> params);
List<KnowledgeVersionDTO> list(Map<String, Object> params);
KnowledgeVersionDTO getVersion(Map<String, Object> params);
void updatePassVersion(Map<String, Object> query);
void saveKnowledgeToHistory(Map<String, Object> knowMap);
void removePassVersion(String id);
}

View File

@ -0,0 +1,55 @@
package cn.com.tenlion.knowledgelibrary.pojo.dtos.askforknowledge;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
/**
*
* @ClassName: AskForKnowledgeDTO
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@ApiModel
@Data
@ToString
public class AskForKnowledgeDTO {
@ApiModelProperty(name = "askId", value = "知识索要ID")
private String askId;
@ApiModelProperty(name = "askTitle", value = "索要标题")
private String askTitle;
@ApiModelProperty(name = "askDescription", value = "索要描述")
private String askDescription;
@ApiModelProperty(name = "orgId", value = "组织机构ID")
private String orgId;
@ApiModelProperty(name = "orgName", value = "组织机构名称")
private String orgName;
@ApiModelProperty(name = "deptId", value = "部门ID")
private String deptId;
@ApiModelProperty(name = "deptName", value = "部门名称")
private String deptName;
@ApiModelProperty(name = "userId", value = "用户ID")
private String userId;
@ApiModelProperty(name = "userName", value = "用户名称")
private String userName;
@ApiModelProperty(name = "askType", value = "索要状态 1 0 -1")
private String askType;
@ApiModelProperty(name = "answerRichContent", value = "答复内容")
private String answerRichContent;
@ApiModelProperty(name = "answerSummary", value = "答复摘要")
private String answerSummary;
@ApiModelProperty(name = "answerTitle", value = "答复标题")
private String answerTitle;
@ApiModelProperty(name = "passType", value = "答复审核状态")
private String passType;
@ApiModelProperty(name = "reason", value = "原因")
private String reason;
@ApiModelProperty(name = "gmtCreate", value = "索要时间")
private String gmtCreate;
@ApiModelProperty(name = "gmtModified", value = "修改时间")
private String gmtModified;
}

View File

@ -0,0 +1,25 @@
package cn.com.tenlion.knowledgelibrary.pojo.dtos.keywordsrelation;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
/**
* 知识关键词DTO
* @ClassName: KeywordsRelationDTO
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@ApiModel
@Data
@ToString
public class KeywordsRelationDTO {
@ApiModelProperty(name = "keywordsId", value = "逻辑主键")
private String keywordsId;
@ApiModelProperty(name = "title", value = "关键词名称")
private String title;
}

View File

@ -0,0 +1,47 @@
package cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgecorrection;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
/**
* 知识纠错
* @ClassName: KnowledgeCorrectionDTO
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@ApiModel
@Data
@ToString
public class KnowledgeCorrectionDTO {
@ApiModelProperty(name = "id", value = "自增主键")
private String id;
@ApiModelProperty(name = "knowledgeId", value = "知识ID")
private String knowledgeId;
@ApiModelProperty(name = "title", value = "知识标题")
private String title;
@ApiModelProperty(name = "version", value = "纠错版本")
private String version;
@ApiModelProperty(name = "correctionDescribe", value = "纠错描述")
private String correctionDescribe;
@ApiModelProperty(name = "handleType", value = "处理状态")
private String handleType;
@ApiModelProperty(name = "reason", value = "处理原因")
private String reason;
@ApiModelProperty(name = "source", value = "纠错来源")
private String source;
@ApiModelProperty(name = "correctionUserId", value = "纠错人ID")
private String correctionUserId;
@ApiModelProperty(name = "correctionTime", value = "纠错时间")
private String correctionTime;
@ApiModelProperty(name = "correctionUserName", value = "纠错人名称")
private String correctionUserName;
@ApiModelProperty(name = "handleTime", value = "处理时间")
private String handleTime;
@ApiModelProperty(name = "handleUserId", value = "处理人")
private String handleUserId;
}

View File

@ -0,0 +1,117 @@
package cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgehistory;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
*
* @ClassName: KnowledgeHistoryDTO
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@ApiModel
public class KnowledgeHistoryDTO {
@ApiModelProperty(name = "knowledgeId", value = "知识ID")
private String knowledgeId;
@ApiModelProperty(name = "orgId", value = "机构ID")
private String orgId;
@ApiModelProperty(name = "orgName", value = "机构名称")
private String orgName;
@ApiModelProperty(name = "deptId", value = "部门ID")
private String deptId;
@ApiModelProperty(name = "deptName", value = "部门名称")
private String deptName;
@ApiModelProperty(name = "userId", value = "用户ID")
private String userId;
@ApiModelProperty(name = "userName", value = "用户名称")
private String userName;
@ApiModelProperty(name = "pointCode", value = "节点码 1 0 -1")
private String pointCode;
@ApiModelProperty(name = "reasonMsg", value = "操作信息")
private String reasonMsg;
@ApiModelProperty(name = "createTime", value = "操作时间")
private String createTime;
public String getKnowledgeId() {
return knowledgeId == null ? "" : knowledgeId;
}
public void setKnowledgeId(String knowledgeId) {
this.knowledgeId = knowledgeId;
}
public String getOrgId() {
return orgId == null ? "" : orgId;
}
public void setOrgId(String orgId) {
this.orgId = orgId;
}
public String getOrgName() {
return orgName == null ? "" : orgName;
}
public void setOrgName(String orgName) {
this.orgName = orgName;
}
public String getDeptId() {
return deptId == null ? "" : deptId;
}
public void setDeptId(String deptId) {
this.deptId = deptId;
}
public String getDeptName() {
return deptName == null ? "" : deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
public String getUserId() {
return userId == null ? "" : userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUserName() {
return userName == null ? "" : userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPointCode() {
return pointCode == null ? "" : pointCode;
}
public void setPointCode(String pointCode) {
this.pointCode = pointCode;
}
public String getReasonMsg() {
return reasonMsg == null ? "" : reasonMsg;
}
public void setReasonMsg(String reasonMsg) {
this.reasonMsg = reasonMsg;
}
public String getCreateTime() {
return createTime == null ? "" : createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
}

View File

@ -0,0 +1,84 @@
package cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
/**
*
* @ClassName: KnowledgeLibDTO
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@ApiModel
@Data
@ToString
public class KnowledgeLibDTO {
@ApiModelProperty(name = "knowledgeId", value = "ID")
private String knowledgeId;
@ApiModelProperty(name = "version", value = "版本")
private String version;
@ApiModelProperty(name = "title", value = "知识标题")
private String title;
@ApiModelProperty(name = "summary", value = "知识摘要")
private String summary;
@ApiModelProperty(name = "richContent", value = "知识内容")
private String richContent;
@ApiModelProperty(name = "effectiveTime", value = "知识生效时间")
private String effectiveTime;
@ApiModelProperty(name = "dueTime", value = "到期时间")
private String dueTime;
@ApiModelProperty(name = "category", value = "知识类别")
private String category;
@ApiModelProperty(name = "categoryDict", value = "知识类别-字典")
private String categoryDict;
@ApiModelProperty(name = "keywordRelation", value = "工单关键词关联")
private String keywordRelation;
@ApiModelProperty(name = "knowledgeRelation", value = "知识关联")
private String knowledgeRelation;
@ApiModelProperty(name = "workRelation", value = "事项关联")
private String workRelation;
@ApiModelProperty(name = "source", value = "知识来源")
private String source;
@ApiModelProperty(name = "sourceOrg", value = "来源机构")
private String sourceOrg;
@ApiModelProperty(name = "sourceDept", value = "来源部门")
private String sourceDept;
@ApiModelProperty(name = "sourceDeptName", value = "来源部门名称")
private String sourceDeptName;
@ApiModelProperty(name = "sourceDeptNames", value = "来源部门名称集")
private String sourceDeptNames;
@ApiModelProperty(name = "sourceUser", value = "来源人ID")
private String sourceUser;
@ApiModelProperty(name = "sourceUserName", value = "来源人姓名")
private String sourceUserName;
@ApiModelProperty(name = "publishType", value = "上架状态")
private String publishType;
@ApiModelProperty(name = "publishReason", value = "上架下架原因")
private String publishReason;
@ApiModelProperty(name = "commitPass", value = "是否提交审核")
private String commitPass;
@ApiModelProperty(name = "passType", value = "审核状态0未审核1通过-1驳回")
private String passType;
@ApiModelProperty(name = "passOpinion", value = "审核原因")
private String passOpinion;
@ApiModelProperty(name = "整改状态", value = "1整改更新中")
private String reformType;
@ApiModelProperty(name = "creator", value = "")
private String creator;
@ApiModelProperty(name = "gmtCreate", value = "")
private String gmtCreate;
@ApiModelProperty(name = "modifier", value = "")
private String modifier;
@ApiModelProperty(name = "gmtModified", value = "")
private String gmtModified;
@ApiModelProperty(name = "isDelete", value = "")
private Integer isDelete;
private String passLimitDate;
private String collectType;
}

View File

@ -0,0 +1,31 @@
package cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgepageviews;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
/**
* 浏览量
* @ClassName: KnowledgePageViewsVO
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@ApiModel
@Data
@ToString
public class KnowledgePageViewsDTO {
@ApiModelProperty(name = "knowledgeId", value = "知识ID")
private String knowledgeId;
@ApiModelProperty(name = "userId", value = "用户ID")
private String userId;
@ApiModelProperty(name = "userName", value = "用户名称")
private String userName;
@ApiModelProperty(name = "viewTime", value = "浏览时间")
private String viewTime;
@ApiModelProperty(name = "source", value = "来源")
private String source;
}

View File

@ -0,0 +1,64 @@
package cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgeversion;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
/**
*
* @ClassName: KnowledgeLibDTO
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@ApiModel
@Data
@ToString
public class KnowledgeVersionDTO {
@ApiModelProperty(name = "id", value = "ID")
private String id;
@ApiModelProperty(name = "knowledgeId", value = "ID")
private String knowledgeId;
@ApiModelProperty(name = "version", value = "版本")
private String version;
@ApiModelProperty(name = "title", value = "知识标题")
private String title;
@ApiModelProperty(name = "summary", value = "知识摘要")
private String summary;
@ApiModelProperty(name = "richContent", value = "知识内容")
private String richContent;
@ApiModelProperty(name = "category", value = "知识类别")
private String category;
@ApiModelProperty(name = "keywordRelation", value = "工单关键词关联")
private String keywordRelation;
@ApiModelProperty(name = "knowledgeRelation", value = "知识关联")
private String knowledgeRelation;
@ApiModelProperty(name = "workRelation", value = "事项关联")
private String workRelation;
@ApiModelProperty(name = "source", value = "知识来源")
private String source;
@ApiModelProperty(name = "sourceOrg", value = "来源机构")
private String sourceOrg;
@ApiModelProperty(name = "sourceDept", value = "来源部门")
private String sourceDept;
@ApiModelProperty(name = "sourceUser", value = "来源人ID")
private String sourceUser;
@ApiModelProperty(name = "sourceUserName", value = "来源人姓名")
private String sourceUserName;
@ApiModelProperty(name = "passType", value = "审核状态0未审核1通过-1驳回")
private String passType;
@ApiModelProperty(name = "creator", value = "")
private String creator;
@ApiModelProperty(name = "gmtCreate", value = "")
private String gmtCreate;
@ApiModelProperty(name = "modifier", value = "")
private String modifier;
@ApiModelProperty(name = "gmtModified", value = "")
private String gmtModified;
@ApiModelProperty(name = "isDelete", value = "")
private Integer isDelete;
}

View File

@ -0,0 +1,45 @@
package cn.com.tenlion.knowledgelibrary.pojo.vos.knowledgecorrection;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
/**
* 知识纠错
* @ClassName: KnowledgeCorrectionVO
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@ApiModel
@Data
@ToString
public class KnowledgeCorrectionVO {
@ApiModelProperty(name = "knowledgeId", value = "知识ID")
private String knowledgeId;
@ApiModelProperty(name = "title", value = "知识标题")
private String title;
@ApiModelProperty(name = "version", value = "纠错版本")
private String version;
@ApiModelProperty(name = "correctionDescribe", value = "纠错描述")
private String correctionDescribe;
@ApiModelProperty(name = "handleType", value = "处理状态")
private String handleType;
@ApiModelProperty(name = "reason", value = "处理原因")
private String reason;
@ApiModelProperty(name = "source", value = "纠错来源")
private String source;
@ApiModelProperty(name = "correctionUserId", value = "纠错人ID")
private String correctionUserId;
@ApiModelProperty(name = "correctionTime", value = "纠错时间")
private String correctionTime;
@ApiModelProperty(name = "correctionUserName", value = "纠错人名称")
private String correctionUserName;
@ApiModelProperty(name = "handleTime", value = "处理时间")
private String handleTime;
@ApiModelProperty(name = "handleUserId", value = "处理人")
private String handleUserId;
}

View File

@ -0,0 +1,59 @@
package cn.com.tenlion.knowledgelibrary.pojo.vos.knowledgelib;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
/**
*
* @ClassName: KnowledgeLibVO
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@ApiModel
@Data
@ToString
public class KnowledgeLibVO {
@ApiModelProperty(name = "knowledgeId", value = "主键")
private String knowledgeId;
@ApiModelProperty(name = "title", value = "知识标题")
private String title;
@ApiModelProperty(name = "summary", value = "知识摘要")
private String summary;
@ApiModelProperty(name = "richContent", value = "知识内容")
private String richContent;
@ApiModelProperty(name = "effectiveTime", value = "知识生效时间")
private String effectiveTime;
@ApiModelProperty(name = "dueTime", value = "到期时间")
private String dueTime;
@ApiModelProperty(name = "category", value = "知识类别")
private String category;
@ApiModelProperty(name = "keywordRelation", value = "工单关键词关联")
private String keywordRelation;
@ApiModelProperty(name = "knowledgeRelation", value = "知识关联")
private String knowledgeRelation;
@ApiModelProperty(name = "workRelation", value = "事项关联")
private String workRelation;
@ApiModelProperty(name = "source", value = "知识来源")
private String source;
@ApiModelProperty(name = "sourceOrg", value = "来源机构")
private String sourceOrg;
@ApiModelProperty(name = "sourceDept", value = "来源部门")
private String sourceDept;
@ApiModelProperty(name = "sourceDeptName", value = "来源部门名称")
private String sourceDeptName;
@ApiModelProperty(name = "sourceDeptNames", value = "来源部门名称集")
private String sourceDeptNames;
@ApiModelProperty(name = "sourceUser", value = "来源人ID")
private String sourceUser;
@ApiModelProperty(name = "sourceUserName", value = "来源人姓名")
private String sourceUserName;
@ApiModelProperty(name = "publishType", value = "上架状态")
private String publishType;
@ApiModelProperty(name = "publishReason", value = "上架下架原因")
private String publishReason;
}

View File

@ -0,0 +1,52 @@
package cn.com.tenlion.knowledgelibrary.route.askforknowledge;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.interfaces.consts.ISystemConstant;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
/**
* @ClassName: AskForKnowledgeRouteController
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "路由")
@RestController
@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/ask-for-knowledge")
public class AskForKnowledgeRouteController extends DefaultBaseController {
@GetMapping("list")
public ModelAndView list() {
return new ModelAndView("askforknowledge/list");
}
@GetMapping("save")
public ModelAndView save() {
return new ModelAndView("askforknowledge/save");
}
@GetMapping("update")
public ModelAndView update() {
return new ModelAndView("askforknowledge/update");
}
@GetMapping("list-answer")
public ModelAndView listAnswer() {
return new ModelAndView("askforknowledge/list-answer");
}
@GetMapping("show")
public ModelAndView show() {
return new ModelAndView("askforknowledge/show");
}
@GetMapping("save-to-lib")
public ModelAndView saveToLib() {
return new ModelAndView("askforknowledge/save-to-lib");
}
}

View File

@ -0,0 +1,39 @@
package cn.com.tenlion.knowledgelibrary.route.keywordsrelation;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.interfaces.consts.ISystemConstant;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
/**
* 知识关键词 route
* @ClassName: KeywordsRelationRouteController
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "知识关键词")
@RestController
@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/keywords-relation")
public class KeywordsRelationRouteController extends DefaultBaseController {
@GetMapping("list")
public ModelAndView list() {
return new ModelAndView("keywordsrelation/list");
}
@GetMapping("save")
public ModelAndView save() {
return new ModelAndView("keywordsrelation/save");
}
@GetMapping("update")
public ModelAndView update() {
return new ModelAndView("keywordsrelation/update");
}
}

View File

@ -0,0 +1,55 @@
package cn.com.tenlion.knowledgelibrary.route.knowledgeappraise;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.interfaces.consts.ISystemConstant;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
/**
* 知识评价
* @ClassName: KnowledgeAppraiseRouteController
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "知识评价")
@RestController
@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/knowledge-appraise")
public class KnowledgeAppraiseRouteController extends DefaultBaseController {
@GetMapping("list")
public ModelAndView list() {
return new ModelAndView("knowledgeappraise/list");
}
@GetMapping("list-appraise")
public ModelAndView listAppraise() {
return new ModelAndView("knowledgeappraise/list-appraise");
}
@GetMapping("save-appraise")
public ModelAndView saveAppraise() {
return new ModelAndView("knowledgeappraise/save-appraise");
}
@GetMapping("update")
public ModelAndView update() {
return new ModelAndView("knowledgeappraise/update");
}
/** 知识收藏列表页 **/
@GetMapping("list-collect")
public ModelAndView listCollect() {
return new ModelAndView("knowledgeappraise/list-collect");
}
/** 我的知识收藏列表页 **/
@GetMapping("list-my-collect")
public ModelAndView listMyCollect() {
return new ModelAndView("knowledgeappraise/list-my-collect");
}
}

View File

@ -0,0 +1,44 @@
package cn.com.tenlion.knowledgelibrary.route.knowledgecorrection;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.interfaces.consts.ISystemConstant;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
/**
* @ClassName: KnowledgeCorrectionRouteController
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "知识纠错")
@RestController
@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/knowledge-correction")
public class KnowledgeCorrectionRouteController extends DefaultBaseController {
@GetMapping("save-correction")
public ModelAndView saveCorrection() {
return new ModelAndView("knowledgecorrection/save-correction");
}
@GetMapping("update-correction")
public ModelAndView updateCorrection() {
return new ModelAndView("knowledgecorrection/update-correction");
}
@GetMapping("list-correction")
public ModelAndView listCorrection() {
return new ModelAndView("knowledgecorrection/list-correction");
}
@GetMapping("list-my-correction")
public ModelAndView listMyCorrection() {
return new ModelAndView("knowledgecorrection/list-my-correction");
}
}

View File

@ -0,0 +1,70 @@
package cn.com.tenlion.knowledgelibrary.route.knowledgelib;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.interfaces.consts.ISystemConstant;
import io.swagger.annotations.*;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
/**
* @ClassName: KnowledgeLibController
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "路由")
@RestController
@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/knowledgelib")
public class KnowledgeLibRouteController extends DefaultBaseController {
@GetMapping("list")
public ModelAndView list() {
return new ModelAndView("knowledgelib/list");
}
@GetMapping("save")
public ModelAndView save() {
return new ModelAndView("knowledgelib/save");
}
@GetMapping("update")
public ModelAndView update() {
return new ModelAndView("knowledgelib/update");
}
@GetMapping("show-page-view")
public ModelAndView showPageView() {
return new ModelAndView("knowledgelib/show-page-view");
}
/** 知识详情 **/
@GetMapping("show")
public ModelAndView show() {
return new ModelAndView("knowledgelib/show");
}
/** 知识审核 **/
@GetMapping("pass-update")
public ModelAndView passUpdate() {
return new ModelAndView("knowledgelib/pass-update");
}
/** 知识上架下架列表 **/
@GetMapping("publish-list")
public ModelAndView publishList() {
return new ModelAndView("knowledgelib/publish-list");
}
/** 知识上架 **/
@GetMapping("publish-up")
public ModelAndView publishUp() {
return new ModelAndView("knowledgelib/publish-up");
}
/** 知识下架 **/
@GetMapping("publish-down")
public ModelAndView publishDown() {
return new ModelAndView("knowledgelib/publish-down");
}
}

View File

@ -0,0 +1,49 @@
package cn.com.tenlion.knowledgelibrary.route.knowledgereport;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.interfaces.consts.ISystemConstant;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
/**
* 知识上报页面跳转
* @ClassName: KnowledgeReportRouteController
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "知识上报页面跳转")
@RestController
@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/knowledge-report")
public class KnowledgeReportRouteController extends DefaultBaseController {
@GetMapping("list")
public ModelAndView list() {
return new ModelAndView("knowledgereport/list");
}
@GetMapping("save")
public ModelAndView save() {
return new ModelAndView("knowledgereport/save");
}
@GetMapping("update")
public ModelAndView update() {
return new ModelAndView("knowledgereport/update");
}
@GetMapping("pass-list")
public ModelAndView passList() {
return new ModelAndView("knowledgereport/pass-list");
}
@GetMapping("pass-update")
public ModelAndView passUpdate() {
return new ModelAndView("knowledgereport/pass-update");
}
}

View File

@ -0,0 +1,48 @@
package cn.com.tenlion.knowledgelibrary.route.knowledgeversion;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.interfaces.consts.ISystemConstant;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
/**
* @ClassName: KnowledgeVersionRouteController
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "知识版本维护")
@RestController
@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/knowledge-version")
public class KnowledgeVersionRouteController extends DefaultBaseController {
@GetMapping("list")
public ModelAndView list() {
return new ModelAndView("knowledgeversion/list");
}
@GetMapping("list-reform-knowledge")
public ModelAndView listReformKnowledge() {
return new ModelAndView("knowledgeversion/list-reform-knowledge");
}
@GetMapping("update-reform-knowledge")
public ModelAndView updateReformKnowledge() {
return new ModelAndView("knowledgeversion/update-reform-knowledge");
}
@GetMapping("update-version")
public ModelAndView updateVersion() {
return new ModelAndView("knowledgeversion/update-version");
}
@GetMapping("update-version-pass")
public ModelAndView updateVersionPass() {
return new ModelAndView("knowledgeversion/update-version-pass");
}
}

View File

@ -0,0 +1,29 @@
package cn.com.tenlion.knowledgelibrary.route.knowledgeyellowpage;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.interfaces.consts.ISystemConstant;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
/**
* 部门黄页
* @ClassName: KnowledgeYellowPageRouteController
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "部门黄页")
@RestController
@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/knowledge-yellow-page")
public class KnowledgeYellowPageRouteController extends DefaultBaseController {
@GetMapping("list")
public ModelAndView list() {
return new ModelAndView("knowledgeyellowpage/list");
}
}

View File

@ -0,0 +1,37 @@
package cn.com.tenlion.knowledgelibrary.service.askforknowledge;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.askforknowledge.AskForKnowledgeDTO;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgehistory.KnowledgeHistoryDTO;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultList;
import java.util.List;
import java.util.Map;
/**
* @ClassName: IAskForKnowledgeService
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
public interface IAskForKnowledgeService {
SuccessResultList<List<AskForKnowledgeDTO>> listPage(ListPage page);
List<AskForKnowledgeDTO> list(Map<String, Object> param);
void save(String token, AskForKnowledgeDTO askForKnowledgeDTO);
AskForKnowledgeDTO get(Map<String, Object> params);
void update(String token, Map<String, Object> params);
void updateAnswer(Map<String, Object> params);
void remove(List<String> asList);
void updateAnswer(String token, Map<String, Object> params);
}

View File

@ -0,0 +1,111 @@
package cn.com.tenlion.knowledgelibrary.service.askforknowledge.impl;
import cn.com.tenlion.knowledgelibrary.controller.api.askforknowledge.AskForKnowledgeController;
import cn.com.tenlion.knowledgelibrary.dao.askforknowledge.IAskForKnowledgeDao;
import cn.com.tenlion.knowledgelibrary.dao.knowledgelib.IKnowledgeLibDao;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.askforknowledge.AskForKnowledgeDTO;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.pojo.vos.knowledgelib.KnowledgeLibVO;
import cn.com.tenlion.knowledgelibrary.service.askforknowledge.IAskForKnowledgeService;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeHistoryService;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeLibService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import ink.wgink.common.base.DefaultBaseService;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.bos.UserInfoBO;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultList;
import ink.wgink.util.UUIDUtil;
import ink.wgink.util.date.DateUtil;
import ink.wgink.util.map.HashMapUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @ClassName: KnowledgeLibServiceImpl
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@Service
public class AskForKnowledgeServiceImpl extends DefaultBaseService implements IAskForKnowledgeService {
@Autowired
private IAskForKnowledgeDao askForKnowledgeDao;
@Override
public SuccessResultList<List<AskForKnowledgeDTO>> listPage(ListPage page) {
PageHelper.startPage(page.getPage(), page.getRows());
List<AskForKnowledgeDTO> askForKnowledgeDTOS = list(page.getParams());
PageInfo<AskForKnowledgeDTO> pageInfo = new PageInfo<>(askForKnowledgeDTOS);
return new SuccessResultList<>(askForKnowledgeDTOS, pageInfo.getPageNum(), pageInfo.getTotal());
}
@Override
public List<AskForKnowledgeDTO> list(Map<String, Object> param) {
return askForKnowledgeDao.list(param);
}
@Override
public AskForKnowledgeDTO get(Map<String, Object> params) {
AskForKnowledgeDTO dto = askForKnowledgeDao.get(params);
return dto;
}
@Override
public void save(String token, AskForKnowledgeDTO askForKnowledgeDTO) {
String askId = UUIDUtil.getUUID();
Map<String, Object> params = HashMapUtil.beanToMap(askForKnowledgeDTO);
params.put("askId", askId);
params.put("askType","0");
if(token != null && !"".equals(token)){
setAppSaveInfo(token, params);
} else {
setSaveInfo(params);
}
askForKnowledgeDao.save(params);
}
@Override
public void update(String token,Map<String, Object> params) {
// 修改需要将答复状态更改
params.put("askType", "0");
params.put("reason", "知识索要等待答复");
if(token != null && !"".equals(token)){
setAppUpdateInfo(token, params);
} else {
setUpdateInfo(params);
}
askForKnowledgeDao.update(params);
}
@Override
public void updateAnswer(String token, Map<String, Object> params) {
params.put("passType","1");
setAppUpdateInfo(token,params);
askForKnowledgeDao.update(params);
}
@Override
public void updateAnswer(Map<String, Object> params) {
params.put("askType","1");
params.put("passType","1");
params.put("reason","索要已答复");
setUpdateInfo(params);
askForKnowledgeDao.update(params);
}
@Override
public void remove(List<String> asList) {
Map<String, Object> params = getHashMap(4);
params.put("askIds", asList);
askForKnowledgeDao.remove(params);
}
}

View File

@ -0,0 +1,19 @@
package cn.com.tenlion.knowledgelibrary.service.departmentservice;
import ink.wgink.pojo.dtos.ZTreeDTO;
import ink.wgink.pojo.dtos.department.DepartmentDTO;
import java.util.List;
import java.util.Map;
/**
* @author xwangs
* @create 2021-11-08 10:22
* @description
*/
public interface IOauthDepartmentService {
List<DepartmentDTO> listBaseDepartmentByPid(Map<String, Object> params);
List<ZTreeDTO> listBaseDeptZTree(Map<String, Object> params);
}

View File

@ -0,0 +1,48 @@
package cn.com.tenlion.knowledgelibrary.service.departmentservice.impl;
import cn.com.tenlion.knowledgelibrary.service.departmentservice.IOauthDepartmentService;
import ink.wgink.common.base.DefaultBaseService;
import ink.wgink.interfaces.department.IDepartmentBaseService;
import ink.wgink.pojo.dtos.ZTreeDTO;
import ink.wgink.pojo.dtos.department.DepartmentDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @author xwangs
* @create 2021-11-08 10:24
* @description
*/
@Service
public class OauthDepartmentServiceImpl extends DefaultBaseService implements IOauthDepartmentService {
@Autowired
private IDepartmentBaseService departmentBaseService;
@Override
public List<DepartmentDTO> listBaseDepartmentByPid(Map<String, Object> params) {
String departmentParentId = "0";
if(params.get("departmentParentId") != null
&& !"".equals(params.get("departmentParentId").toString())){
departmentParentId = params.get("departmentParentId").toString();
}
params.put("departmentParentId",departmentParentId);
List<DepartmentDTO> list = departmentBaseService.list(params);
return list;
}
@Override
public List<ZTreeDTO> listBaseDeptZTree(Map<String, Object> params) {
String departmentParentId = "0";
if(params.get("id") != null
&& !"".equals(params.get("id").toString())){
departmentParentId = params.get("id").toString();
}
params.put("departmentParentId",departmentParentId);
List<ZTreeDTO> zTreeDTOS = departmentBaseService.listZTree(params);
return zTreeDTOS;
}
}

View File

@ -0,0 +1,27 @@
package cn.com.tenlion.knowledgelibrary.service.deptyellowpage;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.dtos.department.DepartmentDTO;
import ink.wgink.pojo.result.SuccessResultList;
import java.util.List;
import java.util.Map;
/**
* @author xwangs
* @create 2021-11-06 15:53
* @description
*/
public interface IDeptYellowPageService {
List<DepartmentDTO> listBaseDepartmentByPid(Map<String, Object> params);
List<Map<String, Object>> listCateGoryByDept(Map<String, Object> params);
SuccessResultList<List<KnowledgeLibDTO>> listKnowledgeLib(ListPage page);
List<KnowledgeLibDTO> listKnowledgeLib(Map<String, Object> params);
Map<String, Object> getDeptKnowledgeInfo(Map<String, Object> params);
}

View File

@ -0,0 +1,132 @@
package cn.com.tenlion.knowledgelibrary.service.deptyellowpage.impl;
import cn.com.tenlion.knowledgelibrary.dao.deptyellowpage.IDeptYellowPageDao;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.service.departmentservice.IOauthDepartmentService;
import cn.com.tenlion.knowledgelibrary.service.deptyellowpage.IDeptYellowPageService;
import cn.com.tenlion.knowledgelibrary.service.knowledgeappraise.IKnowledgeAppraiseService;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeLibService;
import cn.com.tenlion.knowledgelibrary.service.knowledgepageviews.IKnowledgePageViewsService;
import ink.wgink.common.base.DefaultBaseService;
import ink.wgink.module.dictionary.pojo.dtos.DataDTO;
import ink.wgink.module.dictionary.service.IDataService;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.dtos.department.DepartmentDTO;
import ink.wgink.pojo.result.SuccessResultList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 部门黄页service
* @author xwangs
* @create 2021-11-06 15:54
* @description
*/
@Service
public class DeptYellowPageServiceImpl extends DefaultBaseService implements IDeptYellowPageService {
@Autowired
private IOauthDepartmentService departmentService;
@Autowired
private IDataService dataService;
@Autowired
private IKnowledgeLibService libService;
@Autowired
private IDeptYellowPageDao deptYellowPageDao;
@Autowired
private IKnowledgePageViewsService pageViewsService;
@Autowired
private IKnowledgeAppraiseService appraiseService;
@Override
public List<DepartmentDTO> listBaseDepartmentByPid(Map<String, Object> params) {
List<DepartmentDTO> list = departmentService.listBaseDepartmentByPid(params);
return list;
}
@Override
public List<Map<String, Object>> listCateGoryByDept(Map<String, Object> params) {
params.put("sourceDept", params.get("departmentId").toString());
List<Map<String, Object>> list = deptYellowPageDao.listCateGoryByDept(params);
for(Map<String, Object> item : list){
item.put("categoryName","未知的类别");
if(item.get("category") != null && !"".equals(item.get("category").toString())){
DataDTO dataDTO = dataService.get(item.get("category").toString());
item.put("categoryName",dataDTO == null ? "未知的类别" : dataDTO.getDataName());
}
}
return list;
}
@Override
public List<KnowledgeLibDTO> listKnowledgeLib(Map<String, Object> params) {
if(params.get("sourceDept") == null || "".equals(params.get("sourceDept").toString())){
return new ArrayList<>();
}
// 只查询已上架的知识
params.put("publishType", "1");
return libService.list(null, params);
}
@Override
public SuccessResultList<List<KnowledgeLibDTO>> listKnowledgeLib(ListPage page) {
Map<String, Object> params = page.getParams();
if(params.get("sourceDept") == null || "".equals(params.get("sourceDept").toString())){
return new SuccessResultList<>(new ArrayList<>(),0 ,0L);
}
// 只查询已上架的知识
params.put("publishType", "1");
page.setParams(params);
return libService.listPage(null, page);
}
@Override
public Map<String, Object> getDeptKnowledgeInfo(Map<String, Object> params) {
Map<String, Object> resMap = new HashMap<>(8);
resMap.put("reportCount",0);
resMap.put("viewCount",0);
resMap.put("appraiseLevel", 3);
String sourceDept = "";
if(params.get("sourceDept") != null){
sourceDept = params.get("sourceDept").toString();
}
if("0".equals(sourceDept)
|| "".equals(sourceDept)){
return resMap;
}
// 知识数量 浏览量 评价
params.put("publishType", "1");
List<KnowledgeLibDTO> libList = libService.list(null, params);
if(libList != null && libList.size() > 0){
resMap.put("reportCount",libList.size());
// 处理浏览量
String knowledgeIds = "";
for (KnowledgeLibDTO item : libList){
knowledgeIds += item.getKnowledgeId() + ",";
}
params.clear();
params.put("knowledgeIds", knowledgeIds);
List<Map<String, Object>> viewList = pageViewsService.list(params);
resMap.put("viewCount",viewList == null ? 0 : viewList.size());
// 处理评价情况
List<Map<String, Object>> appraiseList = appraiseService.listAppraise(params);
if(appraiseList != null && appraiseList.size() > 0){
double rateLevel = 0d;
for(Map<String, Object> item : appraiseList){
rateLevel += Double.parseDouble(item.get("rateLevel").toString());
}
if(rateLevel > 0d){
double totalRateLevel = 0d;
totalRateLevel = rateLevel / appraiseList.size();
resMap.put("appraiseLevel", (int) totalRateLevel);
}
}
}
return resMap;
}
}

View File

@ -0,0 +1,29 @@
package cn.com.tenlion.knowledgelibrary.service.keywordsrelation;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.keywordsrelation.KeywordsRelationDTO;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.SuccessResultList;
import java.util.List;
import java.util.Map;
/**
* 知识关键词service
* @author xwangs
* @create 2021-11-09 17:05
* @description
*/
public interface IKeywordsRelationService {
SuccessResultList<List<KeywordsRelationDTO>> listPage(ListPage page);
List<KeywordsRelationDTO> list(Map<String, Object> params);
void remove(List<String> asList);
void save(KeywordsRelationDTO dto);
KeywordsRelationDTO get(Map<String, Object> params);
void update(KeywordsRelationDTO dto);
}

View File

@ -0,0 +1,75 @@
package cn.com.tenlion.knowledgelibrary.service.keywordsrelation.impl;
import cn.com.tenlion.knowledgelibrary.dao.keywordsrelation.IKeywordsRelationDao;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.keywordsrelation.KeywordsRelationDTO;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.service.keywordsrelation.IKeywordsRelationService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import ink.wgink.common.base.DefaultBaseService;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.SuccessResultList;
import ink.wgink.util.UUIDUtil;
import ink.wgink.util.map.HashMapUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* 知识关键词 service
* @author xwangs
* @create 2021-11-09 17:06
* @description
*/
@Service
public class KeywordsRelationServiceImpl extends DefaultBaseService implements IKeywordsRelationService {
@Autowired
private IKeywordsRelationDao keywordsRelationDao;
@Override
public SuccessResultList<List<KeywordsRelationDTO>> listPage(ListPage page) {
PageHelper.startPage(page.getPage(), page.getRows());
List<KeywordsRelationDTO> list = list(page.getParams());
PageInfo<KeywordsRelationDTO> pageInfo = new PageInfo<>(list);
return new SuccessResultList<>(list, pageInfo.getPageNum(), pageInfo.getTotal());
}
@Override
public List<KeywordsRelationDTO> list(Map<String, Object> params) {
List<KeywordsRelationDTO> list = keywordsRelationDao.list(params);
return list;
}
@Override
public void remove(List<String> ids) {
Map<String, Object> params = getHashMap(2);
params.put("keywordsIds", ids);
setUpdateInfo(params);
keywordsRelationDao.remove(params);
}
@Override
public void save(KeywordsRelationDTO dto) {
String keywordsId = UUIDUtil.getUUID();
Map<String, Object> params = HashMapUtil.beanToMap(dto);
params.put("keywordsId",keywordsId);
setSaveInfo(params);
keywordsRelationDao.save(params);
}
@Override
public KeywordsRelationDTO get(Map<String, Object> params) {
KeywordsRelationDTO dto = keywordsRelationDao.get(params);
return dto;
}
@Override
public void update(KeywordsRelationDTO dto) {
Map<String, Object> params = HashMapUtil.beanToMap(dto);
setUpdateInfo(params);
keywordsRelationDao.update(params);
}
}

View File

@ -0,0 +1,36 @@
package cn.com.tenlion.knowledgelibrary.service.knowledgeappraise;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.SuccessResultList;
import java.util.List;
import java.util.Map;
/**
* @author xwangs
* @create 2021-10-29 16:55
* @description
*/
public interface IKnowledgeAppraiseService {
void saveAppraise(Map<String, Object> params);
SuccessResultList<List<Map<String, Object>>> listPageAppraise(ListPage page);
List<Map<String, Object>> listAppraise(Map<String, Object> params);
SuccessResultList<List<KnowledgeLibDTO>> listPageCollect(ListPage page);
SuccessResultList<List<KnowledgeLibDTO>> listPageMyCollect(ListPage page);
void saveCollect(Map<String, Object> params);
Map<String, Object> checkUserCollect(Map<String, Object> params);
void updateCancelCollect(Map<String, Object> params);
void saveAppraiseApp(String token, Map<String, Object> params);
SuccessResultList<List<Map<String, Object>>> listPageKnowledgeAppraise(String token, ListPage page);
}

View File

@ -0,0 +1,132 @@
package cn.com.tenlion.knowledgelibrary.service.knowledgeappraise.impl;
import cn.com.tenlion.knowledgelibrary.dao.knowledgeappraise.IKnowledgeAppraiseDao;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.service.knowledgeappraise.IKnowledgeAppraiseService;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeLibService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import ink.wgink.common.base.DefaultBaseService;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.app.AppTokenUser;
import ink.wgink.pojo.bos.UserInfoBO;
import ink.wgink.pojo.result.SuccessResultList;
import ink.wgink.util.date.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author xwangs
* @create 2021-10-29 16:56
* @description
*/
@Service
public class KnowledgeAppraiseImpl extends DefaultBaseService implements IKnowledgeAppraiseService {
@Autowired
private IKnowledgeAppraiseDao appraiseDao;
@Autowired
private IKnowledgeLibService libService;
@Override
public void saveAppraise(Map<String, Object> params) {
// 获取当前账号信息
UserInfoBO userInfoBO = securityComponent.getCurrentUser();
params.put("userId",userInfoBO.getUserId());
params.put("appraiseName",userInfoBO.getUserName());
params.put("appraiseTime", DateUtil.getTime());
params.put("publishType", "1");
params.put("source", "system");
params.put("isDelete", "0");
appraiseDao.saveAppraise(params);
}
@Override
public void saveAppraiseApp(String token, Map<String, Object> params) {
AppTokenUser appTokenUser = getAppTokenUser(token);
params.put("userId",appTokenUser.getId());
params.put("appraiseName",appTokenUser.getName());
params.put("appraiseTime", DateUtil.getTime());
params.put("publishType", "1");
params.put("source", "app");
params.put("isDelete", "0");
appraiseDao.saveAppraise(params);
}
@Override
public SuccessResultList<List<Map<String, Object>>> listPageAppraise(ListPage page) {
PageHelper.startPage(page.getPage(), page.getRows());
List<Map<String, Object>> appraiseList = listAppraise(page.getParams());
PageInfo<Map<String, Object>> pageInfo = new PageInfo<>(appraiseList);
return new SuccessResultList<>(appraiseList, pageInfo.getPageNum(), pageInfo.getTotal());
}
@Override
public SuccessResultList<List<Map<String, Object>>> listPageKnowledgeAppraise(String token, ListPage page) {
PageHelper.startPage(page.getPage(), page.getRows());
List<Map<String, Object>> appraiseList = listAppraise(page.getParams());
PageInfo<Map<String, Object>> pageInfo = new PageInfo<>(appraiseList);
return new SuccessResultList<>(appraiseList, pageInfo.getPageNum(), pageInfo.getTotal());
}
@Override
public List<Map<String, Object>> listAppraise(Map<String, Object> params) {
List<Map<String, Object>> list = appraiseDao.listAppraise(params);
return list;
}
/** 知识收藏列表 **/
@Override
public SuccessResultList<List<KnowledgeLibDTO>> listPageCollect(ListPage page) {
SuccessResultList<List<KnowledgeLibDTO>> list = libService.listPage(null,page);
return list;
}
/** 我的知识收藏列表 **/
@Override
public SuccessResultList<List<KnowledgeLibDTO>> listPageMyCollect(ListPage page) {
Map<String, Object> param = page.getParams();
Map<String, Object> query = new HashMap<>(4);
UserInfoBO userInfoBO = securityComponent.getCurrentUser();
query.put("userId",userInfoBO.getUserId());
List<Map<String, Object>> collectList = appraiseDao.listCollect(query);
if(collectList == null || collectList.size() == 0){
return new SuccessResultList<>(new ArrayList<>(0), 0, 0L);
}
String knowledgeIds = "";
for(Map<String, Object> item : collectList){
knowledgeIds += item.get("knowledgeId").toString() + ",";
}
param.put("knowledgeIds",knowledgeIds);
page.setParams(param);
SuccessResultList<List<KnowledgeLibDTO>> listSuccessResultList = libService.listPage("",page);
return listSuccessResultList;
}
@Override
public void saveCollect(Map<String, Object> params) {
UserInfoBO userInfoBO = securityComponent.getCurrentUser();
params.put("userId", userInfoBO.getUserId());
params.put("collectTime", DateUtil.getTime());
appraiseDao.cancelCollect(params);
appraiseDao.saveCollect(params);
}
@Override
public Map<String, Object> checkUserCollect(Map<String, Object> params) {
Map<String, Object> collect = appraiseDao.getUserCollect(params);
return collect;
}
@Override
public void updateCancelCollect(Map<String, Object> params) {
UserInfoBO userInfoBO = securityComponent.getCurrentUser();
params.put("userId", userInfoBO.getUserId());
appraiseDao.cancelCollect(params);
}
}

View File

@ -0,0 +1,33 @@
package cn.com.tenlion.knowledgelibrary.service.knowledgecorrection;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgecorrection.KnowledgeCorrectionDTO;
import cn.com.tenlion.knowledgelibrary.pojo.vos.knowledgecorrection.KnowledgeCorrectionVO;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.SuccessResultList;
import java.util.List;
import java.util.Map;
/**
* @author xwangs
* @create 2021-10-30 14:08
* @description
*/
public interface IKnowledgeCorrectionService {
void saveCorrection(KnowledgeCorrectionVO vo);
SuccessResultList<List<KnowledgeCorrectionDTO>> listPageCorrection(ListPage page);
List<KnowledgeCorrectionDTO> listCorrection(Map<String, Object> params);
KnowledgeCorrectionDTO getCorrection(Map<String, Object> params);
void updateCorrection(Map<String, Object> params);
void saveCorrectionNotice(Map<String, Object> params);
SuccessResultList<List<KnowledgeCorrectionDTO>> listPageMyCorrection(ListPage page);
void saveCorrectionApp(String token, KnowledgeCorrectionVO vo);
}

View File

@ -0,0 +1,119 @@
package cn.com.tenlion.knowledgelibrary.service.knowledgecorrection.impl;
import cn.com.tenlion.knowledgelibrary.dao.knowledgecorrection.IKnowledgeCorrectionDao;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgecorrection.KnowledgeCorrectionDTO;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.pojo.vos.knowledgecorrection.KnowledgeCorrectionVO;
import cn.com.tenlion.knowledgelibrary.service.knowledgecorrection.IKnowledgeCorrectionService;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeLibService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import ink.wgink.common.base.DefaultBaseService;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.app.AppTokenUser;
import ink.wgink.pojo.bos.UserInfoBO;
import ink.wgink.pojo.result.SuccessResultList;
import ink.wgink.util.date.DateUtil;
import ink.wgink.util.map.HashMapUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author xwangs
* @create 2021-10-30 14:09
* @description
*/
@Service
public class KnowledgeCorrectionServiceImpl extends DefaultBaseService implements IKnowledgeCorrectionService {
@Autowired
private IKnowledgeCorrectionDao correctionDao;
@Autowired
private IKnowledgeLibService libService;
@Override
public SuccessResultList<List<KnowledgeCorrectionDTO>> listPageCorrection(ListPage page) {
PageHelper.startPage(page.getPage(), page.getRows());
List<KnowledgeCorrectionDTO> list = listCorrection(page.getParams());
PageInfo<KnowledgeCorrectionDTO> pageInfo = new PageInfo<>(list);
return new SuccessResultList<>(list, pageInfo.getPageNum(), pageInfo.getTotal());
}
@Override
public SuccessResultList<List<KnowledgeCorrectionDTO>> listPageMyCorrection(ListPage page) {
UserInfoBO currentUser = securityComponent.getCurrentUser();
page.getParams().put("userId",currentUser.getUserId());
PageHelper.startPage(page.getPage(), page.getRows());
List<KnowledgeCorrectionDTO> list = correctionDao.listMyCorrection(page.getParams());
PageInfo<KnowledgeCorrectionDTO> pageInfo = new PageInfo<>(list);
return new SuccessResultList<>(list, pageInfo.getPageNum(), pageInfo.getTotal());
}
@Override
public List<KnowledgeCorrectionDTO> listCorrection(Map<String, Object> params) {
List<KnowledgeCorrectionDTO> list = correctionDao.listCorrection(params);
return list;
}
@Override
public void saveCorrection(KnowledgeCorrectionVO vo) {
Map<String, Object> query = new HashMap<>(4);
query.put("knowledgeId", vo.getKnowledgeId());
KnowledgeLibDTO knowledgeLibDTO = libService.get(query);
vo.setCorrectionTime(DateUtil.getTime());
vo.setHandleType("0");
vo.setSource("".equals(vo.getSource()) || vo.getSource() == null ? "system" : vo.getSource());
vo.setVersion(knowledgeLibDTO.getVersion());
Map<String, Object> params = HashMapUtil.beanToMap(vo);
params.put("isDelete","0");
correctionDao.saveCorrection(params);
}
@Override
public void saveCorrectionApp(String token, KnowledgeCorrectionVO vo) {
AppTokenUser appTokenUser = getAppTokenUser(token);
Map<String, Object> query = new HashMap<>(4);
query.put("knowledgeId", vo.getKnowledgeId());
KnowledgeLibDTO knowledgeLibDTO = libService.get(query);
vo.setTitle(knowledgeLibDTO.getTitle());
vo.setVersion(knowledgeLibDTO.getVersion());
vo.setHandleType("0");
vo.setSource("app");
vo.setCorrectionUserId(appTokenUser.getId());
vo.setCorrectionTime(DateUtil.getTime());
vo.setCorrectionUserName(appTokenUser.getName());
Map<String, Object> params = HashMapUtil.beanToMap(vo);
params.put("isDelete","0");
correctionDao.saveCorrection(params);
}
@Override
public KnowledgeCorrectionDTO getCorrection(Map<String, Object> params) {
KnowledgeCorrectionDTO dto = correctionDao.getCorrection(params);
return dto;
}
@Override
public void updateCorrection(Map<String, Object> params) {
UserInfoBO currentUser = securityComponent.getCurrentUser();
params.put("handleUserId",currentUser.getUserId());
params.put("handleTime",DateUtil.getTime());
correctionDao.updateCorrection(params);
}
@Override
public void saveCorrectionNotice(Map<String, Object> params) {
KnowledgeCorrectionDTO correction = getCorrection(params);
params.clear();
params.put("knowledgeId",correction.getKnowledgeId());
KnowledgeLibDTO knowledgeLibDTO = libService.get(params);
params.put("userId",knowledgeLibDTO.getCreator());
params.put("content","您有一条知识纠错需要修改,请尽快处理");
params.put("gmtCreate",DateUtil.getTime());
correctionDao.updateCorrectionNotice(params);
}
}

View File

@ -0,0 +1,38 @@
package cn.com.tenlion.knowledgelibrary.service.knowledgelib;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgehistory.KnowledgeHistoryDTO;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.pojo.vos.knowledgelib.KnowledgeLibVO;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultList;
import java.util.List;
import java.util.Map;
/**
* @ClassName: IKnowledgeHistoryService
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
public interface IKnowledgeHistoryService {
SuccessResult knowledgeAdd(Map<String, Object> params);
SuccessResult knowledgeEdit(Map<String, Object> params);
SuccessResult knowledgePass(Map<String, Object> params);
SuccessResult knowledgeUnPass(Map<String, Object> params);
SuccessResult knowledgePublishUp(Map<String, Object> params);
SuccessResult knowledgePublishDown(Map<String, Object> params);
List<KnowledgeHistoryDTO> listKnowledgeHistory(Map<String, Object> params);
void saveKnowledgePushMsg(Map<String, Object> pushMsg);
}

View File

@ -0,0 +1,210 @@
package cn.com.tenlion.knowledgelibrary.service.knowledgelib;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.pojo.vos.knowledgelib.KnowledgeLibVO;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultList;
import java.util.List;
import java.util.Map;
/**
* @ClassName: IKnowledgeLibService
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
public interface IKnowledgeLibService {
/**
* 分页列表
*
* @param page
* @param token
* @return
*/
SuccessResultList<List<KnowledgeLibDTO>> listPage(String token, ListPage page);
/**
* 列表
*
* @param token
* @param params
* @return
*/
List<KnowledgeLibDTO> list(String token, Map<String, Object> params);
/**
* 新增
*
* @param knowledgeLibVO
* @return
*/
void save(KnowledgeLibVO knowledgeLibVO);
/**
* 修改
*
* @param knowledgeId
* @param knowledgeLibVO
* @return
*/
void update(String knowledgeId, KnowledgeLibVO knowledgeLibVO);
/**
* 详情
*
* @param params 参数Map
* @return
*/
KnowledgeLibDTO get(Map<String, Object> params);
/**
* 删除
*
* @param ids id列表
* @return
*/
void remove(List<String> ids);
/**
* 删除物理删除
*
* @param ids id列表
*/
void delete(List<String> ids);
/**
* 统计
*
* @param params
* @return
*/
Integer count(Map<String, Object> params);
/**
* 知识审核
* @param params
* @return
*/
SuccessResult passUpdate(Map<String, Object> params);
/**
* 知识上架
* @param params
* @return
*/
SuccessResult publishUp(Map<String, Object> params);
/**
* 知识下架
* @param params
* @return
*/
SuccessResult publishDown(Map<String, Object> params);
/**
* 知识库第三方推送上报接口
* @param knowledgeLibVO
*/
void saveKnowledgePush(KnowledgeLibVO knowledgeLibVO);
void saveExcelImport(Map<String, Object> elem);
/**
* 知识上报新增
* @param knowledgeLibVO
*/
void saveReport(KnowledgeLibVO knowledgeLibVO);
/**
* 知识上报分页列表
* @param page
* @return
*/
SuccessResultList<List<KnowledgeLibDTO>> listPageReport(ListPage page);
/**
* 知识上报详情
* @param params
* @return
*/
KnowledgeLibDTO getReport(Map<String, Object> params);
/**
* 知识上报修改
* @param knowledgeLibVO
*/
void updateReport(KnowledgeLibVO knowledgeLibVO);
/**
* 知识上报删除
* @param token
* @param asList
*/
void removeReport(String token, List<String> asList);
/**
* 知识上报列表
* @param params
* @return
*/
List<KnowledgeLibDTO> listReport(Map<String, Object> params);
/**
* 知识上报提交审核
* @param asList
*/
void updateReportPass(List<String> asList);
/**
* 知识上报审核
* @param params
* @return
*/
SuccessResult updatePassType(Map<String, Object> params);
/**
* 知识索要转知识库
* @param knowledgeLibVO
*/
void saveAksKnowledge(KnowledgeLibVO knowledgeLibVO);
/**
* 知识库版本更新
* @param knowVersion
*/
void updateNewVersion(KnowledgeLibDTO knowVersion);
/**
* APP知识上架
* @param token
* @param params
* @return
*/
SuccessResult publishUp(String token, Map<String, Object> params);
/**
* APP知识下架
* @param token
* @param params
* @return
*/
SuccessResult publishDown(String token, Map<String, Object> params);
/**
* APP 知识上报
* @param token
* @param knowledgeLibVO
*/
void saveReport(String token, KnowledgeLibVO knowledgeLibVO);
/**
* APP 知识修改
* @param token
* @param knowledgeLibVO
*/
void updateReport(String token, KnowledgeLibVO knowledgeLibVO);
}

View File

@ -0,0 +1,84 @@
package cn.com.tenlion.knowledgelibrary.service.knowledgelib.impl;
import cn.com.tenlion.knowledgelibrary.dao.knowledgelib.IKnowledgeHistoryDao;
import cn.com.tenlion.knowledgelibrary.dao.knowledgelib.IKnowledgeLibDao;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgehistory.KnowledgeHistoryDTO;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.pojo.vos.knowledgelib.KnowledgeLibVO;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeHistoryService;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeLibService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import ink.wgink.common.base.DefaultBaseService;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultList;
import ink.wgink.util.UUIDUtil;
import ink.wgink.util.map.HashMapUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @ClassName: KnowledgeLibServiceImpl
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@Service
public class KnowledgeHistoryServiceImpl extends DefaultBaseService implements IKnowledgeHistoryService {
@Autowired
private IKnowledgeHistoryDao knowledgeHistoryDao;
@Override
public SuccessResult knowledgeAdd(Map<String, Object> params) {
knowledgeHistoryDao.save(params);
return new SuccessResult();
}
@Override
public SuccessResult knowledgeEdit(Map<String, Object> params) {
knowledgeHistoryDao.save(params);
return new SuccessResult();
}
@Override
public SuccessResult knowledgePass(Map<String, Object> params) {
knowledgeHistoryDao.save(params);
return new SuccessResult();
}
@Override
public SuccessResult knowledgeUnPass(Map<String, Object> params) {
knowledgeHistoryDao.save(params);
return new SuccessResult();
}
@Override
public SuccessResult knowledgePublishUp(Map<String, Object> params) {
knowledgeHistoryDao.save(params);
return new SuccessResult();
}
@Override
public SuccessResult knowledgePublishDown(Map<String, Object> params) {
knowledgeHistoryDao.save(params);
return new SuccessResult();
}
@Override
public List<KnowledgeHistoryDTO> listKnowledgeHistory(Map<String, Object> params) {
List<KnowledgeHistoryDTO> list = knowledgeHistoryDao.listKnowledgeHistory(params);
return list;
}
@Override
public void saveKnowledgePushMsg(Map<String, Object> pushMsg) {
knowledgeHistoryDao.saveKnowledgePushMsg(pushMsg);
}
}

View File

@ -0,0 +1,498 @@
package cn.com.tenlion.knowledgelibrary.service.knowledgelib.impl;
import cn.com.tenlion.knowledgelibrary.dao.knowledgelib.IKnowledgeLibDao;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgeversion.KnowledgeVersionDTO;
import cn.com.tenlion.knowledgelibrary.pojo.vos.knowledgelib.KnowledgeLibVO;
import cn.com.tenlion.knowledgelibrary.service.knowledgeappraise.IKnowledgeAppraiseService;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeHistoryService;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeLibService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import ink.wgink.common.base.DefaultBaseService;
import ink.wgink.module.dictionary.pojo.dtos.DataDTO;
import ink.wgink.module.dictionary.service.IDataService;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.app.AppTokenUser;
import ink.wgink.pojo.bos.UserInfoBO;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultList;
import ink.wgink.util.UUIDUtil;
import ink.wgink.util.date.DateUtil;
import ink.wgink.util.map.HashMapUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @ClassName: KnowledgeLibServiceImpl
* @Description:
* @Author: CodeFactory
* @Date: 2021-09-02 14:19:50
* @Version: 3.0
**/
@Service
public class KnowledgeLibServiceImpl extends DefaultBaseService implements IKnowledgeLibService {
@Autowired
private IKnowledgeLibDao knowledgeLibDao;
@Autowired
private IKnowledgeHistoryService knowledgeHistoryService;
@Autowired
private IKnowledgeAppraiseService appraiseService;
@Autowired
private IDataService dataService;
/** 知识上报分页列表 **/
@Override
public SuccessResultList<List<KnowledgeLibDTO>> listPageReport(ListPage page) {
PageHelper.startPage(page.getPage(), page.getRows());
List<KnowledgeLibDTO> knowledgeLibDTOs = listReport(page.getParams());
PageInfo<KnowledgeLibDTO> pageInfo = new PageInfo<>(knowledgeLibDTOs);
return new SuccessResultList<>(knowledgeLibDTOs, pageInfo.getPageNum(), pageInfo.getTotal());
}
/** 知识上报列表 **/
@Override
public List<KnowledgeLibDTO> listReport(Map<String, Object> params) {
List<KnowledgeLibDTO> knowledgeLibDTOs = knowledgeLibDao.listReport(params);
for(KnowledgeLibDTO item : knowledgeLibDTOs){
changeDTOFromData(item);
}
return knowledgeLibDTOs;
}
/** 知识上报详情 **/
@Override
public KnowledgeLibDTO getReport(Map<String, Object> params) {
KnowledgeLibDTO report = knowledgeLibDao.getReport(params);
changeDTOFromData(report);
return report;
}
/** 知识上报新增**/
@Override
public void saveReport(KnowledgeLibVO knowledgeLibVO) {
String knowledgeId = UUIDUtil.getUUID();
Map<String, Object> params = HashMapUtil.beanToMap(knowledgeLibVO);
params.put("knowledgeId", knowledgeId);
params.put("passType","");
params.put("passLimitDate","");
setSaveInfo(params);
knowledgeLibDao.saveReport(params);
// 添加上报日志
Map<String, Object> historyMap = getHashMap(8);
UserInfoBO userInfoBO = securityComponent.getCurrentUser();
historyMap.put("knowledgeId",knowledgeId);
historyMap.put("userId",userInfoBO.getUserId());
historyMap.put("userName",userInfoBO.getUserUsername());
historyMap.put("pointCode","0");
historyMap.put("reasonMsg","新增知识上报");
historyMap.put("createTime",DateUtil.getTime());
knowledgeHistoryService.knowledgeAdd(historyMap);
}
/** APP知识上报新增**/
@Override
public void saveReport(String token, KnowledgeLibVO knowledgeLibVO) {
String knowledgeId = UUIDUtil.getUUID();
Map<String, Object> params = HashMapUtil.beanToMap(knowledgeLibVO);
params.put("knowledgeId", knowledgeId);
params.put("passType","");
params.put("passLimitDate","");
setAppSaveInfo(token, params);
knowledgeLibDao.saveReport(params);
// 添加上报日志
Map<String, Object> historyMap = getHashMap(8);
AppTokenUser appTokenUser = getAppTokenUser(token);
historyMap.put("knowledgeId",knowledgeId);
historyMap.put("userId",appTokenUser.getId());
historyMap.put("userName",appTokenUser.getName());
historyMap.put("pointCode","0");
historyMap.put("reasonMsg","新增知识上报");
historyMap.put("createTime",DateUtil.getTime());
knowledgeHistoryService.knowledgeAdd(historyMap);
}
/** 知识上报修改**/
@Override
public void updateReport(KnowledgeLibVO knowledgeLibVO) {
Map<String, Object> params = HashMapUtil.beanToMap(knowledgeLibVO);
params.put("knowledgeId", knowledgeLibVO.getKnowledgeId());
params.put("passType", "");
params.put("passLimitDate", "");
setUpdateInfo(params);
knowledgeLibDao.updateReport(params);
}
@Override
public void updateReport(String token, KnowledgeLibVO knowledgeLibVO) {
Map<String, Object> params = HashMapUtil.beanToMap(knowledgeLibVO);
params.put("knowledgeId", knowledgeLibVO.getKnowledgeId());
params.put("passType", "");
params.put("passLimitDate", "");
setAppUpdateInfo(token, params);
knowledgeLibDao.updateReport(params);
}
/** 知识上报删除**/
@Override
public void removeReport(String token, List<String> ids) {
Map<String, Object> params = getHashMap(2);
params.put("knowledgeIds", ids);
if(token != null && !"".equals(token)){
setAppUpdateInfo(token,params);
} else {
setUpdateInfo(params);
}
knowledgeLibDao.removeReport(params);
}
/** 知识上报提交审核**/
@Override
public void updateReportPass(List<String> ids) {
Map<String, Object> params = getHashMap(2);
params.put("knowledgeIds", ids);
params.put("passType", "0");
knowledgeLibDao.updateReportPass(params);
}
/** 批量知识上报**/
@Override
public void saveExcelImport(Map<String, Object> elem) {
String knowledgeId = UUIDUtil.getUUID();
elem.put("knowledgeId", knowledgeId);
elem.put("passType","");
elem.put("passLimitDate","");
setSaveInfo(elem);
knowledgeLibDao.saveReport(elem);
// 添加知识上报日志
Map<String, Object> historyMap = getHashMap(8);
UserInfoBO userInfoBO = securityComponent.getCurrentUser();
historyMap.put("knowledgeId",knowledgeId);
historyMap.put("userId",userInfoBO.getUserId());
historyMap.put("userName",userInfoBO.getUserUsername());
historyMap.put("pointCode","0");
historyMap.put("reasonMsg","新增知识上报");
historyMap.put("createTime",DateUtil.getTime());
knowledgeHistoryService.knowledgeAdd(historyMap);
}
/** 修改知识审核状态**/
@Override
public SuccessResult updatePassType(Map<String, Object> params) {
setUpdateInfo(params);
knowledgeLibDao.updatePassReport(params);
// 审核通过后将该知识添加到知识库表中
String passType = params.get("passType").toString();
if("1".equals(passType)){
KnowledgeLibDTO knowledgeLibDTO = knowledgeLibDao.getReport(params);
knowledgeLibDTO.setVersion("1");
Map<String, Object> knowledgeLibMap = HashMapUtil.beanToMap(knowledgeLibDTO);
knowledgeLibDao.save(knowledgeLibMap);
// 删除知识上报信息
List<String> idsList = new ArrayList<>();
idsList.add(params.get("knowledgeId").toString());
params.put("knowledgeIds", idsList);
knowledgeLibDao.removeReport(params);
}
// 添加操作日志
Map<String, Object> historyMap = getHashMap(8);
UserInfoBO userInfoBO = securityComponent.getCurrentUser();
historyMap.put("knowledgeId",params.get("knowledgeId"));
historyMap.put("userId",userInfoBO.getUserId());
historyMap.put("userName",userInfoBO.getUserUsername());
historyMap.put("pointCode", passType);
String passOpinion = params.get("passOpinion") == null ? "" : params.get("passOpinion").toString();
historyMap.put("reasonMsg","1".equals(passType) ? "审核通过 " : "审核驳回 " + passOpinion);
historyMap.put("createTime",DateUtil.getTime());
knowledgeHistoryService.knowledgeEdit(historyMap);
return new SuccessResult();
}
/** 知识索要转知识库**/
@Override
public void saveAksKnowledge(KnowledgeLibVO knowledgeLibVO) {
String knowledgeId = UUIDUtil.getUUID();
Map<String, Object> params = HashMapUtil.beanToMap(knowledgeLibVO);
params.put("knowledgeId", knowledgeId);
params.put("passType","");
params.put("source","知识索要");
params.put("passLimitDate","");
setSaveInfo(params);
knowledgeLibDao.saveReport(params);
// 添加上报日志
Map<String, Object> historyMap = getHashMap(8);
UserInfoBO userInfoBO = securityComponent.getCurrentUser();
historyMap.put("knowledgeId",knowledgeId);
historyMap.put("userId",userInfoBO.getUserId());
historyMap.put("userName",userInfoBO.getUserUsername());
historyMap.put("pointCode","0");
historyMap.put("reasonMsg","知识索要转知识库");
historyMap.put("createTime",DateUtil.getTime());
knowledgeHistoryService.knowledgeAdd(historyMap);
}
@Override
public SuccessResultList<List<KnowledgeLibDTO>> listPage(String token, ListPage page) {
PageHelper.startPage(page.getPage(), page.getRows());
List<KnowledgeLibDTO> knowledgeLibDTOs = list(token, page.getParams());
PageInfo<KnowledgeLibDTO> pageInfo = new PageInfo<>(knowledgeLibDTOs);
return new SuccessResultList<>(knowledgeLibDTOs, pageInfo.getPageNum(), pageInfo.getTotal());
}
@Override
public List<KnowledgeLibDTO> list(String token, Map<String, Object> params) {
if(token != null && !"".equals(token)){
AppTokenUser appTokenUser = getAppTokenUser(token);
params.put("userId",appTokenUser.getId());
}
UserInfoBO userInfoBO = securityComponent.getCurrentUser();
if (userInfoBO != null && userInfoBO.getUserId() != null) {
params.put("userId",userInfoBO.getUserId());
}
List<KnowledgeLibDTO> list = knowledgeLibDao.list(params);
for(KnowledgeLibDTO item : list){
changeDTOFromData(item);
params.put("knowledgeId", item.getKnowledgeId());
Map<String, Object> collect = appraiseService.checkUserCollect(params);
item.setCollectType(collect == null ? "0" : "1");
}
return list;
}
@Override
public void save(KnowledgeLibVO knowledgeLibVO) {
String knowledgeId = UUIDUtil.getUUID();
Map<String, Object> params = HashMapUtil.beanToMap(knowledgeLibVO);
params.put("knowledgeId", knowledgeId);
params.put("passType","0");
params.put("publishType","0");
// 设置审核时限 目前设置为3天
params.put("passLimitDate",DateUtil.getAfterDayDate("3"));
setSaveInfo(params);
knowledgeLibDao.save(params);
// 添加知识上报日志
Map<String, Object> historyMap = getHashMap(8);
UserInfoBO userInfoBO = securityComponent.getCurrentUser();
historyMap.put("knowledgeId",knowledgeId);
historyMap.put("userId",userInfoBO.getUserId());
historyMap.put("userName",userInfoBO.getUserUsername());
historyMap.put("pointCode","0");
historyMap.put("reasonMsg","知识上报待审");
historyMap.put("createTime",params.get("gmtCreate"));
knowledgeHistoryService.knowledgeAdd(historyMap);
}
@Override
public void update(String knowledgeId, KnowledgeLibVO knowledgeLibVO) {
Map<String, Object> params = HashMapUtil.beanToMap(knowledgeLibVO);
params.put("knowledgeId", knowledgeId);
setUpdateInfo(params);
knowledgeLibDao.update(params);
// 添加知识上报修改日志
Map<String, Object> historyMap = getHashMap(8);
UserInfoBO userInfoBO = securityComponent.getCurrentUser();
historyMap.put("knowledgeId",knowledgeId);
historyMap.put("userId",userInfoBO.getUserId());
historyMap.put("userName",userInfoBO.getUserUsername());
historyMap.put("pointCode","0");
historyMap.put("reasonMsg","知识上报修改");
historyMap.put("createTime",params.get("gmtModified"));
knowledgeHistoryService.knowledgeEdit(historyMap);
}
@Override
public void updateNewVersion(KnowledgeLibDTO knowVersion) {
Map<String, Object> params = HashMapUtil.beanToMap(knowVersion);
knowledgeLibDao.update(params);
// 添加知识上报修改日志
Map<String, Object> historyMap = getHashMap(8);
UserInfoBO userInfoBO = securityComponent.getCurrentUser();
historyMap.put("knowledgeId",knowVersion.getKnowledgeId());
historyMap.put("userId",userInfoBO.getUserId());
historyMap.put("userName",userInfoBO.getUserUsername());
historyMap.put("pointCode","0");
historyMap.put("reasonMsg","知识版本更新至 V" + knowVersion.getVersion());
historyMap.put("createTime",params.get("gmtModified"));
knowledgeHistoryService.knowledgeEdit(historyMap);
}
@Override
public KnowledgeLibDTO get(Map<String, Object> params) {
return knowledgeLibDao.get(params);
}
@Override
public void remove(List<String> ids) {
Map<String, Object> params = getHashMap(2);
params.put("knowledgeIds", ids);
setUpdateInfo(params);
knowledgeLibDao.remove(params);
}
@Override
public void delete(List<String> ids) {
Map<String, Object> params = getHashMap(2);
params.put("knowledgeIds", ids);
knowledgeLibDao.delete(params);
}
@Override
public SuccessResult passUpdate(Map<String, Object> params) {
setUpdateInfo(params);
knowledgeLibDao.update(params);
// 添加知识上报审核日志
Map<String, Object> historyMap = getHashMap(8);
UserInfoBO userInfoBO = securityComponent.getCurrentUser();
historyMap.put("knowledgeId",params.get("knowledgeId"));
historyMap.put("userId",userInfoBO.getUserId());
historyMap.put("userName",userInfoBO.getUserUsername());
int passType = Integer.parseInt(params.get("passType").toString());
historyMap.put("pointCode", passType);
historyMap.put("reasonMsg",passType == 1 ? "知识审核通过" : "知识审核驳回");
historyMap.put("createTime",params.get("gmtModified"));
knowledgeHistoryService.knowledgeEdit(historyMap);
return new SuccessResult();
}
@Override
public SuccessResult publishUp(Map<String, Object> params) {
Map<String, Object> updateMap = new HashMap<>(8);
updateMap.put("knowledgeId", params.get("knowledgeId").toString());
// 判断是否设置自动上架时间
updateMap.put("publishType", "1");
if(params.get("effectiveTime") != null && !"".equals(params.get("effectiveTime").toString())){
updateMap.put("publishType", "0");
}
updateMap.put("effectiveTime", params.get("effectiveTime").toString());
updateMap.put("dueTime", params.get("effectiveTime").toString());
updateMap.put("publishReason", params.get("publishReason").toString());
setUpdateInfo(updateMap);
knowledgeLibDao.update(updateMap);
// 添加知识上报上架日志
Map<String, Object> historyMap = getHashMap(8);
UserInfoBO userInfoBO = securityComponent.getCurrentUser();
historyMap.put("knowledgeId",params.get("knowledgeId"));
historyMap.put("userId",userInfoBO.getUserId());
historyMap.put("userName",userInfoBO.getUserUsername());
historyMap.put("pointCode", "1");
historyMap.put("reasonMsg", "知识上架 " + params.get("publishReason").toString());
historyMap.put("createTime", DateUtil.getTime());
knowledgeHistoryService.knowledgeEdit(historyMap);
return new SuccessResult();
}
@Override
public SuccessResult publishUp(String token, Map<String, Object> params) {
params.put("publishType", "1");
setAppUpdateInfo(token,params);
knowledgeLibDao.update(params);
// 添加知识上报上架日志
Map<String, Object> historyMap = getHashMap(8);
AppTokenUser appTokenUser = getAppTokenUser(token);
historyMap.put("knowledgeId",params.get("knowledgeId"));
historyMap.put("userId",appTokenUser.getId());
historyMap.put("userName",appTokenUser.getName());
historyMap.put("pointCode", "1");
historyMap.put("reasonMsg", "知识上架 " + params.get("publishReason").toString());
historyMap.put("createTime", DateUtil.getTime());
knowledgeHistoryService.knowledgeEdit(historyMap);
return new SuccessResult();
}
@Override
public SuccessResult publishDown(Map<String, Object> params) {
Map<String, Object> updateMap = new HashMap<>(8);
updateMap.put("knowledgeId", params.get("knowledgeId").toString());
updateMap.put("publishType", "-1");
updateMap.put("effectiveTime", "");
updateMap.put("dueTime", "");
updateMap.put("publishReason", params.get("publishReason").toString());
knowledgeLibDao.update(updateMap);
// 添加知识上报下架日志
Map<String, Object> historyMap = getHashMap(8);
UserInfoBO userInfoBO = securityComponent.getCurrentUser();
historyMap.put("knowledgeId",params.get("knowledgeId").toString());
historyMap.put("userId",userInfoBO.getUserId());
historyMap.put("userName",userInfoBO.getUserUsername());
historyMap.put("pointCode", "-1");
historyMap.put("reasonMsg", "知识下架 "+ params.get("publishReason").toString());
historyMap.put("createTime", DateUtil.getTime());
knowledgeHistoryService.knowledgeEdit(historyMap);
// 知识下架后向下架推送消息表中添加记录
Map<String, Object> pushMsg = getHashMap(8);
pushMsg.put("knowledgeId",params.get("knowledgeId").toString());
KnowledgeLibDTO knowledgeLibDTO = knowledgeLibDao.get(pushMsg);
pushMsg.put("userId",knowledgeLibDTO.getCreator());
pushMsg.put("content","[知识被下架]" + knowledgeLibDTO.getTitle());
pushMsg.put("gmtCreate",DateUtil.getTime());
knowledgeHistoryService.saveKnowledgePushMsg(pushMsg);
return new SuccessResult();
}
@Override
public SuccessResult publishDown(String token, Map<String, Object> params) {
params.put("publishType", "-1");
setAppUpdateInfo(token,params);
knowledgeLibDao.update(params);
// 添加知识上报下架日志
Map<String, Object> historyMap = getHashMap(8);
AppTokenUser appTokenUser = getAppTokenUser(token);
historyMap.put("knowledgeId",params.get("knowledgeId").toString());
historyMap.put("userId",appTokenUser.getId());
historyMap.put("userName",appTokenUser.getName());
historyMap.put("pointCode", "-1");
historyMap.put("reasonMsg", "知识下架 " + params.get("publishReason").toString());
historyMap.put("createTime", DateUtil.getTime());
knowledgeHistoryService.knowledgeEdit(historyMap);
// 知识下架后向下架推送消息表中添加记录
Map<String, Object> pushMsg = getHashMap(8);
pushMsg.put("knowledgeId",params.get("knowledgeId").toString());
KnowledgeLibDTO knowledgeLibDTO = knowledgeLibDao.get(pushMsg);
pushMsg.put("userId",knowledgeLibDTO.getCreator());
pushMsg.put("content","[知识被下架]" + knowledgeLibDTO.getTitle());
pushMsg.put("gmtCreate",DateUtil.getTime());
knowledgeHistoryService.saveKnowledgePushMsg(pushMsg);
return new SuccessResult();
}
@Override
public Integer count(Map<String, Object> params) {
Integer count = knowledgeLibDao.count(params);
return count == null ? 0 : count;
}
@Override
public void saveKnowledgePush(KnowledgeLibVO knowledgeLibVO) {
String knowledgeId = UUIDUtil.getUUID();
Map<String, Object> params = HashMapUtil.beanToMap(knowledgeLibVO);
params.put("knowledgeId", knowledgeId);
params.put("passType","0");
params.put("publishType","0");
setSaveInfo(params);
knowledgeLibDao.save(params);
// 添加知识第三方推送日志
Map<String, Object> historyMap = getHashMap(8);
historyMap.put("knowledgeId",knowledgeId);
historyMap.put("userId","1");
historyMap.put("userName","admin");
historyMap.put("pointCode","0");
historyMap.put("reasonMsg","第三方推送上报待审");
historyMap.put("createTime",params.get("gmtCreate"));
knowledgeHistoryService.knowledgeAdd(historyMap);
}
private void changeDTOFromData(KnowledgeLibDTO dto){
// 主题分类
if(dto.getCategory() != null && !"".equals(dto.getCategory())){
DataDTO dataDTO = dataService.get(dto.getCategory());
dto.setCategoryDict(dataDTO == null ? "" : dataDTO.getDataName());
}
}
}

View File

@ -0,0 +1,24 @@
package cn.com.tenlion.knowledgelibrary.service.knowledgepageviews;
import ink.wgink.pojo.result.SuccessResultData;
import java.util.List;
import java.util.Map;
/**
* @author xwangs
* @create 2021-11-05 14:45
* @description
*/
public interface IKnowledgePageViewsService {
/**
* 保存访问记录并返归访问量
* @param token
* @param params
* @return
*/
SuccessResultData saveKnowledgePageViews(String token, Map<String, Object> params);
List<Map<String, Object>> list(Map<String, Object> params);
}

View File

@ -0,0 +1,55 @@
package cn.com.tenlion.knowledgelibrary.service.knowledgepageviews.impl;
import cn.com.tenlion.knowledgelibrary.dao.knowledgepageviews.IKnowledgePageViewsDao;
import cn.com.tenlion.knowledgelibrary.service.knowledgepageviews.IKnowledgePageViewsService;
import ink.wgink.common.base.DefaultBaseService;
import ink.wgink.pojo.app.AppTokenUser;
import ink.wgink.pojo.bos.UserInfoBO;
import ink.wgink.pojo.result.SuccessResultData;
import ink.wgink.util.date.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @author xwangs
* @create 2021-11-05 14:45
* @description
*/
@Service
public class KnowledgePageViewsServiceImpl extends DefaultBaseService implements IKnowledgePageViewsService {
@Autowired
private IKnowledgePageViewsDao pageViewsDao;
@Override
public SuccessResultData saveKnowledgePageViews(String token, Map<String, Object> params) {
if(token != null && !"".equals(token)){
AppTokenUser appTokenUser = getAppTokenUser(token);
params.put("userId",appTokenUser.getId());
params.put("userName",appTokenUser.getName());
}
UserInfoBO currentUser = null;
try {
currentUser = securityComponent.getCurrentUser();
} catch (Exception e){
currentUser = null;
}
if(currentUser != null){
params.put("userId",currentUser.getUserId());
params.put("userName",currentUser.getUserName());
}
params.put("viewTime", DateUtil.getTime());
pageViewsDao.saveKnowledgePageViews(params);
Integer pageViewsCount = pageViewsDao.getKnowledgePageViewsCount(params);
return new SuccessResultData(pageViewsCount);
}
@Override
public List<Map<String, Object>> list(Map<String, Object> params) {
return pageViewsDao.list(params);
}
}

View File

@ -0,0 +1,34 @@
package cn.com.tenlion.knowledgelibrary.service.knowledgeversion;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgeversion.KnowledgeVersionDTO;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.SuccessResultData;
import ink.wgink.pojo.result.SuccessResultList;
import java.util.List;
import java.util.Map;
/**
* @author xwangs
* @create 2021-10-28 11:28
* @description
*/
public interface IKnowledgeVersionService {
SuccessResultList<List<KnowledgeVersionDTO>> listPage(ListPage page);
List<KnowledgeVersionDTO> list(Map<String, Object> params);
void saveReform(Map<String, Object> params);
SuccessResultList<List<KnowledgeLibDTO>> listPageNeedReformKnowledge(ListPage page);
void saveKnowledgeVersion(KnowledgeVersionDTO dto);
KnowledgeVersionDTO getVersion(Map<String, Object> params);
void savePassVersion(KnowledgeVersionDTO dto);
SuccessResultData getCheckVersion(Map<String, Object> params);
}

View File

@ -0,0 +1,173 @@
package cn.com.tenlion.knowledgelibrary.service.knowledgeversion.impl;
import cn.com.tenlion.knowledgelibrary.dao.knowledgeversion.IKnowledgeVersionDao;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO;
import cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgeversion.KnowledgeVersionDTO;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeHistoryService;
import cn.com.tenlion.knowledgelibrary.service.knowledgelib.IKnowledgeLibService;
import cn.com.tenlion.knowledgelibrary.service.knowledgeversion.IKnowledgeVersionService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import ink.wgink.common.base.DefaultBaseService;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.bos.UserInfoBO;
import ink.wgink.pojo.result.SuccessResultData;
import ink.wgink.pojo.result.SuccessResultList;
import ink.wgink.util.date.DateUtil;
import ink.wgink.util.map.HashMapUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author xwangs
* @create 2021-10-28 11:29
* @description
*/
@Service
public class KnowledgeVersionServiceImpl extends DefaultBaseService implements IKnowledgeVersionService {
@Autowired
private IKnowledgeLibService knowledgeLibService;
@Autowired
private IKnowledgeHistoryService knowledgeHistoryService;
@Autowired
private IKnowledgeVersionDao knowledgeVersionDao;
@Override
public SuccessResultList<List<KnowledgeVersionDTO>> listPage(ListPage page) {
PageHelper.startPage(page.getPage(), page.getRows());
List<KnowledgeVersionDTO> list = list(page.getParams());
PageInfo<KnowledgeVersionDTO> pageInfo = new PageInfo<>(list);
return new SuccessResultList<>(list, pageInfo.getPageNum(), pageInfo.getTotal());
}
@Override
public List<KnowledgeVersionDTO> list(Map<String, Object> params) {
List<KnowledgeVersionDTO> list = knowledgeVersionDao.list(params);
return list;
}
@Override
public KnowledgeVersionDTO getVersion(Map<String, Object> params) {
KnowledgeVersionDTO dto = knowledgeVersionDao.getVersion(params);
return dto;
}
@Override
public SuccessResultData getCheckVersion(Map<String, Object> params) {
String id = params.get("id").toString();
String knowledgeId = params.get("knowledgeId").toString();
// 查询当前知识库中知识版本
Map<String, Object> query = new HashMap<>(8);
query.put("knowledgeId", knowledgeId);
KnowledgeLibDTO knowledgeLibDTO = knowledgeLibService.get(query);
int libVersion = Integer.parseInt(knowledgeLibDTO.getVersion());
// 查询需要更新的版本号
query.clear();
query.put("id",id);
KnowledgeVersionDTO versionDTO = knowledgeVersionDao.getVersion(query);
int updateVersion = Integer.parseInt(versionDTO.getVersion());
Map<String, Object> resMap = new HashMap<>(4);
resMap.put("versionCheck", "true");
if(libVersion > updateVersion){
resMap.put("versionCheck", "false");
}
return new SuccessResultData(resMap);
}
@Override
public SuccessResultList<List<KnowledgeLibDTO>> listPageNeedReformKnowledge(ListPage page) {
// UserInfoBO userInfoBO = securityComponent.getCurrentUser();
// 查询所有需要整改更新的知识
Map<String, Object> params = page.getParams();
List<Map<String, Object>> needReformList = knowledgeVersionDao.listNeedReformKnowledge(params);
if(needReformList == null && needReformList.size() == 0){
return new SuccessResultList<>(new ArrayList<>(), 0,0L);
}
String knowledgeIds = "";
for (Map<String, Object> item : needReformList){
knowledgeIds += item.get("knowledgeId").toString() + ",";
}
params.put("knowledgeIds",knowledgeIds);
page.setParams(params);
SuccessResultList<List<KnowledgeLibDTO>> listSuccessResultList = knowledgeLibService.listPage(null, page);
return listSuccessResultList;
}
@Override
public void saveReform(Map<String, Object> params) {
UserInfoBO userInfoBO = securityComponent.getCurrentUser();
// 更新知识状态为需要整改状态
params.put("reformType","1");
knowledgeVersionDao.changeKnowledgeReformType(params);
params.put("creator",userInfoBO.getUserId());
knowledgeVersionDao.saveReform(params);
// 保存知识日志
Map<String, Object> historyMap = getHashMap(8);
historyMap.put("knowledgeId",params.get("knowledgeId").toString());
historyMap.put("userId",userInfoBO.getUserId());
historyMap.put("userName",userInfoBO.getUserUsername());
historyMap.put("pointCode","0");
historyMap.put("reasonMsg","[进行整改更新]" + params.get("reformReason"));
historyMap.put("createTime", DateUtil.getTime());
knowledgeHistoryService.knowledgeAdd(historyMap);
}
@Override
public void saveKnowledgeVersion(KnowledgeVersionDTO dto) {
Map<String, Object> params = HashMapUtil.beanToMap(dto);
KnowledgeLibDTO knowledgeLibDTO = knowledgeLibService.get(params);
params.put("version",knowledgeLibDTO.getVersion());
params.put("passType","0");
setSaveInfo(params);
knowledgeVersionDao.saveKnowledgeVersion(params);
}
@Override
public void savePassVersion(KnowledgeVersionDTO dto) {
Map<String, Object> query = new HashMap<>(8);
if("-1".equals(dto.getPassType())){
knowledgeVersionDao.removePassVersion(dto.getId());
return;
}
if("1".equals(dto.getPassType())){
query.put("knowledgeId",dto.getKnowledgeId());
query.put("id",dto.getId());
// 查询当前版本 将当前版本保存到历史版本中 然后更新为新的版本
KnowledgeLibDTO knowVersion = knowledgeLibService.get(query);
Map<String, Object> knowMap = HashMapUtil.beanToMap(knowVersion);
knowledgeVersionDao.saveKnowledgeToHistory(knowMap);
// 查询更新后版本将原版本信息替换
KnowledgeVersionDTO newVersion = knowledgeVersionDao.getVersion(query);
int version = Integer.parseInt(knowVersion.getVersion()) + 1;
knowVersion.setVersion(version + "");
knowVersion.setTitle(newVersion.getTitle());
knowVersion.setSummary(newVersion.getSummary());
knowVersion.setRichContent(newVersion.getRichContent());
knowVersion.setEffectiveTime("");
knowVersion.setDueTime("");
knowVersion.setCategory(newVersion.getCategory());
knowVersion.setKeywordRelation(newVersion.getKeywordRelation());
knowVersion.setKnowledgeRelation(newVersion.getKnowledgeRelation());
knowVersion.setWorkRelation(newVersion.getWorkRelation());
knowVersion.setSource(newVersion.getSource());
knowVersion.setSourceOrg(newVersion.getSourceOrg());
knowVersion.setSourceDept(newVersion.getSourceDept());
knowVersion.setSourceUser(newVersion.getSourceUser());
knowVersion.setSourceUserName(newVersion.getSourceUserName());
knowVersion.setPublishType("0");
knowVersion.setPublishReason("");
knowVersion.setCreator(newVersion.getCreator());
knowVersion.setModifier(newVersion.getModifier());
knowVersion.setGmtCreate(newVersion.getGmtCreate());
knowVersion.setGmtModified(newVersion.getGmtModified());
knowledgeLibService.updateNewVersion(knowVersion);
knowledgeVersionDao.removePassVersion(dto.getId());
}
}
}

View File

@ -0,0 +1,132 @@
server:
port: 9000
url: http://192.168.0.109:9000/library
system-title: 知识库系统
system-sub-title: 知识库系统
servlet:
context-path: /library
nav-page: http://192.168.0.155:7011/usercenter
spring:
login-url: /oauth/login
login-failure: /oauth/login?error
login-process: /userlogin
assets-matchers: /assets/**
thymeleaf:
prefix: classpath:/templates/
suffix: .html
mode: HTML5
encoding: UTF-8
cache: false
main:
allow-bean-definition-overriding: true
servlet:
multipart:
max-file-size: 1GB
max-request-size: 1GB
datasource:
druid:
url: jdbc:mysql://127.0.0.1:3306/db_knowledge_library?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&autoReconnect=true&failOverReadOnly=false&useSSL=false&serverTimezone=UTC&nullCatalogMeansCurrent=true
db-type: mysql
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
initial-size: 2
min-idle: 2
max-active: 5
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 10
filter:
commons-log:
connection-logger-name: stat,wall,log4j
stat:
log-slow-sql: true
slow-sql-millis: 2000
connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
use-global-data-source-stat: true
data:
mongodb:
uri: mongodb://city:city@192.168.0.156:27017/systemcity
# 安全
security:
oauth2:
oauth-server: http://192.168.0.155:7011/usercenter
oauth-logout: ${security.oauth2.oauth-server}/logout?redirect_uri=${server.url}
client:
client-id: 2eaaf87ab0c24b3f93faa3b01d1ed5f0
client-secret: QytidlVZRCtxNmQvLzY4WkdWcFRsdkw5Z09TQ0YvLytINW9scmlsTnl2VGxIdG9KZmEyTjJIRnI0dG1McEdEVA==
user-authorization-uri: ${security.oauth2.oauth-server}/oauth2_client/authorize
access-token-uri: ${security.oauth2.oauth-server}/oauth2_client/token
grant-type: authorization_code
resource:
jwt:
key-uri: ${security.oauth2.oauth-server}/oauth2_client/token_key
token-info-uri: ${security.oauth2.oauth-server}/oauth2_client/check_token
user-info-uri: ${security.oauth2.oauth-server}/user
authorization:
check-token-access: ${security.oauth2.oauth-server}/oauth2_client/token_key
api-path:
user-center: http://192.168.0.155:7011/usercenter
# 数据库
mybatis:
config-location: classpath:mybatis/mybatis-config.xml
mapper-locations: classpath*:mybatis/mapper/**/*.xml
# 文档
swagger:
base-package-list: ink.wgink,cn.com.tenlion
# 文件
file:
# 文件的保存路径
upload-path: D:/ideaWorkspace/uploadfiles/library
# 图片类型
image-types: png,jpg,jpeg,gif,blob
# 视频类型
video-types: mp4,rmvb
# 音频类型
audio-types: mp3,wmv,amr
# 文件类型
file-types: doc,docx,xls,xlsx,ppt,pptx,txt,zip,rar,apk,pdf
# 同时上传最大支持数
max-file-count: 6
# 图片输出压缩质量大于0默认0.4
image-output-quality: 0.4
# 媒体最大时长(单位:秒)
media-max-duration:
# 后台
backend:
video: 10
audio: 60
# 微信
wechat:
video: 10
audio: 60
# app
app:
video: 10
audio: 60
# 启用minIo
use-min-io: true
# 与use-min-io配套使用
min-io:
endpoint: http://192.168.0.156:19001
access-key: minioadmin
secret-key: minioadmin
# 日志
logging:
file:
name: D:/ideaWorkspace/logs/library/library-logs.log
level:
root: error
ink.wgink: debug
cn.com.tenlion: debug

View File

@ -0,0 +1,16 @@
<?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="cn.com.tenlion.knowledgelibrary.dao.deptyellowpage.IDeptYellowPageDao">
<select id="listCateGoryByDept" parameterType="map" resultType="map">
SELECT
category,
count(category) categoryCount
FROM
t_knowledge_lib
WHERE
source_dept = #{sourceDept}
GROUP BY category
</select>
</mapper>

View File

@ -0,0 +1,65 @@
<?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="cn.com.tenlion.knowledgelibrary.dao.keywordsrelation.IKeywordsRelationDao">
<resultMap id="keywordsRelationDTO" type="cn.com.tenlion.knowledgelibrary.pojo.dtos.keywordsrelation.KeywordsRelationDTO">
<result column="keywords_id" property="keywordsId"/>
<result column="title" property="title"/>
</resultMap>
<select id="list" parameterType="map" resultMap="keywordsRelationDTO">
SELECT
t1.keywords_id,
t1.title
FROM
t_keywords_relation t1
WHERE
t1.is_delete = '0'
</select>
<select id="get" parameterType="map" resultMap="keywordsRelationDTO">
SELECT
t1.keywords_id,
t1.title
FROM
t_keywords_relation t1
WHERE
t1.is_delete = '0'
<if test="keywordsId != null and keywordsId != ''">
AND t1.keywords_id = #{keywordsId}
</if>
</select>
<update id="update" parameterType="map">
UPDATE t_keywords_relation SET
<if test="title != null and title != ''">
title = #{title},
</if>
gmt_modified = #{gmtModified},
modifier = #{modifier}
WHERE
keywords_id = #{keywordsId}
</update>
<update id="remove" parameterType="map">
UPDATE
t_keywords_relation
SET
gmt_modified = #{gmtModified},
modifier = #{modifier},
is_delete = 1
WHERE
keywords_id IN
<foreach collection="keywordsIds" separator="," open="(" close=")" index="index">
#{keywordsIds[${index}]}
</foreach>
</update>
<insert id="save" parameterType="map">
INSERT INTO t_keywords_relation(
keywords_id, title, creator, gmt_create, modifier, gmt_modified, is_delete
) VALUES (
#{keywordsId}, #{title}, #{creator}, #{gmtCreate}, #{modifier}, #{gmtModified}, #{isDelete}
)
</insert>
</mapper>

View File

@ -0,0 +1,72 @@
<?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="cn.com.tenlion.knowledgelibrary.dao.knowledgeappraise.IKnowledgeAppraiseDao">
<insert id="saveAppraise" parameterType="map">
INSERT INTO t_knowledge_appraise (
knowledge_id, rate_level, opinion, user_id, appraise_name, appraise_time, publish_type, source, is_delete
) VALUES (
#{knowledgeId}, #{rateLevel}, #{opinion}, #{userId}, #{appraiseName}, #{appraiseTime}, #{publishType}, #{source}, #{isDelete}
)
</insert>
<select id="listAppraise" parameterType="map" resultType="map">
SELECT
t1.knowledge_id knowledgeId,
t1.rate_level rateLevel,
t1.opinion,
t1.user_id userId,
t1.appraise_name appraiseName,
t1.appraise_time appraiseTime,
t1.publish_type publishType,
t1.source
FROM
t_knowledge_appraise t1
WHERE
t1.is_delete = '0'
<if test="knowledgeId !=null and knowledgeId !=''">
AND t1.knowledge_id = #{knowledgeId}
</if>
<if test="knowledgeIds !=null and knowledgeIds !=''">
AND FIND_IN_SET(t1.knowledge_id, #{knowledgeIds})
</if>
</select>
<insert id="saveCollect" parameterType="map">
INSERT INTO t_knowledge_collect (
knowledge_id, user_id, collect_time
) VALUES (
#{knowledgeId}, #{userId}, #{collectTime}
)
</insert>
<update id="cancelCollect" parameterType="map">
DELETE FROM t_knowledge_collect
WHERE
user_id = #{userId}
AND knowledge_id = #{knowledgeId}
</update>
<select id="listCollect" parameterType="map" resultType="map">
SELECT
t1.knowledge_id knowledgeId,
t1.user_id userId,
t1.collect_time collectTime
FROM
t_knowledge_collect t1
WHERE
t1.user_id = #{userId}
</select>
<select id="getUserCollect" parameterType="map" resultType="map">
SELECT
t1.knowledge_id knowledgeId,
t1.user_id userId,
t1.collect_time collectTime
FROM
t_knowledge_collect t1
WHERE
t1.user_id = #{userId}
AND t1.knowledge_id = #{knowledgeId}
</select>
</mapper>

View File

@ -0,0 +1,167 @@
<?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="cn.com.tenlion.knowledgelibrary.dao.askforknowledge.IAskForKnowledgeDao">
<resultMap id="askForKnowledge" type="cn.com.tenlion.knowledgelibrary.pojo.dtos.askforknowledge.AskForKnowledgeDTO">
<result column="ask_id" property="askId"/>
<result column="ask_title" property="askTitle"/>
<result column="ask_description" property="askDescription"/>
<result column="org_id" property="orgId"/>
<result column="org_name" property="orgName"/>
<result column="dept_id" property="deptId"/>
<result column="dept_name" property="deptName"/>
<result column="user_id" property="userId"/>
<result column="user_name" property="userName"/>
<result column="ask_type" property="askType"/>
<result column="answer_title" property="answerTitle"/>
<result column="answer_summary" property="answerSummary"/>
<result column="answer_rich_content" property="answerRichContent"/>
<result column="pass_type" property="passType"/>
<result column="reason" property="reason"/>
<result column="gmt_create" property="gmtCreate"/>
<result column="gmt_modified" property="gmtModified"/>
</resultMap>
<!-- 新增 -->
<insert id="save" parameterType="map">
INSERT INTO t_ask_for_knowledge(
ask_id, ask_title, ask_description, org_id, org_name, dept_id, dept_name, user_id, user_name, ask_type,
answer_title, answer_summary, answer_rich_content, pass_type, reason, creator,
gmt_create, modifier, gmt_modified, is_delete
) VALUES(
#{askId}, #{askTitle}, #{askDescription}, #{orgId}, #{orgName}, #{deptId}, #{deptName}, #{userId}, #{userName}, #{askType},
#{answerTitle}, #{answerSummary}, #{answerRichContent}, #{passType}, #{reason}, #{creator},
#{gmtCreate}, #{modifier}, #{gmtModified}, '0'
)
</insert>
<select id="list" parameterType="map" resultMap="askForKnowledge">
SELECT
t1.ask_id,
t1.ask_title,
t1.ask_description,
t1.org_id,
t1.org_name,
t1.dept_id,
t1.dept_name,
t1.user_id,
t1.user_name,
t1.ask_type,
t1.answer_title,
t1.answer_summary,
t1.answer_rich_content,
t1.pass_type,
t1.reason,
t1.gmt_create,
t1.gmt_modified
FROM
t_ask_for_knowledge t1
WHERE
t1.is_delete = '0'
<if test="keywords != null and keywords != ''">
AND (
t1.ask_title LIKE CONCAT('%', #{keywords}, '%')
)
</if>
<if test="deptId != null and deptId != ''">
AND t1.dept_id = #{deptId}
</if>
<if test="askType != null and askType != ''">
AND FIND_IN_SET(t1.ask_type,#{askType})
</if>
<if test="passType != null and passType != ''">
AND FIND_IN_SET(t1.pass_type,#{passType})
</if>
</select>
<select id="get" parameterType="map" resultMap="askForKnowledge">
SELECT
t1.ask_id,
t1.ask_title,
t1.ask_description,
t1.org_id,
t1.org_name,
t1.dept_id,
t1.dept_name,
t1.user_id,
t1.user_name,
t1.ask_type,
t1.answer_title,
t1.answer_summary,
t1.answer_rich_content,
t1.pass_type,
t1.reason,
t1.gmt_create
FROM
t_ask_for_knowledge t1
WHERE
t1.is_delete = '0'
<if test="askId != null and askId != ''">
AND t1.ask_id = #{askId}
</if>
LIMIT 1
</select>
<update id="update" parameterType="map">
UPDATE t_ask_for_knowledge SET
<if test="askTitle != null and askTitle != ''">
ask_title = #{askTitle},
</if>
<if test="askDescription != null and askDescription != ''">
ask_description = #{askDescription},
</if>
<if test="orgId != null and orgId != ''">
org_id = #{orgId},
</if>
<if test="orgName != null and orgName != ''">
org_name = #{orgName},
</if>
<if test="deptId != null and deptId != ''">
dept_id = #{deptId},
</if>
<if test="deptName != null and deptName != ''">
dept_name = #{deptName},
</if>
<if test="userId != null and userId != ''">
user_id = #{userId},
</if>
<if test="userName != null and userName != ''">
user_name = #{userName},
</if>
<if test="askType != null and askType != ''">
ask_type = #{askType},
</if>
<if test="answerTitle != null and answerTitle != ''">
answer_title = #{answerTitle},
</if>
<if test="answerSummary != null and answerSummary != ''">
answer_summary = #{answerSummary},
</if>
<if test="answerRichContent != null and answerRichContent != ''">
answer_rich_content = #{answerRichContent},
</if>
<if test="passType != null and passType != ''">
pass_type = #{passType},
</if>
<if test="reason != null">
reason = #{reason},
</if>
modifier = #{modifier},
gmt_modified = #{gmtModified}
WHERE
ask_id = #{askId}
</update>
<!-- 删除 -->
<update id="remove" parameterType="map">
UPDATE
t_ask_for_knowledge
SET
is_delete = 1
WHERE
ask_id IN
<foreach collection="askIds" separator="," open="(" close=")" index="index">
#{askIds[${index}]}
</foreach>
</update>
</mapper>

View File

@ -0,0 +1,127 @@
<?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="cn.com.tenlion.knowledgelibrary.dao.knowledgecorrection.IKnowledgeCorrectionDao">
<resultMap id="knowledgeCorrectionDTO" type="cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgecorrection.KnowledgeCorrectionDTO">
<result column="id" property="id"/>
<result column="knowledge_id" property="knowledgeId"/>
<result column="title" property="title"/>
<result column="version" property="version"/>
<result column="correction_describe" property="correctionDescribe"/>
<result column="handle_type" property="handleType"/>
<result column="reason" property="reason"/>
<result column="source" property="source"/>
<result column="correction_user_name" property="correctionUserName"/>
<result column="correction_user_id" property="correctionUserId"/>
<result column="correction_time" property="correctionTime"/>
<result column="handle_time" property="handleTime"/>
<result column="handle_user_id" property="handleUserId"/>
</resultMap>
<insert id="saveCorrection" parameterType="map">
INSERT INTO t_knowledge_correction(
knowledge_id,title,version,correction_describe,handle_type,reason,source,correction_user_name,
correction_user_id,correction_time,handle_time,handle_user_id,is_delete
)
VALUES (
#{knowledgeId},#{title},#{version},#{correctionDescribe},#{handleType},#{reason},#{source},#{correctionUserName},
#{correctionUserId},#{correctionTime},#{handleTime},#{handleUserId},#{isDelete}
)
</insert>
<select id="listCorrection" parameterType="map" resultMap="knowledgeCorrectionDTO">
SELECT
t1.id,
t1.knowledge_id,
t1.title,
t1.version,
t1.correction_describe,
t1.handle_type,
t1.reason,
t1.source,
t1.correction_user_name,
t1.correction_user_id,
t1.correction_time,
t1.handle_time,
t1.handle_user_id
FROM
t_knowledge_correction t1
WHERE
t1.is_delete = '0'
</select>
<select id="listMyCorrection" parameterType="map" resultMap="knowledgeCorrectionDTO">
SELECT
t1.id,
t1.knowledge_id,
t1.title,
t1.version,
t1.correction_describe,
t1.handle_type,
t1.reason,
t1.source,
t1.correction_user_name,
t1.correction_user_id,
t1.correction_time,
t1.handle_time,
t1.handle_user_id
FROM
t_knowledge_correction t1
LEFT JOIN t_knowledge_lib t2 ON t1.knowledge_id = t2.knowledge_id
WHERE
t1.is_delete = '0'
AND t1.handle_type = '1'
AND t2.creator = #{userId}
</select>
<select id="getCorrection" parameterType="map" resultMap="knowledgeCorrectionDTO">
SELECT
t1.id,
t1.knowledge_id,
t1.title,
t1.version,
t1.correction_describe,
t1.handle_type,
t1.reason,
t1.source,
t1.correction_user_name,
t1.correction_user_id,
t1.correction_time,
t1.handle_time,
t1.handle_user_id
FROM
t_knowledge_correction t1
WHERE
t1.is_delete = '0'
AND t1.id = #{id}
</select>
<update id="updateCorrection" parameterType="map">
UPDATE t_knowledge_correction SET
<if test="handleType != null and handleType !=''">
handle_type = #{handleType},
</if>
<if test="reason != null and reason !=''">
reason = #{reason},
</if>
<if test="handleTime != null and handleTime !=''">
handle_time = #{handleTime},
</if>
<if test="handleUserId != null and handleUserId !=''">
handle_user_id = #{handleUserId},
</if>
id = #{id}
WHERE
id = #{id}
</update>
<insert id="updateCorrectionNotice" parameterType="map">
INSERT INTO t_knowledge_msg_push(
user_id, content, knowledge_id, gmt_create
)
VALUES (
#{userId}, #{content}, #{knowledgeId}, #{gmtCreate}
)
</insert>
</mapper>

View File

@ -0,0 +1,60 @@
<?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="cn.com.tenlion.knowledgelibrary.dao.knowledgelib.IKnowledgeHistoryDao">
<resultMap id="knowledgeHistoryDTO" type="cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgehistory.KnowledgeHistoryDTO">
<result column="knowledge_id" property="knowledgeId"/>
<result column="org_id" property="orgId"/>
<result column="org_name" property="orgName"/>
<result column="dept_id" property="deptId"/>
<result column="dept_name" property="deptName"/>
<result column="user_id" property="userId"/>
<result column="user_name" property="userName"/>
<result column="point_code" property="pointCode"/>
<result column="reason_msg" property="reasonMsg"/>
<result column="create_time" property="createTime"/>
</resultMap>
<!-- 新增 -->
<insert id="save" parameterType="map">
INSERT INTO t_knowledge_history(
knowledge_id, org_id, org_name, dept_id, dept_name, user_id,
user_name, point_code, reason_msg, create_time
) VALUES(
#{knowledgeId}, #{orgId}, #{orgName}, #{deptId}, #{deptName},
#{userId}, #{userName}, #{pointCode}, #{reasonMsg}, #{createTime}
)
</insert>
<!-- 列表 -->
<select id="listKnowledgeHistory" parameterType="map" resultMap="knowledgeHistoryDTO">
SELECT
t1.knowledge_id,
t1.org_id,
t1.org_name,
t1.dept_id,
t1.dept_name,
t1.user_id,
t1.user_name,
t1.point_code,
t1.reason_msg,
t1.create_time
FROM
t_knowledge_history t1
WHERE
t1.knowledge_id = #{knowledgeId}
<if test="pointCode != null and pointCode != ''">
AND FIND_IN_SET(t1.point_code,#{pointCode})
</if>
</select>
<!-- 保存知识下架推送记录 -->
<insert id="saveKnowledgePushMsg" parameterType="map">
INSERT INTO t_knowledge_msg_push(
user_id, content, knowledge_id, gmt_create
) VALUES(
#{userId}, #{content}, #{knowledgeId}, #{gmtCreate}
)
</insert>
</mapper>

View File

@ -0,0 +1,412 @@
<?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="cn.com.tenlion.knowledgelibrary.dao.knowledgelib.IKnowledgeLibDao">
<resultMap id="knowledgeLibDTO" type="cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgelib.KnowledgeLibDTO">
<result column="knowledge_id" property="knowledgeId"/>
<result column="version" property="version"/>
<result column="title" property="title"/>
<result column="summary" property="summary"/>
<result column="rich_content" property="richContent"/>
<result column="effective_time" property="effectiveTime"/>
<result column="due_time" property="dueTime"/>
<result column="category" property="category"/>
<result column="keyword_relation" property="keywordRelation"/>
<result column="knowledge_relation" property="knowledgeRelation"/>
<result column="work_relation" property="workRelation"/>
<result column="source" property="source"/>
<result column="source_org" property="sourceOrg"/>
<result column="source_dept" property="sourceDept"/>
<result column="source_dept_name" property="sourceDeptName"/>
<result column="source_dept_names" property="sourceDeptNames"/>
<result column="source_user" property="sourceUser"/>
<result column="source_user_name" property="sourceUserName"/>
<result column="publish_type" property="publishType"/>
<result column="publish_reason" property="publishReason"/>
<result column="pass_type" property="passType"/>
<result column="pass_limit_date" property="passLimitDate"/>
<result column="pass_opinion" property="passOpinion"/>
<result column="reform_type" property="reformType"/>
<result column="creator" property="creator"/>
<result column="gmt_create" property="gmtCreate"/>
<result column="modifier" property="modifier"/>
<result column="gmt_modified" property="gmtModified"/>
<result column="is_delete" property="isDelete"/>
</resultMap>
<!-- 知识上报列表 -->
<select id="listReport" parameterType="map" resultMap="knowledgeLibDTO">
SELECT
t1.knowledge_id, t1.version, t1.title, t1.summary, t1.rich_content, t1.category,
t1.keyword_relation, t1.knowledge_relation, t1.work_relation, t1.source, t1.source_org,
t1.source_dept, t1.source_dept_name, t1.source_dept_names, t1.source_user, t1.source_user_name, t1.pass_type, t1.pass_limit_date, t1.pass_opinion,
t1.creator, t1.gmt_create, t1.modifier, t1.gmt_modified, t1.is_delete
FROM
t_knowledge_report t1
WHERE
t1.is_delete = 0
<if test="keywords != null and keywords != ''">
AND (
t1.title LIKE CONCAT('%', #{keywords}, '%')
OR
t1.summary LIKE CONCAT('%', #{keywords}, '%')
)
</if>
<!-- 上报审核状态-->
<if test="passType != null">
AND t1.pass_type = #{passType}
</if>
<!-- 来源部门-->
<if test="sourceDept != null and sourceDept != ''">
AND t1.source_dept = #{sourceDept}
</if>
</select>
<!-- 知识上报保存 -->
<insert id="saveReport" parameterType="map">
INSERT INTO t_knowledge_report(
knowledge_id, title, summary, rich_content, category, keyword_relation, knowledge_relation,
work_relation, source, source_org, source_dept, source_dept_name, source_dept_names, source_user, source_user_name, pass_type,
pass_limit_date, creator, gmt_create, modifier, gmt_modified, is_delete
) VALUES(
#{knowledgeId}, #{title}, #{summary}, #{richContent}, #{category}, #{keywordRelation},
#{knowledgeRelation}, #{workRelation}, #{source}, #{sourceOrg}, #{sourceDept}, #{sourceDeptName}, #{sourceDeptNames}, #{sourceUser}, #{sourceUserName},
#{passType}, #{passLimitDate}, #{creator}, #{gmtCreate}, #{modifier}, #{gmtModified}, #{isDelete}
)
</insert>
<!-- 知识上报修改 -->
<update id="updateReport" parameterType="map">
UPDATE t_knowledge_report SET
<if test="title != null and title != ''">
title = #{title},
</if>
<if test="summary != null and summary != ''">
summary = #{summary},
</if>
<if test="richContent != null and richContent != ''">
rich_content = #{richContent},
</if>
<if test="category != null and category != ''">
category = #{category},
</if>
<if test="keywordRelation != null and keywordRelation != ''">
keyword_relation = #{keywordRelation},
</if>
<if test="knowledgeRelation != null and knowledgeRelation != ''">
knowledge_relation = #{knowledgeRelation},
</if>
<if test="workRelation != null and workRelation != ''">
work_relation = #{workRelation},
</if>
<if test="source != null and source != ''">
source = #{source},
</if>
<if test="sourceOrg != null and sourceOrg != ''">
source_org = #{sourceOrg},
</if>
<if test="sourceDept != null and sourceDept != ''">
source_dept = #{sourceDept},
</if>
<if test="sourceDeptName != null and sourceDeptName != ''">
source_dept_name = #{sourceDeptName},
</if>
<if test="sourceDeptNames != null and sourceDeptNames != ''">
source_dept_names = #{sourceDeptNames},
</if>
<if test="sourceUser != null and sourceUser != ''">
source_user = #{sourceUser},
</if>
<if test="sourceUserName != null and sourceUserName != ''">
source_user_name = #{sourceUserName},
</if>
<if test="passType != null">
pass_type = #{passType},
</if>
<if test="passLimitDate != null">
pass_limit_date = #{passLimitDate},
</if>
<if test="passOpinion != null">
pass_opinion = #{passOpinion},
</if>
gmt_modified = #{gmtModified},
modifier = #{modifier}
WHERE
knowledge_id = #{knowledgeId}
</update>
<!-- 知识上报详情 -->
<select id="getReport" parameterType="map" resultMap="knowledgeLibDTO">
SELECT
t1.knowledge_id, t1.version, t1.title, t1.summary, t1.rich_content, t1.category,
t1.keyword_relation, t1.knowledge_relation, t1.work_relation, t1.source, t1.source_org,
t1.source_dept, source_dept_name, source_dept_names, t1.source_user, t1.source_user_name, t1.pass_type, t1.pass_limit_date, t1.pass_opinion,
t1.creator, t1.gmt_create, t1.modifier, t1.gmt_modified, t1.is_delete
FROM
t_knowledge_report t1
WHERE
t1.is_delete = 0
<if test="knowledgeId != null and knowledgeId != ''">
AND t1.knowledge_id = #{knowledgeId}
</if>
LIMIT 1
</select>
<!-- 知识上报删除 -->
<update id="removeReport" parameterType="map">
UPDATE
t_knowledge_report
SET
is_delete = 1
WHERE
knowledge_id IN
<foreach collection="knowledgeIds" separator="," open="(" close=")" index="index">
#{knowledgeIds[${index}]}
</foreach>
</update>
<update id="updateReportPass" parameterType="map">
UPDATE
t_knowledge_report
SET
pass_type = #{passType},
<if test="passLimitDate !=null">
pass_limit_date = #{passLimitDate},
</if>
<if test="passOpinion !=null">
pass_opinion = #{passOpinion},
</if>
is_delete = '0'
WHERE
knowledge_id IN
<foreach collection="knowledgeIds" separator="," open="(" close=")" index="index">
#{knowledgeIds[${index}]}
</foreach>
</update>
<update id="updatePassReport" parameterType="map">
UPDATE
t_knowledge_report
SET
pass_type = #{passType},
pass_opinion = #{passOpinion}
WHERE
knowledge_id = #{knowledgeId}
</update>
<!-- 知识库列表 -->
<select id="list" parameterType="map" resultMap="knowledgeLibDTO">
SELECT
t1.knowledge_id,
t1.version,
t1.title,
t1.summary,
t1.rich_content,
t1.effective_time,
t1.due_time,
t1.category,
t1.keyword_relation,
t1.knowledge_relation,
t1.work_relation,
t1.source,
t1.source_org,
t1.source_dept,
t1.source_dept_name,
t1.source_dept_names,
t1.source_user,
t1.source_user_name,
t1.publish_type,
t1.publish_reason,
t1.creator,
t1.gmt_create,
t1.modifier,
t1.gmt_modified,
t1.is_delete
FROM
t_knowledge_lib t1
WHERE
t1.is_delete = 0
<if test="publishType != null and publishType != ''">
AND t1.publish_type = #{publishType}
</if>
<if test="sourceDept != null and sourceDept != ''">
AND t1.source_dept = #{sourceDept}
</if>
<if test="category != null and category != ''">
AND t1.category = #{category}
</if>
<if test="keywords != null and keywords != ''">
AND (
t1.title LIKE CONCAT('%', #{keywords}, '%')
OR
t1.summary LIKE CONCAT('%', #{keywords}, '%')
OR
t1.rich_content LIKE CONCAT('%', #{keywords}, '%')
)
</if>
<if test="knowledgeIds != null and knowledgeIds != ''">
AND FIND_IN_SET(t1.knowledge_id,#{knowledgeIds})
</if>
<if test="startTime != null and startTime != ''">
AND LEFT(t1.gmt_create, 10) <![CDATA[ >= ]]> #{startTime}
</if>
<if test="endTime != null and endTime != ''">
AND LEFT(t1.gmt_create, 10) <![CDATA[ <= ]]> #{endTime}
</if>
</select>
<!-- 知识库新增 -->
<insert id="save" parameterType="map">
INSERT INTO t_knowledge_lib(
knowledge_id, version, title, summary, rich_content, effective_time, due_time, category, keyword_relation,
knowledge_relation, work_relation, source, source_org, source_dept, source_dept_name, source_dept_names, source_user, source_user_name,
publish_type, publish_reason, creator, gmt_create, modifier, gmt_modified, is_delete
) VALUES(
#{knowledgeId}, #{version}, #{title}, #{summary}, #{richContent}, #{effectiveTime}, #{dueTime},
#{category}, #{keywordRelation}, #{knowledgeRelation}, #{workRelation}, #{source}, #{sourceOrg},
#{sourceDept}, #{sourceDeptName}, #{sourceDeptNames}, #{sourceUser}, #{sourceUserName}, #{publishType}, #{publishReason},
#{creator}, #{gmtCreate}, #{modifier}, #{gmtModified}, #{isDelete}
)
</insert>
<!-- 修改 -->
<update id="update" parameterType="map">
UPDATE t_knowledge_lib SET
<if test="title != null and title != ''">
title = #{title},
</if>
<if test="version != null and version != ''">
version = #{version},
</if>
<if test="summary != null and summary != ''">
summary = #{summary},
</if>
<if test="richContent != null and richContent != ''">
rich_content = #{richContent},
</if>
<if test="effectiveTime != null">
effective_time = #{effectiveTime},
</if>
<if test="dueTime != null">
due_time = #{dueTime},
</if>
<if test="category != null and category != ''">
category = #{category},
</if>
<if test="keywordRelation != null and keywordRelation != ''">
keyword_relation = #{keywordRelation},
</if>
<if test="knowledgeRelation != null and knowledgeRelation != ''">
knowledge_relation = #{knowledgeRelation},
</if>
<if test="workRelation != null and workRelation != ''">
work_relation = #{workRelation},
</if>
<if test="source != null and source != ''">
source = #{source},
</if>
<if test="sourceOrg != null and sourceOrg != ''">
source_org = #{sourceOrg},
</if>
<if test="sourceDept != null and sourceDept != ''">
source_dept = #{sourceDept},
</if>
<if test="sourceDeptName != null and sourceDeptName != ''">
source_dept_name = #{sourceDeptName},
</if>
<if test="sourceDeptNames != null and sourceDeptNames != ''">
source_dept_names = #{sourceDeptNames},
</if>
<if test="sourceUser != null and sourceUser != ''">
source_user = #{sourceUser},
</if>
<if test="sourceUserName != null and sourceUserName != ''">
source_user_name = #{sourceUserName},
</if>
<if test="publishType != null and publishType != ''">
publish_type = #{publishType},
</if>
<if test="publishReason != null">
publish_reason = #{publishReason},
</if>
<if test="passType != null and passType != ''">
pass_type = #{passType},
</if>
gmt_modified = #{gmtModified},
modifier = #{modifier}
WHERE
knowledge_id = #{knowledgeId}
</update>
<!-- 详情 -->
<select id="get" parameterType="map" resultMap="knowledgeLibDTO">
SELECT
t1.knowledge_id,
t1.version,
t1.title,
t1.summary,
t1.rich_content,
t1.effective_time,
t1.due_time,
t1.category,
t1.keyword_relation,
t1.knowledge_relation,
t1.work_relation,
t1.source,
t1.source_org,
t1.source_dept,
t1.source_dept_name,
t1.source_dept_names,
t1.source_user,
t1.source_user_name,
t1.publish_type,
t1.publish_reason,
t1.creator
FROM
t_knowledge_lib t1
WHERE
t1.is_delete = 0
<if test="knowledgeId != null and knowledgeId != ''">
AND t1.knowledge_id = #{knowledgeId}
</if>
LIMIT 1
</select>
<!-- 删除 -->
<update id="remove" parameterType="map">
UPDATE
t_knowledge_lib
SET
gmt_modified = #{gmtModified},
modifier = #{modifier},
is_delete = 1
WHERE
knowledge_id IN
<foreach collection="knowledgeIds" separator="," open="(" close=")" index="index">
#{knowledgeIds[${index}]}
</foreach>
</update>
<!-- 删除(物理) -->
<update id="delete" parameterType="map">
DELETE FROM
t_knowledge_lib
WHERE
knowledge_id IN
<foreach collection="knowledgeIds" separator="," open="(" close=")" index="index">
#{knowledgeIds[${index}]}
</foreach>
</update>
<!-- 统计 -->
<select id="count" parameterType="map" resultType="Integer">
SELECT
COUNT(*)
FROM
t_knowledge_lib t1
WHERE
t1.is_delete = 0
</select>
</mapper>

View File

@ -0,0 +1,31 @@
<?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="cn.com.tenlion.knowledgelibrary.dao.knowledgepageviews.IKnowledgePageViewsDao">
<insert id="saveKnowledgePageViews" parameterType="map">
INSERT INTO t_knowledge_page_views (
knowledge_id, user_id, user_name, view_time, source, is_delete
) VALUES (
#{knowledgeId}, #{userId}, #{userName}, #{viewTime}, #{source}, '0'
)
</insert>
<select id="getKnowledgePageViewsCount" parameterType="map" resultType="integer">
SELECT
COUNT(*)
FROM
t_knowledge_page_views
WHERE
knowledge_id = #{knowledgeId}
</select>
<select id="list" parameterType="map" resultType="map">
SELECT
*
FROM
t_knowledge_page_views
WHERE
FIND_IN_SET(knowledge_id, #{knowledgeIds})
</select>
</mapper>

View File

@ -0,0 +1,132 @@
<?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="cn.com.tenlion.knowledgelibrary.dao.knowledgeversion.IKnowledgeVersionDao">
<resultMap id="knowledgeVersionDTO" type="cn.com.tenlion.knowledgelibrary.pojo.dtos.knowledgeversion.KnowledgeVersionDTO">
<result column="id" property="id"/>
<result column="knowledge_id" property="knowledgeId"/>
<result column="version" property="version"/>
<result column="title" property="title"/>
<result column="summary" property="summary"/>
<result column="rich_content" property="richContent"/>
<result column="category" property="category"/>
<result column="keyword_relation" property="keywordRelation"/>
<result column="knowledge_relation" property="knowledgeRelation"/>
<result column="work_relation" property="workRelation"/>
<result column="source" property="source"/>
<result column="source_org" property="sourceOrg"/>
<result column="source_dept" property="sourceDept"/>
<result column="source_user" property="sourceUser"/>
<result column="source_user_name" property="sourceUserName"/>
<result column="pass_type" property="passType"/>
<result column="creator" property="creator"/>
<result column="gmt_create" property="gmtCreate"/>
<result column="modifier" property="modifier"/>
<result column="gmt_modified" property="gmtModified"/>
</resultMap>
<select id="listNeedReformKnowledge" parameterType="map" resultType="map">
SELECT
knowledge_id knowledgeId,
reform_user_id reformUserId,
reform_dept reformDept,
reform_reason reformReason,
creator
FROM
t_reform_knowledge
</select>
<update id="changeKnowledgeReformType" parameterType="map">
UPDATE t_knowledge_lib SET
reform_type = #{reformType}
WHERE
knowledge_id = #{knowledgeId}
</update>
<insert id="saveReform" parameterType="map">
INSERT INTO t_reform_knowledge (
knowledge_id, reform_user_id, reform_dept, reform_reason, creator
) VALUES (
#{knowledgeId}, #{reformUserId}, #{reformDept}, #{reformReason}, #{creator}
)
</insert>
<!-- 保存知识修改待审核记录 -->
<insert id="saveKnowledgeVersion" parameterType="map">
INSERT INTO t_knowledge_lib_version_pass(
knowledge_id, version, title, summary, rich_content, category, keyword_relation, knowledge_relation,
work_relation, source, source_org, source_dept, source_user, source_user_name, pass_type,
creator, gmt_create, modifier, gmt_modified, is_delete
) VALUES(
#{knowledgeId}, #{version}, #{title}, #{summary}, #{richContent}, #{category}, #{keywordRelation},
#{knowledgeRelation}, #{workRelation}, #{source}, #{sourceOrg}, #{sourceDept}, #{sourceUser}, #{sourceUserName},
#{passType}, #{creator}, #{gmtCreate}, #{modifier}, #{gmtModified}, #{isDelete}
)
</insert>
<!-- 知识版本更新列表 -->
<select id="list" parameterType="map" resultMap="knowledgeVersionDTO">
SELECT
t1.id, t1.knowledge_id, t1.version, t1.title, t1.summary, t1.rich_content, t1.category,
t1.keyword_relation, t1.knowledge_relation, t1.work_relation, t1.source, t1.source_org,
t1.source_dept, t1.source_user, t1.source_user_name, t1.pass_type,
t1.creator, t1.gmt_create, t1.modifier, t1.gmt_modified, t1.is_delete
FROM
t_knowledge_lib_version_pass t1
WHERE
t1.is_delete = 0
<if test="keywords != null and keywords != ''">
AND (
t1.title LIKE CONCAT('%', #{keywords}, '%')
OR
t1.summary LIKE CONCAT('%', #{keywords}, '%')
OR
t1.rich_content LIKE CONCAT('%', #{keywords}, '%')
)
</if>
<!-- 版本审核状态-->
<if test="passType != null">
AND t1.pass_type = #{passType}
</if>
</select>
<select id="getVersion" parameterType="map" resultMap="knowledgeVersionDTO">
SELECT
t1.id, t1.knowledge_id, t1.version, t1.title, t1.summary, t1.rich_content, t1.category,
t1.keyword_relation, t1.knowledge_relation, t1.work_relation, t1.source, t1.source_org,
t1.source_dept, t1.source_user, t1.source_user_name, t1.pass_type,
t1.creator, t1.gmt_create, t1.modifier, t1.gmt_modified, t1.is_delete
FROM
t_knowledge_lib_version_pass t1
WHERE
t1.is_delete = 0
AND t1.id = #{id}
</select>
<update id="updatePassVersion" parameterType="map">
UPDATE t_knowledge_lib_version_pass SET
pass_type = #{passType}
WHERE
knowledge_id = #{knowledgeId}
</update>
<!-- 向历史版本表中添加知识 -->
<insert id="saveKnowledgeToHistory" parameterType="map">
INSERT INTO t_knowledge_lib_history(
knowledge_id, version, title, summary, rich_content, effective_time, due_time, category, keyword_relation,
knowledge_relation, work_relation, source, source_org, source_dept, source_user, source_user_name,
publish_type, publish_reason, creator, gmt_create, modifier, gmt_modified, is_delete
) VALUES(
#{knowledgeId}, #{version}, #{title}, #{summary}, #{richContent}, #{effectiveTime}, #{dueTime},
#{category}, #{keywordRelation}, #{knowledgeRelation}, #{workRelation}, #{source}, #{sourceOrg},
#{sourceDept}, #{sourceUser}, #{sourceUserName}, #{publishType}, #{publishReason},
#{creator}, #{gmtCreate}, #{modifier}, #{gmtModified}, #{isDelete}
)
</insert>
<update id="removePassVersion" parameterType="string">
DELETE FROM t_knowledge_lib_version_pass
WHERE
id = #{id}
</update>
</mapper>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
<typeAliases>
<typeAlias type="java.util.Map" alias="map"/>
<typeAlias type="java.util.List" alias="list"/>
</typeAliases>
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
</configuration>

View File

@ -0,0 +1,50 @@
body .dialog-box {
background: rgba(255, 255, 255, 0.9);
border-radius: 5px;
}
body .dialog-box-msg {
background: rgba(0, 0, 0, 0.6);
border-radius: 5px;
color: #FFF;
min-width: 10px !important;
}
body .dialog-box .layui-layer-title {
height: 30px;
line-height: 30px;
background: #2e323e;
color: #fff;
border: none;
border-radius: 5px 5px 0 0;
}
body .dialog-box .layui-layer-btn {
border-top: 1px solid #E9E7E7
}
body .dialog-box .layui-layer-btn a {
background: #333;
color: #FFF;
}
body .dialog-box .layui-layer-btn .layui-layer-btn1 {
background: #999;
color: #FFF;
}
body .dialog-box .layui-layer-setwin {
top: 8px;
}
body .dialog-box .layui-layer-setwin .layui-layer-close1 {
background-position: -156px -38px;
}
body .dialog-box-msg .layui-layer-content {
padding: 10px 20px;
}
body .dialog-box-msg .layui-layer-padding {
padding: 20px 20px 20px 55px;
text-align: left;
}

View File

@ -0,0 +1,105 @@
* {
margin: 0;
padding: 0;
}
body {
background: transparent;
height: 100%;
}
img {
border: none;
}
#supersized-loader {
position: absolute;
top: 50%;
left: 50%;
z-index: 0;
width: 60px;
height: 60px;
margin: -30px 0 0 -30px;
text-indent: -999em;
background: url(../images/progress.gif) no-repeat center center;
}
#supersized {
display: block;
position: fixed;
left: 0;
top: 0;
overflow: hidden;
z-index: -999;
height: 100%;
width: 100%;
}
#supersized img {
width: auto;
height: auto;
position: relative;
display: none;
outline: none;
border: none;
}
#supersized.speed img {
-ms-interpolation-mode: nearest-neighbor;
image-rendering: -moz-crisp-edges;
}
/*Speed*/
#supersized.quality img {
-ms-interpolation-mode: bicubic;
image-rendering: optimizeQuality;
}
/*Quality*/
#supersized li {
display: block;
list-style: none;
z-index: -30;
position: fixed;
overflow: hidden;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #111;
}
#supersized a {
width: 100%;
height: 100%;
display: block;
}
#supersized li.prevslide {
z-index: -20;
}
#supersized li.activeslide {
z-index: -10;
}
#supersized li.image-loading {
background: #111 url(../images/progress.gif) no-repeat center center;
width: 100%;
height: 100%;
}
#supersized li.image-loading img {
visibility: hidden;
}
#supersized li.prevslide img, #supersized li.activeslide img {
display: inline;
}
#supersized img {
max-width: none !important
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -0,0 +1,7 @@
I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project,
Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome,
comprehensive icon sets or copy and paste your own.
Please. Check it out.
-Dave Gandy

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 434 KiB

View File

@ -0,0 +1,34 @@
// Animated Icons
// --------------------------
.@{fa-css-prefix}-spin {
-webkit-animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear;
}
.@{fa-css-prefix}-pulse {
-webkit-animation: fa-spin 1s infinite steps(8);
animation: fa-spin 1s infinite steps(8);
}
@-webkit-keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}

View File

@ -0,0 +1,25 @@
// Bordered & Pulled
// -------------------------
.@{fa-css-prefix}-border {
padding: .2em .25em .15em;
border: solid .08em @fa-border-color;
border-radius: .1em;
}
.@{fa-css-prefix}-pull-left { float: left; }
.@{fa-css-prefix}-pull-right { float: right; }
.@{fa-css-prefix} {
&.@{fa-css-prefix}-pull-left { margin-right: .3em; }
&.@{fa-css-prefix}-pull-right { margin-left: .3em; }
}
/* Deprecated as of 4.4.0 */
.pull-right { float: right; }
.pull-left { float: left; }
.@{fa-css-prefix} {
&.pull-left { margin-right: .3em; }
&.pull-right { margin-left: .3em; }
}

View File

@ -0,0 +1,12 @@
// Base Class Definition
// -------------------------
.@{fa-css-prefix} {
display: inline-block;
font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
font-size: inherit; // can't have font-size inherit on line above, so need to override
text-rendering: auto; // optimizelegibility throws things off #1094
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}

View File

@ -0,0 +1,6 @@
// Fixed Width Icons
// -------------------------
.@{fa-css-prefix}-fw {
width: (18em / 14);
text-align: center;
}

View File

@ -0,0 +1,18 @@
/*!
* Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/
@import "variables.less";
@import "mixins.less";
@import "path.less";
@import "core.less";
@import "larger.less";
@import "fixed-width.less";
@import "list.less";
@import "bordered-pulled.less";
@import "animated.less";
@import "rotated-flipped.less";
@import "stacked.less";
@import "icons.less";
@import "screen-reader.less";

View File

@ -0,0 +1,789 @@
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
.@{fa-css-prefix}-glass:before { content: @fa-var-glass; }
.@{fa-css-prefix}-music:before { content: @fa-var-music; }
.@{fa-css-prefix}-search:before { content: @fa-var-search; }
.@{fa-css-prefix}-envelope-o:before { content: @fa-var-envelope-o; }
.@{fa-css-prefix}-heart:before { content: @fa-var-heart; }
.@{fa-css-prefix}-star:before { content: @fa-var-star; }
.@{fa-css-prefix}-star-o:before { content: @fa-var-star-o; }
.@{fa-css-prefix}-user:before { content: @fa-var-user; }
.@{fa-css-prefix}-film:before { content: @fa-var-film; }
.@{fa-css-prefix}-th-large:before { content: @fa-var-th-large; }
.@{fa-css-prefix}-th:before { content: @fa-var-th; }
.@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; }
.@{fa-css-prefix}-check:before { content: @fa-var-check; }
.@{fa-css-prefix}-remove:before,
.@{fa-css-prefix}-close:before,
.@{fa-css-prefix}-times:before { content: @fa-var-times; }
.@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; }
.@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; }
.@{fa-css-prefix}-power-off:before { content: @fa-var-power-off; }
.@{fa-css-prefix}-signal:before { content: @fa-var-signal; }
.@{fa-css-prefix}-gear:before,
.@{fa-css-prefix}-cog:before { content: @fa-var-cog; }
.@{fa-css-prefix}-trash-o:before { content: @fa-var-trash-o; }
.@{fa-css-prefix}-home:before { content: @fa-var-home; }
.@{fa-css-prefix}-file-o:before { content: @fa-var-file-o; }
.@{fa-css-prefix}-clock-o:before { content: @fa-var-clock-o; }
.@{fa-css-prefix}-road:before { content: @fa-var-road; }
.@{fa-css-prefix}-download:before { content: @fa-var-download; }
.@{fa-css-prefix}-arrow-circle-o-down:before { content: @fa-var-arrow-circle-o-down; }
.@{fa-css-prefix}-arrow-circle-o-up:before { content: @fa-var-arrow-circle-o-up; }
.@{fa-css-prefix}-inbox:before { content: @fa-var-inbox; }
.@{fa-css-prefix}-play-circle-o:before { content: @fa-var-play-circle-o; }
.@{fa-css-prefix}-rotate-right:before,
.@{fa-css-prefix}-repeat:before { content: @fa-var-repeat; }
.@{fa-css-prefix}-refresh:before { content: @fa-var-refresh; }
.@{fa-css-prefix}-list-alt:before { content: @fa-var-list-alt; }
.@{fa-css-prefix}-lock:before { content: @fa-var-lock; }
.@{fa-css-prefix}-flag:before { content: @fa-var-flag; }
.@{fa-css-prefix}-headphones:before { content: @fa-var-headphones; }
.@{fa-css-prefix}-volume-off:before { content: @fa-var-volume-off; }
.@{fa-css-prefix}-volume-down:before { content: @fa-var-volume-down; }
.@{fa-css-prefix}-volume-up:before { content: @fa-var-volume-up; }
.@{fa-css-prefix}-qrcode:before { content: @fa-var-qrcode; }
.@{fa-css-prefix}-barcode:before { content: @fa-var-barcode; }
.@{fa-css-prefix}-tag:before { content: @fa-var-tag; }
.@{fa-css-prefix}-tags:before { content: @fa-var-tags; }
.@{fa-css-prefix}-book:before { content: @fa-var-book; }
.@{fa-css-prefix}-bookmark:before { content: @fa-var-bookmark; }
.@{fa-css-prefix}-print:before { content: @fa-var-print; }
.@{fa-css-prefix}-camera:before { content: @fa-var-camera; }
.@{fa-css-prefix}-font:before { content: @fa-var-font; }
.@{fa-css-prefix}-bold:before { content: @fa-var-bold; }
.@{fa-css-prefix}-italic:before { content: @fa-var-italic; }
.@{fa-css-prefix}-text-height:before { content: @fa-var-text-height; }
.@{fa-css-prefix}-text-width:before { content: @fa-var-text-width; }
.@{fa-css-prefix}-align-left:before { content: @fa-var-align-left; }
.@{fa-css-prefix}-align-center:before { content: @fa-var-align-center; }
.@{fa-css-prefix}-align-right:before { content: @fa-var-align-right; }
.@{fa-css-prefix}-align-justify:before { content: @fa-var-align-justify; }
.@{fa-css-prefix}-list:before { content: @fa-var-list; }
.@{fa-css-prefix}-dedent:before,
.@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; }
.@{fa-css-prefix}-indent:before { content: @fa-var-indent; }
.@{fa-css-prefix}-video-camera:before { content: @fa-var-video-camera; }
.@{fa-css-prefix}-photo:before,
.@{fa-css-prefix}-image:before,
.@{fa-css-prefix}-picture-o:before { content: @fa-var-picture-o; }
.@{fa-css-prefix}-pencil:before { content: @fa-var-pencil; }
.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; }
.@{fa-css-prefix}-adjust:before { content: @fa-var-adjust; }
.@{fa-css-prefix}-tint:before { content: @fa-var-tint; }
.@{fa-css-prefix}-edit:before,
.@{fa-css-prefix}-pencil-square-o:before { content: @fa-var-pencil-square-o; }
.@{fa-css-prefix}-share-square-o:before { content: @fa-var-share-square-o; }
.@{fa-css-prefix}-check-square-o:before { content: @fa-var-check-square-o; }
.@{fa-css-prefix}-arrows:before { content: @fa-var-arrows; }
.@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; }
.@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; }
.@{fa-css-prefix}-backward:before { content: @fa-var-backward; }
.@{fa-css-prefix}-play:before { content: @fa-var-play; }
.@{fa-css-prefix}-pause:before { content: @fa-var-pause; }
.@{fa-css-prefix}-stop:before { content: @fa-var-stop; }
.@{fa-css-prefix}-forward:before { content: @fa-var-forward; }
.@{fa-css-prefix}-fast-forward:before { content: @fa-var-fast-forward; }
.@{fa-css-prefix}-step-forward:before { content: @fa-var-step-forward; }
.@{fa-css-prefix}-eject:before { content: @fa-var-eject; }
.@{fa-css-prefix}-chevron-left:before { content: @fa-var-chevron-left; }
.@{fa-css-prefix}-chevron-right:before { content: @fa-var-chevron-right; }
.@{fa-css-prefix}-plus-circle:before { content: @fa-var-plus-circle; }
.@{fa-css-prefix}-minus-circle:before { content: @fa-var-minus-circle; }
.@{fa-css-prefix}-times-circle:before { content: @fa-var-times-circle; }
.@{fa-css-prefix}-check-circle:before { content: @fa-var-check-circle; }
.@{fa-css-prefix}-question-circle:before { content: @fa-var-question-circle; }
.@{fa-css-prefix}-info-circle:before { content: @fa-var-info-circle; }
.@{fa-css-prefix}-crosshairs:before { content: @fa-var-crosshairs; }
.@{fa-css-prefix}-times-circle-o:before { content: @fa-var-times-circle-o; }
.@{fa-css-prefix}-check-circle-o:before { content: @fa-var-check-circle-o; }
.@{fa-css-prefix}-ban:before { content: @fa-var-ban; }
.@{fa-css-prefix}-arrow-left:before { content: @fa-var-arrow-left; }
.@{fa-css-prefix}-arrow-right:before { content: @fa-var-arrow-right; }
.@{fa-css-prefix}-arrow-up:before { content: @fa-var-arrow-up; }
.@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; }
.@{fa-css-prefix}-mail-forward:before,
.@{fa-css-prefix}-share:before { content: @fa-var-share; }
.@{fa-css-prefix}-expand:before { content: @fa-var-expand; }
.@{fa-css-prefix}-compress:before { content: @fa-var-compress; }
.@{fa-css-prefix}-plus:before { content: @fa-var-plus; }
.@{fa-css-prefix}-minus:before { content: @fa-var-minus; }
.@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; }
.@{fa-css-prefix}-exclamation-circle:before { content: @fa-var-exclamation-circle; }
.@{fa-css-prefix}-gift:before { content: @fa-var-gift; }
.@{fa-css-prefix}-leaf:before { content: @fa-var-leaf; }
.@{fa-css-prefix}-fire:before { content: @fa-var-fire; }
.@{fa-css-prefix}-eye:before { content: @fa-var-eye; }
.@{fa-css-prefix}-eye-slash:before { content: @fa-var-eye-slash; }
.@{fa-css-prefix}-warning:before,
.@{fa-css-prefix}-exclamation-triangle:before { content: @fa-var-exclamation-triangle; }
.@{fa-css-prefix}-plane:before { content: @fa-var-plane; }
.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar; }
.@{fa-css-prefix}-random:before { content: @fa-var-random; }
.@{fa-css-prefix}-comment:before { content: @fa-var-comment; }
.@{fa-css-prefix}-magnet:before { content: @fa-var-magnet; }
.@{fa-css-prefix}-chevron-up:before { content: @fa-var-chevron-up; }
.@{fa-css-prefix}-chevron-down:before { content: @fa-var-chevron-down; }
.@{fa-css-prefix}-retweet:before { content: @fa-var-retweet; }
.@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; }
.@{fa-css-prefix}-folder:before { content: @fa-var-folder; }
.@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; }
.@{fa-css-prefix}-arrows-v:before { content: @fa-var-arrows-v; }
.@{fa-css-prefix}-arrows-h:before { content: @fa-var-arrows-h; }
.@{fa-css-prefix}-bar-chart-o:before,
.@{fa-css-prefix}-bar-chart:before { content: @fa-var-bar-chart; }
.@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; }
.@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; }
.@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; }
.@{fa-css-prefix}-key:before { content: @fa-var-key; }
.@{fa-css-prefix}-gears:before,
.@{fa-css-prefix}-cogs:before { content: @fa-var-cogs; }
.@{fa-css-prefix}-comments:before { content: @fa-var-comments; }
.@{fa-css-prefix}-thumbs-o-up:before { content: @fa-var-thumbs-o-up; }
.@{fa-css-prefix}-thumbs-o-down:before { content: @fa-var-thumbs-o-down; }
.@{fa-css-prefix}-star-half:before { content: @fa-var-star-half; }
.@{fa-css-prefix}-heart-o:before { content: @fa-var-heart-o; }
.@{fa-css-prefix}-sign-out:before { content: @fa-var-sign-out; }
.@{fa-css-prefix}-linkedin-square:before { content: @fa-var-linkedin-square; }
.@{fa-css-prefix}-thumb-tack:before { content: @fa-var-thumb-tack; }
.@{fa-css-prefix}-external-link:before { content: @fa-var-external-link; }
.@{fa-css-prefix}-sign-in:before { content: @fa-var-sign-in; }
.@{fa-css-prefix}-trophy:before { content: @fa-var-trophy; }
.@{fa-css-prefix}-github-square:before { content: @fa-var-github-square; }
.@{fa-css-prefix}-upload:before { content: @fa-var-upload; }
.@{fa-css-prefix}-lemon-o:before { content: @fa-var-lemon-o; }
.@{fa-css-prefix}-phone:before { content: @fa-var-phone; }
.@{fa-css-prefix}-square-o:before { content: @fa-var-square-o; }
.@{fa-css-prefix}-bookmark-o:before { content: @fa-var-bookmark-o; }
.@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; }
.@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; }
.@{fa-css-prefix}-facebook-f:before,
.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; }
.@{fa-css-prefix}-github:before { content: @fa-var-github; }
.@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; }
.@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; }
.@{fa-css-prefix}-feed:before,
.@{fa-css-prefix}-rss:before { content: @fa-var-rss; }
.@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd-o; }
.@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; }
.@{fa-css-prefix}-bell:before { content: @fa-var-bell; }
.@{fa-css-prefix}-certificate:before { content: @fa-var-certificate; }
.@{fa-css-prefix}-hand-o-right:before { content: @fa-var-hand-o-right; }
.@{fa-css-prefix}-hand-o-left:before { content: @fa-var-hand-o-left; }
.@{fa-css-prefix}-hand-o-up:before { content: @fa-var-hand-o-up; }
.@{fa-css-prefix}-hand-o-down:before { content: @fa-var-hand-o-down; }
.@{fa-css-prefix}-arrow-circle-left:before { content: @fa-var-arrow-circle-left; }
.@{fa-css-prefix}-arrow-circle-right:before { content: @fa-var-arrow-circle-right; }
.@{fa-css-prefix}-arrow-circle-up:before { content: @fa-var-arrow-circle-up; }
.@{fa-css-prefix}-arrow-circle-down:before { content: @fa-var-arrow-circle-down; }
.@{fa-css-prefix}-globe:before { content: @fa-var-globe; }
.@{fa-css-prefix}-wrench:before { content: @fa-var-wrench; }
.@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; }
.@{fa-css-prefix}-filter:before { content: @fa-var-filter; }
.@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; }
.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; }
.@{fa-css-prefix}-group:before,
.@{fa-css-prefix}-users:before { content: @fa-var-users; }
.@{fa-css-prefix}-chain:before,
.@{fa-css-prefix}-link:before { content: @fa-var-link; }
.@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; }
.@{fa-css-prefix}-flask:before { content: @fa-var-flask; }
.@{fa-css-prefix}-cut:before,
.@{fa-css-prefix}-scissors:before { content: @fa-var-scissors; }
.@{fa-css-prefix}-copy:before,
.@{fa-css-prefix}-files-o:before { content: @fa-var-files-o; }
.@{fa-css-prefix}-paperclip:before { content: @fa-var-paperclip; }
.@{fa-css-prefix}-save:before,
.@{fa-css-prefix}-floppy-o:before { content: @fa-var-floppy-o; }
.@{fa-css-prefix}-square:before { content: @fa-var-square; }
.@{fa-css-prefix}-navicon:before,
.@{fa-css-prefix}-reorder:before,
.@{fa-css-prefix}-bars:before { content: @fa-var-bars; }
.@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; }
.@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; }
.@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; }
.@{fa-css-prefix}-underline:before { content: @fa-var-underline; }
.@{fa-css-prefix}-table:before { content: @fa-var-table; }
.@{fa-css-prefix}-magic:before { content: @fa-var-magic; }
.@{fa-css-prefix}-truck:before { content: @fa-var-truck; }
.@{fa-css-prefix}-pinterest:before { content: @fa-var-pinterest; }
.@{fa-css-prefix}-pinterest-square:before { content: @fa-var-pinterest-square; }
.@{fa-css-prefix}-google-plus-square:before { content: @fa-var-google-plus-square; }
.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus; }
.@{fa-css-prefix}-money:before { content: @fa-var-money; }
.@{fa-css-prefix}-caret-down:before { content: @fa-var-caret-down; }
.@{fa-css-prefix}-caret-up:before { content: @fa-var-caret-up; }
.@{fa-css-prefix}-caret-left:before { content: @fa-var-caret-left; }
.@{fa-css-prefix}-caret-right:before { content: @fa-var-caret-right; }
.@{fa-css-prefix}-columns:before { content: @fa-var-columns; }
.@{fa-css-prefix}-unsorted:before,
.@{fa-css-prefix}-sort:before { content: @fa-var-sort; }
.@{fa-css-prefix}-sort-down:before,
.@{fa-css-prefix}-sort-desc:before { content: @fa-var-sort-desc; }
.@{fa-css-prefix}-sort-up:before,
.@{fa-css-prefix}-sort-asc:before { content: @fa-var-sort-asc; }
.@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; }
.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; }
.@{fa-css-prefix}-rotate-left:before,
.@{fa-css-prefix}-undo:before { content: @fa-var-undo; }
.@{fa-css-prefix}-legal:before,
.@{fa-css-prefix}-gavel:before { content: @fa-var-gavel; }
.@{fa-css-prefix}-dashboard:before,
.@{fa-css-prefix}-tachometer:before { content: @fa-var-tachometer; }
.@{fa-css-prefix}-comment-o:before { content: @fa-var-comment-o; }
.@{fa-css-prefix}-comments-o:before { content: @fa-var-comments-o; }
.@{fa-css-prefix}-flash:before,
.@{fa-css-prefix}-bolt:before { content: @fa-var-bolt; }
.@{fa-css-prefix}-sitemap:before { content: @fa-var-sitemap; }
.@{fa-css-prefix}-umbrella:before { content: @fa-var-umbrella; }
.@{fa-css-prefix}-paste:before,
.@{fa-css-prefix}-clipboard:before { content: @fa-var-clipboard; }
.@{fa-css-prefix}-lightbulb-o:before { content: @fa-var-lightbulb-o; }
.@{fa-css-prefix}-exchange:before { content: @fa-var-exchange; }
.@{fa-css-prefix}-cloud-download:before { content: @fa-var-cloud-download; }
.@{fa-css-prefix}-cloud-upload:before { content: @fa-var-cloud-upload; }
.@{fa-css-prefix}-user-md:before { content: @fa-var-user-md; }
.@{fa-css-prefix}-stethoscope:before { content: @fa-var-stethoscope; }
.@{fa-css-prefix}-suitcase:before { content: @fa-var-suitcase; }
.@{fa-css-prefix}-bell-o:before { content: @fa-var-bell-o; }
.@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; }
.@{fa-css-prefix}-cutlery:before { content: @fa-var-cutlery; }
.@{fa-css-prefix}-file-text-o:before { content: @fa-var-file-text-o; }
.@{fa-css-prefix}-building-o:before { content: @fa-var-building-o; }
.@{fa-css-prefix}-hospital-o:before { content: @fa-var-hospital-o; }
.@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; }
.@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; }
.@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; }
.@{fa-css-prefix}-beer:before { content: @fa-var-beer; }
.@{fa-css-prefix}-h-square:before { content: @fa-var-h-square; }
.@{fa-css-prefix}-plus-square:before { content: @fa-var-plus-square; }
.@{fa-css-prefix}-angle-double-left:before { content: @fa-var-angle-double-left; }
.@{fa-css-prefix}-angle-double-right:before { content: @fa-var-angle-double-right; }
.@{fa-css-prefix}-angle-double-up:before { content: @fa-var-angle-double-up; }
.@{fa-css-prefix}-angle-double-down:before { content: @fa-var-angle-double-down; }
.@{fa-css-prefix}-angle-left:before { content: @fa-var-angle-left; }
.@{fa-css-prefix}-angle-right:before { content: @fa-var-angle-right; }
.@{fa-css-prefix}-angle-up:before { content: @fa-var-angle-up; }
.@{fa-css-prefix}-angle-down:before { content: @fa-var-angle-down; }
.@{fa-css-prefix}-desktop:before { content: @fa-var-desktop; }
.@{fa-css-prefix}-laptop:before { content: @fa-var-laptop; }
.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet; }
.@{fa-css-prefix}-mobile-phone:before,
.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile; }
.@{fa-css-prefix}-circle-o:before { content: @fa-var-circle-o; }
.@{fa-css-prefix}-quote-left:before { content: @fa-var-quote-left; }
.@{fa-css-prefix}-quote-right:before { content: @fa-var-quote-right; }
.@{fa-css-prefix}-spinner:before { content: @fa-var-spinner; }
.@{fa-css-prefix}-circle:before { content: @fa-var-circle; }
.@{fa-css-prefix}-mail-reply:before,
.@{fa-css-prefix}-reply:before { content: @fa-var-reply; }
.@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; }
.@{fa-css-prefix}-folder-o:before { content: @fa-var-folder-o; }
.@{fa-css-prefix}-folder-open-o:before { content: @fa-var-folder-open-o; }
.@{fa-css-prefix}-smile-o:before { content: @fa-var-smile-o; }
.@{fa-css-prefix}-frown-o:before { content: @fa-var-frown-o; }
.@{fa-css-prefix}-meh-o:before { content: @fa-var-meh-o; }
.@{fa-css-prefix}-gamepad:before { content: @fa-var-gamepad; }
.@{fa-css-prefix}-keyboard-o:before { content: @fa-var-keyboard-o; }
.@{fa-css-prefix}-flag-o:before { content: @fa-var-flag-o; }
.@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; }
.@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; }
.@{fa-css-prefix}-code:before { content: @fa-var-code; }
.@{fa-css-prefix}-mail-reply-all:before,
.@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; }
.@{fa-css-prefix}-star-half-empty:before,
.@{fa-css-prefix}-star-half-full:before,
.@{fa-css-prefix}-star-half-o:before { content: @fa-var-star-half-o; }
.@{fa-css-prefix}-location-arrow:before { content: @fa-var-location-arrow; }
.@{fa-css-prefix}-crop:before { content: @fa-var-crop; }
.@{fa-css-prefix}-code-fork:before { content: @fa-var-code-fork; }
.@{fa-css-prefix}-unlink:before,
.@{fa-css-prefix}-chain-broken:before { content: @fa-var-chain-broken; }
.@{fa-css-prefix}-question:before { content: @fa-var-question; }
.@{fa-css-prefix}-info:before { content: @fa-var-info; }
.@{fa-css-prefix}-exclamation:before { content: @fa-var-exclamation; }
.@{fa-css-prefix}-superscript:before { content: @fa-var-superscript; }
.@{fa-css-prefix}-subscript:before { content: @fa-var-subscript; }
.@{fa-css-prefix}-eraser:before { content: @fa-var-eraser; }
.@{fa-css-prefix}-puzzle-piece:before { content: @fa-var-puzzle-piece; }
.@{fa-css-prefix}-microphone:before { content: @fa-var-microphone; }
.@{fa-css-prefix}-microphone-slash:before { content: @fa-var-microphone-slash; }
.@{fa-css-prefix}-shield:before { content: @fa-var-shield; }
.@{fa-css-prefix}-calendar-o:before { content: @fa-var-calendar-o; }
.@{fa-css-prefix}-fire-extinguisher:before { content: @fa-var-fire-extinguisher; }
.@{fa-css-prefix}-rocket:before { content: @fa-var-rocket; }
.@{fa-css-prefix}-maxcdn:before { content: @fa-var-maxcdn; }
.@{fa-css-prefix}-chevron-circle-left:before { content: @fa-var-chevron-circle-left; }
.@{fa-css-prefix}-chevron-circle-right:before { content: @fa-var-chevron-circle-right; }
.@{fa-css-prefix}-chevron-circle-up:before { content: @fa-var-chevron-circle-up; }
.@{fa-css-prefix}-chevron-circle-down:before { content: @fa-var-chevron-circle-down; }
.@{fa-css-prefix}-html5:before { content: @fa-var-html5; }
.@{fa-css-prefix}-css3:before { content: @fa-var-css3; }
.@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; }
.@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; }
.@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; }
.@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; }
.@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; }
.@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; }
.@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; }
.@{fa-css-prefix}-ticket:before { content: @fa-var-ticket; }
.@{fa-css-prefix}-minus-square:before { content: @fa-var-minus-square; }
.@{fa-css-prefix}-minus-square-o:before { content: @fa-var-minus-square-o; }
.@{fa-css-prefix}-level-up:before { content: @fa-var-level-up; }
.@{fa-css-prefix}-level-down:before { content: @fa-var-level-down; }
.@{fa-css-prefix}-check-square:before { content: @fa-var-check-square; }
.@{fa-css-prefix}-pencil-square:before { content: @fa-var-pencil-square; }
.@{fa-css-prefix}-external-link-square:before { content: @fa-var-external-link-square; }
.@{fa-css-prefix}-share-square:before { content: @fa-var-share-square; }
.@{fa-css-prefix}-compass:before { content: @fa-var-compass; }
.@{fa-css-prefix}-toggle-down:before,
.@{fa-css-prefix}-caret-square-o-down:before { content: @fa-var-caret-square-o-down; }
.@{fa-css-prefix}-toggle-up:before,
.@{fa-css-prefix}-caret-square-o-up:before { content: @fa-var-caret-square-o-up; }
.@{fa-css-prefix}-toggle-right:before,
.@{fa-css-prefix}-caret-square-o-right:before { content: @fa-var-caret-square-o-right; }
.@{fa-css-prefix}-euro:before,
.@{fa-css-prefix}-eur:before { content: @fa-var-eur; }
.@{fa-css-prefix}-gbp:before { content: @fa-var-gbp; }
.@{fa-css-prefix}-dollar:before,
.@{fa-css-prefix}-usd:before { content: @fa-var-usd; }
.@{fa-css-prefix}-rupee:before,
.@{fa-css-prefix}-inr:before { content: @fa-var-inr; }
.@{fa-css-prefix}-cny:before,
.@{fa-css-prefix}-rmb:before,
.@{fa-css-prefix}-yen:before,
.@{fa-css-prefix}-jpy:before { content: @fa-var-jpy; }
.@{fa-css-prefix}-ruble:before,
.@{fa-css-prefix}-rouble:before,
.@{fa-css-prefix}-rub:before { content: @fa-var-rub; }
.@{fa-css-prefix}-won:before,
.@{fa-css-prefix}-krw:before { content: @fa-var-krw; }
.@{fa-css-prefix}-bitcoin:before,
.@{fa-css-prefix}-btc:before { content: @fa-var-btc; }
.@{fa-css-prefix}-file:before { content: @fa-var-file; }
.@{fa-css-prefix}-file-text:before { content: @fa-var-file-text; }
.@{fa-css-prefix}-sort-alpha-asc:before { content: @fa-var-sort-alpha-asc; }
.@{fa-css-prefix}-sort-alpha-desc:before { content: @fa-var-sort-alpha-desc; }
.@{fa-css-prefix}-sort-amount-asc:before { content: @fa-var-sort-amount-asc; }
.@{fa-css-prefix}-sort-amount-desc:before { content: @fa-var-sort-amount-desc; }
.@{fa-css-prefix}-sort-numeric-asc:before { content: @fa-var-sort-numeric-asc; }
.@{fa-css-prefix}-sort-numeric-desc:before { content: @fa-var-sort-numeric-desc; }
.@{fa-css-prefix}-thumbs-up:before { content: @fa-var-thumbs-up; }
.@{fa-css-prefix}-thumbs-down:before { content: @fa-var-thumbs-down; }
.@{fa-css-prefix}-youtube-square:before { content: @fa-var-youtube-square; }
.@{fa-css-prefix}-youtube:before { content: @fa-var-youtube; }
.@{fa-css-prefix}-xing:before { content: @fa-var-xing; }
.@{fa-css-prefix}-xing-square:before { content: @fa-var-xing-square; }
.@{fa-css-prefix}-youtube-play:before { content: @fa-var-youtube-play; }
.@{fa-css-prefix}-dropbox:before { content: @fa-var-dropbox; }
.@{fa-css-prefix}-stack-overflow:before { content: @fa-var-stack-overflow; }
.@{fa-css-prefix}-instagram:before { content: @fa-var-instagram; }
.@{fa-css-prefix}-flickr:before { content: @fa-var-flickr; }
.@{fa-css-prefix}-adn:before { content: @fa-var-adn; }
.@{fa-css-prefix}-bitbucket:before { content: @fa-var-bitbucket; }
.@{fa-css-prefix}-bitbucket-square:before { content: @fa-var-bitbucket-square; }
.@{fa-css-prefix}-tumblr:before { content: @fa-var-tumblr; }
.@{fa-css-prefix}-tumblr-square:before { content: @fa-var-tumblr-square; }
.@{fa-css-prefix}-long-arrow-down:before { content: @fa-var-long-arrow-down; }
.@{fa-css-prefix}-long-arrow-up:before { content: @fa-var-long-arrow-up; }
.@{fa-css-prefix}-long-arrow-left:before { content: @fa-var-long-arrow-left; }
.@{fa-css-prefix}-long-arrow-right:before { content: @fa-var-long-arrow-right; }
.@{fa-css-prefix}-apple:before { content: @fa-var-apple; }
.@{fa-css-prefix}-windows:before { content: @fa-var-windows; }
.@{fa-css-prefix}-android:before { content: @fa-var-android; }
.@{fa-css-prefix}-linux:before { content: @fa-var-linux; }
.@{fa-css-prefix}-dribbble:before { content: @fa-var-dribbble; }
.@{fa-css-prefix}-skype:before { content: @fa-var-skype; }
.@{fa-css-prefix}-foursquare:before { content: @fa-var-foursquare; }
.@{fa-css-prefix}-trello:before { content: @fa-var-trello; }
.@{fa-css-prefix}-female:before { content: @fa-var-female; }
.@{fa-css-prefix}-male:before { content: @fa-var-male; }
.@{fa-css-prefix}-gittip:before,
.@{fa-css-prefix}-gratipay:before { content: @fa-var-gratipay; }
.@{fa-css-prefix}-sun-o:before { content: @fa-var-sun-o; }
.@{fa-css-prefix}-moon-o:before { content: @fa-var-moon-o; }
.@{fa-css-prefix}-archive:before { content: @fa-var-archive; }
.@{fa-css-prefix}-bug:before { content: @fa-var-bug; }
.@{fa-css-prefix}-vk:before { content: @fa-var-vk; }
.@{fa-css-prefix}-weibo:before { content: @fa-var-weibo; }
.@{fa-css-prefix}-renren:before { content: @fa-var-renren; }
.@{fa-css-prefix}-pagelines:before { content: @fa-var-pagelines; }
.@{fa-css-prefix}-stack-exchange:before { content: @fa-var-stack-exchange; }
.@{fa-css-prefix}-arrow-circle-o-right:before { content: @fa-var-arrow-circle-o-right; }
.@{fa-css-prefix}-arrow-circle-o-left:before { content: @fa-var-arrow-circle-o-left; }
.@{fa-css-prefix}-toggle-left:before,
.@{fa-css-prefix}-caret-square-o-left:before { content: @fa-var-caret-square-o-left; }
.@{fa-css-prefix}-dot-circle-o:before { content: @fa-var-dot-circle-o; }
.@{fa-css-prefix}-wheelchair:before { content: @fa-var-wheelchair; }
.@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; }
.@{fa-css-prefix}-turkish-lira:before,
.@{fa-css-prefix}-try:before { content: @fa-var-try; }
.@{fa-css-prefix}-plus-square-o:before { content: @fa-var-plus-square-o; }
.@{fa-css-prefix}-space-shuttle:before { content: @fa-var-space-shuttle; }
.@{fa-css-prefix}-slack:before { content: @fa-var-slack; }
.@{fa-css-prefix}-envelope-square:before { content: @fa-var-envelope-square; }
.@{fa-css-prefix}-wordpress:before { content: @fa-var-wordpress; }
.@{fa-css-prefix}-openid:before { content: @fa-var-openid; }
.@{fa-css-prefix}-institution:before,
.@{fa-css-prefix}-bank:before,
.@{fa-css-prefix}-university:before { content: @fa-var-university; }
.@{fa-css-prefix}-mortar-board:before,
.@{fa-css-prefix}-graduation-cap:before { content: @fa-var-graduation-cap; }
.@{fa-css-prefix}-yahoo:before { content: @fa-var-yahoo; }
.@{fa-css-prefix}-google:before { content: @fa-var-google; }
.@{fa-css-prefix}-reddit:before { content: @fa-var-reddit; }
.@{fa-css-prefix}-reddit-square:before { content: @fa-var-reddit-square; }
.@{fa-css-prefix}-stumbleupon-circle:before { content: @fa-var-stumbleupon-circle; }
.@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; }
.@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; }
.@{fa-css-prefix}-digg:before { content: @fa-var-digg; }
.@{fa-css-prefix}-pied-piper-pp:before { content: @fa-var-pied-piper-pp; }
.@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; }
.@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; }
.@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; }
.@{fa-css-prefix}-language:before { content: @fa-var-language; }
.@{fa-css-prefix}-fax:before { content: @fa-var-fax; }
.@{fa-css-prefix}-building:before { content: @fa-var-building; }
.@{fa-css-prefix}-child:before { content: @fa-var-child; }
.@{fa-css-prefix}-paw:before { content: @fa-var-paw; }
.@{fa-css-prefix}-spoon:before { content: @fa-var-spoon; }
.@{fa-css-prefix}-cube:before { content: @fa-var-cube; }
.@{fa-css-prefix}-cubes:before { content: @fa-var-cubes; }
.@{fa-css-prefix}-behance:before { content: @fa-var-behance; }
.@{fa-css-prefix}-behance-square:before { content: @fa-var-behance-square; }
.@{fa-css-prefix}-steam:before { content: @fa-var-steam; }
.@{fa-css-prefix}-steam-square:before { content: @fa-var-steam-square; }
.@{fa-css-prefix}-recycle:before { content: @fa-var-recycle; }
.@{fa-css-prefix}-automobile:before,
.@{fa-css-prefix}-car:before { content: @fa-var-car; }
.@{fa-css-prefix}-cab:before,
.@{fa-css-prefix}-taxi:before { content: @fa-var-taxi; }
.@{fa-css-prefix}-tree:before { content: @fa-var-tree; }
.@{fa-css-prefix}-spotify:before { content: @fa-var-spotify; }
.@{fa-css-prefix}-deviantart:before { content: @fa-var-deviantart; }
.@{fa-css-prefix}-soundcloud:before { content: @fa-var-soundcloud; }
.@{fa-css-prefix}-database:before { content: @fa-var-database; }
.@{fa-css-prefix}-file-pdf-o:before { content: @fa-var-file-pdf-o; }
.@{fa-css-prefix}-file-word-o:before { content: @fa-var-file-word-o; }
.@{fa-css-prefix}-file-excel-o:before { content: @fa-var-file-excel-o; }
.@{fa-css-prefix}-file-powerpoint-o:before { content: @fa-var-file-powerpoint-o; }
.@{fa-css-prefix}-file-photo-o:before,
.@{fa-css-prefix}-file-picture-o:before,
.@{fa-css-prefix}-file-image-o:before { content: @fa-var-file-image-o; }
.@{fa-css-prefix}-file-zip-o:before,
.@{fa-css-prefix}-file-archive-o:before { content: @fa-var-file-archive-o; }
.@{fa-css-prefix}-file-sound-o:before,
.@{fa-css-prefix}-file-audio-o:before { content: @fa-var-file-audio-o; }
.@{fa-css-prefix}-file-movie-o:before,
.@{fa-css-prefix}-file-video-o:before { content: @fa-var-file-video-o; }
.@{fa-css-prefix}-file-code-o:before { content: @fa-var-file-code-o; }
.@{fa-css-prefix}-vine:before { content: @fa-var-vine; }
.@{fa-css-prefix}-codepen:before { content: @fa-var-codepen; }
.@{fa-css-prefix}-jsfiddle:before { content: @fa-var-jsfiddle; }
.@{fa-css-prefix}-life-bouy:before,
.@{fa-css-prefix}-life-buoy:before,
.@{fa-css-prefix}-life-saver:before,
.@{fa-css-prefix}-support:before,
.@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; }
.@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-o-notch; }
.@{fa-css-prefix}-ra:before,
.@{fa-css-prefix}-resistance:before,
.@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; }
.@{fa-css-prefix}-ge:before,
.@{fa-css-prefix}-empire:before { content: @fa-var-empire; }
.@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; }
.@{fa-css-prefix}-git:before { content: @fa-var-git; }
.@{fa-css-prefix}-y-combinator-square:before,
.@{fa-css-prefix}-yc-square:before,
.@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; }
.@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; }
.@{fa-css-prefix}-qq:before { content: @fa-var-qq; }
.@{fa-css-prefix}-wechat:before,
.@{fa-css-prefix}-weixin:before { content: @fa-var-weixin; }
.@{fa-css-prefix}-send:before,
.@{fa-css-prefix}-paper-plane:before { content: @fa-var-paper-plane; }
.@{fa-css-prefix}-send-o:before,
.@{fa-css-prefix}-paper-plane-o:before { content: @fa-var-paper-plane-o; }
.@{fa-css-prefix}-history:before { content: @fa-var-history; }
.@{fa-css-prefix}-circle-thin:before { content: @fa-var-circle-thin; }
.@{fa-css-prefix}-header:before { content: @fa-var-header; }
.@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; }
.@{fa-css-prefix}-sliders:before { content: @fa-var-sliders; }
.@{fa-css-prefix}-share-alt:before { content: @fa-var-share-alt; }
.@{fa-css-prefix}-share-alt-square:before { content: @fa-var-share-alt-square; }
.@{fa-css-prefix}-bomb:before { content: @fa-var-bomb; }
.@{fa-css-prefix}-soccer-ball-o:before,
.@{fa-css-prefix}-futbol-o:before { content: @fa-var-futbol-o; }
.@{fa-css-prefix}-tty:before { content: @fa-var-tty; }
.@{fa-css-prefix}-binoculars:before { content: @fa-var-binoculars; }
.@{fa-css-prefix}-plug:before { content: @fa-var-plug; }
.@{fa-css-prefix}-slideshare:before { content: @fa-var-slideshare; }
.@{fa-css-prefix}-twitch:before { content: @fa-var-twitch; }
.@{fa-css-prefix}-yelp:before { content: @fa-var-yelp; }
.@{fa-css-prefix}-newspaper-o:before { content: @fa-var-newspaper-o; }
.@{fa-css-prefix}-wifi:before { content: @fa-var-wifi; }
.@{fa-css-prefix}-calculator:before { content: @fa-var-calculator; }
.@{fa-css-prefix}-paypal:before { content: @fa-var-paypal; }
.@{fa-css-prefix}-google-wallet:before { content: @fa-var-google-wallet; }
.@{fa-css-prefix}-cc-visa:before { content: @fa-var-cc-visa; }
.@{fa-css-prefix}-cc-mastercard:before { content: @fa-var-cc-mastercard; }
.@{fa-css-prefix}-cc-discover:before { content: @fa-var-cc-discover; }
.@{fa-css-prefix}-cc-amex:before { content: @fa-var-cc-amex; }
.@{fa-css-prefix}-cc-paypal:before { content: @fa-var-cc-paypal; }
.@{fa-css-prefix}-cc-stripe:before { content: @fa-var-cc-stripe; }
.@{fa-css-prefix}-bell-slash:before { content: @fa-var-bell-slash; }
.@{fa-css-prefix}-bell-slash-o:before { content: @fa-var-bell-slash-o; }
.@{fa-css-prefix}-trash:before { content: @fa-var-trash; }
.@{fa-css-prefix}-copyright:before { content: @fa-var-copyright; }
.@{fa-css-prefix}-at:before { content: @fa-var-at; }
.@{fa-css-prefix}-eyedropper:before { content: @fa-var-eyedropper; }
.@{fa-css-prefix}-paint-brush:before { content: @fa-var-paint-brush; }
.@{fa-css-prefix}-birthday-cake:before { content: @fa-var-birthday-cake; }
.@{fa-css-prefix}-area-chart:before { content: @fa-var-area-chart; }
.@{fa-css-prefix}-pie-chart:before { content: @fa-var-pie-chart; }
.@{fa-css-prefix}-line-chart:before { content: @fa-var-line-chart; }
.@{fa-css-prefix}-lastfm:before { content: @fa-var-lastfm; }
.@{fa-css-prefix}-lastfm-square:before { content: @fa-var-lastfm-square; }
.@{fa-css-prefix}-toggle-off:before { content: @fa-var-toggle-off; }
.@{fa-css-prefix}-toggle-on:before { content: @fa-var-toggle-on; }
.@{fa-css-prefix}-bicycle:before { content: @fa-var-bicycle; }
.@{fa-css-prefix}-bus:before { content: @fa-var-bus; }
.@{fa-css-prefix}-ioxhost:before { content: @fa-var-ioxhost; }
.@{fa-css-prefix}-angellist:before { content: @fa-var-angellist; }
.@{fa-css-prefix}-cc:before { content: @fa-var-cc; }
.@{fa-css-prefix}-shekel:before,
.@{fa-css-prefix}-sheqel:before,
.@{fa-css-prefix}-ils:before { content: @fa-var-ils; }
.@{fa-css-prefix}-meanpath:before { content: @fa-var-meanpath; }
.@{fa-css-prefix}-buysellads:before { content: @fa-var-buysellads; }
.@{fa-css-prefix}-connectdevelop:before { content: @fa-var-connectdevelop; }
.@{fa-css-prefix}-dashcube:before { content: @fa-var-dashcube; }
.@{fa-css-prefix}-forumbee:before { content: @fa-var-forumbee; }
.@{fa-css-prefix}-leanpub:before { content: @fa-var-leanpub; }
.@{fa-css-prefix}-sellsy:before { content: @fa-var-sellsy; }
.@{fa-css-prefix}-shirtsinbulk:before { content: @fa-var-shirtsinbulk; }
.@{fa-css-prefix}-simplybuilt:before { content: @fa-var-simplybuilt; }
.@{fa-css-prefix}-skyatlas:before { content: @fa-var-skyatlas; }
.@{fa-css-prefix}-cart-plus:before { content: @fa-var-cart-plus; }
.@{fa-css-prefix}-cart-arrow-down:before { content: @fa-var-cart-arrow-down; }
.@{fa-css-prefix}-diamond:before { content: @fa-var-diamond; }
.@{fa-css-prefix}-ship:before { content: @fa-var-ship; }
.@{fa-css-prefix}-user-secret:before { content: @fa-var-user-secret; }
.@{fa-css-prefix}-motorcycle:before { content: @fa-var-motorcycle; }
.@{fa-css-prefix}-street-view:before { content: @fa-var-street-view; }
.@{fa-css-prefix}-heartbeat:before { content: @fa-var-heartbeat; }
.@{fa-css-prefix}-venus:before { content: @fa-var-venus; }
.@{fa-css-prefix}-mars:before { content: @fa-var-mars; }
.@{fa-css-prefix}-mercury:before { content: @fa-var-mercury; }
.@{fa-css-prefix}-intersex:before,
.@{fa-css-prefix}-transgender:before { content: @fa-var-transgender; }
.@{fa-css-prefix}-transgender-alt:before { content: @fa-var-transgender-alt; }
.@{fa-css-prefix}-venus-double:before { content: @fa-var-venus-double; }
.@{fa-css-prefix}-mars-double:before { content: @fa-var-mars-double; }
.@{fa-css-prefix}-venus-mars:before { content: @fa-var-venus-mars; }
.@{fa-css-prefix}-mars-stroke:before { content: @fa-var-mars-stroke; }
.@{fa-css-prefix}-mars-stroke-v:before { content: @fa-var-mars-stroke-v; }
.@{fa-css-prefix}-mars-stroke-h:before { content: @fa-var-mars-stroke-h; }
.@{fa-css-prefix}-neuter:before { content: @fa-var-neuter; }
.@{fa-css-prefix}-genderless:before { content: @fa-var-genderless; }
.@{fa-css-prefix}-facebook-official:before { content: @fa-var-facebook-official; }
.@{fa-css-prefix}-pinterest-p:before { content: @fa-var-pinterest-p; }
.@{fa-css-prefix}-whatsapp:before { content: @fa-var-whatsapp; }
.@{fa-css-prefix}-server:before { content: @fa-var-server; }
.@{fa-css-prefix}-user-plus:before { content: @fa-var-user-plus; }
.@{fa-css-prefix}-user-times:before { content: @fa-var-user-times; }
.@{fa-css-prefix}-hotel:before,
.@{fa-css-prefix}-bed:before { content: @fa-var-bed; }
.@{fa-css-prefix}-viacoin:before { content: @fa-var-viacoin; }
.@{fa-css-prefix}-train:before { content: @fa-var-train; }
.@{fa-css-prefix}-subway:before { content: @fa-var-subway; }
.@{fa-css-prefix}-medium:before { content: @fa-var-medium; }
.@{fa-css-prefix}-yc:before,
.@{fa-css-prefix}-y-combinator:before { content: @fa-var-y-combinator; }
.@{fa-css-prefix}-optin-monster:before { content: @fa-var-optin-monster; }
.@{fa-css-prefix}-opencart:before { content: @fa-var-opencart; }
.@{fa-css-prefix}-expeditedssl:before { content: @fa-var-expeditedssl; }
.@{fa-css-prefix}-battery-4:before,
.@{fa-css-prefix}-battery:before,
.@{fa-css-prefix}-battery-full:before { content: @fa-var-battery-full; }
.@{fa-css-prefix}-battery-3:before,
.@{fa-css-prefix}-battery-three-quarters:before { content: @fa-var-battery-three-quarters; }
.@{fa-css-prefix}-battery-2:before,
.@{fa-css-prefix}-battery-half:before { content: @fa-var-battery-half; }
.@{fa-css-prefix}-battery-1:before,
.@{fa-css-prefix}-battery-quarter:before { content: @fa-var-battery-quarter; }
.@{fa-css-prefix}-battery-0:before,
.@{fa-css-prefix}-battery-empty:before { content: @fa-var-battery-empty; }
.@{fa-css-prefix}-mouse-pointer:before { content: @fa-var-mouse-pointer; }
.@{fa-css-prefix}-i-cursor:before { content: @fa-var-i-cursor; }
.@{fa-css-prefix}-object-group:before { content: @fa-var-object-group; }
.@{fa-css-prefix}-object-ungroup:before { content: @fa-var-object-ungroup; }
.@{fa-css-prefix}-sticky-note:before { content: @fa-var-sticky-note; }
.@{fa-css-prefix}-sticky-note-o:before { content: @fa-var-sticky-note-o; }
.@{fa-css-prefix}-cc-jcb:before { content: @fa-var-cc-jcb; }
.@{fa-css-prefix}-cc-diners-club:before { content: @fa-var-cc-diners-club; }
.@{fa-css-prefix}-clone:before { content: @fa-var-clone; }
.@{fa-css-prefix}-balance-scale:before { content: @fa-var-balance-scale; }
.@{fa-css-prefix}-hourglass-o:before { content: @fa-var-hourglass-o; }
.@{fa-css-prefix}-hourglass-1:before,
.@{fa-css-prefix}-hourglass-start:before { content: @fa-var-hourglass-start; }
.@{fa-css-prefix}-hourglass-2:before,
.@{fa-css-prefix}-hourglass-half:before { content: @fa-var-hourglass-half; }
.@{fa-css-prefix}-hourglass-3:before,
.@{fa-css-prefix}-hourglass-end:before { content: @fa-var-hourglass-end; }
.@{fa-css-prefix}-hourglass:before { content: @fa-var-hourglass; }
.@{fa-css-prefix}-hand-grab-o:before,
.@{fa-css-prefix}-hand-rock-o:before { content: @fa-var-hand-rock-o; }
.@{fa-css-prefix}-hand-stop-o:before,
.@{fa-css-prefix}-hand-paper-o:before { content: @fa-var-hand-paper-o; }
.@{fa-css-prefix}-hand-scissors-o:before { content: @fa-var-hand-scissors-o; }
.@{fa-css-prefix}-hand-lizard-o:before { content: @fa-var-hand-lizard-o; }
.@{fa-css-prefix}-hand-spock-o:before { content: @fa-var-hand-spock-o; }
.@{fa-css-prefix}-hand-pointer-o:before { content: @fa-var-hand-pointer-o; }
.@{fa-css-prefix}-hand-peace-o:before { content: @fa-var-hand-peace-o; }
.@{fa-css-prefix}-trademark:before { content: @fa-var-trademark; }
.@{fa-css-prefix}-registered:before { content: @fa-var-registered; }
.@{fa-css-prefix}-creative-commons:before { content: @fa-var-creative-commons; }
.@{fa-css-prefix}-gg:before { content: @fa-var-gg; }
.@{fa-css-prefix}-gg-circle:before { content: @fa-var-gg-circle; }
.@{fa-css-prefix}-tripadvisor:before { content: @fa-var-tripadvisor; }
.@{fa-css-prefix}-odnoklassniki:before { content: @fa-var-odnoklassniki; }
.@{fa-css-prefix}-odnoklassniki-square:before { content: @fa-var-odnoklassniki-square; }
.@{fa-css-prefix}-get-pocket:before { content: @fa-var-get-pocket; }
.@{fa-css-prefix}-wikipedia-w:before { content: @fa-var-wikipedia-w; }
.@{fa-css-prefix}-safari:before { content: @fa-var-safari; }
.@{fa-css-prefix}-chrome:before { content: @fa-var-chrome; }
.@{fa-css-prefix}-firefox:before { content: @fa-var-firefox; }
.@{fa-css-prefix}-opera:before { content: @fa-var-opera; }
.@{fa-css-prefix}-internet-explorer:before { content: @fa-var-internet-explorer; }
.@{fa-css-prefix}-tv:before,
.@{fa-css-prefix}-television:before { content: @fa-var-television; }
.@{fa-css-prefix}-contao:before { content: @fa-var-contao; }
.@{fa-css-prefix}-500px:before { content: @fa-var-500px; }
.@{fa-css-prefix}-amazon:before { content: @fa-var-amazon; }
.@{fa-css-prefix}-calendar-plus-o:before { content: @fa-var-calendar-plus-o; }
.@{fa-css-prefix}-calendar-minus-o:before { content: @fa-var-calendar-minus-o; }
.@{fa-css-prefix}-calendar-times-o:before { content: @fa-var-calendar-times-o; }
.@{fa-css-prefix}-calendar-check-o:before { content: @fa-var-calendar-check-o; }
.@{fa-css-prefix}-industry:before { content: @fa-var-industry; }
.@{fa-css-prefix}-map-pin:before { content: @fa-var-map-pin; }
.@{fa-css-prefix}-map-signs:before { content: @fa-var-map-signs; }
.@{fa-css-prefix}-map-o:before { content: @fa-var-map-o; }
.@{fa-css-prefix}-map:before { content: @fa-var-map; }
.@{fa-css-prefix}-commenting:before { content: @fa-var-commenting; }
.@{fa-css-prefix}-commenting-o:before { content: @fa-var-commenting-o; }
.@{fa-css-prefix}-houzz:before { content: @fa-var-houzz; }
.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo; }
.@{fa-css-prefix}-black-tie:before { content: @fa-var-black-tie; }
.@{fa-css-prefix}-fonticons:before { content: @fa-var-fonticons; }
.@{fa-css-prefix}-reddit-alien:before { content: @fa-var-reddit-alien; }
.@{fa-css-prefix}-edge:before { content: @fa-var-edge; }
.@{fa-css-prefix}-credit-card-alt:before { content: @fa-var-credit-card-alt; }
.@{fa-css-prefix}-codiepie:before { content: @fa-var-codiepie; }
.@{fa-css-prefix}-modx:before { content: @fa-var-modx; }
.@{fa-css-prefix}-fort-awesome:before { content: @fa-var-fort-awesome; }
.@{fa-css-prefix}-usb:before { content: @fa-var-usb; }
.@{fa-css-prefix}-product-hunt:before { content: @fa-var-product-hunt; }
.@{fa-css-prefix}-mixcloud:before { content: @fa-var-mixcloud; }
.@{fa-css-prefix}-scribd:before { content: @fa-var-scribd; }
.@{fa-css-prefix}-pause-circle:before { content: @fa-var-pause-circle; }
.@{fa-css-prefix}-pause-circle-o:before { content: @fa-var-pause-circle-o; }
.@{fa-css-prefix}-stop-circle:before { content: @fa-var-stop-circle; }
.@{fa-css-prefix}-stop-circle-o:before { content: @fa-var-stop-circle-o; }
.@{fa-css-prefix}-shopping-bag:before { content: @fa-var-shopping-bag; }
.@{fa-css-prefix}-shopping-basket:before { content: @fa-var-shopping-basket; }
.@{fa-css-prefix}-hashtag:before { content: @fa-var-hashtag; }
.@{fa-css-prefix}-bluetooth:before { content: @fa-var-bluetooth; }
.@{fa-css-prefix}-bluetooth-b:before { content: @fa-var-bluetooth-b; }
.@{fa-css-prefix}-percent:before { content: @fa-var-percent; }
.@{fa-css-prefix}-gitlab:before { content: @fa-var-gitlab; }
.@{fa-css-prefix}-wpbeginner:before { content: @fa-var-wpbeginner; }
.@{fa-css-prefix}-wpforms:before { content: @fa-var-wpforms; }
.@{fa-css-prefix}-envira:before { content: @fa-var-envira; }
.@{fa-css-prefix}-universal-access:before { content: @fa-var-universal-access; }
.@{fa-css-prefix}-wheelchair-alt:before { content: @fa-var-wheelchair-alt; }
.@{fa-css-prefix}-question-circle-o:before { content: @fa-var-question-circle-o; }
.@{fa-css-prefix}-blind:before { content: @fa-var-blind; }
.@{fa-css-prefix}-audio-description:before { content: @fa-var-audio-description; }
.@{fa-css-prefix}-volume-control-phone:before { content: @fa-var-volume-control-phone; }
.@{fa-css-prefix}-braille:before { content: @fa-var-braille; }
.@{fa-css-prefix}-assistive-listening-systems:before { content: @fa-var-assistive-listening-systems; }
.@{fa-css-prefix}-asl-interpreting:before,
.@{fa-css-prefix}-american-sign-language-interpreting:before { content: @fa-var-american-sign-language-interpreting; }
.@{fa-css-prefix}-deafness:before,
.@{fa-css-prefix}-hard-of-hearing:before,
.@{fa-css-prefix}-deaf:before { content: @fa-var-deaf; }
.@{fa-css-prefix}-glide:before { content: @fa-var-glide; }
.@{fa-css-prefix}-glide-g:before { content: @fa-var-glide-g; }
.@{fa-css-prefix}-signing:before,
.@{fa-css-prefix}-sign-language:before { content: @fa-var-sign-language; }
.@{fa-css-prefix}-low-vision:before { content: @fa-var-low-vision; }
.@{fa-css-prefix}-viadeo:before { content: @fa-var-viadeo; }
.@{fa-css-prefix}-viadeo-square:before { content: @fa-var-viadeo-square; }
.@{fa-css-prefix}-snapchat:before { content: @fa-var-snapchat; }
.@{fa-css-prefix}-snapchat-ghost:before { content: @fa-var-snapchat-ghost; }
.@{fa-css-prefix}-snapchat-square:before { content: @fa-var-snapchat-square; }
.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; }
.@{fa-css-prefix}-first-order:before { content: @fa-var-first-order; }
.@{fa-css-prefix}-yoast:before { content: @fa-var-yoast; }
.@{fa-css-prefix}-themeisle:before { content: @fa-var-themeisle; }
.@{fa-css-prefix}-google-plus-circle:before,
.@{fa-css-prefix}-google-plus-official:before { content: @fa-var-google-plus-official; }
.@{fa-css-prefix}-fa:before,
.@{fa-css-prefix}-font-awesome:before { content: @fa-var-font-awesome; }
.@{fa-css-prefix}-handshake-o:before { content: @fa-var-handshake-o; }
.@{fa-css-prefix}-envelope-open:before { content: @fa-var-envelope-open; }
.@{fa-css-prefix}-envelope-open-o:before { content: @fa-var-envelope-open-o; }
.@{fa-css-prefix}-linode:before { content: @fa-var-linode; }
.@{fa-css-prefix}-address-book:before { content: @fa-var-address-book; }
.@{fa-css-prefix}-address-book-o:before { content: @fa-var-address-book-o; }
.@{fa-css-prefix}-vcard:before,
.@{fa-css-prefix}-address-card:before { content: @fa-var-address-card; }
.@{fa-css-prefix}-vcard-o:before,
.@{fa-css-prefix}-address-card-o:before { content: @fa-var-address-card-o; }
.@{fa-css-prefix}-user-circle:before { content: @fa-var-user-circle; }
.@{fa-css-prefix}-user-circle-o:before { content: @fa-var-user-circle-o; }
.@{fa-css-prefix}-user-o:before { content: @fa-var-user-o; }
.@{fa-css-prefix}-id-badge:before { content: @fa-var-id-badge; }
.@{fa-css-prefix}-drivers-license:before,
.@{fa-css-prefix}-id-card:before { content: @fa-var-id-card; }
.@{fa-css-prefix}-drivers-license-o:before,
.@{fa-css-prefix}-id-card-o:before { content: @fa-var-id-card-o; }
.@{fa-css-prefix}-quora:before { content: @fa-var-quora; }
.@{fa-css-prefix}-free-code-camp:before { content: @fa-var-free-code-camp; }
.@{fa-css-prefix}-telegram:before { content: @fa-var-telegram; }
.@{fa-css-prefix}-thermometer-4:before,
.@{fa-css-prefix}-thermometer:before,
.@{fa-css-prefix}-thermometer-full:before { content: @fa-var-thermometer-full; }
.@{fa-css-prefix}-thermometer-3:before,
.@{fa-css-prefix}-thermometer-three-quarters:before { content: @fa-var-thermometer-three-quarters; }
.@{fa-css-prefix}-thermometer-2:before,
.@{fa-css-prefix}-thermometer-half:before { content: @fa-var-thermometer-half; }
.@{fa-css-prefix}-thermometer-1:before,
.@{fa-css-prefix}-thermometer-quarter:before { content: @fa-var-thermometer-quarter; }
.@{fa-css-prefix}-thermometer-0:before,
.@{fa-css-prefix}-thermometer-empty:before { content: @fa-var-thermometer-empty; }
.@{fa-css-prefix}-shower:before { content: @fa-var-shower; }
.@{fa-css-prefix}-bathtub:before,
.@{fa-css-prefix}-s15:before,
.@{fa-css-prefix}-bath:before { content: @fa-var-bath; }
.@{fa-css-prefix}-podcast:before { content: @fa-var-podcast; }
.@{fa-css-prefix}-window-maximize:before { content: @fa-var-window-maximize; }
.@{fa-css-prefix}-window-minimize:before { content: @fa-var-window-minimize; }
.@{fa-css-prefix}-window-restore:before { content: @fa-var-window-restore; }
.@{fa-css-prefix}-times-rectangle:before,
.@{fa-css-prefix}-window-close:before { content: @fa-var-window-close; }
.@{fa-css-prefix}-times-rectangle-o:before,
.@{fa-css-prefix}-window-close-o:before { content: @fa-var-window-close-o; }
.@{fa-css-prefix}-bandcamp:before { content: @fa-var-bandcamp; }
.@{fa-css-prefix}-grav:before { content: @fa-var-grav; }
.@{fa-css-prefix}-etsy:before { content: @fa-var-etsy; }
.@{fa-css-prefix}-imdb:before { content: @fa-var-imdb; }
.@{fa-css-prefix}-ravelry:before { content: @fa-var-ravelry; }
.@{fa-css-prefix}-eercast:before { content: @fa-var-eercast; }
.@{fa-css-prefix}-microchip:before { content: @fa-var-microchip; }
.@{fa-css-prefix}-snowflake-o:before { content: @fa-var-snowflake-o; }
.@{fa-css-prefix}-superpowers:before { content: @fa-var-superpowers; }
.@{fa-css-prefix}-wpexplorer:before { content: @fa-var-wpexplorer; }
.@{fa-css-prefix}-meetup:before { content: @fa-var-meetup; }

View File

@ -0,0 +1,13 @@
// Icon Sizes
// -------------------------
/* makes the font 33% larger relative to the icon container */
.@{fa-css-prefix}-lg {
font-size: (4em / 3);
line-height: (3em / 4);
vertical-align: -15%;
}
.@{fa-css-prefix}-2x { font-size: 2em; }
.@{fa-css-prefix}-3x { font-size: 3em; }
.@{fa-css-prefix}-4x { font-size: 4em; }
.@{fa-css-prefix}-5x { font-size: 5em; }

View File

@ -0,0 +1,19 @@
// List Icons
// -------------------------
.@{fa-css-prefix}-ul {
padding-left: 0;
margin-left: @fa-li-width;
list-style-type: none;
> li { position: relative; }
}
.@{fa-css-prefix}-li {
position: absolute;
left: -@fa-li-width;
width: @fa-li-width;
top: (2em / 14);
text-align: center;
&.@{fa-css-prefix}-lg {
left: (-@fa-li-width + (4em / 14));
}
}

View File

@ -0,0 +1,60 @@
// Mixins
// --------------------------
.fa-icon() {
display: inline-block;
font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
font-size: inherit; // can't have font-size inherit on line above, so need to override
text-rendering: auto; // optimizelegibility throws things off #1094
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.fa-icon-rotate(@degrees, @rotation) {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
-webkit-transform: rotate(@degrees);
-ms-transform: rotate(@degrees);
transform: rotate(@degrees);
}
.fa-icon-flip(@horiz, @vert, @rotation) {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
-webkit-transform: scale(@horiz, @vert);
-ms-transform: scale(@horiz, @vert);
transform: scale(@horiz, @vert);
}
// Only display content to screen readers. A la Bootstrap 4.
//
// See: http://a11yproject.com/posts/how-to-hide-content/
.sr-only() {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0,0,0,0);
border: 0;
}
// Use in conjunction with .sr-only to only display content when it's focused.
//
// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
//
// Credit: HTML5 Boilerplate
.sr-only-focusable() {
&:active,
&:focus {
position: static;
width: auto;
height: auto;
margin: 0;
overflow: visible;
clip: auto;
}
}

View File

@ -0,0 +1,15 @@
/* FONT PATH
* -------------------------- */
@font-face {
font-family: 'FontAwesome';
src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');
src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),
url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'),
url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'),
url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'),
url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg');
// src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
font-weight: normal;
font-style: normal;
}

View File

@ -0,0 +1,20 @@
// Rotated & Flipped Icons
// -------------------------
.@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }
.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
// Hook for IE8-9
// -------------------------
:root .@{fa-css-prefix}-rotate-90,
:root .@{fa-css-prefix}-rotate-180,
:root .@{fa-css-prefix}-rotate-270,
:root .@{fa-css-prefix}-flip-horizontal,
:root .@{fa-css-prefix}-flip-vertical {
filter: none;
}

Some files were not shown because too many files have changed in this diff Show More