| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- <?php
- /**
- * 重庆赤晓店信息科技有限公司
- * https://www.chixiaodian.com
- * Copyright (c) 2023 赤店商城 All rights reserved.
- */
- namespace app\modules\alliance\models;
- use app\models\BusinessMemberOrder;
- use app\models\Cash;
- use app\models\Option;
- use app\models\Order;
- use app\models\SaasShareMoney;
- use app\models\SaasUserPriceLog;
- use app\models\Share;
- use app\models\Store;
- use app\models\User;
- use app\models\SaasUser;
- use app\models\SharingReceiver;
- use app\models\UserShareMoney;
- use app\modules\alliance\models\ApiModel;
- use yii\helpers\Json;
- class ShareForm extends ApiModel
- {
- public $share;
- public $saas_id;
- public $store_id;
- public $user_id;
- public $name;
- public $mobile;
- public $agree;
- public $form_id;
- /**
- * 场景说明:NONE_CONDITION:无条件; APPLY:需要申请
- * @return array
- */
- public function rules()
- {
- return [
- [['name', 'mobile', 'agree'], 'required', 'on' => 'APPLY'],
- [['agree'], 'integer'],
- [['name', 'mobile', 'form_id'], 'trim'],
- [['mobile'], 'match', 'pattern' => "/\+?\d[\d -]{8,12}\d/", 'message' => '手机号错误', 'on' => 'APPLY']
- ];
- }
- public function attributeLabels()
- {
- return [
- 'name' => '真实姓名',
- 'mobile' => '手机号'
- ];
- }
- /**
- * 获取分销配置
- * @return array
- */
- public function getShareSetting() {
- $saas_info = get_saas_user();
- //$saas_id = 83;
- //$saas_info = SaasUser::find()->where(['id'=>$saas_id])->one();
- $data = [];
- $data['price'] = $saas_info->price;
- $data['total_price'] = $saas_info->total_price;
- $data['name'] = $saas_info->name;
- $data['avatar'] = $saas_info->avatar;
- if($saas_info->parent_id > 0){
- $parentSaas = SaasUser::findOne($saas_info->parent_id);
- $data['parent_name'] = isset($parentSaas->name) ? $parentSaas->name : '';
- }else{
- $data['parent_name'] = '';
- }
- // $receiverInfo = SharingReceiver::find()->where(['saas_id'=>$saas_info->id,'is_delete'=>0,'from'=>1])->andWhere(['AND', [
- // 'is_pay'=>[0,1]
- // ], ['>', 'saas_id', 0]])->asArray()->all();
- // $total = $finish = $nofinish = $num = 0;
- // foreach($receiverInfo as $val){
- // $num += 1;
- // $total += $val['amount'];
- // if($val['is_pay'] == 0){
- // $nofinish += $val['amount'];
- // }
- // if($val['is_pay'] == 1){
- // $finish += $val['amount'];
- // }
- // }
- // $data['distribution_num'] = $num;
- // $data['nofinish'] = $nofinish;
- // $data['finish'] = $finish;
- $data['distribution_num'] = SharingReceiver::find()->alias('sr')->leftJoin(['s' => Store::tableName()], 'sr.store_id = s.id')
- ->leftJoin(['su' => SaasUser::tableName()], 'sr.saas_id = su.id')
- ->where(['sr.is_delete' => 0, 'sr.from' => SharingReceiver::FROM_STORE, 'su.id' => get_saas_user_id()])->count();
- //昨天
- $yesterday = strtotime( date("Y-m-d",strtotime("-1 day")) );
- //$levelSaasIds = SaasUser::find()->where(['parent_id'=>$saas_info->id])->select('id')->asArray()->all();
- //会员卡订单信息
- //if(count($levelSaasIds)>0){
- //$levelSaasIds = array_column($levelSaasIds,'id');
- $levelInfo = SaasShareMoney::find()->where(['saas_id'=>$saas_info->id,'is_delete'=>0])->asArray()->all();
- $data['level_num'] = count($levelInfo);
- $dayLevelInfo = SaasShareMoney::find()->where(['saas_id'=>$saas_info->id,'is_delete'=>0])->andWhere(['>=','created_at',$yesterday])->andWhere(['<=','created_at',$yesterday+86400])->asArray()->all();
- $data['day_level_num'] = count($dayLevelInfo);
- // }else{
- // $data['level_num'] = $data['day_level_num'] = 0;
- // }
- //联盟分销
- $data['level_sales_num'] = SharingReceiver::find()->alias('sr')->leftJoin(['s' => Store::tableName()], 'sr.store_id = s.id')
- //->leftJoin(['su' => SaasUser::tableName()], 'sr.user_id = su.id')
- ->leftJoin(['su' => SaasUser::tableName()], 'sr.saas_id = su.id')
- ->where(['sr.is_delete' => 0, 'sr.from' => SharingReceiver::FROM_PLATFORM, 'su.id' => get_saas_user_id()])->count();
- //联盟分销
- $data['self_sales_num'] = SharingReceiver::find()->alias('sr')->leftJoin(['s' => Store::tableName()], 'sr.store_id = s.id')
- //->leftJoin(['su' => SaasUser::tableName()], 'sr.user_id = su.id')
- ->leftJoin(['su' => SaasUser::tableName()], 'sr.saas_id = su.id')
- ->where(['sr.is_delete' => 0, 'sr.from' => SharingReceiver::FROM_SELF, 'su.id' => get_saas_user_id()])->count();
- // $data['level_sales_num'] = SharingReceiver::find()->where(['saas_id'=>$saas_info->id,'is_delete' => 0])->count();
- // $data['day_level_sales_num'] = SharingReceiver::find()->where(['saas_id'=>$saas_info->id,'is_delete' => 0])->andWhere(['>=','updated_at',$yesterday])->andWhere(['<=','updated_at',$yesterday+86400])->count();
- // $users = User::find()->where(['binding'=>$saas_info->mobile,'is_delete'=>0])->select('id')->asArray()->all();
- // if(!empty($users) && count($users)>0 ){
- // $data['level_sales_num'] = UserShareMoney::find()->where(['user_id'=>array_column($users,'id'),'is_delete'=>0])->groupBy('order_id')->count();
- // $data['day_level_sales_num'] = UserShareMoney::find()->where(['user_id'=>array_column($users,'id'),'is_delete'=>0])->andWhere(['>=','created_at',$yesterday])->andWhere(['<=','created_at',$yesterday+86400])->groupBy('order_id')->count();
- // }else{
- // $data['level_sales_num'] = $data['day_level_sales_num'] = 0;
- // }
- //推荐店铺订单
- $data['recommend_num'] = SharingReceiver::find()->where(['saas_id'=>$saas_info->id,'is_delete' => 0, 'from' => SharingReceiver::FROM_NEW_STORE_RECOMMEND])
- ->count();
- $data['day_recommend_num'] = SharingReceiver::find()->where(['saas_id'=>$saas_info->id,'is_delete' => 0, 'from' => SharingReceiver::FROM_NEW_STORE_RECOMMEND])
- ->andWhere(['>=','updated_at',$yesterday])->andWhere(['<=','updated_at',$yesterday+86400])->count();
- //到账
- $data['to_account'] = $data['total_price'] - $data['price'] + $data['finish'];
- //供货商推荐人订单数量
- $data['supplier_recommend_num'] = SaasUserPriceLog::find()->where([
- 'saas_id' => $saas_info->id,
- 'amount_type' => SaasUserPriceLog::AMOUNT_TYPE_SUPPLIER_PARENT,
- 'log_type' => SaasUserPriceLog::LOG_TYPE_INCOME,
- ])->count();
- //灵活分润
- $data['custom_sharing_num'] = SharingReceiver::find()->where(['saas_id'=>$saas_info->id,'is_delete' => 0, 'from' => SharingReceiver::FROM_CUSTOM])->count();;
- return ['code' => 0, 'msg' => 'success', 'data' => $data];
- }
- /**
- * 获取分销配置
- * @return array
- */
- public function getShareMsg() {
- $setting = Option::get('share_basic_setting', $this->store_id);
- $share_basic_setting = $setting ? Json::decode($setting['value']) : [];
- $money_setting = Option::get('share_money_setting', $this->store_id);
- $share_money_setting = $money_setting ? Json::decode($money_setting['value']) : [];
- $arr['first'] = $share_money_setting['level_one']['value'] ?? '';
- $arr['second'] = $share_money_setting['level_two']['value'] ?? '';
- $arr['third'] = $share_money_setting['level_three']['value'] ?? '';
- $arr['store_id'] = $this->store_id;
- $arr['level'] = $share_basic_setting['level']['value'] ?? '';
- $arr['condition'] = $share_basic_setting['condition']['value'] ?? '';
- $arr['share_condition'] = $share_basic_setting['share_condition']['value'] ?? 2;
- // 无需审核,判断是否需要其他条件
- if ($arr['share_condition'] == 2) {
- $exit = Share::find()->andWhere(['user_id' => get_user_id(), 'store_id' => $this->store_id, 'is_delete' => 0,
- 'status' => 1])->exists();
- if (!$exit && ($share_basic_setting['auto_share_val']['value'] > 0 || $share_basic_setting['share_goods_status'] !=0 )) {
- return [
- 'code' => 1,
- 'msg' => $share_basic_setting['auto_share_val']['value'] > 0 ? '条件不满足,请消费'.$share_basic_setting['auto_share_val']['value'].'元': '请购买指定商品'
- ];
- }
- }
- return ['code' => 0, 'msg' => 'success'];
- }
- /**
- * @return array
- * 获取佣金相关信息
- */
- public function getPrice()
- {
- $saas = SaasUser::find()->where(['id' => $this->saas_id])->one();
- $list = Cash::find()->where(['saas_id' => $this->saas_id, 'is_delete' => 0])->asArray()->all();
- $new_list = [];
- $new_list['total_price'] = $saas->total_price;//分销佣金
- $new_list['price'] = $saas->price;
- $new_list['cash_price'] = 0;//已提现
- $new_list['un_pay'] = 0;//未审核
- $new_list['total_cash'] = 0;//提现明细
- foreach ($list as $index => $value) {
- if ($value['status'] == 1) {
- $new_list['un_pay'] = round(($new_list['un_pay'] + $value['price']), 2);
- $new_list['total_cash'] = round(($new_list['total_cash'] + $value['price']), 2);
- } elseif ($value['status'] == 2 || $value['status'] == 5) {
- $new_list['cash_price'] = round(($new_list['cash_price'] + $value['price']), 2);
- $new_list['total_cash'] = round(($new_list['total_cash'] + $value['price']), 2);
- }
- }
- return $new_list;
- }
- /**
- * @return array|null|\yii\db\ActiveRecord
- *
- */
- public function getCash()
- {
- $list = User::find()->alias('u')
- ->where(['u.is_delete' => 0, 'u.store_id' => $this->store_id, 'u.id' => $this->user_id])
- ->leftJoin('{{%cash}} c', 'c.user_id=u.id and c.is_delete=0')
- ->select([
- 'u.total_price', 'u.price',
- 'sum(case when c.status = 2 then c.price else 0 end) cash_price',
- 'sum(case when c.status = 1 then c.price else 0 end) un_pay'
- ])->groupBy('c.user_id')->asArray()->one();
- return $list;
- }
-
- }
|