uploadContractFile.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package order
  2. import (
  3. "app.yhyue.com/moapp/jybase/common"
  4. "context"
  5. "errors"
  6. "fmt"
  7. "github.com/gogf/gf/v2/frame/g"
  8. "jyOrderManager/internal/jyutil"
  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. if contractData.IsEmpty() {
  21. if orderData.IsEmpty() {
  22. return errors.New("未找到该订单")
  23. } else {
  24. err = insertContractFile(ctx, param.OrderCode, param, common.IntAll(orderData.Map()["order_money"]))
  25. }
  26. } else {
  27. err = UpdateContractFile(ctx, param.Id, param)
  28. }
  29. if err != nil {
  30. log.Println("UploadContractFile err ", err.Error())
  31. return err
  32. }
  33. //判断是否增加业绩变更
  34. if common.IntAll(orderData.Map()["pay_money"]) > 0 && common.IntAll(orderData.Map()["is_backstage_order"]) == 1 &&
  35. common.IntAll(orderData.Map()["order_status"]) == 0 && common.IntAll(orderData.Map()["return_status"]) == 0 {
  36. _ = CommonChange(ctx, param.OrderCode, param.ContractArchiveTime, ReturnProtocol)
  37. jyutil.MG.DB().Update("dataexport_order", map[string]interface{}{
  38. "order_code": param.OrderCode,
  39. }, map[string]interface{}{"order_status": 1}, false, false)
  40. }
  41. return err
  42. }
  43. func insertContractFile(ctx context.Context, orderCode string, contract model.UploadContract, contractMoney int) error {
  44. data := map[string]interface{}{
  45. "contract_file_url": contract.ContractFileUrl,
  46. "order_code": orderCode,
  47. "contract_money": contractMoney,
  48. "contract_archive_status": 1,
  49. }
  50. if contract.ContractArchiveTime != "" {
  51. data["contract_archive_time"] = contract.ContractArchiveTime
  52. }
  53. if contract.ContractArchiveNum > 0 {
  54. data["contract_archive_num"] = contract.ContractArchiveNum
  55. }
  56. _, err := g.DB().Insert(ctx, "contract", data)
  57. if err != nil {
  58. return err
  59. }
  60. //err := g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
  61. //filterMap := common.ObjToMap(orderData["filter"])
  62. //(*filterMap)["contractStatus"] = 1
  63. //filter_map, _ := json.Marshal(filterMap)
  64. // _, err = g.DB().Update(ctx, "dataexport_order", map[string]interface{}{"id": orderData["id"]}, map[string]interface{}{
  65. // "filter": string(filter_map),
  66. // })
  67. // return err
  68. //})
  69. return err
  70. }
  71. // 上传合同
  72. func UpdateContractFile(ctx context.Context, id int, contract model.UploadContract) error {
  73. data := map[string]interface{}{
  74. "contract_file_url": contract.ContractFileUrl,
  75. "contract_archive_status": 1,
  76. }
  77. if contract.ContractArchiveTime != "" {
  78. data["contract_archive_time"] = contract.ContractArchiveTime
  79. }
  80. if contract.ContractArchiveNum > 0 {
  81. data["contract_archive_num"] = contract.ContractArchiveNum
  82. }
  83. _, err := g.DB().Update(ctx, "contract", data, map[string]interface{}{"id": id})
  84. if err != nil {
  85. return err
  86. }
  87. //err := g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
  88. // filterMap := common.ObjToMap(orderData["filter"])
  89. // (*filterMap)["contractStatus"] = 1
  90. // filter_map, _ := json.Marshal(filterMap)
  91. // _, err = g.DB().Update(ctx, "dataexport_order", map[string]interface{}{
  92. // "filter": string(filter_map),
  93. // }, map[string]interface{}{"id": orderData["id"]})
  94. // return err
  95. //})
  96. return err
  97. }