package enums

import "XT_New/utils"

const ( // ErrorCode
	// 登录注册错误 6000+
	ErrorCodeLoginTimeout                   = 6001
	ErrorCodeNotLogin                       = 6002
	ErrorCodePermissionDenied               = 6003
	ErrorCodeMobileRegistered               = 6004
	ErrorCodePasswordEmpty                  = 60052503
	ErrorCodeVerificationCodeWrong          = 6006
	ErrorCodeRegisterFail                   = 6007
	ErrorCodeInvalidToken                   = 6008
	ErrorCodeAccountOrPasswordWrong         = 6009
	ErrorCodeMissingOrg                     = 6010
	ErrorCodeMissingOrgApp                  = 6011
	ErrorCodeAccountOrVerCodeWrong          = 6012
	ErrorCodeMobileNotExit                  = 6013
	ErrorCodeUserNotExist                   = 6014
	ErrorCodeUserWasForbidden               = 6015
	ErrorCodeNeverCreateTypeApp             = 6016
	ErrorCodeContactSuperAdminCreateTypeApp = 6017

	ErrorCodeRepeatCreateOrg = 901

	// 数据验证错误 7000+
	ErrorCodeMobileFormat     = 7001
	ErrorCodeTelphoneFormat   = 7002
	ErrorCodeParamWrong       = 7003
	ErrorCodeParamFormatWrong = 7004

	// 数据库操作错误 8000+
	ErrorCodeDBCreate         = 8001
	ErrorCodeDBUpdate         = 8002
	ErrorCodeDBDelete         = 8003
	ErrorCodeDBSelectNoResult = 8004
	ErrorCodeDataException    = 8005
	ErrorDrugDataException    = 8006
	// 业务逻辑操作错误 9000+
	ErrorCodeRoleNotExist           = 9001
	ErrorCodeAdminUserNotExist      = 9002
	ErrorCodeMobileDidUsedInApp     = 9003
	ErrorCodeMissingUserName        = 9004
	ErrorCodeOldPasswordWrong       = 9005
	ErrorCodeCannotRemoveRole       = 9006
	ErrorCodeRoleMobileIsSuperAdmin = 9007

	ErrorCodeGetQiniuUpToken                = 1001
	ErrorCodeCreatePatient                  = 1002
	ErrorCodeDialysisNoExist                = 1003
	ErrorCodeIdCardNoExist                  = 1004
	ErrorCodePatientNoExist                 = 1005
	ErrorCodeUpdatePatient                  = 1006
	ErrorCodeDialysisSolutionExist          = 1007
	ErrorCodeDialysisSolutionCreate         = 1008
	ErrorCodeDialysisSolutionUpdate         = 1009
	ErrorCodeDialysisSolutionNotExist       = 1010
	ErrorCodeParentDialysisSolutionNotExist = 1011
	ErrorCodeAlReadyHadChildSolution        = 1012
	ErrorCodeCanntCreateChildChildSolution  = 1013
	ErrorCodeDialysisSolutionUsed           = 1014
	ErrorCodeCreateDryWeightFail            = 1015
	ErrorCodeCreateDoctorAdviceFail         = 1016
	ErrorCodeDoctorAdviceNotExist           = 1017
	ErrorCodeUpdateDoctorAdviceFail         = 1018
	ErrorCodeLongTimeAdviceNotCanntEdit     = 1019
	ErrorCodeAdviceStoped                   = 1020
	ErrorCodeParentAdviceNotExist           = 1021
	ErrorCodeStopAdviceFail                 = 1022
	ErrorCodeDeleteAdviceFail               = 1023
	ErrorCodeDialysisSolutionDelete         = 1024
	ErrorCodeDeviceNumberNotTheZone         = 1025
	ErrorCodeCreateScheduleFail             = 1026
	ErrorCodeCantSetScheduleAgainOneDay     = 1027
	ErrorCodeCantSetScheduleBeforeNow       = 1028
	ErrorCodeScheduleNotExist               = 1029
	ErrorCodeDeleteScheduleFail             = 1030
	ErrorCodeChangeScheduleFail             = 1031
	ErrorCodePatientPhoneUsed               = 1032
	ErrorCodeAdviceExced                    = 1033
	ErrorCodeAdviceChecked                  = 1034
	ErrorCodePointScheduleExist             = 1035
	ErrorCodeExceAndCheckNotOneUser         = 1036
	ErrorCodeCanotEditOtherAdvice           = 1037
	ErrorCodeEditLapsetoFail                = 1038
	ErrorCodeAdviceCheckBeforeExce          = 1039
	ErrorCodeAdviceExceBeforeStart          = 1040
	ErrorCodeDelScheduleFailByDialysis      = 1041
	ErrorCodeNotSelectLapsetoType           = 1042
	ErrorCodeNotSelectLapsetoTime           = 1043
	ErrorCodeEquitNoExist                   = 1045

	ErrorCodeInspectionDateExit    = 1201
	ErrorCodeInspectionAddFail     = 1202
	ErrorCodeInspectionEditFail    = 1204
	ErrorCodeInspectionDateNotExit = 1203
	ErrorCodeInspectionDeleteFail  = 1205

	ErrorCodeMonitorCreate                  = 1128
	ErrorCodeMonitorNotExist                = 1129
	ErrorCodeMonitorUpdate                  = 1130
	ErrorDialysisOrderNoStart               = 1132
	ErrorDialysisOrderNoEND                 = 1133
	ErrorDialysisOrderRepeatStart           = 1134
	ErrorDialysisOrderRepeatBed             = 1136
	ErrorCodeDialysisPermissionDeniedModify = 1135

	ErrorCodeNotSubscibe       = 4003
	ErrorCodeServeNotExist     = 4004
	ErrorCodeInvoiceExist      = 4005
	ErrorCodeApplyInvoiceFail  = 4006
	ErrorCodeHetongHad         = 4007
	ErrorCodeCreateHetongFail  = 4008
	ErrorCodePatientReachLimit = 4009

	ErrorCodeDeviceZoneNotExist                      = 9021
	ErrorCodeDeviceZoneNameRepeat                    = 9022
	ErrorCodeDeviceGroupNotExist                     = 9023
	ErrorCodeDeviceGroupNameRepeat                   = 9024
	ErrorCodeDeviceNumberNotExist                    = 9025
	ErrorCodeDeviceNumberRepeat                      = 9026
	ErrorCodeDeviceNotExist                          = 9027
	ErrorCodeDeviceZoneCannotDisable                 = 9028
	ErrorCodeDeviceNumberCannotDisableCuzDevice      = 9029
	ErrorCodeDeviceNumberCannotDisableCuzSchedule    = 9030
	ErrorCodeDeviceNumberCannotDisableCuzSchTemplate = 9031

	ErrorCommitFail = 90000

	ErrorCodeCreateStockInFail = 20001

	ErrorCodeCreateReturnFail = 50001

	ErrorCodeCreateStockOutFail = 50002

	ErrorCodeCreateCancelStockFail = 50003

	ErrorCodeScheduleTemplateNotExist = 10001

	ErrorCodeSystemError  = 6666
	ErrorCodeProductError = 6667
	ErrorCodeFieldExist   = 100001
	ErrorCodeCreateConfig = 100002
	ErrorCodeUpdateConfig = 100003

	ErrorCodeDoubleCheckWrong     = 200003
	ErrorCodeDoubleCheckUserWrong = 200004
	ErrorCodeGoodNoStockInError   = 200005
	ErrorCodeCancelStockFail      = 200006
	ErrorCodeDeleteGoodTypeFail   = 200007
	ErrorCodeDeleteGoodInfoFail   = 200008
	ErrorCodeDeleteFail           = 200009

	ErrorCodeKeyFail                 = 200010
	ErrorCodeDeleteStockInRecordFail = 200011
	ErrorCodeNameWrong               = 200012

	ErrorCodeParamEmptyWrong       = 200013
	ErrorCodeParamAdviceEmptyWrong = 200014

	ErrorCodeParamTemplateNOEXISTWrong = 200015

	ErrorCodeDeleteDealerWrong       = 200016
	ErrorCodeDeleteManufacturerWrong = 200017
	ErrorCodeGoodTypeNameExistError  = 200018
	ErrorCodeGoodInfoNameExistError  = 200019

	ErrorCodePrescriptionPermissionDeniedModify = 200020

	ErrorCodeAdvicePermissionDeniedModify = 200021
	ErrorCodePrescriptionException        = 200022

	ErrorCodeNotDocking = 200023

	ErrorCodeAdviceTypeWrong = 200024

	ErrorCodeCreateAdvice = 200025

	ErrorCodePatientDialysisOrder = 20026
	ErrorSchedualcRepeatBed       = 20027

	ErrorCodeChangeMode         = 20028
	ErrorCodeChangeDeviceNumber = 20029

	ErrorCodeHisIdExist = 20030

	ErrorCodePreExist   = 20031
	ErrorCodeOrgNoExist = 20032

	ErrorCodeRegisterExist = 20033

	ErrorCodeRepeatCreateStaffException = 20034

	ErrorCodeForbidden       = 20035
	ErrorCodeRoleNameIsExist = 20036

	ErrorCodeRole = 20037

	ErrorCodeAdminUserIsExit = 20038

	ErrorCodePhone = 20039

	ErrorCodeLogOut = 20049

	ErrorCodeExportError = 20050

	ErrorCodeOrgNoPatient = 20051

	ErrorCodeDoctorAdviceEmpty = 20052

	ErrorCodeOpenStocktWrong = 20053

	ErrorCodeDrugRepeatDataException = 20054

	ErrorCodeIDCartNo = 20055

	ErrorCodeRegisterOneException = 20066

	ErrorCodeRegisterTwoException = 20067

	ErrorCodeCreatePreOrderException = 20068

	ErrorCodeCalOrderException = 20069

	ErrorCodeGdybOneException = 20070

	ErrorCodeRegisterThreeException = 20071

	ErrorCodeRegisterRepeatException = 20072

	ErrorCodeAmountAccountException = 20073

	ErrorCodeReadCardException = 20074

	ErrorCodeNoPateintException = 20075

	ErrorCodeHisFailedException = 20076

	ErrorCodeHisOrderNoExistParamWrong = 30000

	ErrorCodePreSettleFaildParamWrong = 30001
	ErrorDrugPreSettleFaildParamWrong = 30002
	ErrorDrugReturnFaildParamWrong    = 30003
	ErrorDoctorLoginFaildParamWrong   = 30004

	ErrorNoReadCardException = 30005

	ErrorCodeParamSickTypeWrong = 30006

	ErrorPsnRecordNoExistWrong = 30007

	ErrorCodeInHospitalNoExistDataException = 30008

	ErrorCodeHospitalNoExistDataException = 30009

	ErrorCodeHospitalExistDataException = 300010

	ErrorCodeHisPatientParamWrong = 300004

	ErrorCodeOrderParamWrong = 300005
)

