商品评价场景,查询业务重构,代码复用增强,前端可以查看到后端设置隐藏的评价内容问题解决

This commit is contained in:
Chopper 2021-06-17 10:37:11 +08:00
parent 6205693df6
commit 7ce5b517fc
8 changed files with 30 additions and 97 deletions

View File

@ -1,5 +1,6 @@
package cn.lili.controller.member; package cn.lili.controller.member;
import cn.lili.common.enums.SwitchEnum;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
@ -55,7 +56,7 @@ public class MemberEvaluationBuyerController {
public ResultMessage<IPage<MemberEvaluation>> queryMineEvaluation(EvaluationQueryParams evaluationQueryParams) { public ResultMessage<IPage<MemberEvaluation>> queryMineEvaluation(EvaluationQueryParams evaluationQueryParams) {
//设置当前登录会员 //设置当前登录会员
evaluationQueryParams.setMemberId(UserContext.getCurrentUser().getId()); evaluationQueryParams.setMemberId(UserContext.getCurrentUser().getId());
return ResultUtil.data(memberEvaluationService.queryByParams(evaluationQueryParams)); return ResultUtil.data(memberEvaluationService.managerQuery(evaluationQueryParams));
} }
@ApiOperation(value = "查看某一个商品的评价列表") @ApiOperation(value = "查看某一个商品的评价列表")
@ -65,7 +66,8 @@ public class MemberEvaluationBuyerController {
@NotNull @PathVariable("goodsId") String goodsId) { @NotNull @PathVariable("goodsId") String goodsId) {
//设置查询查询商品 //设置查询查询商品
evaluationQueryParams.setGoodsId(goodsId); evaluationQueryParams.setGoodsId(goodsId);
return ResultUtil.data(memberEvaluationService.queryByParams(evaluationQueryParams)); evaluationQueryParams.setStatus(SwitchEnum.OPEN.name());
return ResultUtil.data(memberEvaluationService.managerQuery(evaluationQueryParams));
} }
@ApiOperation(value = "查看某一个商品的评价数量") @ApiOperation(value = "查看某一个商品的评价数量")

View File

