添加用户配送地址管理API

This commit is contained in:
gazebo
2019-10-17 13:54:32 +08:00
parent b234e26eff
commit 2483b33dc1
6 changed files with 344 additions and 13 deletions

View File

@@ -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
}