saas_user; $role = $this->role; $store_id = $this->store_id; $role_id = $saas_user->id; if ($role === self::ROLE_USER) { //头部信息 $user_info = [ 'avatar' => $saas_user->avatar, 'mobile' => $saas_user->mobile, 'name' => $saas_user->name, ]; //联盟券余额 $league_price = $saas_user->league_price; } else { $store = Store::findOne($store_id); $user_info = [ 'logo' => $store->logo, 'address' => $store->address, 'name' => $store->name, ]; //联盟券余额 $league_price = $store->league_price; $role_id = $store->id; } //积分金额 $storeDividendsUser = StoreDividendsUser::findOne(['role' => $role, 'role_id' => $role_id]); $integral_price = $storeDividendsUser ? $storeDividendsUser->dividends_integral : 0; $dividends_price = $storeDividendsUser ? $storeDividendsUser->league_price : 0; //上期分红 $last_league_price = StoreDividendsUserLeagueLog::find()->where(['dividends_user_id' => $storeDividendsUser->id]) ->orderBy('id desc') ->select('league_price')->scalar() ?: '0.00'; return [ 'code' => 0, 'msg' => '', 'data' => [ 'user_info' => $user_info, 'league_price' => $league_price, 'integral_price' => $integral_price, 'last_league_price' => $last_league_price, 'dividends_price' => $dividends_price ] ]; } //分红积分 public function integralLog() { $saas_user = $this->saas_user; $role = $this->role; $store_id = $this->store_id; $role_id = $saas_user->id; if ($role === self::ROLE_STORE) { $store = Store::findOne($store_id); $role_id = $store->id; } $storeDividendsUser = StoreDividendsUser::findOne(['role' => $role, 'role_id' => $role_id]); if (!$storeDividendsUser) { return [ 'code' => 0, 'msg' => '用户不存在', 'data' => [ 'list' => [] ] ]; } $query = StoreDividendsUserIntegralLog::find()->alias('dl') ->leftJoin(['o' => Order::tableName()], 'dl.order_id = o.id AND dl.order_type <> ' . StoreDividendsCycleSub::ORDER_TYPE_FACE) ->leftJoin(['sco' => \app\plugins\scanCodePay\models\Order::tableName()], 'dl.order_id = sco.id AND dl.order_type = ' . StoreDividendsCycleSub::ORDER_TYPE_FACE) ->where(['dl.dividends_user_id' => $storeDividendsUser->id]) ->orderBy('dl.id desc') ->select('dl.dividends_integral, dl.created_at, dl.order_type, o.order_no, o.pay_price, sco.order_no sco_order_no, sco.total_price as sc_total_price, sco.coupon_sub_price'); $list = pagination_make($query); foreach ($list['list'] as &$item) { $item['name'] = $role === self::ROLE_STORE ? '用户下单' : '商城购物'; $item['created_at'] = date('Y-m-d H:i:s', $item['created_at']); //如果是当面付 if ($item['order_type'] == StoreDividendsCycleSub::ORDER_TYPE_FACE) { $item['order_no'] = $item['sco_order_no']; $item['pay_price'] = bcsub($item['sc_total_price'], $item['coupon_sub_price'], 2); } } return [ 'code' => 0, 'msg' => '', 'data' => [ 'list' => $list ] ]; } //分红明细 public function leagueLog() { $saas_user = $this->saas_user; $store_id = $this->store_id; $role = $this->role; $storeDividendsUser = StoreDividendsUser::findOne(['role' => StoreDividendsUser::ROLE_STORE, 'role_id' => $store_id]); if ($role === self::ROLE_USER) { $storeDividendsUser = StoreDividendsUser::findOne(['role' => StoreDividendsUser::ROLE_USER, 'role_id' => $saas_user->id]); } if (!$storeDividendsUser) { return [ 'code' => 0, 'msg' => '用户不存在', 'data' => [ 'list' => [] ] ]; } $query = StoreDividendsUserLeagueLog::find()->alias('dl') ->leftJoin(['dc' => StoreDividendsCycle::tableName()], 'dl.dividends_cycle_id = dc.id') ->where(['>', 'dl.league_price', 0])->andWhere(['dl.dividends_user_id' => $storeDividendsUser->id]) ->select('dl.id, dl.league_price, dl.created_at, dc.name, dc.id as cycle_id') ->orderBy('dl.id desc'); $list = pagination_make($query); foreach ($list['list'] as &$item) { $item['created_at'] = date('Y-m-d H:i:s', $item['created_at']); } return [ 'code' => 0, 'msg' => '', 'data' => [ 'list' => $list ] ]; } public function leagueDetailLog() { if ($this->role === self::ROLE_USER) { $saas_user = $this->saas_user; $query = SaaSLeaguePriceLog::find()->alias('lpl') ->leftJoin(['su' => SaasUser::tableName()], 'su.id = lpl.saas_user_id') ->where(['lpl.role' => SaaSLeaguePriceLog::ROLE_USER, 'lpl.is_delete' => 0, 'lpl.saas_user_id' => $saas_user->id]); } else { $store_id = $this->store_id; $query = SaaSLeaguePriceLog::find()->alias('lpl') ->leftJoin(['s' => Store::tableName()], 's.id = lpl.store_id') ->where(['lpl.role' => SaaSLeaguePriceLog::ROLE_STORE, 'lpl.is_delete' => 0, 'lpl.store_id' => $store_id]); } $query->andWhere(['>', 'lpl.league_price', 0])->select('lpl.id, lpl.type, lpl.league_price, lpl.send_or_take_type, lpl.addtime') ->orderBy('lpl.id DESC'); $list = pagination_make($query); foreach ($list['list'] as $index => &$item) { $item['send_or_take_type'] = intval($item['send_or_take_type']); $item['created_at'] = date('Y-m-d H:i:s', $item['addtime']); $item['type_text'] = SaaSLeaguePriceLog::getTypeStr($item['type']); unset($list['list'][$index]['addtime']); } return [ 'code' => 0, 'msg' => '', 'data' => $list ]; } /** * 商城联盟券转赠给自身 */ public function selfLeagueSend() { $saas_user = $this->saas_user; $saas_user = SaasUser::findOne($saas_user->id); $league_price = $this->league_price; $store_id = $this->store_id; $store = Store::findOne($store_id); if (!$store) { return [ 'code' => 1, 'msg' => '店铺不存在' ]; } if ($league_price <= 0) { return [ 'code' => 1, 'msg' => '提交联盟券金额不正确' ]; } if ($store->league_price < $league_price) { return [ 'code' => 1, 'msg' => '当前店铺联盟券金额不足' ]; } $before = $store->league_price; $store->updateCounters(['league_price' => -floatval($league_price)]); \app\models\SaaSLeaguePriceLog::setLeaguePriceLog( $store->id, $saas_user->id, $league_price, $before, \app\models\SaaSLeaguePriceLog::TYPE_SEND, \app\models\SaaSLeaguePriceLog::TAKE_TYPE, \app\models\SaaSLeaguePriceLog::ROLE_STORE ); $before = $saas_user->league_price; $saas_user->updateCounters(['league_price' => floatval($league_price)]); $id = 0; \app\models\SaaSLeaguePriceLog::setLeaguePriceLog( $store->id, $saas_user->id, $league_price, $before, \app\models\SaaSLeaguePriceLog::TYPE_SEND, \app\models\SaaSLeaguePriceLog::SEND_TYPE, \app\models\SaaSLeaguePriceLog::ROLE_USER, 0, $id ); return [ 'code' => 0, 'msg' => '提交成功' ]; } }