All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.nbsaas.boot.pay.ext.handle.CommonHandler Maven / Gradle / Ivy

There is a newer version: 1.1.5-2024
Show newest version
package com.nbsaas.boot.pay.ext.handle;

import com.nbsaas.boot.pay.api.apis.PayUserApi;
import com.nbsaas.boot.pay.api.domain.request.PayUserDataRequest;
import com.nbsaas.boot.pay.api.domain.response.PayUserResponse;
import com.nbsaas.boot.pay.api.domain.response.PaymentResponse;
import com.nbsaas.boot.pay.ext.apis.PayHandler;
import com.nbsaas.boot.rest.filter.Filter;
import com.nbsaas.boot.trade.api.domain.response.TradeAccountResponse;
import com.nbsaas.boot.trade.ext.apis.BasicTradeAccountExtApi;
import com.nbsaas.boot.trade.ext.apis.TradeExtApi;
import com.nbsaas.boot.trade.ext.domain.request.TradeRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

@Component("commonHandler")
public class CommonHandler implements PayHandler {


    @Autowired
    private BasicTradeAccountExtApi basicTradeAccountExtApi;


    @Autowired
    private TradeExtApi tradeExtApi;

    @Resource
    private PayUserApi payUserApi;

    @Override
    public void pay(PaymentResponse payment) {
        //算账
        TradeAccountResponse paymentAccount = basicTradeAccountExtApi.initSpecial("recharge");
        Long member = payment.getUser();
        if (member == null) {
            return;
        }
        PayUserResponse user = payUserApi.oneData(Filter.eq("id", member));
        if (user==null){
            return;
        }
       Long account= user.getTradeAccount();
        if (account== null) {
            account=tradeExtApi.initNormal().getId();

            PayUserDataRequest userRequest=new PayUserDataRequest();
            userRequest.setId(user.getId());
            userRequest.setTradeAccount(account);
            payUserApi.update(userRequest);
        }
        TradeRequest request = new TradeRequest();
        request.setAmount(payment.getAmount());
        request.setFrom(paymentAccount.getId());
        request.setTo(account);
        request.setChangeType(1);
        request.setNote("充值");
        tradeExtApi.trade(request);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy