AppletsLinkUtil.java 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. package com.caimei.www.utils;
  2. import lombok.extern.slf4j.Slf4j;
  3. import org.thymeleaf.util.StringUtils;
  4. import java.io.UnsupportedEncodingException;
  5. import java.net.URLDecoder;
  6. import java.util.HashMap;
  7. import java.util.Map;
  8. import java.util.regex.Pattern;
  9. /**
  10. * 小程序链接工具类
  11. *
  12. * @author : Charles
  13. * @date : 2021/4/9
  14. */
  15. @Slf4j
  16. public class AppletsLinkUtil {
  17. /**
  18. * 1二级页面
  19. */
  20. public static final Pattern pattern1 = Pattern.compile("/cmpage/info-1");
  21. public static final Pattern pattern34 = Pattern.compile("/topic.html");
  22. /**
  23. * 2项目仪器详情
  24. */
  25. public static final Pattern pattern2 = Pattern.compile("/cmpage/info-2");
  26. public static final Pattern pattern6 = Pattern.compile("equipment/detail");
  27. /**
  28. * 3直播页面
  29. */
  30. public static final Pattern pattern3 = Pattern.compile("/cmpage/info-3");
  31. public static final Pattern pattern36 = Pattern.compile("wx.vzan.com");
  32. /**
  33. * 4自由页面
  34. */
  35. public static final Pattern pattern4 = Pattern.compile("/cmpage/info-4");
  36. public static final Pattern pattern33 = Pattern.compile("page.html");
  37. /**
  38. * 5商品详情
  39. */
  40. public static final Pattern pattern5 = Pattern.compile("/product-");
  41. /**
  42. * 7供应商主页
  43. */
  44. public static final Pattern pattern7 = Pattern.compile("supplier/prolist");
  45. public static final Pattern pattern8 = Pattern.compile("supplier/index.html");
  46. public static final Pattern pattern9 = Pattern.compile("view/supplierHomePage.jsp");
  47. public static final Pattern pattern10 = Pattern.compile("supplier/productlist-");
  48. /**
  49. * 8专题活动页
  50. */
  51. public static final Pattern pattern11 = Pattern.compile("promotions.html");
  52. public static final Pattern pattern12 = Pattern.compile("cmpage/area.html");
  53. /**
  54. * 9二手市场介绍
  55. */
  56. public static final Pattern pattern13 = Pattern.compile("html/secondHand/introduction.jsp");
  57. public static final Pattern pattern14 = Pattern.compile("flea-market/intro.html");
  58. /**
  59. * 10二手商品列表
  60. */
  61. public static final Pattern pattern15 = Pattern.compile("html/secondHand/secondList.jsp");
  62. public static final Pattern pattern16 = Pattern.compile("flea-market/list.html");
  63. /**
  64. * 11二手商品发布
  65. */
  66. public static final Pattern pattern17 = Pattern.compile("html/maintenance/view/secondtransactions.jsp");
  67. public static final Pattern pattern18 = Pattern.compile("flea-market/form.html");
  68. /**
  69. * 12商品搜索
  70. */
  71. public static final Pattern pattern19 = Pattern.compile("product/search.shtml");
  72. public static final Pattern pattern20 = Pattern.compile("product/search/list");
  73. public static final Pattern pattern21 = Pattern.compile("product/list.html");
  74. /**
  75. * 13信息详情
  76. */
  77. public static final Pattern pattern22 = Pattern.compile("info/detail");
  78. /**
  79. * 14品牌招商介绍页
  80. */
  81. public static final Pattern pattern23 = Pattern.compile("html/InvestmentCaiMei/investmentpage.jsp");
  82. public static final Pattern pattern24 = Pattern.compile("investment.html");
  83. /**
  84. * 15维修保养介绍页
  85. */
  86. public static final Pattern pattern25 = Pattern.compile("html/maintenance/view/mt-entry-index.jsp");
  87. public static final Pattern pattern26 = Pattern.compile("repair.html");
  88. /**
  89. * 16首页
  90. */
  91. public static final Pattern pattern27 = Pattern.compile("index.action");
  92. public static final Pattern pattern28 = Pattern.compile("index.html");
  93. /**
  94. * 17注册页
  95. */
  96. public static final Pattern pattern29 = Pattern.compile("web/login/view/register_new_vip.jsp");
  97. public static final Pattern pattern30 = Pattern.compile("register.html");
  98. /**
  99. * 18信息中心
  100. */
  101. public static final Pattern pattern31 = Pattern.compile("info/center");
  102. /**
  103. * 19供应商列表
  104. */
  105. public static final Pattern pattern32 = Pattern.compile("supplier/list.html");
  106. /**
  107. * 20分类详情
  108. */
  109. public static final Pattern pattern35 = Pattern.compile("/cmpage/info-5");
  110. /**
  111. * 21美博会专题页
  112. */
  113. public static final Pattern pattern37 = Pattern.compile("/beautytopic");
  114. /**
  115. * 22美体会专题页
  116. */
  117. public static final Pattern pattern38 = Pattern.compile("/cmpage/info-5-301");
  118. /**
  119. * 根据链接判断链接类型
  120. *
  121. * @param link
  122. * @return
  123. */
  124. public static Integer getLinkType(String link) {
  125. if (!StringUtils.isEmpty(link)) {
  126. if (pattern1.matcher(link).find() || pattern34.matcher(link).find()) {
  127. return 1;
  128. } else if (pattern2.matcher(link).find() || pattern6.matcher(link).find()) {
  129. return 2;
  130. } else if (pattern3.matcher(link).find() || pattern36.matcher(link).find()) {
  131. return 3;
  132. } else if (pattern4.matcher(link).find() || pattern33.matcher(link).find()) {
  133. return 4;
  134. } else if (pattern5.matcher(link).find()) {
  135. return 5;
  136. } else if (pattern7.matcher(link).find() || pattern8.matcher(link).find() || pattern9.matcher(link).find() || pattern10.matcher(link).find()) {
  137. return 7;
  138. } else if (pattern11.matcher(link).find() || pattern12.matcher(link).find()) {
  139. return 8;
  140. } else if (pattern13.matcher(link).find() || pattern14.matcher(link).find()) {
  141. return 9;
  142. } else if (pattern15.matcher(link).find() || pattern16.matcher(link).find()) {
  143. return 10;
  144. } else if (pattern17.matcher(link).find() || pattern18.matcher(link).find()) {
  145. return 11;
  146. } else if (pattern19.matcher(link).find() || pattern20.matcher(link).find() || pattern21.matcher(link).find()) {
  147. return 12;
  148. } else if (pattern22.matcher(link).find()) {
  149. return 13;
  150. } else if (pattern23.matcher(link).find() || pattern24.matcher(link).find()) {
  151. return 14;
  152. } else if (pattern25.matcher(link).find() || pattern26.matcher(link).find()) {
  153. return 15;
  154. } else if (pattern27.matcher(link).find() || pattern28.matcher(link).find()) {
  155. return 16;
  156. } else if (pattern29.matcher(link).find() || pattern30.matcher(link).find()) {
  157. return 17;
  158. } else if (pattern31.matcher(link).find()) {
  159. return 18;
  160. } else if (pattern32.matcher(link).find()) {
  161. return 19;
  162. } else if (pattern35.matcher(link).find()) {
  163. if (pattern38.matcher(link).find()) {
  164. return 22;
  165. }
  166. return 20;
  167. } else if (pattern37.matcher(link).find()) {
  168. return 21;
  169. } else {
  170. return -1;
  171. }
  172. } else {
  173. return -1;
  174. }
  175. }
  176. /**
  177. * 根据链接获取链接中携带的参数
  178. *
  179. * @param linkType
  180. * @param link
  181. * @return
  182. */
  183. public static Map<String, Object> getLinkParam(Integer linkType, String link) {
  184. HashMap<String, Object> map = new HashMap<>();
  185. String[] idArr = link.split("/");
  186. String[] split1 = null;
  187. String[] split2 = null;
  188. String[] split3 = null;
  189. if (idArr.length > 0) {
  190. split1 = idArr[idArr.length - 1].split("-");
  191. split2 = idArr[idArr.length - 1].split("=");
  192. if (split1.length > 0) {
  193. split3 = split1[split1.length - 1].split("\\.");
  194. }
  195. }
  196. if (linkType == 3 || linkType == 5 || linkType == 20 || linkType == 22) {
  197. //-{id}.html
  198. if (split3 != null && split3.length == 2) {
  199. map.put("id", split3[0]);
  200. }
  201. } else if (linkType == 1 || linkType == 2 || linkType == 4 || linkType == 7) {
  202. if (pattern1.matcher(link).find() || pattern2.matcher(link).find() || pattern4.matcher(link).find() || pattern7.matcher(link).find() || pattern10.matcher(link).find()) {
  203. //-{id}.html
  204. if (split3 != null && split3.length == 2) {
  205. map.put("id", split3[0]);
  206. }
  207. } else if (pattern6.matcher(link).find() || pattern33.matcher(link).find() || pattern8.matcher(link).find() || pattern9.matcher(link).find() || pattern34.matcher(link).find()) {
  208. //id={id}
  209. if (split2 != null && split2.length == 2) {
  210. map.put("id", split2[1]);
  211. }
  212. }
  213. } else if (linkType == 13 || linkType == 18) {
  214. //a-{id}-b
  215. if (split1 != null && split1.length == 3) {
  216. map.put("id", split1[1]);
  217. }
  218. } else if (linkType == 12 || linkType == 19) {
  219. //keyword=
  220. if (split2 != null && split2.length == 2) {
  221. String keyword = split2[1];
  222. try {
  223. keyword = URLDecoder.decode(keyword, "UTF-8");
  224. } catch (UnsupportedEncodingException e) {
  225. log.error("try-catch:",e);
  226. }
  227. map.put("keyword", keyword);
  228. }
  229. }
  230. return map;
  231. }
  232. }