123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- package com.ydd.app.callback.controller;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import com.ydd.api.DeliveryCallbackApi;
- import com.ydd.api.DeliveryService;
- import com.ydd.app.service.ApiDeliveryService;
- import com.ydd.app.service.ApiOrderBackService;
- import com.ydd.app.service.impl.ApiCallBackContent;
- import com.ydd.app.service.impl.ApiCallBackHuoLaLa;
- import com.ydd.common.enums.DeliveryTypeEnums;
- import com.ydd.module.domain.DspDelivery;
- import com.ydd.module.domain.OrderDelivery;
- import com.ydd.module.dto.CallBackOrderDto;
- import com.ydd.module.service.IDspDeliveryService;
- import com.ydd.module.service.IOrderDeliveryService;
- import com.ydd.module.service.IOrderService;
- import com.ydd.module.service.IShopDeliveryService;
- import com.ydd.third.common.huolalaresponse.TokenResponse;
- import com.ydd.third.common.vo.ResObject;
- import com.ydd.third.common.vo.callback.CallBackOrderVo;
- import com.ydd.third.common.vo.callback.FengniaoV3CallbackOrderVo;
- import com.ydd.third.common.vo.callback.HuolalaCallbackOrderVo;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import javax.annotation.Resource;
- /**
- * @author xsx
- * @version 1.0
- * @date 2021/6/8 17:40
- */
- @Slf4j
- @RestController
- @RequestMapping("/app/delivery/huolala/callback")
- public class HuoLaLaDeliveryCallback {
- @Resource
- private DeliveryCallbackApi huolalaCallback;
- @Resource
- private DeliveryService huolalaClient;
- @Resource
- private ApiDeliveryService apiDeliveryService;
- @Resource
- private IOrderDeliveryService iOrderDeliveryService;
- @Resource
- private ApiOrderBackService apiOrderService;
- @Resource
- private IOrderService iorderService;
- @Resource
- private IDspDeliveryService iDspDeliveryService;
- @Resource
- private IShopDeliveryService iShopDeliveryService;
- /**
- * 授权
- * @return
- */
- @RequestMapping("/doAuth")
- public void doAuth(String code){
- if (code==null) {
- return;
- }
- log.info("收到货拉拉用户绑定"+code);
- String result = huolalaCallback.huolalaAuth(code);
- JSONObject parseObject = JSONObject.parseObject(result);
- if ("0".equals(parseObject.getString("ret"))){
- String data = parseObject.getString("data");
- JSONObject jsonObject = JSONObject.parseObject(data);
- TokenResponse tokenResponse = jsonObject.toJavaObject(TokenResponse.class);
- tokenResponse.setExpires(jsonObject.getDate("auth_end_time"));
- // apiDeliveryService.bindHuoLaLa(tokenResponse);
- DspDelivery delivery = new DspDelivery();
- delivery.setAuthToken(tokenResponse.getAccessToken());
- delivery.setRefreshToken(tokenResponse.getRefreshToken());
- delivery.setExpiresIn(tokenResponse.getExpires().getTime());
- iDspDeliveryService.update(delivery,new UpdateWrapper<DspDelivery>().eq("shop_id",tokenResponse.getAuthMobile()));
- }
- }
- /**
- * 订单回调
- * @param jsonParam
- * @return
- */
- @RequestMapping("/doOrder")
- public String doOrder(@RequestBody JSONObject jsonParam){
- JSONObject res = new JSONObject();
- log.info("收到货拉拉回调"+jsonParam);
- res.put("serial_no",jsonParam.getString("serial_no"));
- //订单类型回调
- if ("order_update".equals(jsonParam.getString("action"))) {
- String order_display_id = JSONObject.parseObject(JSONObject.toJSONString(jsonParam.get("data"))).getString("order_display_id");
- Integer orderStatus = JSONObject.parseObject(JSONObject.toJSONString(jsonParam.get("data"))).getInteger("order_status");
- OrderDelivery orderDelivery = iOrderDeliveryService.getOne(new QueryWrapper<OrderDelivery>().eq("out_trade_no",order_display_id));
- orderDelivery.setHllStatus(orderStatus);
- iOrderDeliveryService.updateById(orderDelivery);
- log.info("货拉拉订单delevery订单==="+JSONObject.toJSONString(orderDelivery));
- // Order order = iorderService.getOne(new QueryWrapper<Order>().eq("order_sn", orderDelivery.getOrderSn()).eq("deleted", IsDeleteEnum.NORMAL.status));
- // if (order.getPaymentType()==5){
- DspDelivery delivery = iDspDeliveryService.findOne(DeliveryTypeEnums.HUO_LA_LA.getType());
- String token=delivery.getAuthToken();
- // }else {
- // ShopDelivery shopDelivery = iShopDeliveryService.getOne(new QueryWrapper<ShopDelivery>().eq("merchant_id", order.getMemberId())
- // .eq("deleted", IsDeleteEnum.NORMAL.status).isNull("shop_id").eq("bind_status",1));
- // token=shopDelivery.getAuthToken();
- // }
- CallBackOrderVo vo = new CallBackOrderVo();
- vo.setLbClient(DeliveryTypeEnums.HUO_LA_LA.getName());
- vo.setParams(jsonParam);
- vo.setToken(token);
- Object result = huolalaCallback.doOrder(vo);
- ObjectMapper objectMapper = new ObjectMapper();
- ResObject callbackRes = objectMapper.convertValue(result, ResObject.class);
- if (callbackRes.getCode()==0){
- HuolalaCallbackOrderVo orderVo = objectMapper.convertValue(callbackRes.getData(), HuolalaCallbackOrderVo.class);
- ApiCallBackContent content = new ApiCallBackContent(new ApiCallBackHuoLaLa(orderVo));
- CallBackOrderDto dto = content.createCallBack();
- dto.setParentOrderSn(orderDelivery.getOrderSn());
- dto.setOrderSn(orderDelivery.getChildOrderSn());
- apiOrderService.callBackOrder(dto);
- }
- }
- return res.toString();
- }
- }
|