From 310b32c5d6c186157fbea2044850d19c425d3326 Mon Sep 17 00:00:00 2001 From: wangzhijiang <12345678> Date: Mon, 8 Aug 2022 11:26:50 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=AE=E9=A2=98=E7=9F=A5=E8=AF=86=E5=BA=93?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E6=8E=A5=E5=8F=A3=E5=BC=80=E5=8F=91=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...blemKnowledgeBaseClassifyEOController.java | 4 +- ...oblemKnowledgeBaseCommentEOController.java | 6 +- .../ProblemKnowledgeBaseEOController.java | 13 +- .../entity/ProblemKnowledgeBaseEO.java | 31 ++++ .../enums/CollectStatusEnum.java | 46 +++++ .../enums/PraiseStatusEnum.java | 46 +++++ .../enums/ShowPermissionsEnum.java | 46 +++++ ...IProblemKnowledgeBaseCommentEOService.java | 4 +- .../IProblemKnowledgeBaseEOService.java | 14 +- ...CountryCardManageReleaseEOServiceImpl.java | 3 + .../impl/CountryCardTempEOServiceImpl.java | 4 + ...blemKnowledgeBaseCommentEOServiceImpl.java | 10 +- .../ProblemKnowledgeBaseEOServiceImpl.java | 164 +++++++++++++++++- 13 files changed, 370 insertions(+), 21 deletions(-) create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/enums/CollectStatusEnum.java create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/enums/PraiseStatusEnum.java create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/enums/ShowPermissionsEnum.java diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/controller/ProblemKnowledgeBaseClassifyEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/controller/ProblemKnowledgeBaseClassifyEOController.java index 3e9f5c700..40bc6cf3e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/controller/ProblemKnowledgeBaseClassifyEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/controller/ProblemKnowledgeBaseClassifyEOController.java @@ -35,7 +35,7 @@ import com.jero.common.aspect.annotation.AutoLog; public class ProblemKnowledgeBaseClassifyEOController extends JeroController { @Autowired private IProblemKnowledgeBaseClassifyEOService problemKnowledgeBaseClassifyEOService; - + /** * 分页列表查询 * @@ -93,7 +93,7 @@ public class ProblemKnowledgeBaseClassifyEOController extends JeroController edit(@Validated @RequestBody ProblemKnowledgeBaseClassifyEO problemKnowledgeBaseClassifyEO) { problemKnowledgeBaseClassifyEOService.editById(problemKnowledgeBaseClassifyEO); return Result.OK("编辑成功!"); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/controller/ProblemKnowledgeBaseCommentEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/controller/ProblemKnowledgeBaseCommentEOController.java index f3b4b1d01..866729479 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/controller/ProblemKnowledgeBaseCommentEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/controller/ProblemKnowledgeBaseCommentEOController.java @@ -35,7 +35,7 @@ import com.jero.common.aspect.annotation.AutoLog; public class ProblemKnowledgeBaseCommentEOController extends JeroController { @Autowired private IProblemKnowledgeBaseCommentEOService problemKnowledgeBaseCommentEOService; - + /** * 分页列表查询 * @@ -66,8 +66,8 @@ public class ProblemKnowledgeBaseCommentEOController extends JeroController> queryList() { - List list = problemKnowledgeBaseCommentEOService.queryList(); + public Result> queryList(ProblemKnowledgeBaseCommentEO problemKnowledgeBaseCommentEO,HttpServletRequest req) { + List list = problemKnowledgeBaseCommentEOService.queryList(problemKnowledgeBaseCommentEO,req); return Result.OK(list); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/controller/ProblemKnowledgeBaseEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/controller/ProblemKnowledgeBaseEOController.java index 09bbe185d..8a991b3c4 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/controller/ProblemKnowledgeBaseEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/controller/ProblemKnowledgeBaseEOController.java @@ -35,7 +35,7 @@ import com.jero.common.aspect.annotation.AutoLog; public class ProblemKnowledgeBaseEOController extends JeroController { @Autowired private IProblemKnowledgeBaseEOService problemKnowledgeBaseEOService; - + /** * 分页列表查询 * @@ -55,6 +55,7 @@ public class ProblemKnowledgeBaseEOController extends JeroController queryWrapper = QueryGenerator.initQueryWrapper(problemKnowledgeBaseEO, req.getParameterMap()); Page page = new Page(pageNo, pageSize); IPage pageList = problemKnowledgeBaseEOService.page(page, queryWrapper); + this.problemKnowledgeBaseEOService.disposeData(pageList.getRecords(),problemKnowledgeBaseEO.getCut()); return Result.OK(pageList); } @@ -66,8 +67,9 @@ public class ProblemKnowledgeBaseEOController extends JeroController> queryList() { - List list = problemKnowledgeBaseEOService.queryList(); + public Result> queryList(ProblemKnowledgeBaseEO problemKnowledgeBaseEO, + HttpServletRequest req) { + List list = problemKnowledgeBaseEOService.queryList(problemKnowledgeBaseEO,req); return Result.OK(list); } @@ -136,8 +138,9 @@ public class ProblemKnowledgeBaseEOController extends JeroController queryById(@RequestParam(name="id",required=true) String id) { - ProblemKnowledgeBaseEO problemKnowledgeBaseEO = problemKnowledgeBaseEOService.queryById(id); + public Result queryById(@RequestParam(name="id",required=true) String id, + @RequestParam(name="cut",required=true) String cut) { + ProblemKnowledgeBaseEO problemKnowledgeBaseEO = problemKnowledgeBaseEOService.queryById(id,cut); if(problemKnowledgeBaseEO==null) { return Result.error("未找到对应数据"); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/ProblemKnowledgeBaseEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/ProblemKnowledgeBaseEO.java index ac34b78ff..492a10074 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/ProblemKnowledgeBaseEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/ProblemKnowledgeBaseEO.java @@ -3,7 +3,10 @@ package com.jero.modules.problemKnowledgeBase.entity; import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; +import java.util.List; + import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -129,6 +132,13 @@ public class ProblemKnowledgeBaseEO implements Serializable { @Excel(name = "展示权限", width = 15) @ApiModelProperty(value = "展示权限") private java.lang.String showPermissions; + /**展示权限翻译*/ + @TableField(exist = false) + private java.lang.String showPermissions_dicText; + + /**允许的用户列表*/ + @TableField(exist = false) + private List permissionUserList; /**发布人id*/ @Excel(name = "展示权限", width = 15) @@ -140,4 +150,25 @@ public class ProblemKnowledgeBaseEO implements Serializable { @ApiModelProperty(value = "发布日期") private java.lang.String releaseTime; + /**点赞总数量*/ + @TableField(exist = false) + private long praiseCount; + /**自己的点赞信息*/ + @TableField(exist = false) + private ProblemKnowledgeBasePraiseEO praiseEO; + + /**收藏总数量*/ + @TableField(exist = false) + private long collectCount; + /**自己的收藏信息*/ + @TableField(exist = false) + private ProblemKnowledgeBaseCollectEO collectEO; + + /**浏览总数量*/ + @TableField(exist = false) + private long browsingHistoryCount; + + /**中英文切换*/ + @TableField(exist = false) + private String cut; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/enums/CollectStatusEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/enums/CollectStatusEnum.java new file mode 100644 index 000000000..6185dfa67 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/enums/CollectStatusEnum.java @@ -0,0 +1,46 @@ +package com.jero.modules.problemKnowledgeBase.enums; + +import com.jero.common.constant.enums.CutEnum; +import org.apache.commons.lang3.StringUtils; + +/** + * 问题知识库-收藏状态枚举类 + */ +public enum CollectStatusEnum { + + COLLECT("收藏","Collect","Collect"), + CANCEL_COLLECT("取消收藏","Cancel collect","Cancel collect"), + ; + + String cnName; + String enName; + String value; + + private CollectStatusEnum(String cnName, String enName, String value) { + this.cnName = cnName; + this.enName = enName; + this.value = value; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static String getTextByValue(String value,String cut) { + CollectStatusEnum[] values = values(); + for (CollectStatusEnum collectStatusEnum : values) { + if (collectStatusEnum.value.equals(value)) { + if(StringUtils.equals(cut, CutEnum.CN.getValue())){ + return collectStatusEnum.cnName; + }else if(StringUtils.equals(cut,CutEnum.EN.getValue())){ + return collectStatusEnum.enName; + } + } + } + return null; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/enums/PraiseStatusEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/enums/PraiseStatusEnum.java new file mode 100644 index 000000000..f8dd21f30 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/enums/PraiseStatusEnum.java @@ -0,0 +1,46 @@ +package com.jero.modules.problemKnowledgeBase.enums; + +import com.jero.common.constant.enums.CutEnum; +import org.apache.commons.lang3.StringUtils; + +/** + * 问题知识库-点赞状态枚举类 + */ +public enum PraiseStatusEnum { + + PRAISE("点赞","Praise","Praise"), + CANCEL_PRAISE("取消点赞","Cancel praise","Cancel praise"), + ; + + String cnName; + String enName; + String value; + + private PraiseStatusEnum(String cnName, String enName, String value) { + this.cnName = cnName; + this.enName = enName; + this.value = value; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static String getTextByValue(String value,String cut) { + PraiseStatusEnum[] values = values(); + for (PraiseStatusEnum praiseStatusEnum : values) { + if (praiseStatusEnum.value.equals(value)) { + if(StringUtils.equals(cut, CutEnum.CN.getValue())){ + return praiseStatusEnum.cnName; + }else if(StringUtils.equals(cut,CutEnum.EN.getValue())){ + return praiseStatusEnum.enName; + } + } + } + return null; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/enums/ShowPermissionsEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/enums/ShowPermissionsEnum.java new file mode 100644 index 000000000..c12138f66 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/enums/ShowPermissionsEnum.java @@ -0,0 +1,46 @@ +package com.jero.modules.problemKnowledgeBase.enums; + +import com.jero.common.constant.enums.CutEnum; +import org.apache.commons.lang3.StringUtils; + +/** + * 问题知识库-展示权限枚举类 + */ +public enum ShowPermissionsEnum { + + OPEN("公开","Open","Open"), + PRIVACY("私密","Privacy","Privacy"), + ; + + String cnName; + String enName; + String value; + + private ShowPermissionsEnum(String cnName, String enName, String value) { + this.cnName = cnName; + this.enName = enName; + this.value = value; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public static String getTextByValue(String value,String cut) { + ShowPermissionsEnum[] values = values(); + for (ShowPermissionsEnum showPermissionsEnum : values) { + if (showPermissionsEnum.value.equals(value)) { + if(StringUtils.equals(cut, CutEnum.CN.getValue())){ + return showPermissionsEnum.cnName; + }else if(StringUtils.equals(cut,CutEnum.EN.getValue())){ + return showPermissionsEnum.enName; + } + } + } + return null; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/IProblemKnowledgeBaseCommentEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/IProblemKnowledgeBaseCommentEOService.java index a3b779b5f..d8933714c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/IProblemKnowledgeBaseCommentEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/IProblemKnowledgeBaseCommentEOService.java @@ -2,6 +2,8 @@ package com.jero.modules.problemKnowledgeBase.service; import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseCommentEO; import com.baomidou.mybatisplus.extension.service.IService; + +import javax.servlet.http.HttpServletRequest; import java.util.List; /** @@ -57,5 +59,5 @@ public interface IProblemKnowledgeBaseCommentEOService extends IService queryList(); + List queryList(ProblemKnowledgeBaseCommentEO problemKnowledgeBaseCommentEO, HttpServletRequest req); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/IProblemKnowledgeBaseEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/IProblemKnowledgeBaseEOService.java index 426a968f0..93645bb8f 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/IProblemKnowledgeBaseEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/IProblemKnowledgeBaseEOService.java @@ -2,6 +2,8 @@ package com.jero.modules.problemKnowledgeBase.service; import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseEO; import com.baomidou.mybatisplus.extension.service.IService; + +import javax.servlet.http.HttpServletRequest; import java.util.List; /** @@ -50,12 +52,20 @@ public interface IProblemKnowledgeBaseEOService extends IService queryList(); + List queryList(ProblemKnowledgeBaseEO problemKnowledgeBaseEO, + HttpServletRequest req); + + /** + * 处理数据 + * @param datas + * @param cut + */ + void disposeData(List datas,String cut); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/CountryCardManageReleaseEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/CountryCardManageReleaseEOServiceImpl.java index 52d5a6810..0c3b70a06 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/CountryCardManageReleaseEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/CountryCardManageReleaseEOServiceImpl.java @@ -88,6 +88,9 @@ public class CountryCardManageReleaseEOServiceImpl extends ServiceImpl ids) { removeByIds(ids); + QueryWrapper manageReleaseDetailEODeleteWrapper = new QueryWrapper<>(); + manageReleaseDetailEODeleteWrapper.lambda().in(CountryCardManageReleaseDetailEO::getCountryCardManageReleaseId,ids); + this.countryCardManageReleaseDetailEOService.remove(manageReleaseDetailEODeleteWrapper); } /** diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/CountryCardTempEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/CountryCardTempEOServiceImpl.java index 73511969a..f1fcbe2e5 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/CountryCardTempEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/CountryCardTempEOServiceImpl.java @@ -93,6 +93,10 @@ public class CountryCardTempEOServiceImpl extends ServiceImpl ids) { removeByIds(ids); + + QueryWrapper itemDeleteWrapper = new QueryWrapper<>(); + itemDeleteWrapper.lambda().in(CountryCardTempItemEO::getCountryCardTempId,ids); + this.countryCardTempItemEOService.remove(itemDeleteWrapper); } /** diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/ProblemKnowledgeBaseCommentEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/ProblemKnowledgeBaseCommentEOServiceImpl.java index 4414a118e..9ea733740 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/ProblemKnowledgeBaseCommentEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/ProblemKnowledgeBaseCommentEOServiceImpl.java @@ -1,5 +1,7 @@ package com.jero.modules.problemKnowledgeBase.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.jero.common.system.query.QueryGenerator; import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseCommentEO; import com.jero.modules.problemKnowledgeBase.mapper.ProblemKnowledgeBaseCommentEOMapper; import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseCommentEOService; @@ -10,6 +12,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.http.HttpServletRequest; + /** * @Description: 问题知识库评论表 * @Author: jero-boot @@ -86,7 +90,9 @@ public class ProblemKnowledgeBaseCommentEOServiceImpl extends ServiceImpl queryList() { - return list(); + public List queryList(ProblemKnowledgeBaseCommentEO problemKnowledgeBaseCommentEO, HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(problemKnowledgeBaseCommentEO, req.getParameterMap()); + List result = this.list(queryWrapper); + return result; } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/ProblemKnowledgeBaseEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/ProblemKnowledgeBaseEOServiceImpl.java index a32d7ac4e..06583b4e9 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/ProblemKnowledgeBaseEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/ProblemKnowledgeBaseEOServiceImpl.java @@ -1,15 +1,29 @@ package com.jero.modules.problemKnowledgeBase.service.impl; -import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseEO; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.jero.common.system.query.QueryGenerator; +import com.jero.common.system.vo.LoginUser; +import com.jero.modules.problemKnowledgeBase.entity.*; +import com.jero.modules.problemKnowledgeBase.enums.ShowPermissionsEnum; import com.jero.modules.problemKnowledgeBase.mapper.ProblemKnowledgeBaseEOMapper; -import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseEOService; +import com.jero.modules.problemKnowledgeBase.service.*; +import com.jero.modules.system.util.StringUtils; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.shiro.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.util.ArrayList; import java.util.List; import java.util.Date; +import java.util.stream.Collectors; + import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.http.HttpServletRequest; + /** * @Description: 问题知识库表 * @Author: jero-boot @@ -20,6 +34,15 @@ import org.springframework.transaction.annotation.Transactional; @Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class) public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl implements IProblemKnowledgeBaseEOService { + @Autowired + private IProblemKnowledgeBaseUserEOService problemKnowledgeBaseUserEOService; + @Autowired + private IProblemKnowledgeBasePraiseEOService problemKnowledgeBasePraiseEOService; + @Autowired + private IProblemKnowledgeBaseCollectEOService problemKnowledgeBaseCollectEOService; + @Autowired + private IProblemKnowledgeBaseBrowsingHistoryEOService problemKnowledgeBaseBrowsingHistoryEOService; + /** * 保存 * @@ -32,6 +55,11 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl problemKnowledgeBaseEOList = new ArrayList<>(); + problemKnowledgeBaseEOList.add(problemKnowledgeBaseEO); + this.disposeData(problemKnowledgeBaseEOList,cut); + if (CollectionUtils.isNotEmpty(problemKnowledgeBaseEOList)) { + problemKnowledgeBaseEO = problemKnowledgeBaseEOList.get(0); + } + return problemKnowledgeBaseEO; } /** @@ -86,7 +126,119 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl queryList() { - return list(); + public List queryList(ProblemKnowledgeBaseEO problemKnowledgeBaseEO, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(problemKnowledgeBaseEO, req.getParameterMap()); + List result = this.list(queryWrapper); + this.disposeData(result,problemKnowledgeBaseEO.getCut()); + return result; } + + /** + * 批量添加问题知识库展示权限表数据。 + */ + public void batchInsertProblemKnowledgeBaseUserEO(ProblemKnowledgeBaseEO problemKnowledgeBaseEO){ + //1.把当前问题知识库所有的权限删掉。 + QueryWrapper deleteWrapper = new QueryWrapper<>(); + deleteWrapper.lambda().eq(ProblemKnowledgeBaseUserEO::getProblemKnowledgeBaseId,problemKnowledgeBaseEO.getId()); + this.problemKnowledgeBaseUserEOService.remove(deleteWrapper); + + List permissionUserList = problemKnowledgeBaseEO.getPermissionUserList(); + + //2.获取当前登录用户信息,把当前登录用户组成一条数据添加进权限表 + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + ProblemKnowledgeBaseUserEO currentUserPermission = new ProblemKnowledgeBaseUserEO(); + currentUserPermission.setUserId(currentUser.getId()); + + permissionUserList.add(currentUserPermission); + + permissionUserList.forEach(permissionUser -> { + permissionUser.setProblemKnowledgeBaseId(problemKnowledgeBaseEO.getId()); + }); + + //3.把允许的用户添加进权限表。 + this.problemKnowledgeBaseUserEOService.saveOrUpdateBatch(permissionUserList); + } + + @Override + public void disposeData(List datas,String cut){ + if (CollectionUtils.isNotEmpty(datas)) { + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + List probleKnowledgeBaseIdList = datas.stream().map(ProblemKnowledgeBaseEO::getId).distinct().collect(Collectors.toList()); + //查询出数据的所有点赞数量 + QueryWrapper praiseQueryWrapper = new QueryWrapper<>(); + praiseQueryWrapper.lambda().in(ProblemKnowledgeBasePraiseEO::getProblemKnowledgeBaseId,probleKnowledgeBaseIdList); + List praiseEOList = this.problemKnowledgeBasePraiseEOService.list(praiseQueryWrapper); + + //查询出数据的所有的浏览数量 + QueryWrapper browsingHistoryQueryWrapper = new QueryWrapper<>(); + browsingHistoryQueryWrapper.lambda().in(ProblemKnowledgeBaseBrowsingHistoryEO::getProblemKnowledgeBaseId,probleKnowledgeBaseIdList); + List browsingHistoryEOList = this.problemKnowledgeBaseBrowsingHistoryEOService.list(browsingHistoryQueryWrapper); + + //查询出数据的所有的收藏数量 + QueryWrapper collectQueryWrapper = new QueryWrapper<>(); + collectQueryWrapper.lambda().in(ProblemKnowledgeBaseCollectEO::getProblemKnowledgeBaseId,probleKnowledgeBaseIdList); + List collectEOList = this.problemKnowledgeBaseCollectEOService.list(collectQueryWrapper); + + datas.forEach(data -> { + if(StringUtils.isNotEmpty(data.getShowPermissions())){ + data.setShowPermissions_dicText(ShowPermissionsEnum.getTextByValue(data.getShowPermissions(),cut)); + } + + long praiseCount = praiseEOList.stream().filter(praiseEO -> { + boolean flag = false; + if(StringUtils.equals(data.getId(),praiseEO.getProblemKnowledgeBaseId())){ + flag = true; + } + return flag; + }).count(); + data.setPraiseCount(praiseCount); + + List poblemKnowledgeBasePraiseEOS = praiseEOList.stream().filter(praiseEO -> { + boolean flag = false; + if(StringUtils.equals(data.getId(),praiseEO.getProblemKnowledgeBaseId()) + && StringUtils.equals(praiseEO.getPraiseUserId(),currentUser.getId())){ + flag = true; + } + return flag; + }).collect(Collectors.toList()); + + if(CollectionUtils.isNotEmpty(poblemKnowledgeBasePraiseEOS)){ + data.setPraiseEO(poblemKnowledgeBasePraiseEOS.get(0)); + } + + long browsingHistoryCount = browsingHistoryEOList.stream().filter(praiseEO -> { + boolean flag = false; + if(StringUtils.equals(data.getId(),praiseEO.getProblemKnowledgeBaseId())){ + flag = true; + } + return flag; + }).count(); + data.setBrowsingHistoryCount(browsingHistoryCount); + + long collectCount = collectEOList.stream().filter(collectEO -> { + boolean flag = false; + if(StringUtils.equals(data.getId(),collectEO.getProblemKnowledgeBaseId())){ + flag = true; + } + return flag; + }).count(); + data.setCollectCount(collectCount); + + List problemKnowledgeBaseCollectEOS = collectEOList.stream().filter(collectEO -> { + boolean flag = false; + if(StringUtils.equals(data.getId(),collectEO.getProblemKnowledgeBaseId()) + && StringUtils.equals(collectEO.getCollectUserId(),currentUser.getId())){ + flag = true; + } + return flag; + }).collect(Collectors.toList()); + + if(CollectionUtils.isNotEmpty(problemKnowledgeBaseCollectEOS)){ + data.setCollectEO(problemKnowledgeBaseCollectEOS.get(0)); + } + }); + } + } }