个推推送
This commit is contained in:
parent
a757e65002
commit
dcd8fe9b66
@ -1,7 +1,7 @@
|
|||||||
package com.suisung.mall.account.mapper;
|
package com.suisung.mall.account.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.suisung.mall.common.modules.singlepush.AccountUserBindGeTui;
|
import com.suisung.mall.common.modules.account.AccountUserBindGeTui;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
package com.suisung.mall.account.service;
|
package com.suisung.mall.account.service;
|
||||||
|
|
||||||
import com.suisung.mall.common.modules.singlepush.AccountUserBindGeTui;
|
import com.suisung.mall.common.modules.account.AccountUserBindGeTui;
|
||||||
import com.suisung.mall.core.web.service.IBaseService;
|
import com.suisung.mall.core.web.service.IBaseService;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|||||||
@ -16,8 +16,8 @@ import com.getui.push.v2.sdk.dto.req.message.ios.IosDTO;
|
|||||||
import com.suisung.mall.account.service.AccountSinglePushService;
|
import com.suisung.mall.account.service.AccountSinglePushService;
|
||||||
import com.suisung.mall.account.service.AccountUserBindGeTuiService;
|
import com.suisung.mall.account.service.AccountUserBindGeTuiService;
|
||||||
import com.suisung.mall.common.api.CommonResult;
|
import com.suisung.mall.common.api.CommonResult;
|
||||||
|
import com.suisung.mall.common.modules.account.AccountUserBindGeTui;
|
||||||
import com.suisung.mall.common.modules.push.PushTemplate;
|
import com.suisung.mall.common.modules.push.PushTemplate;
|
||||||
import com.suisung.mall.common.modules.singlepush.AccountUserBindGeTui;
|
|
||||||
import com.suisung.mall.common.service.impl.SinglePushBaseServiceImpl;
|
import com.suisung.mall.common.service.impl.SinglePushBaseServiceImpl;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|||||||
@ -50,7 +50,6 @@ import com.suisung.mall.common.modules.distribution.ShopDistributionUser;
|
|||||||
import com.suisung.mall.common.modules.distribution.ShopDistributionUserCommission;
|
import com.suisung.mall.common.modules.distribution.ShopDistributionUserCommission;
|
||||||
import com.suisung.mall.common.modules.pay.PayUserResource;
|
import com.suisung.mall.common.modules.pay.PayUserResource;
|
||||||
import com.suisung.mall.common.modules.plantform.ShopPlantformSubsiteUser;
|
import com.suisung.mall.common.modules.plantform.ShopPlantformSubsiteUser;
|
||||||
import com.suisung.mall.common.modules.singlepush.AccountUserBindGeTui;
|
|
||||||
import com.suisung.mall.common.pojo.dto.SmsDto;
|
import com.suisung.mall.common.pojo.dto.SmsDto;
|
||||||
import com.suisung.mall.common.pojo.req.WxUserInfoReq;
|
import com.suisung.mall.common.pojo.req.WxUserInfoReq;
|
||||||
import com.suisung.mall.common.service.MessageService;
|
import com.suisung.mall.common.service.MessageService;
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.suisung.mall.account.mapper.UserDeviceBindMapper;
|
import com.suisung.mall.account.mapper.UserDeviceBindMapper;
|
||||||
import com.suisung.mall.account.service.AccountUserBindGeTuiService;
|
import com.suisung.mall.account.service.AccountUserBindGeTuiService;
|
||||||
import com.suisung.mall.common.modules.singlepush.AccountUserBindGeTui;
|
import com.suisung.mall.common.modules.account.AccountUserBindGeTui;
|
||||||
import com.suisung.mall.core.web.service.impl.BaseServiceImpl;
|
import com.suisung.mall.core.web.service.impl.BaseServiceImpl;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|||||||
@ -1,4 +1,12 @@
|
|||||||
package com.suisung.mall.common.modules.singlepush;
|
/*
|
||||||
|
* Copyright (c) 2025. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||||
|
* Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan.
|
||||||
|
* Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna.
|
||||||
|
* Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus.
|
||||||
|
* Vestibulum commodo. Ut rhoncus gravida arcu.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.suisung.mall.common.modules.account;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
@ -15,6 +15,7 @@ import org.springframework.amqp.core.Message;
|
|||||||
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
|
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
|
||||||
import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.data.util.Pair;
|
import org.springframework.data.util.Pair;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@ -35,15 +36,19 @@ public class OrderPayedListener {
|
|||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(OrderPayedListener.class);
|
private static final Logger logger = LoggerFactory.getLogger(OrderPayedListener.class);
|
||||||
|
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private ShopOrderBaseService shopOrderBaseService;
|
private ShopOrderBaseService shopOrderBaseService;
|
||||||
|
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private ShopOrderInfoService shopOrderInfoService;
|
private ShopOrderInfoService shopOrderInfoService;
|
||||||
|
|
||||||
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private SFExpressApiService sfExpressApiService;
|
private SFExpressApiService sfExpressApiService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* RabbitMQ 消息监听入口方法
|
* RabbitMQ 消息监听入口方法
|
||||||
*
|
*
|
||||||
@ -189,6 +194,11 @@ public class OrderPayedListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
logger.debug("顺丰同城下单成功");
|
logger.debug("顺丰同城下单成功");
|
||||||
|
|
||||||
|
// 个推推送消息
|
||||||
|
sfExpressApiService.pushMessageToStoreEmployee(null, orderId, "顺丰同城订单[" + orderId + "]已完成配送。", "");
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -148,5 +148,5 @@ public interface SFExpressApiService {
|
|||||||
* @param payloadJson
|
* @param payloadJson
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
void pushMessage2Employee(Integer storeId, String orderId, String message, String payloadJson);
|
void pushMessageToStoreEmployee(Integer storeId, String orderId, String message, String payloadJson);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,7 +27,6 @@ import com.suisung.mall.common.service.GeTuiPushService;
|
|||||||
import com.suisung.mall.common.utils.CommonUtil;
|
import com.suisung.mall.common.utils.CommonUtil;
|
||||||
import com.suisung.mall.common.utils.I18nUtil;
|
import com.suisung.mall.common.utils.I18nUtil;
|
||||||
import com.suisung.mall.common.utils.JsonUtil;
|
import com.suisung.mall.common.utils.JsonUtil;
|
||||||
import com.suisung.mall.common.utils.SseEmitterUtil;
|
|
||||||
import com.suisung.mall.shop.order.service.ShopOrderBaseService;
|
import com.suisung.mall.shop.order.service.ShopOrderBaseService;
|
||||||
import com.suisung.mall.shop.order.service.ShopOrderInfoService;
|
import com.suisung.mall.shop.order.service.ShopOrderInfoService;
|
||||||
import com.suisung.mall.shop.sfexpress.service.SFExpressApiService;
|
import com.suisung.mall.shop.sfexpress.service.SFExpressApiService;
|
||||||
@ -581,7 +580,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
|||||||
return new ThirdApiRes().fail(2002, "请求签名sign校验失败!");
|
return new ThirdApiRes().fail(2002, "请求签名sign校验失败!");
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info("接收顺丰配送状态更改回调返回的 JSON 数据:{}", jsonData);
|
logger.debug("接收顺丰配送状态更改回调返回的 JSON 数据:{}", jsonData);
|
||||||
|
|
||||||
// 更改顺丰同城订单状态
|
// 更改顺丰同城订单状态
|
||||||
ShopStoreSfOrder shopStoreSfOrder = toShopStoreSfOrder(jsonData);
|
ShopStoreSfOrder shopStoreSfOrder = toShopStoreSfOrder(jsonData);
|
||||||
@ -590,7 +589,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
|||||||
Map<String, Object> params = new HashMap<>();
|
Map<String, Object> params = new HashMap<>();
|
||||||
params.put("order_id", shopStoreSfOrder.getSf_order_id());
|
params.put("order_id", shopStoreSfOrder.getSf_order_id());
|
||||||
ThirdApiRes feedRes = listOrderFeed(params);
|
ThirdApiRes feedRes = listOrderFeed(params);
|
||||||
logger.info("获取配送员物流轨迹:{}", feedRes);
|
// logger.debug("获取配送员物流轨迹:{}", feedRes);
|
||||||
if (feedRes != null && feedRes.getError_code().equals(0)) {
|
if (feedRes != null && feedRes.getError_code().equals(0)) {
|
||||||
JSONObject result = JSONUtil.parseObj(feedRes.getResult());
|
JSONObject result = JSONUtil.parseObj(feedRes.getResult());
|
||||||
if (result != null && result.get("feed") != null) {
|
if (result != null && result.get("feed") != null) {
|
||||||
@ -607,28 +606,33 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
|||||||
Integer orderStatus = 0;
|
Integer orderStatus = 0;
|
||||||
Integer orderIsOutStatus = 0;
|
Integer orderIsOutStatus = 0;
|
||||||
Integer orderIsShippedStatus = 0;
|
Integer orderIsShippedStatus = 0;
|
||||||
|
String pushRemark = "配送有变动,请留意。";
|
||||||
if (shopStoreSfOrder.getOrder_status().equals(StateCode.SF_ORDER_STATUS_RECEIVING)) {
|
if (shopStoreSfOrder.getOrder_status().equals(StateCode.SF_ORDER_STATUS_RECEIVING)) {
|
||||||
// 顺丰同城状态:10-配送员接单/配送员改派;
|
// 顺丰同城状态:10-配送员接单/配送员改派;
|
||||||
// 商城订单状态:从 2016-已经付款 到 2020-待配货;
|
// 商城订单状态:从 2016-已经付款 到 2020-待配货;
|
||||||
orderStatus = StateCode.ORDER_STATE_PICKING;
|
orderStatus = StateCode.ORDER_STATE_PICKING;
|
||||||
orderIsOutStatus = 0;
|
orderIsOutStatus = 0;
|
||||||
orderIsShippedStatus = 0;
|
orderIsShippedStatus = 0;
|
||||||
|
pushRemark = "配送员已接单。";
|
||||||
} else if (shopStoreSfOrder.getOrder_status().equals(StateCode.SF_ORDER_STATUS_ARRIVED)) {
|
} else if (shopStoreSfOrder.getOrder_status().equals(StateCode.SF_ORDER_STATUS_ARRIVED)) {
|
||||||
// 顺丰同城状态:12-配送员到店;
|
// 顺丰同城状态:12-配送员到店;
|
||||||
// 商城订单状态:从 2020-待配货 到 2030; //待发货
|
// 商城订单状态:从 2020-待配货 到 2030; //待发货
|
||||||
orderStatus = StateCode.ORDER_STATE_WAIT_SHIPPING;
|
orderStatus = StateCode.ORDER_STATE_WAIT_SHIPPING;
|
||||||
orderIsOutStatus = StateCode.ORDER_PICKING_STATE_YES; // 已出库
|
orderIsOutStatus = StateCode.ORDER_PICKING_STATE_YES; // 已出库
|
||||||
orderIsShippedStatus = 0;
|
orderIsShippedStatus = 0;
|
||||||
|
pushRemark = "配送员已到店。";
|
||||||
} else if (shopStoreSfOrder.getOrder_status().equals(StateCode.SF_ORDER_STATUS_RECEIVED)) {
|
} else if (shopStoreSfOrder.getOrder_status().equals(StateCode.SF_ORDER_STATUS_RECEIVED)) {
|
||||||
// 顺丰同城状态:15-配送员配送中(已取货)
|
// 顺丰同城状态:15-配送员配送中(已取货)
|
||||||
// 商城订单状态:从 2030-待发货 到 2040-已发货/待收货确认
|
// 商城订单状态:从 2030-待发货 到 2040-已发货/待收货确认
|
||||||
orderStatus = StateCode.ORDER_STATE_SHIPPED;
|
orderStatus = StateCode.ORDER_STATE_SHIPPED;
|
||||||
orderIsOutStatus = 0;
|
orderIsOutStatus = 0;
|
||||||
orderIsShippedStatus = StateCode.ORDER_SHIPPED_STATE_YES; // 已发货
|
orderIsShippedStatus = StateCode.ORDER_SHIPPED_STATE_YES; // 已发货
|
||||||
|
pushRemark = "配送员已取货。";
|
||||||
} else if (shopStoreSfOrder.getOrder_status().equals(StateCode.SF_ORDER_STATUS_FINISH)) {
|
} else if (shopStoreSfOrder.getOrder_status().equals(StateCode.SF_ORDER_STATUS_FINISH)) {
|
||||||
// 顺丰同城状态:17-配送员妥投完单;
|
// 顺丰同城状态:17-配送员妥投完单;
|
||||||
// 通知微信用户确认收货
|
// 通知微信用户确认收货
|
||||||
wxOrderShippingService.notifyConfirmReceive(shopStoreSfOrder.getShop_order_id());
|
wxOrderShippingService.notifyConfirmReceive(shopStoreSfOrder.getShop_order_id());
|
||||||
|
pushRemark = "已完成配送";
|
||||||
}
|
}
|
||||||
|
|
||||||
success = shopOrderInfoService.changeOrderStatus(shopStoreSfOrder.getShop_order_id(), orderStatus, orderIsOutStatus, orderIsShippedStatus);
|
success = shopOrderInfoService.changeOrderStatus(shopStoreSfOrder.getShop_order_id(), orderStatus, orderIsOutStatus, orderIsShippedStatus);
|
||||||
@ -638,9 +642,12 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
|||||||
|
|
||||||
// 注:状态更改之后,给 SSE 监听服务发送更改的数据
|
// 注:状态更改之后,给 SSE 监听服务发送更改的数据
|
||||||
// logger.debug("准备发送SSE消息...");
|
// logger.debug("准备发送SSE消息...");
|
||||||
SseEmitterUtil.sendMessage(shopStoreSfOrder.getSf_order_id(), jsonData);
|
// SseEmitterUtil.sendMessage(shopStoreSfOrder.getSf_order_id(), jsonData);
|
||||||
// logger.debug("向 SSE 通道 {} 发送了:{}", shopStoreSfOrder.getSf_order_id(), jsonData);
|
// logger.debug("向 SSE 通道 {} 发送了:{}", shopStoreSfOrder.getSf_order_id(), jsonData);
|
||||||
|
|
||||||
|
// 个推消息推送
|
||||||
|
pushMessageToStoreEmployee(null, shopStoreSfOrder.getShop_order_id(), "顺丰同城订单[" + shopStoreSfOrder.getShop_order_id() + "]" + pushRemark, "");
|
||||||
|
|
||||||
return new ThirdApiRes().success("success");
|
return new ThirdApiRes().success("success");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -709,14 +716,15 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
|||||||
// 注:状态更改之后,给 SSE 监听服务发送更改的数据
|
// 注:状态更改之后,给 SSE 监听服务发送更改的数据
|
||||||
// logger.debug("准备发送SSE消息...");
|
// logger.debug("准备发送SSE消息...");
|
||||||
// SseEmitterUtil.sendMessage(shopStoreSfOrder.getSf_order_id(), jsonData);
|
// SseEmitterUtil.sendMessage(shopStoreSfOrder.getSf_order_id(), jsonData);
|
||||||
|
|
||||||
// 个推消息推送
|
// 个推消息推送
|
||||||
pushMessage2Employee(null, shopStoreSfOrder.getShop_order_id(), "顺丰同城订单[" + shopStoreSfOrder.getShop_order_id() + "]已完成配送。", jsonData);
|
pushMessageToStoreEmployee(null, shopStoreSfOrder.getShop_order_id(), "顺丰同城订单[" + shopStoreSfOrder.getShop_order_id() + "]已完成配送。", "");
|
||||||
|
|
||||||
return new ThirdApiRes().success("success");
|
return new ThirdApiRes().success("success");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 个推推送消息到员工
|
* 个推推送消息到店铺员工
|
||||||
*
|
*
|
||||||
* @param storeId
|
* @param storeId
|
||||||
* @param orderId
|
* @param orderId
|
||||||
@ -725,7 +733,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void pushMessage2Employee(Integer storeId, String orderId, String message, String payloadJson) {
|
public void pushMessageToStoreEmployee(Integer storeId, String orderId, String message, String payloadJson) {
|
||||||
try {
|
try {
|
||||||
List<String> cidList = shopStoreEmployeeService.selectEmployeeGeTuiCidByStoreId(storeId, orderId, false);
|
List<String> cidList = shopStoreEmployeeService.selectEmployeeGeTuiCidByStoreId(storeId, orderId, false);
|
||||||
if (CollUtil.isEmpty(cidList)) {
|
if (CollUtil.isEmpty(cidList)) {
|
||||||
@ -733,6 +741,10 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (StrUtil.isBlank(payloadJson)) {
|
||||||
|
payloadJson = new JSONObject().set("page", "orderDetail").set("orderId", orderId).set("storeId", storeId).toString();
|
||||||
|
}
|
||||||
|
|
||||||
// 推送消息到员工
|
// 推送消息到员工
|
||||||
Pair<Boolean, String> result = geTuiPushService.pushListMessageToCids(cidList, "", message, "payload", payloadJson);
|
Pair<Boolean, String> result = geTuiPushService.pushListMessageToCids(cidList, "", message, "payload", payloadJson);
|
||||||
if (!result.getFirst()) {
|
if (!result.getFirst()) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user