package com.java110.fee.cmd.fee;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.java110.core.annotation.Java110Cmd;
|
import com.java110.core.context.ICmdDataFlowContext;
|
import com.java110.core.event.cmd.Cmd;
|
import com.java110.core.event.cmd.CmdEvent;
|
import com.java110.dto.payment.PaymentPoolDto;
|
import com.java110.dto.payment.PaymentPoolValueDto;
|
import com.java110.dto.wechat.SmallWeChatDto;
|
import com.java110.intf.acct.IPaymentPoolV1InnerServiceSMO;
|
import com.java110.intf.acct.IPaymentPoolValueV1InnerServiceSMO;
|
import com.java110.utils.cache.CommonCache;
|
import com.java110.utils.cache.MappingCache;
|
import com.java110.utils.constant.MappingConstant;
|
import com.java110.utils.constant.WechatConstant;
|
import com.java110.utils.exception.CmdException;
|
import com.java110.utils.util.Assert;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.http.HttpStatus;
|
import org.springframework.http.ResponseEntity;
|
|
import java.text.ParseException;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
@Java110Cmd(serviceCode = "fee.rollBack")
|
public class RollBack extends Cmd {
|
|
@Autowired
|
private IPaymentPoolV1InnerServiceSMO paymentPoolV1InnerServiceSMOImpl;
|
|
@Autowired
|
private IPaymentPoolValueV1InnerServiceSMO paymentPoolValueV1InnerServiceSMOImpl;
|
|
@Override
|
public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
|
// Assert.hasKeyAndValue(reqJson, "business", "未包含业务");
|
}
|
|
@Override
|
public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
|
|
SmallWeChatDto smallWeChatDto = get(reqJson.getString("communityId"));
|
String orderId = reqJson.getString("orderId");
|
System.out.println(orderId);
|
String paramIn = CommonCache.getValue("nativeQrcodePayment_" + orderId);
|
if (paramIn == null) {
|
paramIn = CommonCache.getValue("unifiedPayment_" + orderId);
|
if (paramIn == null) {
|
ResponseEntity<String> responseEntity = new ResponseEntity<String>("1", HttpStatus.NOT_FOUND);
|
context.setResponseEntity(responseEntity);
|
}else{
|
ResponseEntity<String> responseEntity = new ResponseEntity<String>("0", HttpStatus.NOT_FOUND);
|
context.setResponseEntity(responseEntity);
|
}
|
}else{
|
ResponseEntity<String> responseEntity = new ResponseEntity<String>("0", HttpStatus.NOT_FOUND);
|
context.setResponseEntity(responseEntity);
|
}
|
}
|
|
public SmallWeChatDto get(String community){
|
SmallWeChatDto smallWeChatDto = new SmallWeChatDto();
|
//由于富有支付方式要从数据库里面取值,所以此处要查询
|
PaymentPoolDto paymentPoolDto = new PaymentPoolDto();
|
paymentPoolDto.setCommunityId(community);
|
paymentPoolDto.setPage(1);
|
paymentPoolDto.setRow(10);
|
List<PaymentPoolDto> paymentPoolDtos = paymentPoolV1InnerServiceSMOImpl.queryPaymentPools(paymentPoolDto);
|
List<PaymentPoolDto> collect = paymentPoolDtos.stream().filter(e -> e.getPaymentType().equals("FUIOU")).collect(Collectors.toList());
|
PaymentPoolValueDto paymentPoolValueDto = new PaymentPoolValueDto();
|
paymentPoolValueDto.setPpId(collect.get(0).getPpId());
|
paymentPoolValueDto.setCommunityId(community);
|
List<PaymentPoolValueDto> values = paymentPoolValueV1InnerServiceSMOImpl.queryPaymentPoolValues(paymentPoolValueDto);
|
Map<String, List<PaymentPoolValueDto>> payMap = values.stream().collect(Collectors.groupingBy(PaymentPoolValueDto::getColumnKey));
|
if(payMap.containsKey("FUIOU_APP_ID")){
|
smallWeChatDto.setAppId(payMap.get("FUIOU_APP_ID").get(0).getColumnValue());
|
}else{
|
smallWeChatDto.setAppId(MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, "appId"));
|
}
|
if(payMap.containsKey("FUIOU_MCHNT_KEY")){
|
smallWeChatDto.setAppSecret(payMap.get("FUIOU_MCHNT_KEY").get(0).getColumnValue());
|
}else{
|
smallWeChatDto.setAppSecret(MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, "appSecret"));
|
}
|
if(payMap.containsKey("FUIOU_MERCHANT_ID")){
|
smallWeChatDto.setMchId(payMap.get("FUIOU_MERCHANT_ID").get(0).getColumnValue());
|
}else{
|
smallWeChatDto.setMchId(MappingCache.getValue(MappingConstant.WECHAT_STORE_DOMAIN, "mchId"));
|
}
|
if(payMap.containsKey("FUIOU_ORDER_PRE")){
|
smallWeChatDto.setOrderPre(payMap.get("FUIOU_ORDER_PRE").get(0).getColumnValue());
|
}else{
|
smallWeChatDto.setOrderPre("1066");
|
}
|
return smallWeChatDto;
|
}
|
}
|