123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package repository
- import (
- req "sghgogs.com/micro/shopping-service/domain/model/request"
- pb "sghgogs.com/micro/shopping-service/proto"
- )
- func (u *Repository) CreateAddress(address *req.Address) error {
- // 开始事务
- tx := u.db.Begin()
- // 错误处理
- defer func() {
- if r := recover(); r != nil {
- tx.Rollback()
- }
- }()
- if err := tx.Create(&address).Error; err != nil {
- tx.Rollback()
- return err
- }
- return tx.Commit().Error
- }
- func (u *Repository) GetAddressList(query *pb.GetAddressListRequest) ([]req.Address, int64, error) {
- tx := u.db.Model(&req.Address{}).
- Select("id, country, province, city, district, street, remark, is_default, created_at, updated_at").
- Order("id desc")
- var totalCount int64
- if query.Keyword != "" {
- tx.Where("country = ? OR province = ? OR city = ?", query.Keyword, query.Keyword)
- }
- tx.Count(&totalCount)
- addresses := make([]req.Address, 0)
- return addresses, totalCount, tx.Limit(int(query.PageSize)).Offset(int((query.Page - 1) * query.PageSize)).Find(&addresses).Error
- }
- func (u *Repository) GetAddress(addressID int64) (req.Address, error) {
- var address req.Address
- return address, u.db.
- Where("id = ?", addressID).
- Preload("Location").
- Find(&address).Error
- }
- func (u *Repository) UpdateAddress(addressID int64, address *req.Address) error {
- return u.db.Model(&req.Address{}).Where("id = ?", addressID).Updates(address).Error
- }
- func (u *Repository) DeleteAddress(addressID int64) error {
- return u.db.Model(&req.Address{}).Delete(&req.Address{ID: addressID}).Error
- }
|