Parcourir la source

小程序下单时发送站内信提醒销售

ZHOUTD il y a 18 heures
Parent
commit
dfd8674b7f

+ 2 - 1
ship-module-ota/ship-module-ota-api/src/main/java/com/yc/ship/module/ota/api/dto/DistributorRespDTO.java

@@ -104,6 +104,7 @@ public class DistributorRespDTO {
     private Integer payTimeOut;
     @Schema(description = "已用授信额度")
     private BigDecimal surplus;
-
+    @Schema(description = "销售分组")
+    private Long otaCategoryId;
 
 }

+ 33 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/AppOtcTradeOrderServiceImpl.java

@@ -8,9 +8,12 @@ import com.yc.ship.framework.common.pojo.CommonResult;
 import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.framework.common.util.object.BeanUtils;
 import com.yc.ship.framework.security.core.LoginUser;
+import com.yc.ship.framework.security.core.util.SecurityFrameworkUtils;
 import com.yc.ship.module.infra.api.config.ConfigApi;
 import com.yc.ship.module.ota.api.OtaDistributorApi;
 import com.yc.ship.module.ota.api.dto.DistributorRespDTO;
+import com.yc.ship.module.ota.dal.dataobject.distributorcategory.DistributorCategoryDO;
+import com.yc.ship.module.ota.dal.mysql.distributorcategory.DistributorCategoryMapper;
 import com.yc.ship.module.product.api.ProductApi;
 import com.yc.ship.module.product.api.dto.VoyageRespDTO;
 import com.yc.ship.module.product.dal.dataobject.voyagestock.VoyageStockRoomUsedDO;
@@ -20,6 +23,9 @@ import com.yc.ship.module.resource.api.route.RouteApi;
 import com.yc.ship.module.resource.api.route.dto.RouteRespDTO;
 import com.yc.ship.module.resource.api.ship.ShipApi;
 import com.yc.ship.module.resource.api.ship.dto.ShipRespDTO;
+import com.yc.ship.module.system.api.notify.NotifyMessageSendApi;
+import com.yc.ship.module.system.api.notify.dto.NotifySendSingleToUserReqDTO;
+import com.yc.ship.module.system.api.user.dto.AdminUserRespDTO;
 import com.yc.ship.module.trade.api.dto.TradeOrderRespDTO;
 import com.yc.ship.module.trade.controller.admin.order.vo.order.*;
 import com.yc.ship.module.trade.controller.admin.orderjzdetail.vo.OrderJzDetailSaveReqVO;
@@ -34,6 +40,7 @@ import com.yc.ship.module.trade.dal.mysql.order.TradeVisitorMapper;
 import com.yc.ship.module.trade.enums.PayAccountTypeEnum;
 import com.yc.ship.module.trade.enums.SellMethodEnum;
 import com.yc.ship.module.trade.enums.TradeOrderOperateTypeEnum;
+import com.yc.ship.module.trade.enums.TradeOrderStatusEnum;
 import com.yc.ship.module.trade.framework.annotation.TradeOrderLog;
 import com.yc.ship.module.trade.framework.common.TradeOrderLogUtils;
 import com.yc.ship.module.trade.framework.mq.TradePublishUtils;
@@ -108,7 +115,11 @@ public class AppOtcTradeOrderServiceImpl implements AppOtcTradeOrderService {
     @Resource
     private VoyageStockRoomUsedMapper voyageStockRoomUsedMapper;
 
-
+    @Resource
+    private NotifyMessageSendApi notifyMessageSendApi;
+    
+    @Resource
+    private DistributorCategoryMapper distributorCategoryMapper;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -116,10 +127,12 @@ public class AppOtcTradeOrderServiceImpl implements AppOtcTradeOrderService {
     public CommonResult<OtcTradeOrderCreateRespVO> miniAppCreateOrder(LoginUser loginUser, MiniTradeOrderCreateReqVO miniTradeOrderCreateReqVO) {
         TradeOrderOtcCreateVO createVO = BeanUtils.toBean(miniTradeOrderCreateReqVO, TradeOrderOtcCreateVO.class);
         Long distributorId = createVO.getDistributorId();
+        Long otaCategoryId = null;
         if (distributorId != null) {
             DistributorRespDTO distributor = otaDistributorApi.getDistributorById(distributorId);
             if (distributor != null) {
                 createVO.setCustomerName(distributor.getName());
+                otaCategoryId = distributor.getOtaCategoryId();
             }
         }
         VoyageRespDTO voyage = productApi.getVoyage(createVO.getVoyageId());
@@ -278,6 +291,25 @@ public class AppOtcTradeOrderServiceImpl implements AppOtcTradeOrderService {
             tradePublishUtils.publishOrderCreateSuccessMsg(orderId + "");
             OtcTradeOrderCreateRespVO respVO = TradeOrderConvert.INSTANCE.convert(result.getData());
             TradeOrderLogUtils.setOrderInfo(orderId, null, orderStatus, append);
+            //小程序下单提醒销售
+            try {
+                if(otaCategoryId != null){
+                    DistributorCategoryDO distributorCategoryDO = distributorCategoryMapper.selectById(otaCategoryId);
+                    if(distributorCategoryDO != null){
+                        Map map = new HashMap();
+                        map.put("orderNo", orderNo);
+                        NotifySendSingleToUserReqDTO reqDTO = new NotifySendSingleToUserReqDTO();
+                        reqDTO.setTemplateParams(map);
+                        //有新的小程序订单({orderNo})已下单, 请及时查看!
+                        //订单详情页面展示具体变更内容
+                        reqDTO.setTemplateCode("sendmsg_cd_13");
+                        reqDTO.setUserId(Long.valueOf(distributorCategoryDO.getUserId()));
+                        notifyMessageSendApi.sendSingleMessageToAdmin(reqDTO);
+                    }
+                }
+            } catch (Exception e) {
+                log.error("发送站内信异常", e);
+            }
             return CommonResult.success(respVO);
         } finally {
             if (lock.isHeldByCurrentThread() && lock.isLocked()) {