Merge branch 'master' of http://git.hchbox.com/yuyou/client into master

master
土豆兄弟 4 years ago
commit 54333e84c7

@ -243,4 +243,33 @@ public class ABClient {
return abClientService.recordZMKidClientMsg(atoCvt)?
CommonResponse.createBySuccess() : CommonResponse.createByErrorMessage("调用失败请重试");
}
/**
*
*
* @return
*/
@PostMapping("/api/req/forminput/angli")
@ResponseBody
public CommonResponse getFormData(@RequestBody ABClientAngliMessageVO 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
AngliMessageDTO angliMessageDTO = JSONUtil.toBean(jsonResult, AngliMessageDTO.class);
AngliMessageDTO atoCvt = AngliMessageConverter.convertAngliMessageDTOFromVO(angliMessageDTO, vo);
// 处理具体逻辑,返回校验成功的结果
return abClientService.recordAngliClientMsg(atoCvt)?
CommonResponse.createBySuccess() : CommonResponse.createByErrorMessage("调用失败请重试");
}
}

@ -0,0 +1,31 @@
package com.yuyou.openapi.openapi.dao;
import com.yuyou.openapi.openapi.model.dataobject.AngliMessageDO;
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 AngliRepository extends JpaRepository<AngliMessageDO,Long> {
/**
* RecId
*
* @param recId Id
* @return
*/
List<AngliMessageDO> findByRecId(Long recId);
/**
* fixme recId,, app_id rec_id ,
*/
List<AngliMessageDO> findByRecIdAndAppId(Long recId, String appId);
/**
* pnum
*/
List<AngliMessageDO> findByPnumAndSubmitStatus(String pnum, Integer submitStatus);
}

@ -2,6 +2,7 @@ package com.yuyou.openapi.openapi.dao;
import com.yuyou.openapi.openapi.model.dataobject.ZhangmenMessageDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.List;
@ -24,7 +25,7 @@ public interface ZhangmenMessageRepository extends JpaRepository<ZhangmenMessage
List<ZhangmenMessageDO> findByRecIdAndAppId(Long recId, String appId);
/**
* pnum
* pnum
*/
List<ZhangmenMessageDO> findByPnum(String pnum);
List<ZhangmenMessageDO> findByPnumAndSubmitStatus(String pnum, Integer submitStatus);
}

@ -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.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;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
/**
*
*
* @version 1.0
* @date 2020/8/10
*/
@Slf4j
public class AngliMessageConverter {
/**
* VODTO
* @param abClientAngliMessageVO
* @return
*/
public static AngliMessageDTO convertAngliMessageDTOFromVO(AngliMessageDTO angliMessageDTO, ABClientAngliMessageVO abClientAngliMessageVO) {
BeanUtils.copyProperties(abClientAngliMessageVO, angliMessageDTO);
return angliMessageDTO;
}
/**
* DTODO
* @param list
* @return
*/
public static List<AngliMessageDO> convertAngliMessageDOFromDTO(List<AngliMessageDTO> list) {
if (CollectionUtils.isEmpty(list)) {
return null;
}
List<AngliMessageDO> angliMessageDOs = new ArrayList<>();
list.forEach(each -> {
AngliMessageDO angliMessageDO = convertAngliMessageDOFromDTO(each);
if (angliMessageDO != null) {
angliMessageDOs.add(angliMessageDO);
}
});
return angliMessageDOs;
}
/**
* DTODO
* @param angliMessageDTO
* @return
*/
public static AngliMessageDO convertAngliMessageDOFromDTO(AngliMessageDTO angliMessageDTO) {
if (angliMessageDTO == null || angliMessageDTO.getTag() == null || angliMessageDTO.getData() == null) {
return null;
}
AngliMessageDO angliMessageDO = new AngliMessageDO();
BeanUtils.copyProperties(angliMessageDTO.getData(), angliMessageDO);
try {
angliMessageDTO.getData().setMobile(Base64.encode(angliMessageDTO.getData().getMobile()));
String encryptedMobile = SecurityService.encrypt(angliMessageDTO.getData().getMobile(), SecurityConstants.PHONE);
String encryptedName = SecurityService.encrypt(angliMessageDTO.getData().getName(), SecurityConstants.SIMPLE);
angliMessageDO.setPnum(encryptedMobile);
angliMessageDO.setStuName(encryptedName);
} catch (Exception e) {
log.error("Encrypt data raise Error, recId = {}, error is :", angliMessageDTO.getTag().getTag_key_id(), e);
angliMessageDO.setPnum(angliMessageDTO.getData().getMobile());
angliMessageDO.setStuName(angliMessageDTO.getData().getName());
}
angliMessageDO.setAppId(angliMessageDTO.getAppId());
angliMessageDO.setPushTime(DateUtils.date(angliMessageDTO.getTimestamp()));
angliMessageDO.setStuGrade(GradeEnum.codeOf(angliMessageDTO.getData().getGrade()));
angliMessageDO.setStuSub(SubjectEnum.codeOf(angliMessageDTO.getData().getCourse()));
angliMessageDO.setRecId(angliMessageDTO.getTag().getTag_key_id());
return angliMessageDO;
}
}

