【新增】增加易联云小票打印机后台配置表【CoreCmsPrinter】,取消使用配置文件配置,并且支持多台打印机绑定不同门店,实现不同门店不同打印机打单。

This commit is contained in:
大灰灰
2022-09-17 02:54:50 +08:00
parent 1fc786d39c
commit 790237fa6c
52 changed files with 3209 additions and 387 deletions

View File

@@ -0,0 +1,210 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2022/9/16 20:41:09
* Description: 暂无
***********************************************************************/
using SqlSugar;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace CoreCms.Net.Model.Entities
{
/// <summary>
/// 打印机列表
/// </summary>
public partial class CoreCmsPrinter
{
/// <summary>
/// 构造函数
/// </summary>
public CoreCmsPrinter()
{
}
/// <summary>
/// 序列
/// </summary>
[Display(Name = "序列")]
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
[Required(ErrorMessage = "请输入{0}")]
public System.Int32 id { get; set; }
/// <summary>
/// 应用名称
/// </summary>
[Display(Name = "应用名称")]
[Required(ErrorMessage = "请输入{0}")]
[StringLength(maximumLength: 50, ErrorMessage = "{0}不能超过{1}字")]
public System.String name { get; set; }
/// <summary>
/// 应用编码
/// </summary>
[Display(Name = "应用编码")]
[Required(ErrorMessage = "请输入{0}")]
[StringLength(maximumLength: 50, ErrorMessage = "{0}不能超过{1}字")]
public System.String code { get; set; }
/// <summary>
/// 易联云应用id
/// </summary>
[Display(Name = "易联云应用id")]
[Required(ErrorMessage = "请输入{0}")]
[StringLength(maximumLength: 50, ErrorMessage = "{0}不能超过{1}字")]
public System.String clientId { get; set; }
/// <summary>
/// 易联云应用密钥
/// </summary>
[Display(Name = "易联云应用密钥")]
[Required(ErrorMessage = "请输入{0}")]
[StringLength(maximumLength: 50, ErrorMessage = "{0}不能超过{1}字")]
public System.String clientSecret { get; set; }
/// <summary>
/// 易联云终端号
/// </summary>
[Display(Name = "易联云终端号")]
[Required(ErrorMessage = "请输入{0}")]
[StringLength(maximumLength: 50, ErrorMessage = "{0}不能超过{1}字")]
public System.String machineCode { get; set; }
/// <summary>
/// 易联云终端密钥
/// </summary>
[Display(Name = "易联云终端密钥")]
[Required(ErrorMessage = "请输入{0}")]
[StringLength(maximumLength: 50, ErrorMessage = "{0}不能超过{1}字")]
public System.String msign { get; set; }
/// <summary>
/// 打印机名称
/// </summary>
[Display(Name = "打印机名称")]
[Required(ErrorMessage = "请输入{0}")]
[StringLength(maximumLength: 50, ErrorMessage = "{0}不能超过{1}字")]
public System.String printerName { get; set; }
/// <summary>
/// 联系电话
/// </summary>
[Display(Name = "联系电话")]
[Required(ErrorMessage = "请输入{0}")]
[StringLength(maximumLength: 50, ErrorMessage = "{0}不能超过{1}字")]
public System.String phone { get; set; }
/// <summary>
/// 访问令牌API调用时需要令牌可以重复使用无失效时间请开发者全局保存
/// </summary>
[Display(Name = "访问令牌API调用时需要令牌可以重复使用无失效时间请开发者全局保存")]
[StringLength(maximumLength: 50, ErrorMessage = "{0}不能超过{1}字")]
public System.String accessToken { get; set; }
/// <summary>
/// 更新access_token所需有效时间35天
/// </summary>
[Display(Name = "更新access_token所需有效时间35天")]
[StringLength(maximumLength: 50, ErrorMessage = "{0}不能超过{1}字")]
public System.String refreshToken { get; set; }
/// <summary>
/// 令牌的有效时间,单位秒 (30天),注:该模式下可忽略此参数
/// </summary>
[Display(Name = "令牌的有效时间,单位秒 (30天),注:该模式下可忽略此参数")]
public System.Int32? expiresIn { get; set; }
/// <summary>
/// 有效期截止时间
/// </summary>
[Display(Name = "有效期截止时间")]
public System.DateTime? expiressEndTime { get; set; }
/// <summary>
/// 其他参数
/// </summary>
[Display(Name = "其他参数")]
public System.String parameters { get; set; }
/// <summary>
/// 创建时间
/// </summary>
[Display(Name = "创建时间")]
[Required(ErrorMessage = "请输入{0}")]
public System.DateTime createTime { get; set; }
/// <summary>
/// 是否默认
/// </summary>
[Display(Name = "是否默认")]
[Required(ErrorMessage = "请输入{0}")]
public System.Boolean isDefault { get; set; }
/// <summary>
/// 是否开启
/// </summary>
[Display(Name = "是否开启")]
[Required(ErrorMessage = "请输入{0}")]
public System.Boolean isOpen { get; set; }
/// <summary>
/// 绑定门店
/// </summary>
[Display(Name = "绑定门店")]
[Required(ErrorMessage = "请输入{0}")]
public System.Int32 storeId { get; set; }
}
}

