liyaozhi
2025-10-28 1320688354fd168c51cf2e05f29a2253f4ed9c00
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
81
82
83
84
85
86
<?php
 
namespace app\job\model\branch;
 
use app\common\model\branch\Branch as BranchModel;
use app\common\model\branch\Activity as ActivityModel;
use app\common\model\branch\ActivityUser as ActivityUserModel;
use app\common\model\branch\Setting as SettingModel;
use app\common\model\supplier\Supplier as SupplierModel;
use app\common\library\helper;
 
/**
 * 分会模型
 */
class Branch extends BranchModel
{
    /**
     * 获取需要结算的活动列表
     */
    public function getActivitySettledList($app_id)
    {
        $model = new ActivityModel();
        return $model->where('status', '=', 1)
            ->where('is_finish', '=', 0)
            ->where('activity_end_time', '<=', time())
            ->where('is_delete', '=', 0)
            ->where('app_id', '=', $app_id)
            ->select();
    }
 
    /**
     * 获取需要删除的报名(需要报名费但未支付)
     */
    public function getActivityUserIds($app_id)
    {
        return (new ActivityUserModel())->where('pay_price', '>', 0)
            ->where('status', '=', 0)
            ->where('pay_status', '=', 10)
            ->where('create_time', '<', time() - 3600)
            ->where('app_id', '=', $app_id)
            ->column('order_id');
    }
 
    /**
     * 活动结算
     */
    public function settledActivity($activityList)
    {
        // 更新活动状态(已完成)
        $this->settled($activityList);
        $setting = SettingModel::getItem('basic');
        foreach ($activityList as $item) {
            if ($setting['visit_company'] > 0 && $item['is_visit'] == 1 && $item['visit_supplier_id']) {
                $supplier = SupplierModel::detail($item['visit_supplier_id']);
                $describe = "作为被走访企业获得奖励[活动ID:{$item['activity_id']}]";
                $supplier->setIncPoints($setting['visit_company'], $describe);
            }
            if ($setting['space_company'] && $item['is_visit'] == 0 && $item['space_supplier_id']) {
                $supplier = SupplierModel::detail($item['space_supplier_id']);
                $describe = "提供活动场地获得奖励[活动ID:{$item['activity_id']}]";
                $supplier->setIncPoints($setting['space_company'], $describe);
            }
            if ($setting['organize_branch'] > 0) {
                $branch = BranchModel::detail($item['branch_id']);
                $describe = "组织活动获得奖励[活动ID:{$item['activity_id']}]";
                $branch->setIncPoints($setting['organize_branch'], $describe);
            }
        }
    }
 
    public function settled($activityList) {
        // 活动id集
        $activityIds = helper::getArrayColumn($activityList, 'activity_id');
        ActivityModel::onBatchUpdate($activityIds, ['is_finish' => 1]);
    }
 
    /**
     * 未支付的报名自动删除
     */
    public function deleteActivityUser($orderIds = [])
    {
        // 执行删除
        $orderIds && ActivityUserModel::where('order_id', 'in', $orderIds)->delete();
    }
 
}