You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
161 lines
4.1 KiB
161 lines
4.1 KiB
6 months ago
|
package service
|
||
|
|
||
|
import (
|
||
|
"errors"
|
||
|
|
||
|
"shop-api/dto"
|
||
|
"shop-api/global"
|
||
|
"shop-api/model"
|
||
|
"shop-api/model/request"
|
||
|
)
|
||
|
|
||
|
func GetUserAddressList(userID string, info *request.ReqAddress) (error, any) {
|
||
|
var (
|
||
|
err error
|
||
|
list []model.Address
|
||
|
)
|
||
|
db := global.MG_DB.Model(&model.Address{}).Where("user_id=?", userID)
|
||
|
if info.ID != 0 {
|
||
|
db = db.Where("id=?", info.ID)
|
||
|
}
|
||
|
err = db.Find(&list).Error
|
||
|
if err != nil {
|
||
|
return errors.New("获取收货地址失败"), nil
|
||
|
}
|
||
|
return nil, list
|
||
|
}
|
||
|
|
||
|
func AddUserAddressList(userID string, req *dto.CreateAddressRequest) error {
|
||
|
var err error
|
||
|
|
||
|
if req.FirstName == "" || req.LastName == "" || req.Bldg == "" || req.City == "" || req.Street == "" || req.State == "" || req.ZipCode == "" {
|
||
|
return errors.New("有必填项未填写")
|
||
|
}
|
||
|
if len(req.FirstName) > 255 {
|
||
|
return errors.New("FirstName长度超出限制")
|
||
|
}
|
||
|
if len(req.LastName) > 255 {
|
||
|
return errors.New("LastName长度超出限制")
|
||
|
}
|
||
|
if len(req.Street) > 255 {
|
||
|
return errors.New("Street长度超出限制")
|
||
|
}
|
||
|
if len(req.Bldg) > 255 {
|
||
|
return errors.New("Bldg长度超出限制")
|
||
|
}
|
||
|
if len(req.City) > 255 {
|
||
|
return errors.New("City长度超出限制")
|
||
|
}
|
||
|
if len(req.State) > 255 {
|
||
|
return errors.New("State长度超出限制")
|
||
|
}
|
||
|
if len(req.ZipCode) > 255 {
|
||
|
return errors.New("ZipCode长度超出限制")
|
||
|
}
|
||
|
if len(req.Phone) > 20 {
|
||
|
return errors.New("Phone长度超出限制")
|
||
|
}
|
||
|
if req.Default == 1 {
|
||
|
global.MG_DB.Model(&model.Address{}).Where("user_id=?", userID).Update("default", 2)
|
||
|
}
|
||
|
err = global.MG_DB.Model(&model.Address{}).Create(&model.Address{
|
||
|
UserID: userID,
|
||
|
FirstName: req.FirstName,
|
||
|
LastName: req.LastName,
|
||
|
Street: req.Street,
|
||
|
Phone: req.Phone,
|
||
|
Bldg: req.Bldg,
|
||
|
City: req.City,
|
||
|
State: req.State,
|
||
|
ZipCode: req.ZipCode,
|
||
|
Default: int(req.Default),
|
||
|
}).Error
|
||
|
if err != nil {
|
||
|
return errors.New("添加收货地址失败")
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func UpdateAddress(userID string, req *dto.UpdateAddressRequest) error {
|
||
|
var err error
|
||
|
if req.FirstName == "" || req.LastName == "" || req.Bldg == "" || req.City == "" || req.Street == "" || req.State == "" || req.ZipCode == "" {
|
||
|
return errors.New("有必填项未填写")
|
||
|
}
|
||
|
if len(req.FirstName) > 255 {
|
||
|
return errors.New("FirstName长度超出限制")
|
||
|
}
|
||
|
if len(req.LastName) > 255 {
|
||
|
return errors.New("LastName长度超出限制")
|
||
|
}
|
||
|
if len(req.Street) > 255 {
|
||
|
return errors.New("Street长度超出限制")
|
||
|
}
|
||
|
if len(req.Bldg) > 255 {
|
||
|
return errors.New("Bldg长度超出限制")
|
||
|
}
|
||
|
if len(req.City) > 255 {
|
||
|
return errors.New("City长度超出限制")
|
||
|
}
|
||
|
if len(req.State) > 255 {
|
||
|
return errors.New("State长度超出限制")
|
||
|
}
|
||
|
if len(req.ZipCode) > 255 {
|
||
|
return errors.New("ZipCode长度超出限制")
|
||
|
}
|
||
|
if len(req.Phone) > 20 {
|
||
|
return errors.New("Phone长度超出限制")
|
||
|
}
|
||
|
|
||
|
if req.Default == 1 {
|
||
|
global.MG_DB.Model(&model.Address{}).Where("user_id=?", userID).Update("default", 2)
|
||
|
}
|
||
|
err = global.MG_DB.Model(&model.Address{}).Where("user_id=? and id=?", userID, req.Id).Updates(&model.Address{
|
||
|
FirstName: req.FirstName,
|
||
|
LastName: req.LastName,
|
||
|
Street: req.Street,
|
||
|
Phone: req.Phone,
|
||
|
Bldg: req.Bldg,
|
||
|
City: req.City,
|
||
|
State: req.State,
|
||
|
ZipCode: req.ZipCode,
|
||
|
Default: int(req.Default),
|
||
|
}).Error
|
||
|
if err != nil {
|
||
|
return errors.New("修改收货地址失败")
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func DeleteAddress(userID string, ID *global.BASE_ID) error {
|
||
|
var err error
|
||
|
err = global.MG_DB.Model(&model.Address{}).Where("user_id=? and id=?", userID, ID.ID).Delete(&model.Address{}).Error
|
||
|
if err != nil {
|
||
|
return errors.New("删除收货地址失败")
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func GetUsSelect() (error, any) {
|
||
|
var (
|
||
|
err error
|
||
|
list []model.UsSelect
|
||
|
data []model.UsCitys
|
||
|
)
|
||
|
err = global.MG_DB.Model(&model.UsStates{}).Find(&list).Error
|
||
|
if err != nil {
|
||
|
return errors.New("获取地址失败"), nil
|
||
|
}
|
||
|
err = global.MG_DB.Model(&model.UsCitys{}).Find(&data).Error
|
||
|
if err != nil {
|
||
|
return errors.New("获取地址失败"), nil
|
||
|
}
|
||
|
for v := range list {
|
||
|
for x := range data {
|
||
|
if data[x].IDState == list[v].ID {
|
||
|
list[v].Child = append(list[v].Child, data[x])
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return nil, list
|
||
|
}
|