Просмотр исходного кода

新增店铺配送发送短信功能

codingliang 1 год назад
Родитель
Сommit
6e47aacca7

+ 9 - 1
src/main/java/com/sqx/modules/errand/service/TbIndentSmsSendLogService.java

@@ -14,9 +14,10 @@ public interface TbIndentSmsSendLogService extends IService<TbIndentSmsSendLog>
     /**
      * 保存短信发送日志
      * @param indentId 跑腿订单id
+     * @param sourceType 发送来源 1骑手、2商家
      * @param smsSendResult 短信发送结果
      */
-    void saveLog(Long indentId, SmsSendResult smsSendResult);
+    void saveLog(Long indentId, String sourceType, SmsSendResult smsSendResult);
 
     /**
      * 统计发送成功的短信条数
@@ -24,4 +25,11 @@ public interface TbIndentSmsSendLogService extends IService<TbIndentSmsSendLog>
      * @return count
      */
     int countOfSendSuccess(SmsCountQueryDTO queryDTO);
+
+    /**
+     * 根据订单id获取发送成功的短信
+     * @param indentId 跑腿订单id
+     * @return 信息
+     */
+    TbIndentSmsSendLog getSendSuccessByOrderId(Long indentId);
 }

+ 12 - 1
src/main/java/com/sqx/modules/errand/service/TbIndentSmsTemplateService.java

@@ -20,8 +20,19 @@ public interface TbIndentSmsTemplateService extends IService<TbIndentSmsTemplate
      * 短信发送
      * @param smsTemplateId 模板id
      * @param fromUser 发送人信息
-     * @param toPhone 手机人手机号
+     * @param toPhone 收件人手机号
      * @return 短信发送结果
      */
     SmsSendResult sendSms(Long smsTemplateId, UserEntity fromUser, String toPhone);
+
+    /**
+     * 短信发送
+     * @param smsTemplateId 模板id
+     * @param fromPhone 发送人手机号码
+     * @param fromUserName 发送人名称
+     * @param fromUserId 发送人id
+     * @param toPhone 收件人手机号
+     * @return 短信发送结果
+     */
+    SmsSendResult sendSms(Long smsTemplateId, String fromPhone, String fromUserName, Long fromUserId, String toPhone);
 }

+ 2 - 1
src/main/java/com/sqx/modules/errand/service/impl/TbIndentServiceImpl.java

@@ -965,7 +965,8 @@ public class TbIndentServiceImpl extends ServiceImpl<TbIndentDao, TbIndent> impl
 
         // 发送短信并记录短信发送记录
         SmsSendResult smsSendResult = smsTemplateService.sendSms(smsTemplateId, riderUser, userPhone);
-        smsSendLogService.saveLog(indentOrder.getIndentId(), smsSendResult);
+        // sourceType 1骑手、2商家
+        smsSendLogService.saveLog(indentOrder.getIndentId(), "1", smsSendResult);
     }
 
     @Transactional

+ 14 - 3
src/main/java/com/sqx/modules/errand/service/impl/TbIndentSmsSendLogServiceImpl.java

@@ -1,9 +1,12 @@
 package com.sqx.modules.errand.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.sqx.common.sms.SmsSendResult;
+import com.sqx.common.utils.Constant;
 import com.sqx.common.utils.PageUtils;
 import com.sqx.modules.errand.IndentSmsSendLogVO;
 import com.sqx.modules.errand.dao.TbIndentSmsSendLogDao;
@@ -35,7 +38,7 @@ public class TbIndentSmsSendLogServiceImpl extends ServiceImpl<TbIndentSmsSendLo
     }
 
     @Override
