InfoAction.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. package com.happy.action;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.alipay.api.domain.InsCertificate;
  4. import com.google.gson.Gson;
  5. import com.google.gson.reflect.TypeToken;
  6. import com.happy.Model.*;
  7. import com.happy.common.http.HttpsClient;
  8. import com.happy.common.http.TimeExchange;
  9. import com.happy.service.userService;
  10. import com.happy.unitil.CreateSign1;
  11. import com.happy.unitil.GetHttpParam;
  12. import com.happy.unitil.ResUtil;
  13. import com.opensymphony.xwork2.ActionSupport;
  14. import org.apache.struts2.ServletActionContext;
  15. import org.apache.struts2.interceptor.ServletRequestAware;
  16. import javax.annotation.Resource;
  17. import javax.servlet.http.HttpServletRequest;
  18. import javax.servlet.http.HttpServletResponse;
  19. import java.text.SimpleDateFormat;
  20. import java.util.Calendar;
  21. import java.util.Date;
  22. import java.util.HashMap;
  23. import java.util.List;
  24. public class InfoAction extends ActionSupport implements ServletRequestAware {
  25. private HttpServletRequest request;
  26. public HttpServletResponse response;
  27. @Resource
  28. public userService userService;
  29. public HttpServletRequest getRequest() {
  30. return request;
  31. }
  32. public void setRequest(HttpServletRequest request) {
  33. this.request = request;
  34. }
  35. public void setServletRequest(HttpServletRequest request) {
  36. this.request = request;
  37. }
  38. public HttpServletResponse getResponse() {
  39. return response;
  40. }
  41. public void setResponse(HttpServletResponse response) {
  42. this.response = response;
  43. }
  44. public String index(){
  45. return "list";
  46. }
  47. // 从微卡下载访客
  48. public String insertIn(){
  49. System.out.println("开始下载");
  50. String msg = HttpsClient.sendPost(
  51. "https://open.wecard.qq.com/cgi-bin/oauth2/token?app_key="+
  52. "4AE0333C42903337&app_secret=08376122777FF135E9AFE60EF4B5702D&grant_type=client_credentials&scope=base&ocode=1015730314", "");
  53. Gson gson=new Gson();
  54. HashMap<String, String> userMap = gson.fromJson(msg.toString(), new TypeToken<HashMap<String, String>>(){}.getType());
  55. String token = userMap.get("access_token");
  56. Calendar cal = Calendar.getInstance();
  57. // 往前多少天的访客
  58. cal.add(Calendar.DATE, -1);
  59. String time1 = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss").format(cal.getTime());
  60. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式
  61. String time2 = df.format(new Date());
  62. String created_at_min = String.valueOf(TimeExchange.StringToTimestamp(time1));
  63. String created_at_max = String.valueOf(TimeExchange.StringToTimestamp(time2));
  64. String message = HttpsClient.sendPost("https://open.wecard.qq.com/app-visit/open/get-appt-list?access_token="
  65. +token+"&created_at_min="
  66. +created_at_min+"&created_at_max="
  67. +created_at_max+""
  68. , "");
  69. System.out.println("访客信息: ");
  70. System.out.println(message);
  71. Message messMap = gson.fromJson(message.toString(), new TypeToken<Message>(){}.getType());
  72. List<Visitor> lv = messMap.getList();
  73. for (int i=0; i<lv.size(); i++){
  74. List<Visitor> lvi = userService.queryByCard(lv.get(i).getCard_number(), lv.get(i).getCreated_time());
  75. if (lvi == null) {
  76. Visitor vs = new Visitor();
  77. vs.setVisitor_name(lv.get(i).getVisitor_name());
  78. vs.setVisitor_phone(lv.get(i).getVisitor_phone().replaceAll("\\(\\+86\\)", ""));
  79. vs.setReason(lv.get(i).getExtra_fields().get("访问事由").toString());
  80. System.out.println("访问事由");
  81. System.out.println(lv.get(i).getExtra_fields().get("访问事由"));
  82. vs.setStatus(lv.get(i).getStatus());
  83. vs.setStatus_with_time(lv.get(i).getStatus_with_time());
  84. vs.setCard_number(lv.get(i).getCard_number());
  85. vs.setVisited_at(lv.get(i).getVisited_at());
  86. vs.setId_card_img(lv.get(i).getId_card_img());
  87. vs.setCreated_time(lv.get(i).getCreated_time());
  88. vs.setVisit_start_time(lv.get(i).getVisit_start_time());
  89. vs.setVisit_end_time(lv.get(i).getVisit_end_time());
  90. vs.setMember_name(lv.get(i).getMember_name());
  91. vs.setMember_phone(lv.get(i).getMember_phone().replaceAll("\\(\\+86\\)", ""));
  92. vs.setMember_org(lv.get(i).getMember_org());
  93. try {
  94. vs.setCar_number(lv.get(i).getExtra_fields().get("车牌号").toString());
  95. }catch (Exception e){
  96. vs.setCar_number("不开车");
  97. }
  98. vs.setTime(TimeExchange.TimestampToDate(Integer.parseInt(lv.get(i).getCreated_time())).toString());
  99. userService.insertInfo(vs);
  100. }else {
  101. System.out.println("重复");
  102. }
  103. }
  104. JSONObject json = new JSONObject();
  105. json.put("msg", "下载成功");
  106. ResUtil.writeJson(ServletActionContext.getResponse(), json.toString());
  107. return null;
  108. }
  109. // 查询访客列表
  110. public String queryVisitor(){
  111. return null;
  112. }
  113. // 写到第三方接口
  114. public String insertOut(){
  115. JSONObject json = new JSONObject();
  116. JSONObject js = new JSONObject();
  117. Calendar cal = Calendar.getInstance();
  118. // 往前多少天的访客
  119. cal.add(Calendar.DATE, 1);
  120. String time = new SimpleDateFormat( "yyyy-MM-dd").format(cal.getTime());
  121. System.out.println(time);
  122. List<Visitor> visitors = userService.queryByTime(time);
  123. if (visitors!=null){
  124. for (int i=0; i<visitors.size(); i++){
  125. if(!visitors.get(i).getCar_number().equals("不开车")) {
  126. System.out.println(visitors.get(i).getCar_number());
  127. String ukey = "6VMZEC5C6HZM7EO8";
  128. JSONObject datas = new JSONObject();
  129. datas.put("car_number", visitors.get(i).getCar_number());
  130. datas.put("begin_time", visitors.get(i).getVisit_start_time());
  131. datas.put("end_time", visitors.get(i).getVisit_end_time());
  132. datas.put("mobile", visitors.get(i).getVisitor_phone());
  133. // 生成带签名的字符串并使用MD5生成签名,然后转大写
  134. String sign = datas.toJSONString() + "key=" + ukey;
  135. sign = CreateSign1.MD5(sign).toUpperCase();
  136. json.put("service_name", "visitor_sync");
  137. json.put("sign", sign);
  138. json.put("park_id", "10033845");
  139. json.put("data", datas);
  140. String msg = HttpsClient.sendJson("http://istparking.sciseetech.com/public/visitor/do", json);
  141. System.out.println(msg);
  142. userService.updateVisiState(visitors.get(i).getCar_number(), visitors.get(i).getVisit_start_time(), visitors.get(i).getVisit_end_time());
  143. js.put("msg", msg);
  144. ResUtil.writeJson(ServletActionContext.getResponse(), js.toString());
  145. }
  146. }
  147. }else {
  148. js.put("msg", "今日没有访客");
  149. ResUtil.writeJson(ServletActionContext.getResponse(), js.toString());
  150. }
  151. return null;
  152. }
  153. // 入停车场
  154. public String InPart(){
  155. System.out.println("入场");
  156. JSONObject resultjson = new JSONObject();
  157. Gson gson=new Gson();
  158. JSONObject json = GetHttpParam.getHttpParam(request);
  159. System.out.println("json: "+json);
  160. if (json == null){
  161. resultjson.put("msg", "请传入参数");
  162. ResUtil.writeJson(ServletActionContext.getResponse(), resultjson.toString());
  163. return null;
  164. }
  165. Inschool userMap = null;
  166. Data2 d2 = null;
  167. try{
  168. userMap = gson.fromJson(json.toString(), new TypeToken<Inschool>(){}.getType());
  169. d2 = userMap.getData();
  170. List<Data2> data2 = userService.queryInByCar(d2.getCar_number(), d2.getIn_time());
  171. if (data2 != null){
  172. resultjson.put("msg", "入场已导入!");
  173. ResUtil.writeJson(ServletActionContext.getResponse(), resultjson.toString());
  174. return null;
  175. }
  176. userService.insertSchool(d2);
  177. }catch (Exception e){
  178. System.out.println("解析异常");
  179. resultjson.put("msg", "参数格式有误!");
  180. ResUtil.writeJson(ServletActionContext.getResponse(), resultjson.toString());
  181. return null;
  182. }
  183. return null;
  184. }
  185. // 出停车场
  186. public String OutPart(){
  187. System.out.println("出场");
  188. JSONObject resultjson = new JSONObject();
  189. Gson gson=new Gson();
  190. JSONObject json = GetHttpParam.getHttpParam(request);
  191. System.out.println("json: "+json);
  192. if (json == null){
  193. resultjson.put("msg", "请传入参数");
  194. ResUtil.writeJson(ServletActionContext.getResponse(), resultjson.toString());
  195. return null;
  196. }
  197. OutSchool userMap = null;
  198. Data3 d3 = null;
  199. try{
  200. userMap = gson.fromJson(json.toString(), new TypeToken<OutSchool>(){}.getType());
  201. d3 = userMap.getData();
  202. List<Data3> data3 = userService.queryOutByCar(d3.getCar_number(), d3.getOut_time());
  203. if (data3 != null){
  204. resultjson.put("msg", "出场已导入!");
  205. ResUtil.writeJson(ServletActionContext.getResponse(), resultjson.toString());
  206. return null;
  207. }
  208. userService.insertOutSchool(d3);
  209. } catch (Exception e){
  210. System.out.println("解析异常");
  211. resultjson.put("msg", "参数格式有误!");
  212. ResUtil.writeJson(ServletActionContext.getResponse(), resultjson.toString());
  213. return null;
  214. }
  215. return null;
  216. }
  217. }