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 responseEntity = new ResponseEntity("1", HttpStatus.NOT_FOUND); context.setResponseEntity(responseEntity); }else{ ResponseEntity responseEntity = new ResponseEntity("0", HttpStatus.NOT_FOUND); context.setResponseEntity(responseEntity); } }else{ ResponseEntity responseEntity = new ResponseEntity("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 paymentPoolDtos = paymentPoolV1InnerServiceSMOImpl.queryPaymentPools(paymentPoolDto); List 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 values = paymentPoolValueV1InnerServiceSMOImpl.queryPaymentPoolValues(paymentPoolValueDto); Map> 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; } }