package com.doumee.cloud.web;
|
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
import com.doumee.api.BaseController;
|
import com.doumee.biz.system.SystemDictDataBiz;
|
import com.doumee.config.annotation.LoginNoRequired;
|
import com.doumee.core.annotation.trace.Trace;
|
import com.doumee.core.haikang.model.HKConstants;
|
import com.doumee.core.haikang.model.param.BaseResponse;
|
import com.doumee.core.haikang.model.param.request.FacePictureCheckRequest;
|
import com.doumee.core.haikang.model.param.respose.FacePictureCheckResponse;
|
import com.doumee.core.haikang.service.HKService;
|
import com.doumee.core.utils.Constants;
|
import com.doumee.core.utils.DateUtil;
|
import com.doumee.core.utils.FtpUtil;
|
import com.doumee.core.utils.HttpsUtil;
|
import com.doumee.core.utils.aliyun.ALiYunUtil;
|
import com.doumee.dao.business.model.Cars;
|
import com.doumee.dao.business.model.JkCabinetLog;
|
import com.doumee.dao.web.reqeust.VisitRecordDTO;
|
import com.doumee.dao.web.response.VisitRecordVO;
|
import com.doumee.service.business.third.model.ApiResponse;
|
import com.doumee.service.business.third.model.PageData;
|
import com.doumee.service.business.third.model.PageWrap;
|
import com.sun.net.httpserver.HttpExchange;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.codec.digest.DigestUtils;
|
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
|
|
import javax.imageio.ImageIO;
|
import javax.imageio.stream.ImageOutputStream;
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import java.awt.*;
|
import java.awt.image.BufferedImage;
|
import java.io.*;
|
import java.net.URI;
|
import java.util.*;
|
|
/**
|
* @author Eva.Caesar Liu
|
* @date 2023/02/14 11:14
|
*/
|
@Api(tags = "【简道云】业务接口")
|
@Trace(exclude = true)
|
@RestController
|
@LoginNoRequired
|
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/web/jiandaoyun")
|
@Slf4j
|
public class JiandaoyunCloudController extends BaseController {
|
|
@Autowired
|
private SystemDictDataBiz systemDictDataBiz;
|
@ApiOperation("简道云推送用车申请")
|
@PostMapping("/pushCarApply")
|
public void pushCarApply (HttpServletRequest request, HttpServletResponse response) {
|
log.error("简道云=========getRequestURI:"+request.getRequestURI());
|
log.error("简道云=========getRequestURL:"+request.getRequestURL());
|
try {
|
String jdy = request.getHeader("x-jdy-signature");
|
StringBuilder json = new StringBuilder();
|
String line;
|
BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
|
while ((line = reader.readLine()) != null) {
|
json.append(line);
|
}
|
// String payload = IOUtils.toString(request.getInputStream(), "utf-8");
|
String payload = json.toString();
|
String uri = request.getRequestURI();
|
Map<String, String> parameterMap = parseParameter(request.getQueryString());
|
String nonce = parameterMap.get("nonce");
|
String timestamp = parameterMap.get("timestamp");
|
String signature = getSignature(nonce, payload, SECRET, timestamp);
|
log.error("简道云=========nonce:"+nonce);
|
log.error("简道云=========timestamp:"+timestamp);
|
log.error("简道云=========payload:"+payload);
|
log.error("简道云=========签名:"+jdy);
|
log.error("简道云=========签名(正确):"+signature);
|
if (!signature.equals(jdy)) {
|
response.setStatus(401);
|
response.getWriter().write("fail");
|
response.getWriter().close();;
|
return ;
|
}
|
response.setStatus(200);
|
response.getWriter().write("success");
|
response.getWriter().close();
|
}catch (Exception e){
|
e.printStackTrace();
|
log.error("简道云=========异常:"+e.getMessage());
|
}
|
|
}
|
@ApiOperation("简道云提交钥匙借还信息")
|
@PostMapping("/submitKeyRecord")
|
public ApiResponse<JkCabinetLog> submitKeyRecord (HttpServletRequest request, HttpServletResponse response) {
|
JkCabinetLog log = new JkCabinetLog();
|
log.setKeyId(1);
|
log.setCreateDate(new Date());
|
log.setMemberName("张三");
|
return ApiResponse.success(log);
|
}
|
|
public static final String SECRET ="yKSKuO0LoFf06jWGrwwuGudK";
|
private static String getSignature(String nonce, String payload, String secret, String timestamp) {
|
return DigestUtils.sha1Hex(nonce + ":" + payload + ":" + secret + ":" + timestamp);
|
}
|
|
private static Map<String, String> parseParameter(String query) {
|
Map<String, String> paramMap = new HashMap<String, String>();
|
String[] params = query.split("&");
|
for (String param : params) {
|
String[] keyValue = param.split("=");
|
paramMap.put(keyValue[0], keyValue[1]);
|
}
|
return paramMap;
|
}
|
|
public static void main(String[] args) {
|
String url = "https://api.jiandaoyun.com/api/v1/automation/tenant/6909b792324dc197821895d1/hooks/6909d0fbdb93690b128a0d56b068192dc4a9c9722dbac428";
|
// String url = "https://api.jiandaoyun.com/api/v1/automation/tenant/6909b792324dc197821895d1/hooks/6909d0fbdb93690af97e41d1b068192dc4a9705aca3321e2";
|
JSONObject object = new JSONObject();
|
object.put("create_date","20251104160000");
|
object.put("start_date",System.currentTimeMillis() );
|
object.put("end_date", System.currentTimeMillis() + 24*3600*1000);
|
object.put("id","10000020251105");
|
object.put("type",1);
|
String result = HttpsUtil.postJson(url,JSONObject.toJSONString(object));
|
System.out.println(result);
|
}
|
}
|