View File

@@ -0,0 +1,67 @@
using CoreCms.Net.Model.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CoreCms.Net.Model.ViewModels.YiLianYun
{
/// <summary>
/// 易联云全局配置
/// </summary>
public static class YiLianYunConfig
{
/// <summary>
/// 授权相关地址
/// </summary>
public const string AuthUrl = "https://open-api.10ss.net/oauth/oauth";
/// <summary>
/// 获取终端状态地址
/// </summary>
public const string GetPrintStatusUrl = "https://open-api.10ss.net/printer/getprintstatus";
/// <summary>
/// 文本打印地址
/// </summary>
public const string PrintTextUrl = "https://open-api.10ss.net/print/index";
/// <summary>
/// 小票打印模板
/// </summary>
public static StringBuilder PrintTmpModel(CoreCmsOrder listResult)
{
var printStr = new StringBuilder();
printStr.Append("<center>--" + "支付" + "订单--</center>\r");
printStr.Append("................................\r");
printStr.Append("<center>-- -</center>\r");
printStr.Append("下单时间:" + listResult.createTime + "\r");
printStr.Append("订单编号:" + listResult.orderId + "\r");
printStr.Append("**************商品**************\r");
printStr.Append("<center>--购买明细--</center>\r");
//printStr.Append("<center>--其他消费--</center>\r");
//printStr.Append("餐盒 1 2\r");
printStr.Append("................................\r");
printStr.Append("积分抵扣:¥" + listResult.pointMoney + "\r");
printStr.Append("订单优惠:¥" + listResult.orderDiscountAmount + "\r");
printStr.Append("商品优惠:¥" + listResult.goodsDiscountAmount + "\r");
printStr.Append("优惠券:¥" + listResult.couponDiscountAmount + "\r");
printStr.Append("总价:¥" + listResult.orderAmount + "\r");
printStr.Append("*******************************\r");
printStr.Append("区域:" + listResult.shipAreaName + "\r");
printStr.Append("地址:" + listResult.shipAddress + "\r");
printStr.Append("联系:" + listResult.shipName + " " + listResult.shipMobile + "\r");
printStr.Append("***************完结*************\r");
return printStr;
}
}
}

View File

