user_id; $data['nickname'] = empty($this->user->nickname) ? '' : $this->user->nickname; $data['avatar_url'] = empty($this->user->avatar_url) ? '' : $this->user->avatar_url; $distribution = Distribution::getOne([['user_id' => $this->user_id], ['status' => StatusEnum::ENABLED], ['mall_id' => $this->mall_id]], true); if (empty($distribution)) { $res = DistributionApply::getOne([['user_id' => $this->user_id], ['status' => StatusEnum::ENABLED], ['mall_id' => $this->mall_id]], true, [], 'id desc'); $setting = \Yii::$app->services->setting->addons->get($this->mall_id, DistributionEnum::ADDONS_NAME, 'basic'); if (!empty($res)) { if ($res['check_status'] == 0) return $this->error('', $result = ['is_apply' => 2, 'msg' => '您已经申请了,请等待审核', 'is_distribution' => 0]); if ($res['check_status'] == 2) return $this->error('', $result = ['is_apply' => 3, 'protocol' => $setting['protocol'], 'msg' => $res['check_remark'], 'is_distribution' => 0]); } $result = ['is_apply' => $setting['is_apply'], 'protocol' => $setting['protocol'], 'is_distribution' => 0]; return $this->error('您不是分销商', $result); } $data['parent_name'] = '平台方'; $data['parent_avatar_url'] = ''; $data['parent_level_name'] = ''; $parent_id = $this->user->parent_id ?? 0; if ($parent_id) { $parent = User::findOne($parent_id); $data['parent_name'] = $parent['nickname'] ?? ''; $data['parent_avatar_url'] = $parent['avatar_url'] ?? ''; $parent_distribution = Distribution::findOne(['user_id' => $parent_id]); $data['parent_level_name'] = $parent_distribution->distributionLevel->name ?? '默认等级'; } $data['is_distribution'] = 0; $data['level_name'] = ''; $data['frozen_price'] = 0; $data['total_price'] = 0; $data['total_income'] = 0; $data['yesterday_price'] = 0; if ($distribution) { $data['is_distribution'] = 1; $data['level_name'] = $distribution['distributionLevel']['name'] ?? '默认等级'; $wallet_type = 'commission'; $yesterday = date('Y-m-d', strtotime('-1 day')); $start_time = "{$yesterday} 00:00:00"; $end_time = "{$yesterday} 23:59:59"; CapitalLog::$capitalType = "{$wallet_type}_frozen"; $where = ['user_id' => $this->user_id, 'from_type' => DistributionEnum::ADDONS_NAME, 'status' => CapitalLog::STATUS_WAIT_SEND]; $query = CapitalLog::find(); $frozen_price = $query->where($where)->sum('change_num'); $yesterday_frozen_price = $query->where($where) ->andWhere(['<=', 'created_at', $end_time]) ->andWhere(['>=', 'created_at', $start_time]) ->sum('change_num'); if (empty($yesterday_frozen_price)) $yesterday_frozen_price = 0; CapitalLog::$capitalType = "{$wallet_type}"; $where = ['user_id' => $this->user_id, 'from_type' => DistributionEnum::ADDONS_NAME]; $query = CapitalLog::find(); $total_price = $query->where($where)->sum('change_num'); $yesterday_total_price = $query->where($where) ->andWhere(['<=', 'created_at', $end_time]) ->andWhere(['>=', 'created_at', $start_time]) ->sum('change_num'); if (empty($yesterday_total_price)) $yesterday_total_price = 0; $data['total_price'] = empty($total_price) ? 0 : $total_price; $data['frozen_price'] = empty($frozen_price) ? 0 : $frozen_price; $data['total_income'] = bcadd($data['total_price'], $data['frozen_price'], 2); $data['yesterday_price'] = $yesterday_total_price + $yesterday_frozen_price; } $is_show_share_level = \Yii::$app->services->setting->addons->get($this->mall_id, DistributionEnum::ADDONS_NAME, 'basic.is_show_share_level'); $data['is_show_share_level'] = $is_show_share_level ?? 0; return $this->success('操作成功', $data); } public function actionInfo() { $data = Distribution::distributionInfo($this->user, $this->mall_id); if (!empty($data['msg'])) return $this->error($data['msg'], $data['result']); return $this->success('操作成功', $data); } /** * @desc:奖励列表 * @Author: hua * @Date: 2021/11/4 * @Time: 17:00 * @Copyright: copyright (c) 2021 广东七件事集团 * @return mixed|void */ public function actionLogList() { $get = \Yii::$app->request->get(); $status = $get['status'] ?? 1; $wallet_type = $status == 1 ? 'commission' : 'commission_frozen'; if($wallet_type == 'commission_frozen') $params['status'] = 0; //$wallet_type = 'commission'; $params['mall_id'] = $this->mall_id; $params['user_id'] = $this->user_id; $params['page'] = $get['page'] ?? 1; $params['limit'] = $get['limit'] ?? 5; $list = CapitalLog::getCapitalLogList($params, $wallet_type, DistributionEnum::ADDONS_NAME); foreach($list['list'] as $key => $value){ $value['is_percent'] = 0; $value['now_commission'] = ''; $value['repurchase_msg'] = ''; $basic_log = DistributionCommissionBasisLog::findOne(['mall_id' => $this->mall_id,'user_id' => $this->user_id,'source_table_id' => $value['source_table_id'],'source_table' => $value['source_table']]); if($basic_log){ $reward_config = json_decode($basic_log->reward_config,true); $value['is_percent'] = $reward_config['is_percent'] ?? 0; $value['commission_percent'] = $reward_config['first_prize'] ?? 0; $value['now_commission'] = $value['is_percent'] == 0 ? $value['commission_percent'].'%' : $value['commission_percent'].'元'; $value['repurchase_msg'] = $basic_log['need_repurchase'] > 0 ? '需要复购一次指定商品结算奖励' : ''; } $list['list'][$key] = $value; } $list['map'] = DistributionEnum::getMap(); return $this->success('操作成功', $list); } /** * @desc:申请接口 * @Author: hua * @Date: 2021/11/25 * @Time: 16:39 * @Copyright: copyright (c) 2021 广东七件事集团 * @return mixed|void */ public function actionApply() { $mall_id = $this->mall_id; if (\Yii::$app->request->isPost) { $params = \Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($params, [ [['name', 'mobile'], 'required'], [['remark'], 'safe'], ['mobile', 'match', 'pattern' => '/^1\d{10}$/', 'message' => '请输入正确的手机号码'], ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params['mall_id'] = $mall_id; $params['user_id'] = $this->user_id; if (empty($this->user)) return $this->error('不存在此会员'); $distribution = Distribution::getOne([['user_id' => $this->user_id], ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]], ['mall_id' => $this->mall_id]], true); if (!empty($distribution)) return $this->error('您已经是分销商'); $distribution_apply = DistributionApply::getOne([['user_id' => $this->user_id], ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]], ['mall_id' => $this->mall_id]], true, [], 'id desc'); if (!empty($distribution_apply) && empty($distribution_apply['check_status'])) return $this->error('您已经提交申请,请等待客服审核'); $setting = \Yii::$app->services->setting->addons->get($this->mall_id, DistributionEnum::ADDONS_NAME, 'basic'); if (empty($setting['is_check'])) $params['check_status'] = 1; //不需要审核 $res = DistributionApply::setData($params); if ($res === false) return $this->error(DistributionApply::getStaticError()); return $this->success('操作成功'); } if (\Yii::$app->request->isGet) { $params['mall_id'] = $mall_id; $params['user_id'] = $this->user_id; if (empty($this->user)) return $this->error('不存在此会员'); $distribution_apply = DistributionApply::getOne([ ['user_id' => $this->user_id], ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]], ['mall_id' => $this->mall_id] ], true, [], 'id desc', 'id,user_id,check_status,check_remark'); return $this->success('操作成功', $distribution_apply); } } /** * 复购商品列表 * @return mixed|void */ public function actionRepurchaseGoods() { try { $mall_id = $this->mall_id; $setting = \Yii::$app->services->setting->addons->get($mall_id, DistributionEnum::ADDONS_NAME, 'basic'); $thaw_goods_ids = $setting['thaw_goods_ids'] ? json_decode($setting['thaw_goods_ids'], true) : []; $goods_list = []; if ($setting['is_circle_repurchase'] && $thaw_goods_ids) { $where[] = ['g.mall_id' => $mall_id]; $where[] = ['g.status' => [StatusEnum::ENABLED]]; $where[] = ['g.is_on_sale' => 1]; $where[] = ['g.is_show' => 1]; $where[] = ['g.id' => $thaw_goods_ids]; $params['where'] = $where; $params['alias'] = 'g'; $params['select'] = 'g.id,g.goods_name,g.cover_pic,g.price,g.original_price,g.virtual_sales,g.sales_num,is_show_sales,g.original_price'; $goods_list = Goods::listPage($params); if (!empty($goods_list['list'])) { $user_level = null; if (!empty($this->user)) { //基础会员等级折扣 $user_level = UserLevel::findOne(['mall_id' => $this->mall_id, 'level' => $this->user['level'], 'status' => StatusEnum::ENABLED]); } foreach ($goods_list['list'] as &$item) { $item['sales_num'] += $item['virtual_sales']; unset($item['virtual_sales']); //额外会员设置 if ($user_level && !empty($user_level['member_price_is_show'])) { $item['price'] = GoodsLogic::getMemberPriceList($this->mall_id, $item, $this->user, true); } } } } return $this->success('操作成功', $goods_list); } catch (\Exception $e) { return $this->success('操作成功', []); } } }