diff --git a/hope-winery/src/main/java/com/ruoyi/winery/component/MiniComponent.java b/hope-winery/src/main/java/com/ruoyi/winery/component/MiniComponent.java index 6745854f2..4fe11cb9e 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/component/MiniComponent.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/component/MiniComponent.java @@ -27,7 +27,6 @@ import com.ruoyi.winery.config.wx.WxMiniProperties; import com.ruoyi.winery.domain.winery.WineryMauser; import com.ruoyi.winery.service.IWineryMauserService; -import com.sun.tools.javac.util.List; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.error.WxErrorException; import org.springframework.beans.factory.annotation.Autowired; diff --git a/hope-winery/src/main/java/com/ruoyi/winery/controller/NewsContentController.java b/hope-winery/src/main/java/com/ruoyi/winery/controller/NewsContentController.java index 123a71fa5..ad08d39b0 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/controller/NewsContentController.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/controller/NewsContentController.java @@ -49,9 +49,9 @@ public class NewsContentController extends BaseController { public TableDataInfo list(UsernamePasswordAuthenticationToken token, NewsContent newsContent) { startPage(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(newsContent); - lqw.eq(NewsContent::getDeptId, getDeptId(token)); + if (StringUtils.isNotBlank(newsContent.getNewsTitle())) { lqw.eq(NewsContent::getNewsTitle, newsContent.getNewsTitle()); } diff --git a/hope-winery/src/main/java/com/ruoyi/winery/controller/appdiscuss/AppDiscussController.java b/hope-winery/src/main/java/com/ruoyi/winery/controller/appdiscuss/AppDiscussController.java index df84cd22e..34553c6a5 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/controller/appdiscuss/AppDiscussController.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/controller/appdiscuss/AppDiscussController.java @@ -1,15 +1,20 @@ package com.ruoyi.winery.controller.appdiscuss; +import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import java.util.List; import java.util.Arrays; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import lombok.RequiredArgsConstructor; + +import org.apache.poi.util.StringUtil; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; @@ -29,109 +34,112 @@ import com.ruoyi.common.core.page.TableDataInfo; /** * app评论Controller - * + * * @author ruoyi * @date 2021-01-08 */ @RequiredArgsConstructor(onConstructor_ = @Autowired) @RestController -@RequestMapping("/app/discuss" ) +@RequestMapping("/app/discuss") public class AppDiscussController extends BaseController { - private final IAppDiscussService iAppDiscussService; - /** * 查询app评论列表 */ - @PreAuthorize("@ss.hasPermi('app:discuss:list')") + @PreAuthorize("@ss.hasPermi('app:discuss:list')")//TODO之后去理解 @GetMapping("/list") - public TableDataInfo list(AppDiscuss appDiscuss) - { + + public TableDataInfo list(UsernamePasswordAuthenticationToken token, AppDiscuss appDiscuss) { startPage(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(appDiscuss); - if (appDiscuss.getDeptId() != null){ - lqw.eq(AppDiscuss::getDeptId ,appDiscuss.getDeptId()); + + lqw.eq(AppDiscuss::getDeptId, SecurityUtils.getDept()); + + + if (StringUtils.isNotBlank(appDiscuss.getAppDiscussReplyId())) { + lqw.eq(AppDiscuss::getAppDiscussReplyId, appDiscuss.getAppDiscussReplyId()); } - if (appDiscuss.getState() != null){ - lqw.eq(AppDiscuss::getState ,appDiscuss.getState()); + if (StringUtils.isNotBlank(appDiscuss.getAppDiscussText())) { + lqw.eq(AppDiscuss::getAppDiscussText, appDiscuss.getAppDiscussText()); } - if (StringUtils.isNotBlank(appDiscuss.getCreateUser())){ - lqw.eq(AppDiscuss::getCreateUser ,appDiscuss.getCreateUser()); + if (StringUtils.isNotBlank(appDiscuss.getAppAssociationId())) { + lqw.eq(AppDiscuss::getAppAssociationId, appDiscuss.getAppAssociationId()); } - if (StringUtils.isNotBlank(appDiscuss.getUpdateUser())){ - lqw.eq(AppDiscuss::getUpdateUser ,appDiscuss.getUpdateUser()); + if (StringUtils.isNotBlank(appDiscuss.getAppDiscussImage())) { + lqw.eq(AppDiscuss::getAppDiscussImage, appDiscuss.getAppDiscussImage()); } - if (StringUtils.isNotBlank(appDiscuss.getAppDiscussReplyId())){ - lqw.eq(AppDiscuss::getAppDiscussReplyId ,appDiscuss.getAppDiscussReplyId()); + if (StringUtils.isNotBlank(appDiscuss.getAppDiscussExtraUsername())) { + lqw.like(AppDiscuss::getAppDiscussExtraUsername, appDiscuss.getAppDiscussExtraUsername()); } - if (StringUtils.isNotBlank(appDiscuss.getAppDiscussText())){ - lqw.eq(AppDiscuss::getAppDiscussText ,appDiscuss.getAppDiscussText()); + if (StringUtils.isNotBlank(appDiscuss.getAppDiscussExtraMobile())) { + lqw.eq(AppDiscuss::getAppDiscussExtraMobile, appDiscuss.getAppDiscussExtraMobile()); } - if (StringUtils.isNotBlank(appDiscuss.getAppAssociationId())){ - lqw.eq(AppDiscuss::getAppAssociationId ,appDiscuss.getAppAssociationId()); + if (appDiscuss.getAppDiscussRecommend() != null) { + lqw.eq(AppDiscuss::getAppDiscussRecommend, appDiscuss.getAppDiscussRecommend()); } - if (StringUtils.isNotBlank(appDiscuss.getAppDiscussImage())){ - lqw.eq(AppDiscuss::getAppDiscussImage ,appDiscuss.getAppDiscussImage()); + if (appDiscuss.getAppDiscussType() != null) { + lqw.eq(AppDiscuss::getAppDiscussType, appDiscuss.getAppDiscussType()); } -// if (StringUtils.isNotBlank(appDiscuss.getAppDiscussVideo())){ -// lqw.eq(AppDiscuss::getAppDiscussVideo ,appDiscuss.getAppDiscussVideo()); -// } - if (StringUtils.isNotBlank(appDiscuss.getAppDiscussExtraUsername())){ - lqw.like(AppDiscuss::getAppDiscussExtraUsername ,appDiscuss.getAppDiscussExtraUsername()); - } - if (StringUtils.isNotBlank(appDiscuss.getAppDiscussExtraMobile())){ - lqw.eq(AppDiscuss::getAppDiscussExtraMobile ,appDiscuss.getAppDiscussExtraMobile()); - } - if (appDiscuss.getAppDiscussRecommend() != null){ - lqw.eq(AppDiscuss::getAppDiscussRecommend ,appDiscuss.getAppDiscussRecommend()); - } - if (appDiscuss.getAppDiscussType() != null){ - lqw.eq(AppDiscuss::getAppDiscussType ,appDiscuss.getAppDiscussType()); - } - if (StringUtils.isNotBlank(appDiscuss.getAppDiscussReplyUser())){ - lqw.eq(AppDiscuss::getAppDiscussReplyUser ,appDiscuss.getAppDiscussReplyUser()); + if (StringUtils.isNotBlank(appDiscuss.getAppDiscussReplyUser())) { + lqw.eq(AppDiscuss::getAppDiscussReplyUser, appDiscuss.getAppDiscussReplyUser()); } + List list = iAppDiscussService.list(lqw); + + for (int i = 0; i < list.size(); i++) { + + String prentId = list.get(i).getId(); + + List children = iAppDiscussService.getAllReply(prentId); + + list.get(i).setChildren(children); + + } return getDataTable(list); } /** * 导出app评论列表 */ - @PreAuthorize("@ss.hasPermi('app:discuss:export')" ) - @Log(title = "app评论" , businessType = BusinessType.EXPORT) - @GetMapping("/export" ) + @PreAuthorize("@ss.hasPermi('app:discuss:export')") + @Log(title = "app评论", businessType = BusinessType.EXPORT) + @GetMapping("/export") public AjaxResult export(AppDiscuss appDiscuss) { LambdaQueryWrapper lqw = new LambdaQueryWrapper(appDiscuss); List list = iAppDiscussService.list(lqw); - ExcelUtil util = new ExcelUtil(AppDiscuss. class); - return util.exportExcel(list, "discuss" ); + ExcelUtil util = new ExcelUtil(AppDiscuss.class); + return util.exportExcel(list, "discuss"); } /** * 获取app评论详细信息 */ - @PreAuthorize("@ss.hasPermi('app:discuss:query')" ) - @GetMapping(value = "/{id}" ) - public AjaxResult getInfo(@PathVariable("id" ) String id) { - return AjaxResult.success(iAppDiscussService.getById(id)); + @PreAuthorize("@ss.hasPermi('app:discuss:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") String id) { + AppDiscuss appDiscuss = iAppDiscussService.getById(id); + List children = iAppDiscussService.getAllReply(appDiscuss.getId()); + appDiscuss.setChildren(children); + return AjaxResult.success(appDiscuss); } /** * 新增app评论 */ - @PreAuthorize("@ss.hasPermi('app:discuss:add')" ) - @Log(title = "app评论" , businessType = BusinessType.INSERT) + @PreAuthorize("@ss.hasPermi('app:discuss:add')") + @Log(title = "app评论", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody AppDiscuss appDiscuss) { + public AjaxResult add(UsernamePasswordAuthenticationToken token, @RequestBody AppDiscuss appDiscuss) { + appDiscuss.setDeptId(getDeptId(token)); return toAjax(iAppDiscussService.save(appDiscuss) ? 1 : 0); } /** * 修改app评论 */ - @PreAuthorize("@ss.hasPermi('app:discuss:edit')" ) - @Log(title = "app评论" , businessType = BusinessType.UPDATE) + @PreAuthorize("@ss.hasPermi('app:discuss:edit')") + @Log(title = "app评论", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody AppDiscuss appDiscuss) { return toAjax(iAppDiscussService.updateById(appDiscuss) ? 1 : 0); @@ -140,10 +148,33 @@ public class AppDiscussController extends BaseController { /** * 删除app评论 */ - @PreAuthorize("@ss.hasPermi('app:discuss:remove')" ) - @Log(title = "app评论" , businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}" ) + @PreAuthorize("@ss.hasPermi('app:discuss:remove')") + @Log(title = "app评论", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable String[] ids) { return toAjax(iAppDiscussService.removeByIds(Arrays.asList(ids)) ? 1 : 0); } -} + + + /** + * 实现一键添加等功能(修改它的state,让它从 待审核->审核通过) + */ + + @PutMapping("/edit_state/{ids}") + public AjaxResult editState(@PathVariable String[] ids, @RequestBody Integer state) { + + List idList = CollectionUtil.toList(ids); + + List list = iAppDiscussService.listByIds(idList); + + for (AppDiscuss d : list + ) { + d.setState(state); + iAppDiscussService.updateById(d); + + } + return AjaxResult.success(list); + } + + +} \ No newline at end of file diff --git a/hope-winery/src/main/java/com/ruoyi/winery/domain/appdiscuss/AppDiscuss.java b/hope-winery/src/main/java/com/ruoyi/winery/domain/appdiscuss/AppDiscuss.java index d89eb0b88..35d3e887e 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/domain/appdiscuss/AppDiscuss.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/domain/appdiscuss/AppDiscuss.java @@ -1,6 +1,9 @@ package com.ruoyi.winery.domain.appdiscuss; import com.baomidou.mybatisplus.annotation.IdType; + + +import com.baomidou.mybatisplus.annotation.TableField; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -11,7 +14,10 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; + import java.util.Date; +import java.util.List; + /** * app评论对象 app_discuss @@ -54,14 +60,6 @@ private static final long serialVersionUID=1L; @Excel(name = "数据状态,ON为数据启用,OFF为数据停用但仍在前端显示,DEL对数据用户来说已经删除") private Integer state; - /** 创建数据的用户id */ - @Excel(name = "创建数据的用户id") - private String createUser; - - /** 修改数据的用户id */ - @Excel(name = "修改数据的用户id") - private String updateUser; - /** 回复评论的id */ @Excel(name = "回复评论的id") private String appDiscussReplyId; @@ -101,4 +99,14 @@ private static final long serialVersionUID=1L; /** 评论回复人 */ @Excel(name = "评论回复人") private String appDiscussReplyUser; + + + /** 一级评论 */ + @Excel(name = "评论回复人") + @TableField(exist = false) + private List children; + + + + } diff --git a/hope-winery/src/main/java/com/ruoyi/winery/mapper/AppDiscussMapper.java b/hope-winery/src/main/java/com/ruoyi/winery/mapper/AppDiscussMapper.java index 03a26f204..97e02f478 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/mapper/AppDiscussMapper.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/mapper/AppDiscussMapper.java @@ -1,8 +1,11 @@ package com.ruoyi.winery.mapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.winery.domain.appdiscuss.AppDiscuss; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; + /** * app评论Mapper接口 * @@ -11,4 +14,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface AppDiscussMapper extends BaseMapper { + + Integer replyNum(String num); + + Integer select(LambdaQueryWrapper wrapper); + + void update(AppDiscuss appDiscuss); } diff --git a/hope-winery/src/main/java/com/ruoyi/winery/service/IAppDiscussService.java b/hope-winery/src/main/java/com/ruoyi/winery/service/IAppDiscussService.java index dd4fe141f..5e8fd5ba1 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/service/IAppDiscussService.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/service/IAppDiscussService.java @@ -3,6 +3,8 @@ package com.ruoyi.winery.service; import com.ruoyi.winery.domain.appdiscuss.AppDiscuss; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** * app评论Service接口 * @@ -11,4 +13,8 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IAppDiscussService extends IService { + + //获取到所有一级和二级的评论 + List getAllReply(String prentId); + } diff --git a/hope-winery/src/main/java/com/ruoyi/winery/service/impl/AppDiscussServiceImpl.java b/hope-winery/src/main/java/com/ruoyi/winery/service/impl/AppDiscussServiceImpl.java index 01a435f27..8ea89d368 100644 --- a/hope-winery/src/main/java/com/ruoyi/winery/service/impl/AppDiscussServiceImpl.java +++ b/hope-winery/src/main/java/com/ruoyi/winery/service/impl/AppDiscussServiceImpl.java @@ -1,11 +1,21 @@ package com.ruoyi.winery.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.common.utils.bean.BeanUtils; import com.ruoyi.winery.service.IAppDiscussService; + + import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.winery.mapper.AppDiscussMapper; import com.ruoyi.winery.domain.appdiscuss.AppDiscuss; +import java.util.ArrayList; +import java.util.List; + + /** * app评论Service业务层处理 * @@ -15,4 +25,52 @@ import com.ruoyi.winery.domain.appdiscuss.AppDiscuss; @Service public class AppDiscussServiceImpl extends ServiceImpl implements IAppDiscussService { -} + @Override + public List getAllReply(String prentId) { + //查询所有的一级回复 + LambdaQueryWrapper wrapperOne = Wrappers.lambdaQuery(); + wrapperOne.eq(AppDiscuss::getAppDiscussReplyId, prentId); + //根据wrapperOne的条件查询全部记录 + List oneReplyList = baseMapper.selectList(wrapperOne); + return oneReplyList; +// //查询所有的二级回复 +// LambdaQueryWrapper wrapperTwo = Wrappers.lambdaQuery(); +// wrapperTwo.ne(AppDiscuss::getAppDiscussReplyId, 0); +// List TwoReplyList = baseMapper.selectList(wrapperTwo); +// +// //设置一个总集合,把刚刚查到的分层数据全部放到finalReplyList +// List finalReplyList = new ArrayList<>(); +// +// //把一级回复装到集合里面 +// for (int i = 0; i < oneReplyList.size(); i++) { +// AppDiscuss appDiscuss = oneReplyList.get(i); +// +// AppDiscuss reply = new AppDiscuss(); +// //把查询到的数据拷贝到oneDiscuss +// BeanUtils.copyProperties(appDiscuss, reply); +// //最后将数据添加到finalReplyList,最后返回它就好了 +// finalReplyList.add(reply); +// +// List finalTwoReplyList = new ArrayList<>(); +// //把二级回复装到集合里面 +// for (int m = 0; m < TwoReplyList.size(); m++) { +// AppDiscuss appDiscuss1 = TwoReplyList.get(m); +// //如果二级目录的getAppDiscussExtraUsername和一级目录的getAppDiscussReplyUser内容相同,则为回复它的评论 +// if (appDiscuss1.getAppDiscussExtraUsername().equals(appDiscuss.getAppDiscussReplyUser())){ +// +// AppDiscuss oneReply = new AppDiscuss(); +// +// BeanUtils.copyProperties(appDiscuss1, oneReply); +// +// finalTwoReplyList.add(oneReply); +// } +// } +// +// //把数据最后都放到finalTwoReplyList +// reply.setChildren(finalTwoReplyList); +// } +// return finalReplyList; + } + + +} \ No newline at end of file diff --git a/hope-winery/src/main/resources/mapper/appdiscuss/AppDiscussMapper.xml b/hope-winery/src/main/resources/mapper/appdiscuss/AppDiscussMapper.xml index 47692f6c6..e08223fa5 100644 --- a/hope-winery/src/main/resources/mapper/appdiscuss/AppDiscussMapper.xml +++ b/hope-winery/src/main/resources/mapper/appdiscuss/AppDiscussMapper.xml @@ -3,7 +3,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + + + diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index da92c851e..dd8d60951 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -18,7 +18,7 @@ ruoyi: # 开发环境配置 server: # 服务器的HTTP端口,默认为8080 - port: 18989 + port: 1998 servlet: # 应用的访问路径 context-path: / diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java index 847685ba4..f3769e9cf 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java @@ -1,5 +1,7 @@ package com.ruoyi.common.core.page; + + import java.io.Serializable; import java.util.List; @@ -8,6 +10,7 @@ import java.util.List; * * @author ruoyi */ + public class TableDataInfo implements Serializable { private static final long serialVersionUID = 1L; diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java index aec57768c..85512f266 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java @@ -29,6 +29,21 @@ public class SecurityUtils } } + /** + * 获取用户部門(租戶) + **/ + public static Long getDept() + { + try + { + return getLoginUser().getUser().getDeptId(); + } + catch (Exception e) + { + throw new CustomException("获取用户账户异常", HttpStatus.UNAUTHORIZED); + } + } + /** * 获取用户 **/ diff --git a/ruoyi-ui/.env.development b/ruoyi-ui/.env.development index 28b97c7e1..f64e7e28e 100644 --- a/ruoyi-ui/.env.development +++ b/ruoyi-ui/.env.development @@ -6,3 +6,7 @@ VUE_APP_BASE_API = '/dev-api' # 路由懒加载 VUE_CLI_BABEL_TRANSPILE_MODULES = true + + +npm_config_port = 1024 +port = 1024 diff --git a/ruoyi-ui/src/api/app/discuss.js b/ruoyi-ui/src/api/app/discuss.js index 947deaae1..8f3878323 100644 --- a/ruoyi-ui/src/api/app/discuss.js +++ b/ruoyi-ui/src/api/app/discuss.js @@ -51,3 +51,20 @@ export function exportDiscuss(query) { params: query }) } + +// 批量通过 +export function passDiscuss(id,state) { + return request({ + url: `/app/discuss/edit_state/${id}`, + method: 'put', + data:state + }) +} +// 评论回复功能 +export function replyDiscuss() { + return request({ + url: '/app/discuss/reply', + method: 'get', + }) +} + diff --git a/ruoyi-ui/src/layout/components/TagsView/index.vue b/ruoyi-ui/src/layout/components/TagsView/index.vue index 81c20073a..203b5bf87 100644 --- a/ruoyi-ui/src/layout/components/TagsView/index.vue +++ b/ruoyi-ui/src/layout/components/TagsView/index.vue @@ -267,7 +267,7 @@ export default { border-radius: 4px; font-size: 12px; font-weight: 400; - color: #333; + color: #ea7272; box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, .3); li { margin: 0; diff --git a/ruoyi-ui/src/views/app/discuss/index.vue b/ruoyi-ui/src/views/app/discuss/index.vue index 58cdd19c1..52bf10d3c 100644 --- a/ruoyi-ui/src/views/app/discuss/index.vue +++ b/ruoyi-ui/src/views/app/discuss/index.vue @@ -1,47 +1,21 @@ -