package order import ( "app.yhyue.com/moapp/jybase/common" "app.yhyue.com/moapp/jybase/date" "context" "errors" "fmt" "github.com/gogf/gf/v2/database/gdb" "github.com/gogf/gf/v2/frame/g" "jyOrderManager/internal/model" "log" ) // UploadContractFile 协议归档 func UploadContractFile(ctx context.Context, param model.UploadContract) error { if param.ContractFileUrl == "" { return errors.New("缺少合同文件") } orderData, _ := g.DB().GetOne(ctx, fmt.Sprintf(`SELECT * FROM dataexport_order WHERE order_code = '%s'`, param.OrderCode)) contractData, _ := g.DB().GetOne(ctx, fmt.Sprintf(`SELECT * FROM contract WHERE id = %d`, param.Id)) var err error var isCommonChange bool //判断是否增加业绩变更 if common.IntAll(orderData.Map()["pay_money"]) > 0 && common.IntAll(orderData.Map()["is_backstage_order"]) == 1 && common.IntAll(orderData.Map()["order_status"]) == 0 && common.IntAll(orderData.Map()["return_status"]) == 0 { isCommonChange = true } if err = g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error { if isCommonChange { if err = CommonChange(ctx, param.OrderCode, param.ContractArchiveTime, ReturnProtocol); err != nil { return err } } if contractData.IsEmpty() { if orderData.IsEmpty() { return errors.New("未找到该订单") } else { err = insertContractFile(ctx, param.OrderCode, param, common.IntAll(orderData.Map()["order_money"])) } } else { err = UpdateContractFile(ctx, param.Id, param) } if err != nil { log.Println("UploadContractFile err ", err.Error()) return err } if isCommonChange { g.DB().Update(ctx, "dataexport_order", map[string]interface{}{"order_status": 1, "last_update_time": date.NowFormat(date.Date_Full_Layout)}, map[string]interface{}{ "order_code": param.OrderCode, }) } return nil }); err != nil { return err } return err } func insertContractFile(ctx context.Context, orderCode string, contract model.UploadContract, contractMoney int) error { data := map[string]interface{}{ "contract_file_url": contract.ContractFileUrl, "order_code": orderCode, "contract_money": contractMoney, "original_amount": contractMoney, "contract_archive_status": 1, } if contract.ContractArchiveTime != "" { data["contract_archive_time"] = contract.ContractArchiveTime } if contract.ContractArchiveNum > 0 { data["contract_archive_num"] = contract.ContractArchiveNum } _, err := g.DB().Insert(ctx, "contract", data) if err != nil { return err } //err := g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error { //filterMap := common.ObjToMap(orderData["filter"]) //(*filterMap)["contractStatus"] = 1 //filter_map, _ := json.Marshal(filterMap) // _, err = g.DB().Update(ctx, "dataexport_order", map[string]interface{}{"id": orderData["id"]}, map[string]interface{}{ // "filter": string(filter_map), // }) // return err //}) return err } // 上传合同 func UpdateContractFile(ctx context.Context, id int, contract model.UploadContract) error { data := map[string]interface{}{ "contract_file_url": contract.ContractFileUrl, "contract_archive_status": 1, } if contract.ContractArchiveTime != "" { data["contract_archive_time"] = contract.ContractArchiveTime } if contract.ContractArchiveNum > 0 { data["contract_archive_num"] = contract.ContractArchiveNum } _, err := g.DB().Update(ctx, "contract", data, map[string]interface{}{"id": id}) if err != nil { return err } //err := g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error { // filterMap := common.ObjToMap(orderData["filter"]) // (*filterMap)["contractStatus"] = 1 // filter_map, _ := json.Marshal(filterMap) // _, err = g.DB().Update(ctx, "dataexport_order", map[string]interface{}{ // "filter": string(filter_map), // }, map[string]interface{}{"id": orderData["id"]}) // return err //}) return err }