| | |
| | | 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 |
| | | } |
| | |
| | | |
| | | 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, data map[string]interface{}) ([]*model.SubOrder, int64, int) { |
| | | // get contact list |
| | | contacts, total, err := model.NewSubOrderSearch().SetSearchMap(data).SetPage(page, pageSize).SetSearchMap(data).FindAll() |
| | | contacts, total, err := model.NewSubOrderSearch(nil).SetSearchMap(data).SetPage(page, pageSize).SetSearchMap(data).FindAll() |
| | | if err != nil { |
| | | return nil, 0, ecode.SubOrderListErr |
| | | } |
| | |
| | | |
| | | func (SubOrderService) DeleteSubOrder(ids []int) int { |
| | | // delete client |
| | | err := model.NewSubOrderSearch().SetIds(ids).Delete() |
| | | err := model.NewSubOrderSearch(nil).SetIds(ids).Delete() |
| | | if err != nil { |
| | | return ecode.SubOrderDeleteErr |
| | | } |