| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 | package daoimport (	"Cold_Logistic/internal/pkg/common/global"	"Cold_Logistic/internal/server/infra/models"	"context"	"gogs.baozhida.cn/Cold_Logistic_libs/pkg/contrib/core"	"gogs.baozhida.cn/Cold_Logistic_libs/pkg/contrib/errors"	"time")// CarLogStore 车辆表type CarLogStore interface {	DbBaseStore	BatchSave(ctx context.Context, values []*models.CarLog, omit ...string) error	GetMapByIds(ctx context.Context, ids []int, omit ...string) (map[int]models.CarLog, error)	Page(ctx context.Context, dto CarLogPageDTO) ([]CarLogPageVO, int64, error)	FindAllByCarId(ctx context.Context, carId int) ([]models.CarLog, error)}var _ CarLogStore = &carLog{}type carLog struct {	dbBase}func newCarLog(ds *DataStore) *carLog {	return &carLog{dbBase: dbBase{		store:      ds,		baseEntity: &models.CarLog{},	}}}func (ds *DataStore) CarLog() CarLogStore {	return newCarLog(ds)}func (a *carLog) BatchSave(ctx context.Context, values []*models.CarLog, omit ...string) error {	if len(values) == 0 {		return nil	}	db := a.store.optionDB(ctx)	tokenInfo := global.GetTokenInfoFromContext(ctx)	for i := range values {		if values[i].Id == 0 {			values[i].CreatedBy = tokenInfo.AccountId			values[i].CreatedTime.Time = time.Now()			values[i].Deleted = models.DeleteNo		} else {			values[i].UpdatedBy = tokenInfo.AccountId			values[i].UpdatedTime.Time = time.Now()		}	}	return db.Table(a.baseEntity.TableName()).Omit(omit...).Save(&values).Error}func (a *carLog) GetMapByIds(ctx context.Context, ids []int, omit ...string) (map[int]models.CarLog, error) {	res := make(map[int]models.CarLog, len(ids))	if len(ids) == 0 {		return res, nil	}	var list []models.CarLog	db := a.store.optionDB(ctx)	err := db.Table(a.baseEntity.TableName()).		Where("deleted = ?", models.DeleteNo).		Where("id IN (?)", ids).		Omit(omit...).		Find(&list).Error	if err != nil {		return res, err	}	for i := range list {		res[list[i].Id] = list[i]	}	return res, nil}type CarLogPageDTO struct {	Page core.Page	Name string // 名称}type CarLogPageVO struct {	Id              int           `gorm:"column:id" json:"id"`                             //	DriverAccountId int           `gorm:"column:driver_account_id" json:"driverAccountId"` //司机账号id	HandoverTime    models.MyTime `gorm:"column:handover_time" json:"handoverTime"`        //交接时间}func (a *carLog) Page(ctx context.Context, dto CarLogPageDTO) ([]CarLogPageVO, int64, error) {	db := a.store.optionDB(ctx)	stmt := db.Model(&models.CarLog{}).		Where("deleted = ?", models.DeleteNo)	//stmt.Select("id")	//if dto.Name != "" {	//	stmt.Where("name LIKE ?", "%"+dto.Name+"%")	//}	var total int64	var ret []CarLogPageVO	if err := stmt.Count(&total).Error; err != nil {		return nil, 0, err	}	if total == 0 {		return ret, total, nil	}	stmt.Limit(dto.Page.Size).Offset(dto.Page.Offset)	stmt.Order("id desc")	if err := stmt.Find(&ret).Error; err != nil {		return nil, 0, err	}	return ret, total, nil}func (a *carLog) FindAllByCarId(ctx context.Context, carId int) ([]models.CarLog, error) {	ret := make([]models.CarLog, 0)	err := a.store.optionDB(ctx).Model(&models.CarLog{}).		Where("deleted = ?", models.DeleteNo).		Where("car_id = ?", carId).Find(&ret).Error	return ret, errors.WithStackOnce(err)}
 |