From 7ce91deef10015a897a1b00558b048e89763b837 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Mon, 28 Apr 2025 11:31:36 +0800 Subject: [PATCH] feat(mall): 添加活动评价功能并更新相关模型 --- src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityOrderController.java | 8 ++ src/main/java/cc/mrbird/febs/mall/dto/activity/ApiPayOrderAddCommentDto.java | 29 +++++++++ src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java | 38 ++++++++++++ src/main/java/cc/mrbird/febs/common/enumerates/StateUpDownEnum.java | 6 + src/main/java/cc/mrbird/febs/mall/mapper/HappyActivityCommentMapper.java | 7 ++ src/main/java/cc/mrbird/febs/mall/service/HappyActivityService.java | 2 src/main/java/cc/mrbird/febs/mall/vo/ApiActivityVo.java | 4 + src/main/java/cc/mrbird/febs/mall/entity/HappyActivityComment.java | 36 ++++++++++++ src/main/java/cc/mrbird/febs/mall/dto/activity/ApiActivityOrderListDto.java | 2 9 files changed, 130 insertions(+), 2 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/StateUpDownEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/StateUpDownEnum.java index a1f9c70..c4138aa 100644 --- a/src/main/java/cc/mrbird/febs/common/enumerates/StateUpDownEnum.java +++ b/src/main/java/cc/mrbird/febs/common/enumerates/StateUpDownEnum.java @@ -27,12 +27,14 @@ VOTE_OPTION_STATE_AUDIT_REFUSE(2), /** - * 订单状态 1-待支付 2-待使用 3-已使用 4-售后 + * 订单状态 1-待支付 2-待使用 3-已使用 4-售后 5-已评价 6-删除 */ ORDER_STATE_WAIT_PAY(1), ORDER_STATE_WAIT_USE(2), ORDER_STATE_USED(3), ORDER_STATE_AFTER_SALE(4), + ORDER_STATE_COMMENT(5), + ORDER_STATE_DELETE(6), /** * 支付状态 0-待支付 1-支付成功 2-支付失败 @@ -75,6 +77,8 @@ * 删除标识 0-未删除 1-已删除 * 使用状态 0-待使用 1-已使用 * 是否是核销员 0-否 1-是 + * 匿名状态 1:匿名 0:不匿名 + * 展示状态 1:显示 0:隐藏 */ DOWN(0), UP(1); diff --git a/src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityOrderController.java b/src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityOrderController.java index 41b23bf..8538742 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityOrderController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityOrderController.java @@ -5,6 +5,7 @@ import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.dto.activity.ApiActivityOrderListDto; import cc.mrbird.febs.mall.dto.activity.ApiCheckOrderDto; +import cc.mrbird.febs.mall.dto.activity.ApiPayOrderAddCommentDto; import cc.mrbird.febs.mall.service.HappyActivityService; import cc.mrbird.febs.mall.vo.*; import cc.mrbird.febs.mall.vo.activity.ApiActivityOrderInfoVo; @@ -121,4 +122,11 @@ return happyActivityService.checkOrder(dto); } + @ApiOperation(value = "我的报名-评价", notes = "我的报名-评价") + @PostMapping(value = "/addComment") + public FebsResponse addComment(@RequestBody @Validated ApiPayOrderAddCommentDto dto) { + + return happyActivityService.addComment(dto); + } + } diff --git a/src/main/java/cc/mrbird/febs/mall/dto/activity/ApiActivityOrderListDto.java b/src/main/java/cc/mrbird/febs/mall/dto/activity/ApiActivityOrderListDto.java index 2ae08ed..a2a387c 100644 --- a/src/main/java/cc/mrbird/febs/mall/dto/activity/ApiActivityOrderListDto.java +++ b/src/main/java/cc/mrbird/febs/mall/dto/activity/ApiActivityOrderListDto.java @@ -14,7 +14,7 @@ @ApiModelProperty(value = "第几页", example = "1") private Integer pageNum; - @ApiModelProperty(value = "订单状态", example = "订单状态 1-待支付 2-待使用 3-已使用 4-售后") + @ApiModelProperty(value = "订单状态", example = "订单状态 1-待支付 2-待参加 3-待评价 4-售后 5-已评价") private Integer state; } diff --git a/src/main/java/cc/mrbird/febs/mall/dto/activity/ApiPayOrderAddCommentDto.java b/src/main/java/cc/mrbird/febs/mall/dto/activity/ApiPayOrderAddCommentDto.java new file mode 100644 index 0000000..2d3c894 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/dto/activity/ApiPayOrderAddCommentDto.java @@ -0,0 +1,29 @@ +package cc.mrbird.febs.mall.dto.activity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +@Data +@ApiModel(value = "ApiPayOrderAddCommentDto", description = "参数") +public class ApiPayOrderAddCommentDto { + + + @NotNull(message = "订单ID不能为空") + @ApiModelProperty(value = "订单ID") + private Long orderId; + + @NotNull(message = "评分不能为空") + @ApiModelProperty(value = "评分 4.0") + private Double star; + + @NotBlank(message = "评论不能为空") + @ApiModelProperty(value = "评论") + private String comment; + + private String images; + +} diff --git a/src/main/java/cc/mrbird/febs/mall/entity/HappyActivityComment.java b/src/main/java/cc/mrbird/febs/mall/entity/HappyActivityComment.java new file mode 100644 index 0000000..4e64f49 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/entity/HappyActivityComment.java @@ -0,0 +1,36 @@ +package cc.mrbird.febs.mall.entity; + +import cc.mrbird.febs.common.entity.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data +@TableName("happy_activity_comment") +public class HappyActivityComment extends BaseEntity { + /** + * + `member_id` bigint(20) DEFAULT NULL COMMENT '会员ID', + `order_id` bigint(20) DEFAULT NULL COMMENT '订单ID', + `activity_id` bigint(20) DEFAULT NULL COMMENT '活动ID', + `activity_name` varchar(500) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '活动名称', + `star` double(5,1) DEFAULT NULL COMMENT '评分', + `comment` text CHARACTER SET utf8mb4 COMMENT '评论', + `images` text CHARACTER SET utf8mb4 COMMENT '图片', + `show_state` int(11) DEFAULT '1' COMMENT '展示状态 1:显示 0:隐藏', + `anonymous_state` int(11) DEFAULT '0' COMMENT '匿名状态 1:匿名 0:不匿名', + */ + + private Long memberId; + private Long orderId; + private Long activityId; + private String activityName; + private Double star; + private String comment; + private String images; + private Integer showState; + private Integer anonymousState; + //查询条件 :评价等级 1:好评2:中评3:差评 + @TableField(exist = false) + private Integer commentType; +} diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/HappyActivityCommentMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/HappyActivityCommentMapper.java new file mode 100644 index 0000000..d537239 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/mapper/HappyActivityCommentMapper.java @@ -0,0 +1,7 @@ +package cc.mrbird.febs.mall.mapper; + +import cc.mrbird.febs.mall.entity.HappyActivityComment; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +public interface HappyActivityCommentMapper extends BaseMapper<HappyActivityComment> { +} diff --git a/src/main/java/cc/mrbird/febs/mall/service/HappyActivityService.java b/src/main/java/cc/mrbird/febs/mall/service/HappyActivityService.java index 528a4be..99842c4 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/HappyActivityService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/HappyActivityService.java @@ -68,4 +68,6 @@ void checkActivityItem(Long orderId); void overtimeJob(); + + FebsResponse addComment(ApiPayOrderAddCommentDto dto); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java index 399aee3..27f52ae 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java @@ -54,6 +54,7 @@ private final HappyActivityOptionMapper happyActivityOptionMapper; private final HappyActivityConnectMapper happyActivityConnectMapper; private final HappyActivityOrderMapper happyActivityOrderMapper; + private final HappyActivityCommentMapper happyActivityCommentMapper; private final HappyActivityOrderItemMapper happyActivityOrderItemMapper; private final IXcxPayService iXcxPayService; private final IApiMallMemberWalletService iApiMallMemberWalletService; @@ -114,6 +115,14 @@ ); if(happyActivity != null){ BeanUtil.copyProperties(happyActivity,apiActivityVo); + + Integer commentCount = happyActivityCommentMapper.selectCount( + new LambdaQueryWrapper<HappyActivityComment>() + .eq(HappyActivityComment::getActivityId, happyActivity.getId()) + .eq(HappyActivityComment::getShowState, StateUpDownEnum.UP.getCode()) + ); + apiActivityVo.setCommentCount(commentCount); + List<HappyFollow> happyFollows = happyFollowMapper.selectList( new LambdaQueryWrapper<HappyFollow>() .select(HappyFollow::getId, HappyFollow::getType) @@ -928,6 +937,35 @@ } @Override + public FebsResponse addComment(ApiPayOrderAddCommentDto dto) { + // 获取当前登录用户的ID + Long memberId = LoginUserUtil.getLoginUser().getId(); + Long orderId = dto.getOrderId(); + + HappyActivityOrder happyActivityOrder = happyActivityOrderMapper.selectById(orderId); + if(StateUpDownEnum.ORDER_STATE_USED.getCode() != happyActivityOrder.getState()){ + throw new FebsException("该订单状态不是已使用状态!"); + } + + happyActivityOrder.setState(StateUpDownEnum.ORDER_STATE_COMMENT.getCode()); + happyActivityOrderMapper.updateById(happyActivityOrder); + + HappyActivity happyActivity = this.baseMapper.selectById(happyActivityOrder.getActivityId()); + + HappyActivityComment happyActivityComment = new HappyActivityComment(); + happyActivityComment.setActivityId(happyActivity.getId()); + happyActivityComment.setActivityName(happyActivity.getName()); + happyActivityComment.setMemberId(memberId); + happyActivityComment.setOrderId(orderId); + happyActivityComment.setStar(dto.getStar()); + happyActivityComment.setComment(dto.getComment()); + happyActivityComment.setImages(dto.getImages()); + happyActivityCommentMapper.insert(happyActivityComment); + + return new FebsResponse().success().message("操作成功"); + } + + @Override public FebsResponse voteActivityHot(Long id) { ApiVoteActivityHotVo apiVoteActivityHotVo = new ApiVoteActivityHotVo(); diff --git a/src/main/java/cc/mrbird/febs/mall/vo/ApiActivityVo.java b/src/main/java/cc/mrbird/febs/mall/vo/ApiActivityVo.java index d889db7..92b0efc 100644 --- a/src/main/java/cc/mrbird/febs/mall/vo/ApiActivityVo.java +++ b/src/main/java/cc/mrbird/febs/mall/vo/ApiActivityVo.java @@ -81,4 +81,8 @@ @ApiModelProperty(value = "背景图片") private String backImg; + + @ApiModelProperty(value = "评论数量") + private Integer commentCount; + } -- Gitblit v1.9.1