diff --git a/mall-account/src/main/java/com/suisung/mall/account/controller/admin/AccountBaseConfigController.java b/mall-account/src/main/java/com/suisung/mall/account/controller/admin/AccountBaseConfigController.java index f4c3269a..cd28ce5c 100644 --- a/mall-account/src/main/java/com/suisung/mall/account/controller/admin/AccountBaseConfigController.java +++ b/mall-account/src/main/java/com/suisung/mall/account/controller/admin/AccountBaseConfigController.java @@ -19,10 +19,7 @@ import com.suisung.mall.core.web.service.RedisService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.*; @@ -82,6 +79,17 @@ public class AccountBaseConfigController { return CommonResult.success(accountBaseConfig); } + @ApiOperation(value = "获取某个系统配置的值-远程调用系统内部使用", notes = "获取某个系统配置的值-远程调用系统内部使用") + @PostMapping(value = "/get/value") + public String getAccountBaseConfigValue(@RequestParam(name = "config_key") String config_key) { + AccountBaseConfig accountBaseConfig = accountBaseConfigService.get(config_key); + if (accountBaseConfig == null) { + return ""; + } + + return accountBaseConfig.getConfig_value(); + } + /** * 编辑更新 * @@ -189,7 +197,7 @@ public class AccountBaseConfigController { @ApiOperation(value = "消息记录-分页列表查询", notes = "消息记录-分页列表查询") @RequestMapping(value = "/smsRecord", method = RequestMethod.GET) public CommonResult smsRecord(@RequestParam(name = "page", defaultValue = "1") Integer page, - @RequestParam(name = "rows", defaultValue = "10") Integer rows) { + @RequestParam(name = "rows", defaultValue = "10") Integer rows) { String serviceUserId = accountBaseConfigService.getConfig("service_user_id", ""); String serviceAppKey = accountBaseConfigService.getConfig("service_app_key", ""); diff --git a/mall-common/src/main/java/com/suisung/mall/common/constant/CommonConstant.java b/mall-common/src/main/java/com/suisung/mall/common/constant/CommonConstant.java index bc30edbf..a991b935 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/constant/CommonConstant.java +++ b/mall-common/src/main/java/com/suisung/mall/common/constant/CommonConstant.java @@ -81,4 +81,6 @@ public class CommonConstant { public static final String PUSH_MSG_CATE_MCH_ONLINE_ORDER_LIST = "mchOnLineOrderList"; public static final String PUSH_MSG_CATE_MCH_ABNORMAL_ORDER_LIST = "mchAbnormalOrderList"; public static final String PUSH_MSG_CATE_MCH_RETURN_ORDER_LIST = "mchRetrunOrderList"; + + public static final String CONF_KEY_SAME_CITY_ORDER_EXPIRE_SECONDS = "sameCityOrderExpireSeconds"; } diff --git a/mall-common/src/main/java/com/suisung/mall/common/feignService/AccountService.java b/mall-common/src/main/java/com/suisung/mall/common/feignService/AccountService.java index ee8c1e39..1d5a32bb 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/feignService/AccountService.java +++ b/mall-common/src/main/java/com/suisung/mall/common/feignService/AccountService.java @@ -230,10 +230,10 @@ public interface AccountService { @RequestParam(name = "user_type", required = false) Integer user_type); @PostMapping("/admin/account/pushTocid") - String pushTocid(@RequestParam(name = "message") String message,@RequestParam(name = "userId") String userId); + String pushTocid(@RequestParam(name = "message") String message, @RequestParam(name = "userId") String userId); @PostMapping("/admin/account/pushNotificationTocid") - String pushNotificationTocid(@RequestParam("userId") String userId,@RequestBody PushTemplate pushTemplate); + String pushNotificationTocid(@RequestParam("userId") String userId, @RequestBody PushTemplate pushTemplate); /** * 根据用户 Id 获取账号推送绑定关系列表记录 @@ -246,14 +246,16 @@ public interface AccountService { /** * 通过手机号查找map + * * @param mobiles * @return */ @PostMapping(value = "/admin/account/accountController/getAccountsMapByMobile") - Map getAccountsMapByMobile(@RequestBody List mobiles); + Map getAccountsMapByMobile(@RequestBody List mobiles); /** * 找出account表的最大id + * * @return */ @PostMapping(value = "/admin/account/accountController/getAccountMaxId") @@ -262,6 +264,7 @@ public interface AccountService { /** * 批量保存accountBase + * * @return */ @PostMapping(value = "/admin/account/accountController/saveBatchAccountBase") @@ -269,6 +272,7 @@ public interface AccountService { /** * 批量保存accountInfo + * * @return */ @PostMapping(value = "/admin/account/accountController/saveBatchAccountInfo") @@ -276,8 +280,18 @@ public interface AccountService { /** * 批量保存accountInfo + * * @return */ @PostMapping(value = "/admin/account/accountController/findOneAccountUserBase") AccountUserBase findOneAccountUserBase(@RequestBody AccountUserBase accountUserBase); + + /** + * 获取某个系统配置的值-远程调用系统内部使用 + * + * @param config_key + * @return + */ + @PostMapping(value = "/admin/account/account-base-config/get/value") + String getAccountBaseConfigValue(@RequestParam(name = "config_key") String config_key); } diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStorePrinterTemplate.java b/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStorePrinterTemplate.java index 0f0ec493..ffc564c8 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStorePrinterTemplate.java +++ b/mall-common/src/main/java/com/suisung/mall/common/modules/store/ShopStorePrinterTemplate.java @@ -41,6 +41,9 @@ public class ShopStorePrinterTemplate implements Serializable { @ApiModelProperty(value = "门店ID,0-门店公用的模版") private Integer store_id; + @ApiModelProperty(value = "用户自定义模版名称") + private String cust_name; + @ApiModelProperty(value = "模版名称") private String template_name; diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java index c5f3ba5a..777e6228 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java @@ -16,10 +16,12 @@ import com.suisung.mall.shop.lakala.service.LakalaApiService; import com.suisung.mall.shop.library.service.LibraryProductService; import com.suisung.mall.shop.message.service.MqMessageService; import com.suisung.mall.shop.message.service.PushMessageService; +import com.suisung.mall.shop.order.service.ShopOrderBaseService; import com.suisung.mall.shop.order.service.ShopOrderReturnService; import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportBaseService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.springframework.context.annotation.Lazy; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.util.Base64Utils; @@ -36,21 +38,31 @@ import java.util.List; @RequestMapping("/mobile/shop/lakala") public class LakalaController extends BaseControllerImpl { + @Lazy @Resource private LakalaApiService lakalaPayService; + @Lazy @Resource private ShopOrderReturnService shopOrderReturnService; + @Lazy @Resource private LibraryProductService libraryProductService; + @Lazy @Resource private ShopStoreSameCityTransportBaseService storeSameCityTransportBaseService; + @Lazy @Resource private PushMessageService pushMessageService; + @Lazy + @Resource + private ShopOrderBaseService shopOrderBaseService; + + @Lazy @Resource private MqMessageService mqMessageService; @@ -76,15 +88,17 @@ public class LakalaController extends BaseControllerImpl { // List clientIds = JSONUtil.toList(paramsJSON.getJSONArray("clientIds"), String.class); // return pushMessageService.sendMessage(clientIds, paramsJSON.getStr("title"), paramsJSON.getStr("content"), paramsJSON.getJSONObject("payload")); - JSONObject jsonObject = new JSONObject(); - String orderId = "DD-20250725-1"; - jsonObject.put("category", 1); - jsonObject.put("orderId", "DD-20250725-1"); - jsonObject.put("storeId", 12); - jsonObject.put("title", "有一笔已超时的订单!"); - jsonObject.put("message", "您有一笔已超时的订单[" + orderId + "],请及时处理。"); - mqMessageService.sendDelayMessage(jsonObject.toString(), 10000); - return jsonObject; +// JSONObject jsonObject = new JSONObject(); +// String orderId = "DD-20250725-1"; +// jsonObject.put("category", 1); +// jsonObject.put("orderId", "DD-20250725-1"); +// jsonObject.put("storeId", 12); +// jsonObject.put("title", "有一笔已超时的订单!"); +// jsonObject.put("message", "您有一笔已超时的订单[" + orderId + "],请及时处理。"); +// mqMessageService.sendDelayMessage(jsonObject.toString(), 10000); +// return jsonObject; + + return shopOrderBaseService.sameCityOrderExpireSeconds(10000L); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/controller/admin/ShopOrderBaseController.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/controller/admin/ShopOrderBaseController.java index 24b4d39b..135e3c40 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/controller/admin/ShopOrderBaseController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/controller/admin/ShopOrderBaseController.java @@ -21,6 +21,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; @@ -42,20 +43,24 @@ import java.util.stream.Collectors; @Slf4j public class ShopOrderBaseController extends BaseControllerImpl { - private static final long mchOrderExpireSeconds = 1500; // 25分钟超时,60秒*25分钟 = 1500秒 + @Lazy @Autowired private ShopOrderBaseService shopOrderBaseService; + @Lazy @Autowired private ShopOrderItemService itemService; + @Lazy @Autowired private ShopOrderDeliveryAddressService addressService; + @Lazy @Autowired private ShopOrderStateLogService stateLogService; + @Lazy @Autowired private ShopOrderInfoService shopOrderInfoService; @@ -322,6 +327,9 @@ public class ShopOrderBaseController extends BaseControllerImpl { return CommonResult.failed(ResultCode.FORBIDDEN); } + // 同城订单超时秒数 + long mchOrderExpireSeconds = shopOrderBaseService.sameCityOrderExpireSeconds(2100L); // 35分钟超时,60秒*35分钟 = 2100秒 + // === 构建响应数据 === Map respMap = new HashMap<>(); // 订单列表数据(缓存时间25分钟) @@ -355,6 +363,9 @@ public class ShopOrderBaseController extends BaseControllerImpl { return CommonResult.failed(ResultCode.VALIDATE_FAILED); } + // 同城订单超时秒数 + long mchOrderExpireSeconds = shopOrderBaseService.sameCityOrderExpireSeconds(2100L); // 35分钟超时,60秒*35分钟 = 2100秒 + // 2. 获取订单详情 MchOrderInfoDTO mchOrderInfoDTO = shopOrderBaseService.getMchOrderDetail(orderId, mchOrderExpireSeconds); if (mchOrderInfoDTO == null) { diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderBaseService.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderBaseService.java index b3b31ec2..aed9ecbd 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderBaseService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/ShopOrderBaseService.java @@ -597,13 +597,12 @@ public interface ShopOrderBaseService extends IBaseService { */ WxOrderBaseInfoDTO getWxOrderBaseInfo(String orderId); + /** - * 预处理发货订单超时消息(发到 mq 里,触发超时事件,发出推送消息) + * 获取同城配送最大有效时间(单位:秒) * - * @param storeId 店铺Id - * @param orderId 订单Id - * @param expireSeconds 配送超时的秒数,单位秒 + * @param defaultValue 指定默认值,如果获取不到值,则返回此默认值 * @return */ -// Boolean preSendExpiredSFOrderPushMessage(Integer storeId, String orderId, Long expireSeconds); + Long sameCityOrderExpireSeconds(Long defaultValue); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java index aface7ea..2ab78b2f 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java @@ -8358,6 +8358,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl shopStoreOrderProductPrintVOList = shopOrderItemService.selectOrderItemPrintInfo(orderId); if (CollUtil.isEmpty(shopStoreOrderProductPrintVOList)) { return null; @@ -8383,14 +8384,15 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl * @return */ List selectPrinterList(Integer storeId); + + /** + * 测试打印 + * + * @param printerId 打印机Id + **/ + CommonResult tryPrint(Long printerId); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStorePrinterServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStorePrinterServiceImpl.java index fe97f40a..251914da 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStorePrinterServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStorePrinterServiceImpl.java @@ -15,6 +15,7 @@ import com.suisung.mall.common.modules.store.ShopStorePrinter; import com.suisung.mall.common.modules.store.ShopStorePrinterLog; import com.suisung.mall.common.modules.store.ShopStorePrinterTemplate; import com.suisung.mall.common.pojo.vo.ShopStorePrinterVO; +import com.suisung.mall.common.utils.CheckUtil; import com.suisung.mall.common.utils.FreeMakerUtils; import com.suisung.mall.common.utils.JsonUtil; import com.suisung.mall.core.web.service.impl.BaseServiceImpl; @@ -306,8 +307,8 @@ public class ShopStorePrinterServiceImpl extends BaseServiceImpl printerSnList = new ArrayList<>(); + printerSnList.add(printer.getPrinter_sn()); + + List> respList = feieUtil.printContentByList(printerSnList, printContent); + if (CollUtil.isEmpty(respList)) { + logger.error("调用飞鹅打印机{},打印失败。", printer.getPrinter_sn()); + return CommonResult.failed("调用打印机打印失败。"); + } + + logger.debug("#### 调用飞鹅打票机的打印操作结束 ####"); + return CommonResult.success("", "打印成功"); + + } catch (Exception e) { + logger.error("打印测试过程中发生异常,打印机ID: {}", printerId, e); + return CommonResult.failed("打印测试失败: " + e.getMessage()); + } + } + + } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStorePrinterTemplateServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStorePrinterTemplateServiceImpl.java index f1d85b91..ed02d601 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStorePrinterTemplateServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStorePrinterTemplateServiceImpl.java @@ -6,9 +6,11 @@ import com.suisung.mall.common.modules.store.ShopStorePrinterTemplate; import com.suisung.mall.core.web.service.impl.BaseServiceImpl; import com.suisung.mall.shop.store.mapper.ShopStorePrinterTemplateMapper; import com.suisung.mall.shop.store.service.ShopStorePrinterTemplateService; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +@Slf4j @Service public class ShopStorePrinterTemplateServiceImpl extends BaseServiceImpl implements ShopStorePrinterTemplateService { @@ -25,23 +27,37 @@ public class ShopStorePrinterTemplateServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("store_id", storeId); - queryWrapper.eq("category", category); - queryWrapper.orderByAsc("template_id"); - ShopStorePrinterTemplate shopStorePrinterTemplate = findOne(queryWrapper); - if (shopStorePrinterTemplate == null || shopStorePrinterTemplate.getTemplate_id() <= 0) { - queryWrapper.clear(); - queryWrapper.eq("store_id", 0);// 公共下单模版 - queryWrapper.eq("category", category); - queryWrapper.orderByAsc("template_id"); - shopStorePrinterTemplate = findOne(queryWrapper); - } + try { + // 查询店铺特定模板 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("store_id", storeId != null ? storeId : 0) + .eq("category", category) + .orderByAsc("template_id"); - return shopStorePrinterTemplate; + ShopStorePrinterTemplate shopStorePrinterTemplate = findOne(queryWrapper); + + // 如果店铺特定模板不存在,查询公共模板 + if (shopStorePrinterTemplate == null || shopStorePrinterTemplate.getTemplate_id() <= 0) { + queryWrapper.clear(); + queryWrapper.eq("store_id", 0) + .eq("category", category) + .orderByAsc("template_id"); + + shopStorePrinterTemplate = findOne(queryWrapper); + } + + return shopStorePrinterTemplate; + } catch (Exception e) { + // 记录异常日志,便于问题排查 + log.error("获取打印模板时发生异常,storeId: {}, category: {}", storeId, category, e); + // 发生异常时返回null,确保调用方能正确处理 + return null; + } } + } diff --git a/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml b/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml index 88fa80e7..d3bfb19a 100644 --- a/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml +++ b/mall-shop/src/main/resources/mapper/order/ShopOrderBaseMapper.xml @@ -535,7 +535,8 @@ a.order_id,a.store_id,a.store_name,a.buyer_user_id, a.buyer_user_name,a.order_time,a.order_payment_amount,a.order_product_amount, b.order_title, b.delivery_type_id, b.payment_type_id, b.payment_time, b.order_pickup_num, - c.order_message, c.order_item_amount, c.order_shipping_fee,c.delivery_time, c.order_shipping_fee_amount, + c.order_message, c.order_item_amount, c.order_shipping_fee, c.order_shipping_fee_amount, c.delivery_time, + (c.order_discount_amount + c.voucher_price + c.order_points_fee + c.order_adjust_fee) as total_discount_amount, e.store_tel, f.da_province,f.da_city,f.da_address,f.da_mobile, f.order_id, g.payment_channel_id, h.payment_channel_name diff --git a/mall-shop/src/main/resources/templates/order_printer.txt b/mall-shop/src/main/resources/templates/order_printer.txt index 61a26f50..6841dd09 100644 --- a/mall-shop/src/main/resources/templates/order_printer.txt +++ b/mall-shop/src/main/resources/templates/order_printer.txt @@ -50,4 +50,10 @@ 格式化的示例: -小发同城
--------------------------------
#00019232
买家备注:不用敲门,放在门口旁边的外卖箱,打个电话告知送达就行,谢谢!!!
配送时间:2024-10-25 14:00-14:30
--------------------------------
订单编号:ES20231026111444527685
订单来源:微信小程序
支付方式:微信支付
配送来源:顺丰同城
付款时间:2024-10-25 14:00:23
--------------------------------
商品名称 数量 金额
--------------------------------
可口可乐CocaC x110 8100.45
ola经典美味汽水1.2
5L/瓶
6970448170051
排骨约350g(默 1 150.13
认砍小块)
6970448170053
新鲜虫草花1包约2 x11 4.01
00g 韭菜1000g 鸡蛋
2003克
6970448170054
冰红茶风味饮料 1 13.24
6970448170055
--------------------------------
商品总件数:3
商品总额:¥18.7
押金:¥500
运费:¥5.54
会员权益:-¥50
秒杀:-¥100
实付金额:¥428.9元
--------------------------------
商家备注:老顾客赠送一箱牛奶;玻璃瓶包装轻拿轻放!
--------------------------------
收货人:张三
收货人手机:13128778765
收货地址:北京市朝阳区朝阳路朝阳人民小区1号楼1栋1101
--------------------------------
门店:岛内价生活超市
门店电话:13665822542
收银员:李小璐
\ No newline at end of file +小发同城
--------------------------------
#00019232
买家备注:不用敲门,放在门口旁边的外卖箱,打个电话告知送达就行,谢谢!!!
配送时间:2024-10-25 14:00-14:30
--------------------------------
订单编号:ES20231026111444527685
订单来源:微信小程序
支付方式:微信支付
配送来源:顺丰同城
付款时间:2024-10-25 14:00:23
--------------------------------
商品名称 数量 金额
--------------------------------
可口可乐CocaC x110 8100.45
ola经典美味汽水1.2
5L/瓶
6970448170051
排骨约350g(默 1 150.13
认砍小块)
6970448170053
新鲜虫草花1包约2 x11 4.01
00g 韭菜1000g 鸡蛋
2003克
6970448170054
冰红茶风味饮料 1 13.24
6970448170055
--------------------------------
商品总件数:3
商品总额:¥18.7
押金:¥500
运费:¥5.54
会员权益:-¥50
秒杀:-¥100
实付金额:¥428.9元
--------------------------------
商家备注:老顾客赠送一箱牛奶;玻璃瓶包装轻拿轻放!
--------------------------------
收货人:张三
收货人手机:13128778765
收货地址:北京市朝阳区朝阳路朝阳人民小区1号楼1栋1101
--------------------------------
门店:岛内价生活超市
门店电话:13665822542
收银员:李小璐
+ +第一版带变量的模版: +${store_name}
--------------------------------
#${order_pickup_num_str}
买家备注:${order_message!'-'}
配送时间:${payment_time?string('MM-dd HH:mm')}~${delivery_time?string('HH:mm')}
--------------------------------
订单编号:${order_id}
订单来源:微信小程序
支付方式:微信支付
配送来源:顺丰同城
付款时间:${payment_time?string('yyyy-MM-dd HH:mm:ss')}
--------------------------------
商品名称 数量 金额
--------------------------------
<#list order_items as item>${item.s_name}${item.s_quantity}${item.s_amount}
<#if item.s_name_segs??><#list item.s_name_segs as seg>${seg}
<#if item.product_sn?default("")?trim?length gt 1>${item.product_sn}
--------------------------------
商品总件数:${order_items_count!0}
商品总额:¥${order_product_amount?string('0.00')}
押金:¥${(yajin!0)?string('0.00')}
运费:¥${order_shipping_fee?string('0.00')}
会员权益:-¥${(quanyi!0)?string('0.00')}
秒杀:-¥${(miaosha!0)?string('0.00')}
实付金额:¥${order_payment_amount?string('0.00')}
<#if seller_message?default("")?trim?length gt 1>--------------------------------
商家备注:${seller_message!'-'}
--------------------------------
收货人:${buyer_user_name!''}
收货人手机:${da_mobile!'-'}
收货地址:${da_province!'-'}${da_city!'-'}${da_address!'-'}
--------------------------------
门店:${store_name}
门店电话:${store_tel!'-'}
收银员:${cashier!'店长'}
+ +第二版带变量的模版: +${store_name}
--------------------------------
#${order_pickup_num_str}
买家备注:${order_message!'-'}
配送时间:${payment_time?string('MM-dd HH:mm')}~${delivery_time?string('HH:mm')}
--------------------------------
订单编号:${order_id}
订单来源:微信小程序
支付方式:微信支付
配送来源:顺丰同城
付款时间:${payment_time?string('yyyy-MM-dd HH:mm:ss')}
--------------------------------
商品名称 数量 金额
--------------------------------
<#list order_items as item>${item.s_name}${item.s_quantity}${item.s_amount}
<#if item.s_name_segs??><#list item.s_name_segs as seg>${seg}
<#if item.product_sn?default("")?trim?length gt 1>${item.product_sn}
--------------------------------
商品总件数:${order_items_count!0}
商品总额:¥${order_product_amount?string('0.00')}
运费:¥${order_shipping_fee?string('0.00')}
优惠金额:-¥${(quanyi!0)?string('0.00')}
实付金额:¥${order_payment_amount?string('0.00')}
<#if seller_message?default("")?trim?length gt 1>--------------------------------
商家备注:${seller_message!'-'}
--------------------------------
收货人:${buyer_user_name!''}
收货人手机:${da_mobile!'-'}
收货地址:${da_province!'-'}${da_city!'-'}${da_address!'-'}
--------------------------------
门店:${store_name}
门店电话:${store_tel!'-'}
收银员:${cashier!'店长'}
\ No newline at end of file