package order import ( "context" "github.com/gogf/gf/v2/errors/gerror" "github.com/gogf/gf/v2/frame/g" "jyOrderManager/internal/model" ) func SaveOrUpdateContract(ctx context.Context, orderCode, companyName string, money int, contract model.Contract) error { count, err := g.DB().GetCount(ctx, "SELECT * from contract where order_code = ?", orderCode) if err != nil { return gerror.Wrapf(err, "查询回款计划异常") } data := g.Map{ "customer_name": companyName, // 客户名称 "contract_code": contract.ContractCode, // 协议编号 "contract_status": contract.ContractStatus, // 协议状态 1-已签协议 0-未签协议 "contract_money": money, // 合同金额 单位:分 "contract_file_url": contract.ContractFileUrl, // 合同文件地址 "contract_archive_status": contract.ContractArchiveStatus, // 协议归档状态 0-未归档 1-已归档 "contract_archive_num": contract.ContractArchiveNum, // 协议归档份数 "order_code": orderCode, } //电子协议 if contract.Contract_userA_type > 0 { data["seal_type"] = contract.Contract_type // 电子合同-1:有电子章,2:无电子章 data["partyA_type"] = contract.Contract_userA_type // 电子合同-1:个人,2:企业 data["partyA_name"] = contract.Contract_userA_name // 电子合同-甲方名称 data["partyA_person"] = contract.Contract_userA_contacts_name // 电子合同-甲方联系人 data["partyA_tel"] = contract.Contract_userA_contacts_tel // 电子合同-甲方联系方式 data["partyA_address"] = contract.Contract_userA_contacts_address // 电子合同-甲方地址 data["partyB_person"] = contract.Contract_userB_contacts_name // 电子合同-乙方联系人 data["remark"] = contract.Contract_remark // 电子合同-备注 } if contract.ContractTime != "" { data["contract_time"] = contract.ContractTime } if contract.ContractArchiveTime != "" { // 协议归档时间 data["contract_archive_time"] = contract.ContractArchiveTime } if count > 0 { //更新 if _, err := g.DB().Update(ctx, "contract", data, "order_code=?", orderCode); err != nil { return gerror.Wrapf(err, "合同更新异常") } } else { //插入 if _, err := g.DB().Save(ctx, "contract", data); err != nil { return gerror.Wrapf(err, "合同保存出错") } } return nil }