123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370 |
- package com.ydd.app.callback.controller;
- import com.alibaba.fastjson.JSONObject;
- import com.ydd.api.MeiTuanApi;
- import com.ydd.api.MeiTuanSgApi;
- import com.ydd.app.service.ApiWaimaiPlatformService;
- import com.ydd.app.service.ApiWaimaiService;
- import com.ydd.module.enums.DeliveryStatusEnum;
- import com.ydd.module.service.IDspWaimaiService;
- import com.ydd.module.service.IShopService;
- import com.ydd.third.common.utils.JSONUtil;
- import com.ydd.third.common.utils.StringUtils;
- import com.ydd.third.common.vo.ResObject;
- import com.ydd.third.common.vo.waimai.*;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
- import javax.annotation.Resource;
- import java.io.UnsupportedEncodingException;
- import java.util.Map;
- @Slf4j
- @RestController
- @RequestMapping("/app/waimai/meituan/sg/callback")
- public class MeituanWaiMaiSgCallback {
- @Autowired
- private MeiTuanSgApi callback;
- // @Autowired
- // private MeituanCallback meituanCallback;
- @Resource
- private ApiWaimaiService apiWaimaiService;
- @Autowired
- private IShopService iShopService;
- @Autowired
- MeiTuanApi meituanClient;
- @Autowired
- private IDspWaimaiService iDspWaimaiService;
- @Autowired
- ApiWaimaiPlatformService apiWaimaiPlatformService;
- /**
- * 门店映射回调
- *
- * @param params
- * @return
- */
- @RequestMapping("/doAuth")
- public String doStoreMap(@RequestParam Map<String, String> params) throws UnsupportedEncodingException {
- JSONObject res = new JSONObject();
- if (null == params||params.size()==0) {
- res.put("data", "ok");
- return res.toJSONString();
- }
- res.put("data", "ok");
- log.info("美团闪购门店映射回调:"+JSONUtil.toJson(params));
- ResObject<MeituanSgShopMappingResultVo> callbackRes = callback.doStoreMap(params);
- if (callbackRes.getCode() == 0) {
- MeituanSgShopMappingResultVo shopMappingVo = callbackRes.getData();
- if ("1".equals(callbackRes.getData().getOpType())) {
- // 推送门店绑定
- apiWaimaiPlatformService.sgBindCallBack(shopMappingVo);
- // res.put("data", "success");
- return res.toJSONString();
- }else if ("2".equals(callbackRes.getData().getOpType())) {
- // 推送门店解绑
- apiWaimaiPlatformService.sgShopUnbound(shopMappingVo);
- // res.put("data", "success");
- return res.toJSONString();
- }
- } else {
- log.error(callbackRes.getMsg());
- }
- return res.toJSONString();
- }
- /**
- * 推送已支付订单回调
- *
- * @param params
- * @return
- */
- @RequestMapping("/paidOrder")
- public String doNewOrder(@RequestParam Map<String, String> params) {
- JSONObject res = new JSONObject();
- if (null == params||params.size()==0) {
- res.put("data", "ok");
- return res.toJSONString();
- }
- res.put("data", "ok");
- log.info("美团闪购推送新订单回调:"+JSONUtil.toJson(params));
- ResObject<MeituanSgOrderResultVo> callbackRes = callback.doNewOrder(params);
- // JSONObject json = callBack.doNewOrder(params);
- if (callbackRes.getCode() == 0) {
- MeituanSgOrderResultVo orderVo = callbackRes.getData();
- apiWaimaiService.sgDoNewOrder(orderVo);
- //服务商接收后需立即返回{“data”.“ok”}
- // res.put("data", "ok");
- return res.toJSONString();
- } else {
- log.error(callbackRes.getMsg());
- }
- return res.toJSONString();
- }
- /**
- * 商家已确认订单的回调
- *
- * @param params
- * @return
- */
- @RequestMapping("/merchantConfirmOrder")
- public String doConfirmOrder(@RequestParam Map<String, String> params) {
- JSONObject res = new JSONObject();
- if (null == params||params.size()==0) {
- res.put("data", "ok");
- return res.toJSONString();
- }
- res.put("data", "ok");
- log.info("美团闪购商家已确认订单的回调:"+JSONUtil.toJson(params));
- ResObject<MeituanSgOrderResultVo> callbackRes = callback.doNewOrder(params);
- if (callbackRes.getCode() == 0) {
- MeituanSgOrderResultVo orderVo = callbackRes.getData();
- apiWaimaiService.sgConfirmOrder(orderVo);
- //服务商接收后需立即返回{“data”.“ok”}
- // res.put("data", "ok");
- return res.toJSONString();
- } else {
- log.error(callbackRes.getMsg());
- }
- return res.toJSONString();
- }
- /**
- * 订单完成的回调
- *
- * @param params
- * @return
- */
- @RequestMapping("/sgFinishOrder")
- public String doFinishOrder(@RequestParam Map<String, String> params) {
- JSONObject res = new JSONObject();
- if (null == params||params.size()==0) {
- res.put("data", "ok");
- return res.toJSONString();
- }
- res.put("data", "ok");
- log.info("美团闪购订单完成后的回调:"+JSONUtil.toJson(params));
- ResObject<MeituanSgOrderResultVo> callbackRes = callback.doFinishOrder(params);
- if (callbackRes.getCode() == 0) {
- MeituanSgOrderResultVo orderVo = callbackRes.getData();
- apiWaimaiService.updateWaimaiOrderStatus(orderVo.getOrderId(), DeliveryStatusEnum.FINISH.status);
- /**
- * 此时对返回的订单完成数据作处理
- */
- //服务商接收后需立即返回{“data”.“ok”}
- // res.put("data", "ok");
- return res.toJSONString();
- } else {
- log.error(callbackRes.getMsg());
- }
- return res.toJSONString();
- }
- /**
- * 订单取消的回调
- *
- * @param params
- * @return
- */
- @RequestMapping("/sgCancelOrder")
- public String doCancelOrder(@RequestParam Map<String, String> params) {
- JSONObject res = new JSONObject();
- if (null == params||params.size()==0) {
- res.put("data", "ok");
- return res.toJSONString();
- }
- res.put("data", "ok");
- log.info("美团闪购订单被取消回调:"+JSONUtil.toJson(params));
- ResObject<MeituanSgOrderCancelResultVo> callbackRes = callback.doCancelOrder(params);
- if (callbackRes.getCode() == 0) {
- MeituanSgOrderCancelResultVo orderVo = callbackRes.getData();
- apiWaimaiService.sgDoCancelOrder(orderVo);
- // res.put("data", "ok");
- return res.toJSONString();
- } else {
- log.error(callbackRes.getMsg());
- }
- return res.toJSONString();
- }
- /**
- * 订单退款回调
- *
- * @param params
- * @return
- */
- @RequestMapping("/sgOrderRefund")
- public String doOrderRefund(@RequestParam Map<String, String> params) {
- JSONObject res = new JSONObject();
- if (null == params||params.size()==0) {
- res.put("data", "ok");
- return res.toJSONString();
- }
- res.put("data", "ok");
- log.info("美团闪购订单退款回调:"+JSONUtil.toJson(params));
- ResObject<MeituanSgOrderRefundResultVo> callbackRes = callback.doOrderRefund(params);
- // JSONObject json = callBack.doNewOrder(params);
- if (callbackRes.getCode() == 0) {
- MeituanSgOrderRefundResultVo orderRefundVo = callbackRes.getData();
- /**
- * 退款消息类型
- * apply-发起退款
- * agree-确认退款
- * reject-驳回退款
- * cancelRefund-用户取消退款申请
- * cancelRefundComplaint-取消退款申诉
- */
- String notifyType = orderRefundVo.getNotifyType(); //退款消息类型
- if (StringUtils.isNotBlank(notifyType)) {
- if (notifyType.equals("apply")) { //发起退款
- //用户发起退款,对返回的数据作处理
- } else if (notifyType.equals("agree")) { //商家确认退款
- //商家确认退款,对返回的数据作处理
- } else if (notifyType.equals("reject")) { //商家驳回退款
- //商家驳回退款,对返回的数据作处理
- } else if (notifyType.equals("cancelRefund")) { //用户取消退款申请
- //用户取消退款申请,对返回的数据作处理
- } else if (notifyType.equals("cancelRefundComplaint")) { //取消退款申诉
- //取消退款申诉,对返回的数据作处理
- }
- }
- //服务商接收后需立即返回{“data”.“ok”}
- // res.put("data", "ok");
- return res.toJSONString();
- }
- return res.toJSONString();
- }
- /**
- * 订单部分退款的回调
- *
- * @param params
- * @return
- */
- @RequestMapping("/sgOrderPartRefund")
- public String doOrderPartRefund(@RequestParam Map<String, String> params) throws UnsupportedEncodingException {
- JSONObject res = new JSONObject();
- if (null == params||params.size()==0) {
- res.put("data", "ok");
- return res.toJSONString();
- }
- res.put("data", "ok");
- log.info("美团闪购订单部分退款的回调:"+JSONUtil.toJson(params));
- ResObject<MeituanSgOrderPartRefundResultVo> callbackRes = callback.doOrderPartRefund(params);
- // JSONObject json = callBack.doNewOrder(params);
- if (callbackRes.getCode() == 0) {
- MeituanSgOrderPartRefundResultVo orderPartRefundVo = callbackRes.getData();
- // * 消息类型
- // *part-商家/用户发起部分退款
- // * agree-商家同意部分退款
- // * reject-商家拒绝部分退款
- // */
- String notifyType = orderPartRefundVo.getNotifyType(); //退款消息类型
- if (StringUtils.isNotBlank(notifyType)) {
- if (notifyType.equals("part")) { //商家/用户发起部分退款
- //商家/用户发起部分退款,对返回的数据作处理
- } else if (notifyType.equals("agree")) { //商家同意部分退款
- //商家同意部分退款,对返回的数据作处理
- } else if (notifyType.equals("reject")) { //商家拒绝部分退款
- //商家拒绝部分退款,对返回的数据作处理
- }
- }
- //服务商接收后需立即返回{“data”.“ok”}
- // res.put("data", "ok");
- return res.toJSONString();
- }
- return res.toJSONString();
- }
- /**
- * 隐私号-降级回调
- *
- * @param params
- * @return
- */
- @RequestMapping("/sgPrivacyNoDecline")
- public String doPrivacyNoDecline(@RequestParam Map<String, String> params) {
- JSONObject res = new JSONObject();
- if (null == params||params.size()==0) {
- res.put("data", "ok");
- return res.toJSONString();
- }
- res.put("data", "ok");
- log.info("美团闪购隐私号-降级回调:"+JSONUtil.toJson(params));
- ResObject callbackRes = callback.doPrivacyNoDecline(params);
- // JSONObject json = callBack.doPrivacyNoDecline(params);
- if (callbackRes.getCode() == 0) {
- /**
- * 此时异步调用拉取订单并通知客户
- */
- //{“data”.“ok”}
- // res.put("data", "ok");
- return res.toJSONString();
- } else {
- log.error(callbackRes.getMsg());
- }
- return res.toJSONString();
- }
- /**
- * 用户催单后的回调
- *
- * @param params
- * @return
- */
- @RequestMapping("/sgRemindOrder")
- public String doRemindOrder(@RequestParam Map<String, String> params) {
- JSONObject res = new JSONObject();
- if (null == params||params.size()==0) {
- res.put("data", "ok");
- return res.toJSONString();
- }
- res.put("data", "ok");
- log.info("美团闪购用户催单后的回调:"+JSONUtil.toJson(params));
- ResObject<MeituanSgRemindOrderResultVo> callbackRes = callback.doRemindOrder(params);
- // JSONObject json = callBack.doNewOrder(params);
- if (callbackRes.getCode() == 0) {
- MeituanSgRemindOrderResultVo remindOrderResultVo = callbackRes.getData();
- /**
- * 此时对催单的处理
- */
- //服务商接收后需立即返回{“data”.“ok”}
- // res.put("data", "ok");
- return res.toJSONString();
- }
- return res.toJSONString();
- }
- /**
- * 推送美配/企客订单配送状态
- *
- * @param params
- * @return
- */
- @RequestMapping("/wm/sgOrderStatus")
- public String doWmOrderStatus(@RequestParam Map<String, String> params) {
- JSONObject res = new JSONObject();
- if (null == params||params.size()==0) {
- res.put("data", "ok");
- return res.toJSONString();
- }
- res.put("data", "ok");
- log.info("美团闪购外卖非接单推送订单配送状态通知:"+JSONUtil.toJson(params));
- return res.toJSONString();
- }
- }
|