diff --git a/business/dao/print_temp_utils.go b/business/dao/print_temp_utils.go index 890049693..cd7667c0e 100644 --- a/business/dao/print_temp_utils.go +++ b/business/dao/print_temp_utils.go @@ -5,180 +5,180 @@ import ( "fmt" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/model" + "git.rosy.net.cn/jx-print/globals" "strings" "time" ) -//var SystemTempObj map[string]*model.SystemTemp -// -//func init() { -// SystemTempObj = make(map[string]*model.SystemTemp, 0) -// sysTempList, err := 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]*model.SystemTemp, 0) -// for _, v := range sysTempList { -// temp[v.TempSize] = v -// SystemTempObj[v.TempSize] = v -// } -// -// now := time.Now() -// param := &model.SystemTemp{ -// CreatedAt: &now, -// UpdatedAt: &now, -// LastOperator: "system", -// DeletedAt: &utils.DefaultTimeValue, -// TempName: "", -// TempRank: model.SystemTempKey, -// Temp: "", -// UserId: "system_user", -// TempType: model.TempTypeMerchant, -// TempSize: model.SystemTempSizeBig, -// PrintSn: "system", -// IsUse: 1, -// } -// -// // 初始化大字体模板 -// if _, v := temp[model.SystemTempSizeBig]; !v { -// param.TempName = "system" + model.SystemTempSizeBig -// param.Temp = model.SystemTempValue -// if err := AddTemp(param); err != nil { -// globals.SugarLogger.Debug("init system temp err :", err) -// } -// SystemTempObj[model.SystemTempSizeBig] = param -// } -// -// // 初始化中字体模板 -// if _, v := temp[model.SystemTempSizeMedium]; !v { -// param.TempName = "system" + model.SystemTempSizeMedium -// medium := strings.Replace(model.SystemTempValue, "", "", -1) -// medium2 := strings.Replace(medium, "", "", -1) -// param.Temp = medium2 -// param.TempSize = model.SystemTempSizeMedium -// param.IsUse = 2 -// if err := AddTemp(param); err != nil { -// globals.SugarLogger.Debug("init system temp err :", err) -// } -// SystemTempObj[model.SystemTempSizeMedium] = param -// } -// -// // 初始化小字体模板 -// if _, v := temp[model.SystemTempSizeSmall]; !v { -// param.TempName = "system" + model.SystemTempSizeSmall -// medium := strings.Replace(model.SystemTempValue, "", " ", -1) -// medium2 := strings.Replace(medium, "", " ", -1) -// param.Temp = medium2 -// param.TempSize = model.SystemTempSizeSmall -// param.IsUse = 2 -// if err := AddTemp(param); err != nil { -// globals.SugarLogger.Debug("init system temp err :", err) -// } -// SystemTempObj[model.SystemTempSizeSmall] = param -// } -// -//} +var SystemTempObj map[string]*model.SystemTemp + +func init() { + SystemTempObj = make(map[string]*model.SystemTemp, 0) + sysTempList, err := 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]*model.SystemTemp, 0) + for _, v := range sysTempList { + temp[v.TempSize] = v + SystemTempObj[v.TempSize] = v + } + + //now := time.Now() + //param := &model.SystemTemp{ + // CreatedAt: &now, + // UpdatedAt: &now, + // LastOperator: "system", + // DeletedAt: &utils.DefaultTimeValue, + // TempName: "", + // TempRank: model.SystemTempKey, + // Temp: "", + // UserId: "system_user", + // TempType: model.TempTypeMerchant, + // TempSize: model.SystemTempSizeBig, + // PrintSn: "system", + // IsUse: 1, + //} + + // 初始化大字体模板 + //if _, v := temp[model.SystemTempSizeBig]; !v { + // param.TempName = "system" + model.SystemTempSizeBig + // param.Temp = model.SystemTempValue + // if err := AddTemp(param); err != nil { + // globals.SugarLogger.Debug("init system temp err :", err) + // } + // SystemTempObj[model.SystemTempSizeBig] = param + //} + + // 初始化中字体模板 + //if _, v := temp[model.SystemTempSizeMedium]; !v { + // param.TempName = "system" + model.SystemTempSizeMedium + // medium := strings.Replace(model.SystemTempValue, "", "", -1) + // medium2 := strings.Replace(medium, "", "", -1) + // param.Temp = medium2 + // param.TempSize = model.SystemTempSizeMedium + // param.IsUse = 2 + // if err := AddTemp(param); err != nil { + // globals.SugarLogger.Debug("init system temp err :", err) + // } + // SystemTempObj[model.SystemTempSizeMedium] = param + //} + + // 初始化小字体模板 + //if _, v := temp[model.SystemTempSizeSmall]; !v { + // param.TempName = "system" + model.SystemTempSizeSmall + // medium := strings.Replace(model.SystemTempValue, "", " ", -1) + // medium2 := strings.Replace(medium, "", " ", -1) + // param.Temp = medium2 + // param.TempSize = model.SystemTempSizeSmall + // param.IsUse = 2 + // if err := AddTemp(param); err != nil { + // globals.SugarLogger.Debug("init system temp err :", err) + // } + // SystemTempObj[model.SystemTempSizeSmall] = param + //} + +} // MakePrintMsgOnTemp 将打印数据渲染到模板当中 func MakePrintMsgOnTemp(param map[string]string, userId string) (string, error) { // 查询用户默认模板,不存在则使用系统默认模板 userTemp := &model.SystemTemp{} - userTemp, _, err := SelectUserDefaultTemp(userId, model.TempTypeMerchantUser) + userTemp, isHave, err := SelectUserDefaultTemp(userId, model.TempTypeMerchantUser) if err != nil { return "", err } - //if userTemp == nil || !isHave || userTemp.TempType == model.TempTypeMerchant { - // if userTemp.TempType != "" { - // userTemp = SystemTempObj[userTemp.TempSize] - // } else { - // userTemp = SystemTempObj[model.SystemTempSizeBig] - // } - // // 需要打印数据 - // printMsg := "" - // printValue := make([]interface{}, 0, 0) - // for _, v := range strings.Split(userTemp.TempRank, ",") { - // switch v { - // case "skuName", "skuNumber", "skuPrice", "skuAllPrice", "allSkuTypeCount", "allSkuCount": - // continue - // case "goodsListDetail": - // printMsg += model.TempTag[v] - // skuList := make([]*model.SkuListPrintOrder, 0, 0) - // if err := json.Unmarshal([]byte(param[v]), skuList); err != nil { - // return "", err - // } - // for i := 0; i < len(skuList); i++ { - // printMsg += model.TempTag["skuName"] - // printMsg += model.TempTag["skuNumber"] - // printMsg += model.TempTag["skuPrice"] - // printMsg += model.TempTag["skuAllPrice"] - // printValue = append(printValue, skuList[i].SkuName, skuList[i].SkuName, skuList[i].SalePrice, skuList[i].TotalCountPrice) - // if skuList[i].Upc != "" { - // printMsg += model.TempTag["sku"] - // printValue = append(printValue, skuList[i].Upc) - // } - // - // } - // case "businessType": - // if param[v] == "2" { // 是预订单 - // printMsg += model.TempTag[v] - // } - // default: - // printMsg += model.TempTag[v] - // printValue = append(printValue, param[v]) - // } - // - // } - // return strings.Replace(fmt.Sprintf(strings.Replace(printMsg, "\n", "", -1), printValue...), "\\n", "\r\n", -1), nil - //} else { - // 需要打印数据 - printMsg := "" - printValue := make([]interface{}, 0, 0) - userTempMap := make(map[string]string, 0) - if err := json.Unmarshal([]byte(userTemp.Temp), userTempMap); err != nil { - return "", err - } - - for _, v := range strings.Split(userTemp.TempRank, ",") { - switch v { - case "skuName", "skuNumber", "skuPrice", "skuAllPrice", "allSkuTypeCount", "allSkuCount": - continue - case "goodsListDetail": - printMsg += model.TempTag[v] - skuList := make([]*model.SkuListPrintOrder, 0, 0) - if err := json.Unmarshal([]byte(param[v]), skuList); err != nil { - return "", err - } - for i := 0; i < len(skuList); i++ { - printMsg += userTempMap["skuName"] - printMsg += userTempMap["skuNumber"] - printMsg += userTempMap["skuPrice"] - printMsg += userTempMap["skuAllPrice"] - printValue = append(printValue, skuList[i].SkuName, skuList[i].SkuName, skuList[i].SalePrice, skuList[i].TotalCountPrice) - if skuList[i].Upc != "" { - printMsg += model.TempTag["sku"] - printValue = append(printValue, skuList[i].Upc) + if userTemp == nil || !isHave { + if userTemp.TempType != "" { + userTemp = SystemTempObj[userTemp.TempSize] + } else { + userTemp = SystemTempObj[model.SystemTempSizeBig] + } + // 需要打印数据 + printMsg := "" + printValue := make([]interface{}, 0, 0) + for _, v := range strings.Split(userTemp.TempRank, ",") { + switch v { + case "skuName", "skuNumber", "skuPrice", "skuAllPrice", "allSkuTypeCount", "allSkuCount": + continue + case "goodsListDetail": + printMsg += model.TempTag[v] + skuList := make([]*model.SkuListPrintOrder, 0, 0) + if err := json.Unmarshal([]byte(param[v]), skuList); err != nil { + return "", err } + for i := 0; i < len(skuList); i++ { + printMsg += model.TempTag["skuName"] + printMsg += model.TempTag["skuNumber"] + printMsg += model.TempTag["skuPrice"] + printMsg += model.TempTag["skuAllPrice"] + printValue = append(printValue, skuList[i].SkuName, skuList[i].SkuName, skuList[i].SalePrice, skuList[i].TotalCountPrice) + if skuList[i].Upc != "" { + printMsg += model.TempTag["sku"] + printValue = append(printValue, skuList[i].Upc) + } + } + case "businessType": + if param[v] == "2" { // 是预订单 + printMsg += model.TempTag[v] + } + default: + printMsg += model.TempTag[v] + printValue = append(printValue, param[v]) } - case "businessType": - if param[v] == "2" { // 是预订单 - printMsg += userTempMap[v] - } - default: - printMsg += userTempMap[v] - printValue = append(printValue, param[v]) + + } + return strings.Replace(fmt.Sprintf(strings.Replace(printMsg, "\n", "", -1), printValue...), "\\n", "\r\n", -1), nil + } else { + // 需要打印数据 + printMsg := "" + printValue := make([]interface{}, 0, 0) + userTempMap := make(map[string]string, 0) + if err := json.Unmarshal([]byte(userTemp.Temp), userTempMap); err != nil { + return "", err } + for _, v := range strings.Split(userTemp.TempRank, ",") { + switch v { + case "skuName", "skuNumber", "skuPrice", "skuAllPrice", "allSkuTypeCount", "allSkuCount": + continue + case "goodsListDetail": + printMsg += model.TempTag[v] + skuList := make([]*model.SkuListPrintOrder, 0, 0) + if err := json.Unmarshal([]byte(param[v]), skuList); err != nil { + return "", err + } + for i := 0; i < len(skuList); i++ { + printMsg += userTempMap["skuName"] + printMsg += userTempMap["skuNumber"] + printMsg += userTempMap["skuPrice"] + printMsg += userTempMap["skuAllPrice"] + printValue = append(printValue, skuList[i].SkuName, skuList[i].SkuName, skuList[i].SalePrice, skuList[i].TotalCountPrice) + if skuList[i].Upc != "" { + printMsg += model.TempTag["sku"] + printValue = append(printValue, skuList[i].Upc) + } + + } + case "businessType": + if param[v] == "2" { // 是预订单 + printMsg += userTempMap[v] + } + default: + printMsg += userTempMap[v] + printValue = append(printValue, param[v]) + } + + } + return strings.Replace(fmt.Sprintf(strings.Replace(printMsg, "\n", "", -1), printValue...), "\\n", "\r\n", -1), nil } - return strings.Replace(fmt.Sprintf(strings.Replace(printMsg, "\n", "", -1), printValue...), "\\n", "\r\n", -1), nil - //} - //return "", nil } // MakePrintMsgOnTempVoice 制作平台语音