setvacation
This commit is contained in:
parent
4d48f8fce3
commit
68cc3c14e6
|
|
@ -11,3 +11,4 @@ go.sum
|
|||
pkg
|
||||
test.go
|
||||
.claude
|
||||
opencode.json
|
||||
|
|
@ -86,6 +86,21 @@ type ApproveDetailRsp struct {
|
|||
Info *ApproveDetail `json:"info"`
|
||||
}
|
||||
|
||||
type VacationQuota struct {
|
||||
Id uint32 `json:"id"`
|
||||
AssignDuration uint32 `json:"assignduration"`
|
||||
UsedDuration uint32 `json:"usedduration"`
|
||||
LeftDuration uint32 `json:"leftduration"`
|
||||
VacationName string `json:"vacationname"`
|
||||
RealAssignDuration uint32 `json:"real_assignduration"`
|
||||
}
|
||||
|
||||
type VacationQuotaRsp struct {
|
||||
Errcode int `json:"errcode"`
|
||||
Errmsg string `json:"errmsg"`
|
||||
Lists []*VacationQuota `json:"lists"`
|
||||
}
|
||||
|
||||
type AppApprove struct {
|
||||
App
|
||||
}
|
||||
|
|
@ -165,6 +180,46 @@ func NewAppApprove(cfg *AppConfig) *AppApprove {
|
|||
}
|
||||
}
|
||||
|
||||
func (q *AppApprove) GetVacationQuota(userid string) ([]*VacationQuota, error) {
|
||||
reqUrl := fmt.Sprintf("https://qyapi.weixin.qq.com/cgi-bin/oa/vacation/getuservacationquota?access_token=%s", q.GetToken())
|
||||
reqParam := map[string]interface{}{
|
||||
"userid": userid,
|
||||
}
|
||||
rspBody, err := util.HttpPostJson(reqUrl, nil, []byte(goutil.EncodeJSON(reqParam)))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if _, err := q.GetResult(rspBody); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var rsp VacationQuotaRsp
|
||||
if err := json.Unmarshal(rspBody, &rsp); err != nil {
|
||||
log.Errorf("get body[%s] json error :%s", string(rspBody), err.Error())
|
||||
return nil, err
|
||||
}
|
||||
return rsp.Lists, nil
|
||||
}
|
||||
|
||||
func (q *AppApprove) SetVacationQuota(userid string, vacationId, leftDuration, timeAttr uint32, remarks string) error {
|
||||
reqUrl := fmt.Sprintf("https://qyapi.weixin.qq.com/cgi-bin/oa/vacation/setoneuserquota?access_token=%s", q.GetToken())
|
||||
reqParam := map[string]interface{}{
|
||||
"userid": userid,
|
||||
"vacation_id": vacationId,
|
||||
"leftduration": leftDuration,
|
||||
"time_attr": timeAttr,
|
||||
}
|
||||
if remarks != "" {
|
||||
reqParam["remarks"] = remarks
|
||||
}
|
||||
rspBody, err := util.HttpPostJson(reqUrl, nil, []byte(goutil.EncodeJSON(reqParam)))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = q.GetResult(rspBody)
|
||||
return err
|
||||
}
|
||||
|
||||
func (q *AppApprove) GetDetail(spNo string) (*ApproveDetail, error) {
|
||||
reqUrl := fmt.Sprintf("https://qyapi.weixin.qq.com/cgi-bin/oa/getapprovaldetail?access_token=%s", q.GetToken())
|
||||
reqParam := fmt.Sprintf(`{"sp_no":"%s"}`, spNo)
|
||||
|
|
|
|||
Loading…
Reference in New Issue