认证/登录 auth

模块 auth:共 11 个接口 —— 7 个被前端调用(在用),4 个未被调用(含 0 个开放/回调/内部)。用下方筛选可只看“在用/未使用”,或在右栏目录按名称过滤。

AuthController 7/11 在用

POST /auth/checkerLogin 在用App #
权限-核销员登录 · AuthController
基本信息
控制器com.jxxx.dscp.api.controller.auth.AuthController#checkerLogin
所属模块认证/登录 auth
暴露渠道App (@Route 注解;决定 URL 前缀与可访问端)
请求方法POST
调用链路 & 涉及数据表
涉及数据表checker_relationcheckersystem_oauth2_access_tokenskusku_entrancechecker_cqy_relationchecker_tickets_relationtickets_skuchecker_configsystem_operate_log
ControllerAuthController#checkerLogin
转换BeanUtils.map → CheckerLoginResponse
MapperCheckerRelationService.getMapper#selectOne ⇒ 表 checker_relation
ServiceCheckerService#get (CheckerServiceImpl)
MapperCheckerMapper#selectById ⇒ 表 checker
ServiceOauth2AccessTokenService#queryList (Oauth2AccessTokenServiceImpl)
MapperOauth2AccessTokenMapper#selectList ⇒ 表 system_oauth2_access_token
ServiceCheckerRelationService#queryList (CheckerRelationServiceImpl)
MapperCheckerRelationMapper#selectList ⇒ 表 checker_relation
ServiceSkuService#queryList (SkuServiceImpl)
MapperSkuMapper#selectList ⇒ 表 sku
ServiceSkuEntranceService#queryList (SkuEntranceServiceImpl)
MapperSkuEntranceMapper#selectList ⇒ 表 sku_entrance
ServiceCheckerCqyRelationService#queryList (CheckerCqyRelationServiceImpl)
MapperCheckerCqyRelationMapper#selectList ⇒ 表 checker_cqy_relation
ServiceCheckerTicketsRelationService#queryList (CheckerTicketsRelationServiceImpl)
MapperCheckerTicketsRelationMapper#selectList ⇒ 表 checker_tickets_relation
ServiceTicketsSkuService#get (TicketsSkuServiceImpl)
MapperTicketsSkuMapper#selectById ⇒ 表 tickets_sku
ServiceCheckerConfigService#queryList (CheckerConfigServiceImpl)
MapperCheckerConfigMapper#selectList ⇒ 表 checker_config
ServiceCheckerRelationService#get (CheckerRelationServiceImpl)
MapperCheckerRelationMapper#selectById ⇒ 表 checker_relation
ServiceCheckerRelationService#update (CheckerRelationServiceImpl)
MapperCheckerRelationMapper#updateById ⇒ 表 checker_relation
ServiceCheckerRelationService#add (CheckerRelationServiceImpl)
MapperCheckerRelationMapper#insert ⇒ 表 checker_relation
ServiceCheckerService#update (CheckerServiceImpl)
MapperCheckerMapper#updateById ⇒ 表 checker
ServiceSystemOperateLogService#add (SystemOperateLogServiceImpl)
MapperSystemOperateLogMapper#insert ⇒ 表 system_operate_log
其它依赖(权限 / 会话 / 缓存 / 校验等,不直接读写业务表)· 6
Oauth2AccessTokenService.createAccessTokenOauth2ClientService.mustGetAuthService.setAuthAccIdMerchantCache.getShopCache.getZhyCardService.verifyLogin

链路按 Controller → Service(Impl) → Mapper → 表 逐层追踪;字段对应的「表.列」见下方请求/响应表新增列,按字段同名映射到涉及的实体表列; 表示该字段为查询条件 / 计算 / 转换 / 包装字段,未直接对应单一列。

环境 URL
环境完整 URL(主机 + 渠道前缀 + 路径)备注
devhttps://dscp-dev.hn12301.net/app-api/auth/checkerLogin
uathttps://dscp-uat.hn12301.net/app-api/auth/checkerLogin
prohttps://dscp-uat.hn12301.net/app-api/auth/checkerLogin (仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
请求参数 · Header / Query / Path

无(该接口无 Query/Path/Header 显式参数;入参见 Body)