@ -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 = "angli_message")
@Entity
@EntityListeners(AuditingEntityListener.class)
public class AngliMessageDO {
/**
* 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 AngliMessageDTO {
/**
* 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 ABClientAngliMessageVO extends ABClientBaseVO implements Serializable {
/**
*
*/
private String calllog;
}

@ -56,9 +56,16 @@ public interface ABClientService {
boolean recordXiaomaClientMsg(XiaomaMessageDTO dto);
/**
* ,
* ,
*
* @param dto Bean
* @param dto Bean
*/
boolean recordZMKidClientMsg(ZhangmenKidMessageDTO dto);
/**
* ,
*
* @param dto Bean
*/
boolean recordAngliClientMsg(AngliMessageDTO dto);
}

@ -52,6 +52,9 @@ public class ABClientServiceImpl implements ABClientService {
@Autowired
private ZhangmenKidMessageRepository zhangmenKidMessageRepository;
@Autowired
private AngliRepository angliRepository;
@Override
public boolean recordAndSendABClientMsg(List<ABMessageDTO> dtos) {
if (CollectionUtils.isEmpty(dtos)) {
@ -130,9 +133,9 @@ public class ABClientServiceImpl implements ABClientService {
log.error("========== [recId is null,please check this data , error msg is {} ] ==========", dto.toString());
return Boolean.FALSE;
}
// 增加先进行校验客户是否已经存在
// 增加先进行校验客户是否已经预约过
String pnum = zhangmenMessageDO.getPnum();
List<ZhangmenMessageDO> zmDOList = zhangmenMessageRepository.findByPnum(pnum);
List<ZhangmenMessageDO> zmDOList = zhangmenMessageRepository.findByPnumAndSubmitStatus(pnum, 1);
if (!CollectionUtils.isEmpty(zmDOList)){
log.error("========== [pnum already exist, red_id is {}] ==========", recId);
return Boolean.FALSE;
@ -245,4 +248,33 @@ public class ABClientServiceImpl implements ABClientService {
}
return Boolean.TRUE;
}
@Override
public boolean recordAngliClientMsg(AngliMessageDTO dto) {
if (dto == null) {
log.error("Param dtos is empty");
return Boolean.FALSE;
}
AngliMessageDO angliMessageDO = AngliMessageConverter.convertAngliMessageDOFromDTO(dto);
Long recId = angliMessageDO.getRecId();
if (recId <= 0){
log.error("========== [recId is null, please check this data , error msg is {} ] ==========", dto.toString());
return Boolean.FALSE;
}
// 增加前先进行校验在数据库中是否存在
List<AngliMessageDO> angliMessageDOList = angliRepository.findByRecId(recId);
if (CollectionUtils.isEmpty(angliMessageDOList)){
AngliMessageDO result = angliRepository.save(angliMessageDO);
if (result == null) {
log.error("========== [insert angli data error , please check . ] ==========");
return Boolean.FALSE;
}
}else{
log.error("========== [insert angli data error , recId is exist , recId is {} ] ==========", recId);
return Boolean.TRUE;
}
return Boolean.TRUE;
}
}

@ -73,6 +73,11 @@ public class ABClientServiceProxy implements ABClientService {
return abClientService.recordZMKidClientMsg(dto);
}
@Override
public boolean recordAngliClientMsg(AngliMessageDTO dto) {
return abClientService.recordAngliClientMsg(dto);
}
/**
*
* @param base64Value

Loading…
Cancel
Save