|
@@ -598,6 +598,39 @@ class User extends BaseModel
|
|
|
// return self::where('uid', $uid)->update(['spread_uid' => $spreadUid, 'spread_time' => time()]);
|
|
// return self::where('uid', $uid)->update(['spread_uid' => $spreadUid, 'spread_time' => time()]);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 检查数字是否包含4
|
|
|
|
|
+ * @param $number
|
|
|
|
|
+ * @return bool
|
|
|
|
|
+ */
|
|
|
|
|
+ protected static function hasDigitFour($number)
|
|
|
|
|
+ {
|
|
|
|
|
+ return strpos((string)$number, '4') !== false;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 生成不包含数字4的下一个uid
|
|
|
|
|
+ * @param int|null $startUid
|
|
|
|
|
+ * @return int
|
|
|
|
|
+ */
|
|
|
|
|
+ protected static function getNextUidWithoutFour($startUid = null)
|
|
|
|
|
+ {
|
|
|
|
|
+ if ($startUid === null) {
|
|
|
|
|
+ $startUid = WechatUser::max('uid') ?: 0;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $uid = $startUid + 1;
|
|
|
|
|
+
|
|
|
|
|
+ while (self::hasDigitFour($uid)) {
|
|
|
|
|
+ $uid++;
|
|
|
|
|
+ if ($uid - $startUid > 1000) {
|
|
|
|
|
+ return $startUid + 1;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return $uid;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 判断上下级关系是否存在
|
|
* 判断上下级关系是否存在
|
|
|
* @param $uid
|
|
* @param $uid
|
|
@@ -650,8 +683,8 @@ class User extends BaseModel
|
|
|
$data['country'] = '';
|
|
$data['country'] = '';
|
|
|
$data['is_promoter'] = $storeBrokerageStatu != 1 ? 1 : 0;
|
|
$data['is_promoter'] = $storeBrokerageStatu != 1 ? 1 : 0;
|
|
|
self::beginTrans();
|
|
self::beginTrans();
|
|
|
|
|
+ $data['uid'] = self::getNextUidWithoutFour();
|
|
|
$res2 = WechatUser::create($data);
|
|
$res2 = WechatUser::create($data);
|
|
|
- $data['uid'] = $res2->uid;
|
|
|
|
|
$res1 = self::create($data);
|
|
$res1 = self::create($data);
|
|
|
$res = $res1 && $res2 && UserSpread::setSpread($data['uid'], $spread);
|
|
$res = $res1 && $res2 && UserSpread::setSpread($data['uid'], $spread);
|
|
|
self::checkTrans($res);
|
|
self::checkTrans($res);
|