Hide last authors
![]() |
1.8 | 1 | {{box cssClass="box floatinginfobox" title="**Summary**"}} |
2 | {{toc/}} | ||
3 | {{/box}} | ||
4 | |||
![]() |
1.1 | 5 | 分析主要分两类:数据库、应用日志。 |
6 | |||
![]() |
1.3 | 7 | = 案例1:卡鉴权 = |
![]() |
1.1 | 8 | |
9 | 思路: | ||
10 | |||
11 | * 根据账单号、手机号等信息,检查 recharge_history 中状态。关键字段包含: | ||
12 | ** C_STATUS | ||
13 | ** C_PREV_CHG_STATUS | ||
14 | ** C_CHG_STATUS | ||
15 | * 根据账单号,检查recharge_history_status_report 对应账单充电事务跟踪信息。此表记录了从启动充电 至 充电结束中所有充电变化状态。关键字段包含: | ||
16 | ** C_STATUS | ||
![]() |
1.2 | 17 | * 卡鉴权一般 recharge_history.C_STATUS=2,进一步 检查recharge_history_status_report.C_STATUS 整个充电过程。得出基本分析结论。 |
18 | * 真正原因可能需要将基本结论转交研发进一步确认。 | ||
19 | * 是否人工修正此状态,需综合评估后再处理。 | ||
![]() |
1.3 | 20 | |
21 | = 案例2:心跳数据查询 = | ||
22 | |||
23 | sql 语句: | ||
24 | select rhsr.C_CREATE_DATE | ||
25 | #,C_SERVICESTART | ||
26 | ,C_CHARGE_START 服务开始时间,C_CHARGE_END 充电结束时间,C_SERVICEEND 服务结束时间 | ||
27 | #,rhsr.c_device_number | ||
28 | #,C_BILLING_ID,rhsr.C_USER_ID | ||
29 | ,C_CHARGE_DURATION 充电时长(秒), | ||
30 | rhsr.C_CHARGE_POWER 当前电量,rhsr.C_STATUS 充电状态 | ||
31 | from recharge_history_status_report rhsr | ||
32 | #LEFT JOIN member m on m.c_user_id=rhsr.c_user_id | ||
33 | where | ||
34 | rhsr.C_BIllING_ID='20191024144331381526' | ||
35 | order by rhsr.C_create_DATE desc | ||
36 | #limit 25 | ||
37 | |||
![]() |
1.4 | 38 | |
39 | |||
![]() |
1.6 | 40 | = 案例3:关键字回覆 = |
![]() |
1.4 | 41 | |
42 | sql 语句: | ||
43 | |||
44 | INSERT INTO `wx_reply` VALUES (1, 'subscribe', ' 尊敬的用户,欢迎使用充电服务。想咨询有关充电信息,请回复以下对应数字:\n[1]如何充电\n[2]电桩故障情况\n[3]关于退款\n[4]如结束充电'); | ||
45 | INSERT INTO `wx_reply` VALUES (2, '1', ' “扫码充电”步骤如下:选择电桩屏幕“扫码充电”会出现二维码,通过微信【扫一扫】扫描屏幕上二维码即可在手机端开始充电。密码充电用户选择电桩屏幕“密码充电”,进入公众号,点击中间“充电密码”,将密码输入电桩即可开始充电。'); | ||
46 | INSERT INTO `wx_reply` VALUES (3, '2', ' 如遇扫码不能充电,您可以尝试使用密码充电、重新尝试插拔枪连接或者更换其他电桩进行充电;如电桩亮红灯,请将电桩上红色“急停按钮”顺时针转回,即可恢复正常'); | ||
47 | INSERT INTO `wx_reply` VALUES (4, '3', '如需退款请依次进入“个人中心”-》点“个人账户”-》右上角点“我要退款”,审核通过后余额退还(微信充值退回微信,信用卡充值退回信用卡,储蓄卡充值退回储蓄卡;赠送电卡金额除外)。'); | ||
48 | INSERT INTO `wx_reply` VALUES (5, '4', ' 如您使用扫码充电,可在手机端手动结束;如您使用密码充电,可在电桩屏幕上输入密码后,选择“结束充电”;如果遇到手机网络延迟或输入密码无法结束,您可以按下充电枪枪把处按钮,按下后电桩会自动结束充电,而后拔枪即可。'); | ||
49 | INSERT INTO `wx_reply` VALUES (12, '帮助', ' 尊敬的用户,欢迎使用充电服务。想咨询有关充电信息,请回复以下对应数字:\n[1]如何充电\n[2]电桩故障情况\n[3]关于退款\n[4]如结束充电'); | ||
50 | |||
![]() |
1.5 | 51 | |
52 | |||
![]() |
1.8 | 53 | = 案例4:日志分析之查心跳 = |
![]() |
1.5 | 54 | |
55 | 关于日志逻辑,主要看几个接口数据,比如电量、心跳。浏览器中ctrl+f查些关键字。 | ||
![]() |
1.7 | 56 | |
57 | 查看日志,还需要 学会数据格式json [[https:~~/~~/www.w3school.com.cn/json/index.asp>>url:https://www.w3school.com.cn/json/index.asp]] | ||
58 | |||
![]() |
1.5 | 59 | **接口一:更新充电状态信息** |
60 | |||
61 | **接口描述:** | ||
62 | |||
63 | DYNAMIC在状态发生变化或者经过一定时间间隔时上传充电服务状态信息。 | ||
64 | |||
65 | **接口地址:** | ||
66 | |||
67 | |[[http:~~/~~/IP:PORT/boss/charge/updateChargeInfo>>http://IP:PORT/boss/charge/updateChargeInfo]] | ||
68 | |||
69 | 接口二:提交充电记录 | ||
70 | |||
71 | **接口描述:** | ||
72 | |||
73 | DYNAMIC在充电结束后提交本次充电服务的详细记录。 | ||
74 | |||
75 | **接口地址:** | ||
76 | |||
77 | |http:~/~/IP:PORT/boss/charge/addChargeRecord | ||
![]() |
1.8 | 78 | |
79 | = 案例5:日志分析之查鉴权请求 = | ||
80 | |||
![]() |
1.9 | 81 | **~~密码充电**,平台日志会收到鉴权请求,日志格式排查可 以关键字(其中桩id按实际替换):“deviceNumber: 35010400080000200014 >”。 |
![]() |
1.8 | 82 | |
83 | 实例如下:(对应 案例 fzfs_case#4_20191121) | ||
84 | |||
85 | 以方硕福州齐安充电站 桩id=35010400080000200014 ,如平台收到 密码充电 会有如下日志。2019-11-21 07:24:47,962 INFO [com.himorning.base.interceptors.BaseInterceptor] - <POST : subUnits: encryptionAlg: md5 authType: 0 chargeUnitLabel: 3 password: 573B8926F015AA477CB6604901B92AEA deviceNumber: 35010400080000200014 > | ||
86 | |||
87 | 反之:紫阳站 桩id=35011100080000200001 ,在今日 未查到 类似日志。 说明平台未收到桩端请求上送。 | ||
![]() |
1.9 | 88 | \\~~刷卡充电 日志示例 |
89 | 2019-11-26 10:40:50.368 | http-nio-8010-exec-1 | INFO | c.s.b.f.CustomAuthenticationFilter.doFilter(68) : POST : authType: 2 chargeUnitLabel: 2 deviceNumber: 44200000010000200002 subUnits: userCardNumber: 0001000000000013 | ||
90 | 2019-11-26 10:40:50.368 | http-nio-8010-exec-1 | INFO | c.s.boss.controller.ChargeController.auth(133) : =========receiveTspAction=====auth() password= null | deviceNumber=44200000010000200002 | ||
91 | |||
![]() |
2.2 | 92 | |
93 | = 案例6:日志分析之密码充电失败 = | ||
94 | |||
95 | **~~密码充电(测试平台为例)** | ||
96 | |||
97 | 1、登录‘https:~/~/mc-uat.linghuchongtech.com/‘,依次进入“首页/系统管理/运维管理/日志查询”。 | ||
98 | 2、日志栏数据“/auth”,点查询,如涉及时间,选择正确时间区间。 | ||
99 | 3、按ctrl+f5, 右上角查询栏输入:authType,查询关键字,分析问题。本例示例为充电密码3分钟内未启动充电,见下图: | ||
100 | |||
101 | [[image:1583814196947-417.png]] | ||
102 | |||
103 | |||
![]() |
3.2 | 104 | |
105 | = 案例7:测试环境 刷卡启动失败 = | ||
106 | |||
107 | **~~** | ||
108 | |||
109 | **平台配合在线刷卡测试相关: | ||
110 | 1、此项测试要解决什么问题(原因):测试环境刷卡鉴权失败,之前一直正常。 | ||
111 | 2、在线刷卡场景 | ||
112 | 3、测试环境,用的卡:8647000000000005、 8647000000000006 | ||
113 | 4、桩号 44520200040002400051** | ||
114 | |||
115 | **【初步分析】:** | ||
116 | |||
117 | **sql语句:SELECT id, C_NICKNAME,C_MOBILE,C_CARDNUMBER,C_TYPE FROM member o WHERE o.C_CARDNUMBER like concat('%','8647000000000006','%') or o.C_CARDNUMBER like concat('%','8647000000000005','%');** | ||
118 | \\**1、8647000000000005卡号重复绑定 | ||
119 | 2、8647000000000006 卡号绑定正常,下图 是8647000000000006卡的鉴权失败。转研发** | ||
120 | |||
121 | [[image:1587631529627-174.png]] |