diff --git a/.gitignore b/.gitignore
index 70a39056..cb1cab34 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,6 +25,7 @@ hs_err_pid*
#maven忽略文件
HELP.md
target/
+target
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
diff --git a/mall-common/pom.xml b/mall-common/pom.xml
index 37445705..9b3c8b26 100644
--- a/mall-common/pom.xml
+++ b/mall-common/pom.xml
@@ -193,6 +193,13 @@
com.alibaba.csp
sentinel-web-servlet
+
+
+
+ org.springframework.boot
+ spring-boot-starter-freemarker
+
+
diff --git a/mall-common/src/main/java/com/suisung/mall/common/pojo/vo/ShopStoreOrderPrintVO.java b/mall-common/src/main/java/com/suisung/mall/common/pojo/vo/ShopStoreOrderPrintVO.java
new file mode 100644
index 00000000..63d37213
--- /dev/null
+++ b/mall-common/src/main/java/com/suisung/mall/common/pojo/vo/ShopStoreOrderPrintVO.java
@@ -0,0 +1,120 @@
+package com.suisung.mall.common.pojo.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ *
+ * 门店打票机打印的订单实体
+ *
+ *
+ * @author panjunjie
+ * @since 2024-10-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel(value = "ShopStoreOrderPrint显示对象", description = "门店订单打印实体类")
+public class ShopStoreOrderPrintVO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ // 门店相关信息
+ @ApiModelProperty(value = "门店ID")
+ private Integer store_id;
+
+ @ApiModelProperty(value = "门店名称")
+ private String store_name;
+
+ @ApiModelProperty(value = "门店电话")
+ private String store_tel;
+
+ @ApiModelProperty(value = "门店地址")
+ private String store_address;
+
+ @ApiModelProperty(value = "收银员")
+ private String cashier;
+
+ @ApiModelProperty(value = "商家订单备注")
+ private String seller_order_remark;
+
+ @ApiModelProperty(value = "取货单号")
+ private String fetch_no;
+
+ // 买家相关信息
+ @ApiModelProperty(value = "买家订单备注")
+ private String buyer_order_remark;
+
+ // 订单相关信息
+ @ApiModelProperty(value = "订单编号")
+ private String order_id;
+
+ @ApiModelProperty(value = "订单来源")
+ private String order_source;
+
+ @ApiModelProperty(value = "支付方式")
+ private String pay_type;
+
+ @ApiModelProperty(value = "配送来源")
+ private String shipper_type;
+
+ @ApiModelProperty(value = "付款时间")
+ private String pay_time;
+
+ @ApiModelProperty(value = "配送时间区间")
+ private String delivery_time_range;
+
+ // 价格相关
+ @ApiModelProperty(value = "商品发布原价")
+ private Long order_product_amount;
+
+ @ApiModelProperty(value = "订单商品金额")
+ private Long order_goods_amount;
+
+ @ApiModelProperty(value = "订单折扣金额")
+ private Long order_discount_amount;
+
+ @ApiModelProperty(value = "订单配送费用")
+ private Long order_shipping_fee;
+
+ @ApiModelProperty(value = "订单优惠券金额")
+ private Long order_voucher_price;
+
+ @ApiModelProperty(value = "订单积分费用")
+ private Long order_points_fee;
+
+ @ApiModelProperty(value = "订单调整费用")
+ private Long order_adjust_fee;
+
+ @ApiModelProperty(value = "实际应付款")
+ private Long order_payment_amount;
+
+ // 订单商品详情信息
+ @ApiModelProperty(value = "订单商品详情信息")
+ private ShopStoreOrderProductPrintVO order_item;
+
+ @ApiModelProperty(value = "状态:1-有效;2-无效;")
+ private Integer status;
+
+ @ApiModelProperty(value = "新增用户ID")
+ private Integer created_by;
+
+ @ApiModelProperty(value = "更新用户ID")
+ private Integer updated_by;
+
+ @ApiModelProperty(value = "新增时间")
+ private Date created_at;
+
+ @ApiModelProperty(value = "修改时间")
+ private Date updated_at;
+}
diff --git a/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/ProductSimpleInfo.java b/mall-common/src/main/java/com/suisung/mall/common/pojo/vo/ShopStoreOrderProductPrintVO.java
similarity index 71%
rename from mall-common/src/main/java/com/suisung/mall/common/pojo/dto/ProductSimpleInfo.java
rename to mall-common/src/main/java/com/suisung/mall/common/pojo/vo/ShopStoreOrderProductPrintVO.java
index 6581783e..3b29b69d 100644
--- a/mall-common/src/main/java/com/suisung/mall/common/pojo/dto/ProductSimpleInfo.java
+++ b/mall-common/src/main/java/com/suisung/mall/common/pojo/vo/ShopStoreOrderProductPrintVO.java
@@ -1,4 +1,4 @@
-package com.suisung.mall.common.pojo.dto;
+package com.suisung.mall.common.pojo.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
@@ -9,7 +9,7 @@ import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
-public class ProductSimpleInfo implements Serializable {
+public class ShopStoreOrderProductPrintVO implements Serializable {
private String product_sn;
private String title;
private Integer num;
diff --git a/mall-common/src/main/java/com/suisung/mall/common/utils/FreeMakerUtils.java b/mall-common/src/main/java/com/suisung/mall/common/utils/FreeMakerUtils.java
new file mode 100644
index 00000000..8caa54a6
--- /dev/null
+++ b/mall-common/src/main/java/com/suisung/mall/common/utils/FreeMakerUtils.java
@@ -0,0 +1,53 @@
+package com.suisung.mall.common.utils;
+
+import freemarker.cache.StringTemplateLoader;
+import freemarker.template.Configuration;
+import freemarker.template.Template;
+import freemarker.template.TemplateException;
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.Map;
+
+@Slf4j
+public class FreeMakerUtils {
+
+ /**
+ * 配置 freemark configuration
+ *
+ * @return
+ */
+ private Configuration stringTempConfiguration() {
+ Configuration cfg = new Configuration(Configuration.VERSION_2_3_23);
+ StringTemplateLoader stringLoader = new StringTemplateLoader();
+ stringTempConfiguration().setTemplateLoader(stringLoader);
+ cfg.setDefaultEncoding("UTF-8");
+ return cfg;
+ }
+
+ /**
+ * 解析模版
+ *
+ * @param configuration
+ * @param templateName
+ * @param templateValue
+ * @param binding
+ * @return
+ * @throws IOException
+ * @throws TemplateException
+ */
+ public String processTemplate(Configuration configuration, String templateName, String templateValue, Map binding) throws IOException, TemplateException {
+ StringWriter stringWriter = new StringWriter();
+ Template template = new Template(templateName, templateValue, configuration);
+ template.process(binding, stringWriter);
+ return stringWriter.toString();
+ }
+
+ public String processTemplate(String templateName, String templateValue, Map binding) throws IOException, TemplateException {
+ StringWriter stringWriter = new StringWriter();
+ Template template = new Template(templateName, templateValue, stringTempConfiguration());
+ template.process(binding, stringWriter);
+ return stringWriter.toString();
+ }
+}
diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterController.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterController.java
index dbd5c93c..85fb887d 100644
--- a/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterController.java
+++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/controller/admin/ShopStorePrinterController.java
@@ -45,6 +45,7 @@ public class ShopStorePrinterController {
ShopStorePrinter shopStorePrinter = new ShopStorePrinter();
shopStorePrinter.setModel_id(model_id);
+
shopStorePrinter.setPrinter_name(printer_name);
shopStorePrinter.setPrinter_sn(printer_sn);
shopStorePrinter.setPrinter_key(printer_key);
diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStorePrinterMapper.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStorePrinterMapper.java
index a02f6d24..b562a8f4 100644
--- a/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStorePrinterMapper.java
+++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/mapper/ShopStorePrinterMapper.java
@@ -27,4 +27,6 @@ public interface ShopStorePrinterMapper extends BaseMapper{
* @return
*/
IPage