家动力

master
土豆兄弟 4 years ago
parent c2e7c11986
commit c177276c86

@ -135,6 +135,24 @@ public class ABClient {
CommonResponse.createBySuccess() : CommonResponse.createByErrorMessage("调用失败请重试");
}
/**
* AB -
*
* @return
*/
@PostMapping("/api/req/taginfo/jdl")
@ResponseBody
public CommonResponse getDBTagInfoJiaDongLi(@RequestBody ABClientInterMessageVO vo) {
// 记录日志
log.info("====== [ JiaDongLi request comming, request content is {} ] ======", vo.toString());
// 转换实体类映射
List<ABMessageDTO> dtos = ABMessageConverter.convertABMessageDTOFromVO(vo);
// 调用业务处理接口 返回校验成功的结果
return abClientService.recordAndSendABClientMsgJiaDongLi(dtos) ?
CommonResponse.createBySuccess() : CommonResponse.createByErrorMessage("调用失败请重试");
}
/**
* AB -
*
@ -148,10 +166,26 @@ public class ABClient {
// 转换实体类映射
List<ABMessageDTO> dtos = ABMessageConverter.convertABMessageDTOFromVO(vo);
// 调用业务处理接口 返回校验成功的结果
return abClientService.recordAndSendABClientMsgWxFans(dtos) ?
return abClientService.recordAndSendABClientMsgWxFans(dtos, true) ?
CommonResponse.createBySuccess() : CommonResponse.createByErrorMessage("调用失败请重试");
}
/**
* AB -
*
* @return
*/
@PostMapping("/api/req/taginfo/wxfanslocal")
@ResponseBody
public CommonResponse getDBTagInfoWxFansLocal(@RequestBody ABClientInterMessageVO vo) {
// 记录日志
log.info("====== [ WX fans request comming, request content is {} ] ======", vo.toString());
// 转换实体类映射
List<ABMessageDTO> dtos = ABMessageConverter.convertABMessageDTOFromVO(vo);
// 调用业务处理接口 返回校验成功的结果
return abClientService.recordAndSendABClientMsgWxFans(dtos, false) ?
CommonResponse.createBySuccess() : CommonResponse.createByErrorMessage("调用失败请重试");
}
/**
* AB

@ -0,0 +1,46 @@
package com.yuyou.openapi.openapi.api.enums;
import cn.hutool.core.util.StrUtil;
import lombok.Getter;
import org.apache.commons.lang3.StringUtils;
/**
*
*/
@Getter
public enum LuoShiAppIDEnum {
/**
* -
*/
LS_WY_MATH("网易有道-数学","A"),
LS_WY_OTHER("其他","B")
;
LuoShiAppIDEnum(String actName, String tag) {
this.actName = actName;
this.tag = tag;
}
private String actName;
private String tag;
/**
* desc
* @param matchStr
* @return
*/
public static String tagOf(String matchStr) {
if (StrUtil.isBlank(matchStr)) {
return LuoShiAppIDEnum.LS_WY_OTHER.getTag();
}
for (LuoShiAppIDEnum luoShiAppIDEnum : LuoShiAppIDEnum.values()) {
if (StringUtils.countMatches(matchStr, luoShiAppIDEnum.getActName()) >= 0){
return luoShiAppIDEnum.getTag();
}
}
return LuoShiAppIDEnum.LS_WY_OTHER.getTag();
}
}

@ -0,0 +1,25 @@
package com.yuyou.openapi.openapi.dao;
import com.yuyou.openapi.openapi.model.dataobject.JiaDongLiMessageDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
/**
* Copyright (C), 2012 - 2018, qyx
* FileName: HeXiaoXiangMessageRepository
* Author:
* Date: 2020/10/22 2:52 PM
* Description: TODO
* History:
* <author> <time> <version> <desc>
* 2020/10/22 v1.0
*/
@Repository
public interface JiaDongLiMessageRepository extends JpaRepository<JiaDongLiMessageDO, Long>{
@Modifying
@Query("update JiaDongLiMessageDO t set t.sendStatus = ?1 where t.recId = ?2")
void updateSendStatus(Integer sendStatus, Long recId);
}

