request; if ($retuest->isAjax) { if ($retuest->isPost) { // 检查提交的参数 $params = $retuest->post(); $res = Yii::$app->services->validate->validate($params,[ [['page','limit'], 'integer'], [['datetime'], 'each', 'rule' => ['string']] ]); if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $compute_period = LevelEnum::getComputePeriod();// 分红周期 $where = []; $where[] = ['=', 'mall_id', $this->mall_id]; $where[] = ['=', 'status', StatusEnum::ENABLED]; // 时间筛选 if (!empty($params['datetime'])) { $start_time = strtotime($params['datetime'][0]); $end_time = strtotime($params['datetime'][1]); $where[] = ['between', 'created_at', $start_time, $end_time]; } $order = 'period_num desc'; $params = array('where' => $where, 'order' => $order, 'limit' => $params['limit']); $list = ServeBonusPeriod::listPage($params, false, true); if (empty($list)) $this->success('获取成功', compact('list', 'compute_period')); foreach ($list['list'] as &$item) { $item['start_time'] = date("Y-m-d", strtotime($item['start_time'])); $item['end_time'] = date("Y-m-d", strtotime($item['end_time'])); } $this->success('获取成功', compact('list', 'compute_period')); } } return $this->render($this->action->id); } /** * 分红明细 * @Author: lun * @DateTime: 2022/1/27 0027 9:57 * @Copyright: copyright (c) 2021 广东七件事集团 * @return mixed|string|void */ public function actionCommissionLog() { $retuest = Yii::$app->request; if ($retuest->isAjax) { if ($retuest->isPost) { // 检查提交的参数 $params = $retuest->post(); $res = Yii::$app->services->validate->validate($params,[ [['period_id'], 'required'], [['period_id','page','limit','level','user_id'], 'integer'], [['mobile'], 'match', 'pattern' => '/^1\d{10}$/', 'message' => '请输入正确的手机号码'], [['datetime'], 'each', 'rule' => ['string']] ]); if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params = ServeBonusRewardLog::exceptNullVal($params); // 获取服务商等级 if ($params['page'] == 1) { $level_list = ServeBonusLevel::getServeBonusLevel([['mall_id' => $this->mall_id]], [], true, 'level,name'); } $where = []; $where[] = ['=', 'mall_id', $this->mall_id]; $where[] = ['=', 'period_id', $params['period_id']]; !empty($params['user_id']) && $where[] = ['=', 'user_id', $params['user_id']]; $where[] = ['=', 'status', StatusEnum::ENABLED]; // 时间筛选 if (!empty($params['datetime'])) { $start_time = strtotime($params['datetime'][0]); $end_time = strtotime($params['datetime'][1]); $where[] = ['between', 'created_at', $start_time, $end_time]; } // 根据等级搜索 if (!empty($params['level'])) { $user_ids = ServeBonus::find()->select('user_id')->where(['mall_id' => $this->mall_id, 'level' => $params['level'], 'status' => StatusEnum::ENABLED])->asArray()->column(); if (empty($user_ids)) $this->success('获取成功', compact('list', 'level_list')); $where[] = ['in', 'user_id', $user_ids]; } // 根据手机号码搜索 if (!empty($params['mobile'])) { $user_id = User::find()->select("id")->where(['mobile' => $params['mobile']])->asArray()->scalar(); !empty($user_id) && $where[] = ['=', 'user_id', $user_id]; } // 关联用户信息 $with = ['user' => function ($query) { $query->select("id,nickname,mobile,avatar_url"); },'servebonus' => function ($query) { $query->select("user_id,level"); }]; $order = 'id desc,created_at desc'; $params = array('where' => $where, 'order' => $order, 'with' => $with, 'limit' => $params['limit']); $list = ServeBonusCommissionLog::listPage($params, false, true); if (empty($list)) $this->success('获取成功', compact('list', 'compute_period')); foreach ($list['list'] as &$item) { $item['start_time'] = date("Y-m-d", strtotime($item['start_time'])); $item['end_time'] = date("Y-m-d", strtotime($item['end_time'])); } $this->success('获取成功', compact('list', 'level_list')); } } return $this->render($this->action->id); } /** * 获取分红订单信息 * @Author: lun * @DateTime: 2022/1/26 0026 17:01 * @Copyright: copyright (c) 2021 广东七件事集团 * @param $params * @return mixed|void */ public function actionExtraOrder() { $retuest = Yii::$app->request; if ($retuest->isAjax && $retuest->isPost) { $params = $retuest->post(); // 检查提交的参数 $res = Yii::$app->services->validate->validate($params, [ [['user_id', 'type','is_settlement','order_id','page','limit','level','period_id'], 'integer'], [['order_no'], 'string'], [['mobile'], 'match', 'pattern' => '/^1\d{10}$/', 'message' => '请输入正确的手机号码'], [['datetime'], 'each', 'rule' => ['string']] ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params = ServeBonusRewardLog::exceptNullVal($params); // 获取服务商等级 if ($params['page'] == 1) { $level_list = ServeBonusLevel::getServeBonusLevel([['mall_id' => $this->mall_id]], [], true, 'level,name'); } $where = []; $where[] = ['=', 'mall_id', $this->mall_id]; !empty($params['user_id']) && $where[] = ['=', 'user_id', $params['user_id']]; !empty($params['order_no']) && $where[] = ['=', 'order_no', $params['order_no']]; !empty($params['order_id']) && $where[] = ['=', 'order_id', $params['order_id']]; !empty($params['level']) && $where[] = ['=', 'level', $params['level']]; !empty($params['type']) && $where[] = ['=', 'type', $params['type']]; !empty($params['period_id']) && $where[] = ['=', 'period_id', $params['period_id']]; // 时间筛选 if (!empty($params['datetime'])) { $start_time = strtotime($params['datetime'][0]); $end_time = strtotime($params['datetime'][1]); $where[] = ['between', 'created_at', $start_time, $end_time]; } isset($params['is_settlement']) && $params['is_settlement'] !== '' && $where[] = ['=', 'is_settlement', $params['is_settlement']]; // 根据手机号查询 if (!empty($params['mobile'])) { $user_id = User::find()->select("id")->where(['mobile' => $params['mobile']])->asArray()->scalar(); !empty($user_id) && $where[] = ['=', 'user_id', $user_id]; } $where[] = ['=', 'status', StatusEnum::ENABLED]; // 关联用户信息 $with = ['user' => function ($query) { $query->select("id,nickname,mobile,avatar_url"); }]; $order = 'id desc,created_at desc'; $log_params = array('where' => $where, 'order' => $order, 'with' => $with, 'limit' => $params['limit']); // 查询列表 $list = ServeBonusRewardLog::listPage($log_params, false, true); return $this->success('获取成功', ['list' => $list, 'level_list' => $level_list ?? []]); } return $this->render($this->action->id); } /** * 出单奖励列表 * @Author: lun * @DateTime: 2022/1/26 0026 17:01 * @Copyright: copyright (c) 2021 广东七件事集团 * @param $params * @return mixed|void */ public function actionForeverOrder() { $retuest = Yii::$app->request; if ($retuest->isAjax && $retuest->isPost) { $params = $retuest->post(); // 检查提交的参数 $res = Yii::$app->services->validate->validate($params, [ [['user_id', 'type','page','limit','level'], 'integer'], [['order_no'], 'string'], [['mobile'], 'match', 'pattern' => '/^1\d{10}$/', 'message' => '请输入正确的手机号码'], [['datetime'], 'each', 'rule' => ['string']] ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params = ServeBonusRewardLog::exceptNullVal($params); // 获取服务商等级 if ($params['page'] == 1) { $level_list = ServeBonusLevel::getServeBonusLevel([['mall_id' => $this->mall_id]], [], true, 'level,name'); } $where = []; $where[] = ['=', 'mall_id', $this->mall_id]; !empty($params['user_id']) && $where[] = ['=', 'user_id', $params['user_id']]; !empty($params['order_no']) && $where[] = ['=', 'order_no', $params['order_no']]; // 时间筛选 if (!empty($params['datetime'])) { $start_time = strtotime($params['datetime'][0]); $end_time = strtotime($params['datetime'][1]); $where[] = ['between', 'created_at', $start_time, $end_time]; } // 根据手机号查询 if (!empty($params['mobile'])) { $user_id = User::find()->select("id")->where(['mobile' => $params['mobile']])->asArray()->scalar(); !empty($user_id) && $where[] = ['=', 'user_id', $user_id]; } // 根据等级搜索 if (!empty($params['level'])) { $user_ids = ServeBonus::find()->select('user_id')->where(['mall_id' => $this->mall_id, 'level' => $params['level'], 'status' => StatusEnum::ENABLED])->asArray()->column(); if (empty($user_ids)) $this->success('获取成功', compact('list', 'level_list')); $where[] = ['in', 'user_id', $user_ids]; } $where[] = ['=', 'status', StatusEnum::ENABLED]; // 关联用户信息 $with = ['user' => function ($query) { $query->select("id,nickname,mobile,avatar_url"); }, 'buy' => function ($query) { $query->select("id,nickname,mobile,avatar_url"); }]; $order = 'id desc,created_at desc'; $log_params = array('where' => $where, 'with' => $with, 'order' => $order, 'limit' => $params['limit']); // 查询列表 $list = ServeBonusAchievement::listPage($log_params, false, true); return $this->success('获取成功', compact('list', 'level_list')); } return $this->render($this->action->id); } /** * @Author: ltm 测试方法,测试完删除掉 * @DateTime: 2022/2/10 0010 16:29 * @Copyright: copyright (c) 2021 广东七件事集团 * @param $data * @return string */ public function actionManualexecution(){ $commiss = new CommissionLogLogic(); $commiss->execute($this->mall_id,true); return $this->success('获取成功'); } /** * 获取业绩分红订单信息 * @Author: lun * @DateTime: 2022/1/26 0026 17:01 * @Copyright: copyright (c) 2021 广东七件事集团 * @param $params * @return mixed|void */ public function actionAchievementSettleLog() { $retuest = Yii::$app->request; if ($retuest->isAjax && $retuest->isPost) { $params = $retuest->post(); // 检查提交的参数 $res = Yii::$app->services->validate->validate($params, [ [['user_id','page','limit','level'], 'integer'], [['mobile'], 'match', 'pattern' => '/^1\d{10}$/', 'message' => '请输入正确的手机号码'], [['datetime'], 'each', 'rule' => ['string']] ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params = ServeBonusCloudStockPeriod::exceptNullVal($params); // 获取服务商等级 if ($params['page'] == 1) { $level_list = ServeBonusLevel::getServeBonusLevel([['mall_id' => $this->mall_id]], [], true, 'level,name'); } $where = []; $where[] = ['=', 'mall_id', $this->mall_id]; !empty($params['user_id']) && $where[] = ['=', 'user_id', $params['user_id']]; // 时间筛选 if (!empty($params['datetime'])) { $start_time = strtotime($params['datetime'][0]); $end_time = strtotime($params['datetime'][1]); $where[] = ['between', 'created_at', $start_time, $end_time]; } // 根据手机号查询 if (!empty($params['mobile'])) { $user_id = User::find()->select("id")->where(['mobile' => $params['mobile'],'mall_id'=>$this->mall_id])->asArray()->scalar(); !empty($user_id) && $where[] = ['=', 'user_id', $user_id]; } // 根据等级搜索 if (!empty($params['level'])) { $user_ids = ServeBonus::find()->select('user_id')->where(['mall_id' => $this->mall_id, 'level' => $params['level'], 'status' => StatusEnum::ENABLED])->asArray()->column(); if (empty($user_ids)) $this->success('获取成功', compact('list', 'level_list')); $where[] = ['in', 'user_id', $user_ids]; } $where[] = ['=', 'status', StatusEnum::ENABLED]; // 关联用户信息 $with = ['user' => function ($query) { $query->select("id,nickname,mobile,avatar_url"); }]; $order = 'id desc,created_at desc'; $log_params = array('where' => $where,'order' => $order, 'with' => $with, 'limit' => $params['limit']); // 查询列表 $list = ServeBonusCloudStockPeriod::listPage($log_params, false, true); if(!empty($list['list'])){ $user_ids = array_column($list['list'],'user_id'); // 获取所有服务商列表 $servebonus_list = ServeBonus::find() ->where(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED,'user_id'=>$user_ids]) ->select('user_id,level') ->indexBy('user_id') ->asArray() ->all(); foreach($list['list'] as &$item){ $item['level'] = $servebonus_list[$item['user_id']] ? $servebonus_list[$item['user_id']]['level'] : 0; if(empty($item['is_settlement'])){ $item['amounts_num'] = ServeBonusCloudStockPeriod::getAmountsNum($this->mall_id,$item['level'],$item['start_time'],$item['end_time']); $item['total_amounts_num'] = ServeBonusOrderLog::getTotalAmountsNum($this->mall_id,$item['level'],$item['start_time'],$item['end_time']); } } } return $this->success('获取成功', ['list' => $list, 'level_list' => $level_list ?? []]); } return $this->render($this->action->id); } }