@@ -0,0 +1,184 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CoreCms.Net.Model.ViewModels.YiLianYun
{
/// <summary>
/// 易联云获取accessToken请求实体
/// </summary>
public class YiLianYunParam
{
/// <summary>
/// 易联云颁发给开发者的应用ID 非空值
/// </summary>
public string client_id { get; set; }
/// <summary>
/// 授与方式(固定为'client_credentials'
/// </summary>
public string grant_type { get; set; } = "client_credentials";
/// <summary>
/// 签名 详见API文档列表-接口签名
/// </summary>
public string sign { get; set; }
/// <summary>
/// 授权权限传all
/// </summary>
public string scope { get; set; } = "all";
/// <summary>
/// 当前服务器时间戳(10位)
/// </summary>
public int timestamp { get; set; }
/// <summary>
/// 36位随机用来唯一标记此次调用响应对象中会包含相同的id。UUID以36字节的字符串表示
/// </summary>
public string id { get; set; }
}
/// <summary>
/// 使用Refresh token更新Access Token请求实体
/// </summary>
public class RefreshYiLianYunToken
{
/// <summary>
/// 易联云颁发给开发者的应用ID 非空值
/// </summary>
public string client_id { get; set; }
/// <summary>
/// 更新access_token所需
/// </summary>
public string refresh_token { get; set; }
/// <summary>
/// 授与方式(固定为'client_credentials'
/// </summary>
public string grant_type { get; set; } = "client_credentials";
/// <summary>
/// 签名 详见API文档列表-接口签名
/// </summary>
public string sign { get; set; }
/// <summary>
/// 授权权限传all
/// </summary>
public string scope { get; set; } = "all";
/// <summary>
/// 当前服务器时间戳(10位)
/// </summary>
public int timestamp { get; set; }
/// <summary>
/// 36位随机用来唯一标记此次调用响应对象中会包含相同的id。UUID以36字节的字符串表示
/// </summary>
public string id { get; set; }
}
/// <summary>
/// 使用Refresh token更新Access Token请求实体
/// </summary>
public class GetPrintStatusParam
{
/// <summary>
/// 易联云颁发给开发者的应用ID 非空值
/// </summary>
public string client_id { get; set; }
/// <summary>
/// 授权的token 必要参数
/// </summary>
public string access_token { get; set; }
/// <summary>
/// 易联云打印机终端号
/// </summary>
public string machine_code { get; set; }
/// <summary>
/// 签名 详见API文档列表-接口签名
/// </summary>
public string sign { get; set; }
/// <summary>
/// 当前服务器时间戳(10位)
/// </summary>
public int timestamp { get; set; }
/// <summary>
/// 36位随机用来唯一标记此次调用响应对象中会包含相同的id。UUID以36字节的字符串表示
/// </summary>
public string id { get; set; }
}
/// <summary>
/// 打印提交数据
/// </summary>
public class WordPrintRespone
{
/// <summary>
/// 开发者的应用ID在开放平台创建应用时获得
/// </summary>
public string client_id { get; set; }
/// <summary>
/// 授权的token 必要参数
/// </summary>
public string access_token { get; set; }
/// <summary>
/// 易联云打印机终端号
/// </summary>
public string machine_code { get; set; }
/// <summary>
/// 打印内容(需要urlencode),排版指令详见打印机指令
/// </summary>
public string content { get; set; }
/// <summary>
/// 为 1 时origin_id 进行幂等处理,请确定 origin_id 的唯一性
/// </summary>
public int idempotence { get; set; }
/// <summary>
/// 商户系统内部订单号要求32个字符内只能是数字、大小写字母 且在同一个client_id下唯一。详见商户订单号
/// </summary>
public string origin_id { get; set; }
/// <summary>
/// int
/// </summary>
public int timestamp { get; set; }
/// <summary>
/// 签名 详见API文档列表-接口签名
/// </summary>
public string sign { get; set; }
/// <summary>
/// idUUID4 详见API文档列表-uuid4
/// </summary>
public string id { get; set; }
}
}

View File

@@ -0,0 +1,101 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CoreCms.Net.Model.ViewModels.YiLianYun
{
/// <summary>
/// 易联云授权返回数据
/// </summary>
public class YiLianYunAuthResult
{
/// <summary>
/// 返回状态码
/// </summary>
public string error { get; set; }
/// <summary>
/// 状态码说明
/// </summary>
public string error_description { get; set; }
/// <summary>
/// 结果集
/// </summary>
public Body body { get; set; }
/// <summary>
/// 结果集详情
/// </summary>
public class Body
{
public string access_token { get; set; }
public string refresh_token { get; set; }
public object machine_code { get; set; }
public int expires_in { get; set; }
public string scope { get; set; }
}
}
/// <summary>
/// 获取机器在线状态
/// </summary>
public class YiLianYunGetPrintStatusResult
{
/// <summary>
/// 返回状态码
/// </summary>
public string error { get; set; }
/// <summary>
/// 状态码说明
/// </summary>
public string error_description { get; set; }
/// <summary>
/// 结果集
/// </summary>
public Body body { get; set; }
/// <summary>
/// 结果集详情
/// </summary>
public class Body
{
public string state { get; set; }
}
}
/// <summary>
/// 文本打印返回结果集
/// </summary>
public class YiLianYunGetPrintTextResult
{
/// <summary>
/// 返回状态码
/// </summary>
public string error { get; set; }
/// <summary>
/// 状态码说明
/// </summary>
public string error_description { get; set; }
/// <summary>
/// 结果集
/// </summary>
public Body body { get; set; }
/// <summary>
/// 结果集详情
/// </summary>
public class Body
{
/// <summary>
/// 订单号
/// </summary>
public string id { get; set; }
public string origin_id { get; set; }
}
}
}