记得上下班打卡 | git大法好,push需谨慎

Commit e92ced9b authored by 张国柄's avatar 张国柄

fix:php.api;

parent 1dd12941
...@@ -17,13 +17,7 @@ import java.util.List; ...@@ -17,13 +17,7 @@ import java.util.List;
* @author liquidnet * @author liquidnet
* @since 2021-05-10 * @since 2021-05-10
*/ */
public interface IAdamUserService extends IService<AdamUser> { public interface IAdamUserService {
// String queryUidByRedis(String mobile);
//
// String queryUidByRedis(String openId, String platform);
// AdamUserInfoVo queryByUid(String uid);
/** /**
* 手机号注册 * 手机号注册
......
...@@ -5,6 +5,11 @@ import org.springframework.util.LinkedMultiValueMap; ...@@ -5,6 +5,11 @@ import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap; import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.List;
import java.util.Map;
public class HttpUtil { public class HttpUtil {
/** /**
* get请求 * get请求
...@@ -140,4 +145,29 @@ public class HttpUtil { ...@@ -140,4 +145,29 @@ public class HttpUtil {
ResponseEntity<String> response = client.exchange(url, method, httpEntity, String.class); ResponseEntity<String> response = client.exchange(url, method, httpEntity, String.class);
return response.getBody(); return response.getBody();
} }
private static final String PHP_API_KEY = "R7tXY9smPQPG9Ku5yI0u6sfnlckmk04V";
public static String postToPhpApi(String url, MultiValueMap<String, String> params) {
params.add("sign", processForPhpApi(params).concat("&key=").concat(PHP_API_KEY).toUpperCase());
return post(url, params, null);
}
private static String processForPhpApi(MultiValueMap<String, String> map) {
StringBuilder sb = new StringBuilder();
for (Map.Entry<String, List<String>> entry : map.entrySet()) {
sb.append(entry.getKey()).append("=").append(entry.getValue().get(0)).append("&");
}
String targetStr = sb.substring(0, sb.length() - 1);
try {
targetStr = URLDecoder.decode(targetStr, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
targetStr = targetStr.replace("%3D", "=").replace("%26", "&");
return targetStr;
}
} }
...@@ -25,6 +25,7 @@ import lombok.extern.slf4j.Slf4j; ...@@ -25,6 +25,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;
import org.springframework.util.CollectionUtils;
import org.springframework.util.DigestUtils; import org.springframework.util.DigestUtils;
import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.LinkedMultiValueMap;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
...@@ -67,6 +68,11 @@ public class AdamLoginController { ...@@ -67,6 +68,11 @@ public class AdamLoginController {
@Autowired @Autowired
IAdamRdmService adamRdmService; IAdamRdmService adamRdmService;
private static final String PHP_API_SMS_CODE_SEND = "https://service.zhengzai.tv/smsCode";
private static final String PHP_API_SMS_CODE_VALID = "https://service.zhengzai.tv/smsValidation";
/*@ApiOperationSupport(order = 1) /*@ApiOperationSupport(order = 1)
@ApiOperation(value = "手机号密码登录") @ApiOperation(value = "手机号密码登录")
@ApiImplicitParams({ @ApiImplicitParams({
...@@ -96,18 +102,23 @@ public class AdamLoginController { ...@@ -96,18 +102,23 @@ public class AdamLoginController {
LinkedMultiValueMap<String, String> headersMap = new LinkedMultiValueMap<>(); LinkedMultiValueMap<String, String> headersMap = new LinkedMultiValueMap<>();
headersMap.add("token", null); headersMap.add("token", null);
String respStr = null;
try { try {
// TODO: 2021/5/12 respStr = HttpUtil.post(PHP_API_SMS_CODE_SEND, paramsMap, headersMap);
String respStr = HttpUtil.post("https://service.zhengzai.tv/smsCode", paramsMap, headersMap); log.debug("###PHP.API[{}].RESP[{}]", PHP_API_SMS_CODE_SEND, respStr);
log.info("###PHP.API[{}].RESP[{}]", "https://service.zhengzai.tv/smsCode", respStr);
// Map respMap = JsonUtils.fromJson(respStr, Map.class); Map respMap = JsonUtils.fromJson(respStr, Map.class);
if (!CollectionUtils.isEmpty(respMap) && StringUtils.equalsIgnoreCase("OK", (String) respMap.get("message"))) {
return ResponseDto.success();
} else {
log.warn("PHP.API验证码发送失败[mobile:{},respStr:{}]", mobile, respStr);
return ResponseDto.failure(ErrorMapping.get("10001"));
}
} catch (Exception e) { } catch (Exception e) {
log.error("验证码发送异常[mobile:{}]", mobile, e); log.error("PHP.API验证码发送异常[mobile:{},respStr:{}]", mobile, respStr, e);
return ResponseDto.failure(ErrorMapping.get("10001")); return ResponseDto.failure(ErrorMapping.get("10001"));
} }
return ResponseDto.success();
} }
@ApiOperationSupport(order = 3) @ApiOperationSupport(order = 3)
...@@ -229,26 +240,27 @@ public class AdamLoginController { ...@@ -229,26 +240,27 @@ public class AdamLoginController {
/* ---------------------------- Internal Method ---------------------------- */ /* ---------------------------- Internal Method ---------------------------- */
private boolean checkSmsCode(String mobile, String code) { private boolean checkSmsCode(String mobile, String code) {
if (Arrays.asList("dev", "test").contains(env.getProperty("spring.profiles.active"))) { if (Arrays.asList("dev").contains(env.getProperty("spring.profiles.active"))) {
return "111111".equals(code); return "111111".equals(code);
} }
LinkedMultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>(); LinkedMultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
paramsMap.add("mobile", mobile); paramsMap.add("mobile", mobile);
paramsMap.add("code", code); paramsMap.add("code", code);
LinkedMultiValueMap<String, String> headersMap = new LinkedMultiValueMap<>();
headersMap.add("token", null);
String respStr = null;
try { try {
// TODO: 2021/5/12 respStr = HttpUtil.postToPhpApi(PHP_API_SMS_CODE_VALID, paramsMap);
String respStr = HttpUtil.get("https://service.zhengzai.tv/smsValidation", paramsMap, headersMap); log.debug("###PHP.API.RESP:{}", respStr);
log.info("###PHP.API.RESP:{}", respStr);
Map respMap = JsonUtils.fromJson(respStr, Map.class); Map respMap = JsonUtils.fromJson(respStr, Map.class);
if (!CollectionUtils.isEmpty(respMap) && StringUtils.equalsIgnoreCase("OK", (String) respMap.get("message"))) {
return StringUtils.equalsIgnoreCase("OK", (String) respMap.get("message")); return true;
} else {
log.warn("PHP.API验证码验证失败[mobile:{},code:{},respStr:{}]", mobile, code, respStr);
return false;
}
} catch (Exception e) { } catch (Exception e) {
log.error("验证码验证异常[mobile:{},code:{}]", mobile, code, e); log.error("PHP.API验证码验证异常[mobile:{},code:{},respStr:{}]", mobile, code, respStr, e);
return false; return false;
} }
} }
......
package com.liquidnet.service.adam.service.impl; package com.liquidnet.service.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.common.mq.constant.MQConst; import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.IDGenerator; import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.dto.AdamThirdPartParam; import com.liquidnet.service.adam.dto.AdamThirdPartParam;
import com.liquidnet.service.adam.dto.vo.*; import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.entity.AdamAddresses;
import com.liquidnet.service.adam.entity.AdamEnters; import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.entity.AdamRealName; import com.liquidnet.service.adam.entity.AdamRealName;
import com.liquidnet.service.adam.entity.AdamUser;
import com.liquidnet.service.adam.mapper.AdamUserMapper;
import com.liquidnet.service.adam.service.*; import com.liquidnet.service.adam.service.*;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.SqlMapping; import com.liquidnet.service.base.SqlMapping;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions; import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument; import com.mongodb.client.model.ReturnDocument;
import com.mongodb.client.result.DeleteResult; import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -27,18 +24,18 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate; ...@@ -27,18 +24,18 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.LinkedMultiValueMap;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* <p> * <p>
...@@ -50,9 +47,7 @@ import java.util.List; ...@@ -50,9 +47,7 @@ import java.util.List;
*/ */
@Slf4j @Slf4j
@Service @Service
public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> implements IAdamUserService { public class AdamUserServiceImpl implements IAdamUserService {
@Autowired
MongoConverter mongoConverter;
@Autowired @Autowired
MongoTemplate mongoTemplate; MongoTemplate mongoTemplate;
@Autowired @Autowired
...@@ -66,6 +61,10 @@ public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> i ...@@ -66,6 +61,10 @@ public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> i
@Autowired @Autowired
IAdamRdmService adamRdmService; IAdamRdmService adamRdmService;
private static final String PHP_API_REAL_NAME = "http://testservice.zhengzai.tv/IdCardCheckVerification";
// @Override // @Override
// public AdamUserInfoVo queryByUid(String uid) { // public AdamUserInfoVo queryByUid(String uid) {
// AdamUserInfoVo userInfoVo = (AdamUserInfoVo) redisUtil.hget(AdamRedisConst.INFO_USER, uid); // AdamUserInfoVo userInfoVo = (AdamUserInfoVo) redisUtil.hget(AdamRedisConst.INFO_USER, uid);
...@@ -231,7 +230,7 @@ public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> i ...@@ -231,7 +230,7 @@ public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> i
Document doc = mongoTemplate.getCollection(AdamThirdPartInfoVo.class.getSimpleName()).findOneAndUpdate( Document doc = mongoTemplate.getCollection(AdamThirdPartInfoVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(uid).and("platform").is(platform).and("state").is(1)).getQueryObject(), Query.query(Criteria.where("uid").is(uid).and("platform").is(platform).and("state").is(1)).getQueryObject(),
new BasicDBObject("$set", mongoConverter.convertToMongoType(unBindThirdPartInfoVo)), new Document("$set", Document.parse(JsonUtils.toJson(unBindThirdPartInfoVo))),
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER) new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
); );
...@@ -312,10 +311,30 @@ public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> i ...@@ -312,10 +311,30 @@ public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> i
} }
@Override @Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) // @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public AdamRealInfoVo identity(String uid, String name, String idCard) { public AdamRealInfoVo identity(String uid, String name, String idCard) {
// TODO: 2021/5/18 调用第三方认证服务 // TODO: 2021/5/18 调用第三方认证服务
LinkedMultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
paramsMap.add("realName", name);
paramsMap.add("cardNo", idCard);
String respStr = null;
try {
respStr = HttpUtil.postToPhpApi(PHP_API_REAL_NAME, paramsMap);
log.debug("###PHP.API.RESP:{}", respStr);
Map respMap = JsonUtils.fromJson(respStr, Map.class);
if (CollectionUtils.isEmpty(respMap) || !StringUtils.equalsIgnoreCase("OK", (String) respMap.get("message"))) {
log.warn("PHP.API实名认证失败[uid:{},name:{},idCard:{},respStr:{}]", uid, name, idCard, respStr);
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("10102");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
} catch (Exception e) {
log.error("PHP.API实名认证异常[uid:{},name:{},idCard:{},respStr:{}]", uid, name, idCard, respStr, e);
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("10102");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
AdamRealName realName = new AdamRealName(); AdamRealName realName = new AdamRealName();
realName.setRealNameId(IDGenerator.nextSnowId() + ""); realName.setRealNameId(IDGenerator.nextSnowId() + "");
realName.setUid(uid); realName.setUid(uid);
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
10101=姓名或身份证件号无效 10101=姓名或身份证件号无效
10102= 10102=实名认证失败
10103= 10103=
10104= 10104=
10105=入场人不存在 10105=入场人不存在
......
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 to comment