소스 검색

用户订单详情

cup 3 년 전
부모
커밋
19a339794c

+ 16 - 5
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/UserTicketOrderMgrController.java

@@ -1,7 +1,9 @@
 package com.qs.mp.web.controller.api.admin;
 
 import com.qs.mp.admin.domain.param.UserTicketOrderQueryParam;
+import com.qs.mp.admin.domain.vo.UserTicketOrderDetailVO;
 import com.qs.mp.admin.domain.vo.UserTicketOrderListVO;
+import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.core.page.TableDataInfo;
 import com.qs.mp.user.service.IUserTicketOrderService;
 import com.qs.mp.web.controller.common.BaseApiController;
@@ -10,10 +12,7 @@ import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -30,7 +29,7 @@ public class UserTicketOrderMgrController extends BaseApiController {
     @Autowired
     private IUserTicketOrderService userTicketOrderService;
 
-    @PostMapping("list")
+    @PostMapping("/list")
     @ApiOperation("用户盲票订单列表")
     @ApiResponses(
             @ApiResponse(code = 200, message = "成功", response = UserTicketOrderListVO.class)
@@ -40,4 +39,16 @@ public class UserTicketOrderMgrController extends BaseApiController {
         List<UserTicketOrderListVO> list = userTicketOrderService.listUserTicketOrder(userTicketOrderQueryParam);
         return getDataTable(list);
     }
+
+    @PostMapping("/detail/{orderId}")
+    @ApiOperation("用户盲票订单详情")
+    @ApiResponses(
+            @ApiResponse(code = 200, message = "成功", response = UserTicketOrderDetailVO.class)
+    )
+    public AjaxResult detail(@PathVariable("orderId") String orderId) {
+
+        return AjaxResult.success(userTicketOrderService.detail(orderId));
+    }
+
+
 }

+ 36 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/vo/UserTicketOrderDetailVO.java

@@ -0,0 +1,36 @@
+package com.qs.mp.admin.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 用户盲票订单详情出参类
+ * @author Cup
+ * @date 2022/5/6
+ */
+@ApiModel("用户盲票订单详情出参类")
+@Data
+public class UserTicketOrderDetailVO {
+
+    @ApiModelProperty("订单id")
+    private String orderId;
+
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("渠道商名称")
+    private String channelName;
+
+    @ApiModelProperty("创建时间")
+    private Date createdTime;
+
+    @ApiModelProperty("票相关信息列表")
+    private List<UserTicketOrderTicketDetailVO>  ticketDetailList;
+}

+ 48 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/vo/UserTicketOrderTicketDetailVO.java

@@ -0,0 +1,48 @@
+package com.qs.mp.admin.domain.vo;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.qs.mp.common.enums.TicketStatusEnum;
+import com.qs.mp.common.enums.TicketTypeEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 用户盲票订单盲票详情出参类
+ * @author Cup
+ * @date 2022/5/6
+ */
+@ApiModel("用户盲票订单盲票详情出参类")
+@Data
+public class UserTicketOrderTicketDetailVO {
+
+    @ApiModelProperty("盲票序列号")
+    private String serialNo;
+
+    @ApiModelProperty("销售价格")
+    private Integer salePrice;
+
+    @ApiModelProperty("盲票组标题")
+    private String ticketBoxTitle;
+
+    @ApiModelProperty("盲票形式(线上或线下)")
+    @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
+    private TicketTypeEnum TicketBoxType;
+
+    @ApiModelProperty("分佣的销售额百分比")
+    private BigDecimal saleCommRate;
+
+    @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
+    @ApiModelProperty("盲票状态;1未付款、2已激活、3已兑奖、4付款中")
+    private TicketStatusEnum status;
+
+    @ApiModelProperty("奖级")
+    private String prizeGrade;
+
+    @ApiModelProperty("奖品名称")
+    private String prizeTitle;
+}

+ 9 - 0
mp-service/src/main/java/com/qs/mp/user/mapper/UserTicketOrderItemMapper.java

@@ -1,10 +1,12 @@
 package com.qs.mp.user.mapper;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.qs.mp.admin.domain.TicketAwardsPrize;
 import com.qs.mp.admin.domain.vo.TicketAwardsPrizeVO;
 import com.qs.mp.admin.domain.vo.TicketListVO;
+import com.qs.mp.admin.domain.vo.UserTicketOrderTicketDetailVO;
 import com.qs.mp.user.domain.UserTicketOrderItem;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import java.util.List;
@@ -21,4 +23,11 @@ public interface UserTicketOrderItemMapper extends BaseMapper<UserTicketOrderIte
   List<TicketListVO> listMyTicketVO(@Param(Constants.WRAPPER) Wrapper<UserTicketOrderItem> queryWrapper);
 
   int countMyTicket(@Param(Constants.WRAPPER) Wrapper<UserTicketOrderItem> queryWrapper);
+
+  /**
+   * 获取订单下盲票相关详情信息
+   * @param queryWrapper
+   * @return
+   */
+  List<UserTicketOrderTicketDetailVO> listTicketDetailByOrderId(@Param(Constants.WRAPPER) QueryWrapper<UserTicketOrderTicketDetailVO> queryWrapper);
 }