请求参数 · Body CheckerLoginRequest
字段类型必填取值/校验表 / 列说明
mobileString必填checker.mobile用户名
passwordString必填checker.password密码
响应参数
外层包装(chaos 框架自动;前端同时兼容 code/msg)
errcodeint业务码,0=成功
errmsgstring提示信息
dataT下方“data 结构”
data 结构 CheckerLoginResponse (object)
字段类型必填取值/校验表 / 列说明
userIdLongsystem_oauth2_access_token.user_id登录用户id
checkerNameString
accessTokenStringsystem_oauth2_access_token.access_token访问令牌
refreshTokenStringsystem_oauth2_access_token.refresh_token刷新令牌
expiresTimeDatesystem_oauth2_access_token.expires_time过期时间
shopNameString
skuInfoList<SkuEntranceDto>
skuInfo[].idLongchecker_relation.id
skuInfo[].skuNameStringsku.sku_namesku名称
skuInfo[].entrenceListList<SkuEntrance>
entrenceList[].idLongchecker_relation.idID,主键
entrenceList[].skuIdLongchecker_relation.sku_id所属关联sku表id
entrenceList[].entranceNameStringsku_entrance.entrance_name景区入口名称
entrenceList[].merchantIdLongchecker_relation.merchant_id所属商户id
entrenceList[].shopIdLongchecker_relation.shop_id所属商铺id
entrenceList[].goodsIdLongchecker_relation.goods_id商品ID,关联商品表id
entrenceList[].createdByStringsku.created_by创建人id
entrenceList[].createdTimeDatesystem_oauth2_access_token.created_time创建时间
cqySkuListList<SkuEntranceDto>
cqySkuList[].idLongchecker_relation.id
cqySkuList[].skuNameStringsku.sku_namesku名称
cqySkuList[].entrenceListList<SkuEntrance>
entrenceList[].idLongchecker_relation.idID,主键
entrenceList[].skuIdLongchecker_relation.sku_id所属关联sku表id
entrenceList[].entranceNameStringsku_entrance.entrance_name景区入口名称
entrenceList[].merchantIdLongchecker_relation.merchant_id所属商户id
entrenceList[].shopIdLongchecker_relation.shop_id所属商铺id
entrenceList[].goodsIdLongchecker_relation.goods_id商品ID,关联商品表id
entrenceList[].createdByStringsku.created_by创建人id
entrenceList[].createdTimeDatesystem_oauth2_access_token.created_time创建时间
ticketsSkuListList<TicketsSku>
ticketsSkuList[].idLongchecker_relation.id商品id,主键
ticketsSkuList[].merchantIdLongchecker_relation.merchant_id所属商户id
ticketsSkuList[].shopIdLongchecker_relation.shop_id所属商铺id
ticketsSkuList[].ticketsIdLongchecker_tickets_relation.tickets_id单票ID,关联单票表id
ticketsSkuList[].skuNameStringsku.sku_namesku名称
ticketsSkuList[].typeIdStringtickets_sku.type_idsku类型
ticketsSkuList[].typeInfoStringtickets_sku.type_info适用人群说明
ticketsSkuList[].stockNumTypeBooleantickets_sku.stock_num_type是否无限库存
ticketsSkuList[].stockDateTypeBooleantickets_sku.stock_date_type库存形式:日历库存、时间段库存
ticketsSkuList[].bookTypeIntegertickets_sku.book_type预定时间:1=可订当天,0=可订明日
ticketsSkuList[].bookTimeLimitLocalTimetickets_sku.book_time_limit预订限制时间:订当天时,表示xx时间之前可订当天;订明日时,表示xx时间之前可订明日
ticketsSkuList[].idLimitFlagBooleantickets_sku.id_limit_flag身份证是否限购
ticketsSkuList[].idLimitDaysIntegertickets_sku.id_limit_days身份证限制天数
ticketsSkuList[].idLimitNumIntegertickets_sku.id_limit_num身份证限制张数
ticketsSkuList[].speedInfoStringtickets_sku.speed_info出票速度
ticketsSkuList[].basePriceIntegertickets_sku.base_price默认价(分)
ticketsSkuList[].contentWithStringtickets_sku.content_with费用包含
ticketsSkuList[].contentWithoutStringtickets_sku.content_without费用不包含
ticketsSkuList[].enterDemandStringtickets_sku.enter_demand入园要求
ticketsSkuList[].enterTypeStringtickets_sku.enter_type入园方式
ticketsSkuList[].enterChangeFlagBooleantickets_sku.enter_change_flag
ticketsSkuList[].changePostionStringtickets_sku.change_postion换票地点
ticketsSkuList[].changeStartLocalTimetickets_sku.change_start换票起始
ticketsSkuList[].changeEndLocalTimetickets_sku.change_end换票截止
ticketsSkuList[].enterPostionStringtickets_sku.enter_postion入园地点
ticketsSkuList[].enterStartLocalTimetickets_sku.enter_start入园起始
ticketsSkuList[].enterEndLocalTimetickets_sku.enter_end入园截止
ticketsSkuList[].refundTypeIntegertickets_sku.refund_type退款规则
ticketsSkuList[].refundDaysIntegertickets_sku.refund_days可退款时间:选择天数和时间,在这之前的可退款。之后的不能退款。0天为使用当天。
ticketsSkuList[].refundTimeLocalTimetickets_sku.refund_time可退款时间
ticketsSkuList[].refundPolicyStringtickets_sku.refund_policy退款政策
ticketsSkuList[].remarkStringtickets_sku.remark补充说明
ticketsSkuList[].receiptPolicyStringtickets_sku.receipt_policy发票说明
ticketsSkuList[].isDeletedBooleansystem_oauth2_access_token.is_deleted是否删除
ticketsSkuList[].statusTicketsStatus1已上架2编辑中3已下架checker.status
ticketsSkuList[].createdByStringsku.created_by创建人
ticketsSkuList[].createdTimeDatesystem_oauth2_access_token.created_time创建时间
ticketsSkuList[].updatedByStringsku.updated_by修改人
ticketsSkuList[].updatedTimeDatechecker.updated_time修改时间
merchantNameString
sskFlagboolean
configListList<CheckerConfig>
configList[].idLongchecker_relation.idid
configList[].checkerIdLongchecker_relation.checker_id核销人员id
configList[].configTypeIntegerchecker_config.config_type类型
configList[].itemStringchecker_config.item配置项
configList[].valueStringchecker_config.value配置值
configList[].remarkStringtickets_sku.remark备注
configList[].isDeletedBooleansystem_oauth2_access_token.is_deleted是否删除
configList[].createdTimeDatesystem_oauth2_access_token.created_time创建时间
示例
请求示例 (自动生成,仅结构参考)
POST /auth/checkerLogin
{
  "body": {
    "mobile": "13800000000",
    "password": ""
  }
}
响应示例
{
  "errcode": 0,
  "errmsg": "",
  "data": {
    "userId": 1,
    "checkerName": "",
    "accessToken": "",
    "refreshToken": "",
    "expiresTime": "2026-01-01 12:00:00",
    "shopName": "",
    "skuInfo": [
      {
        "id": 1,
        "skuName": "",
        "entrenceList": [
          {
            "id": 1,
            "skuId": 1,
            "entranceName": "",
            "merchantId": 1,
            "shopId": 1,
            "goodsId": 1,
            "createdBy": "",
            "createdTime": "2026-01-01 12:00:00"
          }
        ]
      }
    ],
    "cqySkuList": [
      {
        "id": 1,
        "skuName": "",
        "entrenceList": [
          {
            "id": 1,
            "skuId": 1,
            "entranceName": "",
            "merchantId": 1,
            "shopId": 1,
            "goodsId": 1,
            "createdBy": "",
            "createdTime": "2026-01-01 12:00:00"
          }
        ]
      }
    ],
    "ticketsSkuList": [
      {
        "id": 1,
        "merchantId": 1,
        "shopId": 1,
        "ticketsId": 1,
        "skuName": "",
        "typeId": "",
        "typeInfo": "",
        "stockNumType": false,
        "stockDateType": false,
        "bookType": 0,
        "bookTimeLimit": "2026-01-01 12:00:00",
        "idLimitFlag": false,
        "idLimitDays": 1,
        "idLimitNum": 1,
        "speedInfo": "",
        "basePrice": 0,
        "contentWith": "",
        "contentWithout": "",
        "enterDemand": "",
        "enterType": "",
        "enterChangeFlag": false,
        "changePostion": "",
        "changeStart": "",
        "changeEnd": "",
        "enterPostion": "",
        "enterStart": "",
        "enterEnd": "",
        "refundType": 0,
        "refundDays": 0,
        "refundTime": "2026-01-01 12:00:00",
        "refundPolicy": "",
        "remark": "",
        "receiptPolicy": "",
        "isDeleted": false,
        "status": "1",
        "createdBy": "",
        "createdTime": "2026-01-01 12:00:00",
        "updatedBy": "2026-01-01 12:00:00",
        "updatedTime": "2026-01-01 12:00:00"
      }
    ],
    "merchantName": "",
    "sskFlag": false,
    "configList": [
      {
        "id": 1,
        "checkerId": 1,
        "configType": 0,
        "item": "",
        "value": "",
        "remark": "",
        "isDeleted": false,
        "createdTime": "2026-01-01 12:00:00"
      }
    ]
  }
}
处理逻辑
逻辑摘要查询详情(checkerService.get);调用 equals(StringUtils.equals);调用 date(DateUtil.date);入参与返回值经 BeanUtils 做对象/分页映射
内联注释
  • 查询用户信息
  • 增加租户识别,防止查询出两条数据报错
  • 创建token
  • 获取景区信息
  • skuList.addAll(tempSku);
  • Merchant merchant = merchantCache.get(sku.getMerchantId());
  • 设置商品关联
  • 设置票种关联信息
