123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- 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
- }
|