| | |
| | | package com.ruoyi.web.controller.api; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.framework.web.service.TokenService; |
| | |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.io.*; |
| | | import java.util.Base64; |
| | | import java.util.HashMap; |
| | | |
| | | /** |
| | | * 下单接口 |
| | |
| | | */ |
| | | @ApiOperation(value = "验票通知") |
| | | @PostMapping("/verifyTicket") |
| | | public R<Void> verifyTicket(HttpServletRequest request) throws Exception { |
| | | public Object verifyTicket(HttpServletRequest request) throws Exception { |
| | | // 取出requset的requestBody值 |
| | | String param = getParam(request); |
| | | log.info("验票通知:{}", param); |
| | | byte[] decode = Base64.getDecoder().decode(param); |
| | | // 解码 |
| | | param = new String(decode, "UTF-8"); |
| | | |
| | | return R.ok(); |
| | | JSONObject jsonObject = JSON.parseObject(param); |
| | | JSONObject requestBody = jsonObject.getJSONObject("requestBody"); |
| | | String orderId = requestBody.getString("orderId"); |
| | | TTicketOrder order = tTicketOrderService.getOne(new LambdaQueryWrapper<TTicketOrder>().eq(TTicketOrder::getOrderNo, orderId)); |
| | | if(order!=null){ |
| | | JSONArray usedDetailIds = requestBody.getJSONArray("usedDetailIds"); |
| | | String visitPersons = order.getVisitPersons(); |
| | | JSONArray jsonArray = JSONArray.parseArray(visitPersons); |
| | | JSONArray jsonArray1 = new JSONArray(); |
| | | if(usedDetailIds!=null){ |
| | | for (int i = 0; i < usedDetailIds.size(); i++) { |
| | | String ticketId = usedDetailIds.getString(i); |
| | | for (Object o : jsonArray) { |
| | | JSONObject jsonObject1 = JSONObject.parseObject(o.toString()); |
| | | if(ticketId.equals(jsonObject1.getString("ticketId"))){ |
| | | jsonObject1.put("status", 1); |
| | | } |
| | | jsonArray1.add(jsonObject1); |
| | | } |
| | | } |
| | | } |
| | | order.setVisitPersons(jsonArray1.toJSONString()); |
| | | tTicketOrderService.updateById(order); |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | HashMap<String, Object> response = new HashMap<>(); |
| | | response.put("res_code", "1000"); |
| | | response.put("res_msg", "操作成功"); |
| | | response.put("timestamp", System.currentTimeMillis()); |
| | | map.put("responseHead", response); |
| | | map.put("responseBody", ""); |
| | | String s = JSON.toJSONString(map); |
| | | String result = Base64.getEncoder().encodeToString(s.getBytes("UTF-8")); |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * { |
| | | * "responseHead": { |
| | | * "res_code": "1000", |
| | | * "res_msg": "操作成功", |
| | | * "timestamp": 1453801938 |
| | | * }, |
| | | * "responseBody": "" |
| | | * } |
| | | */ |
| | | return null; |
| | | } |
| | | |
| | | |
| | | public static void main(String[] args) throws UnsupportedEncodingException { |
| | | HashMap<String, Object> fullRequestMap = new HashMap<>(); |
| | | fullRequestMap.put("requestHead", "headMap"); |
| | | fullRequestMap.put("requestBody", "encryptedBody"); |
| | | String fullRequestJson = JSON.toJSONString(fullRequestMap); |
| | | String s = Base64.getEncoder().encodeToString(fullRequestJson.getBytes("UTF-8")); |
| | | System.out.println(s); |
| | | byte[] decode = Base64.getDecoder().decode(s); |
| | | String s1 = new String(decode, "UTF-8"); |
| | | System.out.println(s1); |
| | | } |
| | | |
| | | /** |
| | | * 获取请求内容 |
| | | * @param request |
| | | * @return |
| | | * @throws IOException |
| | | */ |
| | | private String getParam(HttpServletRequest request) throws IOException { |
| | | // 读取参数 |
| | | InputStream inputStream; |
| | | StringBuilder sb = new StringBuilder(); |
| | | inputStream = request.getInputStream(); |
| | | String s; |
| | | BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); |
| | | while ((s = in.readLine()) != null) { |
| | | sb.append(s); |
| | | } |
| | | in.close(); |
| | | inputStream.close(); |
| | | return sb.toString(); |
| | | } |
| | | } |