前端调用方
POST /auth/checkerLogout 在用App #
核销员登出 · AuthController
基本信息
控制器com.jxxx.dscp.api.controller.auth.AuthController#checkerLogout
所属模块认证/登录 auth
暴露渠道App (@Route 注解;决定 URL 前缀与可访问端)
请求方法POST
调用链路 & 涉及数据表
涉及数据表(未解析到业务表:可能为纯校验/转发/缓存/外部接口)
ControllerAuthController#checkerLogout
其它依赖(权限 / 会话 / 缓存 / 校验等,不直接读写业务表)· 1
AuthService.deleteAuthAccId

链路按 Controller → Service(Impl) → Mapper → 表 逐层追踪;字段对应的「表.列」见下方请求/响应表新增列,按字段同名映射到涉及的实体表列; 表示该字段为查询条件 / 计算 / 转换 / 包装字段,未直接对应单一列。

环境 URL
环境完整 URL(主机 + 渠道前缀 + 路径)备注
devhttps://dscp-dev.hn12301.net/app-api/auth/checkerLogout
uathttps://dscp-uat.hn12301.net/app-api/auth/checkerLogout
prohttps://dscp-uat.hn12301.net/app-api/auth/checkerLogout (仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
请求参数 · Header / Query / Path

无(该接口无 Query/Path/Header 显式参数;入参见 Body)

请求参数 · Body

请求体类型:(未在仓库索引到该 DTO 源码,无法展开字段;可能位于依赖 jar 或为 Map/基础类型)

响应参数
外层包装(chaos 框架自动;前端同时兼容 code/msg)
errcodeint业务码,0=成功
errmsgstring提示信息
dataT下方“data 结构”
data 结构

void —— 无返回数据

示例
请求示例 (自动生成,仅结构参考)
POST /auth/checkerLogout
响应示例
(void,无响应体)
处理逻辑
操作日志auth / 核销员登出
逻辑摘要删除(authService.deleteAuthAccId)
内联注释
  • 删除授权用户id
GET /auth/getRandomCodeImg 未使用管理后台 #
权限-获取图形验证码 · AuthController
基本信息
控制器com.jxxx.dscp.api.controller.auth.AuthController#getRandomCodeImg
所属模块认证/登录 auth
暴露渠道管理后台 (@Route 注解;决定 URL 前缀与可访问端)
请求方法GET
调用链路 & 涉及数据表
涉及数据表(未解析到业务表:可能为纯校验/转发/缓存/外部接口)
ControllerAuthController#getRandomCodeImg
其它依赖(权限 / 会话 / 缓存 / 校验等,不直接读写业务表)· 1
AuthService.setAuthValue

链路按 Controller → Service(Impl) → Mapper → 表 逐层追踪;字段对应的「表.列」见下方请求/响应表新增列,按字段同名映射到涉及的实体表列; 表示该字段为查询条件 / 计算 / 转换 / 包装字段,未直接对应单一列。

环境 URL
环境完整 URL(主机 + 渠道前缀 + 路径)备注
devhttps://dscp-dev.hn12301.net/manage-api/auth/getRandomCodeImg
uathttps://dscp-uat.hn12301.net/manage-api/auth/getRandomCodeImg
prohttps://dscp-uat.hn12301.net/manage-api/auth/getRandomCodeImg (仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
请求参数 · Header / Query / Path

无(该接口无 Query/Path/Header 显式参数;入参见 Body)

请求参数 · Body HttpServletResponse

请求体类型:HttpServletResponse(未在仓库索引到该 DTO 源码,无法展开字段;可能位于依赖 jar 或为 Map/基础类型)

响应参数
外层包装(chaos 框架自动;前端同时兼容 code/msg)
errcodeint业务码,0=成功
errmsgstring提示信息
dataT下方“data 结构”
data 结构

void —— 无返回数据

