admin
2020-05-20 98b1a0affd69bbe63223c21fdd2c404e8bedfccb
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/order/CommonOrderMapper.java
@@ -1,303 +1,426 @@
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);
   /**
    * 根据来源和交易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);
   /**
    * 根据用户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);
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.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 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("listShopId")List<Long> listShopId, @Param("listGoodsId")List<Long> listGoodsId,
         @Param("minTime")Date minTime, @Param("money")BigDecimal money, @Param("payment") BigDecimal payment);
   /**
    * 订单列表查询(不包含子订单)
    *
    * @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, @Param("payment") BigDecimal payment);
   /**
    * 统计
    */
   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,
         @Param("listShopId")List<Long> listShopId, @Param("listGoodsId")List<Long> listGoodsId,
         @Param("minTime")Date minTime, @Param("money")BigDecimal money,@Param("payment") BigDecimal payment);
   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("payment") BigDecimal payment);
   /**
    * 根据来源类型与订单号查询列表
    *
    * @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);
   /**
    * 根据用户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();
}