+ 8 - 0
mp-service/src/main/java/com/qs/mp/user/mapper/UserTicketOrderMapper.java

@@ -3,6 +3,7 @@ package com.qs.mp.user.mapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qs.mp.admin.domain.vo.IndexVO;
 import com.qs.mp.admin.domain.vo.TicketCntVO;
+import com.qs.mp.admin.domain.vo.UserTicketOrderDetailVO;
 import com.qs.mp.admin.domain.vo.UserTicketOrderListVO;
 import com.qs.mp.user.domain.UserDeliverOrder;
 import com.qs.mp.user.domain.UserTicketOrder;
@@ -91,4 +92,11 @@ public interface UserTicketOrderMapper extends BaseMapper<UserTicketOrder> {
 	 * @return
 	 */
 	List<UserTicketOrderListVO> listUserTicketOrder(@Param(Constants.WRAPPER) QueryWrapper<UserTicketOrder> queryWrapper);
+
+	/**
+	 * 查询用户盲票订单详情
+	 * @param orderId
+	 * @return
+	 */
+	UserTicketOrderDetailVO selectUserTicketOrderDetail(@Param(Constants.WRAPPER) QueryWrapper<UserTicketOrder> queryWrapper);
 }

+ 9 - 0
mp-service/src/main/java/com/qs/mp/user/service/IUserTicketOrderItemService.java

@@ -3,6 +3,7 @@ package com.qs.mp.user.service;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.qs.mp.admin.domain.vo.TicketListVO;
+import com.qs.mp.admin.domain.vo.UserTicketOrderTicketDetailVO;
 import com.qs.mp.common.enums.TicketStatusEnum;
 import com.qs.mp.user.domain.UserTicketOrderItem;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -47,4 +48,12 @@ public interface IUserTicketOrderItemService extends IService<UserTicketOrderIte
    * @return
    */
   TicketListVO queryTicketVO(Long userId, String orderId);
+
+  /**
+   * 获取订单下盲票相关详情信息
+   *
+   * @param orderId
+   * @return
+   */
+  List<UserTicketOrderTicketDetailVO> listTicketDetailByOrderId(String orderId);
 }

+ 8 - 0
mp-service/src/main/java/com/qs/mp/user/service/IUserTicketOrderService.java

@@ -3,6 +3,7 @@ package com.qs.mp.user.service;
 import com.qs.mp.admin.domain.param.UserTicketOrderQueryParam;
 import com.qs.mp.admin.domain.vo.IndexVO;
 import com.qs.mp.admin.domain.vo.TicketCntVO;
+import com.qs.mp.admin.domain.vo.UserTicketOrderDetailVO;
 import com.qs.mp.admin.domain.vo.UserTicketOrderListVO;
 import com.qs.mp.channel.domain.ChannelOrderDetail;
 import com.qs.mp.pay.domain.PayOrder;
@@ -140,4 +141,11 @@ public interface IUserTicketOrderService extends IService<UserTicketOrder> {
     List<UserTicketOrderListVO> listUserTicketOrder(UserTicketOrderQueryParam userTicketOrderQueryParam);
 
 
+    /**
+     * 查询用户订单详情
+     * @param orderId
+     * @return
+     */
+    UserTicketOrderDetailVO detail(String orderId);
+
 }

+ 8 - 0
mp-service/src/main/java/com/qs/mp/user/service/impl/UserTicketOrderItemServiceImpl.java

@@ -2,6 +2,7 @@ package com.qs.mp.user.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qs.mp.admin.domain.vo.TicketListVO;
+import com.qs.mp.admin.domain.vo.UserTicketOrderTicketDetailVO;
 import com.qs.mp.common.enums.ErrorCodeEnum;
 import com.qs.mp.common.enums.TicketStatusEnum;
 import com.qs.mp.common.enums.UserTicketOrderStatusEnum;
