This repository has been archived on 2024-07-11. You can view files and clone it, but cannot push or open issues or pull requests.
yoshop/source/application/common/model/dealer/User.php
2020-04-25 22:20:29 +08:00

114 lines
2.6 KiB
PHP

<?php
namespace app\common\model\dealer;
use app\common\model\BaseModel;
/**
* 分销商用户模型
* Class Apply
* @package app\common\model\dealer
*/
class User extends BaseModel
{
protected $name = 'dealer_user';
/**
* 强制类型转换
* @var array
*/
protected $type = [
'first_num' => 'integer',
'second_num' => 'integer',
'third_num' => 'integer',
];
/**
* 关联会员记录表
* @return \think\model\relation\BelongsTo
*/
public function user()
{
return $this->belongsTo('app\common\model\User');
}
/**
* 关联推荐人表
* @return \think\model\relation\BelongsTo
*/
public function referee()
{
return $this->belongsTo('app\common\model\User', 'referee_id')
->field(['user_id', 'nickName']);
}
/**
* 获取分销商用户信息
* @param $userId
* @param array $with
* @return static|null
* @throws \think\exception\DbException
*/
public static function detail($userId, $with = ['user', 'referee'])
{
return self::get($userId, $with);
}
/**
* 是否为分销商
* @param $userId
* @return bool
*/
public static function isDealerUser($userId)
{
return !!(new static)->where('user_id', '=', $userId)
->where('is_delete', '=', 0)
->value('user_id');
}
/**
* 新增分销商用户记录
* @param $user_id
* @param $data
* @return false|int
* @throws \think\exception\DbException
*/
public static function add($user_id, $data)
{
$model = static::detail($user_id) ?: new static;
return $model->save(array_merge([
'user_id' => $user_id,
'is_delete' => 0,
'wxapp_id' => $model::$wxapp_id
], $data));
}
/**
* 发放分销商佣金
* @param $user_id
* @param $money
* @return bool
* @throws \think\Exception
* @throws \think\exception\DbException
*/
public static function grantMoney($user_id, $money)
{
// 分销商详情
$model = static::detail($user_id);
if (!$model || $model['is_delete']) {
return false;
}
// 累积分销商可提现佣金
$model->setInc('money', $money);
// 记录分销商资金明细
Capital::add([
'user_id' => $user_id,
'flow_type' => 10,
'money' => $money,
'describe' => '订单佣金结算',
'wxapp_id' => $model['wxapp_id'],
]);
return true;
}
}