新增瓜子业务

master
queyounan 4 years ago
parent d5755635e8
commit 792e5e13f5

@ -443,4 +443,33 @@ public class ABClient {
return abClientService.recordXuebaClientMsg(atoCvt)?
CommonResponse.createBySuccess() : CommonResponse.createByErrorMessage("调用失败请重试");
}
/**
*
*
* @return
*/
@PostMapping("/api/req/forminput/guazi")
@ResponseBody
public CommonResponse getFormData(@RequestBody ABClientGuaziMessageVO 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
GuaziMessageDTO guaziMessageDTO = JSONUtil.toBean(jsonResult, GuaziMessageDTO.class);
GuaziMessageDTO atoCvt = GuaziMessageConverter.convertGuaziMessageDTOFromVO(guaziMessageDTO, vo);
// 处理具体逻辑,返回校验成功的结果
return abClientService.recordGuaziClientMsg(atoCvt)?
CommonResponse.createBySuccess() : CommonResponse.createByErrorMessage("调用失败请重试");
}
}

@ -8,6 +8,9 @@ package com.yuyou.openapi.openapi.common.security;
*/
public interface SecurityConstants {
public static final int PHONE_ENCRYPT_TAG = 0;
public static final int SIMPLE_ENCRYPT_TAG = 1;
public static final String PHONE_ENCRYPT_TYPE = "0";
public static final String SIMPLE_ENCRYPT_TYPE = "1";

@ -1,6 +1,6 @@
package com.yuyou.openapi.openapi.common.security;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.StrUtil;
import com.yuyou.openapi.openapi.exception.SecretException;
import com.yuyou.openapi.openapi.utils.SecurityOperationUtil;

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

@ -7,11 +7,8 @@ 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.AcasuoMessageDO;
import com.yuyou.openapi.openapi.model.dataobject.NeteaseMessageDO;
import com.yuyou.openapi.openapi.model.dto.AcasuoMessageDTO;
import com.yuyou.openapi.openapi.model.dto.NeteaseMessageDTO;
import com.yuyou.openapi.openapi.model.vo.ABClientAcasuoMessageVO;
import com.yuyou.openapi.openapi.model.vo.ABClientNeteaseMessageVO;
import com.yuyou.openapi.openapi.utils.DateUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;

@ -6,11 +6,8 @@ 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.AngliMessageDO;
import com.yuyou.openapi.openapi.model.dataobject.ZhangmenMessageDO;
import com.yuyou.openapi.openapi.model.dto.ABZMMessageDTO;
import com.yuyou.openapi.openapi.model.dto.AngliMessageDTO;
import com.yuyou.openapi.openapi.model.vo.ABClientAngliMessageVO;
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;

@ -0,0 +1,85 @@
package com.yuyou.openapi.openapi.model.convert;
import cn.hutool.core.codec.Base64;
import com.yuyou.openapi.openapi.common.security.SecurityConstants;
import com.yuyou.openapi.openapi.common.security.SecurityService;
import com.yuyou.openapi.openapi.model.dataobject.GuaziMessageDO;
import com.yuyou.openapi.openapi.model.dto.GuaziMessageDTO;
import com.yuyou.openapi.openapi.model.vo.ABClientGuaziMessageVO;
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 GuaziMessageConverter {
/**
* VODTO
* @param guaziMessageDTO
* @param abClientGuaziMessageVO
* @return
*/
public static GuaziMessageDTO convertGuaziMessageDTOFromVO(GuaziMessageDTO guaziMessageDTO, ABClientGuaziMessageVO abClientGuaziMessageVO) {
BeanUtils.copyProperties(abClientGuaziMessageVO, guaziMessageDTO);
return guaziMessageDTO;
}
/**
* DTODO
* @param list
* @return
*/
public static List<GuaziMessageDO> convertGuaziMessageDOFromDTO(List<GuaziMessageDTO> list) {
if (CollectionUtils.isEmpty(list)) {
return null;
}
List<GuaziMessageDO> guaziMessageDOs = new ArrayList<>();
list.forEach(each -> {
GuaziMessageDO guaziMessageDO = convertGuaziMessageDOFromDTO(each);
if (guaziMessageDO != null) {
guaziMessageDOs.add(guaziMessageDO);
}
});
return guaziMessageDOs;
}
/**
* DTODO
* @param guaziMessageDTO
* @return
*/
public static GuaziMessageDO convertGuaziMessageDOFromDTO(GuaziMessageDTO guaziMessageDTO) {
if (guaziMessageDTO == null || guaziMessageDTO.getTag() == null || guaziMessageDTO.getData() == null) {
return null;
}
GuaziMessageDO guaziMessageDO = new GuaziMessageDO();
BeanUtils.copyProperties(guaziMessageDTO.getData(), guaziMessageDO);
try {
guaziMessageDTO.getData().setMobile(Base64.encode(guaziMessageDTO.getData().getMobile()));
String encryptedMobile = SecurityService.encrypt(guaziMessageDTO.getData().getMobile(), SecurityConstants.PHONE);
String encryptedName = SecurityService.encrypt(guaziMessageDTO.getData().getName(), SecurityConstants.SIMPLE);
guaziMessageDO.setPnum(encryptedMobile);
guaziMessageDO.setName(encryptedName);
} catch (Exception e) {
log.error("Encrypt data raise Error, recId = {}, error is :", guaziMessageDTO.getTag().getTag_key_id(), e);
guaziMessageDO.setPnum(guaziMessageDTO.getData().getMobile());
guaziMessageDO.setName(guaziMessageDTO.getData().getName());
}
guaziMessageDO.setAppId(guaziMessageDTO.getAppId());
guaziMessageDO.setPushTime(DateUtils.date(guaziMessageDTO.getTimestamp()));
guaziMessageDO.setRecId(guaziMessageDTO.getTag().getTag_key_id());
return guaziMessageDO;
}
}

@ -6,11 +6,8 @@ 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.NeteaseMessageDO;
import com.yuyou.openapi.openapi.model.dataobject.ZhangmenKidMessageDO;
import com.yuyou.openapi.openapi.model.dto.NeteaseMessageDTO;
import com.yuyou.openapi.openapi.model.dto.ZhangmenKidMessageDTO;
import com.yuyou.openapi.openapi.model.vo.ABClientNeteaseMessageVO;
import com.yuyou.openapi.openapi.model.vo.ABClientZMKidMessageVO;
import com.yuyou.openapi.openapi.utils.DateUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;

@ -1,6 +1,7 @@
package com.yuyou.openapi.openapi.model.convert;
import cn.hutool.core.codec.Base64;
import com.yuyou.openapi.openapi.common.enums.ConstantEnum;
import com.yuyou.openapi.openapi.common.enums.GradeEnum;
import com.yuyou.openapi.openapi.common.enums.SubjectEnum;
import com.yuyou.openapi.openapi.common.security.SecurityConstants;
@ -83,6 +84,7 @@ public class QingqingMessageConverter {
qingqingMessageDO.setStuGrade(GradeEnum.codeOf(qingqingMessageDTO.getData().getGrade()));
qingqingMessageDO.setStuSub(SubjectEnum.codeOf(qingqingMessageDTO.getData().getCourse()));
qingqingMessageDO.setDevice(ConstantEnum.YesOrNo.codeOf(qingqingMessageDTO.getData().getDevice()));
qingqingMessageDO.setRecId(qingqingMessageDTO.getTag().getTag_key_id());

@ -6,9 +6,7 @@ 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.NeteaseMessageDO;
import com.yuyou.openapi.openapi.model.dataobject.SongshuMessageDO;
import com.yuyou.openapi.openapi.model.dto.NeteaseMessageDTO;
import com.yuyou.openapi.openapi.model.dto.SongshuMessageDTO;
import com.yuyou.openapi.openapi.model.vo.ABClientSongshuMessageVO;
import com.yuyou.openapi.openapi.utils.DateUtils;

@ -4,14 +4,10 @@ import cn.hutool.core.codec.Base64;
import com.yuyou.openapi.openapi.common.enums.CityEnum;
import com.yuyou.openapi.openapi.common.enums.ConstantEnum;
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.QingqingMessageDO;
import com.yuyou.openapi.openapi.model.dataobject.XiaomaMessageDO;
import com.yuyou.openapi.openapi.model.dto.QingqingMessageDTO;
import com.yuyou.openapi.openapi.model.dto.XiaomaMessageDTO;
import com.yuyou.openapi.openapi.model.vo.ABClientQingqingMessageVO;
import com.yuyou.openapi.openapi.model.vo.ABClientXiaomaMessageVO;
import com.yuyou.openapi.openapi.utils.DateUtils;
import lombok.extern.slf4j.Slf4j;

@ -6,11 +6,8 @@ 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.SongshuMessageDO;
import com.yuyou.openapi.openapi.model.dataobject.XuebaMessageDO;
import com.yuyou.openapi.openapi.model.dto.SongshuMessageDTO;
import com.yuyou.openapi.openapi.model.dto.XuebaMessageDTO;
import com.yuyou.openapi.openapi.model.vo.ABClientSongshuMessageVO;
import com.yuyou.openapi.openapi.model.vo.ABClientXuebaMessageVO;
import com.yuyou.openapi.openapi.utils.DateUtils;
import lombok.extern.slf4j.Slf4j;

@ -7,11 +7,9 @@ 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;

@ -0,0 +1,81 @@
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 = "guazi_message")
@Entity
@EntityListeners(AuditingEntityListener.class)
public class GuaziMessageDO {
/**
* 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 = "name")
private String name;
/**
*
*/
private String pnum;
/**
*
*/
private String brand;
/**
*
*/
private String type;
/**
* id
*/
@Column(name = "app_id")
private String appId;
/**
*
*/
@Column(name = "push_time")
private Date pushTime;
@Column(name = "submit_status")
private Integer submitStatus = 0;
@Column(name = "response_status")
private Integer responseStatus = 0;
}

@ -70,7 +70,7 @@ public class QingqingMessageDO {
private Integer device;
@Column(name = "appointment")
private Integer appointment;
private Integer appointment = -1;
/**
* id

@ -0,0 +1,89 @@
package com.yuyou.openapi.openapi.model.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class GuaziMessageDTO {
/**
* 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_brand;
/**
*
*/
private String tag_key_type;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public static class Datas {
/**
*
*/
private String name;
/**
*
*/
private String mobile;
/**
*
*/
private String brand;
/**
*
*/
private String type;
}
}

@ -65,11 +65,6 @@ public class QingqingMessageDTO {
*/
private String tag_key_device;
/**
*
*/
private String tag_key_appointment;
}
@Data
@ -100,12 +95,8 @@ public class QingqingMessageDTO {
/**
*
*/
private Integer device;
private String device;
/**
*
*/
private Integer appointment;
}
}

