ShansongDeliveryCallback.java 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package com.ydd.app.callback.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.ydd.api.DeliveryCallbackApi;
  5. import com.ydd.app.service.ApiDeliveryService;
  6. import com.ydd.app.service.ApiOrderBackService;
  7. import com.ydd.app.service.impl.ApiCallBackContent;
  8. import com.ydd.app.service.impl.ApiCallBackShanSong;
  9. import com.ydd.common.enums.DeliveryTypeEnums;
  10. import com.ydd.module.domain.OrderDelivery;
  11. import com.ydd.module.dto.CallBackOrderDto;
  12. import com.ydd.module.service.IOrderDeliveryService;
  13. import com.ydd.third.common.utils.StringUtils;
  14. import com.ydd.third.common.vo.ResObject;
  15. import com.ydd.third.common.vo.callback.CallBackOrderVo;
  16. import com.ydd.third.common.vo.callback.ShansongCallbackOrderVo;
  17. import com.ydd.third.common.vo.callback.ShansongTokenVo;
  18. import lombok.extern.slf4j.Slf4j;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.web.bind.annotation.PostMapping;
  21. import org.springframework.web.bind.annotation.RequestBody;
  22. import org.springframework.web.bind.annotation.RequestMapping;
  23. import org.springframework.web.bind.annotation.RestController;
  24. import javax.annotation.Resource;
  25. //import com.ydd.third.waimai.meituan.callback.MTCallBa
  26. @Slf4j
  27. @RestController
  28. @RequestMapping("/app/delivery/shansong/callback")
  29. public class ShansongDeliveryCallback {
  30. @Autowired
  31. private DeliveryCallbackApi callback;
  32. @Resource
  33. private ApiOrderBackService apiOrderService;
  34. @Resource
  35. private ApiDeliveryService apiDeliveryService;
  36. @Resource
  37. private IOrderDeliveryService iOrderDeliveryService;
  38. /**
  39. * 授权重定向跳转
  40. *
  41. * @param
  42. * @return
  43. */
  44. @RequestMapping("/doOAuth")
  45. public String doOAuth(String code, String thirdStoreId, String state) {
  46. // String code = params.get("code");
  47. // String state = params.get("state");
  48. if (StringUtils.isNotBlank(code) && StringUtils.isNotBlank(state)) {
  49. ResObject<ShansongTokenVo> res = callback.shansongAuth(code, thirdStoreId, state);
  50. log.info("res:" + JSONObject.toJSONString(res));
  51. if (res.getCode() == 0) {
  52. ShansongTokenVo tokenVo = res.getData();
  53. String accessToken = tokenVo.getAccessToken();
  54. String refreshToken = tokenVo.getRefreshToken();
  55. Long expiresIn = tokenVo.getExpireIn();
  56. String shopId = tokenVo.getShopId();
  57. //进行业务处理
  58. apiDeliveryService.bindCallBack(tokenVo);
  59. return "获取token成功";
  60. } else {
  61. return res.getMsg();
  62. }
  63. } else {
  64. return "非法访问!";
  65. }
  66. }
  67. @PostMapping("/doOrder")
  68. public String doOrder(@RequestBody JSONObject jsonParam) {
  69. log.info("闪送回调参数 :" + jsonParam);
  70. JSONObject res = new JSONObject();
  71. //@RequestParam Map<String, String> params
  72. //ShansongCallback callback = new ShansongCallback();
  73. CallBackOrderVo vo = new CallBackOrderVo();
  74. vo.setLbClient(DeliveryTypeEnums.SHAN_SONG.getName());
  75. vo.setParams(jsonParam);
  76. ResObject<ShansongCallbackOrderVo> callbackRes = (ResObject<ShansongCallbackOrderVo>)callback.doOrder(vo);
  77. if (callbackRes.getCode() == 0) {
  78. ShansongCallbackOrderVo orderVo = callbackRes.getData();
  79. ApiCallBackContent content = new ApiCallBackContent(new ApiCallBackShanSong(orderVo));
  80. OrderDelivery orderDelivery = iOrderDeliveryService.getOne(new QueryWrapper<OrderDelivery>().eq("child_order_sn",orderVo.getOrderNo()));
  81. CallBackOrderDto dto = content.createCallBack();
  82. dto.setParentOrderSn(orderDelivery.getOrderSn());
  83. apiOrderService.callBackOrder(dto);
  84. res.put("status", 200); //回调成功
  85. res.put("msg", "");
  86. } else {
  87. res.put("status", 400);
  88. }
  89. return res.toJSONString();
  90. }
  91. }