uploadContractFile.go 3.9 KB

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