新增掌门少儿业务

master
queyounan 4 years ago
parent 3647317c26
commit 1c22194cac

@ -3,18 +3,9 @@ package com.yuyou.openapi.openapi.api;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.yuyou.openapi.openapi.common.CommonResponse; import com.yuyou.openapi.openapi.common.CommonResponse;
import com.yuyou.openapi.openapi.common.ResponseCode; import com.yuyou.openapi.openapi.common.ResponseCode;
import com.yuyou.openapi.openapi.model.convert.ABMessageConverter; import com.yuyou.openapi.openapi.model.convert.*;
import com.yuyou.openapi.openapi.model.convert.QingqingMessageConverter; import com.yuyou.openapi.openapi.model.dto.*;
import com.yuyou.openapi.openapi.model.convert.XiaomaMessageConverter; import com.yuyou.openapi.openapi.model.vo.*;
import com.yuyou.openapi.openapi.model.convert.ZhangmenMessageConverter;
import com.yuyou.openapi.openapi.model.dto.ABMessageDTO;
import com.yuyou.openapi.openapi.model.dto.ABZMMessageDTO;
import com.yuyou.openapi.openapi.model.dto.QingqingMessageDTO;
import com.yuyou.openapi.openapi.model.dto.XiaomaMessageDTO;
import com.yuyou.openapi.openapi.model.vo.ABClientInterMessageVO;
import com.yuyou.openapi.openapi.model.vo.ABClientQingqingMessageVO;
import com.yuyou.openapi.openapi.model.vo.ABClientXiaomaMessageVO;
import com.yuyou.openapi.openapi.model.vo.ABClientZMMessageVO;
import com.yuyou.openapi.openapi.service.ABClientService; import com.yuyou.openapi.openapi.service.ABClientService;
import com.yuyou.openapi.openapi.service.ABMessageService; import com.yuyou.openapi.openapi.service.ABMessageService;
import com.yuyou.openapi.openapi.task.ABDownTask; import com.yuyou.openapi.openapi.task.ABDownTask;
@ -198,4 +189,33 @@ public class ABClient {
return abClientService.recordXiaomaClientMsg(atoCvt)? return abClientService.recordXiaomaClientMsg(atoCvt)?
CommonResponse.createBySuccess() : CommonResponse.createByErrorMessage("调用失败请重试"); CommonResponse.createBySuccess() : CommonResponse.createByErrorMessage("调用失败请重试");
} }
/**
*
*
* @return
*/
@PostMapping("/api/req/forminput/zmkid")
@ResponseBody
public CommonResponse getFormData(@RequestBody ABClientZMKidMessageVO vo){
//记录日志
log.info("====== [ one request comming, request content is {} ] ======", vo.toString());
// 验证参数,并进行解密
String callLog = vo.getCalllog();
if (StringUtils.isEmpty(callLog)){
return CommonResponse.createByErrorMessage(ResponseCode.EMPTY_ARGUMENT.getDesc());
}
// 获取的是解密且解码后的Json字符串
String jsonResult = SecurityOperationUtil.decCallLogSecurityInfo(callLog);
// Json转成对应的实体类
if (StringUtils.isEmpty(jsonResult)){
return CommonResponse.createByErrorMessage(ResponseCode.DECRYPT_ERROR.getDesc());
}
// vo赋值到DTO
ZhangmenKidMessageDTO zhangmenKidMessageDTO = JSONUtil.toBean(jsonResult, ZhangmenKidMessageDTO.class);
ZhangmenKidMessageDTO atoCvt = ZhangmenKidMessageConverter.convertZhangmenKidMessageDTOFromVO(zhangmenKidMessageDTO, vo);
// 处理具体逻辑,返回校验成功的结果
return abClientService.recordZMKidClientMsg(atoCvt)?
CommonResponse.createBySuccess() : CommonResponse.createByErrorMessage("调用失败请重试");
}
} }