@ -149,6 +149,24 @@ public class ABMessageConverter {
return abMessageDOs;
}
/**
* DTODO
* @param dtos
* @return
*/
public static List<JiaDongLiMessageDO> convertJiaDongLiABMessageDOFromDTO(List<ABMessageDTO> dtos) {
if (CollectionUtils.isEmpty(dtos)) {
return null;
}
List<JiaDongLiMessageDO> abMessageDOs = new ArrayList<>();
dtos.forEach(each -> {
JiaDongLiMessageDO abMessageDO = convertJiaDongLiMessageDOFromDTO(each);
if (abMessageDO != null) {
abMessageDOs.add(abMessageDO);
}
});
return abMessageDOs;
}
/**
* DTODO
@ -378,6 +396,37 @@ public class ABMessageConverter {
return heXiaoXiangMessageDO;
}
/**
* Luoshi DTODO
* @param abMessageDTO
* @return
*/
public static JiaDongLiMessageDO convertJiaDongLiMessageDOFromDTO(ABMessageDTO abMessageDTO) {
JiaDongLiMessageDO jiaDongLiMessageDO = new JiaDongLiMessageDO();
if (abMessageDTO == null) {
return jiaDongLiMessageDO;
}
BeanUtils.copyProperties(abMessageDTO, jiaDongLiMessageDO);
jiaDongLiMessageDO.setPushTime(DateUtils.date(abMessageDTO.getTimestamp()));
jiaDongLiMessageDO.setStartTime(DateUtils.date(abMessageDTO.getStartTime()));
try{
jiaDongLiMessageDO.setRecId(Long.valueOf(abMessageDTO.getRecId()));
}catch (Exception e){
log.error("String convert Long type Error.", e);
}
// AES加密
try {
String encryptedMobile = SecurityService.encrypt(abMessageDTO.getMobile(), SecurityConstants.PHONE);
jiaDongLiMessageDO.setPnum(encryptedMobile);
} catch (Exception e) {
log.error("Encrypt Mobile raise Error, recId = {}, error is :", abMessageDTO.getRecId(), e);
jiaDongLiMessageDO.setPnum(abMessageDTO.getMobile());
}
return jiaDongLiMessageDO;
}
/**
* Luoshi DTODO
* @param abMessageDTO

@ -0,0 +1,86 @@
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;
/**
* Copyright (C), 2012 - 2018, qyx
* FileName: HeXiaoXiangMessageDO
* Author:
* Date: 2020/10/22 2:49 PM
* Description: TODO
* History:
* <author> <time> <version> <desc>
* 2020/10/22 v1.0
*/
@Data
@Table(name = "jiadongli_message")
@Entity
@EntityListeners(AuditingEntityListener.class)
public class JiaDongLiMessageDO {
@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 = "pnum")
private String pnum;
/**
*
*/
@Column(name = "act_name")
private String actName;
/**
*
*/
@Column(name = "start_time")
private Date startTime;
/**
* (1:A,2:B,3:C,4:D,5:E,6:F)
*/
@Column(name = "client_type")
private Integer clientType;
/**
* id
*/
@Column(name = "app_id")
private String appId;
/**
*
*/
@Column(name = "push_time")
private Date pushTime;
/**
* 0 0 - 1 -
*/
@Column(name = "send_status")
private Integer sendStatus = 0;
}