@@ -59,4 +60,11 @@ public class UserTicketOrderItemServiceImpl extends ServiceImpl<UserTicketOrderI
     }
     return ticketListVOS.get(0);
   }
+
+  @Override
+  public List<UserTicketOrderTicketDetailVO> listTicketDetailByOrderId(String orderId) {
+    QueryWrapper<UserTicketOrderTicketDetailVO> queryWrapper = new QueryWrapper<>();
+    queryWrapper.eq("t1.order_id", orderId);
+    return getBaseMapper().listTicketDetailByOrderId(queryWrapper);
+  }
 }

+ 12 - 3
mp-service/src/main/java/com/qs/mp/user/service/impl/UserTicketOrderServiceImpl.java

@@ -10,9 +10,7 @@ import com.qs.mp.admin.domain.Ticket;
 import com.qs.mp.admin.domain.TicketBox;
 import com.qs.mp.admin.domain.TicketPackage;
 import com.qs.mp.admin.domain.param.UserTicketOrderQueryParam;
-import com.qs.mp.admin.domain.vo.IndexVO;
-import com.qs.mp.admin.domain.vo.TicketCntVO;
-import com.qs.mp.admin.domain.vo.UserTicketOrderListVO;
+import com.qs.mp.admin.domain.vo.*;
 import com.qs.mp.admin.service.ITicketBoxService;
 import com.qs.mp.admin.service.ITicketPackageService;
 import com.qs.mp.admin.service.ITicketService;
@@ -575,4 +573,15 @@ public class UserTicketOrderServiceImpl extends
 
     return getBaseMapper().listUserTicketOrder(queryWrapper);
   }
+
+  @Override
+  public UserTicketOrderDetailVO detail(String orderId) {
+    QueryWrapper<UserTicketOrder> queryWrapper = new QueryWrapper<>();
+    queryWrapper.eq("t1.order_id", orderId);
+    UserTicketOrderDetailVO userTicketOrderDetailVO = getBaseMapper().selectUserTicketOrderDetail(queryWrapper);
+
+    List<UserTicketOrderTicketDetailVO> list = userTicketOrderItemService.listTicketDetailByOrderId(orderId);
+    userTicketOrderDetailVO.setTicketDetailList(list);
+    return userTicketOrderDetailVO;
+  }
 }

+ 18 - 0
mp-service/src/main/resources/mapper/user/UserTicketOrderItemMapper.xml

@@ -55,4 +55,22 @@
             ${ew.customSqlSegment}
     </select>
 
+    <select id="listTicketDetailByOrderId" resultType="com.qs.mp.admin.domain.vo.UserTicketOrderTicketDetailVO">
+        select t3.serial_no,
+               t2.sale_price,
+               t2.title ticketBoxTitle,
+               t7.type ticketBoxType,
+               t7.sale_comm_rate,
+               t3.status,
+               t6.name prizeGrade,
+               t5.title prizeTitle
+        from mp_user_ticket_order_item t1
+             left join mp_user_ticket_order t2 on t1.order_id = t2.order_id
+             left join mp_ticket t3 on t1.ticket_id = t3.ticket_id
+             left join mp_user_hit_prize t4 on t3.ticket_id = t4.ticket_id
+             left join mp_ticket_awards_prize t5 on t4.prize_id = t5.prize_id
+             left join mp_ticket_awards t6 on t5.awards_id = t6.awards_id
+             left join mp_ticket_box t7 on t7.box_id = t2.box_id
+        ${ew.customSqlSegment}
+    </select>
 </mapper>

+ 13 - 0
mp-service/src/main/resources/mapper/user/UserTicketOrderMapper.xml

@@ -146,4 +146,17 @@
 				 left join mp_ticket_box t3 on t1.box_id = t3.box_id
 		${ew.customSqlSegment}
     </select>
+
+    <select id="selectUserTicketOrderDetail" resultType="com.qs.mp.admin.domain.vo.UserTicketOrderDetailVO">
+		select t1.order_id,
+			   t1.created_time,
+			   t2.nick_name,
+			   t2.phonenumber phone,
+			   t4.name channelName
+		from mp_user_ticket_order t1
+				 left join sys_user t2 on t1.user_id = t2.user_id
+				 left join mp_channel_user_rel t3 on t2.user_id = t3.user_id
+				 left join mp_channel t4 on t3.channel_id = t4.channel_id
+		${ew.customSqlSegment}
+	</select>
 </mapper>