user.api 14.5 KB
syntax = "v1"

info(
    title: "天联鹰蜓"
    desc: "天联鹰蜓"
    author: "email"
    email: "email"
    version: "v1"
)

// 小程序接口
@server(
    prefix: v1
    group: user
)
service Core {
    @doc "用户申请加入公司"
    @handler miniUserApplyJoinCompany
    post /mini/user/apply-join-company(MiniUserApplyJoinCompanyRequest) returns (MiniUserApplyJoinCompanyResponse)
    @doc "用户登录"
    @handler miniUserLogin
    post /mini/user/login (MiniUserLoginRequest) returns (MiniUserLoginResponse)
}
@server(
    prefix: v1
    group: user
    jwt: MiniAuth
)
service Core {
    @doc "切换账号"
    @handler miniUserSwitchAccount
    post /mini/user/switch-account (MiniUserSwitchAccountRequest) returns (MiniUserLoginResponse)
    @doc "用户信息"
    @handler miniUserInfo
    post /mini/user/info (MiniUserInfoRequest) returns (MiniUserInfoResponse)
    @doc "用户审核列表"
    @handler miniUserAuditList
    post /mini/user/audit-list (UserSearchRequest)returns(UserSearchResponse)
    @doc "用户审核"
    @handler miniUserAudit
    post /mini/user/audit (MiniUserAuditRequest)
    @doc "部门用户列表"
    @handler miniUserDepartmentUsers
    post /mini/user/department-users (MiniUserDepartmentUsersRequest)returns (MiniUserInfoResponse)
    @doc "关注我的人"
    @handler miniUserFollower
    post /mini/user/follower (MiniUserFollowedSearchRequest)returns(MiniUserFollowedSearchResponse)
    @doc "我关注的人"
    @handler miniUserFollowing
    post /mini/user/following (MiniUserFollowedSearchRequest)returns(MiniUserFollowedSearchResponse)
    @doc "关注"
    @handler miniUserFollow
    post /mini/user/follow (FollowRequest)
    @doc "取消关注"
    @handler miniUserUnFollow
    post /mini/user/unfollow (FollowRequest)
    @doc "我点赞的文章或评论"
    @handler miniMyLike
    post /user/mylike (MiniMyLikeRequest)returns (MiniMyLikeResponse)
}

type(
    MiniUserLoginRequest {
        LoginType           string `json:"loginType"`                    // 登录类型 wechat-login whchat-phone-login  phone-password-login phone-smscode-login
        WechatAuthCode      string `json:"wechatAuthcode,optional"`      // 微信登录 授权码
        WechatEncryptedData string `json:"wechatEncryptedData,optional"` // 微信登录 加密数据
        WechatIV            string `json:"wechatIV,optional"`            // 微信登录 加密算法初始向量
        Phone               string `json:"phone,optional"`               // 手机号
        Password            string `json:"password,optional"`            // 密码
        SmsCode             string `json:"smsCode,optional"`             // 短信验证码
    }
    MiniUserLoginResponse {
        Token string `json:"token"` // x-token
        Phone string `json:"phone"` // 手机号
        Message string `json:"message"` // 失败消息(审核中,注册成功等待审核)
        Success bool `json:"success"`  //  成功标识
    }
    MiniUserSwitchAccountRequest{
        CompanyId int64 `json:"companyId"`
    }

    MiniUserInfoRequest {
        //MyStatisticsFlag bool `json:"myStatisticsFlag"` // true:返回统计信息 false;统计信息不返回
    }
    MiniUserInfoResponse {
        User         *UserItem  `json:"user,omitempty"` // 用户信息
        TotalArticle int64  `json:"totalArticle"`   // 累计信息发布
        TotalLoved   int64  `json:"totalLoved"`     // 累计收到的赞
        TotalAccepted int64 `json:"totalAccepted"`  // 累计被采纳
        Accounts  []Account `json:"accounts"`       // 公司账号
        Auths     []Auth `json:"auths"` // 权限列表
    }
    MiniUserApplyJoinCompanyRequest{
        Phone string `json:"phone"` 
        Code  string `json:"code"`
    }
    MiniUserApplyJoinCompanyResponse{

    }
    MiniUserAuditRequest{
        UserId int64 `json:"userId"` // 用户ID
        Status int `json:"status"`   // 审核状态 1:审核通过 2:拒绝
    }
    MiniUserDepartmentUsersRequest{

    }
    MiniUserDepartmentUsersResponse{
        Departments []*Department `json:"departments"`
        Users       []*UserItem       `json:"users"`
    }
    MiniUserFollowedSearchRequest{
        Page int  `json:"page,optional"`
        Size int  `json:"size,optional"`
    }
    MiniUserFollowedSearchResponse{
        List   []*UserFollowItem    `json:"users"`
        Total  int64          `json:"total"`
    }
    UserItem {
        Id           int64   `json:"id,omitempty"`           // 用户ID
        CompanyId    int64   `json:"companyId,omitempty"`    // 公司ID
        CompanyName  string `json:"companyName,omitempty"`   // 公司名称
        //DepartmentId int64   `json:"departmentId,omitempty"` // 部门ID
        //Roles        []int64 `json:"roleId,omitempty"`       // 角色
        Flag         int     `json:"flag,omitempty"`         // 标识 1:管理员 2:普通用户 (有绑定角色是管理员)
        Name         string  `json:"name,omitempty"`         // 名称
        Avatar       string  `json:"avatar,omitempty"`       // 头像
        Phone        string  `json:"phone,omitempty"`        // 手机号 唯一
        Position     string  `json:"position,omitempty"`     // 职位
        Enable       int     `json:"enable,omitempty"`       // 启用状态 1:启用 2:禁用
        AuditStatus  *int     `json:"auditStatus,omitempty"`  // 审核状态 0:待审核 1:审核通过 2:拒绝
        Follower     []int64 `json:"followers,omitempty"`    // 关注我的人 (冗余)
        Following    []int64 `json:"following,omitempty"`    // 我关注的人 (冗余)
        Departments  []int64 `json:"departments,omitempty"`  // 所属部门
        AccountFrom  string  `json:"accountFrom,omitempty"`  // 账号来源 后台新增、扫码注册
    }
    Account {
        CompanyId    int64   `json:"companyId"`    // 公司ID
        CompanyName  string  `json:"companyName"`   // 公司名称
        Logo         string  `json:"logo"`    // 公司图标
        UserId       int64   `json:"userId"`  // 用户ID
        Name         string  `json:"name"`    // 名称
        Position     string  `json:"position"`// 职位
    }
    Department struct {
        Id int64 `json:"id,omitempty"`               // 部门ID
        CompanyId int64 `json:"companyId,omitempty"` // 公司ID
        ParentId int64 `json:"parentId,omitempty"`   // 父级ID
        Name string `json:"name,omitempty"`          // 部门名称
    }
    UserSearchRequest{
        Page int  `json:"page,optional"`
        Size int  `json:"size,optional"`
        AuditFlag *int `json:"auditFlag,optional"` // 按审核状态 0:待审核 1:审核通过 2:拒绝
    }
    UserSearchResponse{
        List []*UserItem `json:"list"`
        Total int64 `json:"total"`
    }
    FollowRequest{
        UserId int64 `json:"userId"`
    }
    UserFollowItem struct {
        Id             int64  `json:"id"`             // 用户ID
        Name           string `json:"name"`           // 名称
        CompanyName    string `json:"companyName"`    // 公司名称
        Avatar         string `json:"avatar"`         // 头像
        Position       string `json:"position"`       // 职位
        Followed       bool   `json:"followed"`       // 关注
        MutualFollowed bool   `json:"mutualFollowed"` // 互相关注标识
    }
)



