Procházet zdrojové kódy

Merge branch 'bugfix_220420' into 'master'

Bugfix 220420

See merge request quanshu/mp-server!409
zhong chunping před 3 roky
rodič
revize
5355c7e39a

+ 11 - 0
mp-admin/src/main/java/com/qs/mp/web/controller/api/callback/PayCallBackController.java

@@ -1,6 +1,8 @@
 package com.qs.mp.web.controller.api.callback;
 
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.qs.mp.common.enums.PayOrderStatusEnum;
+import com.qs.mp.common.exception.ServiceException;
 import com.qs.mp.common.utils.LogUtil;
 import com.qs.mp.common.utils.StringUtils;
 import com.qs.mp.common.utils.WebhookService;
@@ -79,6 +81,15 @@ public class PayCallBackController {
     payOrder.setOrderStatus(orderStatus);
 
     try {
+      // 订单支付状态单独保存
+      LambdaUpdateWrapper<PayOrder> updateWrapper = new LambdaUpdateWrapper<>();
+      updateWrapper.eq(PayOrder::getOrderStatus, PayOrderStatusEnum.WAIT.getValue());
+      updateWrapper.eq(PayOrder::getOrderId, shopOrderNo);
+      boolean ret = payOrderService.update(payOrder, updateWrapper);
+      if (!ret) {
+        throw new ServiceException("支付订单更新失败,orderId:" + shopOrderNo);
+      }
+
       // 更新订单,单个事务处理
       logger.info("支付回调消息更新成功 shopOrderNo:"+shopOrderNo);
       walletService.payOrderStatusHandle(payOrder);

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

@@ -15,8 +15,10 @@ import com.qs.mp.common.core.redis.RedisCache;
 import com.qs.mp.common.enums.BizTypeEnum;
 import com.qs.mp.common.enums.CouponUseAreaEnum;
 import com.qs.mp.common.enums.ErrorCodeEnum;
+import com.qs.mp.common.enums.MqTopicType;
 import com.qs.mp.common.enums.TicketTypeEnum;
 import com.qs.mp.common.exception.ServiceException;
+import com.qs.mp.common.pulsar.PulsarClientService;
 import com.qs.mp.common.utils.LogUtil;
 import com.qs.mp.common.utils.StringUtils;
 import com.qs.mp.framework.redis.RedisKey;
@@ -41,6 +43,7 @@ import java.util.concurrent.TimeUnit;
 import javax.validation.Valid;
 import lombok.AllArgsConstructor;
 import ma.glasnost.orika.MapperFacade;
+import org.apache.pulsar.client.api.PulsarClientException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -80,6 +83,9 @@ public class UserTicketOrderController extends BaseApiController {
   @Autowired
   private RedisCache redisCache;
 
+  @Autowired
+  private PulsarClientService pulsarClientService;
+
 
   /**
    * 订单结算,每次更换优惠券时需重新请求此接口
@@ -159,6 +165,11 @@ public class UserTicketOrderController extends BaseApiController {
       jsonObject.put("needPay", 1);
     } else {
       jsonObject.put("needPay", 0);
+      try {
+          pulsarClientService.producer(MqTopicType.ticket_pay, orderId);
+      } catch (PulsarClientException e) {
+        LogUtil.error(logger, e, "盲票支付成功,发送异步消息失败. orderId:{0}", orderId);
+      }
     }
     // 清除缓存的订单
     redisCache.deleteObject(RedisKey.build(RedisKey.USER_TICKET_ORDER_KEY, userId));

+ 1 - 1
mp-common/src/main/java/com/qs/mp/common/pulsar/PulsarClientService.java

@@ -143,7 +143,7 @@ public class PulsarClientService {
     Producer<byte[]> finalProducer = producer;
     messageIdFuture.whenComplete(((messageId, throwable) -> {
       if (null != throwable) {
-        logger.error("【消息投递异常,开始重试】", throwable);
+        logger.error("【消息投递异常,开始重试】mq data:" + data, throwable);
         //todo 失败重试策略
         try {
           finalProducer.newMessage().deliverAfter(5, TimeUnit.SECONDS

+ 58 - 0
mp-quartz/src/main/java/com/qs/mp/quartz/task/OperateToolTask.java

@@ -0,0 +1,58 @@
+package com.qs.mp.quartz.task;
+
+import com.qs.mp.common.enums.MqTopicType;
+import com.qs.mp.common.pulsar.PulsarClientService;
+import com.qs.mp.common.utils.LogUtil;
+import com.qs.mp.pay.service.IWalletService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 后台人工操作入口
+ *
+ * @author zhongcp
+ * @Date 2022/3/17
+ */
+@Component("operateToolTask")
+public class OperateToolTask {
+
+  protected final Logger logger = LoggerFactory.getLogger(this.getClass().getSimpleName());
+
+  @Autowired
+  private PulsarClientService pulsarClientService;
+
+  @Autowired
+  private IWalletService walletService;
+
+  /**
+   * 重新发送消息
+   */
+  public void resendTicketPayMsg(String orderId) {
+    LogUtil.info(logger, "...重新发送盲票支付消息任务开始...");
+
+    try {
+      pulsarClientService.producer(MqTopicType.ticket_pay, orderId);
+    } catch (Exception e) {
+      LogUtil.error(logger, e, "重新发送盲票支付消息异常。orderId:{0}", orderId);
+    }
+
+    LogUtil.info(logger, "...重新发送盲票支付消息任务结束...");
+  }
+
+
+  /**
+   * 退款
+   * @param orderNo
+   * @param refundAmount
+   */
+  public void refund(String orderNo, Integer refundAmount){
+    LogUtil.info(logger, "...退款任务开始...");
+
+    walletService.refund(orderNo, refundAmount);
+
+    LogUtil.info(logger, "...退款任务结束...");
+
+  }
+}

+ 2 - 1
mp-service/src/main/java/com/qs/mp/framework/redis/RedisKey.java

@@ -12,7 +12,8 @@ public enum RedisKey {
     WX_APP_TOKEN_KEY("app_token_key_{0}", "小程序app token"),
     CHANNEL_ORDER_KEY("channel_order_{0}", "经销商下的盲票采购单"),
     USER_TICKET_ORDER_KEY("user_ticket_order_key_{0}", "用户购票订单"),
-    USER_DELIVER_ORDER_KEY("user_deliver_order_key_{0}", "用户提货订单");
+    USER_DELIVER_ORDER_KEY("user_deliver_order_key_{0}", "用户提货订单"),
+    OFFLINE_TICKET_ID_KEY("offline_ticket_id_key_{0}", "线下盲票ID"),;
 
     public String keyTemplate;
     public String desc;

+ 11 - 0
mp-service/src/main/java/com/qs/mp/mq/impl/PulsarConsumerImpl.java

@@ -8,6 +8,7 @@ import com.qs.mp.admin.service.ITicketBoxService;
 import com.qs.mp.common.enums.CommStatusEnum;
 import com.qs.mp.common.enums.MqTopicType;
 import com.qs.mp.common.enums.TicketBoxStatusEnum;
+import com.qs.mp.common.enums.TicketTypeEnum;
 import com.qs.mp.common.enums.UserTicketOrderStatusEnum;
 import com.qs.mp.common.pulsar.PulsarConsumer;
 import com.qs.mp.common.utils.LogUtil;
@@ -51,6 +52,16 @@ public class PulsarConsumerImpl implements PulsarConsumer {
   private void processTicketPayMsg(String mqData) {
     String orderId = mqData;
     UserTicketOrder ticketOrder = userTicketOrderService.getById(orderId);
+
+    TicketBox ticketBox = ticketBoxService.getById(ticketOrder.getBoxId());
+    if (ticketBox.getType() == TicketTypeEnum.OFFLINE) {
+      // 线下票更新销量,此处不做乐观锁控制,因为不用控制库存
+      ticketBoxService.update(
+          new LambdaUpdateWrapper<TicketBox>().set(TicketBox::getSaleQty,
+                  ticketBox.getSaleQty() + 1)
+              .eq(TicketBox::getBoxId, ticketBox.getBoxId()));
+    }
+
     if (ticketOrder.getCommStatus() != CommStatusEnum.NO) {
       LogUtil.warn(logger, "收到盲票支付成功消息,订单结佣状态不是未结佣,忽略消息。orderId=" + orderId);
       return;

+ 6 - 0
mp-service/src/main/java/com/qs/mp/pay/service/IWalletService.java

@@ -21,6 +21,12 @@ public interface IWalletService {
    */
   JSONObject pay(BizTypeEnum bizType, String bizId, String openId, int money);
 
+  /**
+   * 订单退款
+   * @return
+   */
+  boolean refund(String orderNo, Integer refundAmount);
+
   /**
    *
    *订单支付回调统一处理函数

+ 34 - 10
mp-service/src/main/java/com/qs/mp/pay/service/impl/WalletServiceImpl.java

@@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.qs.mp.channel.service.IChannelOrderService;
 import com.qs.mp.common.enums.BizTypeEnum;
+import com.qs.mp.common.enums.MqTopicType;
 import com.qs.mp.common.enums.PayOrderStatusEnum;
 import com.qs.mp.common.exception.ServiceException;
+import com.qs.mp.common.pulsar.PulsarClientService;
 import com.qs.mp.common.utils.DateUtils;
 import com.qs.mp.common.utils.LogUtil;
 import com.qs.mp.common.utils.StringUtils;
@@ -18,6 +20,7 @@ import com.qs.mp.system.service.id.BizIdGenerator;
 import com.qs.mp.user.service.IUserDeliverOrderService;
 import com.qs.mp.user.service.IUserTicketOrderService;
 import java.util.List;
+import org.apache.pulsar.client.api.PulsarClientException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -48,6 +51,9 @@ public class WalletServiceImpl implements IWalletService {
   @Autowired
   private IUserDeliverOrderService userDeliverOrderService;
 
+  @Autowired
+  private PulsarClientService pulsarClientService;
+
   @Autowired
   private BizIdGenerator bizIdGenerator;
 
@@ -121,17 +127,28 @@ public class WalletServiceImpl implements IWalletService {
   }
 
   @Override
-  @Transactional
+  public boolean refund(String orderNo, Integer refundAmount) {
+
+    String reqUrl = baseUrl + "/pay/refundOrder";
+
+    JSONObject sendData = new JSONObject();
+    sendData.put("shop_no", userPayShopNo);
+    sendData.put("timestamp",System.currentTimeMillis());
+    sendData.put("order_no",orderNo);
+    sendData.put("refund_amount", refundAmount);
+    sendData.put("order_remark", "测试退款");
+    sendData.put("type","sno");
+    sendData.put("sign",userPaySign);
+    System.err.println(sendData.toJSONString());
+    String result = OkHttpUtil.postJsonParams(reqUrl, sendData.toJSONString());
+    System.err.println(result);
+    return true;
+  }
+
+  @Override
   public void payOrderStatusHandle(PayOrder payOrder) {
     String orderNo = payOrder.getOrderId();
-    // 订单支付状态单独保存
-    LambdaUpdateWrapper<PayOrder> updateWrapper = new LambdaUpdateWrapper<>();
-    updateWrapper.eq(PayOrder::getOrderStatus, PayOrderStatusEnum.WAIT.getValue());
-    updateWrapper.eq(PayOrder::getOrderId, orderNo);
-    boolean ret = payOrderService.update(payOrder, updateWrapper);
-    if (!ret) {
-      throw new ServiceException("支付订单更新失败,orderNo:" + orderNo);
-    }
+
     //查询统一支付订单表,查询订单类型,然后根据不同类型做对应的逻辑处理
     //查询支付状态为1:支付成功,2:订单创建成功,等待支付。
     PayOrder order = payOrderService.getById(orderNo);
@@ -142,7 +159,14 @@ public class WalletServiceImpl implements IWalletService {
       channelOrderService.paySuccess(order);
     } else if (BizTypeEnum.TICKET_ORDER == order.getBizType()) {
       // 用户盲票购买订单支付成功,调用业务订单服务处理
-      userTicketOrderService.paySuccess(order);
+      boolean rst = userTicketOrderService.paySuccess(order);
+      try {
+        if (rst) {
+          pulsarClientService.producer(MqTopicType.ticket_pay, order.getBizId());
+        }
+      } catch (PulsarClientException e) {
+        LogUtil.error(logger, e, "盲票支付成功,发送异步消息失败. orderId:{0}", order.getBizId());
+      }
     } else if (BizTypeEnum.DELIVER_ORDER == order.getBizType()) {
       // 用户提货订单支付成功,调用业务订单服务处理
       userDeliverOrderService.paySuccess(order);

+ 79 - 77
mp-service/src/main/java/com/qs/mp/user/service/impl/UserTicketOrderServiceImpl.java

@@ -21,29 +21,27 @@ import com.qs.mp.channel.service.IChannelMoneyLogService;
 import com.qs.mp.channel.service.IChannelOrderDetailService;
 import com.qs.mp.channel.service.IChannelService;
 import com.qs.mp.channel.service.IChannelUserRelService;
+import com.qs.mp.common.core.redis.RedisCache;
 import com.qs.mp.common.enums.ChannelMoneyEnum;
 import com.qs.mp.common.enums.CommStatusEnum;
 import com.qs.mp.common.enums.ErrorCodeEnum;
-import com.qs.mp.common.enums.MqTopicType;
 import com.qs.mp.common.enums.TicketBoxStatusEnum;
 import com.qs.mp.common.enums.TicketStatusEnum;
 import com.qs.mp.common.enums.TicketTypeEnum;
 import com.qs.mp.common.enums.UserCouponStatusEnum;
 import com.qs.mp.common.enums.UserTicketOrderStatusEnum;
 import com.qs.mp.common.exception.ServiceException;
-import com.qs.mp.common.pulsar.PulsarClientService;
 import com.qs.mp.common.utils.LogUtil;
 import com.qs.mp.common.utils.RSAUtil;
 import com.qs.mp.common.utils.StringUtils;
+import com.qs.mp.framework.redis.RedisKey;
 import com.qs.mp.pay.domain.PayOrder;
 import com.qs.mp.system.service.id.BizIdGenerator;
 import com.qs.mp.user.domain.UserCoupon;
-import com.qs.mp.user.domain.UserDeliverOrder;
 import com.qs.mp.user.domain.UserTicketOrder;
 import com.qs.mp.user.domain.UserTicketOrderItem;
 import com.qs.mp.user.domain.vo.TicketOrderSettleVO;
 import com.qs.mp.user.domain.vo.UserCoupon4OrderVO;
-import com.qs.mp.user.domain.vo.UserCouponVO;
 import com.qs.mp.user.domain.vo.UserShareVO;
 import com.qs.mp.user.mapper.UserTicketOrderMapper;
 import com.qs.mp.user.service.IUserCouponService;
@@ -54,7 +52,7 @@ import java.math.RoundingMode;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
-import org.apache.pulsar.client.api.PulsarClientException;
+import java.util.concurrent.TimeUnit;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -94,9 +92,6 @@ public class UserTicketOrderServiceImpl extends
   @Autowired
   private ITicketService ticketService;
 
-  @Autowired
-  private PulsarClientService pulsarClientService;
-
   @Autowired
   private IChannelService channelService;
 
@@ -109,9 +104,13 @@ public class UserTicketOrderServiceImpl extends
   @Autowired
   private BizIdGenerator bizIdGenerator;
 
+  @Autowired
+  private RedisCache redisCache;
+
   @Override
   @Transactional
-  public String submitOrder(Long userId, TicketOrderSettleVO orderSettleVO, UserShareVO userShareVO) {
+  public String submitOrder(Long userId, TicketOrderSettleVO orderSettleVO,
+      UserShareVO userShareVO) {
     if (StringUtils.isBlank(orderSettleVO.getTicketId())) {
       return createOnlineOrder(userId, orderSettleVO, userShareVO);
     }
@@ -120,7 +119,8 @@ public class UserTicketOrderServiceImpl extends
     return createOfflineOrder(userId, orderSettleVO);
   }
 
-  private String createOnlineOrder(Long userId, TicketOrderSettleVO orderSettleVO, UserShareVO userShareVO) {
+  private String createOnlineOrder(Long userId, TicketOrderSettleVO orderSettleVO,
+      UserShareVO userShareVO) {
     // 线上票更新票组销量,防止超卖
     TicketBox ticketBox = ticketBoxService.getById(orderSettleVO.getBoxId());
     if (ticketBox.getStatus() == TicketBoxStatusEnum.PUT_OFF
@@ -213,6 +213,13 @@ public class UserTicketOrderServiceImpl extends
     Ticket ticket = ticketService.getById(orderSettleVO.getTicketId());
     Assert.isTrue(ticket.getStatus() == TicketStatusEnum.NOT_PAY,
         "盲票已付款,ticketId:" + ticket.getTicketId());
+    if (null != redisCache.getCacheObject(
+        RedisKey.build(RedisKey.OFFLINE_TICKET_ID_KEY, ticket.getTicketId()))) {
+      LogUtil.error(logger, "线下盲票重复购买,ticketNo:{0}", ticket.getSerialNo());
+      throw new ServiceException("重复购买,请稍后再试");
+    }
+    redisCache.setCacheObject(RedisKey.build(RedisKey.OFFLINE_TICKET_ID_KEY, ticket.getTicketId()),
+        userId, 5, TimeUnit.MINUTES);
 
     // 核销优惠券
     String couponIds = verifyUserCoupon(orderSettleVO.getCouponList());
@@ -282,7 +289,8 @@ public class UserTicketOrderServiceImpl extends
     int sumTicket = 0;
     for (String orderId : orderIds) {
       UserTicketOrder userTicketOrder = getById(orderId);
-      Assert.isTrue(userTicketOrder.getResource() == TicketTypeEnum.ONLINE, "非在线盲票不用取消。boxId:" + boxId);
+      Assert.isTrue(userTicketOrder.getResource() == TicketTypeEnum.ONLINE,
+          "非在线盲票不用取消。boxId:" + boxId);
       if (!rollbackOrder(userTicketOrder)) {
         return false;
       }
@@ -294,13 +302,15 @@ public class UserTicketOrderServiceImpl extends
 
   private void rollbackBoxQty(String boxId, int qty) {
     TicketBox ticketBox = ticketBoxService.getById(boxId);
-    boolean updateBox = ticketBoxService.update(new LambdaUpdateWrapper<TicketBox>().set(TicketBox::getSaleQty,
-            ticketBox.getSaleQty() - qty)
-        .set(
-            ticketBox.getStatus() == TicketBoxStatusEnum.PUT_OFF && ticketBox.getManualOff() != 1,
-            TicketBox::getStatus, TicketBoxStatusEnum.PUT_ON)
-        .eq(TicketBox::getBoxId, ticketBox.getBoxId())
-        .eq(TicketBox::getSaleQty, ticketBox.getSaleQty()));
+    boolean updateBox = ticketBoxService.update(
+        new LambdaUpdateWrapper<TicketBox>().set(TicketBox::getSaleQty,
+                ticketBox.getSaleQty() - qty)
+            .set(
+                ticketBox.getStatus() == TicketBoxStatusEnum.PUT_OFF
+                    && ticketBox.getManualOff() != 1,
+                TicketBox::getStatus, TicketBoxStatusEnum.PUT_ON)
+            .eq(TicketBox::getBoxId, ticketBox.getBoxId())
+            .eq(TicketBox::getSaleQty, ticketBox.getSaleQty()));
     Assert.isTrue(updateBox, "取消过期未支付盲票购买订单,恢复票组销量失败。boxId:{0}" + boxId);
   }
 
@@ -334,8 +344,9 @@ public class UserTicketOrderServiceImpl extends
           .set(UserCoupon::getStatus, UserCouponStatusEnum.UNUSED)
           .set(UserCoupon::getVerifyTime, null)
           .in(UserCoupon::getId, userCouponIds));
-      Assert.isTrue(rst, "盲票购买订单取消时,反核销优惠券失败。orderId:" + userTicketOrder.getOrderId() + "userCouponIds:"
-          + userTicketOrder.getCouponInfo());
+      Assert.isTrue(rst,
+          "盲票购买订单取消时,反核销优惠券失败。orderId:" + userTicketOrder.getOrderId() + "userCouponIds:"
+              + userTicketOrder.getCouponInfo());
     }
 
     boolean rst = update(new LambdaUpdateWrapper<UserTicketOrder>().set(UserTicketOrder::getStatus,
@@ -373,11 +384,6 @@ public class UserTicketOrderServiceImpl extends
         Assert.isTrue(rst, "支付回调用户购票订单处理,更新订单明细的盲票ID失败,itemId:" + orderItem.getItemId());
       } else {
         ticket = ticketService.getById(orderItem.getTicketId());
-        // 线下票更新销量,此处不做乐观锁控制,因为不用控制库存
-        TicketBox ticketBox = ticketBoxService.getById(ticket.getBoxId());
-        ticketBoxService.update(
-            new LambdaUpdateWrapper<TicketBox>().set(TicketBox::getSaleQty, ticketBox.getSaleQty() + 1)
-                .eq(TicketBox::getBoxId, ticketBox.getBoxId()));
       }
       // 开幸运数字,更新ticket状态为已激活
       boolean rtn = ticketService.update(
@@ -396,12 +402,6 @@ public class UserTicketOrderServiceImpl extends
             .eq(UserTicketOrder::getStatus, UserTicketOrderStatusEnum.NOT_PAY));
     Assert.isTrue(updateRst, "支付回调用户购票订单处理,更新订单状态失败,orderId:" + ticketOrder.getOrderId());
 
-    try {
-      pulsarClientService.producer(MqTopicType.ticket_pay, ticketOrder.getOrderId());
-    } catch (PulsarClientException e) {
-      LogUtil.error(logger, e, "盲票支付成功,发送异步消息失败. {0}", JSONObject.toJSONString(ticketOrder));
-    }
-
     return true;
   }
 
@@ -433,7 +433,8 @@ public class UserTicketOrderServiceImpl extends
         channelCommission.setSaleCommAmt(siteCommission.getSaleCommAmt());
         channelCommission.setCommRate(channel.getCommRate());
         channelCommission.setCommAmt(new BigDecimal(channelCommission.getSaleCommAmt()).multiply(
-            channelCommission.getCommRate()).divide(new BigDecimal(100), 0, RoundingMode.DOWN).intValue() - sumCommAmt);
+                channelCommission.getCommRate()).divide(new BigDecimal(100), 0, RoundingMode.DOWN)
+            .intValue() - sumCommAmt);
         channelCommissionService.save(channelCommission);
         sumCommAmt += channelCommission.getCommAmt();
       }
@@ -479,7 +480,8 @@ public class UserTicketOrderServiceImpl extends
     siteCommission.setSaleAmt(ticketOrder.getPayAmt());
     siteCommission.setSaleCommRate(ticketBox.getSaleCommRate());
     siteCommission.setSaleCommAmt(new BigDecimal(siteCommission.getSaleAmt()).multiply(
-        siteCommission.getSaleCommRate()).divide(new BigDecimal(100), 0, RoundingMode.DOWN).intValue());
+            siteCommission.getSaleCommRate()).divide(new BigDecimal(100), 0, RoundingMode.DOWN)
+        .intValue());
     siteCommission.setCommRate(channel.getCommRate());
     siteCommission.setCommAmt(new BigDecimal(siteCommission.getSaleCommAmt()).multiply(
         siteCommission.getCommRate()).divide(new BigDecimal(100), 0, RoundingMode.DOWN).intValue());
@@ -487,50 +489,50 @@ public class UserTicketOrderServiceImpl extends
     return siteCommission;
   }
 
-	@Override
-	public List<IndexVO> selectIndexPayAmtList(Wrapper<UserTicketOrder> wrapper) {
-		return getBaseMapper().selectIndexPayAmtList(wrapper);
-	}
-
-	@Override
-	public List<IndexVO> selectIndexPayUserCntList(Wrapper<UserTicketOrder> wrapper) {
-		return getBaseMapper().selectIndexPayUserCntList(wrapper);
-	}
-
-	@Override
-	public List<IndexVO> selectIndexDailyInfoList(Wrapper<UserTicketOrder> wrapper) {
-		return getBaseMapper().selectIndexDailyInfoList(wrapper);
-	}
-
-	@Override
-	public List<IndexVO> selectIndexTicketBoxTop(Wrapper<UserTicketOrder> wrapper) {
-		return getBaseMapper().selectIndexTicketBoxTop(wrapper);
-	}
-
-	@Override
-	public List<IndexVO> selectIndexTicketSiteTop(Wrapper<UserTicketOrder> wrapper) {
-		return getBaseMapper().selectIndexTicketSiteTop(wrapper);
-	}
-
-	@Override
-	public int getChannelTotalTicketNumCnt(String channelNo) {
-		return getBaseMapper().getChannelTotalTicketNumCnt(channelNo);
-	}
-
-	@Override
-	public int getSaleSiteTotalTicketNumCnt(Long channelId) {
-		return getBaseMapper().getSaleSiteTotalTicketNumCnt(channelId);
-	}
-
-	@Override
-	public TicketCntVO getTicketSaleCnt(Long channelId) {
-		return getBaseMapper().getTicketSaleCnt(channelId);
-	}
-
-	@Override
-	public List<TicketCntVO> listTicketSaleCnt(Wrapper<UserTicketOrder> queryWrapper) {
-		return getBaseMapper().listTicketSaleCnt(queryWrapper);
-	}
+  @Override
+  public List<IndexVO> selectIndexPayAmtList(Wrapper<UserTicketOrder> wrapper) {
+    return getBaseMapper().selectIndexPayAmtList(wrapper);
+  }
+
+  @Override
+  public List<IndexVO> selectIndexPayUserCntList(Wrapper<UserTicketOrder> wrapper) {
+    return getBaseMapper().selectIndexPayUserCntList(wrapper);
+  }
+
+  @Override
+  public List<IndexVO> selectIndexDailyInfoList(Wrapper<UserTicketOrder> wrapper) {
+    return getBaseMapper().selectIndexDailyInfoList(wrapper);
+  }
+
+  @Override
+  public List<IndexVO> selectIndexTicketBoxTop(Wrapper<UserTicketOrder> wrapper) {
+    return getBaseMapper().selectIndexTicketBoxTop(wrapper);
+  }
+
+  @Override
+  public List<IndexVO> selectIndexTicketSiteTop(Wrapper<UserTicketOrder> wrapper) {
+    return getBaseMapper().selectIndexTicketSiteTop(wrapper);
+  }
+
+  @Override
+  public int getChannelTotalTicketNumCnt(String channelNo) {
+    return getBaseMapper().getChannelTotalTicketNumCnt(channelNo);
+  }
+
+  @Override
+  public int getSaleSiteTotalTicketNumCnt(Long channelId) {
+    return getBaseMapper().getSaleSiteTotalTicketNumCnt(channelId);
+  }
+
+  @Override
+  public TicketCntVO getTicketSaleCnt(Long channelId) {
+    return getBaseMapper().getTicketSaleCnt(channelId);
+  }
+
+  @Override
+  public List<TicketCntVO> listTicketSaleCnt(Wrapper<UserTicketOrder> queryWrapper) {
+    return getBaseMapper().listTicketSaleCnt(queryWrapper);
+  }
 
 
 }