}
@PostMapping("/biz_init")
- fun userBizInit(@RequestBody @Validated(InitAction::class) request: PublishCardParam): ResponseEntity<Any> {
+ fun userBizInit(@RequestBody @Validated(InitAction::class) request: CardBizParam): ResponseEntity<Any> {
val builder = TransactionBuilder().apply {
setTransInfo(request.transdate, request.transtime, TradeCode.TRANSCODE_CARD_BIZ, "balance")
setOutTransInfo(request.operid, request.operSeqno)
}
val transDesc = arrayListOf<String>()
transDesc.add(request.summary)
- val result = PublishCardResponse()
+ val result = CardBizResponse()
val user = useService.findAccountByUserid(request.userid, null)
?: return ResponseBodyBuilder.failEntity(result,
setOpposite(capitalSubj.subjno, capitalSubj.subjname)
}
+
val depositAmount = request.totalAmount - request.cost - request.cashPledge - request.charge
- if (depositAmount < 0) {
+ when (request.inOrOut) {
+ TradeDict.TRADE_FLAG_IN -> {
+ request.totalAmount != 0
+ }
+ TradeDict.TRADE_FLAG_OUT -> {
+ request.totalAmount != 0
+ }
+ else -> false
+ }.takeIf {
+ !it
+ }?.apply {
return ResponseBodyBuilder.failEntity(result,
- TradeErrorCode.INPUT_DATA_ERROR,
- "交易金额错误")
+ TradeErrorCode.INPUT_DATA_ERROR, "资金方案向错误或交易金额有误")
}
if (request.totalAmount != 0) {
- if (depositAmount > 0) {
- builder.addDebitCreditRecord(capitalSubj.subjno, capitalSubj.subjno,
- user.accno, Subject.SUBJNO_PERSONAL_DEPOSIT, request.totalAmount / 100.0, request.summary)
- }
- if (request.cost > 0) {
- val subject = accountUtilServcie.readSubject(Subject.SUBJNO_CARD_COST)
- builder.addDebitCreditRecord(user.accno, Subject.SUBJNO_PERSONAL_DEPOSIT,
- subject.subjno, subject.subjno, request.cost / 100.0,
- request.summary)
- transDesc.add("卡成本费" + "%.2f".format(request.cost / 100.0) + " 元")
-
- }
- if (request.cashPledge > 0) {
- val subject = accountUtilServcie.readSubject(Subject.SUBJNO_FOREGIFT)
- builder.addDebitCreditRecord(user.accno, Subject.SUBJNO_PERSONAL_DEPOSIT,
- subject.subjno, subject.subjno, request.cashPledge / 100.0,
- request.summary)
- transDesc.add("卡押金" + "%.2f".format(request.cashPledge / 100.0) + " 元")
- }
- if (request.charge > 0) {
- val subject = accountUtilServcie.readSubject(Subject.SUBJNO_SERVICEFEE_DEFAULT)
- builder.addDebitCreditRecord(user.accno, Subject.SUBJNO_PERSONAL_DEPOSIT,
- subject.subjno, subject.subjno, request.charge / 100.0,
- request.summary)
- transDesc.add("手续费" + "%.2f".format(request.charge / 100.0) + " 元")
+ if (request.inOrOut == TradeDict.TRADE_FLAG_IN) {
+ if (depositAmount != 0) {
+ builder.addDebitCreditRecord(capitalSubj.subjno, capitalSubj.subjno,
+ user.accno, Subject.SUBJNO_PERSONAL_DEPOSIT, request.totalAmount / 100.0, request.summary)
+ }
+ if (request.cost != 0) {
+ val subject = accountUtilServcie.readSubject(Subject.SUBJNO_CARD_COST)
+ builder.addDebitCreditRecord(user.accno, Subject.SUBJNO_PERSONAL_DEPOSIT,
+ subject.subjno, subject.subjno, request.cost / 100.0,
+ request.summary)
+ transDesc.add("收%s %.2f 元".format(subject.subjname, request.cost / 100.0))
+ }
+ if (request.cashPledge != 0) {
+ val subject = accountUtilServcie.readSubject(Subject.SUBJNO_FOREGIFT)
+ builder.addDebitCreditRecord(user.accno, Subject.SUBJNO_PERSONAL_DEPOSIT,
+ subject.subjno, subject.subjno, request.cashPledge / 100.0,
+ request.summary)
+ transDesc.add("收%s %.2f 元".format(subject.subjname, request.cashPledge / 100.0))
+ }
+ if (request.charge != 0) {
+ val subject = accountUtilServcie.readSubject(Subject.SUBJNO_SERVICEFEE_DEFAULT)
+ builder.addDebitCreditRecord(user.accno, Subject.SUBJNO_PERSONAL_DEPOSIT,
+ subject.subjno, subject.subjno, request.charge / 100.0,
+ request.summary)
+ transDesc.add("收%s %.2f 元".format(request.charge / 100.0))
+ }
+ } else {
+ if (depositAmount != 0) {
+ builder.addDebitCreditRecord(user.accno, Subject.SUBJNO_PERSONAL_DEPOSIT,
+ capitalSubj.subjno, capitalSubj.subjno, request.totalAmount / 100.0, request.summary)
+ }
+ if (request.cost != 0) {
+ val subject = accountUtilServcie.readSubject(Subject.SUBJNO_CARD_COST)
+ builder.addDebitCreditRecord(subject.subjno, subject.subjno,
+ user.accno, Subject.SUBJNO_PERSONAL_DEPOSIT,
+ request.cost / 100.0, request.summary)
+ transDesc.add("退%s %.2f 元".format(subject.subjname, request.cost / 100.0))
+ }
+ if (request.cashPledge != 0) {
+ val subject = accountUtilServcie.readSubject(Subject.SUBJNO_FOREGIFT)
+ builder.addDebitCreditRecord(subject.subjno, subject.subjno,
+ user.accno, Subject.SUBJNO_PERSONAL_DEPOSIT,
+ request.cashPledge / 100.0, request.summary)
+ transDesc.add("退%s %.2f 元".format(subject.subjname, request.cashPledge / 100.0))
+ }
+ if (request.charge != 0) {
+ val subject = accountUtilServcie.readSubject(Subject.SUBJNO_SERVICEFEE_DEFAULT)
+ builder.addDebitCreditRecord(subject.subjno, subject.subjno,
+ user.accno, Subject.SUBJNO_PERSONAL_DEPOSIT,
+ request.charge / 100.0, request.summary)
+ transDesc.add("退%s %.2f 元".format(subject.subjname, request.charge / 100.0))
+ }
}
}
builder.description = transDesc.joinToString(";")
}
@PostMapping("/biz_confirm")
- fun userBizConfirm(@RequestBody @Validated(ConfirmAction::class) request: PublishCardParam): ResponseEntity<Any> {
+ fun userBizConfirm(@RequestBody @Validated(ConfirmAction::class) request: CardBizParam): ResponseEntity<Any> {
val transaction = transactionService.success(request.refno)
- val response = PublishCardResponse().apply {
+ val response = CardBizResponse().apply {
accdate = transaction.accdate
refno = transaction.refno
description = transaction.personDtl.transdesc
}
@PostMapping("/biz_refund")
- fun userBizRefund(@RequestBody @Valid request: PublishCardParam): ResponseEntity<Any> {
+ fun userBizRefund(@RequestBody @Valid request: CardBizParam): ResponseEntity<Any> {
return ResponseEntity.ok(ResponseBodyBuilder.create().success())
}
@GetMapping("/biz_query")
- fun userBizQuery(@RequestBody @Valid request: PublishCardParam): ResponseEntity<Any> {
+ fun userBizQuery(@RequestBody @Valid request: CardBizParam): ResponseEntity<Any> {
return ResponseEntity.ok(ResponseBodyBuilder.create().success())
}
}
\ No newline at end of file