个推推送

This commit is contained in:
Jack 2025-06-11 08:54:58 +08:00
parent a757e65002
commit dcd8fe9b66
9 changed files with 43 additions and 14 deletions

View File

@ -1,7 +1,7 @@
package com.suisung.mall.account.mapper;
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;
@Repository

View File

@ -1,6 +1,6 @@
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 java.util.List;

View File

@ -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.AccountUserBindGeTuiService;
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.singlepush.AccountUserBindGeTui;
import com.suisung.mall.common.service.impl.SinglePushBaseServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

View File

@ -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.pay.PayUserResource;
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.req.WxUserInfoReq;
import com.suisung.mall.common.service.MessageService;

View File

@ -5,7 +5,7 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.suisung.mall.account.mapper.UserDeviceBindMapper;
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 lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

View File

@ -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.TableField;

View File

@ -15,6 +15,7 @@ import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.data.util.Pair;
import org.springframework.stereotype.Service;
@ -35,15 +36,19 @@ public class OrderPayedListener {
private static final Logger logger = LoggerFactory.getLogger(OrderPayedListener.class);
@Lazy
@Autowired
private ShopOrderBaseService shopOrderBaseService;
@Lazy
@Autowired
private ShopOrderInfoService shopOrderInfoService;
@Lazy
@Autowired
private SFExpressApiService sfExpressApiService;
/**
* RabbitMQ 消息监听入口方法
*
@ -189,6 +194,11 @@ public class OrderPayedListener {
}
logger.debug("顺丰同城下单成功");
// 个推推送消息
sfExpressApiService.pushMessageToStoreEmployee(null, orderId, "顺丰同城订单[" + orderId + "]已完成配送。", "");
}
}

View File

@ -148,5 +148,5 @@ public interface SFExpressApiService {
* @param payloadJson
* @return
*/
void pushMessage2Employee(Integer storeId, String orderId, String message, String payloadJson);
void pushMessageToStoreEmployee(Integer storeId, String orderId, String message, String payloadJson);
}

View File

@ -27,7 +27,6 @@ import com.suisung.mall.common.service.GeTuiPushService;
import com.suisung.mall.common.utils.CommonUtil;
import com.suisung.mall.common.utils.I18nUtil;
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.ShopOrderInfoService;
import com.suisung.mall.shop.sfexpress.service.SFExpressApiService;
@ -581,7 +580,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
return new ThirdApiRes().fail(2002, "请求签名sign校验失败");
}
logger.info("接收顺丰配送状态更改回调返回的 JSON 数据:{}", jsonData);
logger.debug("接收顺丰配送状态更改回调返回的 JSON 数据:{}", jsonData);
// 更改顺丰同城订单状态
ShopStoreSfOrder shopStoreSfOrder = toShopStoreSfOrder(jsonData);
@ -590,7 +589,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
Map<String, Object> params = new HashMap<>();
params.put("order_id", shopStoreSfOrder.getSf_order_id());
ThirdApiRes feedRes = listOrderFeed(params);
logger.info("获取配送员物流轨迹:{}", feedRes);
// logger.debug("获取配送员物流轨迹:{}", feedRes);
if (feedRes != null && feedRes.getError_code().equals(0)) {
JSONObject result = JSONUtil.parseObj(feedRes.getResult());
if (result != null && result.get("feed") != null) {
@ -607,28 +606,33 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
Integer orderStatus = 0;
Integer orderIsOutStatus = 0;
Integer orderIsShippedStatus = 0;
String pushRemark = "配送有变动,请留意。";
if (shopStoreSfOrder.getOrder_status().equals(StateCode.SF_ORDER_STATUS_RECEIVING)) {
// 顺丰同城状态10-配送员接单/配送员改派;
// 商城订单状态 2016-已经付款 2020-待配货;
orderStatus = StateCode.ORDER_STATE_PICKING;
orderIsOutStatus = 0;
orderIsShippedStatus = 0;
pushRemark = "配送员已接单。";
} else if (shopStoreSfOrder.getOrder_status().equals(StateCode.SF_ORDER_STATUS_ARRIVED)) {
// 顺丰同城状态12-配送员到店;
// 商城订单状态 2020-待配货 2030; //待发货
orderStatus = StateCode.ORDER_STATE_WAIT_SHIPPING;
orderIsOutStatus = StateCode.ORDER_PICKING_STATE_YES; // 已出库
orderIsShippedStatus = 0;
pushRemark = "配送员已到店。";
} else if (shopStoreSfOrder.getOrder_status().equals(StateCode.SF_ORDER_STATUS_RECEIVED)) {
// 顺丰同城状态15-配送员配送中已取货
// 商城订单状态 2030-待发货 2040-已发货/待收货确认
orderStatus = StateCode.ORDER_STATE_SHIPPED;
orderIsOutStatus = 0;
orderIsShippedStatus = StateCode.ORDER_SHIPPED_STATE_YES; // 已发货
pushRemark = "配送员已取货。";
} else if (shopStoreSfOrder.getOrder_status().equals(StateCode.SF_ORDER_STATUS_FINISH)) {
// 顺丰同城状态17-配送员妥投完单;
// 通知微信用户确认收货
wxOrderShippingService.notifyConfirmReceive(shopStoreSfOrder.getShop_order_id());
pushRemark = "已完成配送";
}
success = shopOrderInfoService.changeOrderStatus(shopStoreSfOrder.getShop_order_id(), orderStatus, orderIsOutStatus, orderIsShippedStatus);
@ -638,9 +642,12 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
// 状态更改之后 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);
// 个推消息推送
pushMessageToStoreEmployee(null, shopStoreSfOrder.getShop_order_id(), "顺丰同城订单[" + shopStoreSfOrder.getShop_order_id() + "]" + pushRemark, "");
return new ThirdApiRes().success("success");
}
@ -709,14 +716,15 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
// 状态更改之后 SSE 监听服务发送更改的数据
// logger.debug("准备发送SSE消息...");
// 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");
}
/**
* 个推推送消息到员工
* 个推推送消息到店铺员工
*
* @param storeId
* @param orderId
@ -725,7 +733,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
* @return
*/
@Override
public void pushMessage2Employee(Integer storeId, String orderId, String message, String payloadJson) {
public void pushMessageToStoreEmployee(Integer storeId, String orderId, String message, String payloadJson) {
try {
List<String> cidList = shopStoreEmployeeService.selectEmployeeGeTuiCidByStoreId(storeId, orderId, false);
if (CollUtil.isEmpty(cidList)) {
@ -733,6 +741,10 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
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);
if (!result.getFirst()) {