/profitAccounting/cardModel
在用管理后台
#
| 控制器 | com.jxxx.dscp.api.controller.statistics.CardModelProfitAccountingController#cardModel |
|---|---|
| 所属模块 | 统计 statistics |
| 暴露渠道 | 管理后台 (@Route 注解;决定 URL 前缀与可访问端) |
| 请求方法 | POST |
cardcard_resource_ruleskucard_checkregioncard_bindCardModelProfitAccountingController#cardModelCardService#queryCardChannelActiveStat (CardServiceImpl)CardMapper#queryCardChannelActiveStat ⇒ 表 cardCardMapper#queryCardChannelActiveStatAll ⇒ 表 cardCardMapper#queryCardChannelSaleStat ⇒ 表 cardCardService#queryChannelActiveCardNumber (CardServiceImpl)CardMapper#queryChannelActiveCardNumber ⇒ 表 cardCardResourceRuleService#queryList (CardResourceRuleServiceImpl)CardResourceRuleMapper#selectList ⇒ 表 card_resource_ruleSkuService#queryList (SkuServiceImpl)SkuMapper#selectList ⇒ 表 skuCardCheckService#queryList (CardCheckServiceImpl)CardCheckMapper#selectList ⇒ 表 card_checkRegionService#get (RegionServiceImpl)RegionMapper#selectById ⇒ 表 regionCardBindService#countBindByCardNo (CardBindServiceImpl)CardBindMapper#countBindByCardNo ⇒ 表 card_bindCardBindService#countBindById (CardBindServiceImpl)CardBindMapper#countBindById ⇒ 表 card_bindCardService#countTotalNum (CardServiceImpl)CardMapper#countTotalNum ⇒ 表 cardCardService#countDonationNum (CardServiceImpl)CardMapper#countDonationNum ⇒ 表 cardCardService#countYouZhengNum (CardServiceImpl)CardMapper#countYouZhengNum ⇒ 表 card其它依赖(权限 / 会话 / 缓存 / 校验等,不直接读写业务表)· 2
链路按 Controller → Service(Impl) → Mapper → 表 逐层追踪;字段对应的「表.列」见下方请求/响应表新增列,按字段同名映射到涉及的实体表列;— 表示该字段为查询条件 / 计算 / 转换 / 包装字段,未直接对应单一列。
| 环境 | 完整 URL(主机 + 渠道前缀 + 路径) | 备注 |
|---|---|---|
| dev | https://dscp-dev.hn12301.net/manage-api/profitAccounting/cardModel | |
| uat | https://dscp-uat.hn12301.net/manage-api/profitAccounting/cardModel | |
| pro | https://dscp-uat.hn12301.net/manage-api/profitAccounting/cardModel | (仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意) |
无(该接口无 Query/Path/Header 显式参数;入参见 Body)
CardModelProfitAccountingRequest| 字段 | 类型 | 必填 | 取值/校验 | 表 / 列 | 说明 |
|---|---|---|---|---|---|
| pageNum | Integer | 否 | — | 页码(继承自框架分页基类 AbstractPageRequest) | |
| pageSize | Integer | 否 | — | 每页条数(继承自框架分页基类 AbstractPageRequest) | |
| cardModelId | Long | 否 | 可选(@MvcOptional) | card.card_model_id | |
| activeTimeRange | Date[] | 否 | 可选(@MvcOptional) | — | 激活时间范围 |
| errcode | int | 业务码,0=成功 |
| errmsg | string | 提示信息 |
| data | T | 下方“data 结构” |
CardModelProfitAccountingResponse (object)| 字段 | 类型 | 必填 | 取值/校验 | 表 / 列 | 说明 |
|---|---|---|---|---|---|
| cardModelId | Long | card.card_model_id | |||
| totalActiveCardNum | Integer | — | |||
| cardNoNum | Integer | — | |||
| totalCheckNum | Integer | — | |||
| resourceList | List<CardModelProfitAccountingResource> | — | |||
| resourceList[].resourceId | Long | card_check.resource_id | |||
| resourceList[].resourceName | String | card_resource_rule.resource_name | |||
| resourceList[].buyPrice | Integer | sku.buy_price | |||
| resourceList[].checkNum | Integer | — | |||
| resourceList[].shopId | Long | card.shop_id | |||
| resourceList[].shopName | String | — | |||
| resourceList[].cityId | Long | — | |||
| resourceList[].cityName | String | — | |||
| oneTimes | Integer | — | |||
| twoTimes | Integer | — | |||
| threeTimes | Integer | — | |||
| fourTimes | Integer | — | |||
| fiveTimes | Integer | — | |||
| sixTimes | Integer | — | |||
| sixPlusTimes | Integer | — | |||
| cardBindCardNoCount | Long | — | |||
| cardBindIdCount | Long | — | |||
| usedPercent | BigDecimal | — | |||
| averageUsedTimes | BigDecimal | — | |||
| totalNum | Long | — | |||
| donationNum | Long | — | |||
| youZhengNum | Long | — |
示例
POST /profitAccounting/cardModel{
"body": {
"pageNum": 0,
"pageSize": 0,
"cardModelId": 1,
"activeTimeRange": "2026-01-01 12:00:00"
}
}{
"errcode": 0,
"errmsg": "",
"data": {
"cardModelId": 1,
"totalActiveCardNum": 0,
"cardNoNum": 0,
"totalCheckNum": 0,
"resourceList": [
{
"resourceId": 1,
"resourceName": "",
"buyPrice": 0,
"checkNum": 0,
"shopId": 1,
"shopName": "",
"cityId": 1,
"cityName": ""
}
],
"oneTimes": 0,
"twoTimes": 0,
"threeTimes": 0,
"fourTimes": 0,
"fiveTimes": 0,
"sixTimes": 0,
"sixPlusTimes": 0,
"cardBindCardNoCount": 0,
"cardBindIdCount": 1,
"usedPercent": 0,
"averageUsedTimes": 0,
"totalNum": 0,
"donationNum": 0,
"youZhengNum": 0
}
}处理逻辑
- 统计卡种总激活量
- response.setCardNoList(cardNoList);
- 查找卡种所有资源
- .status(true)
- .resourceStatus(ResourceStatus.UPDATES)
- .cardNumberList(cardNoList)
- 按使用次数统计卡的数量 使用情况:1次xxx张,2次xxx张,3次xxx张,4次、5次、6次、6次以上
- 统计绑卡数量、绑卡人数