|
|
@@ -10,6 +10,7 @@ import cn.muchinfo.rma.protobuf.protoclasses.BankMI1
|
|
|
import cn.muchinfo.rma.protobuf.protoclasses.ErmcpMI1
|
|
|
import cn.muchinfo.rma.protobuf.protoclasses.ManageServiceMI3
|
|
|
import cn.muchinfo.rma.protobuf.protoclasses.TkernelMI1
|
|
|
+import com.blankj.utilcode.util.TimeUtils
|
|
|
import com.google.common.math.IntMath
|
|
|
import java.io.ByteArrayOutputStream
|
|
|
import java.lang.Exception
|
|
|
@@ -17,11 +18,245 @@ import java.util.*
|
|
|
|
|
|
object MoneyAdapter {
|
|
|
|
|
|
+ /**
|
|
|
+ * 出金报文装箱
|
|
|
+ * @param AccountCode String 资金账户
|
|
|
+ * @param CusBankID String 托管银行编号
|
|
|
+ * @param Currency String 币种
|
|
|
+ * @param AccountType Int 账户类型
|
|
|
+ * @param BankChildAccount String 银行子账号
|
|
|
+ * @param BankChildAccountName String 银行子账号名
|
|
|
+ * @param OpenCardBankId String 银行卡行号
|
|
|
+ * @param BankAccoutNum String 银行卡号
|
|
|
+ * @param BankAccoutName String 银行卡户名
|
|
|
+ * @param Amount Double 出金金额
|
|
|
+ * @param AppDateTime String 申请日期和时间
|
|
|
+ * @param BranchBankName String 收款支行名称
|
|
|
+ * @param extend_info String 扩展信息(JSON串, 参考配置要求进行填充)
|
|
|
+ * @param ExchTicket String 交易所流水号
|
|
|
+ * @return Packet50
|
|
|
+ */
|
|
|
+ fun gett2bBankWithdrawReqInfo(
|
|
|
+ AccountCode : String = "",
|
|
|
+ CusBankID : String = "",
|
|
|
+ Currency : String = "",
|
|
|
+ AccountType : Int = 0,
|
|
|
+ BankChildAccount : String = "",
|
|
|
+ BankChildAccountName : String = "",
|
|
|
+ OpenCardBankId : String = "",
|
|
|
+ BankAccoutNum : String = "",
|
|
|
+ BankAccoutName : String = "",
|
|
|
+ Amount : Double = 0.0,
|
|
|
+ AppDateTime : String = "",
|
|
|
+ BranchBankName : String = "",
|
|
|
+ extend_info : String = "",
|
|
|
+ ExchTicket : String = ""
|
|
|
+ ) : Packet50{
|
|
|
+ val builder = BankMI1.t2bBankWithdrawReq.newBuilder()
|
|
|
+ val loginInfo = GlobalDataCollection.instance?.loginRsp!!
|
|
|
+
|
|
|
+ // FIXME: - 250000000005
|
|
|
+ builder.setHeader(
|
|
|
+ MessageHeadModel.getHead(
|
|
|
+ FunCode.FID_t2bBankWithdrawReq,
|
|
|
+ loginInfo.userID,
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ 18
|
|
|
+ )
|
|
|
+ )
|
|
|
+ builder.extOperatorID = TimeUtils.getNowMills()//外部操作流水号
|
|
|
+ if (CusBankID.isNotEmpty()){
|
|
|
+ builder.cusBankID = CusBankID
|
|
|
+ }
|
|
|
+
|
|
|
+ builder.exchId = ""
|
|
|
+ if (ExchTicket.isNotEmpty()){
|
|
|
+ builder.exchTicket = ExchTicket
|
|
|
+ }
|
|
|
+ if (AccountCode.isNotEmpty()){
|
|
|
+ builder.accountCode = AccountCode
|
|
|
+ }
|
|
|
+ if (AccountType != 0){
|
|
|
+ builder.accountType = AccountType
|
|
|
+ }
|
|
|
+ if (BankChildAccount.isNotEmpty()){
|
|
|
+ builder.bankChildAccount = BankChildAccount
|
|
|
+ }
|
|
|
+ if (BankChildAccountName.isNotEmpty()){
|
|
|
+ builder.bankChildAccountName = BankChildAccountName
|
|
|
+ }
|
|
|
+ if (AppDateTime.isNotEmpty()){
|
|
|
+ builder.appDateTime = AppDateTime
|
|
|
+ }
|
|
|
+ if (BranchBankName.isNotEmpty()){
|
|
|
+ builder.branchBankName = BranchBankName
|
|
|
+ }
|
|
|
+ if (Amount != 0.0){
|
|
|
+ builder.amount = Amount
|
|
|
+ }
|
|
|
+ if (Currency.isNotEmpty()){
|
|
|
+ builder.currency = Currency
|
|
|
+ }
|
|
|
+ if (OpenCardBankId.isNotEmpty()){
|
|
|
+ builder.openCardBankId = OpenCardBankId
|
|
|
+ }
|
|
|
+ if (BankAccoutName.isNotEmpty()){
|
|
|
+ builder.bankAccoutName = BankAccoutName
|
|
|
+ }
|
|
|
+ if (BankAccoutNum.isNotEmpty()){
|
|
|
+ builder.bankAccoutNum = BankAccoutNum
|
|
|
+ }
|
|
|
+ if (extend_info.isNotEmpty()){
|
|
|
+ builder.extendInfo = extend_info
|
|
|
+ }
|
|
|
+ val arrayOutputStream = ByteArrayOutputStream();
|
|
|
+ builder.build().writeTo(arrayOutputStream)
|
|
|
+ return Packet50(FunCode.FID_t2bBankWithdrawReq, arrayOutputStream.toByteArray())
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 出金请求报文解析
|
|
|
+ * @param packet50 Packet50
|
|
|
+ * @return Triple<Boolean, Error?, ErmcpMI1.SpotContractOperateRsp?>
|
|
|
+ */
|
|
|
+ fun analysist2bBankWithdrawRsq(packet50: Packet50): Triple<Boolean, Error?, BankMI1.t2bBankWithdrawRsp?> {
|
|
|
+ return try {
|
|
|
+ val resultRsp = BankMI1.t2bBankWithdrawRsp.parseFrom(packet50.content)
|
|
|
+ if (resultRsp.retCode == 0) {
|
|
|
+ // 操作成功
|
|
|
+ Triple(true, null, resultRsp)
|
|
|
+ }else if (resultRsp.retCode == -1){
|
|
|
+ // 操作失败
|
|
|
+ Triple(false, Error(resultRsp.retDesc), null)
|
|
|
+ } else {
|
|
|
+ // 操作失败
|
|
|
+ Triple(false, Error(ErrorMessageUtils.getErrorString(resultRsp.retCode)), null)
|
|
|
+ }
|
|
|
+ } catch (e: Exception) {
|
|
|
+ // 操作失败
|
|
|
+ Triple(false, Error("装箱失败"), null)
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ /**
|
|
|
+ * 入金
|
|
|
+ * @param CusBankID String
|
|
|
+ * @param ExchId String
|
|
|
+ * @param TradeDate String
|
|
|
+ * @param ExchTicket String
|
|
|
+ * @param AccountCode String
|
|
|
+ * @param BusinessNo String
|
|
|
+ * @param BankChildAccount String
|
|
|
+ * @param BankChildAccountName String
|
|
|
+ * @param Amount Double
|
|
|
+ * @param Currency String
|
|
|
+ * @param OpenCardBankId String
|
|
|
+ * @param BankAccoutNum String
|
|
|
+ * @param BankAccoutName String
|
|
|
+ * @param extend_info String
|
|
|
+ * @return Packet50
|
|
|
+ */
|
|
|
fun getT2bBankDepositReqInfo(
|
|
|
+ CusBankID : String = "",//托管银行编号
|
|
|
+ TradeDate : String = "",//交易日
|
|
|
+ ExchTicket : String = "",//交易所流水号
|
|
|
+ AccountCode : String = "",///资金账户
|
|
|
+ BusinessNo : String = "",//银行业务编号
|
|
|
+ BankChildAccount : String = "",//银行子账号
|
|
|
+ BankChildAccountName : String = "",//银行子账号名
|
|
|
+ Amount : Double = 0.0,//金额
|
|
|
+ Currency : String = "",//币种
|
|
|
+ OpenCardBankId : String = "",//银行卡行号
|
|
|
+ BankAccoutNum : String = "",//银行卡号
|
|
|
+ BankAccoutName : String = "",//银行卡户名
|
|
|
+ extend_info : String = ""//扩展信息(JSON串, 参考配置要求进行填充)
|
|
|
+ ) : Packet50{
|
|
|
+ val builder = BankMI1.t2bBankDepositReq.newBuilder()
|
|
|
+ val loginInfo = GlobalDataCollection.instance?.loginRsp!!
|
|
|
|
|
|
- ){
|
|
|
+ // FIXME: - 250000000005
|
|
|
+ builder.setHeader(
|
|
|
+ MessageHeadModel.getHead(
|
|
|
+ FunCode.FID_t2bBankDepositReq,
|
|
|
+ loginInfo.userID,
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ 18
|
|
|
+ )
|
|
|
+ )
|
|
|
+
|
|
|
+ builder.extOperatorID = TimeUtils.getNowMills()//外部操作流水号
|
|
|
+ if (CusBankID.isNotEmpty()){
|
|
|
+ builder.cusBankID = CusBankID
|
|
|
+ }
|
|
|
|
|
|
+ builder.exchId = ""
|
|
|
+ if(TradeDate.isNotEmpty()){
|
|
|
+ builder.tradeDate = TradeDate
|
|
|
+ }
|
|
|
+ if (ExchTicket.isNotEmpty()){
|
|
|
+ builder.exchTicket = ExchTicket
|
|
|
+ }
|
|
|
+ if (AccountCode.isNotEmpty()){
|
|
|
+ builder.accountCode = AccountCode
|
|
|
+ }
|
|
|
+ if (BusinessNo.isNotEmpty()){
|
|
|
+ builder.businessNo = BusinessNo
|
|
|
+ }
|
|
|
+ if (BankChildAccount.isNotEmpty()){
|
|
|
+ builder.bankChildAccount = BankChildAccount
|
|
|
+ }
|
|
|
+ if (BankChildAccountName.isNotEmpty()){
|
|
|
+ builder.bankChildAccountName = BankChildAccountName
|
|
|
+ }
|
|
|
+ if (Amount != 0.0){
|
|
|
+ builder.amount = Amount
|
|
|
+ }
|
|
|
+ if (Currency.isNotEmpty()){
|
|
|
+ builder.currency = Currency
|
|
|
+ }
|
|
|
+ if (OpenCardBankId.isNotEmpty()){
|
|
|
+ builder.openCardBankId = OpenCardBankId
|
|
|
+ }
|
|
|
+ if (BankAccoutName.isNotEmpty()){
|
|
|
+ builder.bankAccoutName = BankAccoutName
|
|
|
+ }
|
|
|
+ if (BankAccoutNum.isNotEmpty()){
|
|
|
+ builder.bankAccoutNum = BankAccoutNum
|
|
|
+ }
|
|
|
+ if (extend_info.isNotEmpty()){
|
|
|
+ builder.extendInfo = extend_info
|
|
|
+ }
|
|
|
+ val arrayOutputStream = ByteArrayOutputStream();
|
|
|
+ builder.build().writeTo(arrayOutputStream)
|
|
|
+ return Packet50(FunCode.FID_t2bBankDepositReq, arrayOutputStream.toByteArray())
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 入金请求报文解析
|
|
|
+ * @param packet50 Packet50
|
|
|
+ * @return Triple<Boolean, Error?, ErmcpMI1.SpotContractOperateRsp?>
|
|
|
+ */
|
|
|
+ fun analysisT2bBankDepositRsq(packet50: Packet50): Triple<Boolean, Error?, BankMI1.t2bBankDepositRsp?> {
|
|
|
+ return try {
|
|
|
+ val resultRsp = BankMI1.t2bBankDepositRsp.parseFrom(packet50.content)
|
|
|
+ if (resultRsp.retCode == 0) {
|
|
|
+ // 操作成功
|
|
|
+ Triple(true, null, resultRsp)
|
|
|
+ }else if (resultRsp.retCode == -1){
|
|
|
+ // 操作失败
|
|
|
+ Triple(false, Error(resultRsp.retDesc), null)
|
|
|
+ } else {
|
|
|
+ // 操作失败
|
|
|
+ Triple(false, Error(ErrorMessageUtils.getErrorString(resultRsp.retCode)), null)
|
|
|
+ }
|
|
|
+ } catch (e: Exception) {
|
|
|
+ // 操作失败
|
|
|
+ Triple(false, Error("装箱失败"), null)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|