BLE_WIFI_Scale_Server_Api 服务器与wifi秤交互只需要实现3个接口:设备注册、获取用户、上传记录
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

BaseController.java 6.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. package com.inet.ailink.receiver.controller;
  2. import com.inet.ailink.receiver.common.enums.StatusCode;
  3. import com.inet.ailink.receiver.common.exception.BizException;
  4. import com.inet.ailink.receiver.common.utils.Base64TeaUitls;
  5. import com.inet.ailink.receiver.common.utils.JsonUtils;
  6. import com.inet.ailink.receiver.common.vo.Response;
  7. import com.inet.ailink.receiver.service.impl.SysAccoountServiceImpl;
  8. import org.slf4j.Logger;
  9. import org.slf4j.LoggerFactory;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.validation.BindingResult;
  12. import org.springframework.validation.FieldError;
  13. import javax.servlet.http.HttpServletRequest;
  14. import javax.servlet.http.HttpServletResponse;
  15. import java.io.IOException;
  16. import java.io.PrintWriter;
  17. import java.util.HashMap;
  18. import java.util.List;
  19. import java.util.Map;
  20. //import com.google.common.primitives.Bytes;
  21. public abstract class BaseController extends java.beans.PropertyEditorSupport
  22. {
  23. /**
  24. * 子类可以用这个Logger Log4J Logger for this class
  25. */
  26. protected final Logger log = LoggerFactory.getLogger(getClass());
  27. //系统统一的提示没有权限访问的界面
  28. protected static final String noRight_page="noRight";
  29. public final static String KEY_USER = "user";
  30. @Autowired
  31. private SysAccoountServiceImpl sysAccoountServiceImpl;
  32. /**
  33. * 写回加密数据
  34. * @param response
  35. * @param result
  36. * @throws IOException
  37. */
  38. public void writeOutResponse(HttpServletResponse response, Response<Object> result) throws IOException{
  39. response.setHeader("Access-Control-Allow-Origin","");
  40. response.setHeader("Access-Control-Allow-Credentials","");
  41. response.setHeader("Access-Control-Allow-Methods","");
  42. response.setHeader("Access-Control-Max-Age","");
  43. response.setHeader("Access-Control-Allow-Headers","");
  44. response.setHeader("X-Application-Context","");
  45. response.setHeader("Transfer-Encoding", "");
  46. PrintWriter out = response.getWriter();
  47. if(result.getData() != null){
  48. String dataValue = result.getData().toString();
  49. result.setData(Base64TeaUitls.encrypt(dataValue));
  50. }
  51. String resultJson = JsonUtils.toJson(result);
  52. response.setHeader("ResponseBodySize", resultJson.length()+"");
  53. out.write(resultJson);
  54. out.flush();
  55. out.close();
  56. }
  57. /**
  58. * 写回正常数据
  59. * @param response
  60. * @param result
  61. * @throws IOException
  62. */
  63. public void writeOutResponseNoEncrypt(HttpServletResponse response, Response<Object> result) throws IOException{
  64. response.setHeader("Access-Control-Allow-Origin","");
  65. response.setHeader("Access-Control-Allow-Credentials","");
  66. response.setHeader("Access-Control-Allow-Methods","");
  67. response.setHeader("Access-Control-Max-Age","");
  68. response.setHeader("Access-Control-Allow-Headers","");
  69. response.setHeader("X-Application-Context","");
  70. // response.setHeader("Transfer-Encoding", "chunked");
  71. //response.setBufferSize(result.toString().length());
  72. String resultJson = JsonUtils.toJson(result);
  73. response.setHeader("ResponseBodySize", resultJson.length()+"");
  74. PrintWriter out = response.getWriter();
  75. out.write(resultJson);
  76. out.flush();
  77. out.close();
  78. }
  79. /**
  80. * 写回任意原始数据
  81. * @param response
  82. * @param result
  83. * @throws IOException
  84. */
  85. public void writeOutResponseOld(HttpServletResponse response, String result) throws IOException{
  86. response.setHeader("Access-Control-Allow-Origin","");
  87. response.setHeader("Access-Control-Allow-Credentials","");
  88. response.setHeader("Access-Control-Allow-Methods","");
  89. response.setHeader("Access-Control-Max-Age","");
  90. response.setHeader("Access-Control-Allow-Headers","");
  91. response.setHeader("X-Application-Context","");
  92. response.setHeader("Transfer-Encoding", "");
  93. response.setHeader("ResponseBodySize", result.length()+"");
  94. PrintWriter out = response.getWriter();
  95. out.write(result);
  96. out.flush();
  97. out.close();
  98. }
  99. /**
  100. * 写回数据解析失败数据
  101. * @param response
  102. * @param result
  103. * @throws IOException
  104. */
  105. public void writeOutResponse(HttpServletResponse response, byte[] paramsByte) throws IOException {
  106. Response<Object> result = new Response<Object>();
  107. result.setStatus(paramsByte[0]+"");
  108. response.setHeader("Access-Control-Allow-Origin","");
  109. response.setHeader("Access-Control-Allow-Credentials","");
  110. response.setHeader("Access-Control-Allow-Methods","");
  111. response.setHeader("Access-Control-Max-Age","");
  112. response.setHeader("Access-Control-Allow-Headers","");
  113. response.setHeader("X-Application-Context","");
  114. response.setHeader("Transfer-Encoding", "");
  115. String resultJson = JsonUtils.toJson(result);
  116. response.setHeader("ResponseBodySize", resultJson.length()+"");
  117. PrintWriter out = response.getWriter();
  118. out.write(resultJson);
  119. out.flush();
  120. out.close();
  121. }
  122. /**
  123. * 校验参数是否为空
  124. * @param response
  125. * @param params
  126. * @throws IOException
  127. */
  128. public void checkParams(HttpServletResponse response, String params) throws IOException{
  129. Response<Object> result = new Response<Object>();
  130. if(params == null || params.isEmpty() || params.equals("")){
  131. result.setStatus(StatusCode.PARAM_EMPTY.getCode());
  132. writeOutResponse(response, result);
  133. }
  134. }
  135. /**
  136. * 解密数据
  137. * @param params
  138. * @return
  139. * @throws IOException
  140. */
  141. public byte[] decryptParams(HttpServletResponse response, String params) throws IOException{
  142. //解密数据失败
  143. byte[] paramsByte = new byte[]{};
  144. //数据格式不正确
  145. Map<String,String> paramsMap = new HashMap<String, String>();
  146. try {
  147. paramsMap = JsonUtils.fromJson(params, Map.class);
  148. // System.out.println("decryptParams() paramsMap: " + paramsMap);
  149. } catch (Exception e) {
  150. paramsByte = new byte[]{(byte) Integer.parseInt(StatusCode.PARAMS_JSON_ERROR.getCode())};
  151. // System.out.println("decryptParams() Exception: " + e);
  152. return paramsByte;
  153. }
  154. //关键参数字段获取失败
  155. String paramsValue = paramsMap.get("params");
  156. // System.out.println("decryptParams() paramsValue: " + paramsValue);
  157. if(paramsValue == null || paramsValue.equals("")){
  158. paramsByte = new byte[]{(byte) Integer.parseInt(StatusCode.PARAMS_JSON_KEY_ERROR.getCode())};
  159. return paramsByte;
  160. }
  161. try {
  162. paramsByte = Base64TeaUitls.decrypt(paramsValue);
  163. // System.out.println("decryptParams() paramsByte: " + paramsByte);
  164. } catch (Exception e) {
  165. paramsByte = new byte[]{(byte) Integer.parseInt(StatusCode.PARAMS_dECRYPT_ERROR.getCode())};
  166. // System.out.println("decryptParams() paramsByte2: " + paramsByte);
  167. return paramsByte;
  168. }
  169. return paramsByte;
  170. }
  171. }