提交 2e23ffa2 编写于 作者: wfy's avatar wfy

Merge branch 'dev-login0218' of...

Merge branch 'dev-login0218' of http://192.168.110.53/com.pica.cloud.account/pica-cloud-account into dev-login0218

# Conflicts:
#	server/pom.xml
#	server/src/main/java/com/pica/cloud/account/account/server/controller/LoginController.java
#	server/src/main/java/com/pica/cloud/account/account/server/service/LoginService.java
#	server/src/main/java/com/pica/cloud/account/account/server/service/impl/LoginServiceImpl.java
上级 aaef9dba
...@@ -217,7 +217,7 @@ public class LoginController extends AccountBaseController { ...@@ -217,7 +217,7 @@ public class LoginController extends AccountBaseController {
@ApiOperation(value = "app端手机号码一键登录") @ApiOperation(value = "app端手机号码一键登录")
@PostMapping("/login/one-click") @PostMapping("/login/one-click")
public PicaResponse<OneClickLoginResultVo> oneClickLogin(@RequestBody EncryptEntity entity) throws Exception { public PicaResponse<LoginResult> oneClickLogin(@RequestBody EncryptEntity entity) throws Exception {
OneClickLoginReq req = CryptoUtil.decrypt(entity, OneClickLoginReq.class); OneClickLoginReq req = CryptoUtil.decrypt(entity, OneClickLoginReq.class);
req.setType(super.getSourceType()); req.setType(super.getSourceType());
OneClickLoginResultVo oneClickLoginResultVo = loginService.oneClickLogin(req); OneClickLoginResultVo oneClickLoginResultVo = loginService.oneClickLogin(req);
......
...@@ -69,5 +69,5 @@ public interface LoginService { ...@@ -69,5 +69,5 @@ public interface LoginService {
*/ */
UnifiedVerificationResp preLoginValidate(BaseRequest request); UnifiedVerificationResp preLoginValidate(BaseRequest request);
OneClickLoginResultVo oneClickLogin(OneClickLoginReq req); LoginResult oneClickLogin(OneClickLoginReq req);
} }
...@@ -2,8 +2,6 @@ package com.pica.cloud.account.account.server.service.impl; ...@@ -2,8 +2,6 @@ package com.pica.cloud.account.account.server.service.impl;
import com.pica.cloud.account.account.server.constants.Constants; import com.pica.cloud.account.account.server.constants.Constants;
import com.alibaba.fastjson.JSONObject;
import com.aliyun.oss.internal.SignUtils;
import com.pica.cloud.account.account.server.entity.*; 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;
...@@ -11,18 +9,15 @@ import com.pica.cloud.account.account.server.enums.BizTypeRespEnum; ...@@ -11,18 +9,15 @@ import com.pica.cloud.account.account.server.enums.BizTypeRespEnum;
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.*;
import com.pica.cloud.account.account.server.model.OneClickProcessor;
import com.pica.cloud.account.account.server.req.BaseRequest; 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.req.OneClickLoginReq;
import com.pica.cloud.account.account.server.req.QueryMobileReq;
import com.pica.cloud.account.account.server.resp.UnifiedVerificationResp; import com.pica.cloud.account.account.server.resp.UnifiedVerificationResp;
import com.pica.cloud.account.account.server.service.DoctorService; import com.pica.cloud.account.account.server.service.DoctorService;
import com.pica.cloud.account.account.server.service.LoginService; import com.pica.cloud.account.account.server.service.LoginService;
import com.pica.cloud.account.account.server.service.RegisterService; import com.pica.cloud.account.account.server.service.RegisterService;
import com.pica.cloud.account.account.server.util.AESUtil; import com.pica.cloud.account.account.server.util.AESUtil;
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.HttpUtil;
import com.pica.cloud.account.account.server.util.MD5;
import com.pica.cloud.account.account.server.util.RSAUtil;
import com.pica.cloud.account.account.server.util.TokenUtils; import com.pica.cloud.account.account.server.util.TokenUtils;
import com.pica.cloud.account.account.server.util.WeChatUtils; import com.pica.cloud.account.account.server.util.WeChatUtils;
import com.pica.cloud.account.account.server.vo.OneClickLoginResultVo; import com.pica.cloud.account.account.server.vo.OneClickLoginResultVo;
...@@ -30,12 +25,8 @@ import com.pica.cloud.foundation.encryption.common.constants.EncryptConstants; ...@@ -30,12 +25,8 @@ import com.pica.cloud.foundation.encryption.common.constants.EncryptConstants;
import com.pica.cloud.foundation.encryption.util.EncryptUtils; 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.redis.ICacheClient; import com.pica.cloud.foundation.redis.ICacheClient;
import com.pica.cloud.foundation.utils.utils.HttpClientUtil;
import com.pica.cloud.foundation.utils.utils.ValidateUtils; import com.pica.cloud.foundation.utils.utils.ValidateUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.slf4j.Logger; 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;
...@@ -43,15 +34,11 @@ import org.springframework.beans.factory.annotation.Value; ...@@ -43,15 +34,11 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator;
import java.util.Map; import java.util.Map;
import static com.pica.cloud.account.account.server.util.AESUtil.privateKey;
@Service @Service
public class LoginServiceImpl implements LoginService { public class LoginServiceImpl implements LoginService {
...@@ -90,6 +77,9 @@ public class LoginServiceImpl implements LoginService { ...@@ -90,6 +77,9 @@ public class LoginServiceImpl implements LoginService {
@Autowired @Autowired
private ICacheClient redisClient; private ICacheClient redisClient;
@Autowired
private OneClickProcessor oneClickProcessor;
@Value("${doubleWritingMode}") @Value("${doubleWritingMode}")
private boolean doubleWritingMode; private boolean doubleWritingMode;
...@@ -107,11 +97,6 @@ public class LoginServiceImpl implements LoginService { ...@@ -107,11 +97,6 @@ public class LoginServiceImpl implements LoginService {
private static final String DEFAULT_DOCTOR_PICTURE_URL = "/File/doctor_default.png"; private static final String DEFAULT_DOCTOR_PICTURE_URL = "/File/doctor_default.png";
public static Map<String, String> PIC_TYPE_MAP = new HashMap(); public static Map<String, String> PIC_TYPE_MAP = new HashMap();
// 免密登录后台url
public static final String FLASH_LOGIN_URL = "https://api.253.com/open/flashsdk/mobile-query";
//创建应用时填入的rsa公钥对应的私钥字符串
public static final String privateKey = "";
static { static {
PIC_TYPE_MAP.put("jpg", "FFD8FF"); PIC_TYPE_MAP.put("jpg", "FFD8FF");
PIC_TYPE_MAP.put("jpeg", "FFD8FF"); PIC_TYPE_MAP.put("jpeg", "FFD8FF");
...@@ -475,60 +460,23 @@ public class LoginServiceImpl implements LoginService { ...@@ -475,60 +460,23 @@ public class LoginServiceImpl implements LoginService {
} }
@Override @Override
public OneClickLoginResultVo oneClickLogin(OneClickLoginReq req) { public LoginResult oneClickLogin(OneClickLoginReq req) {
OneClickLoginResultVo o = new OneClickLoginResultVo(); OneClickLoginResultVo o = new OneClickLoginResultVo();
//应用对应的闪验APPID String mobile = oneClickProcessor.tokenExchangeMobile(req.getToken(),req.getType());
String appId = ""; if(StringUtils.isBlank(mobile)){
//应用对应的闪验APPKEY
String appKey = "";
if(0 == req.getType()){
appId = "BQwEYJht";
appKey = "6KizWzXr";
}else{
appId = "XcdiWema";
appKey = "psIOYIa4";
} }
//手机号加解密方式 0 AES 1 RSA , 可以不传,不传则手机号解密直接使用AES解密 AccountInfoEntity accountInfoEntity = accountInfoDetailMapper.selectByMobile(AESUtil.encryptV0(mobile));
String encryptType = "0"; BaseRequest baseRequest = new BaseRequest();
//从SDK获取的token参数 if (accountInfoEntity == null) {
String token = req.getToken(); //说明是注册功能
try { accountUtils.checkRegisterMobilePhoneAndAuthCode(mobile, baseRequest.getFlag() + "", baseRequest.getAuthCode());
Map<String, String> params = new HashMap<String, String>(); return registerService.register(baseRequest);
params.put("token", token); } else {
params.put("appId", appId); //登录功能
params.put("encryptType", encryptType);//可以不传,不传则解密直接使用AES解密 accountUtils.checkMobilePhoneAndAuthCode(baseRequest.getMobile(), AccountTypeEnum.SYSCODE_TYPE_LOGIN.getCode() + "", baseRequest.getAuthCode());
params.put("sign", com.pica.cloud.account.account.server.util.SignUtils.getSign(params, appKey)); return processLogin(baseRequest, accountInfoEntity.getId(), AccountTypeEnum.LOGIN_CODE.getCode());
QueryMobileEntity queryMobileEntity = (QueryMobileEntity) HttpUtil.postForm(FLASH_LOGIN_URL,params,QueryMobileEntity.class);
if (null != queryMobileEntity) {
System.out.println("response:" + queryMobileEntity);
String code = queryMobileEntity.getCode(); //返回码 200000为成功
String message = queryMobileEntity.getMessage();//返回消息
Integer chargeStatus = queryMobileEntity.getChargeStatus(); //是否收费
o.setQueryMobileEntity(queryMobileEntity);
if ("200000".equals(code)) {
MobileDataEntity mobileDataEntity = queryMobileEntity.getData();
String mobile = mobileDataEntity.getMobileName();
if ("0".equals(encryptType)) {
String key = MD5.getMD5Code(appKey);
mobile = AESUtil.decrypt(mobile, key.substring(0, 16), key.substring(16));
} else if ("1".equals(encryptType)) {
mobile = RSAUtil.decryptByPrivateKeyForLongStr(mobile, privateKey);
}
System.out.println("mobile:" + mobile); //解密后的手机号码
queryMobileEntity.getData().setMobileName(mobile);
}
}
} catch (Exception e) {
e.printStackTrace();
} }
return o;
}
public static void main(String[] args) {
LoginServiceImpl l = new LoginServiceImpl();
OneClickLoginReq req = new OneClickLoginReq();
req.setToken("A1-zDemLfH-A4Wc4zBOlteP7t0AfGRUWhHUo3P0YWprN1Y8CpG6GHSOIdHyH0GmRCM_s6V_oD0g4qCWLhLVCgZG0hvfz32GPUmT7Y7eH5iZyT2QBoF34k1i2PCrXt6Gi8rDOutwTF_mx59g7SqBYQ_LEff7bUk4WkUcC3qij2L48atqf7KDCakIgN9O7Sk88WIgKMg6hi3MgJJfDtq5sdB3MRO48CYmJpejWDseSMAsr-k");
l.oneClickLogin(req);
} }
private String processDoctorAvatar(String avatar_image_url) { private String processDoctorAvatar(String avatar_image_url) {
......
...@@ -38,15 +38,13 @@ public class HttpUtil { ...@@ -38,15 +38,13 @@ public class HttpUtil {
public static Object postForm(String url, Map<String, String> params, Class clazz) throws IOException, URISyntaxException { public static Object postForm(String url, Map<String, String> params, Class clazz) throws IOException, URISyntaxException {
URIBuilder builder = new URIBuilder(url); URIBuilder builder = new URIBuilder(url);
if (params != null && params.size() > 0) { if (params != null && params.size() > 0) {
params.forEach((k,v) -> { params.forEach((k, v) -> {
builder.setParameter(k, v); builder.setParameter(k, v);
}); });
} }
HttpPost post = new HttpPost(builder.build()); HttpPost post = new HttpPost(builder.build());
CloseableHttpResponse resp = null; CloseableHttpResponse resp = null;
Object data; Object data;
try { try {
resp = hc.execute(post); resp = hc.execute(post);
...@@ -60,9 +58,7 @@ public class HttpUtil { ...@@ -60,9 +58,7 @@ public class HttpUtil {
logger.error(var12.getMessage()); logger.error(var12.getMessage());
} }
} }
} }
return data; return data;
} }
} }
...@@ -33,15 +33,15 @@ spring.jackson.date-format=yyyy-MM-dd HH:mm:ss ...@@ -33,15 +33,15 @@ spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8 spring.jackson.time-zone=GMT+8
#spring.jackson.default-property-inclusion=non_null #spring.jackson.default-property-inclusion=non_null
memcached.url=192.168.130.230:11211 memcached.url=192.168.130.230:11211
#微信登陆 #\u5FAE\u4FE1\u767B\u9646
weChatAppID=wx5103ed453ef2dbe8 weChatAppID=wx5103ed453ef2dbe8
weChatAppSecret=6faa9bef3302786c08b2baf278613f38 weChatAppSecret=6faa9bef3302786c08b2baf278613f38
#h5使用的云鹊医公众号 #h5\u4F7F\u7528\u7684\u4E91\u9E4A\u533B\u516C\u4F17\u53F7
weChatAppIDH5=wx08b383d002c73f26 weChatAppIDH5=wx08b383d002c73f26
weChatAppSecretH5=b3a6be25c9f62423b88a3d0611f060d1 weChatAppSecretH5=b3a6be25c9f62423b88a3d0611f060d1
weChatURL=https://api.weixin.qq.com/sns/userinfo? weChatURL=https://api.weixin.qq.com/sns/userinfo?
#是否开启双写模式,是否需要向p_doctor表写数据 #\u662F\u5426\u5F00\u542F\u53CC\u5199\u6A21\u5F0F\uFF0C\u662F\u5426\u9700\u8981\u5411p_doctor\u8868\u5199\u6570\u636E
doubleWritingMode=true doubleWritingMode=true
#rabbitmq settings #rabbitmq settings
...@@ -56,10 +56,10 @@ management.endpoint.health.show-details=always ...@@ -56,10 +56,10 @@ management.endpoint.health.show-details=always
# Job config begin # Job config begin
# 控制器地址:服务启动自动注册到控制器中 # \u63A7\u5236\u5668\u5730\u5740\uFF1A\u670D\u52A1\u542F\u52A8\u81EA\u52A8\u6CE8\u518C\u5230\u63A7\u5236\u5668\u4E2D
xxl.job.admin.addresses=http://192.168.110.124:7899/job xxl.job.admin.addresses=http://192.168.110.124:7899/job
#执行器命名规则job-exec-<申请Port> #\u6267\u884C\u5668\u547D\u540D\u89C4\u5219job-exec-<\u7533\u8BF7Port>
xxl.job.executor.appname=job-exec-7906 xxl.job.executor.appname=job-exec-7906
xxl.job.executor.ip= xxl.job.executor.ip=
xxl.job.executor.port=7906 xxl.job.executor.port=7906
...@@ -67,13 +67,10 @@ xxl.job.executor.port=7906 ...@@ -67,13 +67,10 @@ xxl.job.executor.port=7906
### xxl-job, access token ### xxl-job, access token
xxl.job.accessToken= xxl.job.accessToken=
### 确保改目录可写/opt/xxl-job-logs/jobhandler ### \u786E\u4FDD\u6539\u76EE\u5F55\u53EF\u5199/opt/xxl-job-logs/jobhandler
xxl.job.executor.logpath=/opt/xxl-job-logs/jobhandler xxl.job.executor.logpath=/opt/xxl-job-logs/jobhandler
### xxl-job log retention days ### xxl-job log retention days
xxl.job.executor.logretentiondays=-1 xxl.job.executor.logretentiondays=-1
pica.cloud.message.url=https://dev-sc.yunqueyi.com/message pica.cloud.message.url=https://dev-sc.yunqueyi.com/message
\ No newline at end of file
spring.profiles.active=dev spring.profiles.active=dev
\ No newline at end of file
# \u95EA\u9A8C\u4E00\u952E\u767B\u5F55\u914D\u7F6E
shanyan.url.mobilequery=https://api.253.com/open/flashsdk/mobile-query
shanyan.android.appId=BQwEYJht
shanyan.android.appKey=6KizWzXr
shanyan.ios.appId=XcdiWema
shanyan.ios.appKey=psIOYIa4
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册