| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- import { get, post } from '@/core/http/http-client'
- const ROUTE_LIST = '/wanlshop/user/blockedList'
- const ROUTE_TOGGLE = '/wanlshop/user/blockedUser'
- const ROUTE_IS_BLOCKED = '/wanlshop/user/isblocked'
- function parseIsBlocked(payload) {
- if (!payload || typeof payload !== 'object') return false
- if (payload.is_blocked !== undefined) return Number(payload.is_blocked) === 1
- if (payload.data && payload.data.is_blocked !== undefined) {
- return Number(payload.data.is_blocked) === 1
- }
- return false
- }
- function normalizeBlockedList(payload) {
- if (Array.isArray(payload)) return payload
- if (!payload || typeof payload !== 'object') return []
- if (Array.isArray(payload.data)) return payload.data
- if (Array.isArray(payload.list)) return payload.list
- return []
- }
- export function blockedUserAvatar(item) {
- return (
- (item && item.blocked_user && item.blocked_user.avatar) ||
- (item && item.user && item.user.avatar) ||
- ''
- )
- }
- export function blockedUserId(item) {
- const id =
- (item && item.blocked_id) ||
- (item && item.blocked_user && item.blocked_user.id) ||
- (item && item.user && item.user.id)
- if (id == null || id === '') return ''
- return id
- }
- export function blockedUserNickname(item, fallback = '') {
- return (
- (item && item.blocked_user && item.blocked_user.nickname) ||
- (item && item.user && item.user.nickname) ||
- fallback
- )
- }
- export async function fetchBlockedList() {
- const { data, raw } = await get(ROUTE_LIST)
- if (Array.isArray(data)) return data
- const payload = data != null ? data : raw?.data
- if (Array.isArray(payload)) return payload
- if (payload && Array.isArray(payload.list)) return payload.list
- return normalizeBlockedList(payload)
- }
- /**
- * 查询当前登录用户是否已拉黑目标用户。
- * @param {string|number} userNo 目标 user_no
- * @param {string|number} blockedUserId 目标用户数据库 id
- */
- export async function fetchIsBlocked(userNo, blockedUserId) {
- if (!userNo || blockedUserId == null || blockedUserId === '') return false
- const { data, raw } = await post(ROUTE_IS_BLOCKED, {
- user_no: userNo,
- blocked_id: blockedUserId
- })
- const payload = data != null ? data : raw?.data
- return parseIsBlocked(payload)
- }
- /** @param {string|number} blockedId @param {0|1} handType 0 取消拉黑 1 拉黑 */
- export async function toggleBlockedUser(blockedId, handType) {
- const { data, msg } = await post(ROUTE_TOGGLE, {
- blocked_id: blockedId,
- hand_type: handType
- })
- return { data, msg }
- }
- /** @param {string|number} blockedId */
- export async function blockUser(blockedId) {
- return toggleBlockedUser(blockedId, 1)
- }
- /** @param {string|number} blockedId */
- export async function unblockUser(blockedId) {
- return toggleBlockedUser(blockedId, 0)
- }
|