package com.stylefeng.guns.modular.system.util.qianyuntong;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
import com.google.gson.Gson;
|
import com.open.common.util.OpenApiClient;
|
import com.open.common.util.SystemParameterNames;
|
import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
|
import lombok.extern.slf4j.Slf4j;
|
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
|
/**
|
* 用户工具类
|
*
|
* @author zhibing.pu
|
* @Date 2025/6/6 14:47
|
*/
|
@Slf4j
|
public class UserUtil {
|
|
|
/**
|
* 根据手机号码获取人员信息
|
*
|
* @param mobile 手机号码
|
* @param enterNum 企业编号
|
*/
|
public static List<QYTUserInfo> getUserInfoByPhone(String mobile, String enterNum) {
|
//请求路径
|
String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/getUserInfoByPhone";
|
//私钥文件
|
String skprivateKeyFile = QianYunTongProperties.privateKeyPath;
|
//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
|
String appKey = QianYunTongProperties.appkey;//appkey
|
Map<String, String> headers = new HashMap<>();
|
headers.put("Content-Type", "application/json");
|
Map<String, Object> contentMap = new HashMap<String, Object>();
|
Date nowdate = new Date();
|
SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
String timeStamp = date.format(nowdate);
|
String messageId = UUID.randomUUID().toString().replaceAll("-", "");
|
contentMap.put(SystemParameterNames.getAppKey(), appKey);
|
contentMap.put(SystemParameterNames.getMessage_id(), messageId);
|
contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
|
contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
|
contentMap.put("content", "{\"mobile\":\"" + mobile + "\",\"enterNum\":\"" + enterNum + "\"}");
|
log.info("【根据手机号和企业编号查询用户信息】请求地址:" + url);
|
log.info("【根据手机号和企业编号查询用户信息】请求参数:" + JSON.toJSONString(contentMap));
|
String result = OpenApiClient.sendCommonHttpRequst(url, headers, "GET", skprivateKeyFile, timeStamp, contentMap);
|
log.info("【根据手机号和企业编号查询用户信息】请求结果:" + result);
|
JSONObject jsonObject = JSON.parseObject(result);
|
String retCode = jsonObject.getString("retCode");
|
if (!"0".equals(retCode)) {
|
log.error("【根据手机号和企业编号查询用户信息】请求失败:" + result);
|
throw new RuntimeException("【根据手机号和企业编号查询用户信息】请求失败:" + result);
|
}
|
JSONObject object = jsonObject.getJSONObject("object");
|
String status = object.getString("status");
|
if (!"0".equals(status)) {
|
log.error("【根据手机号和企业编号查询用户信息】失败:" + object.toJSONString());
|
throw new RuntimeException("【根据手机号和企业编号查询用户信息】失败:" + object.toJSONString());
|
}
|
JSONArray data = object.getJSONArray("data");
|
List<QYTUserInfo> list = new ArrayList<>();
|
for (int i = 0; i < data.size(); i++) {
|
data.getJSONObject(i).getString("enter_code");
|
QYTUserInfo userInfo = data.getObject(i, QYTUserInfo.class);
|
list.add(userInfo);
|
}
|
return list;
|
}
|
|
|
/**
|
* 根据手机号注册用户
|
*
|
* @param request
|
* @return
|
*/
|
public static RegisterViaMobile registerViaMobile(RegisterViaMobileRequest request) {
|
//请求路径
|
String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/m1_register_via_mobile";
|
//私钥文件
|
String skprivateKeyFile = QianYunTongProperties.privateKeyPath;
|
//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
|
String appKey = QianYunTongProperties.appkey;//appkey
|
Map<String, String> headers = new HashMap<>();
|
headers.put("Content-Type", "application/json");
|
Map<String, Object> contentMap = new HashMap<String, Object>();
|
Date nowdate = new Date();
|
SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
String timeStamp = date.format(nowdate);
|
String messageId = UUID.randomUUID().toString().replaceAll("-", "");
|
contentMap.put(SystemParameterNames.getAppKey(), appKey);
|
contentMap.put(SystemParameterNames.getMessage_id(), messageId);
|
contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
|
contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
|
contentMap.put("content", new Gson().toJson(request));
|
log.info("【根据手机号注册用户】请求地址:" + url);
|
log.info("【根据手机号注册用户】请求参数:" + JSON.toJSONString(contentMap));
|
String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
|
log.info("【根据手机号注册用户】请求结果:" + result);
|
JSONObject jsonObject = JSON.parseObject(result);
|
String retCode = jsonObject.getString("retCode");
|
if (!"0".equals(retCode)) {
|
log.error("【根据手机号注册用户】请求失败:" + result);
|
throw new RuntimeException("【根据手机号注册用户】请求失败:" + result);
|
}
|
JSONObject object = jsonObject.getJSONObject("object");
|
String status = object.getString("status");
|
if (!"0".equals(status)) {
|
log.error("【根据手机号注册用户】失败:" + object.toJSONString());
|
throw new RuntimeException("【根据手机号注册用户】失败:" + object.toJSONString());
|
}
|
return jsonObject.getObject("object", RegisterViaMobile.class);
|
}
|
|
|
/**
|
* 易信用户修改密码
|
*
|
* @param request
|
* @return
|
*/
|
public static Boolean modifyPwd(ModifyPwdRequest request) {
|
//请求路径
|
String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/modifyPwd";
|
//私钥文件
|
String skprivateKeyFile = QianYunTongProperties.privateKeyPath;
|
//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
|
String appKey = QianYunTongProperties.appkey;//appkey
|
Map<String, String> headers = new HashMap<>();
|
headers.put("Content-Type", "application/json");
|
Map<String, Object> contentMap = new HashMap<String, Object>();
|
Date nowdate = new Date();
|
SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
String timeStamp = date.format(nowdate);
|
String messageId = UUID.randomUUID().toString().replaceAll("-", "");
|
contentMap.put(SystemParameterNames.getAppKey(), appKey);
|
contentMap.put(SystemParameterNames.getMessage_id(), messageId);
|
contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
|
contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
|
contentMap.put("content", new Gson().toJson(request));
|
log.info("【易信用户修改密码】请求地址:" + url);
|
log.info("【易信用户修改密码】请求参数:" + JSON.toJSONString(contentMap));
|
String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
|
log.info("【易信用户修改密码】请求结果:" + result);
|
JSONObject jsonObject = JSON.parseObject(result);
|
String retCode = jsonObject.getString("retCode");
|
if (!"0".equals(retCode)) {
|
log.error("【易信用户修改密码】请求失败:" + result);
|
throw new RuntimeException("【易信用户修改密码】请求失败:" + result);
|
}
|
JSONObject object = jsonObject.getJSONObject("object");
|
String status = object.getString("status");
|
if (!"0".equals(status)) {
|
log.error("【易信用户修改密码】失败:" + object.toJSONString());
|
throw new RuntimeException("【易信用户】失败:" + object.toJSONString());
|
}
|
return true;
|
}
|
|
|
/**
|
* 易信重置密码
|
*
|
* @param request
|
* @return
|
*/
|
public static Boolean resetPwd(ResetPwdRequest request) {
|
//请求路径
|
String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/resetPwd";
|
//私钥文件
|
String skprivateKeyFile = QianYunTongProperties.privateKeyPath;
|
//注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
|
String appKey = QianYunTongProperties.appkey;//appkey
|
Map<String, String> headers = new HashMap<>();
|
headers.put("Content-Type", "application/json");
|
Map<String, Object> contentMap = new HashMap<String, Object>();
|
Date nowdate = new Date();
|
SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
String timeStamp = date.format(nowdate);
|
String messageId = UUID.randomUUID().toString().replaceAll("-", "");
|
contentMap.put(SystemParameterNames.getAppKey(), appKey);
|
contentMap.put(SystemParameterNames.getMessage_id(), messageId);
|
contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName);
|
contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
|
contentMap.put("content", new Gson().toJson(request));
|
log.info("【易信重置密码】请求地址:" + url);
|
log.info("【易信重置密码】请求参数:" + JSON.toJSONString(contentMap));
|
String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
|
log.info("【易信重置密码】请求结果:" + result);
|
JSONObject jsonObject = JSON.parseObject(result);
|
String retCode = jsonObject.getString("retCode");
|
if (!"0".equals(retCode)) {
|
log.error("【易信重置密码】请求失败:" + result);
|
throw new RuntimeException("【易信重置密码】请求失败:" + result);
|
}
|
JSONObject object = jsonObject.getJSONObject("object");
|
String status = object.getString("status");
|
if (!"0".equals(status)) {
|
log.error("【易信重置密码】失败:" + object.toJSONString());
|
throw new RuntimeException("【易信重置密码】失败:" + object.toJSONString());
|
}
|
return true;
|
}
|
}
|