添加用户配送地址管理API
This commit is contained in:
@@ -13,6 +13,14 @@ type StoreWithCityName struct {
|
||||
CityName string `json:"cityName"`
|
||||
}
|
||||
|
||||
type UserDeliveryAddressEx struct {
|
||||
model.UserDeliveryAddress
|
||||
|
||||
UserName string
|
||||
CityName string
|
||||
DistrictName string
|
||||
}
|
||||
|
||||
func GetUserByID(db *DaoDB, fieldName, fieldValue string) (user *model.User, err error) {
|
||||
sql := fmt.Sprintf(`
|
||||
SELECT *
|
||||
@@ -64,7 +72,7 @@ func GetUsers(db *DaoDB, userType int, keyword string, userIDs []string, userID2
|
||||
sql += " LIMIT ? OFFSET ?"
|
||||
sqlParams = append(sqlParams, pageSize, offset)
|
||||
Begin(db)
|
||||
defer Rollback(db)
|
||||
defer Commit(db)
|
||||
if err = GetRows(db, &userList, sql, sqlParams...); err == nil {
|
||||
totalCount = GetLastTotalRowCount(db)
|
||||
}
|
||||
@@ -149,3 +157,54 @@ func GetStoreListByMobileOrStoreIDs(db *DaoDB, mobile string, shortRoleNameList
|
||||
err = GetRows(db, &storeList, sql, sqlParams...)
|
||||
return storeList, err
|
||||
}
|
||||
|
||||
func QueryUserDeliveryAddress(db *DaoDB, userIDs []string, offset, pageSize int) (addressList []*UserDeliveryAddressEx, totalCount int, err error) {
|
||||
sql := `
|
||||
SELECT SQL_CALC_FOUND_ROWS
|
||||
t1.*,
|
||||
t2.name user_name,
|
||||
district.name district_name,
|
||||
city.name city_name
|
||||
FROM user_delivery_address t1
|
||||
LEFT JOIN user t2 ON t2.user_id = t1.user_id
|
||||
LEFT JOIN place district ON district.code = t1.district_code
|
||||
LEFT JOIN place city ON city.code = t1.city_code
|
||||
WHERE t1.deleted_at = ?
|
||||
`
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
}
|
||||
if len(userIDs) > 0 {
|
||||
sql += " AND t1.user_id IN (" + GenQuestionMarks(len(userIDs)) + ")"
|
||||
sqlParams = append(sqlParams, userIDs)
|
||||
}
|
||||
offset = FormalizePageOffset(offset)
|
||||
pageSize = FormalizePageSize(pageSize)
|
||||
sql += " LIMIT ? OFFSET ?"
|
||||
sqlParams = append(sqlParams, pageSize, offset)
|
||||
|
||||
Begin(db)
|
||||
defer Commit(db)
|
||||
if err = GetRows(db, &addressList, sql, sqlParams...); err == nil {
|
||||
totalCount = GetLastTotalRowCount(db)
|
||||
}
|
||||
return addressList, totalCount, err
|
||||
}
|
||||
|
||||
func ClearUserDeliveryAddressDefault(db *DaoDB, userID string, defAddressID int) (err error) {
|
||||
sql := `
|
||||
UPDATE user_delivery_address t1
|
||||
SET t1.is_default = 0
|
||||
WHERE t1.deleted_at = ? AND t1.user_id = ?
|
||||
`
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
userID,
|
||||
}
|
||||
if defAddressID > 0 {
|
||||
sql += " AND t1.id <> ?"
|
||||
sqlParams = append(sqlParams, defAddressID)
|
||||
}
|
||||
_, err = ExecuteSQL(db, sql, sqlParams...)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -112,17 +112,42 @@ type UserDeliveryAddress struct {
|
||||
ModelIDCULD
|
||||
|
||||
UserID string `orm:"size(48);column(user_id)" json:"userID"` // 内部唯一标识
|
||||
Name string `orm:"size(255)" json:"name"`
|
||||
|
||||
Tag string `orm:"size(32)" json:"tag"`
|
||||
ConsigneeName string `orm:"size(32)" json:"consigneeName"`
|
||||
ConsigneeMobile string `orm:"size(32)" json:"consigneeMobile"`
|
||||
AutoAddress string `orm:"size(255)" json:"autoAddress"` // 这个是通过坐标自动获取的结构化的地址
|
||||
Address string `orm:"size(255)" json:"address"` // 这个是用户手输入的详细地址
|
||||
CityCode int `orm:"default(0);null" json:"cityCode"` // todo ?
|
||||
DistrictCode int `orm:"default(0);null" json:"districtCode"` // todo ?
|
||||
Lng int `json:"-"` // 乘了10的6次方
|
||||
Lat int `json:"-"` // 乘了10的6次方
|
||||
Remark string `orm:"type(text)" json:"-"`
|
||||
IsDefault int8 `json:"isDefault"`
|
||||
Tag string `orm:"size(32)" json:"tag"`
|
||||
ConsigneeName string `orm:"size(32)" json:"consigneeName"`
|
||||
ConsigneeMobile string `orm:"size(32)" json:"consigneeMobile"`
|
||||
Address string `orm:"size(255)" json:"address"` // 这个是用户手输入的详细地址
|
||||
Lng float64 `orm:"digits(10);decimals(6)" json:"lng"` // 乘了10的6次方
|
||||
Lat float64 `orm:"digits(10);decimals(6)" json:"lat"` // 乘了10的6次方
|
||||
|
||||
AutoAddress string `orm:"size(255)" json:"autoAddress"` // 这个是通过坐标自动获取的结构化的地址
|
||||
CityCode int `orm:"default(0);null" json:"cityCode"` // 根据坐标获得
|
||||
DistrictCode int `orm:"default(0);null" json:"districtCode"` // 根据坐标获得
|
||||
|
||||
Remark string `orm:"type(text)" json:"remark"`
|
||||
IsDefault int8 `json:"isDefault"`
|
||||
}
|
||||
|
||||
func (*UserDeliveryAddress) TableUnique() [][]string {
|
||||
return [][]string{
|
||||
// []string{"UserID", "ConsigneeMobile", "DeletedAt"},
|
||||
}
|
||||
}
|
||||
|
||||
type UserCartItem struct {
|
||||
ModelIDCUL
|
||||
|
||||
UserID string `orm:"size(48);column(user_id)" json:"userID"`
|
||||
StoreID int `orm:"column(store_id)" json:"storeID"`
|
||||
SkuID int `orm:"column(sku_id)"`
|
||||
ActID int `orm:"column(act_id)" json:"actID"`
|
||||
|
||||
Count int `json:"count"`
|
||||
AddedAt time.Time `orm:"auto_now_add;type(datetime)" json:"addedAt"`
|
||||
}
|
||||
|
||||
func (*UserCartItem) TableUnique() [][]string {
|
||||
return [][]string{
|
||||
[]string{"UserID", "StoreID", "SkuID", "ActID"},
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user