From a8d2cb07f6440dc54dc4005b0b06d5a47cb1517d Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期一, 16 十二月 2024 13:34:03 +0800 Subject: [PATCH] 12.16 --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 109 insertions(+), 5 deletions(-) diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java index 0f3f1b2..1d9c8ad 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java @@ -1,18 +1,23 @@ package com.ruoyi.other.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.ruoyi.account.api.feignClient.AppUserClient; import com.ruoyi.account.api.model.AppUser; import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.web.page.TableDataInfo; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.security.service.TokenService; import com.ruoyi.other.api.domain.Goods; import com.ruoyi.other.api.domain.GoodsEvaluate; import com.ruoyi.other.service.GoodsEvaluateService; +import com.ruoyi.other.service.GoodsService; +import com.ruoyi.other.vo.GoodsEvaluateVO; +import com.ruoyi.system.api.model.LoginUser; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; -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.bind.annotation.*; import javax.annotation.Resource; import java.util.List; @@ -27,23 +32,122 @@ */ @RestController @RequestMapping("/goods-evaluate") +@Api("评论") public class GoodsEvaluateController { @Resource private GoodsEvaluateService goodsEvaluateService; @Resource private AppUserClient appUserClient; + @Resource + private GoodsService goodsService; + @Resource + private TokenService tokenService; @GetMapping("/goodsList") - @ApiOperation(value = "商品评价", tags = {"小程序-商品评价"}) + @ApiOperation(value = "获取商品评价", tags = {"小程序-获取商品评价"}) public R<List<GoodsEvaluate>> goodsList(@ApiParam("商品id") Integer goodsId){ List<GoodsEvaluate> list = goodsEvaluateService.lambdaQuery().eq(GoodsEvaluate::getGoodsId, goodsId).list(); for (GoodsEvaluate goodsEvaluate : list) { AppUser appUserById = appUserClient.getAppUserById(goodsEvaluate.getAppUserId()); goodsEvaluate.setUserName(appUserById.getName()); goodsEvaluate.setAvatar(appUserById.getAvatar()); + goodsEvaluate.setIdStr(String.valueOf(goodsEvaluate.getId())); } return R.ok(list); } + /** + * 发布商品评价 + */ + @PostMapping("/addGoodsEvaluate") + @ApiOperation(value = "发布商品评价", tags = {"小程序-个人中心-我的订单"}) + public R<Void> addGoodsEvaluate(@RequestBody GoodsEvaluateVO goodsEvaluateVO){ + goodsEvaluateService.addGoodsEvaluate(goodsEvaluateVO); + return R.ok(); + } + + /** + * 评论详情 + */ + @GetMapping("/detail/{orderId}") + @ApiOperation(value = "评论详情", tags = {"小程序-评论详情"}) + public R<List<GoodsEvaluate>> detail(@PathVariable("orderId") Long orderId){ + LoginUser loginUserApplet = tokenService.getLoginUserApplet(); + List<GoodsEvaluate> list = goodsEvaluateService.list(new LambdaQueryWrapper<GoodsEvaluate>() + .eq(GoodsEvaluate::getStatus, 2) + .eq(GoodsEvaluate::getAppUserId,loginUserApplet.getUserid()) + .eq(GoodsEvaluate::getOrderId, orderId)); + for (GoodsEvaluate goodsEvaluate : list) { + Goods goods = goodsService.getById(goodsEvaluate.getGoodsId()); + goodsEvaluate.setGoodsName(goods.getName()); + goodsEvaluate.setGoodsImg(goods.getHomePagePicture()); + } + return R.ok(list); + } + + + /** + * 删除评论 + */ + @DeleteMapping("/delete/{id}") + @ApiOperation(value = "删除评论", tags = {"管理后台-商品管理-评价管理"}) + public R<Void> delete(@PathVariable("id") Long id){ + goodsEvaluateService.removeById(id); + return R.ok(); + } + + /** + * 评论列表 + */ + @GetMapping("/list") + @ApiOperation(value = "评论列表", tags = {"管理后台-商品管理-评价管理"}) + public R<List<GoodsEvaluate>> list(GoodsEvaluate goodsEvaluate){ + List<GoodsEvaluate> list = goodsEvaluateService.lambdaQuery() + .like(StringUtils.isNotEmpty(goodsEvaluate.getGoodsName()),GoodsEvaluate::getGoodsName, goodsEvaluate.getComment()) + .like(StringUtils.isNotEmpty(goodsEvaluate.getUserName()),GoodsEvaluate::getUserName, goodsEvaluate.getUserName()) + .like(StringUtils.isNotEmpty(goodsEvaluate.getPhone()),GoodsEvaluate::getPhone, goodsEvaluate.getPhone()) + .eq(goodsEvaluate.getStatus()!=null,GoodsEvaluate::getStatus, goodsEvaluate.getStatus()) + .orderByDesc(GoodsEvaluate::getCreateTime) + .list(); + + list.forEach(this::buildDetail); + + return R.ok(list); + } + + private void buildDetail(GoodsEvaluate item) { + AppUser appUser = appUserClient.getAppUserById(item.getAppUserId()); + if (appUser == null){ + throw new RuntimeException("获取用户信息失败"); + } + Goods goods = goodsService.getById(item.getGoodsId()); + item.setGoodsName(goods.getName()); + item.setPhone(appUser.getPhone()); + item.setUserName(appUser.getName()); + } + + /** + * 评论详情 + */ + @GetMapping("/{id}") + @ApiOperation(value = "评论详情", tags = {"管理后台-商品管理-评价管理"}) + public R<GoodsEvaluate> getDetail(@PathVariable("id") Long id){ + GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id); + buildDetail(goodsEvaluate); + return R.ok(goodsEvaluate); + } + + /** + * 评论上/下架 + */ + @PutMapping("/changeStatus") + @ApiOperation(value = "上/下架", tags = {"管理后台-商品管理-评价管理"}) + public R<Void> changeStatus(@RequestBody GoodsEvaluate goodsEvaluate){ + goodsEvaluateService.update(new LambdaUpdateWrapper<GoodsEvaluate>() + .eq(GoodsEvaluate::getId, goodsEvaluate.getId()) + .set(GoodsEvaluate::getStatus, goodsEvaluate.getStatus())); + return R.ok(); + } + } -- Gitblit v1.7.1