154 lines
4.9 KiB
Go
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
|
|
}
|