@ -15,6 +15,10 @@ import lombok.Data;
@Data @Data
public class EvaluationQueryParams extends PageVO { public class EvaluationQueryParams extends PageVO {
@ApiModelProperty(value = "买家ID")
private String memberId;
@ApiModelProperty(value = "会员名称") @ApiModelProperty(value = "会员名称")
private String memberName; private String memberName;
@ -24,9 +28,6 @@ public class EvaluationQueryParams extends PageVO {
@ApiModelProperty(value = "卖家ID") @ApiModelProperty(value = "卖家ID")
private String storeId; private String storeId;
@ApiModelProperty(value = "买家ID", hidden = true)
private String memberId;
@ApiModelProperty(value = "商品名称") @ApiModelProperty(value = "商品名称")
private String goodsName; private String goodsName;
@ -45,6 +46,9 @@ public class EvaluationQueryParams extends PageVO {
@ApiModelProperty(value = "评论日期--结束时间") @ApiModelProperty(value = "评论日期--结束时间")
private String endTime; private String endTime;
@ApiModelProperty(value = "状态")
private String status;
public EvaluationQueryParams() { public EvaluationQueryParams() {
} }
@ -78,6 +82,9 @@ public class EvaluationQueryParams extends PageVO {
if (StringUtils.isNotEmpty(haveImage)) { if (StringUtils.isNotEmpty(haveImage)) {
queryWrapper.eq("have_image", haveImage); queryWrapper.eq("have_image", haveImage);
} }
if (StringUtils.isNotEmpty(status)) {
queryWrapper.eq("status", status);
}
queryWrapper.eq("delete_flag", false); queryWrapper.eq("delete_flag", false);
queryWrapper.orderByDesc("create_time"); queryWrapper.orderByDesc("create_time");
return queryWrapper; return queryWrapper;

View File

@ -1,59 +0,0 @@
package cn.lili.modules.member.entity.dto;
import cn.hutool.core.date.DateUtil;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.PageVO;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 店铺评价查询参数
*
* @author Chopper
* @date 2021/3/20 10:43
*/
@Data
public class StoreEvaluationQueryParams extends PageVO {
@ApiModelProperty(value = "会员名称")
private String memberName;
@ApiModelProperty(value = "商品名称")
private String goodsName;
@ApiModelProperty(value = "好中差评 good好评neutral中评bad差评", allowableValues = "GOOD,NEUTRAL,BAD")
private String grade;
@ApiModelProperty(value = "评论日期--开始时间")
private String startDate;
@ApiModelProperty(value = "评论日期--结束时间")
private String endDate;
public <T> QueryWrapper<T> queryWrapper() {
QueryWrapper<T> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("store_id", UserContext.getCurrentUser().getStoreId());
if (StringUtils.isNotEmpty(startDate) && StringUtils.isNotEmpty(endDate)) {
queryWrapper.between("create_time", DateUtil.parse(startDate), DateUtil.parse(endDate));
}
if (StringUtils.isNotEmpty(grade)) {
queryWrapper.eq("grade", grade);
}
if (StringUtils.isNotEmpty(goodsName)) {
queryWrapper.eq("goods_name", goodsName);
}
if (StringUtils.isNotEmpty(memberName)) {
queryWrapper.eq("member_name", memberName);
}
return queryWrapper;
}
}

View File

@ -25,7 +25,7 @@ public interface MemberEvaluationMapper extends BaseMapper<MemberEvaluation> {
@Select("select me.* from li_member_evaluation as me ${ew.customSqlSegment}") @Select("select me.* from li_member_evaluation as me ${ew.customSqlSegment}")
IPage<MemberEvaluationListVO> getMemberEvaluationList(IPage<MemberEvaluationListVO> page, @Param(Constants.WRAPPER) Wrapper<MemberEvaluationListVO> queryWrapper); IPage<MemberEvaluationListVO> getMemberEvaluationList(IPage<MemberEvaluationListVO> page, @Param(Constants.WRAPPER) Wrapper<MemberEvaluationListVO> queryWrapper);
@Select("select grade,count(1) as num from li_member_evaluation Where goods_id=#{goodsId} GROUP BY grade") @Select("select grade,count(1) as num from li_member_evaluation Where goods_id=#{goodsId} and status='OPEN' GROUP BY grade")
List<Map<String, Object>> getEvaluationNumber(String goodsId); List<Map<String, Object>> getEvaluationNumber(String goodsId);
@Select("SELECT round( AVG( delivery_score ), 2 ) AS delivery_score" + @Select("SELECT round( AVG( delivery_score ), 2 ) AS delivery_score" +

View File

@ -1,10 +1,8 @@
package cn.lili.modules.member.service; package cn.lili.modules.member.service;
import cn.lili.common.vo.PageVO;
import cn.lili.modules.member.entity.dos.MemberEvaluation; import cn.lili.modules.member.entity.dos.MemberEvaluation;
import cn.lili.modules.member.entity.dto.EvaluationQueryParams; import cn.lili.modules.member.entity.dto.EvaluationQueryParams;
import cn.lili.modules.member.entity.dto.MemberEvaluationDTO; import cn.lili.modules.member.entity.dto.MemberEvaluationDTO;
import cn.lili.modules.member.entity.dto.StoreEvaluationQueryParams;
import cn.lili.modules.member.entity.vo.EvaluationNumberVO; import cn.lili.modules.member.entity.vo.EvaluationNumberVO;
import cn.lili.modules.member.entity.vo.MemberEvaluationListVO; import cn.lili.modules.member.entity.vo.MemberEvaluationListVO;
import cn.lili.modules.member.entity.vo.MemberEvaluationVO; import cn.lili.modules.member.entity.vo.MemberEvaluationVO;
@ -25,23 +23,14 @@ public interface MemberEvaluationService extends IService<MemberEvaluation> {
* @param evaluationQueryParams 评价查询 * @param evaluationQueryParams 评价查询
* @return 评价分页 * @return 评价分页
*/ */
IPage<MemberEvaluation> queryByParams(EvaluationQueryParams evaluationQueryParams); IPage<MemberEvaluation> managerQuery(EvaluationQueryParams evaluationQueryParams);
/**
* 商家查询会员的评价分页列表
*
* @param storeEvaluationQueryParams 评价查询
* @return 会员的评价分页
*/
IPage<MemberEvaluationListVO> queryByParams(StoreEvaluationQueryParams storeEvaluationQueryParams);
/** /**
* 查询评价分页列表 * 查询评价分页列表
* @param evaluationQueryParams 评价查询条件 * @param evaluationQueryParams 评价查询条件
* @param page 分页查询参数
* @return 评价分页列表 * @return 评价分页列表
*/ */
IPage<MemberEvaluationListVO> queryPage(EvaluationQueryParams evaluationQueryParams, PageVO page); IPage<MemberEvaluationListVO> queryPage(EvaluationQueryParams evaluationQueryParams);
/** /**
* 添加会员评价 * 添加会员评价

View File

@ -3,8 +3,8 @@ package cn.lili.modules.member.serviceimpl;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import cn.lili.common.enums.SwitchEnum;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.SwitchEnum;
import cn.lili.common.exception.ServiceException; import cn.lili.common.exception.ServiceException;
import cn.lili.common.rocketmq.RocketmqSendCallbackBuilder; import cn.lili.common.rocketmq.RocketmqSendCallbackBuilder;
import cn.lili.common.rocketmq.tags.GoodsTagsEnum; import cn.lili.common.rocketmq.tags.GoodsTagsEnum;
@ -12,7 +12,6 @@ import cn.lili.common.security.context.UserContext;
import cn.lili.common.security.enums.UserEnums; import cn.lili.common.security.enums.UserEnums;
import cn.lili.common.utils.PageUtil; import cn.lili.common.utils.PageUtil;
import cn.lili.common.utils.StringUtils; import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.PageVO;
import cn.lili.config.rocketmq.RocketmqCustomProperties; import cn.lili.config.rocketmq.RocketmqCustomProperties;
import cn.lili.modules.goods.entity.dos.GoodsSku; import cn.lili.modules.goods.entity.dos.GoodsSku;
import cn.lili.modules.goods.service.GoodsSkuService; import cn.lili.modules.goods.service.GoodsSkuService;
@ -20,7 +19,6 @@ import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.entity.dos.MemberEvaluation; import cn.lili.modules.member.entity.dos.MemberEvaluation;
import cn.lili.modules.member.entity.dto.EvaluationQueryParams; import cn.lili.modules.member.entity.dto.EvaluationQueryParams;
import cn.lili.modules.member.entity.dto.MemberEvaluationDTO; import cn.lili.modules.member.entity.dto.MemberEvaluationDTO;
import cn.lili.modules.member.entity.dto.StoreEvaluationQueryParams;
import cn.lili.modules.member.entity.enums.EvaluationGradeEnum; import cn.lili.modules.member.entity.enums.EvaluationGradeEnum;
import cn.lili.modules.member.entity.vo.EvaluationNumberVO; import cn.lili.modules.member.entity.vo.EvaluationNumberVO;
import cn.lili.modules.member.entity.vo.MemberEvaluationListVO; import cn.lili.modules.member.entity.vo.MemberEvaluationListVO;
@ -42,7 +40,6 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import org.apache.rocketmq.spring.core.RocketMQTemplate; import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -84,20 +81,16 @@ public class MemberEvaluationServiceImpl extends ServiceImpl<MemberEvaluationMap
private RocketmqCustomProperties rocketmqCustomProperties; private RocketmqCustomProperties rocketmqCustomProperties;
@Override @Override
public IPage<MemberEvaluation> queryByParams(EvaluationQueryParams queryParams) { public IPage<MemberEvaluation> managerQuery(EvaluationQueryParams queryParams) {
//获取评价分页 //获取评价分页
return this.page(PageUtil.initPage(queryParams), queryParams.queryWrapper()); return this.page(PageUtil.initPage(queryParams), queryParams.queryWrapper());
} }
@Override @Override
public IPage<MemberEvaluationListVO> queryByParams(StoreEvaluationQueryParams storeEvaluationQueryParams) { public IPage<MemberEvaluationListVO> queryPage(EvaluationQueryParams evaluationQueryParams) {
return memberEvaluationMapper.getMemberEvaluationList(PageUtil.initPage(storeEvaluationQueryParams), storeEvaluationQueryParams.queryWrapper()); return memberEvaluationMapper.getMemberEvaluationList(PageUtil.initPage(evaluationQueryParams), evaluationQueryParams.queryWrapper());
} }
@Override
public IPage<MemberEvaluationListVO> queryPage(EvaluationQueryParams evaluationQueryParams, PageVO page) {
return memberEvaluationMapper.getMemberEvaluationList(PageUtil.initPage(page), evaluationQueryParams.queryWrapper());
}
@Override @Override
public MemberEvaluationDTO addMemberEvaluation(MemberEvaluationDTO memberEvaluationDTO) { public MemberEvaluationDTO addMemberEvaluation(MemberEvaluationDTO memberEvaluationDTO) {
@ -106,7 +99,7 @@ public class MemberEvaluationServiceImpl extends ServiceImpl<MemberEvaluationMap
//获取订单信息 //获取订单信息
Order order = orderService.getBySn(orderItem.getOrderSn()); Order order = orderService.getBySn(orderItem.getOrderSn());
//检测是否可以添加会员评价 //检测是否可以添加会员评价
checkMemberEvaluation(orderItem,order); checkMemberEvaluation(orderItem, order);
//获取用户信息 //获取用户信息
Member member = memberService.getUserInfo(); Member member = memberService.getUserInfo();
//获取商品信息 //获取商品信息
@ -165,6 +158,7 @@ public class MemberEvaluationServiceImpl extends ServiceImpl<MemberEvaluationMap
EvaluationNumberVO evaluationNumberVO = new EvaluationNumberVO(); EvaluationNumberVO evaluationNumberVO = new EvaluationNumberVO();
List<Map<String, Object>> list = memberEvaluationMapper.getEvaluationNumber(goodsId); List<Map<String, Object>> list = memberEvaluationMapper.getEvaluationNumber(goodsId);
Integer good = 0; Integer good = 0;
Integer moderate = 0; Integer moderate = 0;
Integer worse = 0; Integer worse = 0;
@ -204,10 +198,11 @@ public class MemberEvaluationServiceImpl extends ServiceImpl<MemberEvaluationMap
/** /**
* 检测会员评价 * 检测会员评价
*
* @param orderItem 子订单 * @param orderItem 子订单
* @param order 订单 * @param order 订单
*/ */
public void checkMemberEvaluation(OrderItem orderItem,Order order){ public void checkMemberEvaluation(OrderItem orderItem, Order order) {
//根据子订单编号判断是否评价过 //根据子订单编号判断是否评价过
if (orderItem.getCommentStatus().equals(CommentStatusEnum.FINISHED.name())) { if (orderItem.getCommentStatus().equals(CommentStatusEnum.FINISHED.name())) {

View File

@ -42,7 +42,7 @@ public class MemberEvaluationManagerController {
@GetMapping(value = "/getByPage") @GetMapping(value = "/getByPage")
public ResultMessage<IPage<MemberEvaluationListVO>> getByPage(EvaluationQueryParams evaluationQueryParams, PageVO page) { public ResultMessage<IPage<MemberEvaluationListVO>> getByPage(EvaluationQueryParams evaluationQueryParams, PageVO page) {
return ResultUtil.data(memberEvaluationService.queryPage(evaluationQueryParams, page)); return ResultUtil.data(memberEvaluationService.queryPage(evaluationQueryParams));
} }
@ApiOperation(value = "修改评价状态") @ApiOperation(value = "修改评价状态")

View File

@ -2,7 +2,7 @@ package cn.lili.controller.trade;
import cn.lili.common.enums.ResultUtil; import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.member.entity.dto.StoreEvaluationQueryParams; import cn.lili.modules.member.entity.dto.EvaluationQueryParams;
import cn.lili.modules.member.entity.vo.MemberEvaluationListVO; import cn.lili.modules.member.entity.vo.MemberEvaluationListVO;
import cn.lili.modules.member.entity.vo.MemberEvaluationVO; import cn.lili.modules.member.entity.vo.MemberEvaluationVO;
import cn.lili.modules.member.service.MemberEvaluationService; import cn.lili.modules.member.service.MemberEvaluationService;
@ -30,9 +30,8 @@ public class MemberEvaluationStoreController {
@ApiOperation(value = "分页获取会员评论列表") @ApiOperation(value = "分页获取会员评论列表")
@GetMapping @GetMapping
public ResultMessage<IPage<MemberEvaluationListVO>> getByPage(StoreEvaluationQueryParams storeEvaluationQueryParams) { public ResultMessage<IPage<MemberEvaluationListVO>> getByPage(EvaluationQueryParams evaluationQueryParams) {
return ResultUtil.data(memberEvaluationService.queryPage(evaluationQueryParams));
return ResultUtil.data(memberEvaluationService.queryByParams(storeEvaluationQueryParams));
} }
@ApiOperation(value = "通过id获取") @ApiOperation(value = "通过id获取")