xiangpei
6 天以前 0bcc66233bfe26a356c7ffa820f6a97a214a9b49
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package cn.lili.modules.distribution.mapper;
 
import cn.hutool.core.date.DateTime;
import cn.lili.modules.distribution.entity.dos.DistributionOrder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.Date;
import java.util.List;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
 
/**
 * 分销订单数据处理层
 *
 * @author pikachu
 * @since 2020-03-15 10:45:56
 */
public interface DistributionOrderMapper extends BaseMapper<DistributionOrder> {
 
    /**
     * 修改分销员提现金额
     *
     * @param distributionOrderStatus 分销订单状态
     * @param settleCycle             时间
     */
    @Update("UPDATE li_distribution AS d " +
            "SET d.can_rebate =(ifnull(d.can_rebate,0) +(SELECT SUM( dorder.rebate ) FROM li_distribution_order AS dorder WHERE dorder.distribution_order_status = #{distributionOrderStatus} AND dorder.settle_cycle< #{settleCycle} AND dorder.distribution_id = d.id ))" +
            ",d.commission_frozen =(ifnull(d.commission_frozen,0) -(SELECT SUM( dorder.rebate ) FROM li_distribution_order AS dorder WHERE dorder.distribution_order_status = #{distributionOrderStatus} AND dorder.settle_cycle< #{settleCycle} AND dorder.distribution_id = d.id ) )")
    void rebate(String distributionOrderStatus, DateTime settleCycle);
 
    /**
     * 查询待结算的分销订单
     * @return 待结算的分销订单
     */
    @Select("UPDATE li_distribution_order distribution_order"
        + " INNER JOIN li_order_item oi ON oi.sn = distribution_order.order_item_sn"
        + " SET distribution_order.distribution_order_status = 'WAIT_BILL',"
        + "    distribution_order.settle_cycle = #{settleCycle} "
        + " WHERE distribution_order.distribution_order_status = 'NO_COMPLETED'"
        + "  AND oi.after_sale_status = 'EXPIRED';")
    List<DistributionOrder> distributionSettlementOrder(Date settleCycle);
}