uploadContractFile.go 3.9 KB

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