|
@@ -8,6 +8,7 @@ import cn.hutool.http.HttpResponse;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import com.zhongzheng.common.exception.CustomException;
|
|
|
import com.zhongzheng.common.exception.user.UserPasswordNotMatchException;
|
|
|
import com.zhongzheng.common.utils.DateUtils;
|
|
@@ -45,8 +46,15 @@ import com.zhongzheng.modules.user.service.IUserStudyRecordService;
|
|
|
import com.zhongzheng.modules.user.service.IUserUpdateService;
|
|
|
import com.zhongzheng.modules.user.vo.SubjectStudyRecordVo;
|
|
|
import com.zhongzheng.modules.user.vo.UserVo;
|
|
|
+import io.netty.handler.codec.http.cookie.Cookie;
|
|
|
+import org.apache.http.Header;
|
|
|
+import org.apache.http.HttpEntity;
|
|
|
+import org.apache.http.client.methods.CloseableHttpResponse;
|
|
|
+import org.apache.http.client.methods.HttpPost;
|
|
|
+import org.apache.http.util.EntityUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
+import org.springframework.cloud.client.discovery.event.HeartbeatEvent;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
@@ -522,23 +530,32 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public boolean OpenQdyAccount(OpenQdyAccountBo bo) {
|
|
|
int falseCount = 0;
|
|
|
- // post 请求 传递json参数
|
|
|
+
|
|
|
+ //头信息
|
|
|
+ Map<String, String> hearders = new HashMap<>();
|
|
|
+ hearders.put("Origin", "https://zjzyk.etledu.com");
|
|
|
+ hearders.put("Referer", "https://zjzyk.etledu.com");
|
|
|
+ hearders.put("X-Requested-With", "XMLHttpRequest");
|
|
|
+ hearders.put("Host", "zjzyk.etledu.com");
|
|
|
+
|
|
|
+ //登录
|
|
|
String postLoginRequestUrl = "https://zjzyk.etledu.com/Account/GetLoginInfo";
|
|
|
// 参数
|
|
|
- Map<String, String> paramMap =new HashMap<>();
|
|
|
- paramMap.put("userCode", "gdxiangyue");
|
|
|
- paramMap.put("passWord", bo.getPassword());
|
|
|
- paramMap.put("typeId", "2");
|
|
|
- paramMap.put("yzm", bo.getYzm());
|
|
|
- paramMap.put("phoneNum", "15602322262");
|
|
|
+ JSONObject loginJsonObject = new JSONObject();
|
|
|
+ loginJsonObject.put("userCode", "gdxiangyue");
|
|
|
+ loginJsonObject.put("passWord", bo.getPassword());
|
|
|
+ loginJsonObject.put("typeId", "2");
|
|
|
+ loginJsonObject.put("yzm", bo.getYzm());
|
|
|
+ loginJsonObject.put("phoneNum", "15602322262");
|
|
|
String loginHttpResponse = "";
|
|
|
+ CloseableHttpResponse loginResponse = HttpUtils.sendPostHeader(postLoginRequestUrl, loginJsonObject.toString(), hearders);
|
|
|
+ Header[] headers = loginResponse.getHeaders("Set-Cookie");
|
|
|
try {
|
|
|
- String param = HttpUtils.appendUrl("", paramMap);
|
|
|
- loginHttpResponse = HttpUtils.sendPost(postLoginRequestUrl, param.substring(1));
|
|
|
- JSONObject ob = JSONObject.parseObject(loginHttpResponse);
|
|
|
- }catch (UnsupportedEncodingException e) {
|
|
|
+ loginHttpResponse = EntityUtils.toString(loginResponse.getEntity());
|
|
|
+ }catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
}finally {
|
|
|
// 关闭CloseableHttpResponse
|
|
@@ -551,25 +568,28 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (loginHttpResponse.contains("{\"\"success\"\":true")) {
|
|
|
+ if (loginHttpResponse.contains("{\"Result\":true")) {
|
|
|
List<StudyAccountStatusQueryBo> studyAccountStatusList = bo.getStudyAccountStatusQueryBos();
|
|
|
if (Validator.isNotEmpty(studyAccountStatusList)) {
|
|
|
List<Long> ids = new ArrayList<>();
|
|
|
for (StudyAccountStatusQueryBo studyAccountStatusQueryBo : studyAccountStatusList) {
|
|
|
//查询学员url
|
|
|
String getInfoRequestUrl = "https://zjzyk.etledu.com/Student/GetCertInfos";
|
|
|
- paramMap.clear();
|
|
|
+ Map<String, String> paramMap = new HashMap<>();
|
|
|
paramMap.put("personalId", studyAccountStatusQueryBo.getIdCard());
|
|
|
String getInfoHttpResponse = "";
|
|
|
try {
|
|
|
- getInfoHttpResponse = HttpUtils.postFormBody(getInfoRequestUrl, paramMap);
|
|
|
+ hearders.put("Referer", "https://zjzyk.etledu.com/Student/TrainInfo");
|
|
|
+ getInfoHttpResponse = HttpUtils.postFormBodyHeader(getInfoRequestUrl, paramMap, hearders, headers);
|
|
|
}catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
- if (getInfoHttpResponse.contains("{\"\"success\"\":true")) {
|
|
|
- PersonRoot personRoot = com.alibaba.fastjson.JSONObject.parseObject(getInfoHttpResponse, PersonRoot.class);
|
|
|
+ if (getInfoHttpResponse.contains("{\"success\":true")) {
|
|
|
+ PersonRoot personRoot = JSONObject.parseObject(getInfoHttpResponse, PersonRoot.class);
|
|
|
+ if (ObjectUtils.isEmpty(personRoot)) {
|
|
|
+ throw new CustomException(studyAccountStatusQueryBo.getRealname() + "学员信息为空");
|
|
|
+ }
|
|
|
CertInfoListItem certInfoListItem = personRoot.getCertInfoList().get(0);
|
|
|
- TrainInfosItem trainInfosItem = certInfoListItem.getTrainInfos().get(0);
|
|
|
//查询继教产品url
|
|
|
paramMap.clear();
|
|
|
String getProductUrl = "https://zjzyk.etledu.com/Student/GetProducts";
|
|
@@ -578,18 +598,19 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
|
|
|
paramMap.put("trainYear", bo.getTrainYear());
|
|
|
String getProductHttpResponse = "";
|
|
|
try {
|
|
|
- getProductHttpResponse = HttpUtils.postFormBody(getProductUrl, paramMap);
|
|
|
+ hearders.put("Referer", "https://zjzyk.etledu.com/Student/TrainInfo");
|
|
|
+ getProductHttpResponse = HttpUtils.postFormBodyHeader(getProductUrl, paramMap, hearders, headers);
|
|
|
}catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
- if (getProductHttpResponse.contains("{\"\"success\"\":true")) {
|
|
|
- ProductRoot productRoot = com.alibaba.fastjson.JSONObject.parseObject(getProductHttpResponse, ProductRoot.class);
|
|
|
- if (Validator.isEmpty(productRoot)) {
|
|
|
- throw new CustomException("未获取到相关继教商品信息");
|
|
|
+ if (getProductHttpResponse.contains("{\"success\":true")) {
|
|
|
+ ProductRoot productRoot = JSONObject.parseObject(getProductHttpResponse, ProductRoot.class);
|
|
|
+ if (ObjectUtils.isEmpty(productRoot)) {
|
|
|
+ throw new CustomException(studyAccountStatusQueryBo.getRealname() + "继教商品信息为空");
|
|
|
}
|
|
|
ProductsItem productsItem = productRoot.getProducts().get(0);
|
|
|
- //学员开通url
|
|
|
- String postOpenRequestUrl = "https://zjzyk.etledu.com/Student/SubmitProject";
|
|
|
+ //学员报名url
|
|
|
+ String sumitRequestUrl = "https://zjzyk.etledu.com/Student/SubmitProject";
|
|
|
paramMap.clear();
|
|
|
paramMap.put("CertNumber", certInfoListItem.getCertNumber());
|
|
|
paramMap.put("CertState", certInfoListItem.getCertState().toString());
|
|
@@ -612,23 +633,20 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
|
|
|
paramMap.put("GetMethod", "1");
|
|
|
String sumitHttpResponse = "";
|
|
|
try {
|
|
|
- sumitHttpResponse = HttpUtils.postFormBody(getProductUrl, paramMap);
|
|
|
+ hearders.put("Referer", "");
|
|
|
+ sumitHttpResponse = HttpUtils.postFormBodyHeader(sumitRequestUrl, paramMap, hearders, headers);
|
|
|
}catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
- com.alibaba.fastjson.JSONObject.parseObject(sumitHttpResponse.toString(), ClassGradeUserQueryBo.class);
|
|
|
- //开通成功同步修改本地库learnStatus状态
|
|
|
- if (sumitHttpResponse.contains("{\"\"success\"\":true")) {
|
|
|
+
|
|
|
+ if (sumitHttpResponse.contains("{\"success\":true")) {
|
|
|
ids.add(studyAccountStatusQueryBo.getId());
|
|
|
} else {
|
|
|
falseCount++;
|
|
|
}
|
|
|
- } else {
|
|
|
- throw new CustomException("获取相关继教商品信息失败");
|
|
|
}
|
|
|
- } else {
|
|
|
- throw new CustomException("根据身份证未获取相关数据失败");
|
|
|
}
|
|
|
+ //同步修改本地库learnStatus状态
|
|
|
Long[] id = new Long[]{};
|
|
|
id = ids.toArray(id);
|
|
|
ClassGradeUserEditBo classGradeUserEditBo = new ClassGradeUserEditBo();
|
|
@@ -636,18 +654,12 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
|
|
|
classGradeUserEditBo.setLearnStatus(1);
|
|
|
iClassGradeUserService.updateByEditBo(classGradeUserEditBo);
|
|
|
}
|
|
|
- Long[] id = new Long[]{};
|
|
|
- id = ids.toArray(id);
|
|
|
- ClassGradeUserEditBo classGradeUserEditBo = new ClassGradeUserEditBo();
|
|
|
- classGradeUserEditBo.setId(id);
|
|
|
- classGradeUserEditBo.setLearnStatus(1);
|
|
|
- iClassGradeUserService.updateByEditBo(classGradeUserEditBo);
|
|
|
- } else {
|
|
|
- throw new UserPasswordNotMatchException();
|
|
|
}
|
|
|
if (falseCount > 0) {
|
|
|
throw new CustomException(falseCount + "个开通失败");
|
|
|
}
|
|
|
+ }else {
|
|
|
+ throw new CustomException("登录官网失败,请检查信息");
|
|
|
}
|
|
|
|
|
|
return true;
|