BaseController.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484
  1. package com.yihu.wlyy.web;
  2. import java.util.HashMap;
  3. import java.util.List;
  4. import java.util.Map;
  5. import javax.servlet.http.HttpServletRequest;
  6. import org.apache.commons.lang3.StringUtils;
  7. import org.json.JSONArray;
  8. import org.json.JSONObject;
  9. import org.slf4j.Logger;
  10. import org.slf4j.LoggerFactory;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.data.domain.Page;
  13. import com.fasterxml.jackson.databind.ObjectMapper;
  14. import com.yihu.wlyy.entity.IdEntity;
  15. public class BaseController {
  16. private static Logger logger = LoggerFactory.getLogger(BaseController.class);
  17. @Autowired
  18. protected HttpServletRequest request;
  19. /**
  20. * 獲取髮送請求用戶的uid
  21. * @return
  22. */
  23. public String getUID() {
  24. try {
  25. String userAgent = request.getHeader("userAgent");
  26. if(StringUtils.isEmpty(userAgent)){
  27. userAgent = request.getHeader("User-Agent");
  28. }
  29. JSONObject json = new JSONObject(userAgent);
  30. return json.getString("uid");
  31. } catch (Exception e) {
  32. return null;
  33. }
  34. }
  35. /**
  36. * 獲取髮送請求用戶的uid
  37. * @return
  38. */
  39. public String getLastUid() {
  40. try {
  41. String userAgent = request.getHeader("userAgent");
  42. if(StringUtils.isEmpty(userAgent)){
  43. userAgent = request.getHeader("User-Agent");
  44. }
  45. JSONObject json = new JSONObject(userAgent);
  46. return json.getString("lastUid");
  47. } catch (Exception e) {
  48. return null;
  49. }
  50. }
  51. public String getOpenid() {
  52. try {
  53. String userAgent = request.getHeader("userAgent");
  54. if(StringUtils.isEmpty(userAgent)){
  55. userAgent = request.getHeader("User-Agent");
  56. }
  57. JSONObject json = new JSONObject(userAgent);
  58. return json.getString("openid");
  59. } catch (Exception e) {
  60. return null;
  61. }
  62. }
  63. /**
  64. * 获取用户ID
  65. * @return
  66. */
  67. public long getId() {
  68. try {
  69. String userAgent = request.getHeader("userAgent");
  70. if(StringUtils.isEmpty(userAgent)){
  71. userAgent = request.getHeader("User-Agent");
  72. }
  73. JSONObject json = new JSONObject(userAgent);
  74. return json.getLong("id");
  75. } catch (Exception e) {
  76. return 0;
  77. }
  78. }
  79. public String getIMEI() {
  80. try {
  81. String userAgent = request.getHeader("userAgent");
  82. if(StringUtils.isEmpty(userAgent)){
  83. userAgent = request.getHeader("User-Agent");
  84. }
  85. JSONObject json = new JSONObject(userAgent);
  86. return json.getString("imei");
  87. } catch (Exception e) {
  88. return null;
  89. }
  90. }
  91. public String getToken() {
  92. try {
  93. String userAgent = request.getHeader("userAgent");
  94. if(StringUtils.isEmpty(userAgent)){
  95. userAgent = request.getHeader("User-Agent");
  96. }
  97. JSONObject json = new JSONObject(userAgent);
  98. return json.getString("token");
  99. } catch (Exception e) {
  100. return null;
  101. }
  102. }
  103. public void error(Exception e) {
  104. logger.error(getClass().getName() + ":", e.getMessage());
  105. e.printStackTrace();
  106. }
  107. public void warn(Exception e) {
  108. logger.warn(getClass().getName() + ":", e.getMessage());
  109. e.printStackTrace();
  110. }
  111. /**
  112. * 返回接口处理结果
  113. *
  114. * @param code 结果码,成功为200
  115. * @param msg 结果提示信息
  116. * @param value 结果数据
  117. * @return
  118. */
  119. public String error(int code, String msg) {
  120. try {
  121. Map<Object, Object> map = new HashMap<Object, Object>();
  122. ObjectMapper mapper = new ObjectMapper();
  123. map.put("status", code);
  124. map.put("msg", msg);
  125. return mapper.writeValueAsString(map);
  126. } catch (Exception e) {
  127. error(e);
  128. return null;
  129. }
  130. }
  131. /**
  132. * 接口处理成功
  133. * @param msg
  134. * @return
  135. */
  136. public String success(String msg) {
  137. try {
  138. Map<Object, Object> map = new HashMap<Object, Object>();
  139. ObjectMapper mapper = new ObjectMapper();
  140. map.put("status", 200);
  141. map.put("msg", msg);
  142. return mapper.writeValueAsString(map);
  143. } catch (Exception e) {
  144. error(e);
  145. return null;
  146. }
  147. }
  148. public String write(int code, String msg) {
  149. try {
  150. Map<Object, Object> map = new HashMap<Object, Object>();
  151. ObjectMapper mapper = new ObjectMapper();
  152. map.put("status", code);
  153. map.put("msg", msg);
  154. return mapper.writeValueAsString(map);
  155. } catch (Exception e) {
  156. error(e);
  157. return null;
  158. }
  159. }
  160. /**
  161. * 返回接口处理结果
  162. *
  163. *
  164. * @param code 结果码,成功为200
  165. * @param msg 结果提示信息
  166. * @param value 结果数据
  167. * @return
  168. */
  169. public String write(int code, String msg, String key, List<?> list) {
  170. try {
  171. Map<Object, Object> map = new HashMap<Object, Object>();
  172. ObjectMapper mapper = new ObjectMapper();
  173. map.put("status", code);
  174. map.put("msg", msg);
  175. map.put(key, list);
  176. return mapper.writeValueAsString(map);
  177. } catch (Exception e) {
  178. error(e);
  179. return error(-1, "服务器异常,请稍候再试!");
  180. }
  181. }
  182. /**
  183. * 返回接口处理结果
  184. *
  185. *
  186. * @param code 结果码,成功为200
  187. * @param msg 结果提示信息
  188. * @param value 结果数据
  189. * @return
  190. */
  191. public String write(int code, String msg, String key, JSONObject value) {
  192. try {
  193. JSONObject json = new JSONObject();
  194. json.put("status", code);
  195. json.put("msg", msg);
  196. json.put(key, value);
  197. return json.toString();
  198. } catch (Exception e) {
  199. error(e);
  200. return error(-1, "服务器异常,请稍候再试!");
  201. }
  202. }
  203. /**
  204. * 返回接口处理结果
  205. *
  206. *
  207. * @param code 结果码,成功为200
  208. * @param msg 结果提示信息
  209. * @param value 结果数据
  210. * @return
  211. */
  212. public String write(int code, String msg, String key, JSONArray value) {
  213. try {
  214. JSONObject json = new JSONObject();
  215. json.put("status", code);
  216. json.put("msg", msg);
  217. json.put(key, value);
  218. return json.toString();
  219. } catch (Exception e) {
  220. error(e);
  221. return error(-1, "服务器异常,请稍候再试!");
  222. }
  223. }
  224. /**
  225. * 返回接口处理结果
  226. *
  227. *
  228. * @param code 结果码,成功为200
  229. * @param msg 结果提示信息
  230. * @param total 总数
  231. * @param value 结果数据
  232. * @return
  233. */
  234. public String write(int code, String msg, int total, String key, JSONArray value) {
  235. try {
  236. JSONObject json = new JSONObject();
  237. json.put("status", code);
  238. json.put("msg", msg);
  239. json.put("total", total);
  240. json.put(key, value);
  241. return json.toString();
  242. } catch (Exception e) {
  243. error(e);
  244. return error(-1, "服务器异常,请稍候再试!");
  245. }
  246. }
  247. /**
  248. * 返回接口处理结果
  249. *
  250. *
  251. * @param code 结果码,成功为200
  252. * @param msg 结果提示信息
  253. * @param value 结果数据
  254. * @return
  255. */
  256. public String write(int code, String msg, String key, Object value) {
  257. try {
  258. Map<Object, Object> map = new HashMap<Object, Object>();
  259. ObjectMapper mapper = new ObjectMapper();
  260. map.put("status", code);
  261. map.put("msg", msg);
  262. map.put(key, value);
  263. return mapper.writeValueAsString(map);
  264. } catch (Exception e) {
  265. error(e);
  266. return error(-1, "服务器异常,请稍候再试!");
  267. }
  268. }
  269. /**
  270. * 返回接口处理结果
  271. *
  272. *
  273. * @param code 结果码,成功为200
  274. * @param msg 结果提示信息
  275. * @param value 结果数据
  276. * @return
  277. */
  278. public String write(int code, String msg, String key, Page<?> list) {
  279. try {
  280. Map<Object, Object> map = new HashMap<Object, Object>();
  281. ObjectMapper mapper = new ObjectMapper();
  282. map.put("status", code);
  283. map.put("msg", msg);
  284. // 是否为第一页
  285. map.put("isFirst", list.isFirst());
  286. // 是否为最后一页
  287. map.put("isLast", list.isLast());
  288. // 总条数
  289. map.put("total", list.getTotalElements());
  290. // 总页数
  291. map.put("totalPages", list.getTotalPages());
  292. map.put(key, list.getContent());
  293. return mapper.writeValueAsString(map);
  294. } catch (Exception e) {
  295. error(e);
  296. return error(-1, "服务器异常,请稍候再试!");
  297. }
  298. }
  299. /**
  300. * 返回接口处理结果
  301. *
  302. *
  303. * @param code 结果码,成功为200
  304. * @param msg 结果提示信息
  305. * @param value 结果数据
  306. * @return
  307. */
  308. public String write(int code, String msg, String key, Page<?> page, JSONArray array) {
  309. try {
  310. JSONObject json = new JSONObject();
  311. json.put("status", code);
  312. json.put("msg", msg);
  313. // 是否为第一页
  314. json.put("isFirst", page.isFirst());
  315. // 是否为最后一页
  316. json.put("isLast", page.isLast());
  317. // 总条数
  318. json.put("total", page.getTotalElements());
  319. // 总页数
  320. json.put("totalPages", page.getTotalPages());
  321. json.put(key, array);
  322. return json.toString();
  323. } catch (Exception e) {
  324. error(e);
  325. return error(-1, "服务器异常,请稍候再试!");
  326. }
  327. }
  328. /**
  329. * 返回接口处理结果
  330. *
  331. *
  332. * @param code 结果码,成功为200
  333. * @param msg 结果提示信息
  334. * @param value 结果数据
  335. * @return
  336. */
  337. public String write(int code, String msg, String key, Map<?, ?> value) {
  338. try {
  339. Map<Object, Object> map = new HashMap<Object, Object>();
  340. ObjectMapper mapper = new ObjectMapper();
  341. map.put("status", code);
  342. map.put("msg", msg);
  343. map.put(key, value);
  344. return mapper.writeValueAsString(map);
  345. } catch (Exception e) {
  346. error(e);
  347. return error(-1, "服务器异常,请稍候再试!");
  348. }
  349. }
  350. /**
  351. * 返回接口处理结果
  352. *
  353. * @param code 结果码,成功为200
  354. * @param msg 结果提示信息
  355. * @param value 结果数据
  356. * @return
  357. */
  358. public String write(int code, String msg, String key, String value) {
  359. try {
  360. Map<Object, Object> map = new HashMap<Object, Object>();
  361. ObjectMapper mapper = new ObjectMapper();
  362. map.put("status", code);
  363. map.put("msg", msg);
  364. map.put(key, value);
  365. return mapper.writeValueAsString(map);
  366. } catch (Exception e) {
  367. error(e);
  368. return error(-1, "服务器异常,请稍候再试!");
  369. }
  370. }
  371. /**
  372. * 返回接口处理结果
  373. *
  374. *
  375. * @param code 结果码,成功为200
  376. * @param msg 结果提示信息
  377. * @param value 结果数据
  378. * @return
  379. */
  380. public String write(int code, String msg, String key, IdEntity entity) {
  381. try {
  382. Map<Object, Object> map = new HashMap<Object, Object>();
  383. ObjectMapper mapper = new ObjectMapper();
  384. map.put("status", code);
  385. map.put("msg", msg);
  386. map.put(key, entity);
  387. return mapper.writeValueAsString(map);
  388. } catch (Exception e) {
  389. error(e);
  390. return error(-1, "服务器异常,请稍候再试!");
  391. }
  392. }
  393. /**
  394. * 返回接口处理结果
  395. *
  396. *
  397. * @param code 结果码,成功为200
  398. * @param msg 结果提示信息
  399. * @param value 结果数据
  400. * @return
  401. */
  402. public String write(int code, String msg, boolean isFirst, boolean isLast, long total, int totalPages, String key, Object values) {
  403. try {
  404. JSONObject json = new JSONObject();
  405. json.put("status", code);
  406. json.put("msg", msg);
  407. // 是否为第一页
  408. json.put("isFirst", isFirst);
  409. // 是否为最后一页
  410. json.put("isLast", isLast);
  411. // 总条数
  412. json.put("total", total);
  413. // 总页数
  414. json.put("totalPages", totalPages);
  415. json.put(key, values);
  416. return json.toString();
  417. } catch (Exception e) {
  418. logger.error("BaseController:", e.getMessage());
  419. return error(-1, "服务器异常,请稍候再试!");
  420. }
  421. }
  422. public String trimEnd(String param, String trimChars) {
  423. if (param.endsWith(trimChars)) {
  424. param = param.substring(0, param.length() - trimChars.length());
  425. }
  426. return param;
  427. }
  428. /**
  429. * 无效用户消息返回
  430. * @param e
  431. * @param defaultCode
  432. * @param defaultMsg
  433. * @return
  434. */
  435. public String invalidUserException(Exception e, int defaultCode, String defaultMsg) {
  436. try {
  437. // if (e instanceof UndeclaredThrowableException) {
  438. // UndeclaredThrowableException ute = (UndeclaredThrowableException) e;
  439. // InvalidUserException iue = (InvalidUserException) ute.getUndeclaredThrowable();
  440. // if (iue != null) {
  441. // return error(iue.getCode(), iue.getMsg());
  442. // }
  443. // }
  444. return error(defaultCode, defaultMsg);
  445. } catch (Exception e2) {
  446. return null;
  447. }
  448. }
  449. }