From 530fed8ec225453572d57b15c200ab062c335457 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期三, 01 十一月 2023 19:20:21 +0800 Subject: [PATCH] 公海member_id使用0 --- service/subOrder.go | 78 ++++++++++++++++++++++++++++----------- 1 files changed, 56 insertions(+), 22 deletions(-) diff --git a/service/subOrder.go b/service/subOrder.go index 38a56c6..2a59fd9 100644 --- a/service/subOrder.go +++ b/service/subOrder.go @@ -3,12 +3,13 @@ import ( "aps_crm/model" "aps_crm/pkg/ecode" + "aps_crm/pkg/mysqlx" ) type SubOrderService struct{} func (SubOrderService) AddSubOrder(subOrder *model.SubOrder) int { - err := model.NewSubOrderSearch().Create(subOrder) + err := model.NewSubOrderSearch(nil).Create(subOrder) if err != nil { return ecode.SubOrderExist } @@ -16,39 +17,72 @@ return ecode.OK } -func (SubOrderService) DeleteSubOrder(id int) int { - _, err := model.NewSubOrderSearch().SetId(id).Find() - if err != nil { - return ecode.SubOrderNotExist - } - - err = model.NewSubOrderSearch().SetId(id).Delete() - if err != nil { - return ecode.SubOrderNotExist - } - return ecode.OK -} - func (SubOrderService) UpdateSubOrder(subOrder *model.SubOrder) int { // check subOrder exist - _, err := model.NewSubOrderSearch().SetId(subOrder.Id).Find() + tmp, err := model.NewSubOrderSearch(nil).SetId(subOrder.Id).Find() if err != nil { return ecode.SubOrderNotExist } - err = model.NewSubOrderSearch().SetId(subOrder.Id).Update(subOrder) - if err != nil { - return ecode.SubOrderSetErr + if len(subOrder.Products) == 0 { + err = model.NewSubOrderSearch(nil).SetId(subOrder.Id).Update(subOrder) + if err != nil { + return ecode.SubOrderSetErr + } + } else { + tx := mysqlx.GetDB().Begin() + err = tx.Model(tmp).Association("Products").Clear() + if err != nil { + tx.Rollback() + return ecode.SubOrderSetErr + } + + err = model.NewSubOrderSearch(tx).SetId(subOrder.Id).Update(subOrder) + if err != nil { + tx.Rollback() + return ecode.SubOrderSetErr + } + + for _, product := range subOrder.Products { + if product.Id == 0 { + err = model.NewProductSearch(tx).Create(&product) + if err != nil { + tx.Rollback() + return ecode.SubOrderSetErr + } + } else { + err = model.NewProductSearch(tx).SetId(product.Id).Update(&product) + if err != nil { + tx.Rollback() + return ecode.SubOrderSetErr + } + } + err = tx.Model(&tmp).Association("Products").Append(&product) + if err != nil { + tx.Rollback() + return ecode.SubOrderSetErr + } + } + tx.Commit() } return ecode.OK } -func (SubOrderService) GetSubOrderList(page, pageSize int, keyword string) ([]*model.SubOrder, int) { +func (SubOrderService) GetSubOrderList(page, pageSize int, data map[string]interface{}) ([]*model.SubOrder, int64, int) { // get contact list - contacts, err := model.NewSubOrderSearch().SetKeyword(keyword).SetPage(page, pageSize).FindAll() + contacts, total, err := model.NewSubOrderSearch(nil).SetPage(page, pageSize).SetSearchMap(data).FindAll() if err != nil { - return nil, ecode.SubOrderListErr + return nil, 0, ecode.SubOrderListErr } - return contacts, ecode.OK + return contacts, total, ecode.OK +} + +func (SubOrderService) DeleteSubOrder(ids []int) int { + // delete client + err := model.NewSubOrderSearch(nil).SetIds(ids).Delete() + if err != nil { + return ecode.SubOrderDeleteErr + } + return ecode.OK } -- Gitblit v1.8.0