@ -21,6 +21,9 @@ public enum GradeEnum {
FIRST_HIGH(10, "高一"), FIRST_HIGH(10, "高一"),
SECOND_HIGH(11, "高二"), SECOND_HIGH(11, "高二"),
THIRD_HIGH(12, "高三"), THIRD_HIGH(12, "高三"),
JUNIOR_KINDERGARTEN(13, "小班"),
MIDDLE_KINDERGARTEN(14, "中班"),
SENIOR_KINDERGARTEN(15, "大班"),
; ;
private Integer code; private Integer code;

@ -0,0 +1,21 @@
package com.yuyou.openapi.openapi.dao;
import com.yuyou.openapi.openapi.model.dataobject.ZhangmenKidMessageDO;
import com.yuyou.openapi.openapi.model.dataobject.ZhangmenMessageDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface ZhangmenKidMessageRepository extends JpaRepository<ZhangmenKidMessageDO, Long> {
/**
* RecId
*
* @param recId Id
* @return
*/
List<ZhangmenKidMessageDO> findByRecId(Long recId);
}

@ -0,0 +1,93 @@
package com.yuyou.openapi.openapi.model.convert;
import cn.hutool.core.codec.Base64;
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.ZhangmenKidMessageDO;
import com.yuyou.openapi.openapi.model.dataobject.ZhangmenMessageDO;
import com.yuyou.openapi.openapi.model.dto.ABZMMessageDTO;
import com.yuyou.openapi.openapi.model.dto.ZhangmenKidMessageDTO;
import com.yuyou.openapi.openapi.model.vo.ABClientZMKidMessageVO;
import com.yuyou.openapi.openapi.model.vo.ABClientZMMessageVO;
import com.yuyou.openapi.openapi.utils.DateUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
/**
*
*
* @version 1.0
* @date 2020/8/10
*/
@Slf4j
public class ZhangmenKidMessageConverter {
/**
* VODTO
* @param abClientZMKidMessageVO
* @return
*/
public static ZhangmenKidMessageDTO convertZhangmenKidMessageDTOFromVO(ZhangmenKidMessageDTO zhangmenKidMessageDTO, ABClientZMKidMessageVO abClientZMKidMessageVO) {
BeanUtils.copyProperties(abClientZMKidMessageVO, zhangmenKidMessageDTO);
return zhangmenKidMessageDTO;
}
/**
* DTODO
* @param list
* @return
*/
public static List<ZhangmenKidMessageDO> convertZhangmenKidMessageDOFromDTO(List<ZhangmenKidMessageDTO> list) {
if (CollectionUtils.isEmpty(list)) {
return null;
}
List<ZhangmenKidMessageDO> zhangmenMessageDOs = new ArrayList<>();
list.forEach(each -> {
ZhangmenKidMessageDO zhangmenKidMessageDO = convertZhangmenKidMessageDOFromDTO(each);
if (zhangmenKidMessageDO != null) {
zhangmenMessageDOs.add(zhangmenKidMessageDO);
}
});
return zhangmenMessageDOs;
}
/**
* DTODO
* @param zhangmenKidMessageDTO
* @return
*/
public static ZhangmenKidMessageDO convertZhangmenKidMessageDOFromDTO(ZhangmenKidMessageDTO zhangmenKidMessageDTO) {
if (zhangmenKidMessageDTO == null || zhangmenKidMessageDTO.getTag() == null || zhangmenKidMessageDTO.getData() == null) {
return null;
}
ZhangmenKidMessageDO zhangmenKidMessageDO = new ZhangmenKidMessageDO();
BeanUtils.copyProperties(zhangmenKidMessageDTO.getData(), zhangmenKidMessageDO);
try {
zhangmenKidMessageDTO.getData().setMobile(Base64.encode(zhangmenKidMessageDTO.getData().getMobile()));
String encryptedMobile = SecurityService.encrypt(zhangmenKidMessageDTO.getData().getMobile(), SecurityConstants.PHONE);
String encryptedName = SecurityService.encrypt(zhangmenKidMessageDTO.getData().getName(), SecurityConstants.SIMPLE);
zhangmenKidMessageDO.setPnum(encryptedMobile);
zhangmenKidMessageDO.setStuName(encryptedName);
} catch (Exception e) {
log.error("Encrypt data raise Error, recId = {}, error is :", zhangmenKidMessageDTO.getTag().getTag_key_id(), e);
zhangmenKidMessageDO.setPnum(zhangmenKidMessageDTO.getData().getMobile());
zhangmenKidMessageDO.setStuName(zhangmenKidMessageDTO.getData().getName());
}
zhangmenKidMessageDO.setAppId(zhangmenKidMessageDTO.getAppId());
zhangmenKidMessageDO.setPushTime(DateUtils.date(zhangmenKidMessageDTO.getTimestamp()));
zhangmenKidMessageDO.setStuGrade(GradeEnum.codeOf(zhangmenKidMessageDTO.getData().getGrade()));
zhangmenKidMessageDO.setStuSub(SubjectEnum.codeOf(zhangmenKidMessageDTO.getData().getCourse()));
zhangmenKidMessageDO.setRecId(zhangmenKidMessageDTO.getTag().getTag_key_id());
return zhangmenKidMessageDO;
}
}

@ -0,0 +1,80 @@
package com.yuyou.openapi.openapi.model.dataobject;
import lombok.Data;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*;
import java.util.Date;
/**
*
* @version 1.0
* @date 2020/8/10
*/
@Data
@Table(name = "zhangmen_kid_message")
@Entity
@EntityListeners(AuditingEntityListener.class)
public class ZhangmenKidMessageDO {
/**
* id
*/
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Long id;
@Column(name = "gmt_create")
@CreatedDate
private Date gmtCreate;
@Column(name = "gmt_modified")
@LastModifiedDate
private Date gmtModified;
/**
* id
*/
@Column(name = "rec_id")
private Long recId;
/**
*
*/
@Column(name = "stu_name")
private String stuName;
/**
*
*/
private String pnum;
/**
*
*/
@Column(name = "stu_grade")
private Integer stuGrade;
/**
*
*/
@Column(name = "stu_sub")
private Integer stuSub;
/**
* id
*/
@Column(name = "app_id")
private String appId;
/**
*
*/
@Column(name = "push_time")
private Date pushTime;
@Column(name = "submit_status")
private Integer submitStatus = 0;
}

@ -0,0 +1,91 @@
package com.yuyou.openapi.openapi.model.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ZhangmenKidMessageDTO {
/**
* ID
*/
private String appId;
/**
*
*/
private Long timestamp;
/**
*
*/
private Tag tag;
/**
*
*/
private Datas data;
@Data
@AllArgsConstructor
@NoArgsConstructor
public static class Tag {
/**
* id
*/
private Long tag_key_id;
/**
*
*/
private String tag_key_name;
/**
*
*/
private String tag_key_mobile;
/**
*
*/
private String tag_key_grade;
/**
*
*/
private String tag_key_course;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public static class Datas {
/**
*
*/
private String name;
/**
*
*/
private String mobile;
/**
*
*/
private String grade;
/**
*
*/
private String course;
}
}

@ -0,0 +1,27 @@
package com.yuyou.openapi.openapi.model.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* Copyright (C), 2012 - 2018, qyx
* FileName: ABClientMessageVO
* Author: x
* Date: 2020/8/4 6:59 PM
* Description: ABClient
* History:
* <author> <time> <version> <desc>
* x 2020/8/4 v1.0
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class ABClientZMKidMessageVO extends ABClientBaseVO implements Serializable {
/**
*
*/
private String calllog;
}

@ -1,9 +1,6 @@
package com.yuyou.openapi.openapi.service; package com.yuyou.openapi.openapi.service;
import com.yuyou.openapi.openapi.model.dto.ABMessageDTO; import com.yuyou.openapi.openapi.model.dto.*;
import com.yuyou.openapi.openapi.model.dto.ABZMMessageDTO;
import com.yuyou.openapi.openapi.model.dto.QingqingMessageDTO;
import com.yuyou.openapi.openapi.model.dto.XiaomaMessageDTO;
import java.util.List; import java.util.List;
@ -52,4 +49,11 @@ public interface ABClientService {
* @param dto Bean * @param dto Bean
*/ */
boolean recordXiaomaClientMsg(XiaomaMessageDTO dto); boolean recordXiaomaClientMsg(XiaomaMessageDTO dto);
/**
* ,
*
* @param dto Bean
*/
boolean recordZMKidClientMsg(ZhangmenKidMessageDTO dto);
} }

@ -1,15 +1,9 @@
package com.yuyou.openapi.openapi.service.impl; package com.yuyou.openapi.openapi.service.impl;
import com.yuyou.openapi.openapi.dao.*; import com.yuyou.openapi.openapi.dao.*;
import com.yuyou.openapi.openapi.model.convert.ABMessageConverter; import com.yuyou.openapi.openapi.model.convert.*;
import com.yuyou.openapi.openapi.model.convert.QingqingMessageConverter;
import com.yuyou.openapi.openapi.model.convert.XiaomaMessageConverter;
import com.yuyou.openapi.openapi.model.convert.ZhangmenMessageConverter;
import com.yuyou.openapi.openapi.model.dataobject.*; import com.yuyou.openapi.openapi.model.dataobject.*;
import com.yuyou.openapi.openapi.model.dto.ABMessageDTO; import com.yuyou.openapi.openapi.model.dto.*;
import com.yuyou.openapi.openapi.model.dto.ABZMMessageDTO;
import com.yuyou.openapi.openapi.model.dto.QingqingMessageDTO;
import com.yuyou.openapi.openapi.model.dto.XiaomaMessageDTO;
import com.yuyou.openapi.openapi.service.ABClientService; import com.yuyou.openapi.openapi.service.ABClientService;
import com.yuyou.openapi.openapi.task.ABDownTask; import com.yuyou.openapi.openapi.task.ABDownTask;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -52,6 +46,9 @@ public class ABClientServiceImpl implements ABClientService {
@Autowired @Autowired
private XiaomaMessageRepository xiaomaMessageRepository; private XiaomaMessageRepository xiaomaMessageRepository;
@Autowired
private ZhangmenKidMessageRepository zhangmenKidMessageRepository;
@Override @Override
public boolean recordAndSendABClientMsg(List<ABMessageDTO> dtos) { public boolean recordAndSendABClientMsg(List<ABMessageDTO> dtos) {
if (CollectionUtils.isEmpty(dtos)) { if (CollectionUtils.isEmpty(dtos)) {
@ -183,4 +180,33 @@ public class ABClientServiceImpl implements ABClientService {
} }
return Boolean.TRUE; return Boolean.TRUE;
} }
@Override
public boolean recordZMKidClientMsg(ZhangmenKidMessageDTO dto) {
if (dto == null) {
log.error("Param dtos is empty");
return Boolean.FALSE;
}
ZhangmenKidMessageDO zhangmenKidMessageDO = ZhangmenKidMessageConverter.convertZhangmenKidMessageDOFromDTO(dto);
Long recId = zhangmenKidMessageDO.getRecId();
if (recId <= 0){
log.error("========== [recId is null,please check this data , error msg is {} ] ==========", dto.toString());
return Boolean.FALSE;
}
// 增加前先进行校验在数据库中是否存在
List<ZhangmenKidMessageDO> zhangmenKidMessageDOList = zhangmenKidMessageRepository.findByRecId(recId);
if (CollectionUtils.isEmpty(zhangmenKidMessageDOList)){
ZhangmenKidMessageDO result = zhangmenKidMessageRepository.save(zhangmenKidMessageDO);
if (result == null) {
log.error("========== [insert ZM_Kid data error , please check . ] ==========");
return Boolean.FALSE;
}
}else{
log.error("========== [insert ZM_Kid data error , recId is exist , recId is {} ] ==========", recId);
return Boolean.TRUE;
}
return Boolean.TRUE;
}
} }

@ -2,10 +2,7 @@ package com.yuyou.openapi.openapi.service.impl;
import cn.hutool.core.codec.Base64; import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.yuyou.openapi.openapi.model.dto.ABMessageDTO; import com.yuyou.openapi.openapi.model.dto.*;
import com.yuyou.openapi.openapi.model.dto.ABZMMessageDTO;
import com.yuyou.openapi.openapi.model.dto.QingqingMessageDTO;
import com.yuyou.openapi.openapi.model.dto.XiaomaMessageDTO;
import com.yuyou.openapi.openapi.service.ABClientService; import com.yuyou.openapi.openapi.service.ABClientService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -60,6 +57,11 @@ public class ABClientServiceProxy implements ABClientService {
return abClientService.recordXiaomaClientMsg(dto); return abClientService.recordXiaomaClientMsg(dto);
} }
@Override
public boolean recordZMKidClientMsg(ZhangmenKidMessageDTO dto) {
return abClientService.recordZMKidClientMsg(dto);
}
/** /**
* *
* @param base64Value * @param base64Value

Loading…
Cancel
Save