$userId])->field($field) ->findOrEmpty(); $user['channel'] = UserTerminalEnum::getTermInalDesc($user['channel']); $user->sex = $user->getData('sex'); return $user->toArray(); } /** * @notes 更新用户信息 * @param array $params * @return User * @author 段誉 * @date 2022/9/22 16:38 */ public static function setUserInfo(array $params) { return User::update([ 'id' => $params['id'], $params['field'] => $params['value'] ]); } /** * @notes 调整用户余额 * @param array $params * @return bool|string * @author 段誉 * @date 2023/2/23 14:25 */ public static function adjustUserMoney(array $params) { Db::startTrans(); try { $user = User::find($params['user_id']); if (AccountLogEnum::INC == $params['action']) { //调整可用余额 $user->user_money += $params['num']; $user->save(); //记录日志 AccountLogLogic::add( $user->id, AccountLogEnum::UM_INC_ADMIN, AccountLogEnum::INC, $params['num'], '', $params['remark'] ?? '' ); } else { $user->user_money -= $params['num']; $user->save(); //记录日志 AccountLogLogic::add( $user->id, AccountLogEnum::UM_DEC_ADMIN, AccountLogEnum::DEC, $params['num'], '', $params['remark'] ?? '' ); } Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); return $e->getMessage(); } } /** * @notes 调整用户账户(余额/积分) * @param array $params * @return bool|string */ public static function adjustUserAccount(array $params) { Db::startTrans(); try { $user = User::find($params['user_id']); if (empty($user)) { throw new \Exception('用户不存在'); } $type = $params['type']; // money-余额 points-积分 $action = $params['action']; $num = $params['num']; $remark = $params['remark'] ?? ''; if ($type == 'money') { if ($action == AccountLogEnum::INC) { $user->user_money += $num; $changeType = AccountLogEnum::UM_INC_ADMIN; } else { if ($user->user_money < $num) { throw new \Exception('用户可用余额仅剩' . $user->user_money); } $user->user_money -= $num; $changeType = AccountLogEnum::UM_DEC_ADMIN; } } else { if ($action == AccountLogEnum::INC) { $user->user_points += $num; $changeType = AccountLogEnum::UP_INC_ADMIN; } else { if ($user->user_points < $num) { throw new \Exception('用户可用积分仅剩' . $user->user_points); } $user->user_points -= $num; $changeType = AccountLogEnum::UP_DEC_ADMIN; } } $user->save(); AccountLogLogic::add( $user->id, $changeType, $action, $num, '', $remark ); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); return $e->getMessage(); } } }