LianAnBudgetController.java 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.malk.lianan.controller;
  2. import cn.hutool.crypto.digest.MD5;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.malk.server.common.McR;
  5. import com.malk.utils.PublicUtil;
  6. import lombok.extern.slf4j.Slf4j;
  7. import org.springframework.stereotype.Controller;
  8. import org.springframework.web.bind.annotation.PostMapping;
  9. import org.springframework.web.bind.annotation.RequestBody;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. import org.springframework.web.bind.annotation.RestController;
  12. @RestController
  13. @RequestMapping("/budget/")
  14. @Slf4j
  15. public class LianAnBudgetController {
  16. private static String SIGN_KEY="be56e057f20f883e";
  17. @PostMapping("datasync")
  18. public McR dataSync(@RequestBody JSONObject param){
  19. log.info("全面预算接口:{}",param);
  20. if(PublicUtil.isNull(param,"timestamp","sign","msgType","data")){
  21. return McR.error("201","参数校验不通过!");
  22. }
  23. if(!signCheck(param)){
  24. return McR.error("202","签名校验不通过!");
  25. }
  26. String msgType = param.getString("msgType");
  27. if("T01".equals(msgType)){
  28. log.info("科目数据:{}",param.get("data"));
  29. }else if("T02".equals(msgType)){
  30. log.info("产品数据:{}",param.get("data"));
  31. }else if("T03".equals(msgType)){
  32. log.info("项目数据:{}",param.get("data"));
  33. }else if("Y01".equals(msgType)){
  34. log.info("预算数据:{}",param.get("data"));
  35. }else{
  36. return McR.error("203","msgType错误!");
  37. }
  38. return McR.success();
  39. }
  40. private static boolean signCheck(JSONObject param){
  41. String data=SIGN_KEY+param.getString("timestamp")+param.getString("data");
  42. MD5 md5 = new MD5();
  43. String digestHex = md5.digestHex(data);
  44. return digestHex.equals(param.getString("sign"));
  45. }
  46. }