Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica-cloud-account
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
com.pica.cloud.account
pica-cloud-account
提交
b78b8f97
提交
b78b8f97
编写于
6月 26, 2022
作者:
Peijun.zhao
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/dev-test-all' into dev-test-all
上级
a51feb9e
bd972e40
流水线
#47880
已失败 于阶段
变更
10
流水线
1
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
346 行增加
和
3 行删除
+346
-3
RegisterClient.java
...com/pica/cloud/account/account/client/RegisterClient.java
+6
-0
HospitalSaasUserReq.java
...cloud/account/account/common/req/HospitalSaasUserReq.java
+138
-0
AccountController.java
.../account/account/server/controller/AccountController.java
+2
-2
HospitalSaasUserController.java
...account/server/controller/HospitalSaasUserController.java
+40
-0
LoginController.java
...ud/account/account/server/controller/LoginController.java
+43
-0
HospitalSaasUserReq.java
...cloud/account/account/server/req/HospitalSaasUserReq.java
+28
-0
LoginService.java
...ca/cloud/account/account/server/service/LoginService.java
+7
-0
HospitalSaasUserServiceImpl.java
...ount/server/service/impl/HospitalSaasUserServiceImpl.java
+0
-1
LoginServiceImpl.java
...account/account/server/service/impl/LoginServiceImpl.java
+39
-0
HospitalSaasUserServiceTest.java
...t/account/server/service/HospitalSaasUserServiceTest.java
+43
-0
未找到文件。
client/src/main/java/com/pica/cloud/account/account/client/RegisterClient.java
浏览文件 @
b78b8f97
...
...
@@ -37,4 +37,10 @@ public interface RegisterClient {
@PostMapping
(
"/account/account/login-register/v1"
)
PicaResponse
<
LoginResult
>
loginRegister
(
@RequestBody
EncryptEntity
entity
);
@PostMapping
(
"/account/saas/hospital/registerV2"
)
PicaResponse
<
Integer
>
registerV2
(
@RequestBody
HospitalSaasUserReq
req
,
@RequestHeader
(
value
=
"token"
)
String
token
);
@PostMapping
(
"/account/saas/hospital/upsertV2"
)
PicaResponse
<
Integer
>
upsertV2
(
@RequestBody
HospitalSaasUserReq
req
,
@RequestHeader
(
value
=
"token"
)
String
token
);
}
\ No newline at end of file
common/src/main/java/com/pica/cloud/account/account/common/req/HospitalSaasUserReq.java
0 → 100644
浏览文件 @
b78b8f97
// Copyright 2016-2101 Pica.
package
com
.
pica
.
cloud
.
account
.
account
.
common
.
req
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.util.List
;
/**
* @Author qinwh
* @Date 2022/3/1 10:45
*/
@ApiModel
public
class
HospitalSaasUserReq
{
@ApiModelProperty
(
"人员id"
)
private
Long
id
;
@ApiModelProperty
(
"姓名"
)
private
String
name
;
@ApiModelProperty
(
"机构id"
)
private
Integer
hospitalId
;
@ApiModelProperty
(
"机构id"
)
private
String
hospitalName
;
@ApiModelProperty
(
"手机号"
)
private
String
mobile
;
@ApiModelProperty
(
"密码"
)
private
String
password
;
@ApiModelProperty
(
"备注"
)
private
String
comment
;
@ApiModelProperty
(
"角色id 0 无角色 1 主管理员 2 管理员 3 saas系统管理员 4 saas用户"
)
private
List
<
Long
>
roleId
;
@ApiModelProperty
(
"产品类型 1.云鹊医 2.云鹊健康 3.直播 4.crm(saas注册固定写死为crm)"
)
private
Integer
productType
;
@ApiModelProperty
(
"资源类型 1表示安卓,2表示ios,3表示web,4表示H5登录,5表示admin后台 6.SAAS"
)
private
Integer
sourceType
;
@ApiModelProperty
(
"登录来源 0:运营平台 1:saas"
)
private
Integer
loginFlag
=
0
;
public
Long
getId
()
{
return
id
;
}
public
void
setId
(
Long
id
)
{
this
.
id
=
id
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
Integer
getHospitalId
()
{
return
hospitalId
;
}
public
void
setHospitalId
(
Integer
hospitalId
)
{
this
.
hospitalId
=
hospitalId
;
}
public
String
getHospitalName
()
{
return
hospitalName
;
}
public
void
setHospitalName
(
String
hospitalName
)
{
this
.
hospitalName
=
hospitalName
;
}
public
String
getMobile
()
{
return
mobile
;
}
public
void
setMobile
(
String
mobile
)
{
this
.
mobile
=
mobile
;
}
public
String
getPassword
()
{
return
password
;
}
public
void
setPassword
(
String
password
)
{
this
.
password
=
password
;
}
public
String
getComment
()
{
return
comment
;
}
public
void
setComment
(
String
comment
)
{
this
.
comment
=
comment
;
}
public
List
<
Long
>
getRoleId
()
{
return
roleId
;
}
public
void
setRoleId
(
List
<
Long
>
roleId
)
{
this
.
roleId
=
roleId
;
}
public
Integer
getProductType
()
{
return
productType
;
}
public
void
setProductType
(
Integer
productType
)
{
this
.
productType
=
productType
;
}
public
Integer
getSourceType
()
{
return
sourceType
;
}
public
void
setSourceType
(
Integer
sourceType
)
{
this
.
sourceType
=
sourceType
;
}
public
Integer
getLoginFlag
()
{
return
loginFlag
;
}
public
void
setLoginFlag
(
Integer
loginFlag
)
{
this
.
loginFlag
=
loginFlag
;
}
}
server/src/main/java/com/pica/cloud/account/account/server/controller/AccountController.java
浏览文件 @
b78b8f97
...
...
@@ -469,7 +469,7 @@ public class AccountController extends AccountBaseController {
//手机格式校验
p
rivate
void
checkMobilePhone
(
String
mobilePhone
)
{
p
ublic
void
checkMobilePhone
(
String
mobilePhone
)
{
if
(
StringUtils
.
isBlank
(
mobilePhone
)
||
!
ValidateUtils
.
isMobile
(
mobilePhone
))
{
throw
new
PicaException
(
PicaResultCode
.
PARAM_IS_INVALID
.
code
(),
"请输入正确的手机号"
);
}
...
...
@@ -482,7 +482,7 @@ public class AccountController extends AccountBaseController {
}
//校验验证码
p
rivate
void
checkAuthCode
(
AccountReq
req
)
{
p
ublic
void
checkAuthCode
(
AccountReq
req
)
{
String
flag
=
StringUtils
.
isBlank
(
req
.
getFlag
())
?
"0"
:
req
.
getFlag
();
if
(
StringUtils
.
isBlank
(
req
.
getAuthCode
()))
{
...
...
server/src/main/java/com/pica/cloud/account/account/server/controller/HospitalSaasUserController.java
浏览文件 @
b78b8f97
...
...
@@ -12,6 +12,7 @@ import com.pica.cloud.account.account.server.service.HospitalSaasRoleService;
import
com.pica.cloud.account.account.server.service.HospitalSaasUserService
;
import
com.pica.cloud.foundation.entity.PicaResponse
;
import
com.pica.cloud.foundation.service.starter.interceptor.EnabledLoginValidate
;
import
com.pica.cloud.foundation.utils.entity.PicaUser
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.slf4j.Logger
;
...
...
@@ -39,9 +40,30 @@ public class HospitalSaasUserController extends AccountBaseController {
@EnabledLoginValidate
public
PicaResponse
<
Integer
>
register
(
@RequestBody
HospitalSaasUserReq
req
,
@RequestHeader
(
"token"
)
String
token
)
{
logger
.
info
(
"register: url:/saas/hospital/register. start: {}"
,
JSON
.
toJSONString
(
req
));
req
.
checkInsertParams
();
return
PicaResponse
.
toResponse
(
hospitalSaasUserService
.
register
(
req
,
super
.
fetchPicaUser
()));
}
@ApiOperation
(
"机构saas平台人员注册 0失败 1成功 (密码可为空)"
)
@PostMapping
(
value
=
"/hospital/registerV2"
)
@EnabledLoginValidate
public
PicaResponse
<
Integer
>
registerV2
(
@RequestBody
HospitalSaasUserReq
req
,
@RequestHeader
(
"token"
)
String
token
)
{
logger
.
info
(
"register: url:/saas/hospital/registerV2. start: {}"
,
JSON
.
toJSONString
(
req
));
req
.
checkInsertParamsNoPassWord
();
PicaUser
user
=
new
PicaUser
();
try
{
PicaUser
tokenUser
=
fetchPicaUser
();
if
(
null
!=
tokenUser
&&
null
!=
tokenUser
.
getId
())
{
user
=
tokenUser
;
}
}
catch
(
Exception
e
)
{
logger
.
info
(
"registerV2 token异常"
,
e
);
user
.
setId
(
0
);
}
return
PicaResponse
.
toResponse
(
hospitalSaasUserService
.
register
(
req
,
user
));
}
@ApiOperation
(
"机构saas平台人员更新 0失败 1成功"
)
@PostMapping
(
value
=
"/hospital/upsert"
)
@EnabledLoginValidate
...
...
@@ -50,6 +72,24 @@ public class HospitalSaasUserController extends AccountBaseController {
return
PicaResponse
.
toResponse
(
hospitalSaasUserService
.
upsert
(
req
,
super
.
fetchPicaUser
()));
}
@ApiOperation
(
"机构saas平台人员更新 0失败 1成功"
)
@PostMapping
(
value
=
"/hospital/upsertV2"
)
@EnabledLoginValidate
public
PicaResponse
<
Integer
>
upsertV2
(
@RequestBody
HospitalSaasUserReq
req
,
@RequestHeader
(
"token"
)
String
token
)
{
logger
.
info
(
"upsert: url:/saas/hospital/upsertV2. start: {}"
,
JSON
.
toJSONString
(
req
));
PicaUser
user
=
new
PicaUser
();
try
{
PicaUser
tokenUser
=
fetchPicaUser
();
if
(
null
!=
tokenUser
&&
null
!=
tokenUser
.
getId
())
{
user
=
tokenUser
;
}
}
catch
(
Exception
e
)
{
logger
.
info
(
"registerV2 token异常"
,
e
);
user
.
setId
(
0
);
}
return
PicaResponse
.
toResponse
(
hospitalSaasUserService
.
upsert
(
req
,
user
));
}
@ApiOperation
(
"机构saas平台人员列表查询"
)
@PostMapping
(
value
=
"/hospital/list"
)
@EnabledLoginValidate
...
...
server/src/main/java/com/pica/cloud/account/account/server/controller/LoginController.java
浏览文件 @
b78b8f97
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
controller
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.pica.cloud.account.account.server.entity.AesBean.AesAuthCodeReq
;
import
com.pica.cloud.account.account.server.entity.*
;
...
...
@@ -9,6 +10,7 @@ import com.pica.cloud.account.account.server.enums.SourceTypeEnum;
import
com.pica.cloud.account.account.server.exception.AccountException
;
import
com.pica.cloud.account.account.server.log.AccountLogEntityUtils
;
import
com.pica.cloud.account.account.server.log.AccountLogUtils
;
import
com.pica.cloud.account.account.server.req.AccountReq
;
import
com.pica.cloud.account.account.server.req.BaseRequest
;
import
com.pica.cloud.account.account.server.req.OneClickLoginReq
;
import
com.pica.cloud.account.account.server.service.CaptchaService
;
...
...
@@ -36,6 +38,7 @@ import org.slf4j.LoggerFactory;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
java.util.Map
;
@Api
(
description
=
"登录资源"
)
...
...
@@ -66,6 +69,9 @@ public class LoginController extends AccountBaseController {
@Autowired
private
CaptchaService
captchaService
;
@Resource
private
AccountController
accountController
;
/**
* 密码登录接口(app、H5、web)
*
...
...
@@ -474,4 +480,41 @@ public class LoginController extends AccountBaseController {
SaasLoginResult
login
=
loginService
.
saasLogin
(
request
);
return
PicaResponse
.
toResponse
(
login
);
}
@ApiOperation
(
"saas机构管理平台验证码登录接口"
)
@PostMapping
(
"/saasLoginByAuthCode"
)
public
PicaResponse
<
SaasLoginResult
>
saasLoginByAuthCode
(
@RequestBody
SaasLoginReq
authCodeReq
)
throws
Exception
{
EncryptEntity
entity
=
new
EncryptEntity
();
entity
.
setKey
(
authCodeReq
.
getKey
());
entity
.
setContent
(
authCodeReq
.
getContent
());
logger
.
info
(
"saasLoginByAuthCode 验证码登陆接口参数:{}"
,
JSON
.
toJSONString
(
entity
));
BaseRequest
request
=
CryptoUtil
.
decrypt
(
entity
,
BaseRequest
.
class
);
logger
.
info
(
"saasLoginByAuthCode 解密之后的数据request:{}"
,
JSON
.
toJSONString
(
request
));
request
.
setProductType
(
super
.
getProductType
());
Integer
sourceType
=
super
.
getSourceType
();
request
.
setSourceType
(
sourceType
==
null
?
0
:
sourceType
);
request
.
setLoginIp
(
super
.
getIpAddr
());
request
.
setUserTokenTourist
(
super
.
getUserTokenTourist
());
AccountUtils
.
checkMobilePhone
(
request
.
getMobile
());
try
{
//校验验证码
accountController
.
checkMobilePhone
(
request
.
getMobile
());
AccountReq
accountReq
=
new
AccountReq
();
accountReq
.
setMobilePhone
(
request
.
getMobile
());
accountReq
.
setFlag
(
"0"
);
accountReq
.
setAuthCode
(
request
.
getAuthCode
());
accountController
.
checkAuthCode
(
accountReq
);
}
catch
(
PicaException
e
)
{
logger
.
info
(
"saasLoginByAuthCode 短信验证失败"
);
return
PicaResponse
.
toResponse
(
null
,
e
.
getCode
(),
e
.
getMessage
());
}
catch
(
Exception
e
)
{
logger
.
info
(
"saasLoginByAuthCode 短信验证失败"
);
return
PicaResponse
.
toResponse
(
null
,
PicaResultCode
.
DATA_EXCEPTION
.
code
(),
"短信校验异常"
);
}
SaasLoginResult
login
=
loginService
.
saasLoginByAuthCode
(
request
);
return
PicaResponse
.
toResponse
(
login
);
}
}
server/src/main/java/com/pica/cloud/account/account/server/req/HospitalSaasUserReq.java
浏览文件 @
b78b8f97
...
...
@@ -89,4 +89,32 @@ public class HospitalSaasUserReq {
}
}
public
void
checkInsertParamsNoPassWord
()
{
if
(
StringUtils
.
isBlank
(
this
.
mobile
))
{
throw
new
PicaWarnException
(
AccountExceptionEnum
.
PICA_NOT_EMPTY
.
getCode
(),
"手机号不能为空"
);
}
if
(
Objects
.
isNull
(
this
.
hospitalId
))
{
throw
new
PicaWarnException
(
AccountExceptionEnum
.
PICA_NOT_EMPTY
.
getCode
(),
"机构id不能为空"
);
}
if
(
StringUtils
.
isBlank
(
this
.
name
))
{
throw
new
PicaWarnException
(
AccountExceptionEnum
.
PICA_NOT_EMPTY
.
getCode
(),
"姓名不能为空"
);
}
if
(
this
.
name
.
length
()
>
16
)
{
throw
new
PicaWarnException
(
AccountExceptionEnum
.
PICA_NOT_EMPTY
.
getCode
(),
"姓名长度必须≤16字符!"
);
}
if
(!
ValidateUtils
.
isMobile
(
this
.
mobile
))
{
throw
new
PicaWarnException
(
AccountExceptionEnum
.
PICA_NOT_EMPTY
.
getCode
(),
"手机号格式不正确!"
);
}
if
(
null
==
this
.
productType
)
{
throw
new
PicaWarnException
(
AccountExceptionEnum
.
PICA_NOT_EMPTY
.
getCode
(),
"产品类型不能为空!"
);
}
if
(
null
==
this
.
sourceType
)
{
throw
new
PicaWarnException
(
AccountExceptionEnum
.
PICA_NOT_EMPTY
.
getCode
(),
"资源类型不能为空!"
);
}
if
(
Objects
.
nonNull
(
this
.
comment
)
&&
this
.
comment
.
length
()
>
100
)
{
throw
new
PicaWarnException
(
AccountExceptionEnum
.
PICA_NOT_EMPTY
.
getCode
(),
"备注长度须≤100字符"
);
}
}
}
server/src/main/java/com/pica/cloud/account/account/server/service/LoginService.java
浏览文件 @
b78b8f97
...
...
@@ -112,4 +112,11 @@ public interface LoginService {
*/
SaasLoginResult
saasLogin
(
BaseRequest
request
);
/***
* saas 验证码登录
* @param request
* @return
*/
SaasLoginResult
saasLoginByAuthCode
(
BaseRequest
request
);
}
server/src/main/java/com/pica/cloud/account/account/server/service/impl/HospitalSaasUserServiceImpl.java
浏览文件 @
b78b8f97
...
...
@@ -84,7 +84,6 @@ public class HospitalSaasUserServiceImpl implements HospitalSaasUserService {
@Override
@Transactional
public
int
register
(
HospitalSaasUserReq
req
,
PicaUser
picaUser
)
{
req
.
checkInsertParams
();
if
(
req
.
getRoleId
().
contains
(
SaasRoleEnum
.
SAAS_MAIN_ADMIN
.
getCode
()))
{
PermissionDoctorRole
existRole
=
doctorRoleMapper
.
selectByHospitalIdRoleId
(
req
.
getHospitalId
(),
SaasRoleEnum
.
SAAS_MAIN_ADMIN
.
getCode
().
intValue
());
if
(
existRole
!=
null
)
{
...
...
server/src/main/java/com/pica/cloud/account/account/server/service/impl/LoginServiceImpl.java
浏览文件 @
b78b8f97
...
...
@@ -1229,6 +1229,45 @@ public class LoginServiceImpl implements LoginService {
}
}
@Override
public
SaasLoginResult
saasLoginByAuthCode
(
BaseRequest
request
)
{
//接入新旭事务一致性
String
batchNo
=
IntactUtils
.
getUUID
();
intactUtil
.
sendIntact
(
batchNo
,
"login"
,
com
.
pica
.
cloud
.
foundation
.
completeness
.
contract
.
constants
.
CommonConstants
.
INTACT_CONTENT_LOG_STATUS_1
,
"request:"
+
JSON
.
toJSONString
(
request
));
String
mobile
=
request
.
getMobile
();
Integer
sourceType
=
request
.
getSourceType
();
String
encrypt
=
AESUtil
.
encryptV0
(
mobile
);
AccountInfoEntity
accountInfoEntity
=
accountInfoDetailMapper
.
selectByMobile
(
encrypt
);
logger
.
info
(
"bizType:{}, account not null:{}"
,
request
.
getBizType
(),
accountInfoEntity
!=
null
);
if
(
accountInfoEntity
!=
null
)
{
intactUtil
.
sendIntact
(
batchNo
,
"login"
,
com
.
pica
.
cloud
.
foundation
.
completeness
.
contract
.
constants
.
CommonConstants
.
INTACT_CONTENT_LOG_STATUS_3
,
"接下来调用pwdLoginCorrect"
);
return
pwdSaaSLoginCorrect
(
request
,
mobile
,
encrypt
,
accountInfoEntity
);
}
else
{
if
(
null
!=
request
.
getBizType
()
&&
request
.
getBizType
().
equals
(
1
))
{
if
(
sourceType
!=
null
&&
SourceTypeEnum
.
H5
.
getCode
().
equals
(
sourceType
))
{
intactUtil
.
sendIntact
(
batchNo
,
"login"
,
com
.
pica
.
cloud
.
foundation
.
completeness
.
contract
.
constants
.
CommonConstants
.
INTACT_CONTENT_LOG_STATUS_3
,
"该手机号尚未设置密码,设置密码请前往云鹊医APP,或使用其他方式登录。"
);
throw
new
PicaWarnException
(
AccountExceptionEnum
.
PICA_MOBILE_NOT_REGIST_H5
.
getCode
(),
AccountExceptionEnum
.
PICA_MOBILE_NOT_REGIST_H5
.
getMessage
());
}
else
{
// 新版-未注册
intactUtil
.
sendIntact
(
batchNo
,
"login"
,
com
.
pica
.
cloud
.
foundation
.
completeness
.
contract
.
constants
.
CommonConstants
.
INTACT_CONTENT_LOG_STATUS_3
,
"该手机号{mobile}尚未设置密码,请先设置密码。"
);
throw
new
PicaException
(
AccountExceptionEnum
.
PICA_PASSWORD_RULE_ERROR
.
getCode
(),
AccountExceptionEnum
.
PICA_PASSWORD_RULE_ERROR
.
getMessage
()
.
replace
(
"{mobile}"
,
mobile
));
}
}
else
{
intactUtil
.
sendIntact
(
batchNo
,
"login"
,
com
.
pica
.
cloud
.
foundation
.
completeness
.
contract
.
constants
.
CommonConstants
.
INTACT_CONTENT_LOG_STATUS_3
,
"未注册,请先注册"
);
throw
new
PicaException
(
AccountExceptionEnum
.
PICA_NOT_REGISTER
.
getCode
(),
AccountExceptionEnum
.
PICA_NOT_REGISTER
.
getMessage
());
}
}
}
private
SaasLoginResult
pwdSaaSLoginCorrect
(
BaseRequest
request
,
String
mobile
,
String
encrypt
,
AccountInfoEntity
accountInfoEntity
)
{
//接入新旭事务一致性
String
batchNo
=
IntactUtils
.
getUUID
();
...
...
server/src/test/java/com/pica/cloud/account/account/server/service/HospitalSaasUserServiceTest.java
0 → 100644
浏览文件 @
b78b8f97
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
service
;
import
com.alibaba.fastjson.JSON
;
import
com.pica.cloud.account.account.server.App
;
import
com.pica.cloud.account.account.server.req.HospitalSaasUserReq
;
import
com.pica.cloud.foundation.utils.entity.PicaUser
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
javax.annotation.Resource
;
import
static
org
.
junit
.
Assert
.*;
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
(
classes
=
App
.
class
)
public
class
HospitalSaasUserServiceTest
{
@Resource
private
HospitalSaasUserService
hospitalSaasUserService
;
@Test
public
void
register
()
{
PicaUser
picaUser
=
new
PicaUser
();
picaUser
.
setId
(
618
);
picaUser
.
setName
(
"江陈"
);
HospitalSaasUserReq
baseRequest
=
new
HospitalSaasUserReq
();
baseRequest
=
JSON
.
parseObject
(
"{\n"
+
" \"hospitalId\": 36471,\n"
+
" \"hospitalName\": \"中国人民解放军第422医院\",\n"
+
" \"loginFlag\": 0,\n"
+
" \"mobile\": \"17521270004\",\n"
+
" \"name\": \"王汉强\",\n"
+
" \"productType\": 4,\n"
+
" \"roleId\": [\n"
+
" 4\n"
+
" ],\n"
+
" \"sourceType\": 7\n"
+
"}"
,
HospitalSaasUserReq
.
class
);
int
ret
=
hospitalSaasUserService
.
register
(
baseRequest
,
picaUser
);
System
.
out
.
println
(
ret
);
}
}
\ No newline at end of file
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录