uploadContractFile.go 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. package order
  2. import (
  3. "app.yhyue.com/moapp/jybase/common"
  4. "context"
  5. "errors"
  6. "fmt"
  7. "github.com/gogf/gf/v2/database/gdb"
  8. "github.com/gogf/gf/v2/frame/g"
  9. "jyOrderManager/internal/model"
  10. "log"
  11. )
  12. // UploadContractFile 协议归档
  13. func UploadContractFile(ctx context.Context, param model.UploadContract) error {
  14. if param.ContractFileUrl == "" {
  15. return errors.New("缺少合同文件")
  16. }
  17. orderData, _ := g.DB().GetOne(ctx, fmt.Sprintf(`SELECT * FROM dataexport_order WHERE order_code = '%s'`, param.OrderCode))
  18. contractData, _ := g.DB().GetOne(ctx, fmt.Sprintf(`SELECT * FROM contract WHERE id = %d`, param.Id))
  19. var err error
  20. var isCommonChange bool
  21. //判断是否增加业绩变更
  22. if common.IntAll(orderData.Map()["pay_money"]) > 0 && common.IntAll(orderData.Map()["is_backstage_order"]) == 1 &&
  23. common.IntAll(orderData.Map()["order_status"]) == 0 && common.IntAll(orderData.Map()["return_status"]) == 0 {
  24. isCommonChange = true
  25. }
  26. if err = g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
  27. if isCommonChange {
  28. if err = CommonChange(ctx, param.OrderCode, param.ContractArchiveTime, ReturnProtocol); err != nil {
  29. return err
  30. }
  31. }
  32. if contractData.IsEmpty() {
  33. if orderData.IsEmpty() {
  34. return errors.New("未找到该订单")
  35. } else {
  36. err = insertContractFile(ctx, param.OrderCode, param, common.IntAll(orderData.Map()["order_money"]))
  37. }
  38. } else {
  39. err = UpdateContractFile(ctx, param.Id, param)
  40. }
  41. if err != nil {
  42. log.Println("UploadContractFile err ", err.Error())
  43. return err
  44. }
  45. if isCommonChange {
  46. g.DB().Update(ctx, "dataexport_order", map[string]interface{}{"order_status": 1}, map[string]interface{}{
  47. "order_code": param.OrderCode,
  48. })
  49. }
  50. return nil
  51. }); err != nil {
  52. return err
  53. }
  54. return err
  55. }
  56. func insertContractFile(ctx context.Context, orderCode string, contract model.UploadContract, contractMoney int) error {
  57. data := map[string]interface{}{
  58. "contract_file_url": contract.ContractFileUrl,
  59. "order_code": orderCode,
  60. "contract_money": contractMoney,
  61. //"original_amount": contractMoney,
  62. "contract_archive_status": 1,
  63. }
  64. if contract.ContractArchiveTime != "" {
  65. data["contract_archive_time"] = contract.ContractArchiveTime
  66. }
  67. if contract.ContractArchiveNum > 0 {
  68. data["contract_archive_num"] = contract.ContractArchiveNum
  69. }
  70. _, err := g.DB().Insert(ctx, "contract", data)
  71. if err != nil {
  72. return err
  73. }
  74. //err := g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
  75. //filterMap := common.ObjToMap(orderData["filter"])
  76. //(*filterMap)["contractStatus"] = 1
  77. //filter_map, _ := json.Marshal(filterMap)
  78. // _, err = g.DB().Update(ctx, "dataexport_order", map[string]interface{}{"id": orderData["id"]}, map[string]interface{}{
  79. // "filter": string(filter_map),
  80. // })
  81. // return err
  82. //})
  83. return err
  84. }
  85. // 上传合同
  86. func UpdateContractFile(ctx context.Context, id int, contract model.UploadContract) error {
  87. data := map[string]interface{}{
  88. "contract_file_url": contract.ContractFileUrl,
  89. "contract_archive_status": 1,
  90. }
  91. if contract.ContractArchiveTime != "" {
  92. data["contract_archive_time"] = contract.ContractArchiveTime
  93. }
  94. if contract.ContractArchiveNum > 0 {
  95. data["contract_archive_num"] = contract.ContractArchiveNum
  96. }
  97. _, err := g.DB().Update(ctx, "contract", data, map[string]interface{}{"id": id})
  98. if err != nil {
  99. return err
  100. }
  101. //err := g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
  102. // filterMap := common.ObjToMap(orderData["filter"])
  103. // (*filterMap)["contractStatus"] = 1
  104. // filter_map, _ := json.Marshal(filterMap)
  105. // _, err = g.DB().Update(ctx, "dataexport_order", map[string]interface{}{
  106. // "filter": string(filter_map),
  107. // }, map[string]interface{}{"id": orderData["id"]})
  108. // return err
  109. //})
  110. return err
  111. }