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解码