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

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

fix:php.api;

parent 1dd12941
......@@ -17,13 +17,7 @@ import java.util.List;
* @author liquidnet
* @since 2021-05-10
*/
public interface IAdamUserService extends IService<AdamUser> {
// String queryUidByRedis(String mobile);
//
// String queryUidByRedis(String openId, String platform);
// AdamUserInfoVo queryByUid(String uid);
public interface IAdamUserService {
/**
* 手机号注册
......
......@@ -5,6 +5,11 @@ import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
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 {
/**
* get请求
......@@ -140,4 +145,29 @@ public class HttpUtil {
ResponseEntity<String> response = client.exchange(url, method, httpEntity, String.class);
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;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.util.CollectionUtils;
import org.springframework.util.DigestUtils;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.validation.annotation.Validated;
......@@ -67,6 +68,11 @@ public class AdamLoginController {
@Autowired
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)
@ApiOperation(value = "手机号密码登录")
@ApiImplicitParams({
......@@ -96,18 +102,23 @@ public class AdamLoginController {
LinkedMultiValueMap<String, String> headersMap = new LinkedMultiValueMap<>();
headersMap.add("token", null);
String respStr = null;
try {
// TODO: 2021/5/12
String respStr = HttpUtil.post("https://service.zhengzai.tv/smsCode", paramsMap, headersMap);
log.info("###PHP.API[{}].RESP[{}]", "https://service.zhengzai.tv/smsCode", respStr);
respStr = HttpUtil.post(PHP_API_SMS_CODE_SEND, paramsMap, headersMap);
log.debug("###PHP.API[{}].RESP[{}]", PHP_API_SMS_CODE_SEND, 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) {
log.error("验证码发送异常[mobile:{}]", mobile, e);
log.error("PHP.API验证码发送异常[mobile:{},respStr:{}]", mobile, respStr, e);
return ResponseDto.failure(ErrorMapping.get("10001"));
}
return ResponseDto.success();
}
@ApiOperationSupport(order = 3)
......@@ -229,26 +240,27 @@ public class AdamLoginController {
/* ---------------------------- Internal Method ---------------------------- */
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);
}
LinkedMultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
paramsMap.add("mobile", mobile);
paramsMap.add("code", code);
LinkedMultiValueMap<String, String> headersMap = new LinkedMultiValueMap<>();
headersMap.add("token", null);
String respStr = null;
try {
// TODO: 2021/5/12
String respStr = HttpUtil.get("https://service.zhengzai.tv/smsValidation", paramsMap, headersMap);
log.info("###PHP.API.RESP:{}", respStr);
respStr = HttpUtil.postToPhpApi(PHP_API_SMS_CODE_VALID, paramsMap);
log.debug("###PHP.API.RESP:{}", respStr);
Map respMap = JsonUtils.fromJson(respStr, Map.class);
return StringUtils.equalsIgnoreCase("OK", (String) respMap.get("message"));
if (!CollectionUtils.isEmpty(respMap) && 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) {
log.error("验证码验证异常[mobile:{},code:{}]", mobile, code, e);
log.error("PHP.API验证码验证异常[mobile:{},code:{},respStr:{}]", mobile, code, respStr, e);
return false;
}
}
......
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.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.dto.AdamThirdPartParam;
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.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.base.ErrorMapping;
import com.liquidnet.service.base.SqlMapping;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -27,18 +24,18 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
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.Query;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.LinkedMultiValueMap;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
/**
* <p>
......@@ -50,9 +47,7 @@ import java.util.List;
*/
@Slf4j
@Service
public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> implements IAdamUserService {
@Autowired
MongoConverter mongoConverter;
public class AdamUserServiceImpl implements IAdamUserService {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
......@@ -66,6 +61,10 @@ public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> i
@Autowired
IAdamRdmService adamRdmService;
private static final String PHP_API_REAL_NAME = "http://testservice.zhengzai.tv/IdCardCheckVerification";
// @Override
// public AdamUserInfoVo queryByUid(String uid) {
// AdamUserInfoVo userInfoVo = (AdamUserInfoVo) redisUtil.hget(AdamRedisConst.INFO_USER, uid);
......@@ -231,7 +230,7 @@ public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> i
Document doc = mongoTemplate.getCollection(AdamThirdPartInfoVo.class.getSimpleName()).findOneAndUpdate(
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)
);
......@@ -312,10 +311,30 @@ public class AdamUserServiceImpl extends ServiceImpl<AdamUserMapper, AdamUser> i
}
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public AdamRealInfoVo identity(String uid, String name, String idCard) {
// 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();
realName.setRealNameId(IDGenerator.nextSnowId() + "");
realName.setUid(uid);
......
......@@ -24,7 +24,7 @@
10101=姓名或身份证件号无效
10102=
10102=实名认证失败
10103=
10104=
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