Files
jx-print/services/print_server/app_server/print_setting.go
邹宗楠 9e3e72dfe1 1
2022-10-19 17:30:12 +08:00

154 lines
4.9 KiB
Go

package app_server
import (
"encoding/json"
"errors"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-print/dao"
settingModel "git.rosy.net.cn/jx-print/model/app_model"
"github.com/jmoiron/sqlx"
"time"
)
type PrintSettingServer struct {
}
var PrintSettingInfoServer = new(PrintSettingServer)
// UpdatePrintSetting 修改打印机绑定信息
func (p *PrintSettingServer) UpdatePrintSetting(userId string, param *settingModel.UpdatePrintSetting) error {
// 判断打印机和用户是否匹配
isTrue, _, err := dao.GetPrintById(userId, param.PrintNo)
if err != nil {
return err
}
if !isTrue {
return errors.New("此打印机不属于该用户")
}
return dao.PrintSettingInfoDao.UpdatePrinterSetting(param)
}
// SystemInitPrintSetting 绑定打印机时初始化一个打印机设置
func (p *PrintSettingServer) SystemInitPrintSetting(txDB *sqlx.Tx, printNo string) error {
// 打印机标号唯一,判断打印机是否存在设置
isHave, err := dao.PrintSettingInfoDao.QueryPrintNoIsExit(printNo)
if err != nil {
return err
}
if !isHave {
// 修改打印机所属用户
return nil
}
day := time.Now()
param, err := MarshalJson2String(&settingModel.PrintSetting{
CreatedAt: day,
UpdatedAt: day,
DeletedAt: utils.DefaultTimeValue,
PrintNo: printNo,
CallNameSetting: 64, // 老板
BusinessPrintNum: 1, // 打印一份
CustomerPrintNum: 1, // 打印一份
})
if err != nil {
return err
}
return dao.PrintSettingInfoDao.InsertPrintSetting(txDB, param)
}
// DeletePrintSetting 删除打印机设置
func (p *PrintSettingServer) DeletePrintSetting(printNo string) error {
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) {
// 语音设置
voiceSetting := &settingModel.VoiceSettingDetail{
WaitOrderVoice: settingModel.SettingOpen,
RiderTakeOrderVoice: settingModel.SettingOpen,
ApplyUserOrderCancelVoice: settingModel.SettingOpen,
ApplyRefundOrderVoice: settingModel.SettingOpen,
ApplyRefundGoodsVoice: settingModel.SettingOpen,
RefundGoodsVoice: settingModel.SettingOpen,
ConfirmGoodsVoice: settingModel.SettingOpen,
SuccessGoodsVoice: settingModel.SettingOpen,
ConsultingPrint: settingModel.SettingOpen,
ReminderVoice: settingModel.SettingOpen,
CustomerRejectionVoice: settingModel.SettingOpen,
CusterRefundVoice: settingModel.SettingOpen,
LoseAuthorization: settingModel.SettingOpen,
}
customerVoiceSettingByte, err := json.Marshal(voiceSetting)
if err != nil {
return nil, err
}
param.VoiceSetting = string(customerVoiceSettingByte)
// 打印设置
printSetting := &settingModel.PrintSettingDetail{
UserOrderCancel: settingModel.SettingOpen,
RefundOrder: settingModel.SettingOpen,
BusinessOrderCancel: settingModel.SettingOpen,
RiderTakeOrder: settingModel.SettingOpen,
CusterRefundPrint: settingModel.SettingOpen,
WaitOrderPrint: settingModel.SettingOpen,
ApplyUserCancelOrder: settingModel.SettingOpen,
ApplyUserRefund: settingModel.SettingOpen,
OrderCancelSuccess: settingModel.SettingOpen,
}
pickingSettingByte, err := json.Marshal(printSetting)
if err != nil {
return nil, err
}
param.PrintSetting = string(pickingSettingByte)
return param, nil
}
// UnMarshalString2Json 将字符串设置转换为对象设置
func UnMarshalString2Json(param *settingModel.PrintSetting) (*settingModel.PrintSettingObj, error) {
var (
printSetting = &settingModel.PrintSettingDetail{}
voiceSetting = &settingModel.VoiceSettingDetail{}
)
result := &settingModel.PrintSettingObj{
ID: param.ID,
CreatedAt: param.CreatedAt,
UpdatedAt: param.UpdatedAt,
DeletedAt: param.DeletedAt,
PrintNo: param.PrintNo,
CallNameSetting: param.CallNameSetting,
BusinessOffLineVoice: param.BusinessOffLineVoice,
BalanceNotEnoughVoice: param.BalanceNotEnoughVoice,
EveryDayGreetVoice: param.EveryDayGreetVoice,
BusinessPrintNum: param.BusinessPrintNum,
CustomerPrintNum: param.CustomerPrintNum,
}
if err := json.Unmarshal([]byte(param.VoiceSetting), voiceSetting); err != nil {
return nil, err
}
result.VoiceSetting = voiceSetting
if err := json.Unmarshal([]byte(param.PrintSetting), printSetting); err != nil {
return nil, err
}
result.PrintSetting = printSetting
return result, nil
}