quanwei
18 hours ago c441dea81bd86bdfb12dff35821fed51f4cc91c2
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
 
namespace app\api\model\plus\bonus;
 
use app\common\model\plus\bonus\User as UserModel;
use app\common\model\plus\bonus\Order as OrderModel;
use app\common\service\order\OrderService;
use app\common\enum\order\OrderTypeEnum;
use app\common\library\helper;
 
/**
 * 分销商订单模型
 */
class Order extends OrderModel
{
    /**
     * 隐藏字段
     */
    protected $hidden = [
        'update_time',
    ];
 
    /**
     * 获取分销商订单列表
     */
    public function getList($user_id, $is_settled = -1)
    {
        $model = $this;
        $is_settled > -1 && $model = $model->where('is_settled', '=', !!$is_settled);
        $data = $model->with(['user'])
            ->where('first_user_id|second_user_id|subsidy_user_id', '=', $user_id)
            ->order(['create_time' => 'desc'])
            ->paginate(15);
        if ($data->isEmpty()) {
            return $data;
        }
        // 整理订单信息
        $with = ['product' => ['image', 'refund'], 'address', 'user'];
        return OrderService::getOrderList($data, 'order_master', $with);
    }
 
    /**
     * 分红订单
     */
    public static function createBonusOrder($order)
    {
        // 验证是否设置
        $config = Setting::getItem('basic', $order['app_id']);
        if (empty($config['become__buy_product_ids'])) {
            return false;
        }
        /*// 整理商品id集
        $productIds = helper::getArrayColumn($order['product'], 'product_id');
        // 判断商品是否在设置范围内
        $intersect = array_intersect($productIds, $config['become__buy_product_ids']);
        if (empty($intersect)) {
            return false;
        }*/
        // 每买一个指定商品就生成一个分红订单
        foreach ($order['product'] as $product) {
            // 检查商品是否是指定的分红商品
            if (in_array($product['product_id'], $config['become__buy_product_ids'])||$product['is_vip']==1) {
                // 获取商品数量
                $quantity = $product['total_num'];
                if ($product['is_gift_pack']){
                    $quantity = $product['total_num']*$product['vip_order_num'];
                }
                // 为每个商品生成分红订单
                for ($i = 0; $i < $quantity; $i++) {
                    // 创建单个商品的订单数据
                    $singleProductOrder = $order;
                    $singleProductOrder['product_id'] = $product['product_id'];
                    // 创建分红订单
                    OrderModel::createOrder($singleProductOrder);
                }
            }
        }
    }
 
}