-    public void saveLog(Long indentId, SmsSendResult smsSendResult) {
+    public void saveLog(Long indentId, String sourceType, SmsSendResult smsSendResult) {
         TbIndentSmsSendLog log = new TbIndentSmsSendLog();
 
         log.setSendTime(new Date());
@@ -46,8 +49,7 @@ public class TbIndentSmsSendLogServiceImpl extends ServiceImpl<TbIndentSmsSendLo
         log.setSendResult(smsSendResult.getMsg());
         log.setSendFromId(smsSendResult.getSendFromId());
         log.setSendTo(smsSendResult.getSendTo());
-        // 1骑手、2商家
-        log.setSourceType("1");
+        log.setSourceType(sourceType);
 
         save(log);
     }
@@ -56,4 +58,13 @@ public class TbIndentSmsSendLogServiceImpl extends ServiceImpl<TbIndentSmsSendLo
     public int countOfSendSuccess(SmsCountQueryDTO queryDTO) {
         return baseMapper.countOfSendSuccess(queryDTO);
     }
+
+    @Override
+    public TbIndentSmsSendLog getSendSuccessByOrderId(Long indentId) {
+        LambdaQueryWrapper<TbIndentSmsSendLog> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(TbIndentSmsSendLog::getOrderId, indentId);
+        queryWrapper.eq(TbIndentSmsSendLog::getSuccessFlag, Constant.YES);
+        queryWrapper.last("limit 1");
+        return this.getOne(queryWrapper);
+    }
 }

+ 12 - 6
src/main/java/com/sqx/modules/errand/service/impl/TbIndentSmsTemplateServiceImpl.java

@@ -83,13 +83,18 @@ public class TbIndentSmsTemplateServiceImpl extends ServiceImpl<TbIndentSmsTempl
 
     @Override
     public SmsSendResult sendSms(Long smsTemplateId, UserEntity fromUser, String toPhone) {
+        return sendSms(smsTemplateId, fromUser.getPhone(), fromUser.getUserName(), fromUser.getUserId(), toPhone);
+    }
+
+    @Override
+    public SmsSendResult sendSms(Long smsTemplateId, String fromPhone, String fromUserName, Long fromUserId, String toPhone) {
         TbIndentSmsTemplate smsTemplate = getById(smsTemplateId);
         if (ObjectUtil.isNull(smsTemplate)) {
             throw new SqxException("无效的短信模板id");
         }
 
         String templateContent = smsTemplate.getTemplateContent();
-        Map<String, String> templateVal = getTemplateVal(templateContent, fromUser);
+        Map<String, String> templateVal = getTemplateVal(templateContent, fromPhone, fromUserName);
         String finalContent = SmsTemplateValUtil.replaceTemplateVal(templateContent, templateVal);
 
         SmsSendResult smsSendResult;
@@ -105,7 +110,7 @@ public class TbIndentSmsTemplateServiceImpl extends ServiceImpl<TbIndentSmsTempl
 
         // 填充smsSendResult其他属性
         smsSendResult.setTemplateId(smsTemplateId);
-        smsSendResult.setSendFromId(fromUser.getUserId());
+        smsSendResult.setSendFromId(fromUserId);
 
         return smsSendResult;
     }
@@ -113,19 +118,20 @@ public class TbIndentSmsTemplateServiceImpl extends ServiceImpl<TbIndentSmsTempl
     /**
      * 获取模板动态参数
      * @param templateContent 模板
-     * @param fromUser 发送人信息
+     * @param fromPhone 发送人手机号码
+     * @param fromUsername 发送人名称
      * @return
      */
