mirror of https://github.com/ZhongFuCheng3y/austin
parent
d63f4b3959
commit
957b5678d9
@ -1,4 +1,4 @@
|
||||
package com.java3y.austin.support.pipeline;
|
||||
package com.java3y.austin.common.pipeline;
|
||||
|
||||
/**
|
||||
* 业务执行器
|
@ -1,4 +1,4 @@
|
||||
package com.java3y.austin.support.pipeline;
|
||||
package com.java3y.austin.common.pipeline;
|
||||
|
||||
import com.java3y.austin.common.vo.BasicResultVO;
|
||||
import lombok.AllArgsConstructor;
|
@ -1,7 +1,6 @@
|
||||
package com.java3y.austin.support.exception;
|
||||
package com.java3y.austin.common.pipeline;
|
||||
|
||||
import com.java3y.austin.common.enums.RespStatusEnum;
|
||||
import com.java3y.austin.support.pipeline.ProcessContext;
|
||||
|
||||
import java.util.Objects;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package com.java3y.austin.support.pipeline;
|
||||
package com.java3y.austin.common.pipeline;
|
||||
|
||||
|
||||
/**
|
@ -1,4 +1,4 @@
|
||||
package com.java3y.austin.support.pipeline;
|
||||
package com.java3y.austin.common.pipeline;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -1,18 +0,0 @@
|
||||
package com.java3y.austin.handler.alipay;
|
||||
|
||||
import com.alipay.api.AlipayApiException;
|
||||
import com.java3y.austin.handler.domain.alipay.AlipayMiniProgramParam;
|
||||
|
||||
/**
|
||||
* @author jwq
|
||||
* 支付宝小程序发送订阅消息接口
|
||||
*/
|
||||
public interface AlipayMiniProgramAccountService {
|
||||
/**
|
||||
* 发送订阅消息
|
||||
*
|
||||
* @param miniProgramParam 订阅消息参数
|
||||
* @throws AlipayApiException alipay异常
|
||||
*/
|
||||
void send(AlipayMiniProgramParam miniProgramParam) throws AlipayApiException;
|
||||
}
|
@ -1,69 +0,0 @@
|
||||
package com.java3y.austin.handler.alipay.impl;
|
||||
|
||||
import com.alipay.api.AlipayApiException;
|
||||
import com.alipay.api.AlipayClient;
|
||||
import com.alipay.api.domain.AlipayOpenAppMiniTemplatemessageSendModel;
|
||||
import com.alipay.api.request.AlipayOpenAppMiniTemplatemessageSendRequest;
|
||||
import com.java3y.austin.common.dto.account.AlipayMiniProgramAccount;
|
||||
import com.java3y.austin.handler.alipay.AlipayMiniProgramAccountService;
|
||||
import com.java3y.austin.handler.config.AlipayClientSingleton;
|
||||
import com.java3y.austin.handler.domain.alipay.AlipayMiniProgramParam;
|
||||
import com.java3y.austin.support.utils.AccountUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @author jwq
|
||||
* 支付宝小程序发送订阅消息实现
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class AlipayMiniProgramAccountServiceImpl implements AlipayMiniProgramAccountService {
|
||||
|
||||
@Autowired
|
||||
private AccountUtils accountUtils;
|
||||
|
||||
/**
|
||||
* 发送订阅消息
|
||||
*
|
||||
* @param miniProgramParam 订阅消息参数
|
||||
* @throws AlipayApiException alipay异常
|
||||
*/
|
||||
@Override
|
||||
public void send(AlipayMiniProgramParam miniProgramParam) throws AlipayApiException {
|
||||
AlipayMiniProgramAccount miniProgramAccount = accountUtils.getAccountById(miniProgramParam.getSendAccount(), AlipayMiniProgramAccount.class);
|
||||
|
||||
AlipayClient client = AlipayClientSingleton.getSingleton(miniProgramAccount);
|
||||
List<AlipayOpenAppMiniTemplatemessageSendRequest> request = assembleReq(miniProgramParam, miniProgramAccount);
|
||||
for (AlipayOpenAppMiniTemplatemessageSendRequest req : request) {
|
||||
client.execute(req);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 组装模板消息的参数
|
||||
*/
|
||||
private List<AlipayOpenAppMiniTemplatemessageSendRequest> assembleReq(AlipayMiniProgramParam alipayMiniProgramParam, AlipayMiniProgramAccount alipayMiniProgramAccount) {
|
||||
Set<String> receiver = alipayMiniProgramParam.getToUserId();
|
||||
List<AlipayOpenAppMiniTemplatemessageSendRequest> requestList = new ArrayList<>(receiver.size());
|
||||
|
||||
for (String toUserId : receiver) {
|
||||
AlipayOpenAppMiniTemplatemessageSendRequest request = new AlipayOpenAppMiniTemplatemessageSendRequest();
|
||||
AlipayOpenAppMiniTemplatemessageSendModel model = new AlipayOpenAppMiniTemplatemessageSendModel();
|
||||
model.setToUserId(toUserId);
|
||||
model.setUserTemplateId(alipayMiniProgramAccount.getUserTemplateId());
|
||||
model.setPage(alipayMiniProgramAccount.getPage());
|
||||
model.setData(alipayMiniProgramParam.getData().toString());
|
||||
request.setBizModel(model);
|
||||
requestList.add(request);
|
||||
}
|
||||
return requestList;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
package com.java3y.austin.handler.config;
|
||||
|
||||
|
||||
import com.java3y.austin.common.pipeline.ProcessController;
|
||||
import com.java3y.austin.common.pipeline.ProcessTemplate;
|
||||
import com.java3y.austin.handler.action.DeduplicationAction;
|
||||
import com.java3y.austin.handler.action.DiscardAction;
|
||||
import com.java3y.austin.handler.action.SendMessageAction;
|
||||
import com.java3y.austin.handler.action.ShieldAction;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* handler层的pipeline配置类
|
||||
*
|
||||
* @author 3y
|
||||
*/
|
||||
@Configuration
|
||||
public class TaskPipelineConfig {
|
||||
public static final String PIPELINE_HANDLER_CODE = "handler";
|
||||
@Autowired
|
||||
private DiscardAction discardAction;
|
||||
@Autowired
|
||||
private ShieldAction shieldAction;
|
||||
@Autowired
|
||||
private DeduplicationAction deduplicationAction;
|
||||
@Autowired
|
||||
private SendMessageAction sendMessageAction;
|
||||
|
||||
|
||||
/**
|
||||
* 消息从MQ消费的流程
|
||||
* 0.丢弃消息
|
||||
* 1.屏蔽消息
|
||||
* 2.通用去重功能
|
||||
* 3.发送消息
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Bean("taskTemplate")
|
||||
public ProcessTemplate taskTemplate() {
|
||||
ProcessTemplate processTemplate = new ProcessTemplate();
|
||||
processTemplate.setProcessList(Arrays.asList(discardAction, shieldAction, deduplicationAction, sendMessageAction));
|
||||
return processTemplate;
|
||||
}
|
||||
|
||||
/**
|
||||
* pipeline流程控制器
|
||||
* 后续扩展则加BusinessCode和ProcessTemplate
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Bean("handlerProcessController")
|
||||
public ProcessController processController() {
|
||||
ProcessController processController = new ProcessController();
|
||||
Map<String, ProcessTemplate> templateConfig = new HashMap<>(4);
|
||||
templateConfig.put(PIPELINE_HANDLER_CODE, taskTemplate());
|
||||
processController.setTemplateConfig(templateConfig);
|
||||
return processController;
|
||||
}
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
package com.java3y.austin.handler.shield;
|
||||
|
||||
import com.java3y.austin.common.domain.TaskInfo;
|
||||
|
||||
/**
|
||||
* 屏蔽服务
|
||||
*
|
||||
* @author 3y
|
||||
*/
|
||||
public interface ShieldService {
|
||||
|
||||
|
||||
/**
|
||||
* 屏蔽消息
|
||||
*
|
||||
* @param taskInfo
|
||||
*/
|
||||
void shield(TaskInfo taskInfo);
|
||||
}
|
Loading…
Reference in new issue