$top_sn,'is_sn' => 1])->findOrEmpty(); if(isset($params['invite_code']) && $params['invite_code'] != ''){ if ($top_User->isEmpty()) { throw new \Exception('邀请码不存在,请重新输入'); } } $mobile = $params['account']; if($params['login_way'] == 1){ $mobile = $params['country_code'] . ' ' .$params['account']; } $is_transfer = 0; $trade = ConfigService::get('website', 'trade'); if($trade['is_transfer'] != 0) $is_transfer = 1; $user = User::create([ 'sn' => $userSn, 'avatar' => $avatar, 'nickname' => '' . $userSn, 'account' => $params['account'], 'mobile' => $mobile, 'country_code' => $params['country_code'], 'password' => $password, 'password_pay' => $password_pay, 'channel' => $params['channel'], 'is_transfer' => $is_transfer, 'act_time' => time() ]); //创建用户关系 if (!$top_User->isEmpty()) { UtilsService::create_user_relation($user['id'],$top_User['id'],UtilsService::get_distribute_level()); } //创建系统消息记录 UtilsService::create_user_notice($user['id']); //创建初始会员等级 UtilsService::set_user_member($user['id']); //创建用户信息 UserInfo::create(['user_id' => $user['id']]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); return $e->getMessage(); } } /** * @notes 调整用户余额 * @param array $params * @return bool|string * @author BD * @date 2023/2/23 14:25 */ public static function adjustUserMoney(array $params) { Db::startTrans(); try { $user = User::find($params['user_id']); $action = $params['action'];//1增加余额2扣减余额3手动充值 $finance_action = 1;//1增加2减少 $change_type = 0;//变动类型 $params['num'] = floatval($params['num']); if (1 == $action) { //调整可用余额 $user->save(); $finance_action = 1; $change_type = 5; }elseif (2 == $action) { //调整可用余额 $user->save(); $finance_action = 2; $change_type = 6; }elseif (3 == $action){ $user->save(); $finance_action = 1; $change_type = 1; } //记录日志 UtilsService::user_finance_add( $user['id'], $change_type, $finance_action, $params['num'], '', $params['remark'], 1 //冻结 ); //用户资金修改 UtilsService::user_money_change($params['user_id'], $finance_action, $params['num'],'user_money'); //手动充值 if($action == 3){ $method = RechargeMethod::where(['id' => $params['method_id']])->findOrEmpty(); if($method->isEmpty()){ throw new \Exception('充值方式不存在'); } $order_amount_act = round($params['num'] * $method['rate'] , $method['precision']); //判断充值金额 $config = ConfigService::get('website', 'trade'); if ($params['num'] < $config['recharge_min']) { throw new \Exception('该充值方式最小充值金额:' . $config['recharge_min']); } $data = [ 'sn' => generate_sn(RechargeRecord::class, 'sn'), 'user_id' => $user['id'], 'method_id' => $params['method_id'], 'amount' => $params['num'], 'amount_act' => $order_amount_act, 'account' => $method['account'], 'rate' => $method['rate'], 'symbol' => $method['symbol'], 'status' => 1, ]; $record = RechargeRecord::create($data); //充值金额增加 UtilsService::user_money_change($params['user_id'], $finance_action, $params['num'],'total_recharge'); //充值活动奖励 UtilsService::activity_reward_add($params['user_id'],$params['num']); //更新充值记录用户余额 $user = User::where(['id' => $record['user_id']])->findOrEmpty(); if (!$user->isEmpty()) { RechargeRecord::update([ 'id' => $record['id'], 'user_money' => $user['user_money'] ]); //充值次数+1 User::update([ 'id' => $user['id'], 'recharge_num' => $user['recharge_num'] + 1 ]); } } Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); return $e->getMessage(); } } /** * @notes 修改密码 * @param array $params * @return User * @author BD * @date 2023/9/22 16:38 */ public static function changePwd(array $params) { $passwordSalt = Config::get('project.unique_identification'); $password = create_password($params['pwd'], $passwordSalt); return User::update([ 'id' => $params['id'], 'password' => $password ]); } /** * @notes 重置支付密码 * @param array $params * @return User * @author BD * @date 2023/9/22 16:38 */ public static function resetPayPwd(array $params) { $passwordSalt = Config::get('project.unique_identification'); $password_pay_ = ConfigService::get('login', 'password_pay'); $password_pay = create_password($password_pay_, $passwordSalt); return User::update([ 'id' => $params['id'], 'password_pay' => $password_pay ]); } /** * @notes 修改邮箱 * @param array $params * @return User * @author BD * @date 2023/9/22 16:38 */ public static function changeEmail(array $params) { $userInfo = UserInfo::where(['user_id' => $params['id']])->findOrEmpty(); return UserInfo::update([ 'id' => $userInfo['id'], 'email' => $params['email'], 'auth_email' => 1 ]); } /** * @notes 重置邮箱验证 * @param array $params * @return User * @author BD * @date 2023/9/22 16:38 */ public static function resetEmail(array $params) { $userInfo = UserInfo::where(['user_id' => $params['id']])->findOrEmpty(); return UserInfo::update([ 'id' => $userInfo['id'], 'email' => "", 'auth_email' => 0 ]); } /** * @notes 重置谷歌验证 * @param array $params * @return User * @author BD * @date 2023/9/22 16:38 */ public static function resetGoogle(array $params) { $userInfo = UserInfo::where(['user_id' => $params['id']])->findOrEmpty(); return UserInfo::update([ 'id' => $userInfo['id'], 'google_key' => "", 'google_qrcode' => "", 'auth_google' => 0 ]); } /** * @notes 更改状态 * @param array $params * @return bool * @author BD * @date 2023/9/22 16:38 */ public static function updateMemberStatus(array $params) { User::update([ 'id' => $params['id'], 'auto_member' => $params['auto_member'] ]); return true; } /** * @notes 更改状态 * @param array $params * @return bool * @author BD * @date 2023/9/22 16:38 */ public static function updateLhStatus(array $params) { User::update([ 'id' => $params['id'], 'is_lh' => $params['is_lh'] ]); return true; } /** * @notes 更改状态 * @param array $params * @return bool * @author BD * @date 2023/9/22 16:38 */ public static function updateTransferStatus(array $params) { User::update([ 'id' => $params['id'], 'is_transfer' => $params['is_transfer'] ]); return true; } /** * @notes 更改状态 * @param array $params * @return bool * @author BD * @date 2023/9/22 16:38 */ public static function updateSnStatus(array $params) { User::update([ 'id' => $params['id'], 'is_sn' => $params['is_sn'] ]); return true; } /** * @notes 更改状态 * @param array $params * @return bool * @author BD * @date 2023/9/22 16:38 */ public static function updateOpenStatus(array $params) { User::update([ 'id' => $params['id'], 'is_open' => $params['is_open'] ]); return true; } /** * @notes 更改状态 * @param array $params * @return bool * @author BD * @date 2023/9/22 16:38 */ public static function updateAgentStatus(array $params) { try { if($params['is_agent'] == 1){ $top_relation = UserRelation::where(['user_id' => $params['id']])->order('level desc')->findOrEmpty(); if (!$top_relation->isEmpty()) { throw new \Exception('顶级用户才可设置为代理'); } } $user = User::where(['id' => $params['id']])->findOrEmpty(); if($user['agent_id'] == 0){ $passwordSalt = Config::get('project.unique_identification'); $password = create_password($user['sn'].mt_rand(10, 100), $passwordSalt); $admin = Admin::create([ 'name' => 'agent_'.$user['sn'], 'account' => 'agent_'.$user['sn'], 'password' => $password, 'is_agent' => 1, 'multipoint_login' => 1, ]); AdminRole::create([ 'admin_id' => $admin['id'], 'role_id' => 6, ]); User::update([ 'id' => $params['id'], 'agent_id' => $admin['id'] ]); } User::update([ 'id' => $params['id'], 'is_agent' => $params['is_agent'] ]); return true; } catch (\Exception $e) { Db::rollback(); return $e->getMessage(); } } /** * @notes 修改代理名称 * @param array $params * @return User * @author BD * @date 2023/9/22 16:38 */ public static function changeAgentName(array $params) { try { $user = User::where(['id' => $params['id']])->findOrEmpty(); if($user['is_agent'] != 1){ throw new \Exception('代理才可设置代理名称'); } User::update([ 'id' => $params['id'], 'agent_name' => $params['name'] ]); return true; } catch (\Exception $e) { return $e->getMessage(); } } /** * @notes 发送站内信 * @param array $params * @return bool|string * @author BD * @date 2023/9/22 16:38 */ public static function sendNotice(array $params) { Db::startTrans(); try { $article= Article::where(['id' => $params['article_id']])->findOrEmpty(); if ($article->isEmpty()) { throw new \Exception('发送内容不存在'); } $accounts = $substr = explode(",", $params['accounts']); foreach ($accounts as $account) { $user = User::where(['account' => $account])->findOrEmpty(); if ($user->isEmpty()) { continue; } UserNotice::create([ 'user_id' => $user['id'], 'article_id' => $article['id'], 'title' => $article['title'], 'content' => $article['content'], 'langs' => $article['langs'], ]); } Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); return $e->getMessage(); } } /** * @notes 彩金赠送 * @param array $params * @return bool|string * @author BD * @date 2023/9/22 16:38 */ public static function caijin(array $params) { Db::startTrans(); try { $accounts = $substr = explode(",", $params['accounts']); $money = $params['money']; if($money <= 0){ throw new \Exception('请输入正确的金额'); } foreach ($accounts as $account) { $user = User::where(['account' => $account])->findOrEmpty(); if ($user->isEmpty()) { continue; } //记录日志 UtilsService::user_finance_add( $user['id'], 4, 1, $money, '', $params['remark'], 1 //冻结 ); //用户资金修改 UtilsService::user_money_change($user['id'], 1, $money,'user_money'); } Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); return $e->getMessage(); } } /** * @notes 备注 * @param array $params * @return bool * @author bd * @date 2024/01/31 14:07 */ public static function remark(array $params): bool { Db::startTrans(); try { $record = User::find($params['id']); if ($record->isEmpty()) { throw new \Exception('用户不存在'); } //代理操作需查询是否有权限 $user = User::where(['agent_id' => $params['admin_id']])->findOrEmpty(); if (!$user->isEmpty()) { $userRelation = UserRelationAgent::where(['user_id' => $record['id'],'parent_id' => $user['id']])->findOrEmpty(); if ($userRelation->isEmpty()) { throw new \Exception('参数异常'); } } User::update([ 'id' => $params['id'], 'remark2' => $params['content'] ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } }