203 lines
6.4 KiB
Go
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
|
|
}
|