Przeglądaj źródła

线下票停售(修复)

zhangkaikai 1 rok temu
rodzic
commit
65b94d9a73

+ 0 - 61
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/TicketBoxMgrController.java

@@ -22,7 +22,6 @@ import com.qs.mp.common.core.page.TableDataInfo;
 import com.qs.mp.common.enums.*;
 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.utils.ExcelUtil;
 import com.qs.mp.web.controller.common.BaseApiController;
@@ -30,9 +29,6 @@ import io.swagger.annotations.*;
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
 import java.util.stream.Collectors;
 import ma.glasnost.orika.MapperFacade;
 import org.apache.commons.lang3.StringUtils;
@@ -81,9 +77,6 @@ public class TicketBoxMgrController extends BaseApiController {
     @Autowired
     private ITicketBoxGoodsService ticketBoxGoodsService;
 
-    @Autowired
-    private ITicketPackageService ticketPackageService;
-
     @Value("${mp.exportUrl}")
     private String exportUrl;
 
@@ -498,64 +491,10 @@ public class TicketBoxMgrController extends BaseApiController {
         if (null == ticketBox) {
             return AjaxResult.error("参数异常,盲票组不存在");
         }
-        //更新盲票列表的状态
-//        List<Ticket> ticketList = ticketService
-//            .list(new LambdaQueryWrapper<Ticket>().eq(Ticket::getBoxId, ticketBox.getBoxId()).eq(Ticket::getStatus,TicketStatusEnum.NOT_PAY));
-        //更新盲票包的状态
-//        List<TicketPackage> ticketPackageList = ticketPackageService.list(new LambdaQueryWrapper<TicketPackage>()
-//            .eq(TicketPackage::getBoxId, ticketBox.getBoxId()));
         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()));
-//            if(ticketPackageList != null && ticketPackageList.size()>0){
-//                for(TicketPackage ticketPackage : ticketPackageList){
-//                    ticketPackage.setStatus(TicketPkgStatusEnum.STOP);
-//                    ticketPackageService.saveOrUpdate(ticketPackage);
-//                }
-//            }
-//            if(ticketList == null || ticketList.size() == 0){
-//                return AjaxResult.error("盲票不存在");
-//            }
-//            //创建线程
-//            int threadNumber = 5;//线程数量
-//            long start = System.currentTimeMillis();//开始时间
-//            long begin = start / 1000;
-//            LogUtil.warn(logger,"开始时间{------------------------------} S",begin);
-//            // 线程总数的基数处理数据的条数
-//            int threadTotalStep = ticketList.size() / threadNumber;
-//            // 数据余数
-//            int remainderNumber = ticketList.size() % threadNumber;
-//            // 创建线程池,实际使用推荐用自定义线程池
-//            ExecutorService executorService = Executors.newFixedThreadPool(threadNumber);
-//            CountDownLatch countDownLatch = new CountDownLatch(threadNumber);
-
-//            for (int i = 0; i < threadNumber; i++) {
-//                // 计算当前线程的总数
-//                int threadTotal = threadTotalStep;
-//                if (remainderNumber > 0 && i == threadNumber - 1) {
-//                    threadTotal += remainderNumber;
-//                }
-//                executorService.execute(() -> {
-//                    for(Ticket ticket : ticketList){
-//                        try {
-//                            Thread.sleep(1);
-//                        } catch (InterruptedException e) {
-//                            e.printStackTrace();
-//                        }
-//                        ticket.setStatus(TicketStatusEnum.STOP);
-//                        ticketService.saveOrUpdate(ticket);
-//                    }
-//                    countDownLatch.countDown();
-//                });
-//            }
-//            try {
-//                countDownLatch.await();
-//            } catch (InterruptedException e) {
-//                e.printStackTrace();
-//            }
-//            long end = (System.currentTimeMillis() - start) / 1000;
-//            LogUtil.warn(logger,"总耗时间{------------------------------} S", end);
         }else {
             return AjaxResult.error("当前不是已上架或者已下架的线下盲票,不能进行停售操作");
         }

+ 5 - 4
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;
@@ -44,10 +45,10 @@ 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));
-    List<ChannelCartVO> channelCartVOS = channelCartService.listCartByChannelId(channelId);
+    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);
   }

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

@@ -428,57 +428,17 @@ public class UserTicketController extends BaseApiController {
             LogUtil.error(logger, "非法访问,serialNo:{0},param:{1}", serialNo, param);
             return AjaxResult.error("非法访问!");
         }
