diff --git a/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/OrderCommentController.java b/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/OrderCommentController.java index c821e3588..e908c5e16 100644 --- a/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/OrderCommentController.java +++ b/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/OrderCommentController.java @@ -7,8 +7,12 @@ import cn.iocoder.mall.order.api.OrderCommentService; import cn.iocoder.mall.order.api.bo.OrderCommentCreateBO; import cn.iocoder.mall.order.api.bo.OrderCommentInfoAndMerchantReplyBO; import cn.iocoder.mall.order.api.bo.OrderCommentPageBO; +import cn.iocoder.mall.order.api.bo.OrderCommentStateInfoPageBO; import cn.iocoder.mall.order.api.dto.OrderCommentCreateDTO; import cn.iocoder.mall.order.api.dto.OrderCommentPageDTO; +import cn.iocoder.mall.order.api.dto.OrderCommentStateInfoPageDTO; +import cn.iocoder.mall.user.sdk.annotation.RequiresLogin; +import cn.iocoder.mall.user.sdk.context.UserSecurityContextHolder; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.dubbo.config.annotation.Reference; @@ -39,20 +43,20 @@ public class OrderCommentController { @PostMapping("create_order_comment") //@RequiresLogin - @ApiOperation(value = "创建订单") - public CommonResult createOrder(@RequestBody @Validated OrderCommentCreateDTO orderCommentCreateDTO) { + @ApiOperation(value = "创建订单评论") + public CommonResult createOrderComment(@RequestBody @Validated OrderCommentCreateDTO orderCommentCreateDTO) { + Integer userId = UserSecurityContextHolder.getContext().getUserId(); + orderCommentCreateDTO.setUserId(userId); return success(orderCommentService.createOrderComment(orderCommentCreateDTO)); } @GetMapping("order_comment_page") - //@RequiresLogin @ApiOperation(value = "获取评论分页") public CommonResult getOrderCommentPage(@Validated OrderCommentPageDTO orderCommentPageDTO){ return success(orderCommentService.getOrderCommentPage(orderCommentPageDTO)); } @GetMapping("order_comment_info_merchant_reply") - //@RequiresLogin @ApiOperation(value = "获取评论和商家回复") public CommonResult geOrderCommentInfoAndMerchantReply(@RequestParam("commentId") Integer commentId){ OrderCommentInfoAndMerchantReplyBO orderCommentInfoAndMerchantReplyBO=new OrderCommentInfoAndMerchantReplyBO(); @@ -61,4 +65,14 @@ public class OrderCommentController { return success(orderCommentInfoAndMerchantReplyBO); } + @GetMapping + //@RequiresLogin + @ApiOperation(value = "获取订单评论状态分页") + public CommonResult getOrderCommentStateInfoPage(@Validated OrderCommentStateInfoPageDTO orderCommentStateInfoPageDTO){ + //Integer userId = UserSecurityContextHolder.getContext().getUserId(); + //orderCommentStateInfoPageDTO.setUserId(userId); + return success(orderCommentService.getOrderCommentStateInfoPage(orderCommentStateInfoPageDTO)); + } + + } diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/OrderCommentService.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/OrderCommentService.java index 698f578c8..106b76685 100644 --- a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/OrderCommentService.java +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/OrderCommentService.java @@ -3,8 +3,10 @@ package cn.iocoder.mall.order.api; import cn.iocoder.mall.order.api.bo.OrderCommentCreateBO; import cn.iocoder.mall.order.api.bo.OrderCommentInfoBO; import cn.iocoder.mall.order.api.bo.OrderCommentPageBO; +import cn.iocoder.mall.order.api.bo.OrderCommentStateInfoPageBO; import cn.iocoder.mall.order.api.dto.OrderCommentCreateDTO; import cn.iocoder.mall.order.api.dto.OrderCommentPageDTO; +import cn.iocoder.mall.order.api.dto.OrderCommentStateInfoPageDTO; /** * 订单评论模块 @@ -39,6 +41,12 @@ public interface OrderCommentService { OrderCommentInfoBO getOrderCommentInfo(Integer commentId); + /** + * 获取订单评论状态详情 + * @param orderCommentStateInfoPageDTO + * @return + */ + OrderCommentStateInfoPageBO getOrderCommentStateInfoPage(OrderCommentStateInfoPageDTO orderCommentStateInfoPageDTO); /** * 订单评价超时自动好评 diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/OrderCommentCreateBO.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/OrderCommentCreateBO.java index 5d1da4fe7..92aa08d63 100644 --- a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/OrderCommentCreateBO.java +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/OrderCommentCreateBO.java @@ -21,4 +21,5 @@ public class OrderCommentCreateBO implements Serializable { * 订单评论 id */ private Integer id; + } diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/OrderCommentInfoBO.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/OrderCommentInfoBO.java index 1fac20969..4122f39c0 100644 --- a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/OrderCommentInfoBO.java +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/OrderCommentInfoBO.java @@ -4,6 +4,7 @@ package cn.iocoder.mall.order.api.bo; import lombok.Data; import lombok.experimental.Accessors; +import java.io.Serializable; import java.util.Date; /** @@ -16,7 +17,7 @@ import java.util.Date; */ @Data @Accessors(chain = true) -public class OrderCommentInfoBO { +public class OrderCommentInfoBO implements Serializable { /** * 评论 id @@ -52,7 +53,7 @@ public class OrderCommentInfoBO { /** * 点赞数 */ - private Integer collectCount; + private Integer likeCount; /** * 创建时间 diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/OrderCommentReplyPageBO.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/OrderCommentReplyPageBO.java index 7e9f4191f..43509d820 100644 --- a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/OrderCommentReplyPageBO.java +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/OrderCommentReplyPageBO.java @@ -4,6 +4,7 @@ package cn.iocoder.mall.order.api.bo; import lombok.Data; import lombok.experimental.Accessors; +import java.io.Serializable; import java.util.Date; import java.util.List; @@ -17,7 +18,7 @@ import java.util.List; */ @Data @Accessors(chain = true) -public class OrderCommentReplyPageBO { +public class OrderCommentReplyPageBO implements Serializable { /** * 评论回复总数 diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/OrderCommentStateInfoPageBO.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/OrderCommentStateInfoPageBO.java new file mode 100644 index 000000000..37481393e --- /dev/null +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/OrderCommentStateInfoPageBO.java @@ -0,0 +1,87 @@ +package cn.iocoder.mall.order.api.bo; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * + * 订单评论状态详情分页(这么设计因为这个接口需要登陆以后才能看到所以与订单分页接口分开) + * + * @author wtz + * @time 2019-06-07 10:39 + */ +@Data +@Accessors(chain = true) +public class OrderCommentStateInfoPageBO implements Serializable { + + /** + * (待/已)评论总数 + */ + private Integer total; + + /** + * 评论状态 + */ + private List orderCommentStateInfoItems; + + @Data + @Accessors(chain = true) + public static class OrderCommentStateInfoItem{ + + /** + * 订单 id + */ + private Integer orderId; + + /** + * 订单编号 + */ + private String orderNo; + + /** + * 商品 id + */ + private Integer productSpuId; + + /** + * 商品名称 + */ + private String productSpuName; + + /** + * 商品 sku id + */ + private Integer productSkuId; + + /** + * 商品 sku 属性 + */ + private String productSkuAttrs; + + /** + * 商品 sku 价格 + */ + private Integer productSkuPrice; + + /** + * 商品 sku url + */ + private String productSkuPicUrl; + + /** + * 订单评论状态 + */ + private Integer commentState; + + /** + * 创建时间 + */ + private Date createTime; + } + + +} diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderCommentCreateDTO.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderCommentCreateDTO.java index 576ffa605..55b09d4b1 100644 --- a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderCommentCreateDTO.java +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderCommentCreateDTO.java @@ -55,7 +55,6 @@ public class OrderCommentCreateDTO implements Serializable { private String productSkuPicUrl; @ApiModelProperty(value = "用户 id", required = true) - @NotNull(message = "用户 id 不能为空") private Integer userId; @ApiModelProperty(value = "用户头像", required = true) diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderCommentStateInfoPageDTO.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderCommentStateInfoPageDTO.java new file mode 100644 index 000000000..b9618594d --- /dev/null +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderCommentStateInfoPageDTO.java @@ -0,0 +1,38 @@ +package cn.iocoder.mall.order.api.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * + * 订单评论状态分页信息 query + * + * @author wtz + * @time 2019-06-07 10:45 + */ +@Data +@Accessors(chain = true) +public class OrderCommentStateInfoPageDTO implements Serializable { + + /** + * 用户 id + */ + private Integer userId; + + /** + * 评论状态 + */ + private Integer commentState; + + /** + * 页码 + */ + private Integer pageNo; + + /** + * 每页条数 + */ + private Integer pageSize; +} diff --git a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/convert/OrderCommentConvert.java b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/convert/OrderCommentConvert.java index 4453e7382..595ad2d32 100644 --- a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/convert/OrderCommentConvert.java +++ b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/convert/OrderCommentConvert.java @@ -2,7 +2,7 @@ package cn.iocoder.mall.order.biz.convert; import cn.iocoder.mall.order.api.bo.OrderCommentCreateBO; import cn.iocoder.mall.order.api.bo.OrderCommentInfoBO; -import cn.iocoder.mall.order.api.bo.OrderCommentPageBO; +import cn.iocoder.mall.order.api.bo.OrderCommentStateInfoPageBO; import cn.iocoder.mall.order.api.dto.OrderCommentCreateDTO; import cn.iocoder.mall.order.biz.dataobject.OrderCommentDO; import org.mapstruct.Mapper; @@ -12,10 +12,11 @@ import org.mapstruct.factory.Mappers; import java.util.List; /** + * * 订单评论 convert * * @author wtz - * @time 2019-05-30 18:30 + * @time 2019-05-31 18:30 */ @Mapper public interface OrderCommentConvert { @@ -23,12 +24,20 @@ public interface OrderCommentConvert { OrderCommentConvert INSTANCE = Mappers.getMapper(OrderCommentConvert.class); @Mappings({}) - OrderCommentDO convert(OrderCommentCreateDTO orderCommentCreateDTO); + OrderCommentStateInfoPageBO.OrderCommentStateInfoItem convertOrderCommentStateInfoItem(OrderCommentDO orderCommentDO); @Mappings({}) - OrderCommentCreateBO convert(OrderCommentDO orderCommentDO); + List convertOrderCommentStateInfoItems(List orderCommentDOList); + + @Mappings({}) + OrderCommentDO convertOrderCommentDO(OrderCommentCreateDTO orderCommentCreateDTO); + + @Mappings({}) + OrderCommentCreateBO convertOrderCommentCreateBO(OrderCommentDO orderCommentDO); @Mappings({}) OrderCommentInfoBO convertOrderCommentInfoBO(OrderCommentDO orderCommentDO); + + } diff --git a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/convert/OrderCommentReplyConvert.java b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/convert/OrderCommentReplyConvert.java index 4a35b1933..16d890678 100644 --- a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/convert/OrderCommentReplyConvert.java +++ b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/convert/OrderCommentReplyConvert.java @@ -9,7 +9,6 @@ import org.mapstruct.Mapper; import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; -import javax.validation.constraints.Max; import java.util.List; /** diff --git a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/dao/OrderCommentMapper.java b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/dao/OrderCommentMapper.java index 0e3d898d3..222a1e357 100644 --- a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/dao/OrderCommentMapper.java +++ b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/dao/OrderCommentMapper.java @@ -1,10 +1,8 @@ package cn.iocoder.mall.order.biz.dao; -import cn.iocoder.mall.order.api.bo.OrderCommentReplyCreateBO; -import cn.iocoder.mall.order.api.dto.OrderCommentCreateDTO; import cn.iocoder.mall.order.api.dto.OrderCommentPageDTO; +import cn.iocoder.mall.order.api.dto.OrderCommentStateInfoPageDTO; import cn.iocoder.mall.order.biz.dataobject.OrderCommentDO; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -53,5 +51,22 @@ public interface OrderCommentMapper{ OrderCommentDO selectCommentInfoByCommentId(@Param("id") Integer id); + /** + * 订单评论状态信息详情 + * @param orderCommentStateInfoPageDTO + * @return + */ + List selectOrderCommentStateInfoPage(OrderCommentStateInfoPageDTO orderCommentStateInfoPageDTO); + + + /** + * 订单评论状态总数 + * @param userId,commentState + * @return + */ + int selectOrderCommentStateInfoTotal(@Param("userId") Integer userId, + @Param("commentState") Integer commentState); + + } diff --git a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/dataobject/OrderCommentDO.java b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/dataobject/OrderCommentDO.java index d04312bfc..56d6607bc 100644 --- a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/dataobject/OrderCommentDO.java +++ b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/dataobject/OrderCommentDO.java @@ -12,9 +12,9 @@ import lombok.experimental.Accessors; * @time 2019-05-14 20:48 * */ -@TableName(value = "order_comment") @Data @Accessors(chain = true) +@TableName(value = "order_comment") public class OrderCommentDO extends BaseDO { /** @@ -117,4 +117,9 @@ public class OrderCommentDO extends BaseDO { */ private String commentPics; + /** + * 订单评论状态 + */ + private Integer commentState; + } diff --git a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderCommentServiceImpl.java b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderCommentServiceImpl.java index d5cc21ea1..3fd3a8aa4 100644 --- a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderCommentServiceImpl.java +++ b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderCommentServiceImpl.java @@ -4,9 +4,11 @@ import cn.iocoder.mall.order.api.OrderCommentService; import cn.iocoder.mall.order.api.bo.OrderCommentCreateBO; import cn.iocoder.mall.order.api.bo.OrderCommentInfoBO; import cn.iocoder.mall.order.api.bo.OrderCommentPageBO; +import cn.iocoder.mall.order.api.bo.OrderCommentStateInfoPageBO; import cn.iocoder.mall.order.api.constant.OrderReplyUserTypeEnum; import cn.iocoder.mall.order.api.dto.OrderCommentCreateDTO; import cn.iocoder.mall.order.api.dto.OrderCommentPageDTO; +import cn.iocoder.mall.order.api.dto.OrderCommentStateInfoPageDTO; import cn.iocoder.mall.order.biz.convert.OrderCommentConvert; import cn.iocoder.mall.order.biz.dao.OrderCommentMapper; import cn.iocoder.mall.order.biz.dao.OrderCommentReplayMapper; @@ -37,19 +39,13 @@ public class OrderCommentServiceImpl implements OrderCommentService { private OrderCommentReplayMapper orderCommentReplayMapper; - @Autowired - private OrderCommentService orderCommentService; - @Override public OrderCommentCreateBO createOrderComment(OrderCommentCreateDTO orderCommentCreateDTO) { - //首先判断订单状态是否处于待评价状态 - - //接下来就是入库 - OrderCommentDO orderCommentDO=OrderCommentConvert.INSTANCE.convert(orderCommentCreateDTO); + OrderCommentDO orderCommentDO=OrderCommentConvert.INSTANCE.convertOrderCommentDO(orderCommentCreateDTO); orderCommentDO.setCreateTime(new Date()); orderCommentDO.setUpdateTime(new Date()); orderCommentMapper.insert(orderCommentDO); - return OrderCommentConvert.INSTANCE.convert(orderCommentDO); + return OrderCommentConvert.INSTANCE.convertOrderCommentCreateBO(orderCommentDO); } @Override @@ -84,6 +80,22 @@ public class OrderCommentServiceImpl implements OrderCommentService { return OrderCommentConvert.INSTANCE.convertOrderCommentInfoBO(orderCommentDO); } + @Override + public OrderCommentStateInfoPageBO getOrderCommentStateInfoPage(OrderCommentStateInfoPageDTO orderCommentStateInfoPageDTO) { + OrderCommentStateInfoPageBO orderCommentStateInfoPageBO=new OrderCommentStateInfoPageBO(); + //总数 + int total=orderCommentMapper.selectOrderCommentStateInfoTotal(orderCommentStateInfoPageDTO.getUserId(), + orderCommentStateInfoPageDTO.getCommentState()); + //查询评论状态详情 + List orderCommentDOList=orderCommentMapper.selectOrderCommentStateInfoPage(orderCommentStateInfoPageDTO); + //转化评论状态详情 + List orderCommentStateInfoItemList= + OrderCommentConvert.INSTANCE.convertOrderCommentStateInfoItems(orderCommentDOList); + orderCommentStateInfoPageBO.setTotal(total); + orderCommentStateInfoPageBO.setOrderCommentStateInfoItems(orderCommentStateInfoItemList); + return orderCommentStateInfoPageBO; + } + @Override public Boolean OrderCommentTimeOutProductCommentTask() { return null; diff --git a/order/order-service-impl/src/main/resources/mapper/OrderCommentMapper.xml b/order/order-service-impl/src/main/resources/mapper/OrderCommentMapper.xml index bf3b2a6be..cd70f8e85 100644 --- a/order/order-service-impl/src/main/resources/mapper/OrderCommentMapper.xml +++ b/order/order-service-impl/src/main/resources/mapper/OrderCommentMapper.xml @@ -5,17 +5,17 @@ id,order_id,order_no,product_spu_id,product_spu_name,product_sku_id,product_sku_attrs,product_sku_price,product_sku_pic_url, user_id,user_avatar,user_nick_name,star,product_description_star,logistics_star,merchant_star,replay_count,like_count,comment_content, - comment_pics,create_time,update_time + comment_pics,comment_state,create_time,update_time INSERT INTO order_comment(order_id,order_no,product_spu_id,product_spu_name,product_sku_id, product_sku_attrs,product_sku_price,product_sku_pic_url,user_id,user_avatar,user_nick_name,star, - product_description_star,logistics_star,merchant_star,comment_content,comment_pics,create_time,update_time) + product_description_star,logistics_star,merchant_star,comment_content,comment_pics,comment_state,create_time,update_time) VALUES (#{orderId},#{orderNo},#{productSpuId},#{productSpuName},#{productSkuId},#{productSkuAttrs}, #{productSkuPrice},#{productSkuPicUrl},#{userId},#{userAvatar},#{userNickName},#{star}, - #{productDescriptionStar},#{logisticsStar},#{merchantStar},#{commentContent},#{commentPics},#{createTime}, #{updateTime}); + #{productDescriptionStar},#{logisticsStar},#{merchantStar},#{commentContent},#{commentPics},#{commentState},#{createTime}, #{updateTime}); @@ -47,4 +47,29 @@ id = #{id} + + + + + + + \ No newline at end of file