1
This commit is contained in:
@@ -83,3 +83,21 @@ func (a *Auth2Controller) GetUserPhoneByWeChat(c *gin.Context) {
|
|||||||
return map[string]interface{}{"phone": phone}, "", nil
|
return map[string]interface{}{"phone": phone}, "", nil
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetToken4Jxc4 获取京西菜市授权用户创建门店,和创建门店美团关联
|
||||||
|
// @Title 获取京西菜市授权用户创建门店
|
||||||
|
// @Description 获取京西菜市授权用户创建门店
|
||||||
|
// @Success 200 {object} controllers.CallResult
|
||||||
|
// @Failure 200 {object} controllers.CallResult
|
||||||
|
// @router /getToken4Jxc4 [get]
|
||||||
|
func (a *Auth2Controller) GetToken4Jxc4(c *gin.Context) {
|
||||||
|
controllers.CallFunc(c, func() (retVal interface{}, errCode string, err error) {
|
||||||
|
service := app_server.UserLogin{}
|
||||||
|
token, err := service.GetJxc4Token()
|
||||||
|
if err != nil {
|
||||||
|
return nil, "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
return map[string]interface{}{"token": token}, "", nil
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package app
|
package app
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"git.rosy.net.cn/jx-print/controllers"
|
"git.rosy.net.cn/jx-print/controllers"
|
||||||
"git.rosy.net.cn/jx-print/model"
|
"git.rosy.net.cn/jx-print/model"
|
||||||
printModel "git.rosy.net.cn/jx-print/model/app_model"
|
printModel "git.rosy.net.cn/jx-print/model/app_model"
|
||||||
@@ -176,6 +177,12 @@ func (p *Print) TestPrint(c *gin.Context) {
|
|||||||
controllers.BuildErrJson(c, err)
|
controllers.BuildErrJson(c, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if param.OrderNo >= 999999999 {
|
||||||
|
controllers.BuildErrJson(c, errors.New("订单编号最多65536"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if tokenInfo = controllers.CheckToken(c); tokenInfo == nil {
|
if tokenInfo = controllers.CheckToken(c); tokenInfo == nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,3 +75,38 @@ func (p *PrintSettingDao) DeleteSetting(printNo []string) error {
|
|||||||
_, err := globals.GetDB().Exec(`DELETE FROM print_setting WHERE print_no in (?)`, []interface{}{printNo}...)
|
_, err := globals.GetDB().Exec(`DELETE FROM print_setting WHERE print_no in (?)`, []interface{}{printNo}...)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetUserPrintSetting 获取用户打印机设置
|
||||||
|
func (p *PrintSettingDao) GetUserPrintSetting(userId, printNo string) {
|
||||||
|
sql := `
|
||||||
|
SELECT
|
||||||
|
s.*
|
||||||
|
FROM
|
||||||
|
printer p
|
||||||
|
INNER JOIN print_setting s ON s.print_no = p.print_no
|
||||||
|
WHERE
|
||||||
|
p.user_id = ?
|
||||||
|
AND p.print_no = ?
|
||||||
|
`
|
||||||
|
param := []interface{}{userId, printNo}
|
||||||
|
|
||||||
|
var setting *settingModel.PrintSetting
|
||||||
|
if err := globals.GetDB().QueryRow(sql, param...).Scan(&setting); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if setting == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
//json.Unmarshal([]byte(setting.))
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryPrintSetting 查询打印机设置
|
||||||
|
func (p *PrintSettingDao) QueryPrintSetting(printNo string) (*settingModel.PrintSetting, error) {
|
||||||
|
var result *settingModel.PrintSetting
|
||||||
|
if err := globals.GetDB().QueryRow(`SELECT * FROM print_setting WHERE print_no = ? AND deleted_at = ?`, printNo, utils.DefaultTimeValue).Scan(&result); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return result, nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -59,12 +59,24 @@ func DeleteAllTemp(userId string, printNo []string) error {
|
|||||||
// SelectUserTemp 查询用户模板
|
// SelectUserTemp 查询用户模板
|
||||||
func SelectUserTemp(userId string) ([]*app_model.SystemTemp, error) {
|
func SelectUserTemp(userId string) ([]*app_model.SystemTemp, error) {
|
||||||
var result []*app_model.SystemTemp
|
var result []*app_model.SystemTemp
|
||||||
if err := globals.GetDB().Select(&result, `SELECT * FROM system_temp WHERE user_id = ? AND deleted_at = ? ORDER BY created_at desc `, []interface{}{userId}...); err != nil {
|
if err := globals.GetDB().Select(&result, `SELECT * FROM system_temp WHERE user_id = ? AND deleted_at = ? ORDER BY created_at desc `, []interface{}{userId, utils.DefaultTimeValue}...); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SelectUserDefaultTemp 查询用户默认模板
|
||||||
|
func SelectUserDefaultTemp(userId string, tempType string) (*app_model.SystemTemp, bool, error) {
|
||||||
|
var result []*app_model.SystemTemp
|
||||||
|
if err := globals.GetDB().Select(&result, `SELECT * FROM system_temp WHERE user_id = ? AND temp_type = ? AND is_use = ? AND deleted_at = ? ORDER BY created_at desc `, []interface{}{userId, tempType, 1, utils.DefaultTimeValue}...); err != nil {
|
||||||
|
return nil, false, err
|
||||||
|
}
|
||||||
|
if len(result) <= 0 {
|
||||||
|
return nil, false, nil
|
||||||
|
}
|
||||||
|
return result[0], true, nil
|
||||||
|
}
|
||||||
|
|
||||||
// QuerySystemTemp 查询系统模板
|
// QuerySystemTemp 查询系统模板
|
||||||
func QuerySystemTemp() ([]*app_model.SystemTemp, error) {
|
func QuerySystemTemp() ([]*app_model.SystemTemp, error) {
|
||||||
var result []*app_model.SystemTemp
|
var result []*app_model.SystemTemp
|
||||||
|
|||||||
@@ -19,6 +19,21 @@ type PrintSetting struct {
|
|||||||
PickingSetting string `orm:"type(varchar);size(255)" json:"picking_setting" db:"picking_setting"` // 拣货语音设置
|
PickingSetting string `orm:"type(varchar);size(255)" json:"picking_setting" db:"picking_setting"` // 拣货语音设置
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type PrintSettingObj struct {
|
||||||
|
ID int
|
||||||
|
CreatedAt time.Time
|
||||||
|
UpdatedAt time.Time
|
||||||
|
DeletedAt time.Time
|
||||||
|
PrintNo string // 打印机编号
|
||||||
|
CallNameSetting int // 称谓设置 [64-默认老板]
|
||||||
|
SystemVoice int // 平台语音开关[1打开]
|
||||||
|
PrintVoiceSetting *PrintVoice // 打印机提示语音设置
|
||||||
|
OrderVoiceSetting *OrderVoice // 订单提示设置
|
||||||
|
RiderVoiceSetting *RiderVoice // 骑手动态提示设置
|
||||||
|
CustomerVoiceSetting *CustomerReceivingGoods // 客户收货提示设置
|
||||||
|
PickingSetting *ShopPickingVoice // 拣货语音设置
|
||||||
|
}
|
||||||
|
|
||||||
// PrintVoice 打印机提示语音设置
|
// PrintVoice 打印机提示语音设置
|
||||||
type PrintVoice struct {
|
type PrintVoice struct {
|
||||||
TimeVoice int `json:"time_voice"` // 平台语音开关[1打开]
|
TimeVoice int `json:"time_voice"` // 平台语音开关[1打开]
|
||||||
|
|||||||
@@ -265,3 +265,40 @@ type CallBack struct {
|
|||||||
Code string `json:"code"`
|
Code string `json:"code"`
|
||||||
Desc string `json:"desc"`
|
Desc string `json:"desc"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type AutoGenerated struct {
|
||||||
|
Code string `json:"code"`
|
||||||
|
Desc string `json:"desc"`
|
||||||
|
Data struct {
|
||||||
|
UserID string `json:"userID"`
|
||||||
|
UserID2 string `json:"userID2"`
|
||||||
|
Mobile string `json:"mobile"`
|
||||||
|
Email string `json:"email"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
Avatar string `json:"avatar"`
|
||||||
|
AuthBindInfo struct {
|
||||||
|
ID int `json:"id"`
|
||||||
|
CreatedAt time.Time `json:"createdAt"`
|
||||||
|
UpdatedAt time.Time `json:"updatedAt"`
|
||||||
|
LastOperator string `json:"lastOperator"`
|
||||||
|
DeletedAt time.Time `json:"deletedAt"`
|
||||||
|
AuthID string `json:"authID"`
|
||||||
|
BindType int `json:"bindType"`
|
||||||
|
Type string `json:"type"`
|
||||||
|
TypeID string `json:"typeID"`
|
||||||
|
UserID string `json:"userID"`
|
||||||
|
Status int `json:"status"`
|
||||||
|
AuthID2 string `json:"authID2"`
|
||||||
|
Remark string `json:"remark"`
|
||||||
|
DetailData string `json:"detailData"`
|
||||||
|
UserData interface{} `json:"userData"`
|
||||||
|
UserHint interface{} `json:"userHint"`
|
||||||
|
} `json:"authBindInfo"`
|
||||||
|
LoginTime time.Time `json:"loginTime"`
|
||||||
|
ExpiresAt int `json:"expiresAt"`
|
||||||
|
Token string `json:"token"`
|
||||||
|
TokenType int `json:"tokenType"`
|
||||||
|
IsExistOpenID bool `json:"isExistOpenID"`
|
||||||
|
AppID string `json:"appId"`
|
||||||
|
} `json:"data"`
|
||||||
|
}
|
||||||
|
|||||||
@@ -11,4 +11,8 @@ func InitV3App(v2 *gin.RouterGroup) {
|
|||||||
|
|
||||||
appNo.POST("/getUserPhone", app.Auth2ControllerController.GetUserPhoneByWeChat) // 获取微信用户电话
|
appNo.POST("/getUserPhone", app.Auth2ControllerController.GetUserPhoneByWeChat) // 获取微信用户电话
|
||||||
appNo.POST("/login", app.Auth2ControllerController.Login) // 微信登录
|
appNo.POST("/login", app.Auth2ControllerController.Login) // 微信登录
|
||||||
|
|
||||||
|
//
|
||||||
|
appNo.POST("/getToken4Jxc4", app.Auth2ControllerController.GetToken4Jxc4) // 微信登录京西菜市,获取菜市token
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,6 +59,19 @@ func (p *PrintSettingServer) DeletePrintSetting(printNo []string) error {
|
|||||||
return dao.PrintSettingInfoDao.DeleteSetting(printNo)
|
return dao.PrintSettingInfoDao.DeleteSetting(printNo)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// QueryPrintSetting 查询用户打印机设置
|
||||||
|
func (p *PrintSettingServer) QueryPrintSetting(printNo string) (*settingModel.PrintSettingObj, error) {
|
||||||
|
PrintSetting, err := dao.PrintSettingInfoDao.QueryPrintSetting(printNo)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if PrintSetting == nil {
|
||||||
|
return nil, errors.New("打印机设置查询错误")
|
||||||
|
}
|
||||||
|
return UnMarshalString2Json(PrintSetting)
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalJson2String 工具类
|
||||||
func MarshalJson2String(param *settingModel.PrintSetting) (*settingModel.PrintSetting, error) {
|
func MarshalJson2String(param *settingModel.PrintSetting) (*settingModel.PrintSetting, error) {
|
||||||
// 打印机提示语音设置
|
// 打印机提示语音设置
|
||||||
printVoiceSetting := &settingModel.PrintVoice{
|
printVoiceSetting := &settingModel.PrintVoice{
|
||||||
@@ -134,3 +147,56 @@ func MarshalJson2String(param *settingModel.PrintSetting) (*settingModel.PrintSe
|
|||||||
param.PickingSetting = string(pickingSettingByte)
|
param.PickingSetting = string(pickingSettingByte)
|
||||||
return param, nil
|
return param, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UnMarshalString2Json 将字符串设置转换为对象设置
|
||||||
|
func UnMarshalString2Json(param *settingModel.PrintSetting) (*settingModel.PrintSettingObj, error) {
|
||||||
|
var (
|
||||||
|
printVoiceSetting = &settingModel.PrintVoice{}
|
||||||
|
orderVoiceSetting = &settingModel.OrderVoice{}
|
||||||
|
riderVoiceSetting = &settingModel.RiderVoice{}
|
||||||
|
customerVoiceSetting = &settingModel.CustomerReceivingGoods{}
|
||||||
|
pickingSetting = &settingModel.ShopPickingVoice{}
|
||||||
|
)
|
||||||
|
|
||||||
|
result := &settingModel.PrintSettingObj{
|
||||||
|
ID: param.ID,
|
||||||
|
CreatedAt: param.CreatedAt,
|
||||||
|
UpdatedAt: param.UpdatedAt,
|
||||||
|
DeletedAt: param.DeletedAt,
|
||||||
|
PrintNo: param.PrintNo,
|
||||||
|
CallNameSetting: param.CallNameSetting,
|
||||||
|
SystemVoice: param.SystemVoice,
|
||||||
|
PrintVoiceSetting: nil,
|
||||||
|
OrderVoiceSetting: nil,
|
||||||
|
RiderVoiceSetting: nil,
|
||||||
|
CustomerVoiceSetting: nil,
|
||||||
|
PickingSetting: nil,
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := json.Unmarshal([]byte(param.PrintVoiceSetting), printVoiceSetting); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
result.PrintVoiceSetting = printVoiceSetting
|
||||||
|
|
||||||
|
if err := json.Unmarshal([]byte(param.OrderVoiceSetting), orderVoiceSetting); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
result.OrderVoiceSetting = orderVoiceSetting
|
||||||
|
|
||||||
|
if err := json.Unmarshal([]byte(param.RiderVoiceSetting), riderVoiceSetting); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
result.RiderVoiceSetting = riderVoiceSetting
|
||||||
|
|
||||||
|
if err := json.Unmarshal([]byte(param.CustomerVoiceSetting), customerVoiceSetting); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
result.CustomerVoiceSetting = customerVoiceSetting
|
||||||
|
|
||||||
|
if err := json.Unmarshal([]byte(param.PickingSetting), pickingSetting); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
result.PickingSetting = pickingSetting
|
||||||
|
|
||||||
|
return result, nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -2,10 +2,13 @@ package app_server
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestBinding(t *testing.T) {
|
func TestBinding(t *testing.T) {
|
||||||
err := PrintSettingInfoServer.SystemInitPrintSetting("199308263974")
|
fmt.Println(strings.Contains(`{"msg":"非专送、快送、混合送订单不允许调用此接口","code":1047}}`, "1047"))
|
||||||
fmt.Println(err)
|
}
|
||||||
|
|
||||||
|
func TestBind(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,110 +6,142 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"git.rosy.net.cn/jx-print/dao"
|
"git.rosy.net.cn/jx-print/dao"
|
||||||
|
"git.rosy.net.cn/jx-print/globals"
|
||||||
tempModel "git.rosy.net.cn/jx-print/model/app_model"
|
tempModel "git.rosy.net.cn/jx-print/model/app_model"
|
||||||
"sort"
|
"sort"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var SystemTemp map[string]*tempModel.SystemTemp
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
SystemTemp = make(map[string]*tempModel.SystemTemp, 0)
|
||||||
|
var sysTemp = TempServer{}
|
||||||
|
sysTempList, err := sysTemp.QuerySystemTemp()
|
||||||
|
if err != nil {
|
||||||
|
globals.SugarLogger.Debug("query system temp err :", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if len(sysTempList) <= 0 {
|
||||||
|
globals.SugarLogger.Debug("query system temp err :", "system temp don't have")
|
||||||
|
// 不存在系统模板,初始化系统模板
|
||||||
|
//InitSystemTemp()
|
||||||
|
}
|
||||||
|
temp := make(map[string]*tempModel.SystemTemp, 0)
|
||||||
|
for _, v := range sysTempList {
|
||||||
|
temp[v.TempSize] = v
|
||||||
|
SystemTemp[v.TempSize] = v
|
||||||
|
}
|
||||||
|
|
||||||
|
now := time.Now()
|
||||||
|
param := &tempModel.SystemTemp{
|
||||||
|
CreatedAt: &now,
|
||||||
|
UpdatedAt: &now,
|
||||||
|
LastOperator: "system",
|
||||||
|
DeletedAt: &utils.DefaultTimeValue,
|
||||||
|
TempName: "",
|
||||||
|
TempRank: SystemTempKey,
|
||||||
|
Temp: "",
|
||||||
|
UserId: "system_user",
|
||||||
|
TempType: tempModel.TempTypeMerchant,
|
||||||
|
TempSize: tempModel.SystemTempSizeBig,
|
||||||
|
PrintSn: "system",
|
||||||
|
IsUse: 1,
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化大字体模板
|
||||||
|
if _, v := temp[tempModel.SystemTempSizeBig]; !v {
|
||||||
|
param.TempName = "system" + tempModel.SystemTempSizeBig
|
||||||
|
param.Temp = SystemTempValue
|
||||||
|
if err := dao.AddTemp(param); err != nil {
|
||||||
|
globals.SugarLogger.Debug("init system temp err :", err)
|
||||||
|
}
|
||||||
|
SystemTemp[tempModel.SystemTempSizeBig] = param
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化中字体模板
|
||||||
|
if _, v := temp[tempModel.SystemTempSizeMedium]; !v {
|
||||||
|
param.TempName = "system" + tempModel.SystemTempSizeMedium
|
||||||
|
medium := strings.Replace(SystemTempValue, "<b>", "<hb>", -1)
|
||||||
|
medium2 := strings.Replace(medium, "</b>", "</hb>", -1)
|
||||||
|
param.Temp = medium2
|
||||||
|
param.TempSize = tempModel.SystemTempSizeMedium
|
||||||
|
param.IsUse = 2
|
||||||
|
if err := dao.AddTemp(param); err != nil {
|
||||||
|
globals.SugarLogger.Debug("init system temp err :", err)
|
||||||
|
}
|
||||||
|
SystemTemp[tempModel.SystemTempSizeMedium] = param
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化小字体模板
|
||||||
|
if _, v := temp[tempModel.SystemTempSizeSmall]; !v {
|
||||||
|
param.TempName = "system" + tempModel.SystemTempSizeSmall
|
||||||
|
medium := strings.Replace(SystemTempValue, "<b>", " ", -1)
|
||||||
|
medium2 := strings.Replace(medium, "</b>", " ", -1)
|
||||||
|
param.Temp = medium2
|
||||||
|
param.TempSize = tempModel.SystemTempSizeSmall
|
||||||
|
param.IsUse = 2
|
||||||
|
if err := dao.AddTemp(param); err != nil {
|
||||||
|
globals.SugarLogger.Debug("init system temp err :", err)
|
||||||
|
}
|
||||||
|
SystemTemp[tempModel.SystemTempSizeSmall] = param
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
type TempServer struct {
|
type TempServer struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// MakeSystemTempFontSmall 制作系统模板小字体
|
// MakePrintMsgOnTemp 将打印数据渲染到模板当中
|
||||||
func (t *TempServer) MakeSystemTempFontSmall(param map[string]interface{}) (string, error) {
|
func (t *TempServer) MakePrintMsgOnTemp(param map[string]string, userId string) (string, error) {
|
||||||
if len(param) <= 0 {
|
// 查询用户默认模板,不存在则使用系统默认模板
|
||||||
return "", errors.New("参数不能为空")
|
var userTemp *tempModel.SystemTemp
|
||||||
|
userTemp, isHave, err := dao.SelectUserDefaultTemp(userId, tempModel.TempTypeMerchant)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
}
|
}
|
||||||
orderPrint := &JXPrintData{}
|
if userTemp == nil || !isHave {
|
||||||
if err := utils.Map2StructByJson(param, orderPrint, false); err != nil {
|
userTemp = SystemTemp[tempModel.SystemTempSizeBig]
|
||||||
return "", errors.New("参数不能为空")
|
|
||||||
}
|
|
||||||
// 头部模板,订单
|
|
||||||
var orderParams []interface{}
|
|
||||||
headTemp := tempBegin
|
|
||||||
orderParams = append(orderParams, orderPrint.EBailOrderNo, orderPrint.PayOrderTime, orderPrint.TrySendTime, orderPrint.OrderNo)
|
|
||||||
// 是否为预订单
|
|
||||||
if orderPrint.BusinessType == "2" {
|
|
||||||
headTemp += tempBusiness
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 订单来源信息
|
// 需要打印数据
|
||||||
pickupTemp := tempBegin2
|
printMsg := ""
|
||||||
orderParams = append(orderParams, orderPrint.VendorName, orderPrint.VendorOrderNo, orderPrint.QRCOrder)
|
printValue := make([]interface{}, 0, 0)
|
||||||
if orderPrint.VendorID == utils.Int2Str(tempModel.VendorIDEBAI) {
|
for _, v := range strings.Split(userTemp.TempRank, ",") {
|
||||||
getCode := fmt.Sprintf(tempEBail, orderPrint.VendorName, orderPrint.EBaiCode)
|
switch v {
|
||||||
pickupTemp += getCode
|
case "skuName", "skuNumber", "skuPrice", "skuAllPrice", "allSkuTypeCount", "allSkuCount":
|
||||||
|
continue
|
||||||
|
case "goodsListDetail":
|
||||||
|
printMsg += TempTag[v]
|
||||||
|
skuList := make([]*SkuListPrintOrder, 0, 0)
|
||||||
|
if err := json.Unmarshal([]byte(param[v]), skuList); err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
for i := 0; i < len(skuList); i++ {
|
||||||
|
printMsg += TempTag["skuName"]
|
||||||
|
printMsg += TempTag["skuNumber"]
|
||||||
|
printMsg += TempTag["skuPrice"]
|
||||||
|
printMsg += TempTag["skuAllPrice"]
|
||||||
|
printValue = append(printValue, skuList[i].SkuName, skuList[i].SkuName, skuList[i].SalePrice, skuList[i].TotalCountPrice)
|
||||||
|
if skuList[i].Upc != "" {
|
||||||
|
printMsg += TempTag["sku"]
|
||||||
|
printValue = append(printValue, skuList[i].Upc)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 客户信息
|
|
||||||
userInfo := tempBegin3
|
|
||||||
orderParams = append(orderParams, orderPrint.ConsigneeName, orderPrint.ConsigneeMobile, orderPrint.ConsigneeAddress, orderPrint.BuyerComment)
|
|
||||||
|
|
||||||
// 商品信息
|
|
||||||
skuList := ""
|
|
||||||
for _, v := range orderPrint.SkuList {
|
|
||||||
sku := fmt.Sprintf(skuListTemp, v.SkuName, v.SkuCount, v.SalePrice, v.TotalCountPrice)
|
|
||||||
if v.Upc != "" {
|
|
||||||
sku += fmt.Sprintf(`<center>upc码:%s</center><br>`, v.Upc)
|
|
||||||
}
|
}
|
||||||
skuList += sku
|
case "businessType":
|
||||||
|
if param[v] == "2" { // 是预订单
|
||||||
|
printMsg += TempTag[v]
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
printMsg += TempTag[v]
|
||||||
|
printValue = append(printValue, param[v])
|
||||||
}
|
}
|
||||||
|
|
||||||
// 统计信息
|
|
||||||
statInfo := tempEnd
|
|
||||||
orderParams = append(orderParams, orderPrint.AllSkuTypeCount, orderPrint.AllSkuCount, orderPrint.StoreName, orderPrint.StoreTel, orderPrint.OfficialName)
|
|
||||||
// 语音模板
|
|
||||||
soundTemp := fmt.Sprintf(soundTemp, "老板,你有新订单了")
|
|
||||||
orderFmt := soundTemp + pickupTemp + userInfo + skuList + statInfo
|
|
||||||
return fmt.Sprintf(orderFmt, orderParams), nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MakeSystemTempFontBig 制作系统模板大字体
|
return strings.Replace(fmt.Sprintf(strings.Replace(printMsg, "\n", "", -1), printValue...), "\\n", "\r\n", -1), nil
|
||||||
func (t *TempServer) MakeSystemTempFontBig(param map[string]interface{}) (string, error) {
|
|
||||||
if len(param) <= 0 {
|
|
||||||
return "", errors.New("参数不能为空")
|
|
||||||
}
|
|
||||||
orderPrint := &JXPrintData{}
|
|
||||||
if err := utils.Map2StructByJson(param, orderPrint, false); err != nil {
|
|
||||||
return "", errors.New("参数不能为空")
|
|
||||||
}
|
|
||||||
// 头部模板,订单
|
|
||||||
var orderParams []interface{}
|
|
||||||
headTemp := tempBeginBig
|
|
||||||
orderParams = append(orderParams, orderPrint.EBailOrderNo, orderPrint.PayOrderTime, orderPrint.TrySendTime, orderPrint.OrderNo)
|
|
||||||
// 是否为预订单
|
|
||||||
if orderPrint.BusinessType == "2" {
|
|
||||||
headTemp += tempBusinessBig
|
|
||||||
}
|
|
||||||
|
|
||||||
// 订单来源信息
|
|
||||||
pickupTemp := tempBegin2Big
|
|
||||||
orderParams = append(orderParams, orderPrint.VendorName, orderPrint.VendorOrderNo, orderPrint.QRCOrder)
|
|
||||||
if orderPrint.VendorID == utils.Int2Str(tempModel.VendorIDEBAI) {
|
|
||||||
getCode := fmt.Sprintf(tempEBailBig, orderPrint.VendorName, orderPrint.EBaiCode)
|
|
||||||
pickupTemp += getCode
|
|
||||||
}
|
|
||||||
|
|
||||||
// 客户信息
|
|
||||||
userInfo := tempBegin3Big
|
|
||||||
orderParams = append(orderParams, orderPrint.ConsigneeName, orderPrint.ConsigneeMobile, orderPrint.ConsigneeAddress, orderPrint.BuyerComment)
|
|
||||||
|
|
||||||
// 商品信息
|
|
||||||
skuList := ""
|
|
||||||
for _, v := range orderPrint.SkuList {
|
|
||||||
sku := fmt.Sprintf(skuListTempBig, v.SkuName, v.SkuCount, v.SalePrice, v.TotalCountPrice)
|
|
||||||
if v.Upc != "" {
|
|
||||||
sku += fmt.Sprintf(`<center>upc码:%s</center><br>`, v.Upc)
|
|
||||||
}
|
|
||||||
skuList += sku
|
|
||||||
}
|
|
||||||
|
|
||||||
// 统计信息
|
|
||||||
statInfo := tempEndBig
|
|
||||||
orderParams = append(orderParams, orderPrint.AllSkuTypeCount, orderPrint.AllSkuCount, orderPrint.StoreName, orderPrint.StoreTel, orderPrint.OfficialName)
|
|
||||||
// 语音模板
|
|
||||||
soundTemp := fmt.Sprintf(soundTemp, "老板,你有新订单了")
|
|
||||||
orderFmt := soundTemp + pickupTemp + userInfo + skuList + statInfo
|
|
||||||
return fmt.Sprintf(orderFmt, orderParams), nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddOrUpdateTemp 添加或者修改模板
|
// AddOrUpdateTemp 添加或者修改模板
|
||||||
|
|||||||
@@ -1,97 +1,44 @@
|
|||||||
package app_server
|
package app_server
|
||||||
|
|
||||||
import (
|
var TempTag map[string]string
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
|
||||||
"git.rosy.net.cn/jx-print/dao"
|
|
||||||
"git.rosy.net.cn/jx-print/globals"
|
|
||||||
tempModel "git.rosy.net.cn/jx-print/model/app_model"
|
|
||||||
"strings"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
var SystemTemp map[string]*tempModel.SystemTemp
|
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
var sysTemp = TempServer{}
|
TempTag = make(map[string]string, 26)
|
||||||
sysTempList, err := sysTemp.QuerySystemTemp()
|
TempTag["title"] = Title
|
||||||
if err != nil {
|
TempTag["sound"] = Sound
|
||||||
globals.SugarLogger.Debug("query system temp err :", err)
|
TempTag["eBailOrderNo"] = EBailOrderNo
|
||||||
return
|
TempTag["payOrderTime"] = PayOrderTime
|
||||||
}
|
TempTag["trySendTime"] = TrySendTime
|
||||||
if len(sysTempList) <= 0 {
|
TempTag["orderNo"] = OrderNo
|
||||||
globals.SugarLogger.Debug("query system temp err :", "system temp don't have")
|
TempTag["businessType"] = BusinessType
|
||||||
return
|
TempTag["vendorName"] = VendorName
|
||||||
}
|
TempTag["eBaiCode"] = EBaiCode
|
||||||
temp := make(map[string]*tempModel.SystemTemp, 0)
|
TempTag["qRCOrder"] = QRCOrder
|
||||||
for _, v := range sysTempList {
|
TempTag["eBaiVendorName"] = EBaiVendorName
|
||||||
temp[v.TempSize] = v
|
TempTag["eBaiOrderNo"] = EBaiOrderNo
|
||||||
SystemTemp[v.TempSize] = v
|
TempTag["consigneeName"] = ConsigneeName
|
||||||
}
|
TempTag["consigneeMobile"] = ConsigneeMobile
|
||||||
|
TempTag["consigneeAddress"] = ConsigneeAddress
|
||||||
now := time.Now()
|
TempTag["buyerComment"] = BuyerComment
|
||||||
param := &tempModel.SystemTemp{
|
TempTag["goodsListDetail"] = GoodsListDetail
|
||||||
CreatedAt: &now,
|
TempTag["skuName"] = SkuName
|
||||||
UpdatedAt: &now,
|
TempTag["skuNumber"] = SkuNumber
|
||||||
LastOperator: "system",
|
TempTag["skuPrice"] = SkuPrice
|
||||||
DeletedAt: &utils.DefaultTimeValue,
|
TempTag["skuAllPrice"] = SkuAllPrice
|
||||||
TempName: "system",
|
TempTag["allSkuTypeCount"] = AllSkuTypeCount
|
||||||
TempRank: SystemTempKey,
|
TempTag["allSkuCount"] = AllSkuCount
|
||||||
Temp: "",
|
TempTag["storeName"] = StoreName
|
||||||
UserId: "system_user",
|
TempTag["storeTel"] = StoreTel
|
||||||
TempType: tempModel.TempTypeMerchant,
|
TempTag["officialName"] = OfficialName
|
||||||
TempSize: tempModel.SystemTempSizeBig,
|
|
||||||
PrintSn: "system",
|
|
||||||
IsUse: 1,
|
|
||||||
}
|
|
||||||
|
|
||||||
// 初始化大字体模板
|
|
||||||
if _, v := temp[tempModel.SystemTempSizeBig]; !v {
|
|
||||||
param.TempName += tempModel.SystemTempSizeBig
|
|
||||||
param.Temp = SystemTempValue
|
|
||||||
if err := dao.AddTemp(param); err != nil {
|
|
||||||
globals.SugarLogger.Debug("init system temp err :", err)
|
|
||||||
}
|
|
||||||
SystemTemp[tempModel.SystemTempSizeBig] = param
|
|
||||||
}
|
|
||||||
|
|
||||||
// 初始化中字体模板
|
|
||||||
if _, v := temp[tempModel.SystemTempSizeMedium]; !v {
|
|
||||||
param.TempName += tempModel.SystemTempSizeMedium
|
|
||||||
medium := strings.Replace(SystemTempValue, "<b>", "<hb>", -1)
|
|
||||||
medium2 := strings.Replace(medium, "</b>", "</hb>", -1)
|
|
||||||
param.Temp = medium2
|
|
||||||
if err := dao.AddTemp(param); err != nil {
|
|
||||||
globals.SugarLogger.Debug("init system temp err :", err)
|
|
||||||
}
|
|
||||||
if err := dao.AddTemp(param); err != nil {
|
|
||||||
globals.SugarLogger.Debug("init system temp err :", err)
|
|
||||||
}
|
|
||||||
SystemTemp[tempModel.SystemTempSizeMedium] = param
|
|
||||||
}
|
|
||||||
|
|
||||||
// 初始化小字体模板
|
|
||||||
if _, v := temp[tempModel.SystemTempSizeSmall]; !v {
|
|
||||||
param.TempName += tempModel.SystemTempSizeSmall
|
|
||||||
medium := strings.Replace(SystemTempValue, "<b>", " ", -1)
|
|
||||||
medium2 := strings.Replace(medium, "</b>", " ", -1)
|
|
||||||
param.Temp = medium2
|
|
||||||
if err := dao.AddTemp(param); err != nil {
|
|
||||||
globals.SugarLogger.Debug("init system temp err :", err)
|
|
||||||
}
|
|
||||||
if err := dao.AddTemp(param); err != nil {
|
|
||||||
globals.SugarLogger.Debug("init system temp err :", err)
|
|
||||||
}
|
|
||||||
SystemTemp[tempModel.SystemTempSizeSmall] = param
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// SystemTempKey 系统数据库模板排序
|
// SystemTempKey 系统数据库模板排序
|
||||||
const (
|
const (
|
||||||
//SystemTempKey 公共参数 EBaiOrderNo= vendorName EBaiVendorName = vendorOrderNo
|
//SystemTempKey 公共参数 EBaiOrderNo= vendorName EBaiVendorName = vendorOrderNo
|
||||||
SystemTempKey = "sound,eBailOrderNo,payOrderTime,trySendTime,orderNo,businessType,vendorName,eBaiCode,qRCOrder,eBaiVendorName,eBaiOrderNo,consigneeName," +
|
SystemTempKey = "title,sound,eBailOrderNo,payOrderTime,trySendTime,orderNo,businessType,vendorName,eBaiCode,qRCOrder,eBaiVendorName,eBaiOrderNo,consigneeName," +
|
||||||
"consigneeMobile,consigneeAddress,buyerComment,skuName,skuNumber,skuPrice,skuAllPrice,allSkuTypeCount,allSkuCount,storeName,storeTel,officialName"
|
"consigneeMobile,consigneeAddress,buyerComment,goodsListDetail,skuName,skuNumber,skuPrice,skuAllPrice,skuUpc,allSkuTypeCount,allSkuCount,storeName,storeTel,officialName"
|
||||||
SystemTempValue = "{" +
|
SystemTempValue = "{" +
|
||||||
|
"title:" + Title + "," +
|
||||||
"sound:" + Sound + "," +
|
"sound:" + Sound + "," +
|
||||||
"eBailOrderNo:" + EBailOrderNo + "," +
|
"eBailOrderNo:" + EBailOrderNo + "," +
|
||||||
"payOrderTime:" + PayOrderTime + "," +
|
"payOrderTime:" + PayOrderTime + "," +
|
||||||
@@ -107,10 +54,12 @@ const (
|
|||||||
"consigneeMobile:" + ConsigneeMobile + "," +
|
"consigneeMobile:" + ConsigneeMobile + "," +
|
||||||
"consigneeAddress:" + ConsigneeAddress + "," +
|
"consigneeAddress:" + ConsigneeAddress + "," +
|
||||||
"buyerComment:" + BuyerComment + "," +
|
"buyerComment:" + BuyerComment + "," +
|
||||||
|
"goodsListDetail:" + GoodsListDetail + "," +
|
||||||
"skuName:" + SkuName + "," +
|
"skuName:" + SkuName + "," +
|
||||||
"skuNumber:" + SkuNumber + "," +
|
"skuNumber:" + SkuNumber + "," +
|
||||||
"skuPrice:" + SkuPrice + "," +
|
"skuPrice:" + SkuPrice + "," +
|
||||||
"skuAllPrice:" + SkuAllPrice + "," +
|
"skuAllPrice:" + SkuAllPrice + "," +
|
||||||
|
"skuUpc:" + SkuUpc + "," +
|
||||||
"allSkuTypeCount:" + AllSkuTypeCount + "," +
|
"allSkuTypeCount:" + AllSkuTypeCount + "," +
|
||||||
"allSkuCount:" + AllSkuCount + "," +
|
"allSkuCount:" + AllSkuCount + "," +
|
||||||
"storeName:" + StoreName + "," +
|
"storeName:" + StoreName + "," +
|
||||||
@@ -118,12 +67,12 @@ const (
|
|||||||
"officialName:" + OfficialName +
|
"officialName:" + OfficialName +
|
||||||
"}"
|
"}"
|
||||||
|
|
||||||
Sound = `<br><sound>%s</sound><br>`
|
Title = `<center>手机买菜上京西</center><br>
|
||||||
|
|
||||||
EBailOrderNo = `<center><b>%s</b></center><br><br>
|
|
||||||
<center>手机买菜上京西</center><br>
|
|
||||||
<center>极速到家送惊喜</center><br>
|
<center>极速到家送惊喜</center><br>
|
||||||
--------------------------------<br>`
|
--------------------------------<br>`
|
||||||
|
|
||||||
|
Sound = `<br><sound>%s</sound><br>`
|
||||||
|
EBailOrderNo = `<center><b>%s</b></center><br><br>`
|
||||||
PayOrderTime = ` <b>下单时间: %s</b><br>`
|
PayOrderTime = ` <b>下单时间: %s</b><br>`
|
||||||
TrySendTime = ` <b>预计送达: %s</b><br>`
|
TrySendTime = ` <b>预计送达: %s</b><br>`
|
||||||
OrderNo = ` <b>订单编号: %s</b><br>`
|
OrderNo = ` <b>订单编号: %s</b><br>`
|
||||||
@@ -139,28 +88,67 @@ const (
|
|||||||
ConsigneeMobile = ` <b>电话: %s<br>`
|
ConsigneeMobile = ` <b>电话: %s<br>`
|
||||||
ConsigneeAddress = ` <b>地址: %s<br><br>`
|
ConsigneeAddress = ` <b>地址: %s<br><br>`
|
||||||
|
|
||||||
BuyerComment = ` <b>客户备注:</b><br><b>%s</b><br><br>
|
BuyerComment = ` <b>客户备注:</b><br><b>%s</b><br><br>`
|
||||||
商品明细:<br>
|
GoodsListDetail = `商品明细:<br>
|
||||||
品名 数量 单价 小计<br>
|
品名 数量 单价 小计<br>
|
||||||
--------------------------------<br>`
|
--------------------------------<br>`
|
||||||
|
|
||||||
SkuName = `<b>%s</b><br>`
|
SkuName = `<b>%s</b><br>`
|
||||||
SkuNumber = `<b>x%s</b>`
|
SkuNumber = `<b>x%s</b>`
|
||||||
SkuPrice = ` <b>¥%s</b>`
|
SkuPrice = ` <b>¥%s</b>`
|
||||||
SkuAllPrice = ` <b>¥%s</b><br>`
|
SkuAllPrice = ` <b>¥%s</b><br>`
|
||||||
|
SkuUpc = `upc码: %s\n`
|
||||||
|
|
||||||
AllSkuTypeCount = `<br><br><b>共%s种,`
|
AllSkuTypeCount = `<br><br><b>共%s种,`
|
||||||
AllSkuCount = `%s件商品</b><br>--------------------------------<br>`
|
AllSkuCount = `%s件商品</b><br>--------------------------------<br>`
|
||||||
|
|
||||||
StoreName = `<center><b>商品质量问题请联系:</b></center><br>
|
StoreName = `<center><b>商品质量问题请联系:</b></center><br><center><b>%s:`
|
||||||
<center><b>%s:`
|
StoreTel = `%s</b></center><br><br>更多信息请关注官方微信: `
|
||||||
StoreTel = `%s</b></center><br><br>
|
|
||||||
更多信息请关注官方微信: `
|
|
||||||
|
|
||||||
OfficialName = `<b>%s</b><br><br><br>
|
OfficialName = `<b>%s</b><br><br><br>
|
||||||
--------------------------------<br>
|
--------------------------------<br>
|
||||||
--------------------------------<br><br>`
|
--------------------------------<br><br>`
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type SkuListPrintOrder struct {
|
||||||
|
SkuName string `json:"skuName"` // 商品名称
|
||||||
|
SkuCount string `json:"skuCount"` // 商品数量
|
||||||
|
SalePrice string `json:"salePrice"` // 单价
|
||||||
|
TotalCountPrice string `json:"totalCountPrice"` // 总价
|
||||||
|
Upc string `json:"upc"` // 条形码
|
||||||
|
}
|
||||||
|
|
||||||
|
type JXPrintData struct {
|
||||||
|
EBailOrderNo string `json:"e_bail_order_no"` // 饿百取货码(品牌名称)
|
||||||
|
BusinessType string `json:"business_type"` // 是否为预定单 2-是/1-否
|
||||||
|
PayOrderTime string `json:"pay_order_time"` // 下单时间
|
||||||
|
TrySendTime string `json:"try_send_time"` // 预计送达时间
|
||||||
|
OrderNo string `json:"order_no"` // 订单编号
|
||||||
|
VendorName string `json:"vendor_name"` // 订单来源平台名称
|
||||||
|
VendorID string `json:"vendor_id"` // 订单来源平台Id
|
||||||
|
VendorOrderNo string `json:"vendor_order_no"` // 订单序号
|
||||||
|
EBaiCode string `json:"e_bai_code"` // 饿百取货码
|
||||||
|
QRCOrder string `json:"qrc_order"` // 订单二维码单号,还是订单Id
|
||||||
|
ConsigneeName string `json:"consignee_name"` // 客户名称
|
||||||
|
ConsigneeMobile string `json:"consignee_mobile"` // 客户电话
|
||||||
|
ConsigneeAddress string `json:"consignee_address"` // 客户地址
|
||||||
|
BuyerComment string `json:"buyer_comment"` // 客户备注
|
||||||
|
SkuList []*SkuListPrintOrder `json:"sku_list"` // 商品列表
|
||||||
|
SkuName string `json:"sku_name"` // 商品名称
|
||||||
|
SkuCount string `json:"sku_count"` // 商品件数
|
||||||
|
SkuOnePrice string `json:"sku_one_price"` // 商品单价
|
||||||
|
SkuAllPrice string `json:"sku_all_price"` // 商品总价 = 商品件数 x 商品件数
|
||||||
|
AllSkuTypeCount string `json:"all_sku_type_count"` // 商品种类
|
||||||
|
AllSkuCount string `json:"all_sku_count"` // 商品总数量
|
||||||
|
UserPayMoney string `json:"user_pay_money"` // 用户支付
|
||||||
|
StoreName string `json:"store_name"` // 门店名称
|
||||||
|
StoreTel string `json:"store_tel"` // 门店电话
|
||||||
|
OfficialName string `json:"official_name"` // 官方名称
|
||||||
|
BigFont string `json:"big_font"` // 是否为大字体
|
||||||
|
PrintNumber string `json:"print_number"` // 打印次数
|
||||||
|
}
|
||||||
|
|
||||||
|
/************************一下模板将不再使用,直接将标签替换*****************************************/
|
||||||
// 小字体系统模板
|
// 小字体系统模板
|
||||||
const (
|
const (
|
||||||
// 模板开始
|
// 模板开始
|
||||||
@@ -404,41 +392,3 @@ const (
|
|||||||
<br>
|
<br>
|
||||||
`
|
`
|
||||||
)
|
)
|
||||||
|
|
||||||
type SkuListPrintOrder struct {
|
|
||||||
SkuName string `json:"skuName"` // 商品名称
|
|
||||||
SkuCount string `json:"skuCount"` // 商品数量
|
|
||||||
SalePrice string `json:"salePrice"` // 单价
|
|
||||||
TotalCountPrice string `json:"totalCountPrice"` // 总价
|
|
||||||
Upc string `json:"upc"` // 条形码
|
|
||||||
}
|
|
||||||
|
|
||||||
type JXPrintData struct {
|
|
||||||
EBailOrderNo string `json:"e_bail_order_no"` // 饿百取货码(品牌名称)
|
|
||||||
BusinessType string `json:"business_type"` // 是否为预定单 2-是/1-否
|
|
||||||
PayOrderTime string `json:"pay_order_time"` // 下单时间
|
|
||||||
TrySendTime string `json:"try_send_time"` // 预计送达时间
|
|
||||||
OrderNo string `json:"order_no"` // 订单编号
|
|
||||||
VendorName string `json:"vendor_name"` // 订单来源平台名称
|
|
||||||
VendorID string `json:"vendor_id"` // 订单来源平台Id
|
|
||||||
VendorOrderNo string `json:"vendor_order_no"` // 订单序号
|
|
||||||
EBaiCode string `json:"e_bai_code"` // 饿百取货码
|
|
||||||
QRCOrder string `json:"qrc_order"` // 订单二维码单号,还是订单Id
|
|
||||||
ConsigneeName string `json:"consignee_name"` // 客户名称
|
|
||||||
ConsigneeMobile string `json:"consignee_mobile"` // 客户电话
|
|
||||||
ConsigneeAddress string `json:"consignee_address"` // 客户地址
|
|
||||||
BuyerComment string `json:"buyer_comment"` // 客户备注
|
|
||||||
SkuList []*SkuListPrintOrder `json:"sku_list"` // 商品列表
|
|
||||||
SkuName string `json:"sku_name"` // 商品名称
|
|
||||||
SkuCount string `json:"sku_count"` // 商品件数
|
|
||||||
SkuOnePrice string `json:"sku_one_price"` // 商品单价
|
|
||||||
SkuAllPrice string `json:"sku_all_price"` // 商品总价 = 商品件数 x 商品件数
|
|
||||||
AllSkuTypeCount string `json:"all_sku_type_count"` // 商品种类
|
|
||||||
AllSkuCount string `json:"all_sku_count"` // 商品总数量
|
|
||||||
UserPayMoney string `json:"user_pay_money"` // 用户支付
|
|
||||||
StoreName string `json:"store_name"` // 门店名称
|
|
||||||
StoreTel string `json:"store_tel"` // 门店电话
|
|
||||||
OfficialName string `json:"official_name"` // 官方名称
|
|
||||||
BigFont string `json:"big_font"` // 是否为大字体
|
|
||||||
PrintNumber string `json:"print_number"` // 打印次数
|
|
||||||
}
|
|
||||||
|
|||||||
90
services/print_server/app_server/temp_voice_config.go
Normal file
90
services/print_server/app_server/temp_voice_config.go
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
package app_server
|
||||||
|
|
||||||
|
// VoiceOrder 语音播报 : 老板你有新订单了,美团52号订单
|
||||||
|
func (t *TempServer) VoiceOrder(userId, printNo string) {
|
||||||
|
// 获取用户设置
|
||||||
|
|
||||||
|
// voice := `<sound>`
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
//const (
|
||||||
|
//1 // 欢迎使用京西云打印机.mp3
|
||||||
|
//2 // 网络连接成功.mp3
|
||||||
|
//3 // 网络连接失败和心跳失败.mp3
|
||||||
|
//4 // 打印机缺纸或装纸错误.mp3
|
||||||
|
//5 // WIFI密码错误.mp3
|
||||||
|
//6 // 新定单-后台设置播放几次.mp3
|
||||||
|
//7 // 待接单每1分钟1次.mp3
|
||||||
|
//8 // 待拣货每5分钟1次.mp3
|
||||||
|
//9 // 骑手接单了.mp3
|
||||||
|
//10 // 定单完成.mp3
|
||||||
|
//11 // 催单.mp3
|
||||||
|
//12 // 定单被取消了.mp3
|
||||||
|
//13 // 申请取消-后台设置播放几次.mp3
|
||||||
|
//14 // 申请退款-后台甚至播放几次.mp3
|
||||||
|
//15 // 申请退货-后台设置播放几次.mp3
|
||||||
|
//16 // 投递失败.mp3
|
||||||
|
//17 // 失去授权-联播3次.mp3
|
||||||
|
//18 // 商家责任客服退款.mp3
|
||||||
|
//19 // 进店咨询.mp3
|
||||||
|
//20 // 店铺被下线-联播3次.mp3
|
||||||
|
//21 // 请关注.mp3
|
||||||
|
//22 // 饿了么.mp3
|
||||||
|
//23 // 京东到家.mp3
|
||||||
|
//24 // 京西.mp3
|
||||||
|
//25 // 美团外卖.mp3
|
||||||
|
//26 // 微盟.mp3
|
||||||
|
//27 // 淘宝.mp3
|
||||||
|
//28 // 京东.mp3
|
||||||
|
//29 // 拼多多.mp3
|
||||||
|
//30 // 美团.mp3
|
||||||
|
//31 // 微店.mp3
|
||||||
|
//32 // 新店.mp3
|
||||||
|
//33 // 有赞.mp3
|
||||||
|
//34 // 0.mp3
|
||||||
|
//35 // 1.mp3
|
||||||
|
//36 // 2.mp3
|
||||||
|
//37 // 3.mp3
|
||||||
|
//38 // 4.mp3
|
||||||
|
//39 // 5.mp3
|
||||||
|
//40 // 6.mp3
|
||||||
|
//41 // 7.mp3
|
||||||
|
//42 // 8.mp3
|
||||||
|
//43 // 9.mp3
|
||||||
|
//44 // 10.mp3
|
||||||
|
//45 // 20.mp3
|
||||||
|
//46 // 30.mp3
|
||||||
|
//47 // 40.mp3
|
||||||
|
//48 // 50.mp3
|
||||||
|
//49 // 60.mp3
|
||||||
|
//50 // 70.mp3
|
||||||
|
//51 // 80.mp3
|
||||||
|
//52 // 90.mp3
|
||||||
|
//53 // 100.mp3
|
||||||
|
//54 // 200.mp3
|
||||||
|
//55 // 300.mp3
|
||||||
|
//56 // 400.mp3
|
||||||
|
//57 // 500.mp3
|
||||||
|
//58 // 600.mp3
|
||||||
|
//59 // 700.mp3
|
||||||
|
//60 // 800.mp3
|
||||||
|
//61 // 900.mp3
|
||||||
|
//62 // 1000.mp3
|
||||||
|
//63 // 号定单.mp3
|
||||||
|
//64 // 老板.mp3
|
||||||
|
//65 // 大哥.mp3
|
||||||
|
//66 // 大姐.mp3
|
||||||
|
//67 // 到店支付.mp3
|
||||||
|
//68 // 点.mp3
|
||||||
|
//69 // 余额不足5元.mp3
|
||||||
|
//70 // 星期一.mp3
|
||||||
|
//71 // 星期二.mp3
|
||||||
|
//72 // 星期三.mp3
|
||||||
|
//73 // 星期四.mp3
|
||||||
|
//74 // 星期五.mp3
|
||||||
|
//75 // 星期六.mp3
|
||||||
|
//76 // 星期天.mp3
|
||||||
|
//77 // 元.mp3
|
||||||
|
//)
|
||||||
@@ -14,7 +14,12 @@ import (
|
|||||||
wxLogin "git.rosy.net.cn/jx-print/model/app_model"
|
wxLogin "git.rosy.net.cn/jx-print/model/app_model"
|
||||||
"git.rosy.net.cn/jx-print/services/api"
|
"git.rosy.net.cn/jx-print/services/api"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
"io/ioutil"
|
||||||
|
"net/http"
|
||||||
|
"net/url"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -168,3 +173,42 @@ func PKCS7UnPadding(origData []byte) (bs []byte) {
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Jxc4UserToken 全局变量,缓存菜市管理系统token
|
||||||
|
var Jxc4UserToken = map[string]string{"token": "", "expirationTime": ""}
|
||||||
|
|
||||||
|
// GetJxc4Token 获取京西菜市token
|
||||||
|
func (u *UserLogin) GetJxc4Token() (string, error) {
|
||||||
|
if Jxc4UserToken["token"] != "" && Jxc4UserToken["expirationTime"] != "" {
|
||||||
|
timeBegin, _ := strconv.ParseInt(Jxc4UserToken["expirationTime"], 10, 64)
|
||||||
|
timeNow := time.Now().Unix()
|
||||||
|
if timeBegin-timeNow > 0 { // 没过期
|
||||||
|
return Jxc4UserToken["token"], nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//TODO 参数为登录菜市管理系统的管理员用户账号:目前账号为 15141938808 密码111111
|
||||||
|
params := map[string]interface{}{"authType": "localpass", "authIDType": "mobile", "authID": "15141938808", "authSecret": "96e79218965eb72c92a549dd5a330112"}
|
||||||
|
retVal := make(url.Values)
|
||||||
|
for k, v := range params {
|
||||||
|
retVal.Set(k, fmt.Sprint(v))
|
||||||
|
}
|
||||||
|
|
||||||
|
strings.NewReader(utils.Map2URLValues(params).Encode())
|
||||||
|
resp, err := http.Post("https://www.jxc4.com/v2/auth2/Login", "application/x-www-form-urlencoded", strings.NewReader(retVal.Encode()))
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
defer resp.Body.Close()
|
||||||
|
bodyResp, err := ioutil.ReadAll(resp.Body)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
jxc4User := &model.AutoGenerated{}
|
||||||
|
if err := json.Unmarshal(bodyResp, jxc4User); err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
Jxc4UserToken["token"] = jxc4User.Data.Token
|
||||||
|
Jxc4UserToken["expirationTime"] = strconv.FormatInt(time.Now().Unix(), 64)
|
||||||
|
return jxc4User.Data.Token, nil
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user