MemberRelation.php 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. *
  5. * User: king/QQ:995265288
  6. * Date: 2018/7/23 下午2:16
  7. * Email: livsyitian@163.com
  8. */
  9. namespace app\common\models;
  10. use app\common\events\member\MemberCreateRelationEvent;
  11. use app\common\events\member\MemberFirstChilderenEvent;
  12. use app\common\events\member\MemberNewOfflineEvent;
  13. use app\common\events\member\MemberRelationEvent;
  14. use app\common\events\MessageEvent;
  15. use app\common\models\member\MemberInvitationCodeLog;
  16. use app\common\models\notice\MessageTemp;
  17. use app\common\modules\member\MemberRelationRepository;
  18. use app\common\services\MessageService;
  19. class MemberRelation extends BaseModel
  20. {
  21. static protected $needLog = true;
  22. public $table = 'yz_member_relation';
  23. public $timestamps = false;
  24. private static $orderId;
  25. /**
  26. * 可以批量赋值的属性
  27. *
  28. * @var array
  29. */
  30. public $fillable = ['uniacid', 'status', 'become', 'become_order', 'become_child', 'become_ordercount',
  31. 'become_moneycount', 'become_goods_id', 'become_info', 'become_check', 'become_slefmoney','maximum_number','reward_points'];
  32. /**
  33. * 不可批量赋值的属性
  34. *
  35. * @var array
  36. */
  37. public $guarded = [];
  38. /**
  39. * 获取会员关系链数据
  40. * @return MemberRelation
  41. */
  42. public static function getSetInfo()
  43. {
  44. $memberRelation = self::uniacid();
  45. // todo 优化重复查询问题,返回一个元素的集合是为了不影响历史代码的调用方式的,
  46. // $memberRelation = MemberRelationRepository::all()->where('uniacid',\YunShop::app()->uniacid);
  47. // $memberRelation = $memberRelation->map(function ($item) {
  48. // return new MemberRelation($item);
  49. // });
  50. return $memberRelation;
  51. }
  52. /**
  53. * 用户是否达到发展下线条件
  54. *
  55. * @return bool
  56. */
  57. public static function checkAgent($uid)
  58. {
  59. $info = self::getSetInfo()->first();
  60. if (empty($info)) {
  61. return [];
  62. }
  63. $member_info = MemberShopInfo::getMemberShopInfo($uid);
  64. if (!empty($member_info)) {
  65. $data = $member_info->toArray();
  66. }
  67. if ($data['is_agent'] == 0) {
  68. switch ($info['become']) {
  69. case 0:
  70. $isAgent = true;
  71. break;
  72. case 2:
  73. $cost_num = Order::getCostTotalNum($uid);
  74. if ($cost_num >= $info['become_ordercount']) {
  75. $isAgent = true;
  76. }
  77. break;
  78. case 3:
  79. $cost_price = Order::getCostTotalPrice($uid);
  80. if ($cost_price >= $info['become_moneycount']) {
  81. $isAgent = true;
  82. }
  83. break;
  84. case 4:
  85. $isAgent = self::checkOrderGoods($info['become_goods_id'], $uid);
  86. break;
  87. case 5:
  88. $sales_money = \Yunshop\SalesCommission\models\SalesCommission::sumDividendAmountByUid($uid);
  89. if ($sales_money >= $info['become_selfmoney']) {
  90. $isAgent = true;
  91. }
  92. break;
  93. default:
  94. $isAgent = false;
  95. }
  96. }
  97. if ($isAgent) {
  98. if ($info['become_check'] == 0) {
  99. $member_info->is_agent = 1;
  100. $member_info->status = 2;
  101. $member_info->save();
  102. }
  103. }
  104. }
  105. /**
  106. * 设置用户关系链
  107. *
  108. * @return void
  109. */
  110. public function setAgent()
  111. {
  112. $info = self::getSetInfo()->first()->toArray();
  113. $member_info = MemberShopInfo::getMemberShopInfo(\YunShop::app()->getMemberId())->first();
  114. if (!empty($member_info)) {
  115. $data = $member_info->toArray();
  116. }
  117. $isAgent = false;
  118. if ($info['status'] == 1 && $data['is_agent'] == 0) {
  119. $mid = \app\common\models\Member::getMid();
  120. if ($mid != 0 && $data['member_id'] != $mid) {
  121. $member_info->parent_id = $mid;
  122. $member_info->save();
  123. }
  124. }
  125. }
  126. /**
  127. * 检查用户订单中是否包含指定商品
  128. *
  129. * @param $goods_id
  130. * @return bool
  131. */
  132. public static function checkOrderGoods($goods_id, $uid, $status)
  133. {
  134. $goods_ids = explode(',',$goods_id);
  135. $list = OrderGoods::uniacid()
  136. ->where('uid',$uid)
  137. ->whereIn('goods_id', $goods_ids)
  138. ->whereHas('hasOneOrder',function ($query) use($status) {
  139. $query->where('status', '>=', $status);
  140. })
  141. ->get();
  142. if ($list->isEmpty()) {
  143. return false;
  144. }
  145. return true;
  146. }
  147. /**
  148. * 获取成为下线条件
  149. *
  150. * @return int
  151. */
  152. public function getChildAgentInfo()
  153. {
  154. $info = self::getSetInfo()->first();
  155. if (!empty($info)) {
  156. return $info->become_child;
  157. }
  158. }
  159. /**
  160. * 成为下线
  161. *
  162. * @param $mid
  163. * @param MemberShopInfo $model
  164. */
  165. private function changeChildAgent($mid, MemberShopInfo $model)
  166. {
  167. \Log::debug(sprintf('成为下线mid-%d', $mid));
  168. $member_info = MemberShopInfo::getMemberShopInfo($mid);
  169. if ($member_info && $member_info->is_agent) {
  170. $model->parent_id = $mid;
  171. $model->child_time = time();
  172. if ($model->save()) {
  173. return 1;
  174. } else {
  175. return 0;
  176. }
  177. }
  178. }
  179. /**
  180. * 检查是否能成为下线
  181. *
  182. * 首次点击分享连接 / 无条件发展下线权利
  183. *
  184. * 触发 入口
  185. *
  186. * @param $mid
  187. * @param MemberShopInfo $user
  188. */
  189. public function becomeChildAgent($mid, $model)
  190. {
  191. $set = self::getSetInfo()->first();
  192. if (empty($set) || $set->status == 0) {
  193. return;
  194. }
  195. $member = MemberShopInfo::getMemberShopInfo($model->member_id);
  196. if (empty($member)) {
  197. return;
  198. }
  199. if ($member->is_agent == 1) {
  200. return;
  201. }
  202. $parent = null;
  203. $become_child = intval($set->become_child);
  204. $become_check = intval($set->become_check);
  205. if (!empty($mid)) {
  206. $parent = MemberShopInfo::getMemberShopInfo($mid);
  207. } else {
  208. if ($member->inviter == 0 && $member->parent_id == 0) {
  209. if (empty($become_child)) {
  210. $model->child_time = time();
  211. $model->inviter = 1;
  212. \Log::debug(sprintf('会员id-%d确定上线id-%d', $model->member_id, $mid));
  213. $model->save();
  214. }
  215. }
  216. }
  217. $parent_is_agent = !empty($parent) && $parent->is_agent == 1 && $parent->status == 2;
  218. $curr_parent_id = $model->parent_id;
  219. if ($parent_is_agent && !$member->inviter && $member->member_id != $parent->member_id) {
  220. $this->changeChildAgent($mid, $model);
  221. if (empty($become_child)) {
  222. $model->inviter = 1;
  223. \Log::debug(sprintf('会员id-%d确定上线id-%d', $model->member_id, $mid));
  224. //notice
  225. self::sendAgentNotify($member->member_id, $mid);
  226. event(new MemberNewOfflineEvent($member->member_id,$mid, false));//新增下线事件
  227. } else {
  228. \Log::debug(sprintf('会员id-%d未确定上线id-%d', $model->member_id, $mid));
  229. $model->inviter = 0;
  230. }
  231. $model->save();
  232. if ($curr_parent_id != $model->parent_id) {
  233. event(new MemberCreateRelationEvent($model, $mid));
  234. event(new MemberFirstChilderenEvent(['member_id' => $mid]));
  235. }
  236. }
  237. if (empty($set->become) ) {
  238. $model->is_agent = 1;
  239. if ($become_check == 0) {
  240. $model->status = 2;
  241. $model->agent_time = time();
  242. if ($model->inviter == 0) {
  243. $model->inviter = 1;
  244. }
  245. } else {
  246. $model->status = 1;
  247. $model->apply_time = time();
  248. }
  249. if ($model->save()) {
  250. self::setRelationInfo($model, $curr_parent_id);
  251. }
  252. }
  253. }
  254. /**
  255. * 成为下线条件 首次下单
  256. *
  257. * 触发 确认订单
  258. *
  259. * @return void
  260. */
  261. public static function checkOrderConfirm($uid)
  262. {
  263. $set = self::getSetInfo()->first();
  264. if (empty($set) || $set->status == 0) {
  265. return;
  266. }
  267. $member = MemberShopInfo::getMemberShopInfo($uid);
  268. if (empty($member)) {
  269. return;
  270. }
  271. $curr_parent_id = $member->parent_id;
  272. $become_child = intval($set->become_child);
  273. if ($member->parent_id == 0) {
  274. \Log::debug(sprintf('会员上线ID进入时1-: %d', $member->parent_id));
  275. if ($become_child == 1 && empty($member->inviter)) {
  276. $member->child_time = time();
  277. $member->inviter = 1;
  278. $member->save();
  279. }
  280. } else {
  281. $parent = MemberShopInfo::getMemberShopInfo($member->parent_id);
  282. \Log::debug(sprintf('会员上线ID进入时2-: %d', $member->parent_id));
  283. $parent_is_agent = !empty($parent) && $parent->is_agent == 1 && $parent->status == 2;
  284. if ($parent_is_agent && $become_child == 1 && !$member->inviter && $member->member_id != $parent->member_id) {
  285. \Log::debug(sprintf('会员赋值 parent_id: %d', $parent->member_id));
  286. $member->parent_id = $parent->member_id;
  287. $member->child_time = time();
  288. $member->inviter = 1;
  289. $member->save();
  290. if ($curr_parent_id != $member->parent_id) {
  291. event(new MemberCreateRelationEvent($member, $member->parent_id));
  292. }
  293. //message notice
  294. self::sendAgentNotify($member->member_id, $parent->member_id);
  295. event(new MemberNewOfflineEvent($member->member_id,$parent->member_id, false));//新增下线事件
  296. }
  297. }
  298. if ($curr_parent_id != $member->parent_id) {
  299. event(new MemberFirstChilderenEvent(['member_id' => $uid]));
  300. }
  301. }
  302. /**
  303. * @name 发展下线资格 付款后 成为下线条件 首次付款触发 支付回调
  304. * @author
  305. * @param $uid
  306. * @param int $orderId
  307. */
  308. public static function checkOrderPay($uid, $orderId = 0)
  309. {
  310. // Yy edit:2019-03-06
  311. self::$orderId = $orderId;
  312. $set = self::getSetInfo()->first();
  313. $become_check = intval($set->become_check);
  314. \Log::debug('付款后');
  315. if (empty($set) || $set->status == 0) {
  316. return;
  317. }
  318. $member = MemberShopInfo::getMemberShopInfo($uid);
  319. if (empty($member)) {
  320. return;
  321. }
  322. \Log::debug(sprintf('会员上线-%d', $member->parent_id));
  323. $become_child = intval($set->become_child);
  324. $curr_parent_id = $member->parent_id;
  325. $parent = MemberShopInfo::getMemberShopInfo($member->parent_id);
  326. $parent_is_agent = !empty($parent) && $parent->is_agent == 1 && $parent->status == 2;
  327. //成为下线
  328. if ($member->parent_id == 0) {
  329. if ($become_child == 2 && empty($member->inviter)) {
  330. $member->child_time = time();
  331. $member->inviter = 1;
  332. $member->save();
  333. }
  334. } else {
  335. if ($parent_is_agent && $become_child == 2 && !$member->inviter && $member->member_id != $parent->member_id) {
  336. $member->parent_id = $parent->member_id;
  337. $member->child_time = time();
  338. $member->inviter = 1;
  339. $member->save();
  340. if ($curr_parent_id != $member->parent_id) {
  341. event(new MemberCreateRelationEvent($member, $member->parent_id));
  342. }
  343. //message notice
  344. self::sendAgentNotify($member->member_id, $parent->member_id);
  345. event(new MemberNewOfflineEvent($member->member_id,$parent->member_id, false));//新增下线事件
  346. }
  347. }
  348. //发展下线资格
  349. $isagent = $member->is_agent == 1 && $member->status == 2;
  350. \Log::debug('会员成为推广员',$isagent);
  351. \Log::debug('会员成为推广员设置',$set);
  352. if (!$isagent && empty($set->become_order)) {
  353. $become_term = unserialize($set->become_term);
  354. //或
  355. if ($set->become == 2) {
  356. self::eitherCondition($become_term, $set, $uid, $member, $become_check, 1);
  357. }
  358. //与
  359. if ($set->become == 3) {
  360. self::andCondition($become_term, $set, $uid, $member, $become_check, 1);
  361. }
  362. }
  363. }
  364. /**
  365. * @name 发现下线资格 完成后 触发 订单完成
  366. * @author
  367. * @param $uid
  368. * @param int $orderId
  369. */
  370. public static function checkOrderFinish($uid, $orderId = 0)
  371. {
  372. // Yy edit:2019-03-06
  373. self::$orderId = $orderId;
  374. $set = self::getSetInfo()->first();
  375. $become_check = intval($set->become_check);
  376. \Log::debug('订单完成');
  377. if (empty($set)|| $set->status == 0) {
  378. return;
  379. }
  380. \Log::debug('关系链设置');
  381. $member = MemberShopInfo::getMemberShopInfo($uid);
  382. if (empty($member)) {
  383. return;
  384. }
  385. $isagent = $member->is_agent == 1 && $member->status == 2;
  386. \Log::debug('会员成为推广员',$isagent);
  387. \Log::debug('会员成为推广员设置',$set);
  388. if (!$isagent && $set->become_order == 1) {
  389. $become_term = unserialize($set->become_term);
  390. //如果设置为空时添加默认值,防止程序出错
  391. if (empty($set->become) && !empty($become_term)) {
  392. $set->become = 2;
  393. }
  394. //或
  395. if ($set->become == 2) {
  396. self::eitherCondition($become_term, $set, $uid, $member, $become_check, 3);
  397. }
  398. //与
  399. if ($set->become == 3) {
  400. self::andCondition($become_term, $set, $uid, $member, $become_check,3);
  401. }
  402. }
  403. }
  404. public static function eitherCondition($become_term, $set, $uid, $member, $become_check, $status)
  405. {
  406. $curr_parent_id = $member->parent_id;
  407. //判断商品
  408. if ($become_term[4] == 4 && !empty($set->become_goods_id)) {
  409. $result = self::checkOrderGoods($set->become_goods_id, $uid, $status);
  410. if ($result) {
  411. $member->is_agent = 1;
  412. if ($become_check == 0) {
  413. $member->status = 2;
  414. $member->agent_time = time();
  415. $member->apply_time = time();
  416. if ($member->inviter == 0) {
  417. $member->inviter = 1;
  418. }
  419. } else {
  420. $member->status = 1;
  421. $member->agent_time = time();
  422. $member->apply_time = time();
  423. }
  424. if ($member->save()) {
  425. self::setRelationInfo($member, $curr_parent_id);
  426. return;
  427. }
  428. }
  429. }
  430. //消费达多少次
  431. if ($become_term[2] == 2) {
  432. $ordercount = Order::getCostTotalNum($member->member_id);
  433. \Log::debug('用户:'. $ordercount);
  434. \Log::debug('系统:'. intval($set->become_ordercount));
  435. $can = $ordercount >= intval($set->become_ordercount);
  436. if ($can) {
  437. $member->is_agent = 1;
  438. if ($become_check == 0) {
  439. $member->status = 2;
  440. $member->agent_time = time();
  441. $member->apply_time = time();
  442. if ($member->inviter == 0) {
  443. $member->inviter = 1;
  444. }
  445. } else {
  446. $member->status = 1;
  447. $member->agent_time = time();
  448. $member->apply_time = time();
  449. }
  450. if ($member->save()) {
  451. self::setRelationInfo($member, $curr_parent_id);
  452. return;
  453. }
  454. }
  455. }
  456. //消费达多少钱
  457. if ($become_term[3] == 3) {
  458. $moneycount = Order::getCostTotalPrice($member->member_id);
  459. $can = $moneycount >= floatval($set->become_moneycount);
  460. if ($can) {
  461. $member->is_agent = 1;
  462. if ($become_check == 0) {
  463. $member->status = 2;
  464. $member->agent_time = time();
  465. $member->apply_time = time();
  466. if ($member->inviter == 0) {
  467. $member->inviter = 1;
  468. }
  469. } else {
  470. $member->status = 1;
  471. $member->agent_time = time();
  472. $member->apply_time = time();
  473. }
  474. if ($member->save()) {
  475. self::setRelationInfo($member, $curr_parent_id);
  476. return;
  477. }
  478. }
  479. }
  480. //销售佣金
  481. if ($become_term[5] == 5) {
  482. $can = false;
  483. $sales_money = \Yunshop\SalesCommission\models\SalesCommission::sumDividendAmountByUid($uid);
  484. if ($sales_money >= $set->become_selfmoney) {
  485. $can = true;
  486. }
  487. if ($can) {
  488. $member->is_agent = 1;
  489. if ($become_check == 0) {
  490. $member->status = 2;
  491. $member->agent_time = time();
  492. $member->apply_time = time();
  493. if ($member->inviter == 0) {
  494. $member->inviter = 1;
  495. }
  496. } else {
  497. $member->status = 1;
  498. $member->agent_time = time();
  499. $member->apply_time = time();
  500. }
  501. if ($member->save()) {
  502. self::setRelationInfo($member, $curr_parent_id);
  503. return;
  504. }
  505. }
  506. }
  507. }
  508. public static function andCondition($become_term, $set, $uid, $member, $become_check, $status)
  509. {
  510. $curr_parent_id = $member->parent_id;
  511. //判断商品
  512. if ($become_term[4] == 4 && !empty($set->become_goods_id)) {
  513. $result = self::checkOrderGoods($set->become_goods_id, $uid, $status);
  514. if (!$result) {
  515. return;
  516. }
  517. }
  518. //判断消费达多少次
  519. if ($become_term[2] == 2) {
  520. $ordercount = Order::getCostTotalNum($member->member_id);
  521. \Log::debug('用户:'. $ordercount);
  522. \Log::debug('系统:'. intval($set->become_ordercount));
  523. $can = $ordercount >= intval($set->become_ordercount);
  524. if (!$can) {
  525. return;
  526. }
  527. }
  528. //消费达多少元
  529. if ($become_term[3] == 3) {
  530. $moneycount = Order::getCostTotalPrice($member->member_id);
  531. $can = $moneycount >= floatval($set->become_moneycount);
  532. if (!$can) {
  533. return;
  534. }
  535. }
  536. //销售佣金
  537. if ($become_term[5] == 5) {
  538. $can = false;
  539. $sales_money = \Yunshop\SalesCommission\models\SalesCommission::sumDividendAmountByUid($uid);
  540. if ($sales_money >= $set->become_selfmoney) {
  541. $can = true;
  542. }
  543. if (!$can) {
  544. return;
  545. }
  546. }
  547. //以上条件全部满足则升级
  548. $member->is_agent = 1;
  549. if ($become_check == 0) {
  550. $member->status = 2;
  551. $member->agent_time = time();
  552. $member->apply_time = time();
  553. if ($member->inviter == 0) {
  554. $member->inviter = 1;
  555. }
  556. } else {
  557. $member->status = 1;
  558. $member->agent_time = time();
  559. $member->apply_time = time();
  560. }
  561. if ($member->save()) {
  562. self::setRelationInfo($member, $curr_parent_id);
  563. }
  564. }
  565. /**
  566. * 获得推广权限通知
  567. *
  568. * @param $uid
  569. */
  570. public static function sendGeneralizeNotify($uid)
  571. {
  572. \Log::debug('获得推广权限通知');
  573. $member = Member::getMemberByUid($uid)->with('hasOneFans')->first();
  574. // Yy edit:2019-03-06
  575. if (!isset(self::$orderId)) {
  576. self::$orderId = 0;
  577. }
  578. // Yy edit:2019-03-06
  579. event(new MemberRelationEvent($member, self::$orderId));
  580. $member->follow = $member->hasOneFans->follow;
  581. $member->openid = $member->hasOneFans->openid;
  582. $uniacid = \YunShop::app()->uniacid ?: $member->uniacid;
  583. self::generalizeMessage($member, $uniacid);
  584. }
  585. public static function generalizeMessage($member, $uniacid)
  586. {
  587. $noticeMember = Member::getMemberByUid($member->uid)->with('hasOneFans')->first();
  588. if (!$noticeMember->hasOneFans->openid) {
  589. return;
  590. }
  591. $temp_id = \Setting::get('relation_base')['member_agent'];
  592. if (!$temp_id) {
  593. return;
  594. }
  595. $params = [
  596. ['name' => '昵称', 'value' => $member->nickname],
  597. ['name' => '时间', 'value' => date('Y-m-d H:i', time())]
  598. ];
  599. $msg = MessageTemp::getSendMsg($temp_id, $params);
  600. if (!$msg) {
  601. return;
  602. }
  603. event(new MessageEvent($member->uid, $temp_id, $params, $url=''));
  604. }
  605. /**
  606. * 新增下线通知
  607. *
  608. * @param $uid
  609. */
  610. public static function sendAgentNotify($uid, $puid)
  611. {
  612. \Log::debug('新增下线通知');
  613. $parent = Member::getMemberByUid($puid)->with('hasOneFans')->first();
  614. $parent->follow = $parent->hasOneFans->follow;
  615. $parent->openid = $parent->hasOneFans->openid;
  616. $member = Member::getMemberByUid($uid)->first();
  617. $uniacid = \YunShop::app()->uniacid ?: $parent->uniacid;
  618. if (app('plugins')->isEnabled('instation-message')) {
  619. //开启了站内消息插件
  620. event(new \Yunshop\InstationMessage\event\MemberRelationEvent($puid,$uid,$uniacid));
  621. }
  622. self::agentMessage($parent, $member, $uniacid);
  623. }
  624. public static function agentMessage($parent, $member, $uniacid)
  625. {
  626. $noticeMember = Member::getMemberByUid($parent->uid)->with('hasOneFans')->first();
  627. if (!$noticeMember->hasOneFans->openid) {
  628. return;
  629. }
  630. $temp_id = \Setting::get('relation_base')['member_new_lower'];
  631. if (!$temp_id) {
  632. return;
  633. }
  634. $params = [
  635. ['name' => '昵称', 'value' => $parent->nickname],
  636. ['name' => '时间', 'value' => date('Y-m-d H:i', time())],
  637. ['name' => '下级昵称', 'value' => $member->nickname]
  638. ];
  639. event(new MessageEvent($parent->uid, $temp_id, $params, $url=''));
  640. }
  641. private static function setRelationInfo($member, $curr_parent_id)
  642. {
  643. if ($member->is_agent == 1 && $member->status == 2) {
  644. if ($curr_parent_id != $member->parent_id) {
  645. Member::setMemberRelation($member->member_id,$member->parent_id);
  646. }
  647. //message notice
  648. self::sendGeneralizeNotify($member->member_id);
  649. }
  650. }
  651. public static function rewardPoint($parent_id, $member_id)
  652. {
  653. $memberRelation = new \app\common\services\member\MemberRelation();
  654. $memberRelation->rewardPoint($parent_id, $member_id);
  655. }
  656. }