package com.mzl.flower.mapper.payment; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mzl.flower.dto.request.payment.OrderQueryDTO; import com.mzl.flower.dto.response.payment.*; import com.mzl.flower.entity.payment.Order; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository; import java.time.LocalDateTime; import java.util.List; @Repository public interface OrderMapper extends BaseMapper { void setPartnerOrderReceive(); List getPartnerOrderReceive(); List getOrderStatusCount(@Param("condition") OrderQueryDTO dto); List selectOrderList(Page page, @Param("condition") OrderQueryDTO dto); List selectOrderCheckList(@Param("condition") OrderQueryDTO dto); List getSupplierSaleNum(@Param("startTime")LocalDateTime startTime , @Param("endTime")LocalDateTime endTime); List getOrderForSettlement(); List getOrderForAutoReceive(@Param("endTime")LocalDateTime endTime); List getOrderForBill(@Param("startTime")LocalDateTime startTime , @Param("endTime")LocalDateTime endTime); Order getUserLastOrder(@Param("userId") String userId); List getPointGoodsList(@Param("orderId") String orderId); @Select("SELECT t1.* " + "FROM t_order t1 " + "JOIN ( " + " SELECT create_by, MAX(receive_time) AS max_time " + " FROM t_order " + " where receive_time is not null " + " GROUP BY create_by " + " HAVING max_time < NOW() - INTERVAL 30 DAY " + ") t2 ON t1.create_by = t2.create_by AND t1.receive_time = t2.max_time " + "LEFT JOIN t_customer_info c ON t1.create_by = c.user_id ") List getOrderInfoByReceiveTime(); int getFlowerCompleteNumWithinTimeRange(@Param("userId") String userId ,@Param("flowerId") Long flowerId, @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime); List selectOrderExportList(@Param("condition") OrderQueryDTO dto); @Select("SELECT si.contact_tel " + "FROM t_supplier_info si " + "WHERE si.id IN ( " + " SELECT oi.supplier_id " + " FROM t_order_item oi " + " JOIN t_order q ON oi.order_id = q.id " + " WHERE q.deleted = 0 " + " AND q.status_backend = #{Status} " + " AND q.payment_time >= #{startTime} " + " AND q.payment_time <= #{endTime} " + " GROUP BY oi.supplier_id " + ")") List getWaitSendMessageInfoBySupplier(String Status, LocalDateTime startTime, LocalDateTime endTime); }