+        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().equals(TicketPkgStatusEnum.FOR_SALE)) {
-//            if(ticketBox.getStatus().equals(TicketBoxStatusEnum.STOP)){
-//                LogUtil.warn(logger, "盲票已停售。sn:{0},pkgId:{1}", new Object[] { ticket.getSerialNo(), ticket.getPkgId() });
-//                return AjaxResult.error(ErrorCodeEnum.ERROR_CODE_1027);
-//            }
-            LogUtil.warn(logger, "盲票未激活。sn:{0},pkgId:{1}", new Object[] { ticket.getSerialNo(), ticket.getPkgId() });
+        if (ticketPackage.getStatus() == TicketPkgStatusEnum.FOR_SALE) {
+            LogUtil.warn(logger, "盲票未激活。sn:{0},pkgId:{1}", new Object[]{ticket.getSerialNo(), ticket.getPkgId()});
             return AjaxResult.error(ErrorCodeEnum.ERROR_CODE_1023);
         }
-        AjaxResult ajaxResult = null;
-        //线下票绑定门店状态就是已售 绑定门店
-        if(ticketPackage.getStatus().equals(TicketPkgStatusEnum.SOLD)){
-            //停售盲票组
-            if(ticketBox.getStatus().equals(TicketBoxStatusEnum.STOP)){
-                if(ticket.getStatus().equals(TicketStatusEnum.NOT_PAY)){
-                    LogUtil.warn(logger, "盲票已停售", new Object[]{ticket.getSerialNo(), ticket.getPkgId()});
-                    return AjaxResult.error(ErrorCodeEnum.ERROR_CODE_1027);
-                }else{
-                    //走正常的逻辑
-                    ajaxResult = queryLuckyNumTrue(ticketPackage, ticket, ticketBox);
-                }
-            }else{
-                //走正常的逻辑
-                ajaxResult = queryLuckyNumTrue(ticketPackage, ticket, ticketBox);
-            }
-        }
-        //线下票绑定门店状态停售
-//        if(ticketPackage.getStatus().equals(TicketPkgStatusEnum.STOP)){
-//            if(ticket.getStatus().equals(TicketStatusEnum.NOT_PAY)){
-//                LogUtil.warn(logger, "盲票已停售", new Object[]{ticket.getSerialNo(), ticket.getPkgId()});
-//                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

@@ -157,6 +157,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)) {

+ 0 - 1
mp-common/src/main/java/com/qs/mp/common/enums/TicketPkgStatusEnum.java

@@ -15,7 +15,6 @@ public enum TicketPkgStatusEnum implements IEnum<String> {
 
   FOR_SALE("forSale", "待售"),
   SOLD("sold", "已售");
-//  STOP("stop","停售");
 
   private final String value;
   private final String desc;

+ 1 - 1
mp-service/src/main/java/com/qs/mp/admin/domain/Ticket.java

@@ -102,7 +102,7 @@ public class Ticket implements Serializable {
    */
   @TableField("status")
   @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
-  @ApiModelProperty("盲票状态;1未付款、2已激活、3已兑奖、4付款中、5停售")
+  @ApiModelProperty("盲票状态;1未付款、2已激活、3已兑奖、4付款中")
   private TicketStatusEnum status;
 
   /**

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

@@ -7,7 +7,7 @@ import lombok.Data;
 /**
  * @author Wang
  * @create 2023/5/8 11:43
- * @apiNote
+ * @apiNote 修复
  */
 
 @ApiModel(value= "线下盲票组停售参数")

+ 0 - 2
mp-service/src/main/java/com/qs/mp/channel/domain/ChannelCart.java

@@ -61,6 +61,4 @@ public class ChannelCart implements Serializable {
   @Version
   private Date updatedTime;
 
-  @TableField(exist = false)
-  private TicketBoxStatusEnum status;
 }

+ 0 - 6
mp-service/src/main/java/com/qs/mp/channel/domain/vo/ChannelCartVO.java

@@ -1,8 +1,6 @@
 package com.qs.mp.channel.domain.vo;
 
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.qs.mp.admin.domain.vo.TicketBoxListVO;
-import com.qs.mp.common.enums.TicketBoxStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -25,8 +23,4 @@ public class ChannelCartVO extends TicketBoxListVO {
    */
   @ApiModelProperty("订购数量")
   private Integer orderNum;
-
-
-  @TableField(exist = false)
-  private TicketBoxStatusEnum status;
 }

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

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

+ 0 - 7
mp-service/src/main/java/com/qs/mp/channel/service/IChannelCartService.java

@@ -26,13 +26,6 @@ public interface IChannelCartService extends IService<ChannelCart> {
    */
   List<ChannelCartVO> listCartVO(Wrapper<ChannelCart> queryWrapper);
 
-  /**
-   * 通过购物车列表
-   * @param channelId
-   * @return
-   */
-  List<ChannelCartVO> listCartByChannelId(Long channelId);
-
   /**
    * 加购,包含减购
    * @param param

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

@@ -8,8 +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.enums.TicketBoxStatusEnum;
 import com.qs.mp.common.exception.ServiceException;
 import com.qs.mp.utils.SecurityUtils;
 import java.util.List;
@@ -31,11 +29,6 @@ public class ChannelCartServiceImpl extends ServiceImpl<ChannelCartMapper, Chann
     return getBaseMapper().listCartVO(queryWrapper);
   }
 
-  @Override
-  public List<ChannelCartVO> listCartByChannelId(Long channelId) {
-    return getBaseMapper().listCartByChannelId(channelId);
-  }
-
   @Override
   public boolean addToCart(ChannelCartParam param) {
     Long channelId = SecurityUtils.getLoginUser().getChannelId();

+ 0 - 7
mp-service/src/main/resources/mapper/channel/ChannelCartMapper.xml

@@ -24,11 +24,4 @@
             ${ew.customSqlSegment}
     </select>
 
-    <select id="listCartByChannelId" resultType="com.qs.mp.channel.domain.vo.ChannelCartVO">
-        select t1.cart_id, t1.order_num, t2.*
-        from mp_channel_cart t1
-        left join mp_ticket_box t2 on t1.box_id = t2.box_id
-        where t1.channel_id = #{channelId} and t2.status = "on"
-        ORDER BY t1.updated_time DESC
-    </select>
 </mapper>