diff --git a/.gitignore b/.gitignore
index 549e00a..0d679e6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,6 +18,8 @@ target/
*.iws
*.iml
*.ipr
+logs/
+log/
### NetBeans ###
/nbproject/private/
diff --git a/pom.xml b/pom.xml
index 6d2d823..8fc2db8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,6 +16,11 @@
1.8
+ UTF-8
+ UTF-8
+ 1.8
+ 1.8
+ 1.8
diff --git a/src/main/java/com/yuyou/openapi/openapi/api/ABClient.java b/src/main/java/com/yuyou/openapi/openapi/api/ABClient.java
index 85c6dc7..0e9cb63 100644
--- a/src/main/java/com/yuyou/openapi/openapi/api/ABClient.java
+++ b/src/main/java/com/yuyou/openapi/openapi/api/ABClient.java
@@ -79,9 +79,8 @@ public class ABClient {
return CommonResponse.createByErrorMessage(ResponseCode.DECRYPT_ERROR.getDesc());
}
ABZMMessageDTO abzmMessageDTO = JSONUtil.toBean(jsonResult, ABZMMessageDTO.class);
- // 处理具体逻辑
- abClientService.recordZMClientMsg(abzmMessageDTO);
- // 返回校验成功的结果
- return CommonResponse.createBySuccess();
+ // 处理具体逻辑,返回校验成功的结果
+ return abClientService.recordZMClientMsg(abzmMessageDTO)?
+ CommonResponse.createBySuccess() : CommonResponse.createByErrorMessage("调用失败请重试");
}
}
diff --git a/src/main/java/com/yuyou/openapi/openapi/common/enums/GradeEnum.java b/src/main/java/com/yuyou/openapi/openapi/common/enums/GradeEnum.java
index 93d151f..4954d37 100644
--- a/src/main/java/com/yuyou/openapi/openapi/common/enums/GradeEnum.java
+++ b/src/main/java/com/yuyou/openapi/openapi/common/enums/GradeEnum.java
@@ -1,35 +1,57 @@
package com.yuyou.openapi.openapi.common.enums;
+import cn.hutool.core.util.StrUtil;
+
+import javax.persistence.criteria.CriteriaBuilder;
+
/**
* 年级映射
* @version 1.0
* @date 2020/8/10
*/
public enum GradeEnum {
- FIRST_GRADE("X1", "一年级"),
- SECOND_GRADE("X2","二年级"),
- THIRD_GRADE("X3","三年级"),
- FOURTH_GRADE("X4", "四年级"),
- FIFTH_GRADE("X5", "五年级"),
- SIXTH_GRADE("X6", "六年级"),
- FIRST_MIDDLE("M1", "初一"),
- SECOND_MIDDLE("M2", "初二"),
- THIRD_MIDDLE("M3", "初三"),
- FIRST_HIGH("H1", "高一"),
- SECOND_HIGH("H2", "高二"),
- THIRD_HIGH("H3", "高三"),
+ UNKNOW(0, "未知"),
+ FIRST_GRADE(1, "一年级"),
+ SECOND_GRADE(2,"二年级"),
+ THIRD_GRADE(3,"三年级"),
+ FOURTH_GRADE(4, "四年级"),
+ FIFTH_GRADE(5, "五年级"),
+ SIXTH_GRADE(6, "六年级"),
+ FIRST_MIDDLE(7, "初一"),
+ SECOND_MIDDLE(8, "初二"),
+ THIRD_MIDDLE(9, "初三"),
+ FIRST_HIGH(10, "高一"),
+ SECOND_HIGH(11, "高二"),
+ THIRD_HIGH(12, "高三"),
;
- private String code;
+ private Integer code;
private String desc;
- GradeEnum(String code, String desc){
+ GradeEnum(Integer code, String desc){
this.code = code;
this.desc = desc;
}
- public String getCode() {
+ /**
+ * 根据desc获得编码值
+ * @param grade
+ * @return
+ */
+ public static Integer codeOf(String grade) {
+ if (StrUtil.isBlank(grade)) {
+ return GradeEnum.UNKNOW.getCode();
+ }
+ for (GradeEnum gradeEnum : GradeEnum.values()) {
+ if (gradeEnum.getDesc().equals(grade)) {
+ return gradeEnum.getCode();
+ }
+ }
+ return GradeEnum.UNKNOW.getCode();
+ }
+
+ public Integer getCode() {
return code;
}
diff --git a/src/main/java/com/yuyou/openapi/openapi/common/enums/SubjectEnum.java b/src/main/java/com/yuyou/openapi/openapi/common/enums/SubjectEnum.java
index 4e8b4d6..47987d9 100644
--- a/src/main/java/com/yuyou/openapi/openapi/common/enums/SubjectEnum.java
+++ b/src/main/java/com/yuyou/openapi/openapi/common/enums/SubjectEnum.java
@@ -1,11 +1,14 @@
package com.yuyou.openapi.openapi.common.enums;
+import cn.hutool.core.util.StrUtil;
+
/**
* 学科映射
* @version 1.0
* @date 2020/8/10
*/
public enum SubjectEnum {
+ UNKNOW(0, "未知"),
CHINESE(1, "语文"),
MATH(2, "数学"),
ENGLISH(3,"英语"),
@@ -25,6 +28,24 @@ public enum SubjectEnum {
this.desc = desc;
}
+ /**
+ * 根据subject获得编码值
+ * @param subject
+ * @return
+ */
+ public static Integer codeOf(String subject) {
+ if (StrUtil.isBlank(subject)) {
+ return SubjectEnum.UNKNOW.getCode();
+ }
+ for (SubjectEnum subjectEnum : SubjectEnum.values()) {
+ if (subjectEnum.getDesc().equals(subject)) {
+ return subjectEnum.getCode();
+ }
+ }
+ return SubjectEnum.UNKNOW.getCode();
+ }
+
+
public Integer getCode() {
return code;
}
diff --git a/src/main/java/com/yuyou/openapi/openapi/dao/ABMessageRepository.java b/src/main/java/com/yuyou/openapi/openapi/dao/ABMessageRepository.java
index e25a592..9eaf243 100644
--- a/src/main/java/com/yuyou/openapi/openapi/dao/ABMessageRepository.java
+++ b/src/main/java/com/yuyou/openapi/openapi/dao/ABMessageRepository.java
@@ -2,6 +2,9 @@ package com.yuyou.openapi.openapi.dao;
import com.yuyou.openapi.openapi.model.dataobject.ABMessageDO;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
/**
@@ -9,4 +12,8 @@ import org.springframework.stereotype.Repository;
*/
@Repository
public interface ABMessageRepository extends JpaRepository {
+
+ @Modifying
+ @Query("update ABMessageDO t set t.sendStatus = sendStatus where t.recId = id")
+ void updateSendStatus(@Param(value = "id") Long recId, @Param(value = "sendStatus") Integer sendStatus);
}
diff --git a/src/main/java/com/yuyou/openapi/openapi/model/convert/ABMessageConverter.java b/src/main/java/com/yuyou/openapi/openapi/model/convert/ABMessageConverter.java
index 371f76c..a0223a2 100644
--- a/src/main/java/com/yuyou/openapi/openapi/model/convert/ABMessageConverter.java
+++ b/src/main/java/com/yuyou/openapi/openapi/model/convert/ABMessageConverter.java
@@ -1,11 +1,11 @@
package com.yuyou.openapi.openapi.model.convert;
-import cn.hutool.core.date.DateUtil;
import com.yuyou.openapi.openapi.common.security.SecurityConstants;
import com.yuyou.openapi.openapi.common.security.SecurityService;
import com.yuyou.openapi.openapi.model.dataobject.ABMessageDO;
import com.yuyou.openapi.openapi.model.dto.ABMessageDTO;
import com.yuyou.openapi.openapi.model.vo.ABClientInterMessageVO;
+import com.yuyou.openapi.openapi.utils.DateUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.util.CollectionUtils;
@@ -80,8 +80,8 @@ public class ABMessageConverter {
}
BeanUtils.copyProperties(abMessageDTO, abMessageDO);
- abMessageDO.setPushTime(DateUtil.date(abMessageDTO.getTimestamp() * 1000));
- abMessageDO.setStartTime(DateUtil.date(abMessageDTO.getStartTime() * 1000));
+ abMessageDO.setPushTime(DateUtils.date(abMessageDTO.getTimestamp()));
+ abMessageDO.setStartTime(DateUtils.date(abMessageDTO.getStartTime()));
try{
abMessageDO.setRecId(Long.valueOf(abMessageDTO.getRecId()));
}catch (Exception e){
@@ -90,11 +90,13 @@ public class ABMessageConverter {
// AES加密
try {
- SecurityService.encrypt(abMessageDTO.getMobile(), SecurityConstants.PHONE);
+ String encryptedMobile = SecurityService.encrypt(abMessageDTO.getMobile(), SecurityConstants.PHONE);
+ abMessageDO.setPnum(encryptedMobile);
} catch (Exception e) {
- log.error("Encrypt Mobile raise Error, error is :", e);
+ log.error("Encrypt Mobile raise Error, recId = {}, error is :", abMessageDTO.getRecId(), e);
+ abMessageDO.setPnum(abMessageDTO.getMobile());
}
- abMessageDO.setPnum(abMessageDTO.getMobile());
+
return abMessageDO;
}
}
diff --git a/src/main/java/com/yuyou/openapi/openapi/model/convert/ZhangmenMessageConverter.java b/src/main/java/com/yuyou/openapi/openapi/model/convert/ZhangmenMessageConverter.java
index 94744ee..dac2073 100644
--- a/src/main/java/com/yuyou/openapi/openapi/model/convert/ZhangmenMessageConverter.java
+++ b/src/main/java/com/yuyou/openapi/openapi/model/convert/ZhangmenMessageConverter.java
@@ -1,8 +1,18 @@
package com.yuyou.openapi.openapi.model.convert;
+import com.yuyou.openapi.openapi.common.enums.GradeEnum;
+import com.yuyou.openapi.openapi.common.enums.SubjectEnum;
+import com.yuyou.openapi.openapi.common.security.SecurityConstants;
+import com.yuyou.openapi.openapi.common.security.SecurityService;
import com.yuyou.openapi.openapi.model.dataobject.ZhangmenMessageDO;
import com.yuyou.openapi.openapi.model.dto.ABZMMessageDTO;
import com.yuyou.openapi.openapi.model.vo.ABClientZMMessageVO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.List;
/**
* 掌门记录转换类
@@ -10,6 +20,7 @@ import com.yuyou.openapi.openapi.model.vo.ABClientZMMessageVO;
* @version 1.0
* @date 2020/8/10
*/
+@Slf4j
public class ZhangmenMessageConverter {
/**
@@ -22,13 +33,50 @@ public class ZhangmenMessageConverter {
return abzmMessageDTO;
}
+ /**
+ * 批量DTO转DO
+ * @param list
+ * @return
+ */
+ public static List convertZhangmenMessageDOFromDTO(List list) {
+ if (CollectionUtils.isEmpty(list)) {
+ return null;
+ }
+ List zhangmenMessageDOs = new ArrayList<>();
+ list.forEach(each -> {
+ ZhangmenMessageDO zhangmenMessageDO = convertZhangmenMessageDOFromDTO(each);
+ if (zhangmenMessageDO != null) {
+ zhangmenMessageDOs.add(zhangmenMessageDO);
+ }
+ });
+ return zhangmenMessageDOs;
+ }
+
/**
* DTO层转为DO层
* @param abzmMessageDTO
* @return
*/
public static ZhangmenMessageDO convertZhangmenMessageDOFromDTO(ABZMMessageDTO abzmMessageDTO) {
+ if (abzmMessageDTO == null || abzmMessageDTO.getData() == null) {
+ return null;
+ }
ZhangmenMessageDO zhangmenMessageDO = new ZhangmenMessageDO();
+ BeanUtils.copyProperties(abzmMessageDTO.getData(), zhangmenMessageDO);
+ try {
+ String encryptedMobile = SecurityService.encrypt(abzmMessageDTO.getData().getMobile(), SecurityConstants.PHONE);
+ String encryptedName = SecurityService.encrypt(abzmMessageDTO.getData().getName(), SecurityConstants.SIMPLE);
+ zhangmenMessageDO.setPnum(encryptedMobile);
+ zhangmenMessageDO.setStuName(encryptedName);
+
+ }catch (Exception e) {
+ log.error("Encrypt data raise Error, recId = {}, error is :", abzmMessageDTO.getData().getRecId(), e);
+ zhangmenMessageDO.setPnum(abzmMessageDTO.getData().getMobile());
+ zhangmenMessageDO.setStuName(abzmMessageDTO.getData().getName());
+ }
+ zhangmenMessageDO.setStuGrade(GradeEnum.codeOf(abzmMessageDTO.getData().getGrade()));
+ zhangmenMessageDO.setStuSub(SubjectEnum.codeOf(abzmMessageDTO.getData().getCourse()));
+
return zhangmenMessageDO;
}
}
diff --git a/src/main/java/com/yuyou/openapi/openapi/model/dataobject/ZhangmenMessageDO.java b/src/main/java/com/yuyou/openapi/openapi/model/dataobject/ZhangmenMessageDO.java
index f90e156..74ead05 100644
--- a/src/main/java/com/yuyou/openapi/openapi/model/dataobject/ZhangmenMessageDO.java
+++ b/src/main/java/com/yuyou/openapi/openapi/model/dataobject/ZhangmenMessageDO.java
@@ -55,7 +55,7 @@ public class ZhangmenMessageDO {
* 报课学生年级
*/
@Column(name = "stu_grade")
- private String stuGrade;
+ private Integer stuGrade;
/**
* 报课学生学科
diff --git a/src/main/java/com/yuyou/openapi/openapi/model/dto/ABZMMessageDTO.java b/src/main/java/com/yuyou/openapi/openapi/model/dto/ABZMMessageDTO.java
index aee07b6..f1fa21f 100644
--- a/src/main/java/com/yuyou/openapi/openapi/model/dto/ABZMMessageDTO.java
+++ b/src/main/java/com/yuyou/openapi/openapi/model/dto/ABZMMessageDTO.java
@@ -19,10 +19,13 @@ public class ABZMMessageDTO {
/**
* 数据集合
*/
- private Data data;
+ private Datas data;
- static class Tag {
+ @Data
+ @AllArgsConstructor
+ @NoArgsConstructor
+ public static class Tag {
/**
* 学生姓名
*/
@@ -44,8 +47,10 @@ public class ABZMMessageDTO {
private String tag_key_course;
}
-
- static class Data {
+ @Data
+ @AllArgsConstructor
+ @NoArgsConstructor
+ public static class Datas {
/**
* 记录id
diff --git a/src/main/java/com/yuyou/openapi/openapi/service/ABClientService.java b/src/main/java/com/yuyou/openapi/openapi/service/ABClientService.java
index 381dd9e..2dc7a63 100644
--- a/src/main/java/com/yuyou/openapi/openapi/service/ABClientService.java
+++ b/src/main/java/com/yuyou/openapi/openapi/service/ABClientService.java
@@ -23,10 +23,12 @@ public interface ABClientService {
*/
boolean recordAndSendABClientMsg(List dto);
+ boolean updateSendStatus(Long recId, boolean success);
+
/**
* 记录推送掌门的数据,并存储入库
*
* @param dto 解密后的掌门数据对应实体Bean
*/
- void recordZMClientMsg(ABZMMessageDTO dto);
+ boolean recordZMClientMsg(ABZMMessageDTO dto);
}
diff --git a/src/main/java/com/yuyou/openapi/openapi/service/impl/ABClientServiceImpl.java b/src/main/java/com/yuyou/openapi/openapi/service/impl/ABClientServiceImpl.java
index b37f8dc..802af9e 100644
--- a/src/main/java/com/yuyou/openapi/openapi/service/impl/ABClientServiceImpl.java
+++ b/src/main/java/com/yuyou/openapi/openapi/service/impl/ABClientServiceImpl.java
@@ -1,8 +1,11 @@
package com.yuyou.openapi.openapi.service.impl;
import com.yuyou.openapi.openapi.dao.ABMessageRepository;
+import com.yuyou.openapi.openapi.dao.ZhangmenMessageRepository;
import com.yuyou.openapi.openapi.model.convert.ABMessageConverter;
+import com.yuyou.openapi.openapi.model.convert.ZhangmenMessageConverter;
import com.yuyou.openapi.openapi.model.dataobject.ABMessageDO;
+import com.yuyou.openapi.openapi.model.dataobject.ZhangmenMessageDO;
import com.yuyou.openapi.openapi.model.dto.ABMessageDTO;
import com.yuyou.openapi.openapi.model.dto.ABZMMessageDTO;
import com.yuyou.openapi.openapi.service.ABClientService;
@@ -35,8 +38,15 @@ public class ABClientServiceImpl implements ABClientService {
@Autowired
private ABMessageRepository abMessageRepository;
+ @Autowired
+ private ZhangmenMessageRepository zhangmenMessageRepository;
+
@Override
public boolean recordAndSendABClientMsg(List dtos) {
+ if (CollectionUtils.isEmpty(dtos)) {
+ log.error("Param dtos is empty");
+ return Boolean.FALSE;
+ }
// 调用接口进行入库
List abMessageDOS = ABMessageConverter.convertABMessageDOFromDTO(dtos);
// TODO: 2020/8/10 0010 加密存储
@@ -48,17 +58,42 @@ public class ABClientServiceImpl implements ABClientService {
// TODO: 2020/8/10 0010 解密 发送
// 调用异步任务进行转发AB单 - 这里是这有一条数据
// 返回处理结果
+ // TODO: 2020/8/11 0011 暂时关闭下游接口 - 进行测试
//abDownTask.doRunTask(dtos);
return Boolean.TRUE;
}
+ @Override
+ public boolean updateSendStatus(Long recId, boolean success) {
+ if (recId == null) {
+ return Boolean.FALSE;
+ }
+ if (success) {
+ abMessageRepository.updateSendStatus(recId, 1);
+ }else {
+ abMessageRepository.updateSendStatus(recId, 0);
+ }
+
+ return Boolean.TRUE;
+ }
+
/**
* 对 数据进行入库处理
*
* @param dto 解密后的掌门数据对应实体Bean
*/
@Override
- public void recordZMClientMsg(ABZMMessageDTO dto) {
- // TODO: 2020/8/10 0010 补充具体的入库处理逻辑
+ public boolean recordZMClientMsg(ABZMMessageDTO dto) {
+ if (dto == null) {
+ log.error("Param dtos is empty");
+ return Boolean.FALSE;
+ }
+
+ ZhangmenMessageDO zhangmenMessageDO = ZhangmenMessageConverter.convertZhangmenMessageDOFromDTO(dto);
+ ZhangmenMessageDO result = zhangmenMessageRepository.save(zhangmenMessageDO);
+ if (result == null) {
+ return Boolean.FALSE;
+ }
+ return Boolean.TRUE;
}
}
diff --git a/src/main/java/com/yuyou/openapi/openapi/service/impl/ABClientServiceProxy.java b/src/main/java/com/yuyou/openapi/openapi/service/impl/ABClientServiceProxy.java
index 8749a31..4c2c830 100644
--- a/src/main/java/com/yuyou/openapi/openapi/service/impl/ABClientServiceProxy.java
+++ b/src/main/java/com/yuyou/openapi/openapi/service/impl/ABClientServiceProxy.java
@@ -27,14 +27,21 @@ public class ABClientServiceProxy implements ABClientService {
public boolean recordAndSendABClientMsg(List list) {
// 解密List中的加密字段
list.forEach(each -> {
- each.setActName(each.getActName());
+ // mobile不进行解密处理
+ each.setActName(decryptBase64Value(each.getActName()));
});
return abClientService.recordAndSendABClientMsg(list);
}
@Override
- public void recordZMClientMsg(ABZMMessageDTO dto) {
+ public boolean updateSendStatus(Long recId, boolean success) {
+ return abClientService.updateSendStatus(recId, success);
+ }
+ @Override
+ public boolean recordZMClientMsg(ABZMMessageDTO dto) {
+ // TODO: DTO层数据解密
+ return abClientService.recordZMClientMsg(dto);
}
/**
diff --git a/src/main/java/com/yuyou/openapi/openapi/task/ABDownTask.java b/src/main/java/com/yuyou/openapi/openapi/task/ABDownTask.java
index dccd77e..0056f57 100644
--- a/src/main/java/com/yuyou/openapi/openapi/task/ABDownTask.java
+++ b/src/main/java/com/yuyou/openapi/openapi/task/ABDownTask.java
@@ -1,14 +1,13 @@
package com.yuyou.openapi.openapi.task;
-import cn.hutool.core.codec.Base64;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
-import com.yuyou.openapi.openapi.model.dto.ABMessageDTO;
import com.yuyou.openapi.openapi.model.dto.ABMessageCovDTO;
+import com.yuyou.openapi.openapi.model.dto.ABMessageDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
@@ -43,13 +42,12 @@ public class ABDownTask {
* @return
*/
@Async(value = "abTaskExecutor")
- public boolean doRunTask(List messageDTOList){
+ public void doRunTask(List messageDTOList){
Long satrtMilliSecond = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
log.info("====== [ task start running, task name is {} ] ======", "ABDownTask");
- boolean resultTag = runTask(messageDTOList);
+ runTask(messageDTOList);
Long endMilliSecond = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
log.info("====== [ task start end, task name is {},cost milliSecond is {} ] ======", "ABDownTask", (endMilliSecond-satrtMilliSecond));
- return resultTag;
}
/**
@@ -65,7 +63,7 @@ public class ABDownTask {
List filterData = messageDTOList.stream()
.filter(item -> (1 == item.getClientType()) || 2 == item.getClientType())
.map(item -> {
- StringUtils.reverse(Base64.encode(item.getMobile()));
+ StringUtils.reverse(item.getMobile());
return item;
})
.collect(Collectors.toList());
@@ -82,6 +80,7 @@ public class ABDownTask {
// 调用HTTP请求发送数据
HttpResponse httpResponse = sendReq(jsonObject);
if (httpResponse.isOk() && httpResponse.body().contains("成功")){
+ log.info("========== [request success, response is {} ] ==========", httpResponse.body());
break;
}else{
count ++;
diff --git a/src/main/java/com/yuyou/openapi/openapi/utils/DateUtils.java b/src/main/java/com/yuyou/openapi/openapi/utils/DateUtils.java
new file mode 100644
index 0000000..2378e2b
--- /dev/null
+++ b/src/main/java/com/yuyou/openapi/openapi/utils/DateUtils.java
@@ -0,0 +1,20 @@
+package com.yuyou.openapi.openapi.utils;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+
+public class DateUtils {
+ public static DateTime date(Long date) {
+ if (date == null) {
+ return null;
+ }
+ if (date.toString().length() == 10) {
+ date = date * 1000;
+ }
+
+ if (date.toString().length() == 13) {
+ return DateUtil.date(date);
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/com/yuyou/openapi/openapi/utils/SecurityOperationUtil.java b/src/main/java/com/yuyou/openapi/openapi/utils/SecurityOperationUtil.java
index 10a10a9..8e44e40 100644
--- a/src/main/java/com/yuyou/openapi/openapi/utils/SecurityOperationUtil.java
+++ b/src/main/java/com/yuyou/openapi/openapi/utils/SecurityOperationUtil.java
@@ -124,6 +124,13 @@ public class SecurityOperationUtil {
}
}
+ private static String decryptBase64Value(String base64Value) {
+ if (StrUtil.isBlank(base64Value)) {
+ return base64Value;
+ }
+ return Base64.decodeStr(base64Value);
+ }
+
public static void main(String[] args) throws SecretException {
String decryptValue = aesDecrypt("DqkOjL726BFVqAj5TNkgyw==", "AnOQ&1^lyobm%vUX");
System.out.println(decryptValue);
diff --git a/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/src/main/resources/META-INF/additional-spring-configuration-metadata.json
index d9ff73b..e69de29 100644
--- a/src/main/resources/META-INF/additional-spring-configuration-metadata.json
+++ b/src/main/resources/META-INF/additional-spring-configuration-metadata.json
@@ -1,8 +0,0 @@
-{
- "properties": [
- {
- "name": "ab.customer.app_id",
- "type": "java.lang.String",
- "description": "Description for ab.customer.app_id."
- }
-] }
\ No newline at end of file
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 7fd0881..71f4814 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,12 +1,14 @@
spring:
profiles:
- active: dev
+ active: prod
# 序列化忽略null的k-v配置
jackson:
default-property-inclusion: non_null
# JPA数据层相关配置
jpa:
show-sql: true
+ open-in-view: false
+
---
# 端口
server:
@@ -17,13 +19,13 @@ spring:
# 数据库相关配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://localhost:3306/push?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
+ url: jdbc:mysql://localhost:3306/push?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false
username: root
password: root
# 下游请求配置信息
ab:
customer:
- url: https://sandbox.openapi.ppke.com.cn/
+ url: http://sandbox.openapi.ppke.com.cn/openapi/tmk/clues/receive
app_id: YY9X8XCZ
thread_pool:
corePoolSize: 2
@@ -41,16 +43,18 @@ spring:
# 数据库相关配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://localhost:3306/push?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
+ url: jdbc:mysql://localhost:3306/push?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false
username: root
password: Yuyou@2020
# 下游请求配置信息
ab:
customer:
- url: https://openapi.ppke.com.cn/
- app_id: app_id
+ url: https://openapi.ppke.com.cn/openapi/tmk/clues/receive
+ app_id: YY9X8XCZ
thread_pool:
corePoolSize: 2
maxPoolSize: 16
queueCapacity: 3
- ThreadNamePrefix: "AB-Req-"
\ No newline at end of file
+ ThreadNamePrefix: "AB-Req-"
+logging:
+ config: classpath:logback.xml
\ No newline at end of file
diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml
new file mode 100644
index 0000000..2a6fb61
--- /dev/null
+++ b/src/main/resources/logback.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+ true
+
+ %highlight([%-5level]) %cyan(%d{yyyy-MM-dd#HH:mm:ss.SSS}) %yellow([Thread:%thread]) %magenta([Logger:%logger]) -> %msg%n
+ utf-8
+
+
+
+
+ ${LOG_DIR}/log.log
+
+
+
+ ${LOG_DIR}/history/%d{yyyy-MM-dd}.gz
+ 30
+
+
+ true
+
+
+ ${LOG_PATTERN}
+ utf-8
+
+
+
+
+ INFO
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/test/java/com/yuyou/openapi/openapi/RSATest.java b/src/test/java/com/yuyou/openapi/openapi/RSATest.java
index 7fa130a..1e76b4c 100644
--- a/src/test/java/com/yuyou/openapi/openapi/RSATest.java
+++ b/src/test/java/com/yuyou/openapi/openapi/RSATest.java
@@ -19,6 +19,7 @@ public class RSATest {
// 待加密字符串
String str = "{\"tag\":{\"tag_key_name\":\"学生姓名\",\"tag_key_mobile\":\"联系方式\",\"tag_key_grade\":\"课程年级\",\"tag_key_course\":\"课程科目\"},\"data\":{\"name\":\"张小兵\",\"mobile\":\"13011112222\",\"grade\":\"三年级\",\"course\":\"数学\"}}";
+ str = "JTdCJTIydGFnJTIyJTNBJTdCJTIydGFnX2tleV9pZCUyMiUzQSUyMklEJXU2ODA3JXU4QkM2JTIyJTJDJTIydGFnX2tleV9uYW1lJTIyJTNBJTIyJXU1QjY2JXU3NTFGJXU1OUQzJXU1NDBEJTIyJTJDJTIydGFnX2tleV8lMjBtb2JpbGUlMjIlM0ElMjIldTgwNTQldTdDRkIldTY1QjkldTVGMEYlMjIlMkMlMjJ0YWdfa2V5XyUyMGdyYWRlJTIyJTNBJTIyJXU4QkZFJXU3QTBCJXU1RTc0JXU3RUE3JTIyJTJDJTIydGFnX2tleV8lMjBjb3Vyc2UlMjIlM0ElMjIldThCRkUldTdBMEIldTc5RDEldTc2RUUlMjIlN0QlMkMlMjJkYXRhJTIyJTNBJTdCJTIybmFtZSUyMiUzQSUyMiV1NUYyMCV1NUMwRiV1NTE3NSUyMiUyQyUyMm1vYmlsZSUyMiUzQSUyMjEzMDExMTEyMjIyJTIyJTJDJTIyZ3JhZGUlMjIlM0ElMjIldTRFMDkldTVFNzQldTdFQTclMjIlMkMlMjJjb3Vyc2UlMjIlM0ElMjIldTY1NzAldTVCNjYlMjIlN0QlN0Q=";
//先用Base64编码
String encode = Base64.encode(str);
System.out.println("Base64加密后的内容为:" + encode);
@@ -71,6 +72,8 @@ public class RSATest {
// 公钥加密,私钥解密
byte[] encrypt = rsa.encrypt(StrUtil.bytes(encode, CharsetUtil.CHARSET_UTF_8), KeyType.PublicKey);
+ System.out.println("加密串" + StrUtil.str(encrypt, CharsetUtil.CHARSET_UTF_8));
+// System.out.println("加密"+ Arrays.toString(encrypt));
byte[] decrypt = rsa.decrypt(encrypt, KeyType.PrivateKey);
//Base64解码