Commit 5429833e by zhu.zewen

优化云签接口

parent 5d131f57
......@@ -22,6 +22,8 @@ import javax.annotation.Resource;
import java.time.LocalDateTime;
import static com.jmai.sys.AbstractService.nextId;
@Slf4j
@Component
public class CloudsignService {
......@@ -106,7 +108,7 @@ public class CloudsignService {
/**
* PIN码登录
*/
public LoginByPinResponse loginByPin(PinLoginRequest request){
public LoginByPinResponse loginByPin(LoginByPinRequest request){
request.setLoginType(1);
// 自动填充业务参数
if (cloudSignProperties.getTestEnabled()) {
......@@ -459,11 +461,16 @@ public class CloudsignService {
LocalDateTime expiryTime = getExpiryTimeFromStatus(encryptedToken);
cloudSignToken.setExpiryTime(expiryTime);
cloudSignToken.setStatus(1); // 设置为有效状态
// 保存到数据库
// 先尝试删除旧的令牌记录(如果有)
cloudSignTokenMapper.delete(Wrappers.<CloudSignToken>lambdaUpdate()
.eq(CloudSignToken::getUserId, user.getUserId()));
cloudSignTokenMapper.update(null, Wrappers.lambdaUpdate(CloudSignToken.class)
.eq(CloudSignToken::getWorkNo, user.getWorkNo())
.set(CloudSignToken::getUpdateBy, SpringContextUtils.getUserId())
.set(CloudSignToken::getUpdateTime, LocalDateTime.now())
.set(CloudSignToken::getDelFlag, 1)
.setSql("workNo ='" + user.getWorkNo() + ":" + nextId() + "'")
);
// 插入新的令牌记录
cloudSignTokenMapper.insert(cloudSignToken);
}
......
......@@ -6,7 +6,7 @@ import lombok.Data;
@Data
@ApiModel(value = "PinLoginRequest", description = "PIN码登录请求参数")
public class PinLoginRequest {
public class LoginByPinRequest {
@ApiModelProperty(value = "深圳市卫生计生组织机构代码,每个医院均有独立编码", hidden = true)
private String businessOrgCode;
......
......@@ -39,8 +39,6 @@ public class CloudSignController extends AbstractService {
@Resource
private CloudSignTokenMapper cloudSignTokenMapper;
@PostMapping("/checkTokenValid")
@ApiOperation(value = "检查当前用户令牌有效性")
public ResponseData<Void> checkTokenValid() {
......@@ -50,17 +48,20 @@ public class CloudSignController extends AbstractService {
@PostMapping("/loginByPin")
@ApiOperation(value = "PIN码登录")
public ResponseData<LoginByPinResponse> loginByPin(@RequestBody PinLoginRequest pinLoginRequest) {
public ResponseData<LoginByPinResponse> loginByPin(@RequestBody LoginByPinRequest req) {
String workNo = SpringContextUtils.getWorkNo();
if (ObjectUtil.isEmpty(workNo)) {
throw new ServiceException("当前用户工号为空");
}
pinLoginRequest.setRelBizNo(workNo);
pinLoginRequest.setUserEncodePin(pinLoginRequest.getUserEncodePin());
req.setRelBizNo(workNo);
req.setUserEncodePin(req.getUserEncodePin());
// 现在业务参数和测试环境配置会在服务层自动处理
LoginByPinResponse pinLogin = cloudsignService.loginByPin(pinLoginRequest);
LoginByPinResponse pinLogin = cloudsignService.loginByPin(req);
if (ObjectUtil.isNotEmpty(pinLogin) && ObjectUtil.isNotEmpty(pinLogin.getEventValue())) {
pinLogin.getEventValue().setEncryptedToken("【已保存】");
}
return ResponseData.ok(pinLogin);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment