package com.lvtu.csa.utils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;
import com.lvmama.comm.pet.po.prod.ProdTag;
import com.lvmama.comm.pet.po.search.ProductSearchInfo;
import com.lvmama.comm.vo.Constant;
/**
*
* @author dengcheng
*
*/
public class ClientUtils {
/**
* 过滤html文档
*
* @param inputString
* @return
*/
public static String filterOutHTMLTags(String inputString) {
if (StringUtils.isEmpty(inputString)) {
return "";
}
String htmlStr = inputString; // 含html标签的字符串
String textStr = "";
java.util.regex.Pattern p_script;
java.util.regex.Matcher m_script;
java.util.regex.Pattern p_style;
java.util.regex.Matcher m_style;
java.util.regex.Pattern p_html;
java.util.regex.Matcher m_html;
try {
String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>"; // 定义script的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script>
// //
// }
String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>"; // 定义style的正则表达式{或<style[^>]*?>[\\s\\S]*?<\\/style>
String regEx_html = "<[^>]+>| |&|nbsp;|nbsp"; // 定义HTML标签的正则表达式
p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
m_script = p_script.matcher(htmlStr);
htmlStr = m_script.replaceAll(""); // 过滤script标签
p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
m_style = p_style.matcher(htmlStr);
htmlStr = m_style.replaceAll(""); // 过滤style标签
p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
m_html = p_html.matcher(htmlStr);
htmlStr = m_html.replaceAll(""); // 过滤html标签
textStr = htmlStr;
} catch (Exception e) {
System.err.println("Super_clutter ClientUtils Html2Text: "
+ e.getMessage());
}
return replaceAllN(textStr);// 返回文本字符串
}
/**
* 是否支持多订多惠,早定早恵
* @param psi ProductSearchInfo
* @return boolean
*/
public static boolean hasBusinessCoupon(ProductSearchInfo psi) {
if(null == psi) {
return false;
}
Map<String,Object> m = getPreferentialTags(psi.getTagList());
if(null != m && null !=m.get("hasBusinessCoupon") ) {
return Boolean.parseBoolean(m.get("hasBusinessCoupon").toString());
}
return false;
}
/**
* 获取优惠信息tags .
* @param ProductSearchInfo psi
* @return map
*/
private static Map<String,Object> getPreferentialTags(List<ProdTag> plist) {
Map <String,Object> refMap = new HashMap<String,Object>();
//用于前台页面显示Tag
String preferentialInfo="";// 优惠信息,抵扣信息
String preferentialTags="";
boolean hasBusinessCoupon = false; // 是否支持多订多惠 ,早定早惠
boolean canDeduction = false; // 是否支持奖金抵扣 ,积分抵用
String favourableDesc = ""; // 优惠信息
String deductionDesc = ""; // 抵扣信息
//取ProductSeachInfo上的tag信息由于页面显示
if(null != plist && plist.size() > 0) {
for(int i = 0 ;i < plist.size() ;i++) {
ProdTag pt = plist.get(i);
/*EARLY("早订早惠"),
MORE("多订多惠"),
BONUS_PAY("奖金抵扣"),
POINT_PAY("积分抵用"),
BANK_ACTIVITY("银行活动"),
SALES_PROMOTION("促销"),
APERIODIC("期票");*/
// EARLY("早订早惠")
if(Constant.PROD_TAG_NAME.EARLY.getCnName().equals(pt.getTagName())) {
hasBusinessCoupon = true;
preferentialInfo = getTagNames(preferentialInfo,pt.getTagName());
favourableDesc = getTagNames(favourableDesc,pt.getTagName());
preferentialTags = preferentialTags + "2," ;
// MORE("多订多惠")
} else if(Constant.PROD_TAG_NAME.MORE.getCnName().equals(pt.getTagName())) {
hasBusinessCoupon = true;
preferentialInfo = getTagNames(preferentialInfo,pt.getTagName());
favourableDesc = getTagNames(favourableDesc,pt.getTagName());
preferentialTags = preferentialTags + "3," ;
// BONUS_PAY("奖金抵扣")
} else if(Constant.PROD_TAG_NAME.BONUS_PAY.getCnName().equals(pt.getTagName())) {
canDeduction = true;
preferentialInfo = getTagNames(preferentialInfo,pt.getTagName());
deductionDesc = getTagNames(deductionDesc,pt.getTagName());
preferentialTags = preferentialTags + "1," ;
// POINT_PAY("积分抵用")
} else if(Constant.PROD_TAG_NAME.POINT_PAY.getCnName().equals(pt.getTagName())) {
canDeduction = true;
preferentialInfo = getTagNames(preferentialInfo,pt.getTagName());
deductionDesc = getTagNames(deductionDesc,pt.getTagName());
preferentialTags = preferentialTags + "4," ;
}
}
}
refMap.put("info", preferentialInfo);
refMap.put("deductionDesc", deductionDesc);
refMap.put("favourableDesc", favourableDesc);
refMap.put("tags", preferentialTags);
refMap.put("hasBusinessCoupon", hasBusinessCoupon);
refMap.put("canDeduction", canDeduction);
return refMap;
}
/**
*
* @param desc
* @param tagName
* @return
*/
public static String getTagNames(String desc,String tagName) {
return ("".equals(desc)?tagName:(desc+"•"+tagName));
}
/**
* 使用java正则表达式去掉多余的.与0
* @param s
* @return
*/
public static String subZeroAndDot(String s){
if(s.indexOf(".") > 0){
s = s.replaceAll("0+?$", "");//去掉多余的0
s = s.replaceAll("[.]$", "");//如最后一位是.则去掉
}
return s;
}
/**
* 去掉字符串中重复的/n,把多个/n合并成一个.
*
* @param str
* @return
*/
public static String replaceAllN(String str) {
if (StringUtils.isEmpty(str)) {
return "";
}
str = str.replaceAll(" +", "").replaceAll("\\n+", "\n");
// 如果第一个字符是/n ,则去掉 /n
if (str.indexOf("\n") == 0) {
str = str.replaceFirst("\n", "");
}
return str;
}
/**
* 截取产品名称,最多50个中文
* @param productName
* @return
*/
public static String subProductName(String productName) {
if(StringUtils.isEmpty(productName)) {
return "";
}
try {
if(productName.length() > 47) {
productName = productName.substring(0,47) + "...";
}
}catch(Exception e) {
e.printStackTrace();
}
return productName;
}
public static Long getAppVersion(String lvvserion){
return Long.valueOf(lvvserion.replaceAll("[.]", ""));
}
}
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;
import com.lvmama.comm.pet.po.prod.ProdTag;
import com.lvmama.comm.pet.po.search.ProductSearchInfo;
import com.lvmama.comm.vo.Constant;
/**
*
* @author dengcheng
*
*/
public class ClientUtils {
/**
* 过滤html文档
*
* @param inputString
* @return
*/
public static String filterOutHTMLTags(String inputString) {
if (StringUtils.isEmpty(inputString)) {
return "";
}
String htmlStr = inputString; // 含html标签的字符串
String textStr = "";
java.util.regex.Pattern p_script;
java.util.regex.Matcher m_script;
java.util.regex.Pattern p_style;
java.util.regex.Matcher m_style;
java.util.regex.Pattern p_html;
java.util.regex.Matcher m_html;
try {
String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>"; // 定义script的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script>
// //
// }
String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>"; // 定义style的正则表达式{或<style[^>]*?>[\\s\\S]*?<\\/style>
String regEx_html = "<[^>]+>| |&|nbsp;|nbsp"; // 定义HTML标签的正则表达式
p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
m_script = p_script.matcher(htmlStr);
htmlStr = m_script.replaceAll(""); // 过滤script标签
p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
m_style = p_style.matcher(htmlStr);
htmlStr = m_style.replaceAll(""); // 过滤style标签
p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
m_html = p_html.matcher(htmlStr);
htmlStr = m_html.replaceAll(""); // 过滤html标签
textStr = htmlStr;
} catch (Exception e) {
System.err.println("Super_clutter ClientUtils Html2Text: "
+ e.getMessage());
}
return replaceAllN(textStr);// 返回文本字符串
}
/**
* 是否支持多订多惠,早定早恵
* @param psi ProductSearchInfo
* @return boolean
*/
public static boolean hasBusinessCoupon(ProductSearchInfo psi) {
if(null == psi) {
return false;
}
Map<String,Object> m = getPreferentialTags(psi.getTagList());
if(null != m && null !=m.get("hasBusinessCoupon") ) {
return Boolean.parseBoolean(m.get("hasBusinessCoupon").toString());
}
return false;
}
/**
* 获取优惠信息tags .
* @param ProductSearchInfo psi
* @return map
*/
private static Map<String,Object> getPreferentialTags(List<ProdTag> plist) {
Map <String,Object> refMap = new HashMap<String,Object>();
//用于前台页面显示Tag
String preferentialInfo="";// 优惠信息,抵扣信息
String preferentialTags="";
boolean hasBusinessCoupon = false; // 是否支持多订多惠 ,早定早惠
boolean canDeduction = false; // 是否支持奖金抵扣 ,积分抵用
String favourableDesc = ""; // 优惠信息
String deductionDesc = ""; // 抵扣信息
//取ProductSeachInfo上的tag信息由于页面显示
if(null != plist && plist.size() > 0) {
for(int i = 0 ;i < plist.size() ;i++) {
ProdTag pt = plist.get(i);
/*EARLY("早订早惠"),
MORE("多订多惠"),
BONUS_PAY("奖金抵扣"),
POINT_PAY("积分抵用"),
BANK_ACTIVITY("银行活动"),
SALES_PROMOTION("促销"),
APERIODIC("期票");*/
// EARLY("早订早惠")
if(Constant.PROD_TAG_NAME.EARLY.getCnName().equals(pt.getTagName())) {
hasBusinessCoupon = true;
preferentialInfo = getTagNames(preferentialInfo,pt.getTagName());
favourableDesc = getTagNames(favourableDesc,pt.getTagName());
preferentialTags = preferentialTags + "2," ;
// MORE("多订多惠")
} else if(Constant.PROD_TAG_NAME.MORE.getCnName().equals(pt.getTagName())) {
hasBusinessCoupon = true;
preferentialInfo = getTagNames(preferentialInfo,pt.getTagName());
favourableDesc = getTagNames(favourableDesc,pt.getTagName());
preferentialTags = preferentialTags + "3," ;
// BONUS_PAY("奖金抵扣")
} else if(Constant.PROD_TAG_NAME.BONUS_PAY.getCnName().equals(pt.getTagName())) {
canDeduction = true;
preferentialInfo = getTagNames(preferentialInfo,pt.getTagName());
deductionDesc = getTagNames(deductionDesc,pt.getTagName());
preferentialTags = preferentialTags + "1," ;
// POINT_PAY("积分抵用")
} else if(Constant.PROD_TAG_NAME.POINT_PAY.getCnName().equals(pt.getTagName())) {
canDeduction = true;
preferentialInfo = getTagNames(preferentialInfo,pt.getTagName());
deductionDesc = getTagNames(deductionDesc,pt.getTagName());
preferentialTags = preferentialTags + "4," ;
}
}
}
refMap.put("info", preferentialInfo);
refMap.put("deductionDesc", deductionDesc);
refMap.put("favourableDesc", favourableDesc);
refMap.put("tags", preferentialTags);
refMap.put("hasBusinessCoupon", hasBusinessCoupon);
refMap.put("canDeduction", canDeduction);
return refMap;
}
/**
*
* @param desc
* @param tagName
* @return
*/
public static String getTagNames(String desc,String tagName) {
return ("".equals(desc)?tagName:(desc+"•"+tagName));
}
/**
* 使用java正则表达式去掉多余的.与0
* @param s
* @return
*/
public static String subZeroAndDot(String s){
if(s.indexOf(".") > 0){
s = s.replaceAll("0+?$", "");//去掉多余的0
s = s.replaceAll("[.]$", "");//如最后一位是.则去掉
}
return s;
}
/**
* 去掉字符串中重复的/n,把多个/n合并成一个.
*
* @param str
* @return
*/
public static String replaceAllN(String str) {
if (StringUtils.isEmpty(str)) {
return "";
}
str = str.replaceAll(" +", "").replaceAll("\\n+", "\n");
// 如果第一个字符是/n ,则去掉 /n
if (str.indexOf("\n") == 0) {
str = str.replaceFirst("\n", "");
}
return str;
}
/**
* 截取产品名称,最多50个中文
* @param productName
* @return
*/
public static String subProductName(String productName) {
if(StringUtils.isEmpty(productName)) {
return "";
}
try {
if(productName.length() > 47) {
productName = productName.substring(0,47) + "...";
}
}catch(Exception e) {
e.printStackTrace();
}
return productName;
}
public static Long getAppVersion(String lvvserion){
return Long.valueOf(lvvserion.replaceAll("[.]", ""));
}
}