| | |
| | | |
| | | namespace app\common\model\user; |
| | | |
| | | use app\common\model\plus\team\Referee as TeamRefereeModel; |
| | | use app\common\library\helper; |
| | | use app\common\model\BaseModel; |
| | | use app\common\model\plus\bonus\Setting as bonusSettingModel; |
| | | use app\common\model\plus\team\User as TeamUserModel; |
| | | use app\common\model\user\Grade as GradeModel; |
| | | use app\common\model\user\PointsLog as PointsLogModel; |
| | | use app\common\model\supplier\User as SupplierUserModel; |
| | | use app\common\model\store\Clerk as StoreClerkModel; |
| | | use app\common\model\user\User as RealUserModel; |
| | | use app\common\model\user\User as UserModel; |
| | | use app\common\model\settings\Setting as SettingModel; |
| | | use app\common\model\plus\agent\Referee as RefereeModel; |
| | | use app\shop\model\plus\agent\User as AgentUserModel; |
| | | use think\facade\Db; // by lyzflash |
| | | use app\common\model\plus\bonus\User as BonusUserModel; |
| | | use app\common\model\user\ConsumptionLog as ConsumptionLogModel; |
| | | /** |
| | | * 用户模型 |
| | | */ |
| | |
| | | { |
| | | protected $pk = 'user_id'; |
| | | protected $name = 'user'; |
| | | |
| | | public static function getOperatingSubsidy($referee_id, $setting) |
| | | { |
| | | $count=self::where('referee_id',$referee_id)->where('grade_id','in',$setting['referee_grade_ids'])->count(); |
| | | if ($count>=$setting['referee_grade_count']){ |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * 修改器 |
| | |
| | | public function grade() |
| | | { |
| | | return $this->belongsTo('app\\common\\model\\user\\Grade', 'grade_id', 'grade_id'); |
| | | } |
| | | /** |
| | | * 关联分会表 |
| | | */ |
| | | public function branch() |
| | | { |
| | | return $this->hasOne('app\\common\\model\\branch\\Branch', 'branch_id', 'branch_id'); |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | return true; |
| | | } |
| | | /** |
| | | * 累积用户的可用消费券数量 (批量) |
| | | */ |
| | | public function onBatchIncConsumption($data) |
| | | { |
| | | foreach ($data as $userId => $expendPoints) { |
| | | $this->where(['user_id' => $userId]) |
| | | ->inc('consumer_coupon', $expendPoints) |
| | | ->inc('total_expend_money', $expendPoints) |
| | | ->update(); |
| | | event('UserGrade', $this['user_id']); |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | | * 累积用户的可用积分 |
| | | */ |
| | | public function setIncPoints($points, $describe, $decPoints = 0, $upgrade = true) |
| | | public function setIncPoints($points, $describe, $decPoints = 0, $upgrade = true, $is_brand = 0) |
| | | { |
| | | // 新增积分变动明细 |
| | | PointsLogModel::add([ |
| | |
| | | |
| | | // 更新用户可用积分 |
| | | $data['points'] = ($this['points'] + $points + $decPoints <= 0) ? 0 : $this['points'] + $points + $decPoints; |
| | | if ($is_brand == 1){ |
| | | // 用户可用积分 |
| | | $data['brand_points'] = ($this['brand_points'] + $points + $decPoints <= 0) ? 0 : $this['brand_points'] + $points + $decPoints; |
| | | } |
| | | // 用户总积分 |
| | | if ($points > 0) { |
| | | $data['total_points'] = $this['total_points'] + $points; |
| | | } |
| | | $this->where('user_id', '=', $this['user_id'])->update($data); |
| | | if($upgrade) { |
| | | event('UserGrade', $this['user_id']); |
| | | } |
| | | return true; |
| | | } |
| | | /** |
| | | * 累积用户的可用消费券 |
| | | */ |
| | | public function setIncConsumption($consumption, $describe, $decConsumption = 0, $upgrade = true) |
| | | { |
| | | // 新增消费券变动明细 |
| | | ConsumptionLogModel::add([ |
| | | 'user_id' => $this['user_id'], |
| | | 'value' => $consumption, |
| | | 'describe' => $describe, |
| | | 'app_id' => $this['app_id'], |
| | | ]); |
| | | |
| | | // 更新用户可用消费券 |
| | | $data['consumer_coupon'] = ($this['consumer_coupon'] + $consumption + $decConsumption <= 0) ? 0 : $this['consumer_coupon'] + $consumption + $decConsumption; |
| | | // 用户总消费券 |
| | | if ($consumption > 0) { |
| | | $data['total_expend_money'] = $this['total_expend_money'] + $consumption; |
| | | } |
| | | $this->where('user_id', '=', $this['user_id'])->update($data); |
| | | if($upgrade) { |
| | |
| | | { |
| | | $user= self::detail($user_id); |
| | | $purchase_count=$user['purchase_count']+1; |
| | | if ($purchase_count>11){ |
| | | return false; |
| | | if ($purchase_count==1&&$user['referee_id']){ |
| | | $referee= self::detail($user['referee_id']); |
| | | if ($referee){ |
| | | $settingConsumption=SettingModel::getItem('consumption'); |
| | | if ($settingConsumption['give_away']){ |
| | | $referee->setIncConsumption($settingConsumption['give_away'], '直推首单礼包'); |
| | | } |
| | | } |
| | | } |
| | | /*if ($purchase_count>11){ |
| | | return false; |
| | | }*/ |
| | | self::where('user_id',$user_id)->update([ |
| | | 'purchase_count'=>$purchase_count |
| | | ]); |
| | |
| | | $quantity=0; |
| | | foreach ($product as $item){ |
| | | // 检查商品是否是指定的分红商品 |
| | | if (in_array($item['product_id'], $config['become__buy_product_ids'])) { |
| | | if (in_array($item['product_id'], $config['become__buy_product_ids'])||$item['is_vip']==1) { |
| | | // 获取商品数量 |
| | | $quantity+= $item['total_num']; |
| | | } |
| | |
| | | return $this->where('referee_id', 'in', $user_id)->where('grade_id', 'in', $referee_grade_ids)->count(); |
| | | } |
| | | |
| | | public function editReferee($data) |
| | | { |
| | | // 开启事务 |
| | | $this->startTrans(); |
| | | try { |
| | | // 删除原推荐人关系 |
| | | (new AgentUserModel)->onDeleteReferee($this['user_id']); |
| | | //更新推荐人的数量 by yj |
| | | (new RealUserModel())->setOnInvite($this['user_id'],$data['referee_id']); |
| | | // 修改用户推荐人 |
| | | (new RealUserModel())->where('user_id', '=', $this['user_id'])->update([ |
| | | 'referee_id' => $data['referee_id'] |
| | | ]); |
| | | // 修改团队的推荐人 by yj |
| | | (new TeamUserModel())->where('user_id', '=', $this['user_id'])->update([ |
| | | 'referee_id' => $data['referee_id'] |
| | | ]); |
| | | |
| | | // 记录推荐人关系, |
| | | $data['referee_id'] > 0 && RefereeModel::updateRelation($this['user_id'], $data['referee_id']); |
| | | |
| | | //处理变动用户底下的团队推荐人信息 by yj |
| | | (new AgentUserModel)->onTeamReferee($this['user_id']); |
| | | |
| | | // 重建团队分红关系 by yj |
| | | $data['referee_id'] > 0 && TeamRefereeModel::createTeam($data['referee_id']); |
| | | $this->commit(); |
| | | return true; |
| | | } catch (\Exception $e) { |
| | | $this->error = $e->getMessage(); |
| | | $this->rollback(); |
| | | return false; |
| | | } |
| | | } |
| | | } |