# 打卡管理

## &#x20;打卡

<mark style="color:green;">`POST`</mark> `/circle/punch/do`

&#x20;需要登录！

#### Request Body

| Name     | Type    | Description       |
| -------- | ------- | ----------------- |
| goal\_id | integer | 目标ID              |
| percent  | integer | 完成度，百分比           |
| pdesc    | string  | 目标描述（1\~255个字）    |
| imgs     | string  | 图片多个用半角逗号隔开（todo） |
| audio    | string  | 音频多个用半角逗号隔开（todo） |

{% tabs %}
{% tab title="200 " %}

```javascript
{
    "code": 0,
    "msg": "ok"
}
```

{% endtab %}
{% endtabs %}

## &#x20;打卡列表

<mark style="color:green;">`POST`</mark> `/circle/punch/Getlist`

&#x20;(两种分页参数二选一)

#### Request Body

| Name       | Type    | Description |
| ---------- | ------- | ----------- |
| index      | integer | 索引偏移量（>=0）  |
| page       | integer | 页码（>=1）     |
| user\_id   | string  | 用户ID        |
| goal\_id   | integer | 目标ID        |
| circle\_id | integer | 圈子ID        |

{% tabs %}
{% tab title="200 " %}

```
{
    "code": 0,
    "msg": "ok",
    "data": {
        "list": [
            {
                "id": "8",
                "circle_name": "圈子名字",
                "goal_name": "目标名",
                "user_name": "yongHuMing",
                "pdesc": "打卡描述",
                "percent": "1",//完成度（1<=percent<=100）
                "imgs": "",//todo
                "audio": "",//todo
                "pdate": "20181122",//打卡标识
                "utime": "2018-11-22 20:56:06" //最后跟新时间
            }
        ],
        "count": "3"
    }
}
```

{% endtab %}
{% endtabs %}