// 我点赞的文章或评论
type (
    MiniMyLikeRequest{
        Page int  `json:"page"`
        Size int  `json:"size"`
    }

    MiniMyLikeResponse {
        List  []MyLikeItem     `json:"list"`
        Total int64            `json:"total"`
    }

    MyLikeItem {
        UserId              int64                 `json:"userId"`       // 发布人id
        ArticleId           int64                 `json:"articleId"`    // 文章id
        CommentId           int64                 `json:"commentId"`    // 评论id
        CreatedAt           int64                 `json:"createdAt"`    // 创建时间
        User                *SimpleUser           `json:"user"`         // 发布人
        Article             *SimpleArticle        `json:"article"`      // 文章
        Comment             *SimpleComment        `json:"comment"`      // 评论
    }

    SimpleComment {
        Id           int64  `json:"id"`
        Content      string `json:"content"`      // 评论内容
        CountLove    int    `json:"countLove"`    // 点赞数量
        CountComment int    `json:"countComment"` // 评论数量
        Show         int    `json:"show"`         // 评论的展示状态(0显示、1不显示)
    }
)


// 后台接口
@server(
    prefix: v1
    group: user
    middleware: LoginStatusCheck
    jwt: SystemAuth
)
service Core {
    @doc "系统用户信息"
    @handler systemUserInfo
    post /system/user/info(SystemUserInfoRequest) returns (SystemUserInfoResponse)
    @doc "用户统计"
    @handler systemUserStatistics
    post /system/user/statistics (UserStatisticsRequest) returns (UserStatisticsResponse)

    @doc "用户详情"
    @handler systemUserGet
    get /system/user/:id (SystemUserGetRequest) returns (SystemUserGetResponse)
    @doc "更新用户"
    @handler systemUserUpdate
    put /system/user/:id (SystemUserUpdateRequest) returns (SystemUserUpdateResponse)
    @doc "搜索用户"
    @handler systemUserSearch
    post /system/user/search (SystemUserSearchRequest) returns (SystemUserSearchResponse)


    @doc "系统账号详情"
    @handler systemUserAccountGet
    get /system/account/:id (SystemUserAccountGetRequest) returns (SystemUserAccountGetResponse)
    @doc "系统新增账号"
    @handler systemUserAccountSave
    post /system/account (SystemUserAccountSaveRequest) returns (SystemUserAccountSaveResponse)
    @doc "系统启用/禁用账号"
    @handler systemUserAccountEnable
    post /system/account/enable (SystemUserAccountEnableRequest) returns (SystemUserAccountEnableResponse)
    @doc "系统更新账号"
    @handler systemUserAccountUpdate
    put /system/account/:id (SystemUserAccountUpdateRequest) returns (SystemUserAccountUpdateResponse)
    @doc "系统搜索账号"
    @handler systemUserAccountSearch
    post /system/account/search (SystemUserAccountSearchRequest) returns (SystemUserAccountSearchResponse)
}

