提交 c90d493a 编写于 作者: minghao.wu's avatar minghao.wu

Merge branch 'release' into 'master'

Release

See merge request !76
流水线 #37936 已失败 于阶段
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<groupId>com.pica.cloud.account</groupId> <groupId>com.pica.cloud.account</groupId>
<artifactId>pica-cloud-account-client</artifactId> <artifactId>pica-cloud-account-client</artifactId>
<version>1.0.5.1</version> <version>1.0.5.3</version>
<name>pica-cloud-account-client</name> <name>pica-cloud-account-client</name>
<packaging>jar</packaging> <packaging>jar</packaging>
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<dependency> <dependency>
<groupId>com.pica.cloud.account</groupId> <groupId>com.pica.cloud.account</groupId>
<artifactId>pica-cloud-account-common</artifactId> <artifactId>pica-cloud-account-common</artifactId>
<version>1.0.2.0</version> <version>1.0.2.1</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
......
package com.pica.cloud.account.account.client; package com.pica.cloud.account.account.client;
import com.pica.cloud.account.account.common.dto.AccountWeChatInfoDto;
import com.pica.cloud.account.account.common.req.AccountInfoReq; import com.pica.cloud.account.account.common.req.AccountInfoReq;
import com.pica.cloud.account.account.common.resp.DoctorUnionResp; import com.pica.cloud.account.account.common.resp.DoctorUnionResp;
import com.pica.cloud.foundation.entity.PicaResponse; import com.pica.cloud.foundation.entity.PicaResponse;
...@@ -30,6 +31,9 @@ public interface AccountInfoClient { ...@@ -30,6 +31,9 @@ public interface AccountInfoClient {
@PostMapping("/account/info/wechat/batch") @PostMapping("/account/info/wechat/batch")
PicaResponse<Map<Integer,String>> getWechatInfoBatch(@RequestBody List<Integer> docIds); PicaResponse<Map<Integer,String>> getWechatInfoBatch(@RequestBody List<Integer> docIds);
@GetMapping("/account/info/wechat/info")
PicaResponse<AccountWeChatInfoDto> getWechatInfo(@RequestHeader(value = "token") String token);
@GetMapping(value = "/account/account/innerDoctors") @GetMapping(value = "/account/account/innerDoctors")
PicaResponse<List<Integer>> getDoctorsByInnerOrg(); PicaResponse<List<Integer>> getDoctorsByInnerOrg();
......
...@@ -17,4 +17,8 @@ public interface CaptchaClient { ...@@ -17,4 +17,8 @@ public interface CaptchaClient {
@RequestParam("captchaAnswer") String captchaAnswer); @RequestParam("captchaAnswer") String captchaAnswer);
@GetMapping("/account/account/check/authCode")
PicaResponse checkAuthCode(@RequestParam("mobilePhone") String mobilePhone,
@RequestParam("flag") String flag,
@RequestParam("authCode") String authCode);
} }
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<groupId>com.pica.cloud.account</groupId> <groupId>com.pica.cloud.account</groupId>
<artifactId>pica-cloud-account-common</artifactId> <artifactId>pica-cloud-account-common</artifactId>
<version>1.0.2.0</version> <version>1.0.2.1</version>
<name>pica-cloud-account-common</name> <name>pica-cloud-account-common</name>
<packaging>jar</packaging> <packaging>jar</packaging>
......
package com.pica.cloud.account.account.common.dto;
public class AccountWeChatInfoDto {
private Integer id;
private String unionid;
private String openid;
private String nickname;
private String headImgUrl;
private int sex;
private String country;
private String province;
private String city;
private String language;
private Integer type;
private String privilege;
private Integer subscribe;
private String remark;
private String groupid;
private String tagidList;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUnionid() {
return unionid;
}
public void setUnionid(String unionid) {
this.unionid = unionid;
}
public String getOpenid() {
return openid;
}
public void setOpenid(String openid) {
this.openid = openid;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getHeadImgUrl() {
return headImgUrl;
}
public void setHeadImgUrl(String headImgUrl) {
this.headImgUrl = headImgUrl;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public String getPrivilege() {
return privilege;
}
public void setPrivilege(String privilege) {
this.privilege = privilege;
}
public Integer getSubscribe() {
return subscribe;
}
public void setSubscribe(Integer subscribe) {
this.subscribe = subscribe;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getGroupid() {
return groupid;
}
public void setGroupid(String groupid) {
this.groupid = groupid;
}
public String getTagidList() {
return tagidList;
}
public void setTagidList(String tagidList) {
this.tagidList = tagidList;
}
}
...@@ -151,7 +151,7 @@ ...@@ -151,7 +151,7 @@
<dependency> <dependency>
<groupId>com.pica.cloud.account</groupId> <groupId>com.pica.cloud.account</groupId>
<artifactId>pica-cloud-account-common</artifactId> <artifactId>pica-cloud-account-common</artifactId>
<version>1.0.2.0</version> <version>1.0.2.1</version>
</dependency> </dependency>
<dependency> <dependency>
......
...@@ -23,6 +23,7 @@ import com.pica.cloud.foundation.entity.PicaException; ...@@ -23,6 +23,7 @@ import com.pica.cloud.foundation.entity.PicaException;
import com.pica.cloud.foundation.entity.PicaResponse; import com.pica.cloud.foundation.entity.PicaResponse;
import com.pica.cloud.foundation.entity.PicaResultCode; import com.pica.cloud.foundation.entity.PicaResultCode;
import com.pica.cloud.foundation.redis.ICacheClient; import com.pica.cloud.foundation.redis.ICacheClient;
import com.pica.cloud.foundation.service.starter.interceptor.EnabledLoginValidate;
import com.pica.cloud.foundation.utils.constants.CommonConstants; import com.pica.cloud.foundation.utils.constants.CommonConstants;
import com.pica.cloud.foundation.utils.entity.PicaUser; import com.pica.cloud.foundation.utils.entity.PicaUser;
import com.pica.cloud.foundation.utils.utils.CommonUtil; import com.pica.cloud.foundation.utils.utils.CommonUtil;
...@@ -113,6 +114,24 @@ public class AccountController extends AccountBaseController { ...@@ -113,6 +114,24 @@ public class AccountController extends AccountBaseController {
return PicaResponse.toResponse(); return PicaResponse.toResponse();
} }
@EnabledLoginValidate
@ApiOperation("校验登录用户的短信验证码")
@GetMapping("/check/H5/authCode/login")
public PicaResponse checkLoginAuthCode(@ApiParam(value = "验证码类型 0默认 1注册 2修改密码 4微信登录绑定手机 5修改手机 6重置密码 7患者招募提交问卷(效验") @RequestParam(value = "flag", defaultValue = "0") String flag,
@ApiParam(value = "短信验证码", required = true) @RequestParam("authCode") String authCode) {
if ("000000".equals(authCode)) {
return PicaResponse.toResponse();
}
PicaUser picaUser = fetchPicaUser();
String mobilePhone = EncryptUtils.decryptContent(picaUser.getMobile(), EncryptConstants.ENCRYPT_TYPE_MOBILE, EncryptConstants.ENCRYPT_DECRYPT_KEY);
AccountReq accountReq = new AccountReq();
accountReq.setMobilePhone(mobilePhone);
accountReq.setFlag(flag);
accountReq.setAuthCode(authCode);
this.checkAuthCode(accountReq);
return PicaResponse.toResponse();
}
@ApiOperation("微信登录") @ApiOperation("微信登录")
@PostMapping("/login/wechat") @PostMapping("/login/wechat")
......
package com.pica.cloud.account.account.server.controller; package com.pica.cloud.account.account.server.controller;
import com.pica.cloud.account.account.common.dto.AccountWeChatInfoDto;
import com.pica.cloud.account.account.common.req.AccountInfoReq; import com.pica.cloud.account.account.common.req.AccountInfoReq;
import com.pica.cloud.account.account.common.resp.DoctorUnionResp; import com.pica.cloud.account.account.common.resp.DoctorUnionResp;
import com.pica.cloud.account.account.server.entity.AccountWeChatInfoEntity; import com.pica.cloud.account.account.server.entity.AccountWeChatInfoEntity;
...@@ -55,10 +56,16 @@ public class AccountInfoController extends AccountBaseController { ...@@ -55,10 +56,16 @@ public class AccountInfoController extends AccountBaseController {
@GetMapping("/wechat") @GetMapping("/wechat")
@EnabledLoginValidate @EnabledLoginValidate
public PicaResponse<AccountWeChatInfoEntity> getWechatInfo(@RequestHeader String token) { public PicaResponse<AccountWeChatInfoEntity> getWechatInfo(@RequestHeader String token) {
return PicaResponse.toResponse(wechatService.getAccountWechatInfo(fetchPicaUser())); return PicaResponse.toResponse(wechatService.getAccountWechatInfo(fetchPicaUser()));
} }
@ApiOperation("获取医生wechat信息")
@GetMapping("/wechat/info")
@EnabledLoginValidate
public PicaResponse<AccountWeChatInfoDto> getWechatInfoDto(@RequestHeader String token) {
return PicaResponse.toResponse(wechatService.getAccountWechatInfoDto(fetchPicaUser()));
}
@ApiOperation("批量获取医生wechat信息") @ApiOperation("批量获取医生wechat信息")
@PostMapping("/wechat/batch") @PostMapping("/wechat/batch")
public PicaResponse<Map<Integer,String>> getWechatInfoBatch(@RequestBody List<Integer> docIds) { public PicaResponse<Map<Integer,String>> getWechatInfoBatch(@RequestBody List<Integer> docIds) {
......
package com.pica.cloud.account.account.server.controller; package com.pica.cloud.account.account.server.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.pica.cloud.account.account.server.entity.*;
import com.pica.cloud.account.account.server.entity.AesBean.AesAuthCodeReq; import com.pica.cloud.account.account.server.entity.AesBean.AesAuthCodeReq;
import com.pica.cloud.account.account.server.entity.*;
import com.pica.cloud.account.account.server.enums.AccountExceptionEnum; import com.pica.cloud.account.account.server.enums.AccountExceptionEnum;
import com.pica.cloud.account.account.server.enums.AccountTypeEnum; import com.pica.cloud.account.account.server.enums.AccountTypeEnum;
import com.pica.cloud.account.account.server.enums.SourceTypeEnum; import com.pica.cloud.account.account.server.enums.SourceTypeEnum;
...@@ -19,17 +18,14 @@ import com.pica.cloud.account.account.server.service.TokenService; ...@@ -19,17 +18,14 @@ import com.pica.cloud.account.account.server.service.TokenService;
import com.pica.cloud.account.account.server.util.AccountUtils; import com.pica.cloud.account.account.server.util.AccountUtils;
import com.pica.cloud.account.account.server.util.CryptoUtil; import com.pica.cloud.account.account.server.util.CryptoUtil;
import com.pica.cloud.account.account.server.util.RSAUtil; import com.pica.cloud.account.account.server.util.RSAUtil;
import com.pica.cloud.foundation.encryption.common.constants.EncryptConstants;
import com.pica.cloud.foundation.encryption.util.EncryptUtils;
import com.pica.cloud.foundation.entity.PicaException; import com.pica.cloud.foundation.entity.PicaException;
import com.pica.cloud.foundation.entity.PicaResponse; import com.pica.cloud.foundation.entity.PicaResponse;
import com.pica.cloud.foundation.entity.PicaResultCode; import com.pica.cloud.foundation.entity.PicaResultCode;
import com.pica.cloud.foundation.entity.PicaWarnException; import com.pica.cloud.foundation.entity.PicaWarnException;
import com.pica.cloud.foundation.redis.CacheClient; import com.pica.cloud.foundation.redis.CacheClient;
import com.pica.cloud.foundation.redis.ICacheClient; import com.pica.cloud.foundation.redis.ICacheClient;
import com.pica.cloud.foundation.service.starter.interceptor.EnabledLoginValidate;
import com.pica.cloud.foundation.utils.annotation.LoginPermission; import com.pica.cloud.foundation.utils.annotation.LoginPermission;
import com.pica.cloud.foundation.utils.entity.PicaUser;
import com.pica.cloud.foundation.utils.utils.StringUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.catalina.servlet4preview.http.HttpServletRequest; import org.apache.catalina.servlet4preview.http.HttpServletRequest;
...@@ -38,9 +34,7 @@ import org.slf4j.Logger; ...@@ -38,9 +34,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import springfox.documentation.spring.web.json.Json;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
@Api(description = "登录资源") @Api(description = "登录资源")
...@@ -439,4 +433,13 @@ public class LoginController extends AccountBaseController { ...@@ -439,4 +433,13 @@ public class LoginController extends AccountBaseController {
return PicaResponse.toResponse(login.getToken()); return PicaResponse.toResponse(login.getToken());
} }
@ApiOperation(value = "切换登录")
@PostMapping("/login/switch")
@EnabledLoginValidate
public PicaResponse<String> loginSwitch(@RequestBody EncryptEntity entity) throws Exception {
Map<String, Object> req = CryptoUtil.decrypt(entity, Map.class);
loginService.loginSwitch(super.getAccountUser(), super.getRedisClient().getToken(String.valueOf(req.get("token")), AccountUser.class));
return PicaResponse.toResponse();
}
} }
package com.pica.cloud.account.account.server.service; package com.pica.cloud.account.account.server.service;
import com.pica.cloud.account.account.server.entity.AccountUser;
import com.pica.cloud.account.account.server.entity.LogLoginAes; import com.pica.cloud.account.account.server.entity.LogLoginAes;
import com.pica.cloud.account.account.server.entity.LoginResult; import com.pica.cloud.account.account.server.entity.LoginResult;
import com.pica.cloud.account.account.server.entity.PICAPDoctor; import com.pica.cloud.account.account.server.entity.PICAPDoctor;
...@@ -11,6 +12,7 @@ import javax.servlet.http.HttpServletRequest; ...@@ -11,6 +12,7 @@ import javax.servlet.http.HttpServletRequest;
import java.util.Map; import java.util.Map;
import com.pica.cloud.account.account.server.req.OneClickLoginReq; import com.pica.cloud.account.account.server.req.OneClickLoginReq;
import com.pica.cloud.account.account.server.vo.OneClickLoginResultVo; import com.pica.cloud.account.account.server.vo.OneClickLoginResultVo;
import com.pica.cloud.foundation.utils.entity.PicaUser;
public interface LoginService { public interface LoginService {
/** /**
...@@ -101,4 +103,6 @@ public interface LoginService { ...@@ -101,4 +103,6 @@ public interface LoginService {
LoginResult loginQRCode(BaseRequest request); LoginResult loginQRCode(BaseRequest request);
void loginSwitch(AccountUser oldUser, AccountUser loginUser);
} }
package com.pica.cloud.account.account.server.service; package com.pica.cloud.account.account.server.service;
import com.pica.cloud.account.account.common.dto.AccountWeChatInfoDto;
import com.pica.cloud.account.account.common.resp.DoctorUnionResp; import com.pica.cloud.account.account.common.resp.DoctorUnionResp;
import com.pica.cloud.account.account.server.entity.AccountWeChatInfoEntity; import com.pica.cloud.account.account.server.entity.AccountWeChatInfoEntity;
import com.pica.cloud.foundation.utils.entity.PicaUser; import com.pica.cloud.foundation.utils.entity.PicaUser;
...@@ -11,6 +12,8 @@ public interface WechatService { ...@@ -11,6 +12,8 @@ public interface WechatService {
AccountWeChatInfoEntity getAccountWechatInfo(PicaUser user); AccountWeChatInfoEntity getAccountWechatInfo(PicaUser user);
AccountWeChatInfoDto getAccountWechatInfoDto(PicaUser user);
Map<Integer,String> getAccountWechatInfoBatch(List<Integer> docIds); Map<Integer,String> getAccountWechatInfoBatch(List<Integer> docIds);
DoctorUnionResp getDoctorByUnionid(String unionid); DoctorUnionResp getDoctorByUnionid(String unionid);
......
...@@ -12,6 +12,7 @@ import com.pica.cloud.account.account.server.entity.*; ...@@ -12,6 +12,7 @@ import com.pica.cloud.account.account.server.entity.*;
import com.pica.cloud.account.account.server.enums.AccountExceptionEnum; import com.pica.cloud.account.account.server.enums.AccountExceptionEnum;
import com.pica.cloud.account.account.server.enums.AccountTypeEnum; import com.pica.cloud.account.account.server.enums.AccountTypeEnum;
import com.pica.cloud.account.account.server.enums.SourceTypeEnum; 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.AccountLogEntityUtils;
import com.pica.cloud.account.account.server.log.AccountLogUtils; import com.pica.cloud.account.account.server.log.AccountLogUtils;
import com.pica.cloud.account.account.server.mapper.*; import com.pica.cloud.account.account.server.mapper.*;
...@@ -29,6 +30,7 @@ import com.pica.cloud.foundation.entity.PicaException; ...@@ -29,6 +30,7 @@ import com.pica.cloud.foundation.entity.PicaException;
import com.pica.cloud.foundation.entity.PicaResultCode; import com.pica.cloud.foundation.entity.PicaResultCode;
import com.pica.cloud.foundation.entity.PicaWarnException; import com.pica.cloud.foundation.entity.PicaWarnException;
import com.pica.cloud.foundation.redis.ICacheClient; import com.pica.cloud.foundation.redis.ICacheClient;
import com.pica.cloud.foundation.utils.entity.PicaUser;
import com.pica.cloud.foundation.utils.utils.StringUtil; import com.pica.cloud.foundation.utils.utils.StringUtil;
import com.pica.cloud.foundation.utils.utils.ValidateUtils; import com.pica.cloud.foundation.utils.utils.ValidateUtils;
import com.pica.cloud.patient.smartcontract.common.utils.HttpClientCloudUtils; import com.pica.cloud.patient.smartcontract.common.utils.HttpClientCloudUtils;
...@@ -47,6 +49,7 @@ import java.security.PublicKey; ...@@ -47,6 +49,7 @@ import java.security.PublicKey;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Objects;
@Service @Service
public class LoginServiceImpl implements LoginService { public class LoginServiceImpl implements LoginService {
...@@ -1083,4 +1086,23 @@ public class LoginServiceImpl implements LoginService { ...@@ -1083,4 +1086,23 @@ public class LoginServiceImpl implements LoginService {
return logLoginAesMapper.insert(aes); return logLoginAesMapper.insert(aes);
} }
/**
*切换登录
*/
@Override
public void loginSwitch(AccountUser oldUser, AccountUser loginUser) {
if (Objects.isNull(loginUser)) {
throw new PicaException(PicaResultCode.LOGIN_FAILE);
}
tokenUtils.tokenContinueTime(loginUser.getToken(), oldUser.getLoginFrom(), 0);
//记录登录日志
LogLoginEntity entity = AccountLogEntityUtils.getLogLoginEntity(
Integer.valueOf(String.valueOf(loginUser.getAcctId())),
oldUser.getLoginPlatform(), oldUser.getLoginFrom(),
AccountTypeEnum.LOGIN_WE_CHAT.getCode(),
oldUser.getLoginIp(),
AccountTypeEnum.LOGIN_STATUS_SUCCESS.getCode(),
AccountTypeEnum.LOG_TYPE_LOGIN.getCode(), loginUser.getToken(), 1, oldUser.getUserTokenTourist());
picaLogUtils.info(entity);
}
} }
package com.pica.cloud.account.account.server.service.impl; package com.pica.cloud.account.account.server.service.impl;
import com.pica.cloud.account.account.common.dto.AccountWeChatInfoDto;
import com.pica.cloud.account.account.common.resp.DoctorUnionResp; import com.pica.cloud.account.account.common.resp.DoctorUnionResp;
import com.pica.cloud.account.account.server.entity.AccountUnionEntity; import com.pica.cloud.account.account.server.entity.AccountUnionEntity;
import com.pica.cloud.account.account.server.entity.AccountWeChatInfoEntity; import com.pica.cloud.account.account.server.entity.AccountWeChatInfoEntity;
...@@ -10,6 +11,7 @@ import com.pica.cloud.account.account.server.service.AccountUnionService; ...@@ -10,6 +11,7 @@ import com.pica.cloud.account.account.server.service.AccountUnionService;
import com.pica.cloud.account.account.server.service.WechatService; import com.pica.cloud.account.account.server.service.WechatService;
import com.pica.cloud.foundation.utils.entity.PicaUser; import com.pica.cloud.foundation.utils.entity.PicaUser;
import com.pica.cloud.foundation.utils.utils.StringUtil; import com.pica.cloud.foundation.utils.utils.StringUtil;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -44,6 +46,18 @@ public class WechatServiceImpl implements WechatService { ...@@ -44,6 +46,18 @@ public class WechatServiceImpl implements WechatService {
} }
} }
@Override
public AccountWeChatInfoDto getAccountWechatInfoDto(PicaUser user) {
AccountWeChatInfoEntity entity = getAccountWechatInfo(user);
AccountWeChatInfoDto dto = new AccountWeChatInfoDto();
try {
BeanUtils.copyProperties(dto, entity);
} catch (Exception ex) {
// ignore
}
return dto;
}
@Override @Override
public Map<Integer, String> getAccountWechatInfoBatch(List<Integer> docIds) { public Map<Integer, String> getAccountWechatInfoBatch(List<Integer> docIds) {
if(CollectionUtils.isEmpty(docIds)){ if(CollectionUtils.isEmpty(docIds)){
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册