소스 검색

线下票停售(修复)

zhangkaikai 1 년 전
부모
커밋
b5276021f7

+ 49 - 16
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/TicketBoxMgrController.java

@@ -6,51 +6,38 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.github.xiaoymin.knife4j.annotations.DynamicParameter;
 import com.qs.mp.admin.domain.*;
 import com.qs.mp.admin.domain.excel.TicketExcel;
 import com.qs.mp.admin.domain.param.*;
+import com.qs.mp.admin.domain.vo.TicketAwardsPrizeVO;
 import com.qs.mp.admin.domain.vo.TicketAwardsVO;
 import com.qs.mp.admin.domain.vo.TicketBoxVO;
 import com.qs.mp.admin.service.*;
 import com.qs.mp.channel.domain.Channel;
-import com.qs.mp.channel.domain.param.ChannelParam;
-import com.qs.mp.channel.domain.vo.ChannelVO;
 import com.qs.mp.channel.service.IChannelService;
-import com.qs.mp.channel.service.IChannelUserRelService;
 import com.qs.mp.common.annotation.Log;
-import com.qs.mp.common.constant.UserConstants;
 import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.core.page.TableDataInfo;
 import com.qs.mp.common.enums.*;
-import com.qs.mp.common.exception.ServiceException;
 import com.qs.mp.common.pulsar.PulsarClientService;
 import com.qs.mp.common.utils.AESUtil;
-import com.qs.mp.common.utils.LogUtil;
 import com.qs.mp.common.utils.RSAUtil;
-import com.qs.mp.system.domain.SysUser;
-import com.qs.mp.system.service.ISysUserService;
 import com.qs.mp.utils.ExcelUtil;
 import com.qs.mp.web.controller.common.BaseApiController;
 import io.swagger.annotations.*;
-
-import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Comparator;
-import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 import java.util.stream.Collectors;
-
 import ma.glasnost.orika.MapperFacade;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.pulsar.client.api.PulsarClientException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Component;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
 
 /**
  * @auther zhongcp
@@ -123,7 +110,7 @@ public class TicketBoxMgrController extends BaseApiController {
         if (CollectionUtils.isNotEmpty(ticketBoxQueryParam.getExcludeBoxIds())) {
             queryWrapper.notIn("box_id", ticketBoxQueryParam.getExcludeBoxIds());
         }
-        queryWrapper.orderByAsc("FIELD(`status`, 'wait', 'doing', 'done', 'on', 'off')").orderByDesc("box_id");
+        queryWrapper.orderByAsc("FIELD(`status`, 'wait', 'doing', 'done', 'on', 'off','stop')").orderByDesc("box_id");
         List<TicketBox> list = ticketBoxService.list(queryWrapper);
         return getDataTable(list);
     }
@@ -466,5 +453,51 @@ public class TicketBoxMgrController extends BaseApiController {
 
     }
 
+    /**
+     * 查询单个盲票组绑定的红包奖项或者查询盲票组全部的红包奖项记录
+     * @param jsonObject
+     * @return
+     */
+    @PostMapping(value = "/redEnvelopeAward")
+    @PreAuthorize("@ss.hasPermi('business:awards:query')")
+    @ApiOperation("查询单个盲票组绑定的红包奖项或者查询盲票组全部的红包奖项记录")
+    @com.github.xiaoymin.knife4j.annotations.DynamicParameters(properties = {
+        @DynamicParameter(name = "boxId", value = "盲票组id", required = true, dataTypeClass = Long.class)
+    })
+    @ApiResponses(
+        @ApiResponse(code = 200, message = "查询成功", response = TicketBox.class)
+    )
+    public TableDataInfo redEnvelopeAward(@RequestBody JSONObject jsonObject) {
+        startPage();
+        String boxId = jsonObject.getString("boxId");
+        List<TicketAwardsPrizeVO> TicketAwardsPrizeVO = ticketAwardsPrizeService.listPrizeByBoxIdVO(boxId);
+        return getDataTable(TicketAwardsPrizeVO);
+    }
 
+    /**
+     * 线下盲票组停售
+     * @param
+     * @return
+     */
+    @Log(title = "线下盲票组停售", businessType = BusinessType.UPDATE)
+    @ApiOperation(value = "线下盲票组停售", notes = "线下盲票组停售")
+    @PostMapping("/stop")
+    @PreAuthorize("@ss.hasPermi('business:ticket:stop')")
+    public AjaxResult stop(@RequestBody TicketBoxOfflineParam param) {
+        if(StringUtils.isBlank(param.getBoxId())){
+            return AjaxResult.error("参数缺失");
+        }
+        TicketBox ticketBox = ticketBoxService.getById(param.getBoxId());
+        if (null == ticketBox) {
+            return AjaxResult.error("参数异常,盲票组不存在");
+        }
+        if((ticketBox.getStatus() == TicketBoxStatusEnum.PUT_ON || ticketBox.getStatus() == TicketBoxStatusEnum.PUT_OFF) && ticketBox.getType() == TicketTypeEnum.OFFLINE){
+            ticketBoxService.update(new LambdaUpdateWrapper<TicketBox>()
+                .set(TicketBox::getStatus, TicketBoxStatusEnum.STOP)
+                .eq(TicketBox::getBoxId, ticketBox.getBoxId()));
+        }else {
+            return AjaxResult.error("当前不是已上架或者已下架的线下盲票,不能进行停售操作");
+        }
+        return AjaxResult.success("操作成功");
+    }
 }

+ 7 - 3
mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/mall/ChannelCartController.java

@@ -1,6 +1,7 @@
 package com.qs.mp.web.controller.api.channel.mall;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.qs.mp.channel.domain.ChannelCart;
 import com.qs.mp.channel.domain.param.ChannelCartParam;
@@ -8,6 +9,7 @@ import com.qs.mp.channel.domain.vo.ChannelCartVO;
 import com.qs.mp.channel.service.IChannelCartService;
 import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.domain.param.BatchLongIdsParam;
+import com.qs.mp.common.enums.TicketBoxStatusEnum;
 import com.qs.mp.utils.SecurityUtils;
 import com.qs.mp.web.controller.common.BaseApiController;
 import io.swagger.annotations.Api;
@@ -43,9 +45,11 @@ public class ChannelCartController extends BaseApiController {
   public AjaxResult list(@RequestBody ChannelCart param) {
     Long channelId = SecurityUtils.getLoginUser().getChannelId();
     startPage();
-    List<ChannelCartVO> channelCartVOS = channelCartService.listCartVO(
-        new LambdaQueryWrapper<ChannelCart>().eq(ChannelCart::getChannelId, channelId)
-            .orderByDesc(ChannelCart::getUpdatedTime));
+    QueryWrapper<ChannelCart> queryWrapper = new QueryWrapper<ChannelCart>().eq("t1.channel_id", channelId)
+            .eq("t2.status", TicketBoxStatusEnum.PUT_ON.getValue())
+            .orderByDesc("t1.updated_time");
+    List<ChannelCartVO> channelCartVOS = channelCartService.listCartVO(queryWrapper);
+
     return AjaxResult.success(channelCartVOS);
   }
 

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

@@ -410,11 +410,9 @@ public class UserTicketController extends BaseApiController {
         @ApiResponse(code = 200, message = "success", response = TicketVO.class)
     )
     public AjaxResult queryLuckyNum(@RequestBody TicketParam param) {
-
         if (StringUtils.isBlank(param.getSerialNo())) {
             return AjaxResult.error("参数异常,盲票序列号缺失");
         }
-
         String serialNo = param.getSerialNo();
         boolean match = ReUtil.isMatch("^\\w*-\\w*-\\w*$", serialNo);
         if (!match) {
@@ -422,7 +420,6 @@ public class UserTicketController extends BaseApiController {
         }
         Ticket ticket = ticketService.getOne(
             new LambdaQueryWrapper<Ticket>().eq(Ticket::getSerialNo, serialNo));
-
         if (null == ticket) {
             return AjaxResult.error("参数异常,盲票不存在");
         }
@@ -431,53 +428,17 @@ public class UserTicketController extends BaseApiController {
             LogUtil.error(logger, "非法访问,serialNo:{0},param:{1}", serialNo, param);
             return AjaxResult.error("非法访问!");
         }
-        TicketPackage ticketPackage = ticketPackageService.getById(ticket.getPkgId());
-        //盲票状态:2已激活、3已兑奖、4付款中'
-        //处理线下票停售(type线下票。status已上架或已下架)
-        //判断盲票是否付款
-        // 未付款
-        AjaxResult ajaxResult = null;
-        if(ticket.getStatus().equals(TicketStatusEnum.STOP)){
-            LogUtil.warn(logger, "该盲票已停售", new Object[]{ticket.getSerialNo(), ticket.getPkgId()});
+        if (TicketBoxStatusEnum.STOP.getValue().equals(ticketBox.getStatus().getValue())) {
             return AjaxResult.error(ErrorCodeEnum.ERROR_CODE_1027);
         }
-        //未激活
+    /*if (ticket.getStatus() == TicketStatusEnum.CASHED) {
+      return AjaxResult.error(ErrorCodeEnum.ERROR_CODE_1017);
+    }*/
+        TicketPackage ticketPackage = ticketPackageService.getById(ticket.getPkgId());
         if (ticketPackage.getStatus() == TicketPkgStatusEnum.FOR_SALE) {
             LogUtil.warn(logger, "盲票未激活。sn:{0},pkgId:{1}", new Object[]{ticket.getSerialNo(), ticket.getPkgId()});
-            if(ticketBox.getStatus().equals(TicketBoxStatusEnum.STOP)){
-                LogUtil.warn(logger, "该盲票已停售", new Object[]{ticket.getSerialNo(), ticket.getPkgId()});
-                return AjaxResult.error(ErrorCodeEnum.ERROR_CODE_1027);
-            }
             return AjaxResult.error(ErrorCodeEnum.ERROR_CODE_1023);
-        }else if(ticketPackage.getStatus() == TicketPkgStatusEnum.SOLD){
-            //盲票已激活
-            LogUtil.warn(logger, "盲票已激活", new Object[]{ticket.getSerialNo(), ticket.getPkgId()});
-            if(ticket.getStatus().equals(TicketStatusEnum.NOT_PAY)){
-                if(ticketBox.getStatus().equals(TicketBoxStatusEnum.STOP)){
-                    LogUtil.warn(logger, "该盲票已停售", new Object[]{ticket.getSerialNo(), ticket.getPkgId()});
-                    return AjaxResult.error(ErrorCodeEnum.ERROR_CODE_1027);
-                }
-                ajaxResult = queryLuckyNumTrue(ticketPackage, ticket, ticketBox);
-            }else if(ticket.getStatus().equals(TicketStatusEnum.STOP)){
-                return AjaxResult.error(ErrorCodeEnum.ERROR_CODE_1027);
-            }else{
-                ajaxResult = queryLuckyNumTrue(ticketPackage, ticket, ticketBox);
-            }
         }
-        return ajaxResult;
-    }
-
-    /**
-     * 正常查询幸运数字的逻辑
-     * @param ticketPackage
-     * @param ticket
-     * @param ticketBox
-     * @return
-     */
-    private AjaxResult queryLuckyNumTrue(TicketPackage ticketPackage,Ticket ticket,TicketBox ticketBox) {
-        /*if (ticket.getStatus() == TicketStatusEnum.CASHED) {
-          return AjaxResult.error(ErrorCodeEnum.ERROR_CODE_1017);
-        }*/
         ChannelOrderDetail channelOrderDetail = channelOrderDetailService.getOne(
             new LambdaQueryWrapper<ChannelOrderDetail>().eq(ChannelOrderDetail::getPkgId, ticketPackage.getPkgId()));
         TicketVO ticketVO = new TicketVO();

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

@@ -156,6 +156,10 @@ public class UserTicketOrderController extends BaseApiController {
             orderAmt = ticketBox.getSalePrice() * param.getOrderNum();
         }
 
+        if (TicketBoxStatusEnum.STOP.getValue().equals(ticketBox.getType().getValue())) {
+            return AjaxResult.error("盲票已停售!");
+        }
+
         if (param.getAutoCoupon() == 1) {
             List<UserCouponVO> userCouponVOList = userCouponService.queryUserCouponList(userId, orderAmt, ticketBox);
             if (!CollectionUtils.isEmpty(userCouponVOList)) {

+ 18 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/param/TicketBoxOfflineParam.java

@@ -0,0 +1,18 @@
+package com.qs.mp.admin.domain.param;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author Wang
+ * @create 2023/5/8 11:43
+ * @apiNote 修复
+ */
+
+@ApiModel(value= "线下盲票组停售参数")
+@Data
+public class TicketBoxOfflineParam {
+  @ApiModelProperty(value = "盲票组ID",required=true)
+  private String boxId;
+}

+ 4 - 1
mp-service/src/main/java/com/qs/mp/channel/domain/ChannelCart.java

@@ -5,8 +5,12 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.Version;
+import com.qs.mp.common.enums.TicketBoxStatusEnum;
+import com.qs.mp.common.enums.TicketTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
 import java.io.Serializable;
 import java.util.Date;
+import javax.validation.constraints.NotNull;
 import lombok.Data;
 
 /**
@@ -57,5 +61,4 @@ public class ChannelCart implements Serializable {
   @Version
   private Date updatedTime;
 
-
 }

+ 1 - 0
mp-service/src/main/java/com/qs/mp/channel/mapper/ChannelCartMapper.java

@@ -15,4 +15,5 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface ChannelCartMapper extends BaseMapper<ChannelCart> {
   List<ChannelCartVO> listCartVO(@Param(Constants.WRAPPER) Wrapper<ChannelCart> queryWrapper);
+
 }

+ 0 - 1
mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelCartServiceImpl.java

@@ -8,7 +8,6 @@ import com.qs.mp.channel.domain.vo.ChannelCartVO;
 import com.qs.mp.channel.mapper.ChannelCartMapper;
 import com.qs.mp.channel.service.IChannelCartService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.exception.ServiceException;
 import com.qs.mp.utils.SecurityUtils;
 import java.util.List;