123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- <?php
- namespace Combine\Lib;
- use Dever;
- class Core
- {
-
- public function handle($uid, $drop)
- {
- $table = array
- (
- 'passport/app',
- 'passport/wechat',
- 'act/feedback',
- 'act/comment',
- 'act/form_id',
- 'act/invite',
- 'act/like',
- 'act/live_comment',
- 'act/live_note',
-
- 'act/share',
- 'act/share_reflux',
- 'act/subscribe',
- 'act/watch',
-
- 'source/user',
- 'score/action_log',
-
-
- 'score/user_log',
- 'message/inbox',
- 'invite/relation',
-
- 'journal/order',
- 'act/order',
- );
- if (is_string($drop)) {
- $drop = explode(',', $drop);
- }
- foreach ($drop as $k => $v) {
- if ($v == $uid) {
- continue;
- }
- foreach ($table as $k1 => $v1) {
- Dever::db($v1)->updates(array('set_uid' => $uid, 'option_uid' => $v));
- }
-
- $this->other($uid, $v);
-
- $this->score($uid, $v, 'score/user');
- $this->score($uid, $v, 'act/score');
- }
- }
- private function other($uid, $drop_uid)
- {
- Dever::db('code/info')->updates(array('set_uid' => $uid, 'option_uid' => $drop_uid));
- Dever::db('code/info')->updates(array('set_create_uid' => $uid, 'option_create_uid' => $drop_uid));
- $journal = Dever::db('journal/info')->state();
- if ($journal) {
- foreach ($journal as $k => $v) {
- Dever::setInput('set_product_id', $v['id']);
- Dever::db('code/info')->updates(array('set_uid' => $uid, 'option_uid' => $drop_uid));
- Dever::db('code/info')->updates(array('set_create_uid' => $uid, 'option_create_uid' => $drop_uid));
- }
- }
-
- Dever::db('invite/relation')->updates(array('set_to_uid' => $uid, 'option_to_uid' => $drop_uid));
- }
- private function score($uid, $drop_uid, $table, $col = 'score')
- {
- $db = Dever::db($table);
- $user_score = $db->one(array('uid' => $uid));
- $user_drop_score = $db->one(array('uid' => $drop_uid));
- if ($user_score && $user_drop_score) {
- $score = $user_score[$col] + $user_drop_score[$col];
- $update['where_id'] = $user_score['id'];
- $update['score'] = $score;
- $db->update($update);
-
- $db->delete($user_drop_score['id']);
- } elseif (!$user_score && $user_drop_score) {
- $score = $user_drop_score[$col];
- $update['where_id'] = $user_drop_score['id'];
- $update['uid'] = $uid;
- $update['score'] = $score;
- $db->update($update);
- }
- }
- }
|