12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package order
- import (
- "context"
- "github.com/gogf/gf/v2/errors/gerror"
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/util/gconv"
- "jyOrderManager/internal/model"
- "time"
- )
- // SaveOrUpdateReturnPlant 保存更新回款计划
- func SaveOrUpdateReturnPlant(ctx context.Context, orderCode string, orderMoney int, plant model.ReturnPlant) error {
- num, err := g.DB().GetCount(ctx, "SELECT * from return_money_plant where order_code = ?", orderCode)
- if err != nil {
- return gerror.Wrapf(err, "查询回款计划异常")
- }
- data := g.Map{}
- if len(plant.PlantList) > 1 {
- var (
- totalMoney int
- checkMoney int
- )
- for _, m := range plant.PlantList {
- var (
- code = gconv.String(m["code"])
- money = gconv.Int(m["money"])
- )
- if code == "合计" {
- checkMoney = money
- } else {
- totalMoney += money
- }
- }
- if totalMoney != checkMoney || orderMoney != checkMoney {
- return gerror.New("回款计划金额异常")
- }
- data = g.Map{
- "day_num": plant.DayNum,
- "plantList": gconv.String(plant.PlantList),
- }
- } else if plant.ExpectTime != "" {
- if _, err := time.Parse(time.DateOnly, plant.ExpectTime); err != nil {
- return gerror.Wrap(err, "预计回款时间格式异常")
- }
- data = g.Map{
- "day_num": plant.DayNum,
- "expect_time": plant.ExpectTime,
- "plantList": "",
- }
- } else {
- return gerror.New("回款计划字段异常")
- }
- data["order_code"] = orderCode
- if num > 0 { //更新
- if _, err := g.DB().Update(ctx, "return_money_plant", data, "order_code=?", orderCode); err != nil {
- return gerror.Wrap(err, "更新回款计划异常")
- }
- } else { //新增
- data["create_time"] = time.Now().Format("2006-01-02 15:04:05")
- if _, err := g.DB().Save(ctx, "return_money_plant", data); err != nil {
- return gerror.Wrap(err, "保存回款计划异常")
- }
- }
- return err
- }
|