示例
请求示例 (自动生成,仅结构参考)
GET /auth/getRandomCodeImg
响应示例
(void,无响应体)
处理逻辑
逻辑摘要调用 randomNumbers(RandomUtil.randomNumbers);调用 setAuthValue(authService.setAuthValue);调用 outputImage(RandomVerifyImgCodeUtil.outputImage)
内联注释
  • 生成四位数的随机验证码
  • 将随机码设置在会话中,超时时间5分钟
  • 设置响应头信息
  • 设置相应类型,告诉浏览器输出的内容为图片
  • 设置响应头信息,告诉浏览器不要缓存此内容
  • 生成图片规格w宽 h高
前端调用方

源码扫描未发现 7 个前端对该接口的调用(可能为开放回调/内部/未上线/管理端动态调用)

POST /auth/login 在用管理后台 #
权限-登录 · AuthController
基本信息
控制器com.jxxx.dscp.api.controller.auth.AuthController#login
所属模块认证/登录 auth
暴露渠道管理后台 (@Route 注解;决定 URL 前缀与可访问端)
请求方法POST
调用链路 & 涉及数据表
涉及数据表system_usersystem_user_relationsystem_oauth2_access_token
ControllerAuthController#login
转换BeanUtils.map → LoginResponse
ServiceUserService#get (UserServiceImpl)
MapperUserMapper#selectById ⇒ 表 system_user
ServiceUserRelationService#queryList (UserRelationServiceImpl)
MapperUserRelationMapper#selectList ⇒ 表 system_user_relation
ServiceOauth2AccessTokenService#get (Oauth2AccessTokenServiceImpl)
MapperOauth2AccessTokenMapper#selectById ⇒ 表 system_oauth2_access_token
其它依赖(权限 / 会话 / 缓存 / 校验等,不直接读写业务表)· 7
String.equalsAuthService.getAuthValueAuthService.deletePasswordEncoder.matchesOauth2AccessTokenService.createAccessTokenOauth2ClientService.mustGetAuthService.setAuthAccId

链路按 Controller → Service(Impl) → Mapper → 表 逐层追踪;字段对应的「表.列」见下方请求/响应表新增列,按字段同名映射到涉及的实体表列; 表示该字段为查询条件 / 计算 / 转换 / 包装字段,未直接对应单一列。

环境 URL
环境完整 URL(主机 + 渠道前缀 + 路径)备注
devhttps://dscp-dev.hn12301.net/manage-api/auth/login
uathttps://dscp-uat.hn12301.net/manage-api/auth/login
prohttps://dscp-uat.hn12301.net/manage-api/auth/login (仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
请求参数 · Header / Query / Path

无(该接口无 Query/Path/Header 显式参数;入参见 Body)

