HC小区接口文档

API接口文档:员工登录接口


1. 接口名称

员工登录

2. 接口描述

该接口用于 员工或管理员 登录系统,成功登录后返回 token,后续请求需在请求头 Authorization 中携带该 token 进行身份验证。

  • 会话有效期:2小时,建议在接近过期时重新登录以维持会话。
  • 安全机制:登录失败次数过多会触发账户锁定保护。

3. 接口路径

POST http://{ip}:{port}/app/login.pcUserLogin

4. 请求方法

POST

5. 请求头(Headers)

参数名称 必填 类型 描述 默认值
APP-ID String 应用ID,由系统分配
TRANSACTION-ID String 请求流水号(建议使用UUID)
REQ-TIME String 请求时间(格式:YYYYMMDDhhmmss
JAVA110-LANG String 语言(如 zh-cn zh-cn
USER-ID String 调用用户ID(未登录时传 -1 -1

6. 请求参数(Body)

6.1 JSON 格式参数

{
  "username": "wuxw",
  "passwd": "xxxx"
}

6.2 参数说明

参数名称 必填 类型 描述 示例值
username String 用户名(物业系统分配) wuxw
passwd String 密码(物业系统分配,部分场景会MD5加密) xxxx

密码加密逻辑

AuthenticationFactory.passwdMd5(loginInfo.getString("passwd"))
    /**
     * 用户密码 md5签名
     *
     * @param inStr
     * @return
     */
    public static String passwdMd5(String inStr) throws NoAuthorityException {
        return md5(md5(inStr + "hc@java110"));
    }

7. 返回值

7.1 成功响应(HTTP 200)

{
  "code": 0,
  "msg": "成功",
  "data": {
    "userId": "123123",
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "userName": "wuxw"
  }
}

7.2 失败响应(HTTP 401)

{
  "code": 401,
  "msg": "用户或密码错误"
}

7.3 响应字段说明

参数名称 类型 描述
code int 返回码(0 成功,非 0 失败)
msg String 返回信息
data Object 返回数据(登录成功时包含用户信息)
data.userId String 用户ID
data.token String 身份认证令牌(需在后续请求头中携带)
data.userName String 用户名

8. 错误码

错误码 描述 解决方案
0 成功 -
401 用户名或密码错误 检查输入或联系管理员
48002 商户限制登录 联系管理员解除限制
500 系统内部错误 检查日志或联系技术支持

9. 示例请求(CURL)

curl -X POST \
  http://localhost:8080/app/login.pcUserLogin \
  -H 'APP-ID: your_app_id' \
  -H 'TRANSACTION-ID: 123e4567-e89b-12d3-a456-426614174000' \
  -H 'REQ-TIME: 20231010120000' \
  -H 'Content-Type: application/json' \
  -d '{"username":"wuxw","passwd":"admin"}'

10. 业务逻辑说明

  1. 参数校验:检查 usernamepasswd 是否为空。
  2. 密码加密:部分场景(如物业APP)会对密码进行MD5加密。
  3. 用户验证
    • 先按 username 查询用户,若不存在则尝试按手机号(tel)查询。
    • 校验密码和用户角色(仅允许 ADMINSTAFF 登录)。
  4. 商户状态检查:若用户关联商户被禁用(state=48002),则拒绝登录。
  5. 生成Token:登录成功后生成JWT Token并记录登录日志。

11. 数据库操作

  • 查询表:user(用户信息)、store_user(商户用户关联)
  • 写入表:user_login(登录日志)

备注

  • 请求头中的 APP-ID 需提前在系统后台申请。
  • token 需在后续请求头中以 Authorization: Bearer {token} 形式传递。