Bläddra i källkod

流水添加转人民币字段,以及是否汇算过滤

yzc 1 år sedan
förälder
incheckning
f69f9afb87

+ 5 - 0
hx-account/src/main/java/com/fjhx/account/entity/account/dto/AccountRunningWaterSelectDto.java

@@ -84,4 +84,9 @@ public class AccountRunningWaterSelectDto extends BaseSelectDto {
      * 流水ID
      */
     private List<Long> accountWaterIdList;
+
+    /**
+     * 是否汇算
+     */
+    private Integer isSettleAccounts;
 }

+ 5 - 0
hx-account/src/main/java/com/fjhx/account/entity/account/po/AccountRunningWater.java

@@ -110,4 +110,9 @@ public class AccountRunningWater extends BasePo {
      */
     private Long accountPaymentRecordsId;
 
+    /**
+     * 转人民币金额
+     */
+    private BigDecimal amountCny;
+
 }

+ 19 - 1
hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountRunningWaterServiceImpl.java

@@ -112,6 +112,16 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
         else {
             wrapper.orderByDesc("arw.transaction_time", "arw.id");
         }
+
+        //是否汇算过滤
+        if (ObjectUtil.isNotEmpty(dto.getIsSettleAccounts())) {
+            if (0 == dto.getIsSettleAccounts()) {
+                wrapper.isNull("arw.amount_cny");
+            } else {
+                wrapper.isNotNull("arw.amount_cny");
+            }
+        }
+
         return wrapper;
     }
     @Override
@@ -196,7 +206,15 @@ public class AccountRunningWaterServiceImpl extends ServiceImpl<AccountRunningWa
         if (StringUtils.isEmpty(dto.getCurrency())) {
             throw new ServiceException("币种不能为空");
         }
-        dto.setRate(ExchangeRateUtil.getCnyToCodeRate(dto.getCurrency()));
+
+        //计算汇率如果有填转人民币金额则反推,没填就获取实时的(不赋值转换cny金额,兼容旧代码)
+        if (ObjectUtil.isNotEmpty(dto.getAmountCny())) {
+            BigDecimal divide = dto.getAmountCny().divide(dto.getAmount());
+            dto.setRate(divide);
+        } else {
+            dto.setRate(ExchangeRateUtil.getCnyToCodeRate(dto.getCurrency()));
+        }
+
         // 修改账户余额表的余额
         AccountRemainder accountRemainder = accountRemainderService.getOne(q -> q
                 .eq(AccountRemainder::getAccountManagementId, dto.getAccountManagementId())