var ErrCodeMsgs = map[int]string{
	// 登录注册错误
	ErrorCodeLoginTimeout:                   "登录超时",
	ErrorCodeNotLogin:                       "未登录",
	ErrorCodePermissionDenied:               "权限不足",
	ErrorCodeMobileRegistered:               "手机号已被注册",
	ErrorCodePasswordEmpty:                  "密码为空",
	ErrorCodeVerificationCodeWrong:          "验证码错误",
	ErrorCodeRegisterFail:                   "注册失败",
	ErrorCodeInvalidToken:                   "令牌无效",
	ErrorCodeAccountOrPasswordWrong:         "账号或密码错误",
	ErrorCodeMissingOrg:                     "未创建机构",
	ErrorCodeMissingOrgApp:                  "未创建任何应用",
	ErrorCodeAccountOrVerCodeWrong:          "账号或验证码错误",
	ErrorCodeMobileNotExit:                  "手机号不存在",
	ErrorCodeUserNotExist:                   "用户不存在",
	ErrorCodeUserWasForbidden:               "该用户被禁用",
	ErrorCodeNeverCreateTypeApp:             "未创建此种应用",
	ErrorCodeContactSuperAdminCreateTypeApp: "请联系超级管理员开通此种应用",

	// 数据验证错误
	ErrorCodeMobileFormat:     "手机号格式错误",
	ErrorCodeTelphoneFormat:   "电话格式错误",
	ErrorCodeParamWrong:       "参数错误",
	ErrorCodeParamFormatWrong: "参数格式错误",

	// 数据库操作错误
	ErrorCodeDBCreate:         "数据库创建出错",
	ErrorCodeDBUpdate:         "数据库更新出错",
	ErrorCodeDBDelete:         "数据库删除出错",
	ErrorCodeDBSelectNoResult: "查询无结果",
	ErrorCodeDataException:    "数据异常",
	ErrorDrugDataException:    "",
	// 业务逻辑操作错误
	ErrorCodeRoleNotExist:           "角色不存在",
	ErrorCodeAdminUserNotExist:      "管理员不存在",
	ErrorCodeMobileDidUsedInApp:     "该手机号已在该应用中被注册为管理员",
	ErrorCodeMissingUserName:        "缺少用户名",
	ErrorCodeOldPasswordWrong:       "原密码不正确",
	ErrorCodeCannotRemoveRole:       "该角色下存在用户，不能删除该角色",
	ErrorCodeRoleMobileIsSuperAdmin: "该手机号已注册为超级管理员",

	ErrorCodeGetQiniuUpToken: "获取七牛uptoken失败",
	ErrorCodeCreatePatient:   "创建患者失败",
	ErrorCodeDialysisNoExist: "患者透析号重复！",
	ErrorCodeIdCardNoExist:   "身份证号重复！",
	ErrorCodePatientNoExist:  "患者信息不存在！",
	ErrorCodeUpdatePatient:   "修改患者信息失败",

	ErrorCodeDialysisSolutionExist:          "该处方已经存在",
	ErrorCodeDialysisSolutionCreate:         "创建处方失败",
	ErrorCodeDialysisSolutionUpdate:         "修改处方失败",
	ErrorCodeDialysisSolutionNotExist:       "该处方不存在",
	ErrorCodeParentDialysisSolutionNotExist: "上级处方不存在",
	ErrorCodeAlReadyHadChildSolution:        "所选处方已经存在子方案",
	ErrorCodeCanntCreateChildChildSolution:  "子方案不能添加子方案",
	ErrorCodeDialysisSolutionUsed:           "处方已被使用，不能删除",
	ErrorCodeCreateDryWeightFail:            "添加干体重失败",
	ErrorCodeCreateDoctorAdviceFail:         "添加医嘱失败",
	ErrorCodeUpdateDoctorAdviceFail:         "修改医嘱信息失败",
	ErrorCodeDoctorAdviceNotExist:           "医嘱不存在",
	ErrorCodeLongTimeAdviceNotCanntEdit:     "长期医嘱不能修改！",
	ErrorCodeAdviceStoped:                   "所选医嘱已停止",
	ErrorCodeParentAdviceNotExist:           "上级医嘱不存在",
	ErrorCodeDeleteAdviceFail:               "删除医嘱失败",
	ErrorCodeStopAdviceFail:                 "停止医嘱失败",
	ErrorCodeDialysisSolutionDelete:         "删除方案失败",
	ErrorCodeDeviceNumberNotTheZone:         "所选机号不在选择分区中",
	ErrorCodeCreateScheduleFail:             "添加排班失败",
	ErrorCodeCantSetScheduleAgainOneDay:     "同一天不可有两次排班",
	ErrorCodeCantSetScheduleBeforeNow:       "不能给今天之前的日期排班",
	ErrorCodeScheduleNotExist:               "排班不存在",
	ErrorCodePointScheduleExist:             "所先位置排班已经存在",
	ErrorCodeDeleteScheduleFail:             "取消排班失败",
	ErrorCodeChangeScheduleFail:             "修改排班失败",
	ErrorCodePatientPhoneUsed:               "手机号已经存在",
	ErrorCodeAdviceExced:                    "医嘱已经执行",
	ErrorCodeAdviceCheckBeforeExce:          "核对医嘱不能在执行医嘱之前",
	ErrorCodeAdviceExceBeforeStart:          "执行医嘱不能在开始之前",
	ErrorCodeAdviceChecked:                  "医嘱已经核对",
	ErrorCodeExceAndCheckNotOneUser:         "核对与执行不能是同一人",
	ErrorCodeCanotEditOtherAdvice:           "不能修改非本人添加的医嘱",
	ErrorCodeEditLapsetoFail:                "转归失败",
	ErrorCodeDelScheduleFailByDialysis:      "已经上机透析，不能取消排班",
	ErrorCodeNotSelectLapsetoType:           "请选择转归状态",
	ErrorCodeNotSelectLapsetoTime:           "请选择转归时间",

	ErrorCodeInspectionDateExit:    "当天已经存在检验检查记录",
	ErrorCodeInspectionAddFail:     "添加记录失败",
	ErrorCodeInspectionDateNotExit: "当天不存在检验检查记录",
	ErrorCodeInspectionEditFail:    "修改记录失败",
	ErrorCodeInspectionDeleteFail:  "删除记录失败",

	ErrorCodeDeviceZoneNotExist:                      "设备分区不存在",
	ErrorCodeDeviceZoneNameRepeat:                    "该分区名已存在",
	ErrorCodeDeviceGroupNotExist:                     "设备分组不存在",
	ErrorCodeDeviceGroupNameRepeat:                   "该分组名已存在",
	ErrorCodeDeviceNumberNotExist:                    "机号不存在",
	ErrorCodeDeviceNumberRepeat:                      "该机号已存在",
	ErrorCodeDeviceNotExist:                          "该设备不存在",
	ErrorCodeDeviceZoneCannotDisable:                 "该分区存在床位号，不能删除",
	ErrorCodeDeviceNumberCannotDisableCuzDevice:      "该床位存在设备，不能删除",
	ErrorCodeDeviceNumberCannotDisableCuzSchedule:    "该床位尚有排班安排，不能删除",
	ErrorCodeDeviceNumberCannotDisableCuzSchTemplate: "排班模板在该床位尚有排班安排，不能删除",

	ErrorCodeNotSubscibe:       "没有订阅服务或服务已过期，请先购买服务！",
	ErrorCodeServeNotExist:     "服务订单不存在！",
	ErrorCodeInvoiceExist:      "已经申请了发票！",
	ErrorCodeApplyInvoiceFail:  "申请发票失败！",
	ErrorCodeHetongHad:         "合同已经存在！",
	ErrorCodeCreateHetongFail:  "合同创建失败",
	ErrorCodePatientReachLimit: "患者数已达到当前服务版本病人数，需要升级到更高的版本",

	ErrorCodeMonitorCreate:                  "创建监测失败",
	ErrorCodeMonitorNotExist:                "监测记录不存在",
	ErrorCodeMonitorUpdate:                  "修改监测失败",
	ErrorCodeDialysisPermissionDeniedModify: "您没有权限修改其他医护的数据！",

	ErrorDialysisOrderNoStart:     "尚未上机，无法执行下机操作",
	ErrorDialysisOrderNoEND:       "已处于下机状态",
	ErrorDialysisOrderRepeatStart: "已上机",
	ErrorDialysisOrderRepeatBed:   "该床位已有患者上机,请选择其他床位",
	//ErrorCodeScheduleTemplateNotExist: "排班模板不存在",

	ErrorCodeSystemError:              "系统异常",
	ErrorCodeProductError:             "该服务商品已丢失",
	ErrorCodeScheduleTemplateNotExist: "排班模板不存在",

	ErrorCodeCreateStockInFail: "入库失败",
	//ErrorCodeSystemError:  "系统异常",
	//ErrorCodeProductError: "该服务商品已丢失",
	ErrorCodeFieldExist:   "配置字段已存在",
	ErrorCodeCreateConfig: "创建配置失败",
	ErrorCodeUpdateConfig: "修改配置失败",

	ErrorCommitFail:               "提交失败",
	ErrorCodeDoubleCheckWrong:     "核对已完成, 无法再次提交",
	ErrorCodeDoubleCheckUserWrong: "你已完成核对，不能重复核对",
	ErrorCodeGoodNoStockInError:   "该商品尚未入库",

	ErrorCodeCancelStockFail:    "出库退库失败",
	ErrorCodeDeleteGoodTypeFail: "该类型存在商品信息,无法删除",
	ErrorCodeDeleteGoodInfoFail: "该商品已经入库或者出库无法删除",

	ErrorCodeDeleteFail: "删除失败",

	ErrorCodeKeyFail:                 "关键字不能为空",
	ErrorCodeDeleteStockInRecordFail: "该记录已经有出库或退货操作,无法删除",
	ErrorCodeNameWrong:               "该模版名字已存在",
	ErrorCodeParamEmptyWrong:         "模版名称不能为空",
	ErrorCodeParamAdviceEmptyWrong:   "医嘱名称不能为空",

	ErrorCodeDeleteDealerWrong:       "该经销商所属商品已入库无法删除",
	ErrorCodeDeleteManufacturerWrong: "该厂商所属商品已入库无法删除",
	ErrorCodeGoodTypeNameExistError:  "该商品类型名字已存在",
	ErrorCodeGoodInfoNameExistError:  "该规格名称名字已存在",

	ErrorCodePrescriptionPermissionDeniedModify: "您没有权限修改透析处方数据",
	ErrorCodeAdvicePermissionDeniedModify:       "您没有权限添加医嘱",
	ErrorCodePrescriptionException:              "上机失败,请先开处方",
	ErrorCodeNotDocking:                         "该地区尚未对接",

	ErrorCodeAdviceTypeWrong:      "请选择医嘱模版类型",
	ErrorCodeCreateAdvice:         "你没有权限开医嘱",
	ErrorCodePatientDialysisOrder: "该病人已经上机,无法临时排班",
	ErrorSchedualcRepeatBed:       "该床位已经有人排班,无法临时排班",

	ErrorCodeChangeMode:         "该患者今天已上机治疗，请在透析记录中进行调整透析模式",
	ErrorCodeChangeDeviceNumber: "该患者今天已上机治疗，请在透析记录中进行调整机号",

	ErrorCodeHisIdExist: "该his_id已被占用,请重新输入",

	ErrorCodePreExist: "没有该权限",

	ErrorCodeRepeatCreateOrg: "该账号已创建过机构了",

	ErrorCodeOrgNoExist: "该机构不存在",

	ErrorCodeRegisterExist: "该账号已经注册，请登录",

	ErrorCodeRepeatCreateStaffException: "该员工已经存在无法继续添加",

	ErrorCodeForbidden: "你已经被管理员禁用,无法使用该系统",

	ErrorCodeRoleNameIsExist: "该角色已经不存在",

	ErrorCodeRole: "尚未配置角色,无访问权限",

	ErrorCodeAdminUserIsExit: "用户不存在",
	ErrorCodePhone:           "请填写正确的联系电话",

	ErrorCodeLogOut:      "退出",
	ErrorCodeExportError: "导入出错,请下载并查看相关日志",

	ErrorCodeOrgNoPatient: "暂无病人",

	ErrorCodeDoctorAdviceEmpty: "没有更多了",
	ErrorCodeOpenStocktWrong:   "未开启自动扣减功能,无法出库",

	ErrorCodeDrugRepeatDataException: "该药已经存在，无法添加",

	ErrorCodeIDCartNo: "身份证不能为空",

	ErrorCodeRegisterOneException: "无参保信息",

	ErrorCodeRegisterTwoException:    "挂号失败",
	ErrorCodeCreatePreOrderException: "创建预结算订单失败",
	ErrorCodeCalOrderException:       "结算失败",
	ErrorCodeGdybOneException:        "获取人员信息失败",
	ErrorCodeRegisterThreeException:  "就诊信息上传失败",
	ErrorCodeRegisterRepeatException: "患者一天只能挂号一次",
	ErrorCodeAmountAccountException:  "结算失败",

	ErrorCodeReadCardException:  "读卡失败",
	ErrorCodeNoPateintException: "读卡失败！请先在系统录入患者信息或检查患者身份证信息是否正确，再重新读卡",

	ErrorCodeHisFailedException: "获取人员信息失败",

	ErrorCodePreSettleFaildParamWrong:  "预结算失败",
	ErrorCodeHisOrderNoExistParamWrong: "订单不存在",
	ErrorDrugPreSettleFaildParamWrong:  "备案失败",
	ErrorDrugReturnFaildParamWrong:     "撤销失败",
	ErrorDoctorLoginFaildParamWrong:    "登记失败",

	ErrorNoReadCardException: "无法读取除社保卡以外的卡",

	ErrorCodeParamSickTypeWrong: "医生所开处方的疾病类型不能为空",

	ErrorPsnRecordNoExistWrong: "人员备案信息不存在",

	ErrorCodeInHospitalNoExistDataException: "入院记录不存在",

	ErrorCodeHospitalNoExistDataException: "请先办理出院才能进行结算",

	ErrorCodeHospitalExistDataException: "该患者已经入院，请选办理出院结算后再进行办理入院操作",
	ErrorCodeHisPatientParamWrong:       "订单正在结算、请先结算完成",

	ErrorCodeOrderParamWrong: "该就诊号存在已结算记录，请先退费后再进行退号操作",
}

type SGJError struct {
	Code int
}

func (e *SGJError) Error() string {
	value, ok := ErrCodeMsgs[e.Code]
	if ok {
		return value
	} else {
		return "未知错误"
	}
}

func MakeSuccessResponseJSON(data map[string]interface{}) map[string]interface{} {
	json := make(map[string]interface{})
	if data != nil {
		json["data"] = data
	} else {
		json["data"] = make(map[string]interface{})
	}
	json["state"] = 1
	json["code"] = 0
	return json
}

func MakeFailResponseJSON(errMsg string, errCode int) map[string]interface{} {
	json := make(map[string]interface{})
	json["msg"] = errMsg
	json["code"] = errCode
	json["state"] = 0
	return json
}

func MakeFailResponseJSONWithSGJError(err *SGJError) map[string]interface{} {
	if err == nil {
		utils.WarningLog("MakeFailResponseJSONWithSGJError 参数err 不能为空")
		return nil
	}
	return MakeFailResponseJSON(err.Error(), err.Code)
}

func MakeFailResponseJSONWithSGJErrorCode(code int) map[string]interface{} {
	err := &SGJError{Code: code}
	return MakeFailResponseJSON(err.Error(), err.Code)
}
