Parcourir la source

Merge branch 'bugfix_0607' into dev

cup il y a 2 ans
Parent
commit
325f3c4d3b

+ 27 - 0
mp-admin/src/main/java/com/qs/mp/web/controller/api/user/UserTicketController.java

@@ -292,6 +292,13 @@ public class UserTicketController extends BaseApiController {
       return AjaxResult.error(ErrorCodeEnum.ERROR_CODE_1018);
     }
 
+    // 线上盲票不支持查看兑奖奖品
+    TicketBox ticketBox = ticketBoxService.getById(ticket.getBoxId());
+    if (TicketTypeEnum.ONLINE.equals(ticketBox.getType())) {
+      LogUtil.error(logger, "线上盲票不支持查看兑奖奖品。ticketId:{0}", ticket.getTicketId());
+      return AjaxResult.error(ErrorCodeEnum.ERROR_CODE_1000);
+    }
+
     List<TicketAwardsPrize> ticketAwardsPrizes = userHitPrizeService.listPrize(ticket, userId);
     JSONObject jsonObject = new JSONObject();
     jsonObject.put("prizeList", ticketAwardsPrizes);
@@ -304,6 +311,19 @@ public class UserTicketController extends BaseApiController {
   @ApiOperation("自动开奖")
   public AjaxResult autoCashPrize(@Validated @RequestBody TicketAutoCashPrizeParam param) {
     Long userId = SecurityUtils.getLoginUser().getUserId();
+    if (Objects.nonNull(param.getTicketId())) {
+      Ticket ticket = ticketService.getById(param.getTicketId());
+      UserTicketOrderItem userTicketOrderItem = userTicketOrderItemService.getOne(new LambdaQueryWrapper<UserTicketOrderItem>()
+              .eq(UserTicketOrderItem::getTicketId, param.getTicketId())
+              .eq(UserTicketOrderItem::getUserId, userId));
+      if (Objects.isNull(ticket) || Objects.isNull(userTicketOrderItem)) {
+        return AjaxResult.error(ErrorCodeEnum.ERROR_CODE_1018);
+      }
+      param.setBoxId(ticket.getBoxId());
+      param.setOrderId(userTicketOrderItem.getOrderId());
+      param.setIsTry(0);
+    }
+
     return AjaxResult.success(userHitPrizeService.autoCashPrize(userId, param));
   }
 
@@ -330,6 +350,13 @@ public class UserTicketController extends BaseApiController {
       return AjaxResult.error(ErrorCodeEnum.ERROR_CODE_1019);
     }
 
+    // 线上盲票不支持手动兑奖
+    TicketBox ticketBox = ticketBoxService.getById(ticket.getBoxId());
+    if (TicketTypeEnum.ONLINE.equals(ticketBox.getType())) {
+      LogUtil.error(logger, "线上盲票不支持手动兑奖。ticketId:{0}", ticket.getTicketId());
+      return AjaxResult.error(ErrorCodeEnum.ERROR_CODE_1000);
+    }
+
     // 兑奖
     String lockKey = RedisLockKey.build(RedisLockKey.USER_TICKET_CASH_LOCK, param.getPrizeId());
     if (!distributedLocker.tryLock(lockKey)) {

+ 8 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/vo/TicketListVO.java

@@ -2,6 +2,10 @@ package com.qs.mp.admin.domain.vo;
 
 import java.util.List;
 
+import com.alibaba.fastjson.annotation.JSONField;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.qs.mp.common.enums.TicketTypeEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -78,4 +82,8 @@ public class TicketListVO {
   @ApiModelProperty("奖品类型")
   private String prizeType;
 
+  @ApiModelProperty("盲票形式(线上或线下)")
+  @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
+  private TicketTypeEnum type;
+
 }

+ 4 - 0
mp-service/src/main/java/com/qs/mp/user/domain/param/TicketAutoCashPrizeParam.java

@@ -16,6 +16,10 @@ import javax.validation.constraints.NotNull;
 @Data
 public class TicketAutoCashPrizeParam {
 
+    @ApiModelProperty("盲票id")
+    private String ticketId;
+
+
     @ApiModelProperty("盲票订单ID")
     private String orderId;
 

+ 1 - 0
mp-service/src/main/java/com/qs/mp/user/service/impl/UserHitPrizeServiceImpl.java

@@ -34,6 +34,7 @@ import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 import java.util.Random;
 import java.util.stream.Collectors;
 

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

@@ -35,6 +35,7 @@
                 t3.face_price,
                 t3.plain_lucky_num,
                 t3.`status`,
+                t4.type,
                 t6.title prizeInfo,
                 t6.`value`,
                 t6.prize_type