@ -45,7 +45,12 @@ public interface ABClientService {
/**
* ,
*/
boolean recordAndSendABClientMsgWxFans(List<ABMessageDTO> dtos);
boolean recordAndSendABClientMsgJiaDongLi(List<ABMessageDTO> dtos);
/**
* ,
*/
boolean recordAndSendABClientMsgWxFans(List<ABMessageDTO> dtos, boolean tag);
/**
* TODO:.recordAndSendABClientMsg

@ -81,6 +81,8 @@ public class ABClientServiceImpl implements ABClientService {
@Autowired
private FudaojunMessageRepository fudaojunMessageRepository;
@Autowired
private JiaDongLiMessageRepository jiaDongLiMessageRepository;
@Override
public boolean recordAndSendABClientMsg(List<ABMessageDTO> dtos) {
@ -142,6 +144,22 @@ public class ABClientServiceImpl implements ABClientService {
return Boolean.TRUE;
}
@Override
public boolean recordAndSendABClientMsgJiaDongLi(List<ABMessageDTO> dtos) {
if (CollectionUtils.isEmpty(dtos)) {
log.error("Param dtos is empty");
return Boolean.FALSE;
}
// 调用接口进行入库
List<JiaDongLiMessageDO> abMessageDOS = ABMessageConverter.convertJiaDongLiABMessageDOFromDTO(dtos);
List<JiaDongLiMessageDO> dos = jiaDongLiMessageRepository.saveAll(abMessageDOS);
if (CollectionUtils.isEmpty(dos)){
log.error("========== [insert data error , please check .] ==========");
return Boolean.FALSE;
}
return Boolean.TRUE;
}
@Override
public boolean recordAndSendABClientMsgHeXiaoXiang(List<ABMessageDTO> dtos) {
if (CollectionUtils.isEmpty(dtos)) {
@ -150,7 +168,7 @@ public class ABClientServiceImpl implements ABClientService {
}
// 调用接口进行入库
List<HeXiaoXiangMessageDO> abMessageDOS = ABMessageConverter.convertHeXiaoXiangABMessageDOFromDTO(dtos);
// TODO: 2020/8/10 0010 加密存储
List<HeXiaoXiangMessageDO> dos = heXiaoXiangMessageRepository.saveAll(abMessageDOS);
if (CollectionUtils.isEmpty(dos)){
log.error("========== [insert data error , please check .] ==========");
@ -163,7 +181,7 @@ public class ABClientServiceImpl implements ABClientService {
}
@Override
public boolean recordAndSendABClientMsgWxFans(List<ABMessageDTO> dtos) {
public boolean recordAndSendABClientMsgWxFans(List<ABMessageDTO> dtos, boolean tag) {
if (CollectionUtils.isEmpty(dtos)) {
log.error("Param dtos is empty");
return Boolean.FALSE;
@ -178,7 +196,9 @@ public class ABClientServiceImpl implements ABClientService {
}
// 调用异步任务进行转发AB单 - 这里是这有一条数据
// 返回处理结果
abDownTask.doRunWxFansTask(dtos);
if (tag){
abDownTask.doRunWxFansTask(dtos);
}
return Boolean.TRUE;
}
@ -357,7 +377,7 @@ public class ABClientServiceImpl implements ABClientService {
List<ZhangmenMessageDO> zhangmenKidMessageDOList = zhangmenMessageRepository.findByRecIdAndAppId(recId, appId);
// modify by 2020-10-19 判断规则改成 通过appId和recId一起来判别
// List<ZhangmenKidMessageDO> zhangmenKidMessageDOList = zhangmenKidMessageRepository.findByRecId(recId);
if (!CollectionUtils.isEmpty(zhangmenKidMessageDOList)){
if (CollectionUtils.isEmpty(zhangmenKidMessageDOList)){
ZhangmenKidMessageDO result = zhangmenKidMessageRepository.save(zhangmenKidMessageDO);
if (result == null) {
log.error("========== [insert ZM_Kid data error , please check . ] ==========");

@ -74,8 +74,13 @@ public class ABClientServiceProxy implements ABClientService {
}
@Override
public boolean recordAndSendABClientMsgWxFans(List<ABMessageDTO> dtos) {
return abClientService.recordAndSendABClientMsgWxFans(dtos);
public boolean recordAndSendABClientMsgJiaDongLi(List<ABMessageDTO> dtos) {
return abClientService.recordAndSendABClientMsgJiaDongLi(dtos);
}
@Override
public boolean recordAndSendABClientMsgWxFans(List<ABMessageDTO> dtos, boolean tag) {
return abClientService.recordAndSendABClientMsgWxFans(dtos, tag);
}
@Override

@ -8,6 +8,7 @@ import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yuyou.openapi.openapi.api.enums.LuoShiAppIDEnum;
import com.yuyou.openapi.openapi.common.enums.IntentionEnum;
import com.yuyou.openapi.openapi.model.dto.*;
import com.yuyou.openapi.openapi.service.ABMessageService;
@ -323,6 +324,7 @@ public class ABDownTask {
each->{
LuoshiMessageCovDTO.LuoshiData luoshiData = new LuoshiMessageCovDTO.LuoshiData();
// BeanUtils.copyProperties(each, luoshiData);
luoshiData.setActName(LuoShiAppIDEnum.tagOf(each.getActName()));
luoshiData.setInfo(each.getMobile());
luoshiData.setType(1);
luoshiData.setTime(each.getStartTime());
@ -336,6 +338,7 @@ public class ABDownTask {
// 补充其他的下游请求字段
long time = System.currentTimeMillis() / 1000;
luoshiMessageCovDTO.setTimestamp(time);
// 进行罗什的渠道通配 - 每次发送请求必须一批一样的
luoshiMessageCovDTO.setAppId(luoShiAppId);
luoshiMessageCovDTO.setSignature(SecureUtil.sha1("app_id="+ luoShiAppId +"&timestamp="+ time + "&secret=" + luoShiSecretKey));
// 数据实体转成Json 不忽略空kv 有序

Loading…
Cancel
Save