package service import ( "errors" "gas-cylinder-api/app/admin/model" "gas-cylinder-api/app/admin/service/dto" "gas-cylinder-api/common/actions" cDto "gas-cylinder-api/common/dto" "gas-cylinder-api/common/global" "gogs.baozhida.cn/zoie/OAuth-core/service" "gorm.io/gorm" ) type InspectRecord struct { service.Service } // GetPage 获取InspectRecord列表 func (e *InspectRecord) GetPage(c *dto.InspectRecordGetPageReq, list *[]model.InspectRecord, count *int64, p *actions.DataPermission) error { var err error var data model.InspectRecord err = e.Orm.Model(&data). Joins("Customer"). Joins("User"). Scopes( cDto.MakeCondition(c.GetNeedSearch()), cDto.Paginate(c.GetPageSize(), c.GetPageIndex()), actions.Permission(data.TableName(), p), ). Where("name like ?", "%"+c.CustomerName+"%"). Where("nick_name like ?", "%"+c.InspectorName+"%"). Find(list).Limit(-1).Offset(-1). Count(count).Error if err != nil { e.Log.Errorf("db error: %s", err) return global.GetFailedErr } return nil } // Get 获取InspectRecord对象 func (e *InspectRecord) Get(d *dto.InspectRecordGetReq, inspectRecordModel *model.InspectRecord, p *actions.DataPermission) error { err := e.Orm. Scopes(actions.Permission(inspectRecordModel.TableName(), p)). First(inspectRecordModel, d.GetId()).Error if err != nil { e.Log.Errorf("db error: %s", err) if errors.Is(err, gorm.ErrRecordNotFound) { return global.GetNotFoundOrNoPermissionErr } return global.GetFailedErr } return nil } func (e *InspectRecord) GetByOrder(d *dto.InspectRecordGetByOrderReq, inspectRecordModel *model.InspectRecord, p *actions.DataPermission) error { err := e.Orm. Scopes( cDto.MakeCondition(d.GetNeedSearch()), ). First(inspectRecordModel).Error if err != nil { e.Log.Errorf("db error: %s", err) if errors.Is(err, gorm.ErrRecordNotFound) { return global.GetNotFoundOrNoPermissionErr } return global.GetFailedErr } return nil } // Insert 创建InspectRecord对象 func (e *InspectRecord) Insert(c *dto.InspectRecordInsertReq) error { var err error var data model.InspectRecord tx := e.Orm.Begin() defer func() { if err != nil { tx.Rollback() } else { tx.Commit() } }() //err = e.Orm.Where("order_id = ?", c.OrderId).First(&data).Error //if err != nil { // if errors.Is(err, gorm.ErrRecordNotFound) { // // 添加入户安全检查 // c.Generate(&data) // // TODO 同步省平台 1.1.1.20 入户安全检查 // //ipr := data.GenProvInspectRecord() // data.OperationLogId = util.NewUuid() // err = tx.Create(&data).Error // if err != nil { // e.Log.Errorf("db error: %s", err) // return global.CreateFailedErr // } // c.Id = data.Id // return nil // } else { // e.Log.Errorf("db error: %s", err) // return global.CreateFailedErr // } // //} c.Generate(&data) // TODO 同步省平台 1.1.1.20 入户安全检查 //ipr := data.GenProvInspectRecord() err = tx.Create(&data).Error if err != nil { e.Log.Errorf("db error: %s", err) return global.UpdateFailedErr } //修改客户入户安全检查状态 0-待整改 1-整改中 2-已整改 -1 合格 var CustomerModel model.Customer err = e.Orm.Where("id = ?", c.CustomerId).First(&CustomerModel).Error if err != nil { e.Log.Errorf("db error: %s", err) if errors.Is(err, gorm.ErrRecordNotFound) { return global.UpdateNotFoundOrNoPermissionErr } return global.UpdateFailedErr } CustomerModel.State = data.State err = tx.Save(&CustomerModel).Error if err != nil { e.Log.Errorf("db error: %s", err) return global.UpdateFailedErr } // 订单为配送中 已检查 var orderModel model.Order // 查询订单是否存在 err = e.Orm.Where("order_id = ?", c.OrderId).First(&orderModel).Error if err != nil { e.Log.Errorf("db error: %s", err) if errors.Is(err, gorm.ErrRecordNotFound) { return global.CreateFailedErr } return global.CreateFailedErr } orderModel.State = 6 err = tx.Save(&orderModel).Error if err != nil { e.Log.Errorf("db error: %s", err) return global.UpdateFailedErr } c.Id = data.Id return nil } // Update 修改InspectRecord对象 func (e *InspectRecord) Update(c *dto.InspectRecordInsertReq) error { var err error tx := e.Orm.Begin() defer func() { if err != nil { tx.Rollback() } else { tx.Commit() } }() var inspectRecordModel = model.InspectRecord{} // 查询入户安全检查是否存在 err = e.Orm.First(&inspectRecordModel, c.GetId()).Error if err != nil { e.Log.Errorf("db error: %s", err) if errors.Is(err, gorm.ErrRecordNotFound) { return global.UpdateNotFoundOrNoPermissionErr } return global.UpdateFailedErr } c.UpdateGenerate(&inspectRecordModel) err = tx.Save(&inspectRecordModel).Error if err != nil { e.Log.Errorf("db error: %s", err) return global.UpdateFailedErr } // 修改客户入户安全检查状态 var CustomerModel model.Customer err = e.Orm.Where("id = ?", inspectRecordModel.CustomerId).First(&CustomerModel).Error if err != nil { e.Log.Errorf("db error: %s", err) if errors.Is(err, gorm.ErrRecordNotFound) { return global.UpdateNotFoundOrNoPermissionErr } return global.UpdateFailedErr } CustomerModel.State = inspectRecordModel.State err = tx.Save(&CustomerModel).Error if err != nil { e.Log.Errorf("db error: %s", err) return global.UpdateFailedErr } c.Id = inspectRecordModel.Id return nil }