@ -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 ABClientGuaziMessageVO extends ABClientBaseVO implements Serializable {
/**
*
*/
private String calllog;
}

@ -112,4 +112,11 @@ public interface ABClientService {
* @param dto Bean
*/
boolean recordXuebaClientMsg(XuebaMessageDTO dto);
/**
* ,
*
* @param dto Bean
*/
boolean recordGuaziClientMsg(GuaziMessageDTO dto);
}

@ -73,6 +73,9 @@ public class ABClientServiceImpl implements ABClientService {
@Autowired
private XuebaMessageRepository xuebaMessageRepository;
@Autowired
private GuaziMessageRepository guaziMessageRepository;
@Override
public boolean recordAndSendABClientMsg(List<ABMessageDTO> dtos) {
if (CollectionUtils.isEmpty(dtos)) {
@ -485,4 +488,33 @@ public class ABClientServiceImpl implements ABClientService {
}
return Boolean.TRUE;
}
@Override
public boolean recordGuaziClientMsg(GuaziMessageDTO dto) {
if (dto == null) {
log.error("Param dtos is empty");
return Boolean.FALSE;
}
GuaziMessageDO guaziMessageDO = GuaziMessageConverter.convertGuaziMessageDOFromDTO(dto);
Long recId = guaziMessageDO.getRecId();
if (recId <= 0){
log.error("========== [recId is null,please check this data , error msg is {} ] ==========", dto.toString());
return Boolean.FALSE;
}
// 增加前先进行校验在数据库中是否存在
List<GuaziMessageDO> guaziMessageDOList = guaziMessageRepository.findByRecId(recId);
if (CollectionUtils.isEmpty(guaziMessageDOList)){
GuaziMessageDO result = guaziMessageRepository.save(guaziMessageDO);
if (result == null) {
log.error("========== [insert guazi data error , please check . ] ==========");
return Boolean.FALSE;
}
}else{
log.error("========== [insert guazi data error , recId is exist , recId is {} ] ==========", recId);
return Boolean.TRUE;
}
return Boolean.TRUE;
}
}

@ -123,6 +123,12 @@ public class ABClientServiceProxy implements ABClientService {
return abClientService.recordXuebaClientMsg(dto);
}
@Override
public boolean recordGuaziClientMsg(GuaziMessageDTO dto) {
return abClientService.recordGuaziClientMsg(dto);
}
/**
*
* @param base64Value

Loading…
Cancel
Save