新手如何做海外網(wǎng)站代購優(yōu)化網(wǎng)絡的軟件
【尚庭公寓SpringBoot + Vue 項目實戰(zhàn)】用戶管理(十五)
文章目錄
- 【尚庭公寓SpringBoot + Vue 項目實戰(zhàn)】用戶管理(十五)
- 1、業(yè)務介紹
- 2、接口實現(xiàn)
- 2.1、根據(jù)條件分頁查詢用戶列表
- 2.2、根據(jù)ID更新用戶狀態(tài)
1、業(yè)務介紹
用戶管理共包含兩個接口
- 根據(jù)條件分頁查詢用戶列表
- 根據(jù)ID更新用戶狀態(tài)
2、接口實現(xiàn)
2.1、根據(jù)條件分頁查詢用戶列表
查看接口
請求信息:
- 請求方法: GET
- 請求路徑:
/admin/user/page
- 請求內容類型:
application/x-www-form-urlencoded
請求參數(shù):
參數(shù)名稱 | 參數(shù)位置 | 是否必須 | 數(shù)據(jù)類型 | 參數(shù)說明 |
---|---|---|---|---|
current | query | true | integer | 當前頁號 |
size | query | true | integer | 每頁顯示條數(shù) |
phone | query | false | string | 用戶手機號 |
status | query | false | string | 用戶審核狀態(tài) |
響應狀態(tài)碼:
狀態(tài)碼 | 說明 |
---|---|
200 | OK |
響應參數(shù):
- 響應體: ResultPageUserInfo
- 響應參數(shù)說明:
實體名稱 | 參數(shù)名稱 | 參數(shù)說明 | 數(shù)據(jù)類型 |
---|---|---|---|
code | code | 響應碼 | integer |
message | message | 響應消息 | string |
data | data | 數(shù)據(jù) | IPageUserInfo |
size | size | 每頁顯示條數(shù) | integer |
current | current | 當前頁號 | integer |
total | total | 總記錄數(shù) | integer |
pages | pages | 總頁數(shù) | integer |
records | records | 用戶信息數(shù)組 | array |
代碼開發(fā)
查看請求的數(shù)據(jù)結構
current
和size
為分頁相關參數(shù),分別表示當前所處頁面和每個頁面的記錄數(shù)
UserInfoQueryVo
為用戶的查詢條件,詳細結構如下:
@Schema(description = "用戶信息查詢實體")
@Data
public class UserInfoQueryVo {@Schema(description = "用戶手機號碼")private String phone;@Schema(description = "用戶賬號狀態(tài)")private BaseStatus status;
}
編寫Controller層邏輯
在UserInfoController
中增加如下內容
@Operation(summary = "分頁查詢用戶信息")
@GetMapping("page")
public Result<IPage<UserInfo>> pageUserInfo(@RequestParam long current, @RequestParam long size, UserInfoQueryVo queryVo) {IPage<UserInfo> page = new Page<>(current, size);LambdaQueryWrapper<UserInfo> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.like(queryVo.getPhone() != null, UserInfo::getPhone, queryVo.getPhone());queryWrapper.eq(queryVo.getStatus() != null, UserInfo::getStatus, queryVo.getStatus());IPage<UserInfo> list = service.page(page, queryWrapper);return Result.ok(list);
}
解釋:
-
LambdaUpdateWrapper: 用于構建更新條件的包裝器。
-
eq: 添加一個等值條件,表示更新操作只會影響滿足該條件的記錄。
-
set: 設置要更新的字段及其新值。
-
userInfoService.update: 調用服務層的方法執(zhí)行更新操作。
-
Result.ok(): 返回一個表示成功的結果對象。
知識點:
password
字段屬于敏感信息,因此在查詢時應過濾掉,可在UserInfo
實體的password
字段的@TableField
注解中增加一個參數(shù)select=false
來實現(xiàn)。
@Schema(description = "密碼")
@TableField(value = "password",select = false)
private String password;
2.2、根據(jù)ID更新用戶狀態(tài)
查看接口
請求信息:
- 請求方法: POST
- 請求路徑:
/admin/user/updateStatusById
- 請求內容類型:
application/x-www-form-urlencoded
請求參數(shù):
參數(shù)名稱 | 參數(shù)位置 | 是否必須 | 數(shù)據(jù)類型 | 參數(shù)說明 |
---|---|---|---|---|
id | query | true | integer(int64) | 用戶ID |
status | query | true | string | 用戶狀態(tài) |
響應狀態(tài)碼:
狀態(tài)碼 | 說明 |
---|---|
200 | OK |
響應參數(shù):
- 響應體: Result
- 響應參數(shù)說明:
參數(shù)名稱 | 參數(shù)說明 | 數(shù)據(jù)類型 |
---|---|---|
code | 響應碼 | integer(int32) |
message | 響應消息 | string |
data | 數(shù)據(jù) | object |
響應示例:
{"code": 0,"message": "","data": {}
}
代碼開發(fā)
在UserInfoController
中增加如下內容
@Operation(summary = "根據(jù)用戶id更新賬號狀態(tài)")
@PostMapping("updateStatusById")
public Result updateStatusById(@RequestParam Long id, @RequestParam BaseStatus status) {LambdaUpdateWrapper<UserInfo> updateWrapper = new LambdaUpdateWrapper<>();updateWrapper.eq(UserInfo::getId,id);updateWrapper.set(UserInfo::getStatus,status);userInfoService.update(updateWrapper);return Result.ok();
}
解釋
- LambdaUpdateWrapper: 用于構建更新條件的包裝器。
- eq: 添加一個等值條件,表示更新操作只會影響滿足該條件的記錄。
- set: 設置要更新的字段及其新值。
- userInfoService.update: 調用服務層的方法執(zhí)行更新操作。
- Result.ok(): 返回一個表示成功的結果對象。