87 lines
3.0 KiB
Markdown
87 lines
3.0 KiB
Markdown
# 问题截图
|
||
|
||

|
||
|
||

|
||
|
||
# 数据库信息统计
|
||
|
||
## IBS 系统 user 表:
|
||
|
||
第一次开户: feng.shi@legendata.net 15358165074 石烽 13962108439cmcc
|
||
第二次开户: 13962108439@139.com 13962108439cmcc 石峰 cmcc
|
||
|
||
## IAM 的 user 表:
|
||
|
||
第一次开户:2022-08-22 16:28:33,feng.shi@legendata.net,13962108439cmcc,6567b552ad87e4470eca7859a2a8f0f8c8702759
|
||
|
||
## IBS 系统 enterprise_info 表:
|
||
|
||
2022-08-22 08:28:30,200A9992007369685 feng.shi@legendata.net,石烽,13962108439,v23xcyrt-id8cxo0dhlpkqu9a,81928567
|
||
2023-04-06 03:14:03,250A51238635004 13962108439@139.com,石峰,13962108439,lta1q52b-t07etgiqfgxq90bt,81041147
|
||
|
||
## 企业信息
|
||
|
||
v23xcyrt-id8cxo0dhlpkqu9a,上海众传信息科技有限公司 200A9992007369685
|
||
lta1q52b-t07etgiqfgxq90bt,上海众传信息科技有限公司(园区) 250A51238635004 问题单
|
||
|
||
## 工单号
|
||
|
||
试商用工单:250A230309395479001
|
||
|
||
## 发到 IAM 请求参数
|
||
|
||
{
|
||
"role":" 企业 ",
|
||
"phone":"13962108439",
|
||
"source":"IBS",
|
||
"userName":"13962108439cmcc",
|
||
"department":" 企业 ",
|
||
"email":"13962108439@139.com",
|
||
"tenant":" 企业 "
|
||
}
|
||
|
||
## 其他
|
||
|
||
private String epConfig = EnterpriseConfigEnum.NOTCONFIG.getCode();//企业配置状态
|
||
|
||
com.cmcc.cdn.platform.selfservice.enums.EnterpriseConfigEnum
|
||
|
||
com.cmcc.cdn.platform.selfservice.service.impl.EnterpriseServiceImpl#checkMobileAndEmail
|
||
|
||
# 复现
|
||
|
||

|
||
|
||

|
||
|
||
# 关键代码
|
||
|
||
```java
|
||
com.cmcc.cdn.platform.selfservice.service.impl.EnterpriseServiceImpl#checkMobileAndEmail
|
||
```
|
||
|
||
# 问题总结
|
||
|
||
目前根本问题是客户在第一次开户之后进行了手机号和邮箱的修改,当客户进行第二次开户的时候,我们通过了第一次的手机号邮箱的校验,这时候在 iam 系统是无法通过用户唯一的校验的,导致客户出现用户已存在的报错。
|
||
|
||
临时的解决方案,需客户提供一个系统中不存在的手机号,通过更改试用单的联系方式二次触发。
|
||
|
||
需要处理的表:preorder_info(ec_number)、user(phone)、enterprise_info(contact_phone、mobile_encrypt)
|
||
|
||
> contact_phone 的加密方式可参考:
|
||
>
|
||
> com.cmcc.cdn.platform.common.encryption.DESUtils#encrypt(java.lang.String, java.lang.String)
|
||
|
||
但是也要在 user 表中有相应的匹配,因为在 iam 通过后会更新 user 表中的信息。代码如下
|
||
|
||
```java
|
||
json = JSONObject.parseObject(json.getString("data"));
|
||
json.put("url", json.getString("url"));
|
||
json.put("verCode", json.getString("verCode"));
|
||
User user = userService.findByMobileAndRoleNotInAdmin(vo.getContactPhone());
|
||
user.setUserCode(json.getString("userCode"));
|
||
user.setUserAccount(vo.getContactPhone() + "cmcc"); // 登录名
|
||
userRepository.save(user);
|
||
```
|