admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/order/CommonOrderMapper.java
@@ -1,282 +1,474 @@
package com.yeshi.fanli.dao.mybatis.order;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;
import com.yeshi.fanli.dao.BaseMapper;
import com.yeshi.fanli.entity.order.CommonOrder;
import com.yeshi.fanli.vo.order.CommonOrderVO;
public interface CommonOrderMapper extends BaseMapper<CommonOrder> {
   /**
    * 查询用户订单 并订单号分组
    *
    * @param start
    * @param count
    * @param uid
    * @return
    */
   List<CommonOrderVO> listUserOrder(@Param("start") long start, @Param("count") int count, @Param("uid") Long uid,
         @Param("state") Integer state, @Param("type") Integer type, @Param("orderState") Integer orderState,
         @Param("orderNo") String orderNo, @Param("startTime") String startTime, @Param("endTime") String endTime,
         @Param("day") Integer day, @Param("source") Integer source);
   /**
    * 统计用户订单 并订单号分组
    *
    * @param start
    * @param count
    * @param uid
    * @return
    */
   long countUserOrder(@Param("uid") Long uid, @Param("state") Integer state, @Param("type") Integer type,
         @Param("orderState") Integer orderState, @Param("orderNo") String orderNo,
         @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("day") Integer day,
         @Param("source") Integer source);
   /**
    * 判断部分失效状态
    *
    * @param uid
    * @param orderNo
    * @return
    */
   CommonOrderVO getBuFenOrderState(@Param("uid") Long uid, @Param("orderNo") String orderNo);
   /**
    * 根据用户ID,订单状态和订单结算时间统计订单的数量
    *
    * @param uid
    * @param state
    * @param minDate
    * @param maxDate
    * @return
    */
   long countByUidAndOrderStateWithOrderBalanceTime(@Param("uid") Long uid, @Param("state") int state,
         @Param("minDate") Date minDate, @Param("maxDate") Date maxDate);
   /**
    * 根据订单号、订单类型查询商品
    *
    * @param list
    *            订单对象
    * @return
    */
   List<CommonOrderVO> listOrderGoodsInfo(List<CommonOrderVO> list);
   /**
    * 统计历史订单数量
    *
    * @param uid
    * @return
    */
   Map<String, BigDecimal> countHistoryOrder(@Param("uid") Long uid, @Param("day") Integer day,
         @Param("source") Integer source);
   /**
    * 昨日总订单-根据红包类型 自购 邀请 分享
    *
    * @param uid
    * @return
    */
   Map<String, BigDecimal> countByUidAndOrderState(@Param("uid") Long uid, @Param("type") Integer type,
         @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("day") Integer day,
         @Param("source") Integer source);
   /**
    * 奖金订单数量
    *
    * @param uid
    * @return
    */
   long countBonusOrderNumber(@Param("uid") Long uid, @Param("type") Integer type, @Param("day") Integer day,
         @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("source") Integer source);
   /**
    * 奖金统计
    *
    * @param uid
    * @return
    */
   BigDecimal countBonusOrderMoney(@Param("uid") Long uid, @Param("type") Integer type, @Param("day") Integer day,
         @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("source") Integer source);
   /**
    * 奖金统计
    *
    * @param uid
    * @return
    */
   Map<String, Object> countBonusOrderMoneyAndNumber(@Param("uid") Long uid, @Param("type") Integer type,
         @Param("day") Integer day, @Param("startTime") String startTime, @Param("endTime") String endTime,
         @Param("source") Integer source);
   int countByOrderNOAndOrderType(@Param("orderNO") String orderNO, @Param("orderType") int orderType);
   /**
    * 根据订单号与订单排序值获取详情
    *
    * @param orderNo
    *            -订单号
    * @param orderBy
    *            -订单排序值
    * @param orderType
    *            -订单类型
    * @return
    */
   CommonOrder selectByOrderNoAndOrderTypeAndOrderBy(@Param("orderNo") String orderNo,
         @Param("orderType") int orderType, @Param("orderBy") int orderBy);
   /**
    * 订单列表查询
    *
    * @param start
    * @param count
    * @param uid
    * @param state
    * @param type
    * @param orderState
    * @param startTime
    * @param endTime
    * @return
    */
   List<CommonOrderVO> listQueryByUid(@Param("start") long start, @Param("count") int count, @Param("uid") Long uid,
         @Param("state") Integer state, @Param("type") Integer type, @Param("orderState") Integer orderState,
         @Param("orderNo") String orderNo, @Param("startTime") String startTime, @Param("endTime") String endTime,
         @Param("day") Integer day);
   /**
    * 统计
    */
   long countQueryByUid(@Param("uid") Long uid, @Param("state") Integer state, @Param("type") Integer type,
         @Param("orderState") Integer orderState, @Param("orderNo") String orderNo,
         @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("day") Integer day);
   /**
    * 订单列表查询
    *
    * @param start
    * @param count
    * @param uid
    * @param state
    * @param type
    * @param orderState
    * @param startTime
    * @param endTime
    * @return
    */
   List<CommonOrderVO> listQuery(@Param("start") long start, @Param("count") int count,
         @Param("keyType") Integer keyType, @Param("key") String key, @Param("state") Integer state,
         @Param("type") Integer type, @Param("orderState") Integer orderState, @Param("startTime") String startTime,
         @Param("endTime") String endTime, @Param("source") Integer source);
   /**
    * 订单列表查询(不包含子订单)
    *
    * @param start
    * @param count
    * @param keyType
    * @param key
    * @param state
    * @param type
    * @param orderState
    * @param startTime
    * @param endTime
    * @param source
    * @return
    */
   List<CommonOrderVO> listQueryWithNoChild(@Param("start") long start, @Param("count") int count,
         @Param("keyType") Integer keyType, @Param("key") String key, @Param("state") Integer state,
         @Param("type") Integer type, @Param("orderState") Integer orderState, @Param("startTime") String startTime,
         @Param("endTime") String endTime, @Param("source") Integer source);
   /**
    * 统计
    */
   long countQuery(@Param("keyType") Integer keyType, @Param("key") String key, @Param("state") Integer state,
         @Param("type") Integer type, @Param("orderState") Integer orderState, @Param("startTime") String startTime,
         @Param("endTime") String endTime, @Param("source") Integer source);
   long countQueryWithNoChild(@Param("keyType") Integer keyType, @Param("key") String key,
         @Param("state") Integer state, @Param("type") Integer type, @Param("orderState") Integer orderState,
         @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("source") Integer source);
   /**
    * 根据来源类型与订单号查询列表
    *
    * @param sourceType
    * @param orderNo
    * @return
    */
   List<CommonOrder> listBySourceTypeAndOrderNo(@Param("sourceType") int sourceType, @Param("orderNo") String orderNo);
   /**
    * 查询券奖励金额以及订单信息
    *
    * @param uid
    * @param state
    * @param orderNo
    * @return
    */
   List<CommonOrderVO> getCouponHongbaoByOrderNo(@Param("uid") Long uid, @Param("hongBaoState") Integer hongBaoState,
         @Param("orderNo") String orderNo);
   /**
    * 查询券奖励金额以及订单信息
    *
    * @param uid
    * @param state
    * @param orderNo
    * @return
    */
   CommonOrderVO getCommonOrderByOrderNo(@Param("uid") Long uid, @Param("orderNo") String orderNo,
         @Param("orderState") Integer orderState, @Param("sourceType") Integer sourceType);
   /**
    * 根据来源和交易ID获取订单详情
    *
    * @param sourceType
    * @param tradeId
    * @return
    */
   CommonOrder selectBySourceTypeAndTradeId(@Param("sourceType") int sourceType, @Param("tradeId") String tradeId);
   /**
    * 根据来源和交易ID获取订单列表
    *
    * @param sourceType
    * @param tradeId
    * @return
    */
   List<CommonOrder> listBySourceTypeAndTradeId(@Param("sourceType") int sourceType, @Param("tradeId") String tradeId);
   /**
    *
    * @param sourceType
    * @param state
    * @param minTime
    *            -最大创建时间
    * @param maxTime
    *            -最小创建时间
    * @return
    */
   List<CommonOrder> listBySourceTypeAndStateAndThirdCrateTime(@Param("sourceType") int sourceType,
         @Param("state") Integer state, @Param("minTime") Long minTime, @Param("maxTime") Long maxTime,
         @Param("start") long start, @Param("count") int count);
   /**
    * 根据订单号查询
    * @param orderNO
    * @return
    */
   List<CommonOrder> getByOrderNo(@Param("uid") Long uid, @Param("orderNo") String orderNo);
package com.yeshi.fanli.dao.mybatis.order;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.ks.lijin.query.BaseDaoQuery;
import com.yeshi.fanli.entity.SystemEnum;
import org.apache.ibatis.annotations.Param;
import com.yeshi.fanli.dao.BaseMapper;
import com.yeshi.fanli.entity.order.CommonOrder;
import com.yeshi.fanli.entity.order.ESOrder;
import com.yeshi.fanli.vo.order.CommonOrderVO;
import com.yeshi.fanli.vo.order.OrderCountVO;
public interface CommonOrderMapper extends BaseMapper<CommonOrder> {
    /**
     * 查询用户订单 并订单号分组
     *
     * @param start
     * @param count
     * @param uid
     * @return
     */
    List<CommonOrderVO> listUserOrder(@Param("start") long start, @Param("count") int count, @Param("uid") Long uid,
                                      @Param("state") Integer state, @Param("type") Integer type, @Param("orderState") Integer orderState,
                                      @Param("orderNo") String orderNo, @Param("startTime") String startTime, @Param("endTime") String endTime,
                                      @Param("day") Integer day, @Param("listSource") List<Integer> listSource);
    /**
     * 统计用户订单 并订单号分组
     *
     * @param start
     * @param count
     * @param uid
     * @return
     */
    long countUserOrder(@Param("uid") Long uid, @Param("state") Integer state, @Param("type") Integer type,
                        @Param("orderState") Integer orderState, @Param("orderNo") String orderNo,
                        @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("day") Integer day,
                        @Param("listSource") List<Integer> listSource);
    /**
     * 判断部分失效状态
     *
     * @param uid
     * @param orderNo
     * @return
     */
    CommonOrderVO getBuFenOrderState(@Param("uid") Long uid, @Param("orderNo") String orderNo);
    /**
     * 根据用户ID,订单状态和订单结算时间统计订单的数量
     *
     * @param uid
     * @param state
     * @param minDate
     * @param maxDate
     * @return
     */
    long countByUidAndOrderStateWithOrderBalanceTime(@Param("uid") Long uid, @Param("state") int state,
                                                     @Param("minDate") Date minDate, @Param("maxDate") Date maxDate);
    /**
     * 根据订单号、订单类型查询商品
     *
     * @param list 订单对象
     * @return
     */
    List<CommonOrderVO> listOrderGoodsInfo(List<CommonOrderVO> list);
    /**
     * 统计历史订单数量
     *
     * @param uid
     * @return
     */
    Map<String, BigDecimal> countHistoryOrder(@Param("uid") Long uid, @Param("day") Integer day,
                                              @Param("source") Integer source);
    /**
     * 统计有效订单数量
     *
     * @param uid
     * @return
     */
    OrderCountVO getOrderCount(@Param("uid") Long uid, @Param("day") Integer day, @Param("listSource") List<Integer> listSource);
    /**
     * 昨日总订单-根据红包类型 自购 邀请 分享
     *
     * @param uid
     * @return
     */
    long countUserOrderToApp(@Param("uid") Long uid, @Param("type") Integer type,
                             @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("day") Integer day,
                             @Param("source") Integer source, @Param("state") Integer state, @Param("stateOrder") Integer stateOrder);
    /**
     * 奖金订单数量
     *
     * @param uid
     * @return
     */
    long countBonusOrderNumber(@Param("uid") Long uid, @Param("type") Integer type, @Param("day") Integer day,
                               @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("source") Integer source);
    /**
     * 奖金统计
     *
     * @param uid
     * @return
     */
    BigDecimal countBonusOrderMoney(@Param("uid") Long uid, @Param("type") Integer type, @Param("day") Integer day,
                                    @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("source") Integer source);
    /**
     * 奖金统计
     *
     * @param uid
     * @return
     */
    Map<String, Object> countBonusOrderMoneyAndNumber(@Param("uid") Long uid, @Param("type") Integer type,
                                                      @Param("day") Integer day, @Param("startTime") String startTime, @Param("endTime") String endTime,
                                                      @Param("source") Integer source);
    int countByOrderNOAndOrderType(@Param("orderNO") String orderNO, @Param("orderType") int orderType);
    /**
     * 根据订单号与订单排序值获取详情
     *
     * @param orderNo   -订单号
     * @param orderBy   -订单排序值
     * @param orderType -订单类型
     * @return
     */
    CommonOrder selectByOrderNoAndOrderTypeAndOrderBy(@Param("orderNo") String orderNo,
                                                      @Param("orderType") int orderType, @Param("orderBy") int orderBy);
    /**
     * 订单列表查询
     *
     * @param start
     * @param count
     * @param uid
     * @param state
     * @param type
     * @param orderState
     * @param startTime
     * @param endTime
     * @return
     */
    List<CommonOrderVO> listQueryByUid(@Param("start") long start, @Param("count") int count, @Param("uid") Long uid,
                                       @Param("state") Integer state, @Param("type") Integer type, @Param("orderState") Integer orderState,
                                       @Param("orderNo") String orderNo, @Param("startTime") String startTime, @Param("endTime") String endTime,
                                       @Param("day") Integer day);
    /**
     * 统计
     */
    long countQueryByUid(@Param("uid") Long uid, @Param("state") Integer state, @Param("type") Integer type,
                         @Param("orderState") Integer orderState, @Param("orderNo") String orderNo,
                         @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("day") Integer day);
    /**
     * 订单列表查询
     *
     * @param start
     * @param count
     * @param uid
     * @param state
     * @param typeList
     * @param orderState
     * @param startTime
     * @param endTime
     * @return
     */
    List<CommonOrderVO> listQuery(@Param("start") long start, @Param("count") int count,
                                  @Param("keyType") Integer keyType, @Param("key") String key, @Param("state") Integer state,
                                  @Param("typeList") List<Integer> typeList, @Param("orderState") Integer orderState, @Param("startTime") String startTime,
                                  @Param("endTime") String endTime, @Param("source") Integer source,
                                  @Param("listShopId") List<Long> listShopId, @Param("listGoodsId") List<Long> listGoodsId,
                                  @Param("minTime") Date minTime, @Param("money") BigDecimal money, @Param("payment") BigDecimal payment, @Param("system") SystemEnum system);
    /**
     * 订单列表查询(不包含子订单)
     *
     * @param start
     * @param count
     * @param keyType
     * @param key
     * @param state
     * @param type
     * @param orderState
     * @param startTime
     * @param endTime
     * @param source
     * @return
     */
    List<CommonOrderVO> listQueryWithNoChild(@Param("start") long start, @Param("count") int count,
                                             @Param("keyType") Integer keyType, @Param("key") String key, @Param("state") Integer state,
                                             @Param("typeList") List<Integer> typeList, @Param("orderState") Integer orderState, @Param("startTime") String startTime,
                                             @Param("endTime") String endTime, @Param("source") Integer source, @Param("payment") BigDecimal payment, @Param("system") SystemEnum system);
    /**
     * 统计
     */
    long countQuery(@Param("keyType") Integer keyType, @Param("key") String key, @Param("state") Integer state,
                    @Param("typeList") List<Integer> typeList, @Param("orderState") Integer orderState, @Param("startTime") String startTime,
                    @Param("endTime") String endTime, @Param("source") Integer source,
                    @Param("listShopId") List<Long> listShopId, @Param("listGoodsId") List<Long> listGoodsId,
                    @Param("minTime") Date minTime, @Param("money") BigDecimal money, @Param("payment") BigDecimal payment, @Param("system") SystemEnum system);
    long countQueryWithNoChild(@Param("keyType") Integer keyType, @Param("key") String key,
                               @Param("state") Integer state, @Param("typeList") List<Integer> typeList, @Param("orderState") Integer orderState,
                               @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("source") Integer source, @Param("payment") BigDecimal payment, @Param("system") SystemEnum system);
    /**
     * 根据来源类型与订单号查询列表
     *
     * @param sourceType
     * @param orderNo
     * @return
     */
    List<CommonOrder> listBySourceTypeAndOrderNo(@Param("sourceType") int sourceType, @Param("orderNo") String orderNo);
    /**
     * 查询券奖励金额以及订单信息
     *
     * @param uid
     * @param state
     * @param orderNo
     * @return
     */
    List<CommonOrderVO> getCouponHongbaoByOrderNo(@Param("uid") Long uid, @Param("hongBaoState") Integer hongBaoState,
                                                  @Param("orderNo") String orderNo);
    /**
     * 查询券奖励金额以及订单信息
     *
     * @param uid
     * @param state
     * @param orderNo
     * @return
     */
    CommonOrderVO getCommonOrderByOrderNo(@Param("uid") Long uid, @Param("orderNo") String orderNo,
                                          @Param("orderState") Integer orderState, @Param("sourceType") Integer sourceType);
    /**
     * 根据来源和交易ID获取订单详情
     *
     * @param sourceType
     * @param tradeId
     * @return
     */
    CommonOrder selectBySourceTypeAndTradeId(@Param("sourceType") int sourceType, @Param("tradeId") String tradeId);
    /**
     * 根据来源和交易ID获取订单列表
     *
     * @param sourceType
     * @param tradeId
     * @return
     */
    List<CommonOrder> listBySourceTypeAndTradeId(@Param("sourceType") int sourceType, @Param("tradeId") String tradeId);
    /**
     * 根据来源和交易ID获取订单列表
     *
     * @param sourceType
     * @param tradeIdList
     * @return
     */
    List<CommonOrder> listBySourceTypeAndTradeIdList(@Param("sourceType") int sourceType,
                                                     @Param("tradeIdList") List<String> tradeIdList);
    /**
     * @param sourceType
     * @param state
     * @param minTime    -最大创建时间
     * @param maxTime    -最小创建时间
     * @return
     */
    List<CommonOrder> listBySourceTypeAndStateAndThirdCrateTime(@Param("sourceType") int sourceType,
                                                                @Param("state") Integer state, @Param("minTime") Long minTime, @Param("maxTime") Long maxTime,
                                                                @Param("start") long start, @Param("count") int count);
    /**
     * 根据订单号查询
     *
     * @param orderNO
     * @return
     */
    List<CommonOrder> getByOrderNo(@Param("uid") Long uid, @Param("orderNo") String orderNo);
    /**
     * 根据订单号查询
     *
     * @param orderNO
     * @return
     */
    List<CommonOrder> getByOrderNoAndSourceType(@Param("uid") Long uid, @Param("orderNo") String orderNo,
                                                @Param("sourceType") int sourceType);
    /**
     * 根据用户ID查询
     *
     * @param uid
     * @param stateList
     * @param start
     * @param count
     * @return
     */
    List<CommonOrder> listByUid(@Param("uid") Long uid, @Param("stateList") List<Integer> stateList, @Param("start") long start, @Param("count") int count);
    /**
     * 查询首笔有效到账订单
     *
     * @param uid
     * @param typeHB   类型: 1自购  2分享 3邀请
     * @param typeDate 日期类型: 3本月 4上月
     * @return
     */
    CommonOrderVO firstValidOrderByUid(@Param("uid") Long uid, @Param("typeHB") Integer typeHB,
                                       @Param("typeDate") Integer typeDate);
    /**
     * 获取首笔分享订单;
     *
     * @param uid
     * @return
     */
    CommonOrder getFirstShareOrderByUid(@Param("uid") Long uid);
    /**
     * 统计订单号到账金额
     *
     * @param uid
     * @return
     */
    BigDecimal getTotalRewardMoneyByOrderNoAndSourceType(@Param("orderNo") String orderNo, @Param("sourceType") Integer sourceType);
    /**
     * 统计24小时有效自购订单
     *
     * @param uid
     * @return
     */
    long count24HValidOrderByUid(@Param("uid") Long uid, @Param("minTime") Date minTime);
    /**
     * 搜索订单
     *
     * @param start
     * @param count
     * @param uid
     * @param list
     * @return
     */
    List<CommonOrderVO> searchOrderByUid(@Param("start") long start, @Param("count") int count, @Param("uid") Long uid,
                                         @Param("list") List<ESOrder> list);
    /**
     * 搜索订单
     *
     * @param start
     * @param count
     * @param uid
     * @param list
     * @return
     */
    long countSearchOrderByUid(@Param("uid") Long uid, @Param("list") List<ESOrder> list);
    /**
     * 查询最小结算时间
     *
     * @return
     */
    List<CommonOrder> getMinSettleTimeAndUid();
    /**
     * 查询用户订单 并订单号分组
     *
     * @param start
     * @param count
     * @param uid
     * @return
     */
    List<CommonOrderVO> getOrderList(@Param("start") long start, @Param("count") int count, @Param("uid") Long uid,
                                     @Param("state") Integer state, @Param("type") Integer type, @Param("orderState") Integer orderState,
                                     @Param("orderNo") String orderNo, @Param("startTime") String startTime, @Param("endTime") String endTime,
                                     @Param("day") Integer day, @Param("listSource") List<Integer> listSource);
    /**
     * 统计用户订单 并订单号分组
     *
     * @param start
     * @param count
     * @param uid
     * @return
     */
    long countOrderList(@Param("uid") Long uid, @Param("state") Integer state, @Param("type") Integer type,
                        @Param("orderState") Integer orderState, @Param("orderNo") String orderNo,
                        @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("day") Integer day,
                        @Param("listSource") List<Integer> listSource);
    /**
     * 统计已结算且付款金额大于1的订单(不区分订单状态)
     *
     * @param uid
     * @param payment
     * @return
     */
    Long countOrderByUidAndSettled(@Param("uid") Long uid, @Param("payment") BigDecimal payment);
    /**
     * 获取最新的淘宝订单号
     *
     * @return
     */
    String getNewestOrderNoByTaoBao();
    /**
     * 根据订单号进行sous
     *
     * @param orderNo
     * @return
     */
    List<CommonOrder> listByOrderNo(@Param("orderNo") String orderNo);
    /**
     * 获取首个订单
     *
     * @param orderNo
     * @return
     */
    CommonOrder getFirstOrder(@Param("uid") Long uid);
    List<CommonOrder> listByGoodsIdAndUidAndMinThirdCreateTime(@Param("goodsId") Long goodsId, @Param("uid") Long uid, @Param("minThirdCreateTime") Date minThirdCreateTime, @Param("start") long start, @Param("count") int count);
    List<CommonOrder> test();
    List<CommonOrder> list(@Param("query") DaoQuery query,@Param("start")long start,@Param("count")int count);
    public static class DaoQuery {
        public Integer state;
        public String orderId;
        public Integer sourceType;
        public Date minThirdCreateTime;
        public Date maxThirdCreateTime;
        public List<String> sortList;
    }
}