|
|
@@ -10,29 +10,30 @@ use app\common\model\LedgerWalletModel;
|
|
|
use fast\Asset;
|
|
|
use think\Model;
|
|
|
use think\Log;
|
|
|
+
|
|
|
/**
|
|
|
* 会员模型
|
|
|
*/
|
|
|
class UserModel extends Model
|
|
|
{
|
|
|
|
|
|
-// // 开启自动写入时间戳字段
|
|
|
-// protected $autoWriteTimestamp = 'int';
|
|
|
-// // 定义时间戳字段名
|
|
|
-// protected $createTime = 'createtime';
|
|
|
-// protected $updateTime = 'updatetime';
|
|
|
-// // 追加属性
|
|
|
-// protected $append = [
|
|
|
-// 'url',
|
|
|
-// ];.
|
|
|
+ // // 开启自动写入时间戳字段
|
|
|
+ // protected $autoWriteTimestamp = 'int';
|
|
|
+ // // 定义时间戳字段名
|
|
|
+ // protected $createTime = 'createtime';
|
|
|
+ // protected $updateTime = 'updatetime';
|
|
|
+ // // 追加属性
|
|
|
+ // protected $append = [
|
|
|
+ // 'url',
|
|
|
+ // ];.
|
|
|
|
|
|
//0未开始 1进行中 2已结束 Not started
|
|
|
const Notstart = 0;
|
|
|
const Normal = 1;
|
|
|
const Stop = 2;
|
|
|
|
|
|
- const LevelConta = [1=>2, 2=>9, 3=>3, 4=>3]; //包含自己
|
|
|
- const LevelAll = [1=>3, 2=>10, 3=>3, 4=>3]; //直推人数
|
|
|
+ const LevelConta = [1 => 2, 2 => 9, 3 => 3, 4 => 3]; //包含自己
|
|
|
+ const LevelAll = [1 => 3, 2 => 10, 3 => 3, 4 => 3]; //直推人数
|
|
|
|
|
|
const LevelOne = 1; //青铜
|
|
|
const LevelTwo = 2; //白银
|
|
|
@@ -45,7 +46,7 @@ class UserModel extends Model
|
|
|
//超级福利标识
|
|
|
const Hidden = 0;
|
|
|
const NewPeo = 1;
|
|
|
- const Super = 2;
|
|
|
+ const Super = 2;
|
|
|
|
|
|
protected $name = 'user';
|
|
|
|
|
|
@@ -60,15 +61,15 @@ class UserModel extends Model
|
|
|
return $this->where("phone", $phone)->find();
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
public static function getByUserCount(array $where)
|
|
|
{
|
|
|
return self::where($where)->count();
|
|
|
-
|
|
|
}
|
|
|
|
|
|
- public function getByUid($nickname){
|
|
|
+ public function getByUid($nickname)
|
|
|
+ {
|
|
|
return self::where('nickname', $nickname)->find();
|
|
|
}
|
|
|
|
|
|
@@ -78,12 +79,13 @@ class UserModel extends Model
|
|
|
}
|
|
|
|
|
|
public static function getByParentId(int $uid): int
|
|
|
- {
|
|
|
+ {
|
|
|
return self::where('id', $uid)->value("parent_id");
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//根据用户昵称获取用户ID: 0 地址 1 昵称
|
|
|
- public static function getUserByUid(string $nickname, int $type = 0){
|
|
|
+ public static function getUserByUid(string $nickname, int $type = 0)
|
|
|
+ {
|
|
|
$map = $type == 1 ? ['nickname' => $nickname] : ['address' => $nickname];
|
|
|
return self::where($map)->value('id');
|
|
|
}
|
|
|
@@ -92,7 +94,7 @@ class UserModel extends Model
|
|
|
{
|
|
|
$all_list = $this->field('id,address')->select();
|
|
|
$arr = [];
|
|
|
- foreach ($all_list as $item){
|
|
|
+ foreach ($all_list as $item) {
|
|
|
$arr[$item['address']] = $item['id'];
|
|
|
}
|
|
|
return $arr;
|
|
|
@@ -101,16 +103,16 @@ class UserModel extends Model
|
|
|
|
|
|
//获取用户RWA
|
|
|
public static function getUserRwaNum(int $uid): int
|
|
|
- {
|
|
|
+ {
|
|
|
return self::where('id', $uid)->value("rwa_num");
|
|
|
}
|
|
|
|
|
|
//获取用户团队等级
|
|
|
public static function getTeamLevelId(int $uid): int
|
|
|
- {
|
|
|
+ {
|
|
|
return self::where('id', $uid)->value("team_level_id");
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* RWA更新数据
|
|
|
* @param int $uid
|
|
|
@@ -119,12 +121,12 @@ class UserModel extends Model
|
|
|
*/
|
|
|
public static function updateForRwaNum(int $uid, int $pid, string $score, string $action)
|
|
|
{
|
|
|
- if($action == '+'){
|
|
|
+ if ($action == '+') {
|
|
|
//更新自己Rwa
|
|
|
self::where('id', $uid)->setInc('rwa_num', $score);
|
|
|
//更新直推Rwa
|
|
|
return self::where('id', $pid)->setInc('direct_rwa', $score);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
|
|
|
//更新自己Rwa
|
|
|
self::where('id', $uid)->setDec('rwa_num', $score);
|
|
|
@@ -148,52 +150,52 @@ class UserModel extends Model
|
|
|
*/
|
|
|
public static function updateUserLevel(int $uid, int $parentId, $addressLevel)
|
|
|
{
|
|
|
- try {
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
if (!empty($parentId)) {
|
|
|
$model = new ProductOrder();
|
|
|
$paths = UserPathModel::where('user_id', $uid)->order('distance', 'asc')->column('parent_id');
|
|
|
foreach ($paths as $item) {
|
|
|
- $parent = self::where('id', $item)->find();
|
|
|
- //更新等级
|
|
|
- if ($parent->address_level < self::LevelFive) {
|
|
|
- //升级条件
|
|
|
- $level = ($parentId == $item)? self::LevelConta: self::LevelAll;
|
|
|
- //升级
|
|
|
- if($parent->address_level < self::LevelThre){
|
|
|
- $parentCount = self::where('parent_id', $item)->where('address_level', '>=', self::LevelOne)->count();
|
|
|
- if($parentCount >= $level[1]) $parent->address_level = self::LevelTwo;
|
|
|
- if($parentCount >= $level[2]) $parent->address_level = self::LevelThre;
|
|
|
-
|
|
|
- }elseif($parent->address_level == self::LevelThre){
|
|
|
- $parentCount = self::where('parent_id', $item)->where('address_level', '>=', self::LevelThre)->count();
|
|
|
- if($parentCount >= $level[3]) {
|
|
|
- $parent->address_level = self::LevelFour;
|
|
|
- //空投
|
|
|
- $welfare = config('super_welfare')[self::LevelFour];
|
|
|
- $model::setPopularNoAreaOrder($welfare['num'], 0, 0, $welfare['product_id'], $item, $model::Airdrop);
|
|
|
- }
|
|
|
- }elseif($parent->address_level == self::LevelFour){
|
|
|
- $parentCounts = self::where('parent_id', $item)->where('address_level', '>=', self::LevelFour)->count();
|
|
|
- if($parentCounts >= $level[4]) {
|
|
|
- $parent->address_level = self::LevelFive;
|
|
|
- //空投
|
|
|
- $welfare = config('super_welfare')[self::LevelFive];
|
|
|
- $model::setPopularNoAreaOrder($welfare['num'], 0, 0, $welfare['product_id'], $item, $model::Airdrop);
|
|
|
+ try {
|
|
|
+ $parent = self::where('id', $item)->find();
|
|
|
+ //更新等级
|
|
|
+ if ($parent->address_level < self::LevelFive) {
|
|
|
+ //升级条件
|
|
|
+ $level = ($parentId == $item) ? self::LevelConta : self::LevelAll;
|
|
|
+ //升级
|
|
|
+ if ($parent->address_level < self::LevelThre) {
|
|
|
+ $parentCount = self::where('parent_id', $item)->where('address_level', '>=', self::LevelOne)->count();
|
|
|
+ if ($parentCount >= $level[1]) $parent->address_level = self::LevelTwo;
|
|
|
+ if ($parentCount >= $level[2]) $parent->address_level = self::LevelThre;
|
|
|
+ } elseif ($parent->address_level == self::LevelThre) {
|
|
|
+ $parentCount = self::where('parent_id', $item)->where('address_level', '>=', self::LevelThre)->count();
|
|
|
+ if ($parentCount >= $level[3]) {
|
|
|
+ $parent->address_level = self::LevelFour;
|
|
|
+ //空投
|
|
|
+ $welfare = config('super_welfare')[self::LevelFour];
|
|
|
+ $model::setPopularNoAreaOrder($welfare['num'], 0, 0, $welfare['product_id'], $item, $model::Airdrop);
|
|
|
+ }
|
|
|
+ } elseif ($parent->address_level == self::LevelFour) {
|
|
|
+ $parentCounts = self::where('parent_id', $item)->where('address_level', '>=', self::LevelFour)->count();
|
|
|
+ if ($parentCounts >= $level[4]) {
|
|
|
+ $parent->address_level = self::LevelFive;
|
|
|
+ //空投
|
|
|
+ $welfare = config('super_welfare')[self::LevelFive];
|
|
|
+ $model::setPopularNoAreaOrder($welfare['num'], 0, 0, $welfare['product_id'], $item, $model::Airdrop);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ //更新直推领取人数
|
|
|
+ if ($parentId == $item) $parent->direct_super += self::Normal;
|
|
|
+ $parent->save();
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ Log::error($e->getMessage(), 'updateUserLevel,user_id'.$item);
|
|
|
}
|
|
|
- //更新直推领取人数
|
|
|
- if($parentId == $item) $parent->direct_super += self::Normal;
|
|
|
- $parent->save();
|
|
|
}
|
|
|
}
|
|
|
//
|
|
|
- return self::where('id', $uid)->update(['address_level'=> $addressLevel+1, 'is_super'=>self::Super]);
|
|
|
- } catch (\Exception $e) {
|
|
|
- Log::error($e->getMessage(),'updateUserLevel');
|
|
|
- }
|
|
|
+ return self::where('id', $uid)->update(['address_level' => $addressLevel + 1, 'is_super' => self::Super]);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -204,30 +206,29 @@ class UserModel extends Model
|
|
|
* 有3个是黄金地址的 就变成翡翠地址
|
|
|
* */
|
|
|
public static function updateUserAddresLevel(int $uid, int $parentId)
|
|
|
- {
|
|
|
+ {
|
|
|
$addressLevel = 0;
|
|
|
if (!empty($parentId)) {
|
|
|
$paths = UserPathModel::where('user_id', $uid)->order('distance', 'asc')->column('parent_id');
|
|
|
array_unshift($paths, $uid);
|
|
|
- foreach ($paths as $item)
|
|
|
- {
|
|
|
+ foreach ($paths as $item) {
|
|
|
//更新等级
|
|
|
$level = self::LevelAll;
|
|
|
$parentCount = self::where('parent_id', $item)->where('address_level', '>=', self::LevelOne)->count();
|
|
|
- if($parentCount >= $level[1]) $addressLevel = self::LevelTwo;
|
|
|
- if($parentCount >= $level[2]) $addressLevel = self::LevelThre;
|
|
|
+ if ($parentCount >= $level[1]) $addressLevel = self::LevelTwo;
|
|
|
+ if ($parentCount >= $level[2]) $addressLevel = self::LevelThre;
|
|
|
|
|
|
//是否升级翡翠
|
|
|
- if($addressLevel == self::LevelThre) {
|
|
|
+ if ($addressLevel == self::LevelThre) {
|
|
|
$parentCounts = self::where('parent_id', $item)->where('address_level', '>=', self::LevelThre)->count();
|
|
|
- if($parentCounts >= $level[3]) $addressLevel = self::LevelFour;
|
|
|
+ if ($parentCounts >= $level[3]) $addressLevel = self::LevelFour;
|
|
|
}
|
|
|
//彩宝
|
|
|
- if($addressLevel == self::LevelFour) {
|
|
|
+ if ($addressLevel == self::LevelFour) {
|
|
|
$parentCounts = self::where('parent_id', $item)->where('address_level', '>=', self::LevelFour)->count();
|
|
|
- if($parentCounts >= $level[4]) $addressLevel = self::LevelFive;
|
|
|
+ if ($parentCounts >= $level[4]) $addressLevel = self::LevelFive;
|
|
|
}
|
|
|
- if($addressLevel > 0) self::where('id', $item)->setField('address_level', $addressLevel);
|
|
|
+ if ($addressLevel > 0) self::where('id', $item)->setField('address_level', $addressLevel);
|
|
|
}
|
|
|
}
|
|
|
return $addressLevel;
|
|
|
@@ -239,12 +240,12 @@ class UserModel extends Model
|
|
|
$paths = UserPathModel::where('user_id', $uid)->where('distance', '<', 11)->order('distance', 'asc')->column('distance,parent_id');
|
|
|
if (!empty($paths)) {
|
|
|
$model = new LedgerWalletModel();
|
|
|
- foreach ($paths as $kk=>$item) {
|
|
|
- if($kk== 1){
|
|
|
+ foreach ($paths as $kk => $item) {
|
|
|
+ if ($kk == 1) {
|
|
|
$model->changeWalletAccount($item, $token, $pv, ledgerTokenChangeModel::Community, $uid);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
//间接推荐有效会员大于层级
|
|
|
- if(self::where('parent_id', $item)->where('rwa_num','>', 0)->count() >= $kk){
|
|
|
+ if (self::where('parent_id', $item)->where('rwa_num', '>', 0)->count() >= $kk) {
|
|
|
$model->changeWalletAccount($item, $token, $pv, ledgerTokenChangeModel::Community, $uid);
|
|
|
}
|
|
|
}
|