-    private Map<String, String> getTemplateVal(String templateContent, UserEntity fromUser) {
+    private Map<String, String> getTemplateVal(String templateContent, String fromPhone, String fromUsername) {
         // 获取当前模板有哪些自定义参数
         List<String> templateValName = SmsTemplateValUtil.getTemplateValName(templateContent);
         Map<String, String> templateVal = new HashMap<>();
         templateValName.forEach(valName -> {
             String value;
             if (ObjectUtil.equal(valName, SmsTemplateValUtil.SUPPORT_VAL_NAME_LIST.get(0))) {
-                value = fromUser.getPhone();
+                value = fromPhone;
             } else {
-                value = fromUser.getUserName();
+                value = fromUsername;
             }
 
             templateVal.put(valName, value);

+ 6 - 8
src/main/java/com/sqx/modules/order/controller/OrderController.java

@@ -1,6 +1,7 @@
 package com.sqx.modules.order.controller;
 
 import com.sqx.common.utils.Result;
+import com.sqx.modules.order.dto.OrderFinishByShopDTO;
 import com.sqx.modules.order.entity.Evaluate;
 import com.sqx.modules.order.entity.TbOrder;
 import com.sqx.modules.order.service.AppOrderService;
@@ -20,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
 
 @Slf4j
 @Api(tags={"管理端-订单"})
@@ -55,16 +57,12 @@ public class OrderController extends AbstractController {
         ExportExcelUtils.exportExcel(response,"订单列表.xlsx",excelData);
     }
 
-
     @ApiOperation("完成订单")
     @PostMapping(value = "accomplishOrder")
-    public Result accomplishOrder(Long orderId){
-        TbOrder tbOrder2 = appOrderService.getById(orderId);
-        if(tbOrder2.getAutoSendOrder()!=null && tbOrder2.getAutoSendOrder()==1){
-            log.info("操作完成订单2:"+orderId);
-            return appOrderService.accomplishOrder( orderId);
-        }
-        return Result.error("当前订单为自动派单,不能手动完成!");
+    public Result accomplishOrder(@Valid OrderFinishByShopDTO orderFinishByShopDTO){
+        appOrderService.finishOrderByShop(orderFinishByShopDTO);
+
+        return Result.success();
     }
 
     @ApiOperation("管理订单")

+ 35 - 0
src/main/java/com/sqx/modules/order/dto/OrderFinishByShopDTO.java

@@ -0,0 +1,35 @@
+package com.sqx.modules.order.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+/**
+ * 订单通过商家完成dto
+ *
+ * @author : codingliang
+ * @date : 2024-07-09 10:07
+ */
+@Data
+@ApiModel("订单通过商家完成dto")
+public class OrderFinishByShopDTO {
+
+    @ApiModelProperty("订单id")
+    @NotNull(message = "订单id不能为null")
+    private Long orderId;
+
+    @ApiModelProperty("图片")
+    private String imgs;
+
+    @ApiModelProperty("是否发送短信 0否、1是")
+    @NotBlank(message = "是否发送短信不能为空")
+    @Pattern(regexp = "(0|1)", message = "是否发送短信只能为0或1")
+    private String sendSmsFlag;
+
+    @ApiModelProperty("短信模板id")
+    private Long smsTemplateId;
+}

+ 7 - 1
src/main/java/com/sqx/modules/order/service/AppOrderService.java

@@ -3,10 +3,10 @@ package com.sqx.modules.order.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.sqx.common.utils.Result;
+import com.sqx.modules.order.dto.OrderFinishByShopDTO;
 import com.sqx.modules.order.entity.Evaluate;
 import com.sqx.modules.order.entity.TbOrder;
 import com.sqx.modules.utils.excel.ExcelData;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -113,4 +113,10 @@ public interface AppOrderService extends IService<TbOrder> {
      * @param order 订单信息
      */
     void updateOrderAfterPaySuccess(TbOrder order);
+
+    /**
+     * 店铺完成订单
+     * @param orderFinishByShopDTO 完成订单参数
+     */
+    void finishOrderByShop(OrderFinishByShopDTO orderFinishByShopDTO);
 }

+ 106 - 8
src/main/java/com/sqx/modules/order/service/impl/AppAppOrderServiceImpl.java

@@ -1,5 +1,8 @@
 package com.sqx.modules.order.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -7,6 +10,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.sqx.common.exception.SqxException;
+import com.sqx.common.sms.SmsSendResult;
+import com.sqx.common.utils.Constant;
 import com.sqx.common.utils.DateUtils;
 import com.sqx.common.utils.DistanceUtil;
 import com.sqx.common.utils.PageUtils;
@@ -26,9 +31,13 @@ import com.sqx.modules.common.entity.CommonInfo;
 import com.sqx.modules.common.service.CommonInfoService;
 import com.sqx.modules.coupon.dao.TbCouponUserDao;
 import com.sqx.modules.coupon.entity.TbCouponUser;
+import com.sqx.modules.datacentre.entity.SysUserShop;
 import com.sqx.modules.errand.dao.TbIndentDao;
 import com.sqx.modules.errand.entity.TbIndent;
+import com.sqx.modules.errand.entity.TbIndentSmsSendLog;
 import com.sqx.modules.errand.service.TbIndentService;
+import com.sqx.modules.errand.service.TbIndentSmsSendLogService;
+import com.sqx.modules.errand.service.TbIndentSmsTemplateService;
 import com.sqx.modules.goods.dao.GoodsDao;
 import com.sqx.modules.goods.dao.GoodsShopDao;
 import com.sqx.modules.goods.dao.GoodsShopRelevancyDao;
@@ -42,6 +51,7 @@ import com.sqx.modules.message.entity.MessageInfo;
 import com.sqx.modules.order.dao.AppOrderDao;
 import com.sqx.modules.order.dao.EvaluateDao;
 import com.sqx.modules.order.dao.OrderGoodsDao;
+import com.sqx.modules.order.dto.OrderFinishByShopDTO;
 import com.sqx.modules.order.entity.Evaluate;
 import com.sqx.modules.order.entity.OrderGoods;
 import com.sqx.modules.order.entity.TbOrder;
@@ -52,11 +62,14 @@ import com.sqx.modules.pay.entity.PayDetails;
 import com.sqx.modules.pay.service.WxErrService;
 import com.sqx.modules.shop.service.ShopMessageService;
 import com.sqx.modules.sys.dao.SysUserRoleDao;
+import com.sqx.modules.sys.entity.SysUserEntity;
+import com.sqx.modules.sys.service.SysUserService;
 import com.sqx.modules.utils.SenInfoCheckUtil;
 import com.sqx.modules.utils.excel.ExcelData;
 import com.sqx.modules.utils.fieYun.FeiYunUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
+import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
@@ -126,6 +139,13 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
     private AddressService addressService;
     @Autowired
     private ShopMessageService shopMessageService;
+    @Autowired
+    private SysUserService sysUserService;
+    @Autowired
+    private TbIndentSmsSendLogService smsSendLogService;
+    @Autowired
+    private TbIndentSmsTemplateService smsTemplateService;
+
     private ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(true);
 
     @Override
@@ -474,6 +494,69 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         }
     }
 
+    @Override
+    public void finishOrderByShop(OrderFinishByShopDTO orderFinishByShopDTO) {
+        Long orderId = orderFinishByShopDTO.getOrderId();
+        TbOrder order = getById(orderId);
+
+        if (ObjectUtil.isNull(order)) {
+            throw new SqxException("无效的订单id");
+        }
+
+        if(order.getAutoSendOrder()!=null && order.getAutoSendOrder()==1){
+            throw new SqxException("当前订单为自动派单,不能手动完成!");
+        }
+
+        if (order.getStatus().equals(4)) {
+            return;
+        }
+
+        Long shopId = order.getShopId();
+        SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
+        List<SysUserShop> sysUserShops = sysUserService.selectShopId(currentUser.getUserId());
+        if (CollUtil.isEmpty(sysUserShops) || !sysUserShops.stream().filter(e -> e.getShopId().longValue() == shopId.longValue()).findFirst().isPresent()) {
+            throw new SqxException("没有操作权限,只能操作完成自己店铺订单!");
+        }
+
+        if (Constant.YES.equals(orderFinishByShopDTO.getSendSmsFlag())) {
+            TbIndent indent = tbIndentService.getOne(new QueryWrapper<TbIndent>().eq("order_id", orderId));
+            if (ObjectUtil.isNull(indent)) {
+                return;
+            }
+
+            // 如果是外卖订单
+            if (ObjectUtil.equal(indent.getIndentType(), "5")) {
+                Long smsTemplateId = orderFinishByShopDTO.getSmsTemplateId();
+                if (ObjectUtil.isNull(smsTemplateId)) {
+                    throw new SqxException("短信模板id不能为空");
+                }
+
+                // 收货人手机
+                String userPhone = indent.getUserPhone();
+
+                if (StrUtil.isBlank(userPhone)) {
+                    return;
+                }
+
+                // 店铺信息
+                GoodsShop goodsShop = goodsShopDao.selectById(shopId);
+
+                // 发送短信并记录短信发送记录
+                SmsSendResult smsSendResult = smsTemplateService.sendSms(smsTemplateId, goodsShop.getPhone(), goodsShop.getShopName(), goodsShop.getShopId(), userPhone);
+
+                // sourceType 1骑手、2商家
+                smsSendLogService.saveLog(indent.getIndentId(), "2", smsSendResult);
+            }
+        }
+
+        if (StrUtil.isNotBlank(orderFinishByShopDTO.getImgs())) {
+            order.setDeliveryImgs(orderFinishByShopDTO.getImgs());
+            updateById(order);
+        }
+
+        accomplishOrder(orderId);
+    }
+
     /**
      * 用户钱包新增消费记录
      * @param order 订单信息
@@ -1566,8 +1649,8 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
             return Result.success();
         }
         String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
+        TbIndent indent = tbIndentService.getOne(new QueryWrapper<TbIndent>().eq("order_id", orderId));
         if (tbOrder.getAutoSendOrder() != null && tbOrder.getAutoSendOrder().equals(0)) {
-            TbIndent indent = tbIndentService.getOne(new QueryWrapper<TbIndent>().eq("order_id", orderId));
             if (type==1){
                 if (indent == null || !"4".equals(indent.getIndentState())) {
                     log.info("订单id【{}】,请等待骑手送达!", orderId);
@@ -1619,8 +1702,24 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
                 sumMoney = sumMoney.subtract(tbOrder.getErrandMoney());
                 errandMoney = tbOrder.getErrandMoney();
             }
+        }
 
+        // 商家配送短信服务费
+        BigDecimal smsSendMoney = BigDecimal.ZERO;
+        if(tbOrder.getAutoSendOrder()!=null && tbOrder.getAutoSendOrder() == 1) {
+            // 查询短信发送结果
+            if (ObjectUtil.isNotNull(indent)) {
+                TbIndentSmsSendLog smsSendLog = smsSendLogService.getSendSuccessByOrderId(indent.getIndentId());
+                if (ObjectUtil.isNotNull(smsSendLog)) {
+                    // 查询短信发送费用
+                    CommonInfo commonInfo = commonInfoService.findOne(421);
+
+                    smsSendMoney = new BigDecimal(commonInfo.getValue());
+                    sumMoney = sumMoney.subtract(smsSendMoney);
+                }
+            }
         }
+
         BigDecimal shopMoney = sumMoney.multiply(shopRate);
 
         shopMoney = (shopMoney.setScale(2, BigDecimal.ROUND_DOWN));
@@ -1655,28 +1754,28 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
             //订单金额: 商家优惠券:  用户实付金额:   跑腿费:   平台服务费:  到账金额:(本单为商家优惠券,商家补贴)
             if (shopIds == -1) {
                 //未使用优惠券
-                userMoneyDetails1.setContent("订单金额:" + tbOrder.getPayMoney() + ",用户实付金额:" + tbOrder.getPayMoney() + ",其中跑腿费:" + errandMoney + "(" + tbOrder.getErrandMoneyIsShop() + "),平台服务费:" + pingRate + ",到账金额:" + shopMoney);
+                userMoneyDetails1.setContent("订单金额:" + tbOrder.getPayMoney() + ",用户实付金额:" + tbOrder.getPayMoney() + ",其中跑腿费:" + errandMoney + "(" + tbOrder.getErrandMoneyIsShop() + "),平台服务费:" + pingRate + ",短信服务费:" + smsSendMoney + ",到账金额:" + shopMoney);
             } else if (shopIds == 0) {
                 //使用平台优惠券
                 sumMoney = tbOrder.getPayMoney().add(couponMoney);
-                userMoneyDetails1.setContent("订单金额:" + sumMoney + ",优惠券金额:" + couponMoney + ",用户实付金额:" + tbOrder.getPayMoney() + ",其中跑腿费:" + errandMoney + "(" + tbOrder.getErrandMoneyIsShop() + "),平台服务费:" + pingRate + ",到账金额:" + shopMoney + "(本单为平台优惠券,平台补贴)");
+                userMoneyDetails1.setContent("订单金额:" + sumMoney + ",优惠券金额:" + couponMoney + ",用户实付金额:" + tbOrder.getPayMoney() + ",其中跑腿费:" + errandMoney + "(" + tbOrder.getErrandMoneyIsShop() + "),平台服务费:" + pingRate + ",短信服务费:" + smsSendMoney + ",到账金额:" + shopMoney + "(本单为平台优惠券,平台补贴)");
             } else {
                 //使用商家优惠券
                 sumMoney = tbOrder.getPayMoney().add(couponMoney);
-                userMoneyDetails1.setContent("订单金额:" + sumMoney + ",优惠券金额:" + couponMoney + ",用户实付金额:" + tbOrder.getPayMoney() + ",其中跑腿费:" + errandMoney + "(" + tbOrder.getErrandMoneyIsShop() + "),平台服务费:" + pingRate + ",到账金额:" + shopMoney + "(本单为商家优惠券,商家补贴)");
+                userMoneyDetails1.setContent("订单金额:" + sumMoney + ",优惠券金额:" + couponMoney + ",用户实付金额:" + tbOrder.getPayMoney() + ",其中跑腿费:" + errandMoney + "(" + tbOrder.getErrandMoneyIsShop() + "),平台服务费:" + pingRate + ",短信服务费:" + smsSendMoney + ",到账金额:" + shopMoney + "(本单为商家优惠券,商家补贴)");
             }
         } else {
             if (shopIds == -1) {
                 //未使用优惠券
-                userMoneyDetails1.setContent("订单金额:" + tbOrder.getPayMoney() + ",用户实付金额:" + tbOrder.getPayMoney() + ",其中跑腿费:" + errandMoney + "(" + tbOrder.getErrandMoneyIsShop() + "),平台服务费:" + pingRate + ",到账金额:" + shopMoney);
+                userMoneyDetails1.setContent("订单金额:" + tbOrder.getPayMoney() + ",用户实付金额:" + tbOrder.getPayMoney() + ",其中跑腿费:" + errandMoney + "(" + tbOrder.getErrandMoneyIsShop() + "),平台服务费:" + pingRate + ",短信服务费:" + smsSendMoney + ",到账金额:" + shopMoney);
             } else if (shopIds == 0) {
                 //使用平台优惠券
                 sumMoney = tbOrder.getPayMoney().add(couponMoney);
-                userMoneyDetails1.setContent("订单金额:" + sumMoney + ",优惠券金额:" + couponMoney + ",用户实付金额:" + tbOrder.getPayMoney() + ",平台服务费:" + pingRate + ",到账金额:" + shopMoney + "(本单为平台优惠券,平台补贴)");
+                userMoneyDetails1.setContent("订单金额:" + sumMoney + ",优惠券金额:" + couponMoney + ",用户实付金额:" + tbOrder.getPayMoney() + ",平台服务费:" + pingRate + ",短信服务费:" + smsSendMoney + ",到账金额:" + shopMoney + "(本单为平台优惠券,平台补贴)");
             } else {
                 //使用商家优惠券
                 sumMoney = tbOrder.getPayMoney().add(couponMoney);
-                userMoneyDetails1.setContent("订单金额:" + sumMoney + ",优惠券金额:" + couponMoney + ",用户实付金额:" + tbOrder.getPayMoney() + ",平台服务费:" + pingRate + ",到账金额:" + shopMoney + "(本单为商家优惠券,商家补贴)");
+                userMoneyDetails1.setContent("订单金额:" + sumMoney + ",优惠券金额:" + couponMoney + ",用户实付金额:" + tbOrder.getPayMoney() + ",平台服务费:" + pingRate + ",短信服务费:" + smsSendMoney + ",到账金额:" + shopMoney + "(本单为商家优惠券,商家补贴)");
             }
         }
 
@@ -1713,7 +1812,6 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         UserEntity userEntity = userDao.selectById(tbOrder.getUserId());
         SenInfoCheckUtil.sendMsg(userEntity.getOpenId(), one.getValue(), msgList, 1);
         userService.pushToSingle("订单完成", "您的订单已完成,欢迎下次光临!", userEntity.getClientid());
-        TbIndent indent = tbIndentService.getOne(new QueryWrapper<TbIndent>().eq("order_id", orderId));
         String shopTemplate = commonInfoService.findOne(354).getValue();
         List<String> msgListShop = new ArrayList<>();
         msgListShop.add(indent.getIndentNumber());