type(
    SystemUserInfoRequest{
        Token string `header:"x-mmm-accesstoken"`
    }
    SystemUserInfoResponse{
        UserId   int64  `json:"userId"`
        UserName string `json:"userName"`
        Avatar   string `json:"avatar"`
        CompanyId   int64  `json:"companyId"`
        CompanyName string `json:"companyName"`
        Code  string `json:"code"`
    }
    UserStatisticsRequest{
        UserId int64 `json:"userId,optional"`
        ItemFlag int `json:"itemFlag"` //0:默认查询所有 1:他的帖子  2:他的评论/回复 4:他收到的赞 8:TA的圆桌讨论 16:被采纳
    }
    UserStatisticsResponse{
        TotalArticle int `json:"totalArticle"`
        TotalComment int `json:"totalComment"`
        TotalLoved   int `json:"totalLoved"`
    }
    StatisticsItem{
        ItemFlag int `json:"itemFlag"`     // 1:他的帖子  2:他的评论/回复 4:他收到的赞 8:TA的圆桌讨论 16:被采纳
        Value    float64    `json:"value"` // 统计值
    }

    SystemUserGetRequest {
        Id int64 `path:"id"`
    }
    SystemUserGetResponse struct{
        User SystemUser `json:"user"`
    }
    SystemUser struct{
        Id           int64   `json:"id"`           // 用户ID
        Name         string  `json:"name"`         // 名称
        Avatar       string  `json:"avatar"`       // 头像
        Phone        string  `json:"phone"`        // 手机号 唯一
        Position     string  `json:"position"`     // 职位
        Enable       int     `json:"enable"`       // 启用状态 1:启用 2:禁用
        Departments  []int64 `json:"departments"`  // 所属部门
        AccountFrom  string  `json:"accountFrom"`  // 账号来源 后台新增、扫码注册
        CreatedAt    int64   `json:"createdAt"`    // 注册时间
        Roles        []int64 `json:"roles"`        // 角色
        RolesDesc    string  `json:"rolesDesc"`    // 角色描述
        DepartmentsDesc string `json:"departmentsDesc"` // 部门描述
    }

    SystemUserUpdateRequest struct{
        Id int64 `path:"id"`
        Avatar       string  `json:"avatar,optional"`       // 头像
        Position     string  `json:"position"`     // 职位
        Departments  []int64 `json:"departments"`  // 所属部门
    }
    SystemUserUpdateResponse struct{}

    SystemUserSearchRequest struct{
        Page int  `json:"page"`
        Size int  `json:"size"`
        Name         string  `json:"name,optional"`         // 名称
        Phone        string  `json:"phone,optional"`        // 手机号 唯一
        Position     string  `json:"position,optional"`     // 职位
        Enable       int     `json:"enable,optional"`       // 启用状态 1:启用 2:禁用
        DepartmentId int64   `json:"departmentId,optional"`  // 所属部门
    }
    SystemUserSearchResponse{
        List []SystemUser  `json:"list"`
        Total int64 `json:"total"`
    }

    SystemUserAccountGetRequest {
        Id int64 `path:"id"`
    }
    SystemUserAccountGetResponse struct{
        User SystemUser `json:"user"`
    }

    SystemUserAccountSaveRequest struct{
        Name         string  `json:"name"`         // 名称
        Phone        string  `json:"phone"`        // 手机号 唯一
        Enable       int     `json:"enable"`       // 启用状态 1:启用 2:禁用
        Roles        []int64 `json:"roles"`        // 角色
    }
    SystemUserAccountSaveResponse struct{

    }
    SystemUserAccountEnableRequest struct{
        UserIds []int64 `json:"userIds"` // 用户ID列表
        Status  int `json:"status"`      // 状态 1:启用 2:禁用
    }
    SystemUserAccountEnableResponse struct{

    }
    SystemUserAccountUpdateRequest struct{
        Id int64 `path:"id"`
    }
    SystemUserAccountUpdateResponse struct{}

    SystemUserAccountSearchRequest struct{
        Page int  `json:"page"`
        Size int  `json:"size"`
        Name         string  `json:"name,optional"`         // 名称
        Phone        string  `json:"phone,optional"`        // 手机号 唯一
        RoleId       int64   `json:"roleId,optional"`       // 角色权限
        Enable       int     `json:"enable,optional"` // 启用状态 1:启用 2:禁用
        BeginTime    int64    `json:"beginTime,optional"`   // 注册日期-开始
        EndTime      int64    `json:"endTime,optional"`     // 注册日期-结束
    }
    SystemUserAccountSearchResponse{
        List []SystemUser  `json:"list"`
        Total int64 `json:"total"`
    }
)