Skip to content

Update Member Group

Description

修改會員群組。

Resource

PATCH /v1/user/group

Authorization

採用 OAuth 2.0 Bearer Token,詳細使用流程請參考 Auth Login。

Request Body Parameters

Name Type Description
members Member 會員列表

Request Body Parameters - Member

Name Type Description
vip_id string 會員編號
(會員編號與外部會員編號需擇一)
(optional)
external_vip_id string 外部會員編號
(會員編號與外部會員編號需擇一)
(optional)
group_id string 會員群組編號

Request Body Example

{
  "members": [
    {
      "vip_id": "VIP00001",
      "group_id": "VIP"
    },
    {
      "vip_id": "VIP00002",
      "group_id": "VVIP"
    }
  ]
}
{
  "members": [
    {
      "external_vip_id": "VIP00001",
      "group_id": "VIP"
    },
    {
      "external_vip_id": "VIP00002",
      "group_id": "VVIP"
    }
  ]
}

Response Body Parameters

Name Type Description
message string 錯誤訊息
vip_id_list list 修改群組失敗的會員清單

Response

Status-Code: 204 No Content

Status-Code: 400

{
  "message": "修改會員群組失敗",
  "vip_id_list": [
    "VIP00001"
  ]
}

Update Member Group API Workflow

sequenceDiagram
%%{init: {'securityLevel': 'loose', 'theme': 'base'}}%%
    autonumber
    participant C as Client
    participant OP as OmniPlatform
    participant R as Repository

    C ->> OP: Request [PATCH] /v1/user/group

    OP ->> OP: Call check_params_process(params)
    alt 請求參數缺少必填欄位
        OP -->> C: Return Response(400, f'{column} 不可為空')
    end

    OP ->> OP: update_df = handle_update_data(company_id, params['members'])

    Note over OP: 透過 VipAppService 更新 POS 會員資料
    OP ->> OP: PosMember().batch_update_pos_member_data(update_df)

    Note over OP: 更新 全通路 會員資料
    OP ->> R: Call get_company_member_group(company_id)
    R -->> OP: all_member_group
    loop data in update_data
        Note over OP: 該公司有此 group_id 則更新
        alt group_id not in all_member_group
        OP ->> OP: fail_update_vips.append(vip_id)
        end

        Note over OP: 更新 [member].[vip_Level]、[member].[vip_Level_name]
        OP ->> R: Call update_member_group(vip_id, group_id)
        alt update_failed
        OP ->> OP: fail_update_vips.append(vip_id)
        end
    end

    alt fail_update_vips
        OP -->> C: Return(400, {'message': '修改會員群組失敗', 'vip_id_list': '...'})
    end

    OP -->> C: Return Response(204)