Files
jx-print/services/print_server/app_server/print_setting.go
邹宗楠 7d874eca22 1
2022-08-11 13:49:12 +08:00

203 lines
6.4 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"
"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(printNo string) error {
// 打印机标号唯一,判断打印机是否存在设置
isHave, err := dao.PrintSettingInfoDao.QueryPrintNoIsExit(printNo)
if err != nil {
return err
}
if !isHave {
return errors.New("已经存在绑定的打印机设置,联系管理员")
}
day := time.Now()
param, err := MarshalJson2String(&settingModel.PrintSetting{
CreatedAt: day,
UpdatedAt: day,
DeletedAt: utils.DefaultTimeValue,
PrintNo: printNo,
CallNameSetting: 64,
SystemVoice: 1,
})
if err != nil {
return err
}
return dao.PrintSettingInfoDao.InsertPrintSetting(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) {
// 打印机提示语音设置
printVoiceSetting := &settingModel.PrintVoice{
TimeVoice: settingModel.SettingClose,
PaperShortageVoice: settingModel.SettingOpen,
DisconnectVoice: settingModel.SettingOpen,
LoseAuthorization: settingModel.SettingOpen,
}
printVoiceSettingByte, err := json.Marshal(printVoiceSetting)
if err != nil {
return nil, err
}
param.PrintVoiceSetting = string(printVoiceSettingByte)
// 订单提示设置
orderVoiceSetting := &settingModel.OrderVoice{
PrintOrder: settingModel.SettingOpen,
OrderNotice: settingModel.SettingOpen,
UserOrderCancel: settingModel.SettingClose,
UserOrderCancelVoice: settingModel.SettingOpen,
RefundOrder: settingModel.SettingOpen,
RefundOrderVoice: settingModel.SettingOpen,
BusinessOrderCancel: settingModel.SettingClose,
BusinessOrderCancelVoice: settingModel.SettingOpen,
}
orderVoiceSettingByte, err := json.Marshal(orderVoiceSetting)
if err != nil {
return nil, err
}
param.OrderVoiceSetting = string(orderVoiceSettingByte)
// 送达设置
riderVoiceSetting := &settingModel.RiderVoice{
RiderTakeOrder: settingModel.SettingOpen,
RiderTakeOrderVoice: settingModel.SettingOpen,
RiderServiceVoice: settingModel.SettingOpen,
RiderReminderVoice: settingModel.SettingOpen,
}
riderVoiceSettingByte, err := json.Marshal(riderVoiceSetting)
if err != nil {
return nil, err
}
param.RiderVoiceSetting = string(riderVoiceSettingByte)
// 客户收货语音设置
customerVoiceSetting := &settingModel.CustomerReceivingGoods{
CustomerRejectionPrint: settingModel.SettingClose,
CustomerRejectionVoice: settingModel.SettingOpen,
CustcareRefundPrint: settingModel.SettingClose,
CustcareRefundVoice: settingModel.SettingOpen,
ConsultingPrint: settingModel.SettingClose,
ConsultingVoice: settingModel.SettingClose,
}
customerVoiceSettingByte, err := json.Marshal(customerVoiceSetting)
if err != nil {
return nil, err
}
param.CustomerVoiceSetting = string(customerVoiceSettingByte)
// 拣货设置
pickingSetting := &settingModel.ShopPickingVoice{
BusinessOffLine: settingModel.SettingClose,
BusinessOffLineVoice: settingModel.SettingOpen,
WaitOrderPrint: settingModel.SettingClose,
WaitOrderVoice: settingModel.SettingOpen,
WaitPickingPrint: settingModel.SettingClose,
WaitPickingVoice: settingModel.SettingOpen,
}
pickingSettingByte, err := json.Marshal(pickingSetting)
if err != nil {
return nil, err
}
param.PickingSetting = string(pickingSettingByte)
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
}