Hispanic Business TVHispanic Business TV
  • Featured
  • Popular Cities
    • Atlanta
    • Boston
    • Chicago
    • Dallas
    • Denver
    • Houston
    • Las Vegas
    • Los Angeles
    • Miami
    • New York
    • Phoenix
    • Salt Lake City
    • San Antonio
  • Business
    • HBTV Toolbox
      • Social Media Management
  • Politics
  • HBTV Sports
    • MLB
    • MMA
    • NCAAF
    • NBA
    • NCAAM
    • NFL
    • NHL
  • Entertainment
  • Living
    • Culture
    • Latino Lifestyle
    • Education
    • Cannabis
Reading: Texas officials order closure of San Antonio massage parlor over human-trafficking concerns | San Antonio
Share
Sign In
Notification Show More
Font ResizerAa
Font ResizerAa
Hispanic Business TVHispanic Business TV
Search
  • Featured
  • Popular Cities
    • Atlanta
    • Boston
    • Chicago
    • Dallas
    • Denver
    • Houston
    • Las Vegas
    • Los Angeles
    • Miami
    • New York
    • Phoenix
    • Salt Lake City
    • San Antonio
  • Business
    • HBTV Toolbox
  • Politics
  • HBTV Sports
    • MLB
    • MMA
    • NCAAF
    • NBA
    • NCAAM
    • NFL
    • NHL
  • Entertainment
  • Living
    • Culture
    • Latino Lifestyle
    • Education
    • Cannabis
Have an existing account? Sign In
Follow US
© 2024 hispanicbusinesstv All Rights Reserved.
Hispanic Business TV > San Antonio > Texas officials order closure of San Antonio massage parlor over human-trafficking concerns | San Antonio
San Antonio

Texas officials order closure of San Antonio massage parlor over human-trafficking concerns | San Antonio

HBTV
Last updated: July 26, 2024 8:02 pm
HBTV
Share
8 Min Read
Police Line Crime Scene 2498847226.jpg
SHARE

State officials ordered San Massage Spa in Castle Hills to shut down for six months.


click to enlarge

Shutterstock

Texas Department of Licensing and Regulation said they found reason to believe human trafficking took place at a San Antonio massage business.

The Texas Department of Licensing and Regulation has ordered a six-month shutdown for a San Antonio massage business suspected human trafficking, officials with the state agency said Thursday.

During an inspection last month of San Massage Spa in Castle Hills, TDLR inspectors found "numerous indicators" that human trafficking could be happening at the site, authorities said. According to TDLR, those included:

  • Employees wearing provocative clothing.
  • Lingerie items found onsite.
  • An empty container in the kitchen containing used and open condoms.
  • No client consultation documents, which are legally required before providing massage therapy.
  • Items suggesting people had been living at the business' address.

What's more, inspectors learned that San Massage Spa was "associated with illicit sexual advertising on the internet," TDLR officials said.

The closure order comes after TDLR gave San Massage Spa a warning last year over violations including having no consultation forms or business records, employing unlicensed massage therapists and evidence of people residing at the business, according to department officials.

Under a state law adopted last year, TDLR's executive director can issue an emergency order closing down any massage business if authorities have reason to believe human trafficking is occurring there. Officials said this is the third such emergency order TDLR has issued since the law went into effect. 

Subscribe to SA Current newsletters.

Follow us: Apple News | Google News | NewsBreak | Reddit | Instagram | Facebook | Twitter| Or sign up for our RSS Feed

')
let lineHeight = jQuery('[line-height-check]').get(0).clientHeight;
jQuery('[line-height-check]').remove()
if (jQuery(element).prop('tagName').match(/HIDDEN/i) !== null) {
jQuery(element).children('div').last().css({ marginBottom: `${lineHeight*2}px` });
}
else {
jQuery(element).css({
marginTop: `${lineHeight*2}px`,
marginBottom: `${lineHeight}px`
});
}
//
const insertionBlockClass = `fdn-paragraph-insertion-block`;
const styleElementHook = `fdn-paragraph-insertion-styles`;

jQuery(element).addClass(insertionBlockClass);

if (jQuery(`[${styleElementHook}]`).length === 0) {
jQuery('div.fdn-content-body, div #storyBody').append('

 

')
const paragraphLineHeight = jQuery('[line-height-check]').get(0).clientHeight;
jQuery('[line-height-check]').remove()

const styleElement = jQuery(``);
const styleText = `
div.fdn-content-body br+.${insertionBlockClass}:not([hidden]),
div #storyBody br+.${insertionBlockClass}:not([hidden]) {
margin-top: ${paragraphLineHeight*2}px;
margin-bottom: ${paragraphLineHeight}px;
}

div.fdn-content-body br+.${insertionBlockClass}[hidden] > div:last-of-type,
div #storyBody br+.${insertionBlockClass}[hidden] > div:last-of-type {
margin-bottom: ${paragraphLineHeight*2}px;
}
`
styleElement.text(styleText);
jQuery('head').append(styleElement);
}
//

}
}
jQuery(element).insertBefore(this.paragraphEndNodes[index]);
}
else {
console.warn('Foundation.ParagraphTool.insertElemenAt: invalid insertion index', index);
}
}

this.insertElemenAtEnd = function (element) {
if (this.paragraphEndNodes.length) {

let lastNode = this.getNodeAtIndex(this.paragraphEndNodes.length -1);
if (this.isDoubleBrParagraphBreak(lastNode)
|| this.isBrParagraphBreakBeforeBlockElement(lastNode)) {
if (jQuery(element).get(0).tagName.match(/SCRIPT/i) !== null) {
jQuery('
').insertAfter(this.paragraphEndNodes[index]);
jQuery('
').insertAfter(this.paragraphEndNodes[index]);
}
else {
jQuery('div.fdn-content-body, div #storyBody').append('

 

')
let lineHeight = jQuery('[line-height-check]').get(0).clientHeight;
jQuery('[line-height-check]').remove()
if (jQuery(element).prop('tagName').match(/HIDDEN/i) !== null) {
jQuery(element).children('div').last().css({ marginBottom: `${lineHeight*2}px` });
}
else {
jQuery(element).css({
marginTop: `${lineHeight*2}px`,
marginBottom: `${lineHeight}px`
});
}
}
}
}
this.bodyContainer.append(element);
}

this.getNodeAtIndex = function (index) {
return this.paragraphEndNodes[index];
}
}

`);
}
var paragraphCount = myParagraphTool.getParagraphEndNodeCount();
// No need to insert if there aren't enough paragaphs
if (paragraphCount >= parseInt(item.requiredCountToDisplay)) {
// Matches specific paragraph insertion indexes
if (item.insertPoint.match(/^d+$/) !== null) {
var insertIndex = parseInt(item.insertPoint) - 1;
// Insert within content
if (insertIndex < paragraphCount) {
myParagraphTool.insertElemenAtIndex(componentElement, insertIndex);
}
// Append to the end if the insert point is beyond the paragraph count
else {
myParagraphTool.insertElemenAtEnd(componentElement)
}
}
// Matches for 1/2, 1/4, 2/3, 5/6, etc
else if (item.insertPoint.match(/^[1223456]/[23456]$/) !== null) {
var fractionMatch = new RegExp(/^([123456])(?:/)([23456]$)/);
var fractionPart = parseInt(item.insertPoint.match(fractionMatch)[1]);
var fractionWhole = parseInt(item.insertPoint.match(fractionMatch)[2]);
var fractionValue = fractionPart / fractionWhole;
var fractionIndex = Math.floor(myParagraphTool.paragraphEndNodes.length * fractionValue) - 1;
myParagraphTool.insertElemenAtIndex(componentElement, fractionIndex);
}
// Matches for every Nth insertion point
else if (item.insertPoint.match(/^d*th$/i) !== null) {
var intervalIndex = parseInt(item.insertPoint.match(/^(d*)th$/i)[1]);
var startingIndex = parseInt(item.startingPoint) - 1;
var insertionMax = parseInt(item.maxInsertions) || 100;
var insertionCount = 0;

for (var i = startingIndex; i < myParagraphTool.paragraphEndNodes.length && insertionCount < insertionMax; i++) {
if ((i - startingIndex) % intervalIndex === 0) {
let currentNode = myParagraphTool.getNodeAtIndex(i);
const clonedComponent = componentElement.clone();
myParagraphTool.insertElemenAtIndex(clonedComponent, i);
insertionCount++;
}
}
}
}
});
Foundation.Content['35146350'].setupInlineComponents = function () { return true; };
if (typeof callback === 'function') {
callback();
}
}, 200);
}

Foundation.Content['35146350'].previewInsertionPoints = function () {
var myParagraphTool = Foundation.Content['35146350'].paragraphTool
myParagraphTool.paragraphEndNodes.each((index, item) => {
const insertionPointPlaceholder = jQuery(`

Insertion point ${index+1}

`)
myParagraphTool.insertElemenAtIndex(insertionPointPlaceholder, index);
});
return 'Paragraph insertion placeholders applied.';
}

San Antonio Current

KEEP SA CURRENT!

Since 1986, the SA Current has served as the free, independent voice of San Antonio, and we want to keep it that way.

Becoming an SA Current Supporter for as little as $5 a month allows us to continue offering readers access to our coverage of local news, food, nightlife, events, and culture with no paywalls.

Join today to keep San Antonio Current.

Scroll to read more San Antonio News articles


Sanford Nowlin


Sanford Nowlin

Sanford Nowlin is editor-in-chief of the San Antonio Current.

Join SA Current Newsletters

Subscribe now to get the latest news delivered right to your inbox.

', 'fetching') },
success: function (data) {
// console.log(data.result, data.error, data)
if (data) {
if (data.error) {
// presentResult('Trouble loading content.', 'error')
}
else if (data.result) {
if (typeof Foundation.Content === 'undefined') {
presentResult(data.result, 'remove');
}
else {
presentResult(data.result, 'remove', () => {
// Foundation.Content[contentOid].setupInlineComponents();
if (Foundation.Image.Editor && typeof Foundation.Image.Editor.setupEditButtons === 'function') {
Foundation.Image.Editor.setupEditButtons();
}
});
}

}
else {
// presentResult('How did we get here?', 'error')
}
}
else {
// presentResult('No result or error returned from content request.', 'error')
}
},
complete: function () {
cmInstance.queue.push(fetchUnloadedItems);
},
error: function (error) {
// presentResult('Ajax request error.', 'error')
}
})
}
}

cmInstance.queue.push(fetchUnloadedItems)

jQuery(document).on('scroll resize', function () {
// Prevent rapid firing of event stuff
clearTimeout(onScrollTimeout)
onScrollTimeout = setTimeout(function() {
// console.log('Foundation.MultiItem onScroll event')
updateFurthestDownInView()
}, 100);
})

jQuery(document).on('foundation:multiitem:itemchange', function () {
// Prevent rapid firing of event stuff
clearTimeout(onItemChangeTimeout)
onItemChangeTimeout = setTimeout(function() {
// console.log('Foundation.MultiItem foundation:multiitem:itemchange event ')
cmInstance.onItemChange()
}, 100);
})
};

Foundation.MultiItems = Foundation.MultiItems || {
add: function (multiItem) {
Foundation.MultiItems[multiItem.id] = multiItem;
}
};

Foundation.MultiItems.add(new Foundation.MultiItem({
id: 'ContentRowMultiple',
onItemChange: function () {
if (this.currentPermaLink) {
var state = {}
var title=""
var url = this.currentPermaLink
history.pushState(state, title, url)
}
if (this.currentCanonical) {
document.querySelector('meta[property*=og\:url]').href = this.currentCanonical
document.querySelector('link[rel*=canonical]').href = this.currentCanonical
}
if (this.currentThumb) {
document.querySelector('link[rel*=image_src]').href = this.currentThumb
document.querySelector('meta[name*=thumbnail]').content = this.currentThumb
document.querySelector('meta[property*=og\:image]').content = this.currentThumb
document.querySelector('meta[name*=twitter\:image]').content = this.currentThumb
}
if (this.currentTitle) {
document.querySelector('title').text = this.currentTitle
}

// Google track pageview
if (typeof ga === 'function') {
ga('set', 'location', window.location.href)
for (let i = 1; i <= 4; i++) {
let currentDimension = jQuery(Foundation.MultiItems["ContentRowMultiple"].currentItem).attr('ga-dimension'+i)
if (typeof currentDimension === 'string') {
ga('set', 'dimension' + i, currentDimension)
}
else {
ga('set', 'dimension' + i, '')
}
}
ga('send', 'pageview')
}

if (typeof (Foundation.Ad.slots['_LeaderboardHeader-1']) === 'object' && !false) {
Foundation.Ad.refresh('_LeaderboardHeader-1')
}

if (typeof (Foundation.Ad.slots['_Footer-1']) === 'object') {
Foundation.Ad.showFooter('_Footer-1');
}
}
}))

Contents
State officials ordered San Massage Spa in Castle Hills to shut down for six months.KEEP SA CURRENT!

Sign Up For Daily Newsletter

Be keep up! Get the latest breaking news delivered straight to your inbox.

By signing up, you agree to our Terms of Use and acknowledge the data practices in our Privacy Policy. You may unsubscribe at any time.
Share This Article
Facebook Copy Link Print
Share
Previous Article 0a3289187cda911aae56351b872aef39.jpeg Q&A: Learn how Olympians keep their cool from Team USA’s chief sports psychologist
Next Article Urlhttps3a2f2fassets.apnews.com2f5b32f82c2f201042c20 122c20 532c20 1012c20 552c.jpeg IOC awards 2034 Winter Games to Utah and pushes state officials to help end FBI investigation
Leave a Comment Leave a Comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Stay Connected

FacebookLike
XFollow
InstagramFollow
- Advertisement -
Ad imageAd image

Latest News

Date, time, TV channel, international games
NFL
May 9, 2026
CBS Sports projects UNLV for 12-team College Football Playoff – Las Vegas Sun News
NCAAF
May 9, 2026
Former Ohio State OL Ethan Onianwa signs rookie contract with Atlanta Falcons
Atlanta
May 9, 2026
Frontier plane kills pedestrian during Denver takeoff
Denver
May 9, 2026

Advertise

  • Advertise With Us
  • Terms and Conditions
  • Privacy Policy
  • About Us
  • Contact

HispanicBusinessTV is your go-to source for the latest in Latino lifestyle, culture, and business news. Stay informed and inspired with our comprehensive coverage and in-depth stories.

Quick links

  • Advertise With Us
  • Terms and Conditions
  • Privacy Policy
  • About Us
  • Contact

Top Categories

  • Business
  • HBTV Sports
  • Entertainment
  • Culture

Sign Up for Our Newsletter

Subscribe to our newsletter to get our newest articles instantly!

© 2025 HispanicBusinessTV.com All Rights Reserved. A WooWho Network Digital Property.
Join Us!
Subscribe to our newsletter and never miss our latest news, podcasts etc..

Zero spam, Unsubscribe at any time.
Welcome Back!

Sign in to your account

Username or Email Address
Password

Lost your password?