diff --git a/module-config-content/pom.xml b/module-config-content/pom.xml
new file mode 100644
index 0000000..241e2e9
--- /dev/null
+++ b/module-config-content/pom.xml
@@ -0,0 +1,71 @@
+
+
+
+ tenlion-module
+ cn.com.tenlion
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ module-config-content
+
+
+
+ interface-config-content
+ cn.com.tenlion
+ 1.0-SNAPSHOT
+
+
+ ink.wgink
+ module-file
+ 1.0-SNAPSHOT
+ compile
+
+
+ ink.wgink
+ module-dictionary
+ 1.0-SNAPSHOT
+ compile
+
+
+ org.springframework
+ spring-test
+ 5.3.3
+ compile
+
+
+ ink.wgink
+ login-wechat
+ 1.0-SNAPSHOT
+
+
+ org.apache.httpcomponents
+ httpcore
+ 4.4.10
+
+
+ org.apache.httpcomponents
+ httpclient
+ 4.5.6
+
+
+
+ com.belerweb
+ pinyin4j
+ 2.5.1
+
+
+ com.github.binarywang
+ java-emoji-converter
+ 0.1.1
+
+
+ ink.wgink
+ basic-app
+ 1.0-SNAPSHOT
+ compile
+
+
+
\ No newline at end of file
diff --git a/module-config-content/src/main/java/cn/com/tenlion/configcontent/controller/api/contentantistop/ContentAntistopController.java b/module-config-content/src/main/java/cn/com/tenlion/configcontent/controller/api/contentantistop/ContentAntistopController.java
new file mode 100644
index 0000000..fdf15e8
--- /dev/null
+++ b/module-config-content/src/main/java/cn/com/tenlion/configcontent/controller/api/contentantistop/ContentAntistopController.java
@@ -0,0 +1,141 @@
+package cn.com.tenlion.configcontent.controller.api.contentantistop;
+
+import cn.com.tenlion.configcontent.pojo.dtos.contentantistop.ContentAntistopDTO;
+import cn.com.tenlion.configcontent.pojo.vos.contentantistop.ContentAntistopVO;
+import cn.com.tenlion.configcontent.service.contentantistop.IContentAntistopService;
+import ink.wgink.annotation.CheckRequestBodyAnnotation;
+import ink.wgink.common.base.DefaultBaseController;
+import ink.wgink.common.component.SecurityComponent;
+import ink.wgink.exceptions.RemoveException;
+import ink.wgink.exceptions.SearchException;
+import ink.wgink.interfaces.consts.ISystemConstant;
+import ink.wgink.pojo.ListPage;
+import ink.wgink.pojo.dtos.CurrentUserIdInfoDTO;
+import ink.wgink.pojo.result.ErrorResult;
+import ink.wgink.pojo.result.SuccessResult;
+import ink.wgink.pojo.result.SuccessResultList;
+import ink.wgink.util.UUIDUtil;
+import io.swagger.annotations.*;
+import org.apache.commons.io.FileUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName: ContentAntistopController
+ * @Description: 评论敏感词库
+ * @Author: WenG
+ * @Date: 2020-05-08 23:30
+ * @Version: 1.0
+ **/
+@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "评论敏感词库接口")
+@RestController
+@RequestMapping(ISystemConstant.API_PREFIX + "/contentantistop")
+public class ContentAntistopController extends DefaultBaseController {
+
+ @Autowired
+ private IContentAntistopService contentAntistopService;
+ @Autowired
+ private SecurityComponent securityComponent;
+
+ @ApiOperation(value = "敏感词导入", notes = "敏感词导入接口")
+ @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
+ @PostMapping("saveuploadexcel")
+ public SuccessResult saveUploadExcel(MultipartFile excel) throws Exception {
+ String extName = ""; // 扩展名格式:
+ String saveFilePath = "";
+ try {
+ if (excel.getOriginalFilename().lastIndexOf(".") >= 0){
+ extName = excel.getOriginalFilename().substring(excel.getOriginalFilename().lastIndexOf("."));
+ }
+ String fileName = UUIDUtil.getUUID();
+ String path = "D:\\News\\tempFile\\";
+ File file = new File(path);
+ if(!file.exists()) {
+ file.mkdirs();
+ }
+ File saveFile = new File(path + fileName + extName);
+ FileUtils.copyInputStreamToFile(excel.getInputStream(), saveFile);
+ saveFilePath = path + fileName + extName;
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return contentAntistopService.saveContentAntistopExcel(saveFilePath);
+ }
+
+
+ @ApiOperation(value = "评论敏感词库", notes = "评论敏感词库接口")
+ @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
+ @PostMapping("savecontentantistop")
+ @CheckRequestBodyAnnotation
+ public SuccessResult saveContentAntistop(@RequestBody ContentAntistopVO contentAntistopVO) throws Exception {
+ return contentAntistopService.saveContentAntistop(contentAntistopVO);
+ }
+
+ @ApiOperation(value = "删除评论敏感词库(id列表)", notes = "删除评论敏感词库(id列表)接口")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "ids", value = "ID列表,用下划线分隔", paramType = "path", example = "1_2_3")
+ })
+ @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
+ @DeleteMapping("removecontentantistop/{ids}")
+ public SuccessResult removeContentAntistop(@PathVariable("ids") String ids) throws RemoveException {
+ return contentAntistopService.removeContentAntistop(ids);
+ }
+
+ @ApiOperation(value = "修改评论敏感词库", notes = "修改评论敏感词库接口")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "contentAntistopId", value = "评论敏感词库ID", paramType = "path")
+ })
+ @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
+ @PutMapping("updatecontentantistop/{contentAntistopId}")
+ @CheckRequestBodyAnnotation
+ public SuccessResult updateContentAntistop(@PathVariable("contentAntistopId") String contentAntistopId, @RequestBody ContentAntistopVO contentAntistopVO) throws Exception {
+ return contentAntistopService.updateContentAntistop(contentAntistopId, contentAntistopVO);
+ }
+
+ @ApiOperation(value = "评论敏感词库详情(通过ID)", notes = "评论敏感词库详情(通过ID)接口")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "contentAntistopId", value = "评论敏感词库ID", paramType = "path")
+ })
+ @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
+ @GetMapping("getcontentantistopbyid/{contentAntistopId}")
+ public ContentAntistopDTO getContentAntistopById(@PathVariable("contentAntistopId") String contentAntistopId) throws SearchException {
+ return contentAntistopService.getContentAntistopById(contentAntistopId);
+ }
+
+ @ApiOperation(value = "评论敏感词库列表", notes = "评论敏感词库列表接口")
+ @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
+ @GetMapping("listcontentantistop")
+ public List listContentAntistop() throws SearchException {
+ Map params = requestParams();
+ return contentAntistopService.listContentAntistop(params);
+ }
+
+ @ApiOperation(value = "评论敏感词库分页列表", notes = "评论敏感词库分页列表接口")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "page", value = "当前页码", paramType = "form", dataType = "Integer", defaultValue = "1"),
+ @ApiImplicitParam(name = "rows", value = "显示数量", paramType = "form", dataType = "Integer", defaultValue = "20"),
+ @ApiImplicitParam(name = "keywords", value = "关键字", paramType = "form", dataType = "String"),
+ @ApiImplicitParam(name = "startTime", value = "开始时间", paramType = "form", dataType = "String"),
+ @ApiImplicitParam(name = "endTime", value = "结束时间", paramType = "form", dataType = "String")
+ })
+ @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
+ @GetMapping("listpagecontentantistop")
+ public SuccessResultList> listPageContentAntistop(ListPage page) throws SearchException {
+ Map params = requestParams();
+ page.setParams(params);
+ return contentAntistopService.listPageContentAntistop(page);
+ }
+
+ @ApiOperation(value = "当前用户id信息", notes = "当前用户id信息接口")
+ @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
+ @GetMapping("getcurrentuseridinfo")
+ public CurrentUserIdInfoDTO getCurrentUserIdInfo() {
+ return securityComponent.getCurrentUserIdInfo();
+ }
+
+}
\ No newline at end of file
diff --git a/module-config-content/src/main/java/cn/com/tenlion/configcontent/controller/route/contentantistop/ContentAntistopRouteController.java b/module-config-content/src/main/java/cn/com/tenlion/configcontent/controller/route/contentantistop/ContentAntistopRouteController.java
new file mode 100644
index 0000000..165136f
--- /dev/null
+++ b/module-config-content/src/main/java/cn/com/tenlion/configcontent/controller/route/contentantistop/ContentAntistopRouteController.java
@@ -0,0 +1,43 @@
+package cn.com.tenlion.configcontent.controller.route.contentantistop;
+
+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: ContentCollectController
+ * @Description:
+ * @Author: CodeFactory
+ * @Date: 2021-08-02 10:30:13
+ * @Version: 3.0
+ **/
+@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "")
+@RestController
+@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/contentantistop")
+public class ContentAntistopRouteController extends DefaultBaseController {
+
+ @GetMapping("save")
+ public ModelAndView save() {
+ return new ModelAndView("contentantistop/save");
+ }
+
+ @GetMapping("update")
+ public ModelAndView update() {
+ return new ModelAndView("contentantistop/update");
+ }
+
+ @GetMapping("list")
+ public ModelAndView list() {
+ return new ModelAndView("contentantistop/list");
+ }
+
+ @GetMapping("saveexlce")
+ public ModelAndView saveExlce() {
+ return new ModelAndView("contentantistop/save-excel");
+ }
+
+}
\ No newline at end of file
diff --git a/module-config-content/src/main/java/cn/com/tenlion/configcontent/dao/contentantistop/IContentAntistopDao.java b/module-config-content/src/main/java/cn/com/tenlion/configcontent/dao/contentantistop/IContentAntistopDao.java
new file mode 100644
index 0000000..7791be5
--- /dev/null
+++ b/module-config-content/src/main/java/cn/com/tenlion/configcontent/dao/contentantistop/IContentAntistopDao.java
@@ -0,0 +1,65 @@
+package cn.com.tenlion.configcontent.dao.contentantistop;
+
+import cn.com.tenlion.configcontent.pojo.dtos.contentantistop.ContentAntistopDTO;
+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: IContentAntistopDao
+ * @Description: 内容评论敏感词库
+ * @Author: WenG
+ * @Date: 2020-05-08 23:30
+ * @Version: 1.0
+ **/
+@Repository
+public interface IContentAntistopDao {
+
+ /**
+ * 新增内容评论敏感词库
+ *
+ * @param params
+ * @throws SaveException
+ */
+ void saveContentAntistop(Map params) throws SaveException;
+
+ /**
+ * 删除内容评论敏感词库
+ *
+ * @param params
+ * @throws RemoveException
+ */
+ void removeContentAntistop(Map params) throws RemoveException;
+
+ /**
+ * 修改内容评论敏感词库
+ *
+ * @param params
+ * @throws UpdateException
+ */
+ void updateContentAntistop(Map params) throws UpdateException;
+
+ /**
+ * 内容评论敏感词库详情
+ *
+ * @param params
+ * @return
+ * @throws SearchException
+ */
+ ContentAntistopDTO getContentAntistop(Map params) throws SearchException;
+
+ /**
+ * 内容评论敏感词库列表
+ *
+ * @param params
+ * @return
+ * @throws SearchException
+ */
+ List listContentAntistop(Map params) throws SearchException;
+
+ ContentAntistopDTO getContentAntistopByName(Map params) throws SearchException;
+}
diff --git a/module-config-content/src/main/resources/templates/contentantistop/list.html b/module-config-content/src/main/resources/templates/contentantistop/list.html
new file mode 100644
index 0000000..0756862
--- /dev/null
+++ b/module-config-content/src/main/resources/templates/contentantistop/list.html
@@ -0,0 +1,257 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/module-config-content/src/main/resources/templates/contentantistop/save-excel.html b/module-config-content/src/main/resources/templates/contentantistop/save-excel.html
new file mode 100644
index 0000000..d7adcdb
--- /dev/null
+++ b/module-config-content/src/main/resources/templates/contentantistop/save-excel.html
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
点击“下载模板”整理数据,点击“导入数据”上传,格式为xls或xlsx
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/module-config-content/src/main/resources/templates/contentantistop/save.html b/module-config-content/src/main/resources/templates/contentantistop/save.html
new file mode 100644
index 0000000..151d0cd
--- /dev/null
+++ b/module-config-content/src/main/resources/templates/contentantistop/save.html
@@ -0,0 +1,180 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/module-config-content/src/main/resources/templates/contentantistop/update.html b/module-config-content/src/main/resources/templates/contentantistop/update.html
new file mode 100644
index 0000000..fe28363
--- /dev/null
+++ b/module-config-content/src/main/resources/templates/contentantistop/update.html
@@ -0,0 +1,190 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pojo-config-content/pom.xml b/pojo-config-content/pom.xml
new file mode 100644
index 0000000..d726185
--- /dev/null
+++ b/pojo-config-content/pom.xml
@@ -0,0 +1,21 @@
+
+
+
+ tenlion-module
+ cn.com.tenlion
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ pojo-config-content
+
+
+
+ ink.wgink
+ common
+ 1.0-SNAPSHOT
+
+
+
\ No newline at end of file