returnPlant.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package order
  2. import (
  3. "context"
  4. "github.com/gogf/gf/v2/errors/gerror"
  5. "github.com/gogf/gf/v2/frame/g"
  6. "github.com/gogf/gf/v2/util/gconv"
  7. "jyOrderManager/internal/model"
  8. "time"
  9. )
  10. // SaveOrUpdateReturnPlant 保存更新回款计划
  11. func SaveOrUpdateReturnPlant(ctx context.Context, orderCode string, orderMoney int, plant model.ReturnPlant) error {
  12. num, err := g.DB().GetCount(ctx, "SELECT * from return_money_plant where order_code = ?", orderCode)
  13. if err != nil {
  14. return gerror.Wrapf(err, "查询回款计划异常")
  15. }
  16. data := g.Map{}
  17. if len(plant.PlantList) > 1 {
  18. var (
  19. totalMoney int
  20. checkMoney int
  21. )
  22. for _, m := range plant.PlantList {
  23. var (
  24. code = gconv.String(m["code"])
  25. money = gconv.Int(m["money"])
  26. )
  27. if code == "合计" {
  28. checkMoney = money
  29. } else {
  30. totalMoney += money
  31. }
  32. }
  33. if totalMoney != checkMoney || orderMoney != checkMoney {
  34. return gerror.New("回款计划金额异常")
  35. }
  36. data = g.Map{
  37. "day_num": plant.DayNum,
  38. "plantList": gconv.String(plant.PlantList),
  39. }
  40. } else if plant.ExpectTime != "" {
  41. if _, err := time.Parse(time.DateOnly, plant.ExpectTime); err != nil {
  42. return gerror.Wrap(err, "预计回款时间格式异常")
  43. }
  44. data = g.Map{
  45. "day_num": plant.DayNum,
  46. "expect_time": plant.ExpectTime,
  47. "plantList": "",
  48. }
  49. } else {
  50. return gerror.New("回款计划字段异常")
  51. }
  52. data["order_code"] = orderCode
  53. if num > 0 { //更新
  54. if _, err := g.DB().Update(ctx, "return_money_plant", data, "order_code=?", orderCode); err != nil {
  55. return gerror.Wrap(err, "更新回款计划异常")
  56. }
  57. } else { //新增
  58. data["create_time"] = time.Now().Format("2006-01-02 15:04:05")
  59. if _, err := g.DB().Save(ctx, "return_money_plant", data); err != nil {
  60. return gerror.Wrap(err, "保存回款计划异常")
  61. }
  62. }
  63. return err
  64. }