请求参数 · Body LoginRequest
字段类型必填取值/校验表 / 列说明
usernameString必填system_user.username用户名
passwordString必填system_user.password密码
响应参数
外层包装(chaos 框架自动;前端同时兼容 code/msg)
errcodeint业务码,0=成功
errmsgstring提示信息
dataT下方“data 结构”
data 结构 LoginResponse (object)
字段类型必填取值/校验表 / 列说明
userIdLongsystem_user_relation.user_id登录用户id
openIdString用户OPENID
mobileStringsystem_user.mobile手机号
accessTokenStringsystem_oauth2_access_token.access_token访问令牌
refreshTokenStringsystem_oauth2_access_token.refresh_token刷新令牌
expiresTimeDatesystem_oauth2_access_token.expires_time过期时间
示例
请求示例 (自动生成,仅结构参考)
POST /auth/login
{
  "body": {
    "username": "",
    "password": ""
  }
}
响应示例
{
  "errcode": 0,
  "errmsg": "",
  "data": {
    "userId": 1,
    "openId": "",
    "mobile": "13800000000",
    "accessToken": "",
    "refreshToken": "",
    "expiresTime": "2026-01-01 12:00:00"
  }
}
处理逻辑
逻辑摘要查询详情(authService.getAuthValue);调用 isBlank(StringUtil.isBlank);删除(authService.delete);入参与返回值经 BeanUtils 做对象/分页映射
内联注释
  • if (!SUPER_CAPTCHA.equals(request.getVerifyCode())) {
  • // 验证码校验
  • if (StringUtil.isBlank(sessionVerifyCode)) {
  • throw ResCode.VERIFY_CODE_IS_NULL.toException("请先获取验证码");
  • }
  • if (!sessionVerifyCode.equalsIgnoreCase(request.getVerifyCode())) {
  • // 移除之前的图片验证码信息
  • authService.delete(SessionConstants.IMG_CAPTCHA);
POST /auth/logout 在用管理后台 #
权限-登出 · AuthController
基本信息
控制器com.jxxx.dscp.api.controller.auth.AuthController#logout
所属模块认证/登录 auth
暴露渠道管理后台 (@Route 注解;决定 URL 前缀与可访问端)
请求方法POST
调用链路 & 涉及数据表
涉及数据表(未解析到业务表:可能为纯校验/转发/缓存/外部接口)
ControllerAuthController#logout
其它依赖(权限 / 会话 / 缓存 / 校验等,不直接读写业务表)· 1
AuthService.deleteAuthAccId

链路按 Controller → Service(Impl) → Mapper → 表 逐层追踪;字段对应的「表.列」见下方请求/响应表新增列,按字段同名映射到涉及的实体表列; 表示该字段为查询条件 / 计算 / 转换 / 包装字段,未直接对应单一列。

环境 URL
环境完整 URL(主机 + 渠道前缀 + 路径)备注
devhttps://dscp-dev.hn12301.net/manage-api/auth/logout
uathttps://dscp-uat.hn12301.net/manage-api/auth/logout
prohttps://dscp-uat.hn12301.net/manage-api/auth/logout (仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
请求参数 · Header / Query / Path

无(该接口无 Query/Path/Header 显式参数;入参见 Body)

请求参数 · Body

请求体类型:(未在仓库索引到该 DTO 源码,无法展开字段;可能位于依赖 jar 或为 Map/基础类型)

响应参数
外层包装(chaos 框架自动;前端同时兼容 code/msg)
errcodeint业务码,0=成功
errmsgstring提示信息
dataT下方“data 结构”
data 结构

void —— 无返回数据

示例
请求示例 (自动生成,仅结构参考)
POST /auth/logout
响应示例
(void,无响应体)
处理逻辑
操作日志auth / 登出
逻辑摘要删除(authService.deleteAuthAccId)
内联注释
  • 删除授权用户id
POST /auth/oauth2 未使用App #
小程序授权登录 · AuthController
基本信息
控制器com.jxxx.dscp.api.controller.auth.AuthController#oauth2
所属模块认证/登录 auth
暴露渠道App (@Route 注解;决定 URL 前缀与可访问端)
请求方法POST
调用链路 & 涉及数据表
涉及数据表membercard_bindsystem_oauth2_access_token
ControllerAuthController#oauth2
转换BeanUtils.map → LoginResponse
ServiceMemberService#get (MemberServiceImpl)
MapperMemberMapper#selectById ⇒ 表 member
ServiceMemberService#update (MemberServiceImpl)
MapperMemberMapper#updateById ⇒ 表 member
ServiceMemberService#add (MemberServiceImpl)
MapperMemberMapper#insert ⇒ 表 member
ServiceCardBindService#queryList (CardBindServiceImpl)
MapperCardBindMapper#selectList ⇒ 表 card_bind
ServiceOauth2AccessTokenService#get (Oauth2AccessTokenServiceImpl)
MapperOauth2AccessTokenMapper#selectById ⇒ 表 system_oauth2_access_token
其它依赖(权限 / 会话 / 缓存 / 校验等,不直接读写业务表)· 8
MPConfig.getMpAppIdMPConfig.getMpAppSecretMemberService.getMemberChaosTransactionTemplate.executeCardBindService.updateListOauth2AccessTokenService.createAccessTokenOauth2ClientService.mustGetAuthService.setAuthAccId

链路按 Controller → Service(Impl) → Mapper → 表 逐层追踪;字段对应的「表.列」见下方请求/响应表新增列,按字段同名映射到涉及的实体表列; 表示该字段为查询条件 / 计算 / 转换 / 包装字段,未直接对应单一列。

环境 URL
环境完整 URL(主机 + 渠道前缀 + 路径)备注
devhttps://dscp-dev.hn12301.net/app-api/auth/oauth2
uathttps://dscp-uat.hn12301.net/app-api/auth/oauth2
prohttps://dscp-uat.hn12301.net/app-api/auth/oauth2 (仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
请求参数 · Header / Query / Path

无(该接口无 Query/Path/Header 显式参数;入参见 Body)

请求参数 · Body HttpServletResponse

请求体类型:HttpServletResponse(未在仓库索引到该 DTO 源码,无法展开字段;可能位于依赖 jar 或为 Map/基础类型)

响应参数
外层包装(chaos 框架自动;前端同时兼容 code/msg)
errcodeint业务码,0=成功
errmsgstring提示信息
dataT下方“data 结构”
data 结构 LoginResponse (object)
字段类型必填取值/校验表 / 列说明
userIdLongsystem_oauth2_access_token.user_id登录用户id
openIdStringmember.open_id用户OPENID
mobileStringmember.mobile手机号
accessTokenStringsystem_oauth2_access_token.access_token访问令牌
refreshTokenStringsystem_oauth2_access_token.refresh_token刷新令牌
expiresTimeDatecard_bind.expires_time过期时间
示例
请求示例 (自动生成,仅结构参考)
POST /auth/oauth2
响应示例
{
  "errcode": 0,
  "errmsg": "",
  "data": {
    "userId": 1,
    "openId": "",
    "mobile": "13800000000",
    "accessToken": "",
    "refreshToken": "",
    "expiresTime": "2026-01-01 12:00:00"
  }
}
处理逻辑
操作日志auth / 小程序授权登录
逻辑摘要查询详情(WeixinUtils.getJsCode2AccessToken);查询详情(memberService.get);查询详情(memberService.getMember)
内联注释
  • 将请求、响应的编码均设置为UTF-8(防止中文乱码)
  • 用户同意授权后,能获取到code
  • 用户同意授权
  • 网页授权接口访问凭证
  • 用户标识
  • 解密获取用户手机号码
  • 被加密的数据
  • 加密秘钥
前端调用方

源码扫描未发现 7 个前端对该接口的调用(可能为开放回调/内部/未上线/管理端动态调用)

POST /auth/oauth2Login 未使用H5 #
c端模拟授权登录 · AuthController
基本信息
控制器com.jxxx.dscp.api.controller.auth.AuthController#oauth2Login
所属模块认证/登录 auth
暴露渠道H5 (@Route 注解;决定 URL 前缀与可访问端)
请求方法POST
调用链路 & 涉及数据表
涉及数据表membercard_bindsystem_oauth2_access_token
ControllerAuthController#oauth2Login
转换BeanUtils.map → LoginResponse
ServiceMemberService#get (MemberServiceImpl)
MapperMemberMapper#selectById ⇒ 表 member
ServiceMemberService#update (MemberServiceImpl)
MapperMemberMapper#updateById ⇒ 表 member
ServiceMemberService#add (MemberServiceImpl)
MapperMemberMapper#insert ⇒ 表 member
ServiceCardBindService#queryList (CardBindServiceImpl)
MapperCardBindMapper#selectList ⇒ 表 card_bind
ServiceOauth2AccessTokenService#get (Oauth2AccessTokenServiceImpl)
MapperOauth2AccessTokenMapper#selectById ⇒ 表 system_oauth2_access_token
其它依赖(权限 / 会话 / 缓存 / 校验等,不直接读写业务表)· 5
ChaosTransactionTemplate.executeCardBindService.updateListOauth2AccessTokenService.createAccessTokenOauth2ClientService.mustGetAuthService.setAuthAccId

链路按 Controller → Service(Impl) → Mapper → 表 逐层追踪;字段对应的「表.列」见下方请求/响应表新增列,按字段同名映射到涉及的实体表列; 表示该字段为查询条件 / 计算 / 转换 / 包装字段,未直接对应单一列。

环境 URL
环境完整 URL(主机 + 渠道前缀 + 路径)备注
devhttps://dscp-dev.hn12301.net/h5-api/auth/oauth2Login
uathttps://dscp-uat.hn12301.net/h5-api/auth/oauth2Login
prohttps://dscp-uat.hn12301.net/h5-api/auth/oauth2Login (仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
请求参数 · Header / Query / Path

无(该接口无 Query/Path/Header 显式参数;入参见 Body)

请求参数 · Body Oauth2LoginRequest
字段类型必填取值/校验表 / 列说明
mobileString必填member.mobileopenId
openIdString必填member.open_id
响应参数
外层包装(chaos 框架自动;前端同时兼容 code/msg)
errcodeint业务码,0=成功
errmsgstring提示信息
dataT下方“data 结构”
data 结构 LoginResponse (object)
字段类型必填取值/校验表 / 列说明
userIdLongsystem_oauth2_access_token.user_id登录用户id
openIdStringmember.open_id用户OPENID
mobileStringmember.mobile手机号
accessTokenStringsystem_oauth2_access_token.access_token访问令牌
refreshTokenStringsystem_oauth2_access_token.refresh_token刷新令牌
expiresTimeDatecard_bind.expires_time过期时间
示例
请求示例 (自动生成,仅结构参考)
POST /auth/oauth2Login
{
  "body": {
    "mobile": "13800000000",
    "openId": ""
  }
}
响应示例
{
  "errcode": 0,
  "errmsg": "",
  "data": {
    "userId": 1,
    "openId": "",
    "mobile": "13800000000",
    "accessToken": "",
    "refreshToken": "",
    "expiresTime": "2026-01-01 12:00:00"
  }
}
处理逻辑
操作日志auth / C端模拟授权登录
逻辑摘要查询详情(memberService.get);更新(memberService.update);调用 date(DateUtil.date)
内联注释
  • 查询会员信息
  • 会员存在,则绑定openId
  • 会员不存在,新增会员信息
  • 根据手机号码查询会员绑卡列表
  • 更新绑定信息
  • 根据手机号码查询卡池列表
  • 更新卡池信息
  • 回滚事务
前端调用方

源码扫描未发现 7 个前端对该接口的调用(可能为开放回调/内部/未上线/管理端动态调用)

POST /auth/oauth2session 未使用H5 #
权限-H5网页授权登录 · AuthController
基本信息
控制器com.jxxx.dscp.api.controller.auth.AuthController#oauth2session
所属模块认证/登录 auth
暴露渠道H5 (@Route 注解;决定 URL 前缀与可访问端)
请求方法POST
调用链路 & 涉及数据表
涉及数据表membersystem_oauth2_access_token
ControllerAuthController#oauth2session
转换BeanUtils.map → LoginResponse
ServiceMemberService#get (MemberServiceImpl)
MapperMemberMapper#selectById ⇒ 表 member
ServiceMemberService#update (MemberServiceImpl)
MapperMemberMapper#updateById ⇒ 表 member
ServiceMemberService#add (MemberServiceImpl)
MapperMemberMapper#insert ⇒ 表 member
ServiceOauth2AccessTokenService#get (Oauth2AccessTokenServiceImpl)
MapperOauth2AccessTokenMapper#selectById ⇒ 表 system_oauth2_access_token
其它依赖(权限 / 会话 / 缓存 / 校验等,不直接读写业务表)· 6
WeixinConfig.getAppIdWeixinConfig.getAppSecretChaosTransactionTemplate.executeOauth2AccessTokenService.createAccessTokenOauth2ClientService.mustGetAuthService.setAuthAccId

链路按 Controller → Service(Impl) → Mapper → 表 逐层追踪;字段对应的「表.列」见下方请求/响应表新增列,按字段同名映射到涉及的实体表列; 表示该字段为查询条件 / 计算 / 转换 / 包装字段,未直接对应单一列。

环境 URL
环境完整 URL(主机 + 渠道前缀 + 路径)备注
devhttps://dscp-dev.hn12301.net/h5-api/auth/oauth2session
uathttps://dscp-uat.hn12301.net/h5-api/auth/oauth2session
prohttps://dscp-uat.hn12301.net/h5-api/auth/oauth2session (仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
请求参数 · Header / Query / Path

无(该接口无 Query/Path/Header 显式参数;入参见 Body)

请求参数 · Body Oauth2SessionRequest
字段类型必填取值/校验表 / 列说明
codeString必填code
响应参数
外层包装(chaos 框架自动;前端同时兼容 code/msg)
errcodeint业务码,0=成功
errmsgstring提示信息
dataT下方“data 结构”
data 结构 LoginResponse (object)
字段类型必填取值/校验表 / 列说明
userIdLongsystem_oauth2_access_token.user_id登录用户id
openIdStringmember.open_id用户OPENID
mobileStringmember.mobile手机号
accessTokenStringsystem_oauth2_access_token.access_token访问令牌
refreshTokenStringsystem_oauth2_access_token.refresh_token刷新令牌
expiresTimeDatesystem_oauth2_access_token.expires_time过期时间
示例
请求示例 (自动生成,仅结构参考)
POST /auth/oauth2session
{
  "body": {
    "code": ""
  }
}
响应示例
{
  "errcode": 0,
  "errmsg": "",
  "data": {
    "userId": 1,
    "openId": "",
    "mobile": "13800000000",
    "accessToken": "",
    "refreshToken": "",
    "expiresTime": "2026-01-01 12:00:00"
  }
}
处理逻辑
操作日志auth / H5网页授权登录
逻辑摘要查询详情(WeixinUtils.getOauth2AccessToken);查询详情(WeixinUtils.getSNSUserInfo);查询详情(memberService.get);入参与返回值经 BeanUtils 做对象/分页映射
内联注释
  • 用户同意授权
  • 获取网页授权access_token
  • 获取用户openId
  • 网页授权接口访问凭证
  • 获取用户信息
  • 查询会员信息
  • 会员存在,则绑定openId
  • .openId(openId)
前端调用方

源码扫描未发现 7 个前端对该接口的调用(可能为开放回调/内部/未上线/管理端动态调用)

POST /auth/queryPermissionList 在用管理后台 #
权限-列表查询 · AuthController
基本信息
控制器com.jxxx.dscp.api.controller.auth.AuthController#queryPermissionList
所属模块认证/登录 auth
暴露渠道管理后台 (@Route 注解;决定 URL 前缀与可访问端)
请求方法POST
调用链路 & 涉及数据表
涉及数据表system_user_rolesystem_rolesystem_role_menusystem_menu
ControllerAuthController#queryPermissionList
ServiceUserRoleService#queryList (UserRoleServiceImpl)
MapperUserRoleMapper#selectList ⇒ 表 system_user_role
ServiceRoleService#queryList (RoleServiceImpl)
MapperRoleMapper#selectList ⇒ 表 system_role
ServiceRoleMenuService#queryList (RoleMenuServiceImpl)
MapperRoleMenuMapper#selectList ⇒ 表 system_role_menu
ServiceMenuService#queryList (MenuServiceImpl)
MapperMenuMapper#selectList ⇒ 表 system_menu
其它依赖(权限 / 会话 / 缓存 / 校验等,不直接读写业务表)· 3
UserService.mustGetSessionUserService.getSessionIdSessionUserService.getSessionUser

链路按 Controller → Service(Impl) → Mapper → 表 逐层追踪;字段对应的「表.列」见下方请求/响应表新增列,按字段同名映射到涉及的实体表列; 表示该字段为查询条件 / 计算 / 转换 / 包装字段,未直接对应单一列。

环境 URL
环境完整 URL(主机 + 渠道前缀 + 路径)备注
devhttps://dscp-dev.hn12301.net/manage-api/auth/queryPermissionList
uathttps://dscp-uat.hn12301.net/manage-api/auth/queryPermissionList
prohttps://dscp-uat.hn12301.net/manage-api/auth/queryPermissionList (仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
请求参数 · Header / Query / Path

无(该接口无 Query/Path/Header 显式参数;入参见 Body)

请求参数 · Body

请求体类型:(未在仓库索引到该 DTO 源码,无法展开字段;可能位于依赖 jar 或为 Map/基础类型)

响应参数
外层包装(chaos 框架自动;前端同时兼容 code/msg)
errcodeint业务码,0=成功
errmsgstring提示信息
dataT下方“data 结构”
data 结构 AuthPermissionResponse (object)
字段类型必填取值/校验表 / 列说明
userUserSimpleResponse登录用户信息
user.idLongsystem_user_role.id用户ID
user.nicknameString用户昵称
user.remarkStringsystem_role.remark备注
user.deptIdLong部门ID
user.postIdsList<Long>岗位编号数组
user.emailString用户邮箱
user.mobileString手机号码
user.sexInteger用户性别
user.avatarString头像地址
user.merchantIdLongsystem_user_role.merchant_id商户id
user.shopIdLongsystem_user_role.shop_id商铺id
user.tenantIdLongsystem_user_role.tenant_id租户编号
user.privilegeTypeUserPrivilegeType2平台级用户商户商铺用户权限类型
rolesList<String>角色标识列表
permissionsList<String>操作权限数据
menusList<MenuResponse>菜单列表
menus[].idLongsystem_user_role.id菜单ID
menus[].nameStringsystem_role.name菜单名称
menus[].permissionStringsystem_menu.permission权限标识
menus[].typeMenuType1目录2菜单3按钮system_menu.type菜单类型
menus[].sortIntegersystem_role.sort显示顺序
menus[].parentIdLongsystem_menu.parent_id父菜单ID
menus[].pathStringsystem_menu.path路由地址
menus[].iconStringsystem_menu.icon菜单图标
menus[].componentStringsystem_menu.component组件路径
menus[].componentNameStringsystem_menu.component_name组件名
menus[].isEnabledBooleansystem_role.is_enabled菜单状态
menus[].visibleBooleansystem_menu.visible是否可见
menus[].keepAliveBooleansystem_menu.keep_alive是否缓存
menus[].alwaysShowBooleansystem_menu.always_show是否总是显示
menus[].childrenList<MenuResponse>子列表
children[].…(循环引用,已折叠)
示例
请求示例 (自动生成,仅结构参考)
POST /auth/queryPermissionList
响应示例
{
  "errcode": 0,
  "errmsg": "",
  "data": {
    "user": {
      "id": 1,
      "nickname": "",
      "remark": "",
      "deptId": 1,
      "postIds": "",
      "email": "",
      "mobile": "13800000000",
      "sex": 0,
      "avatar": "",
      "merchantId": 1,
      "shopId": 1,
      "tenantId": 1,
      "privilegeType": "2"
    },
    "roles": "",
    "permissions": "",
    "menus": [
      {
        "id": 1,
        "name": "",
        "permission": "",
        "type": "1",
        "sort": 0,
        "parentId": 1,
        "path": "",
        "icon": "",
        "component": "",
        "componentName": "",
        "isEnabled": false,
        "visible": false,
        "keepAlive": false,
        "alwaysShow": false,
        "children": [
          {}
        ]
      }
    ]
  }
}
处理逻辑
逻辑摘要调用 mustGet(userService.mustGet);查询详情(sessionService.getSessionId);列表查询(userRoleService.queryList);入参与返回值经 BeanUtils 做对象/分页映射
内联注释
  • 1.1 获得用户信息
  • 1.2 获得角色列表
  • 1.3 获得菜单列表
  • 2. 拼接结果返回
POST /auth/simulateLogin 在用管理后台 #
权限-登录 · AuthController
基本信息
控制器com.jxxx.dscp.api.controller.auth.AuthController#simulateLogin
所属模块认证/登录 auth
暴露渠道管理后台 (@Route 注解;决定 URL 前缀与可访问端)
请求方法POST
调用链路 & 涉及数据表
涉及数据表system_usersystem_user_relationsystem_oauth2_access_token
ControllerAuthController#simulateLogin
转换BeanUtils.map → LoginResponse
ServiceUserService#get (UserServiceImpl)
MapperUserMapper#selectById ⇒ 表 system_user
ServiceUserRelationService#queryList (UserRelationServiceImpl)
MapperUserRelationMapper#selectList ⇒ 表 system_user_relation
ServiceOauth2AccessTokenService#get (Oauth2AccessTokenServiceImpl)
MapperOauth2AccessTokenMapper#selectById ⇒ 表 system_oauth2_access_token
其它依赖(权限 / 会话 / 缓存 / 校验等,不直接读写业务表)· 3
Oauth2AccessTokenService.createAccessTokenOauth2ClientService.mustGetAuthService.setAuthAccId

链路按 Controller → Service(Impl) → Mapper → 表 逐层追踪;字段对应的「表.列」见下方请求/响应表新增列,按字段同名映射到涉及的实体表列; 表示该字段为查询条件 / 计算 / 转换 / 包装字段,未直接对应单一列。

环境 URL
环境完整 URL(主机 + 渠道前缀 + 路径)备注
devhttps://dscp-dev.hn12301.net/manage-api/auth/simulateLogin
uathttps://dscp-uat.hn12301.net/manage-api/auth/simulateLogin
prohttps://dscp-uat.hn12301.net/manage-api/auth/simulateLogin (仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
请求参数 · Header / Query / Path

无(该接口无 Query/Path/Header 显式参数;入参见 Body)

请求参数 · Body LoginRequest
字段类型必填取值/校验表 / 列说明
usernameString必填system_user.username用户名
passwordString必填system_user.password密码
响应参数
外层包装(chaos 框架自动;前端同时兼容 code/msg)
errcodeint业务码,0=成功
errmsgstring提示信息
dataT下方“data 结构”
data 结构 LoginResponse (object)
字段类型必填取值/校验表 / 列说明
userIdLongsystem_user_relation.user_id登录用户id
openIdString用户OPENID
mobileStringsystem_user.mobile手机号
accessTokenStringsystem_oauth2_access_token.access_token访问令牌
refreshTokenStringsystem_oauth2_access_token.refresh_token刷新令牌
expiresTimeDatesystem_oauth2_access_token.expires_time过期时间
示例
请求示例 (自动生成,仅结构参考)
POST /auth/simulateLogin
{
  "body": {
    "username": "",
    "password": ""
  }
}
响应示例
{
  "errcode": 0,
  "errmsg": "",
  "data": {
    "userId": 1,
    "openId": "",
    "mobile": "13800000000",
    "accessToken": "",
    "refreshToken": "",
    "expiresTime": "2026-01-01 12:00:00"
  }
}
处理逻辑
操作日志auth / 模拟登录
逻辑摘要查询详情(userService.get);列表查询(userRelationService.queryList);查询详情(oauth2AccessTokenService.get);入参与返回值经 BeanUtils 做对象/分页映射
内联注释
  • 查询用户信息
  • 查询用户组织关系
  • 查询是否已登录过
  • 创建token
  • 设置会话信息
  • TODO 创建登录日志
POST /auth/oauth2MeiKe 在用H5 #
认证-美科H5网页授权(code 换 openId) · AuthController
基本信息
控制器com.jxxx.dscp.api.controller.auth.AuthController#oauth2MeiKe
所属模块认证/登录 auth
暴露渠道H5 (@Route 注解;免登录 auth=false)
请求方法POST
调用链路 & 涉及数据表
涉及数据表membersystem_oauth2_access_token
ControllerAuthController#oauth2MeiKe
ServicememberService#get
MapperMemberMapper#get ⇒ 表 member
ServicememberService#update
MapperMemberMapper#update ⇒ 表 member
ServicememberService#add
MapperMemberMapper#add ⇒ 表 member
Serviceoauth2AccessTokenService#get
MapperOauth2AccessTokenMapper#get ⇒ 表 system_oauth2_access_token
Serviceoauth2AccessTokenService#createAccessToken

链路按 Controller → Service(Impl) → Mapper → 表 逐层追踪;字段对应的「表.列」见下方请求/响应表新增列,按字段同名映射到涉及的实体表列; 表示该字段为查询条件 / 计算 / 转换 / 包装字段,未直接对应单一列。

环境 URL
环境完整 URL(主机 + 渠道前缀 + 路径)备注
devhttps://dscp-dev.hn12301.net/h5-api/auth/oauth2MeiKe
uathttps://dscp-uat.hn12301.net/h5-api/auth/oauth2MeiKe
prohttps://dscp-uat.hn12301.net/h5-api/auth/oauth2MeiKe (仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
请求参数 · Header / Query / Path

无(该接口无 Query/Path/Header 显式参数;入参见 Body)

请求参数 · Body

无(该方法不从请求体取参)

响应参数
外层包装(chaos 框架自动;前端同时兼容 code/msg)
errcodeint业务码,0=成功
errmsgstring提示信息
dataT下方“data 结构”
data 结构 LoginResponse (object)
字段类型必填取值/校验表 / 列说明
userIdLong登录用户id
openIdString用户OPENID
mobileString手机号
accessTokenString访问令牌
refreshTokenString刷新令牌
expiresTimeDate过期时间
示例
请求示例
(无请求体)
响应示例
{
  "userId": 0,
  "openId": "",
  "mobile": "",
  "accessToken": "",
  "refreshToken": "",
  "expiresTime": ""
}
处理逻辑
操作日志auth / 美科H5网页授权登录
逻辑摘要memberService.get;memberService.update;memberService.add;oauth2AccessTokenService.get;oauth2AccessTokenService.createAccessToken;authService.setAuthAccId(辅助:authService.setAuthAccId);完整实现见源码 AuthController#oauth2MeiKe
内联注释
  • 用户同意授权
  • 获取网页授权access_token
  • 获取用户openId
  • 网页授权接口访问凭证
  • 获取用户信息
  • SNSUserInfo snsUserInfo = WeixinUtils.getSNSUserInfo(accessT
  • 查询会员信息
  • Member member = memberService.get(MemberQuery.builder().open