Merge branch 'cc_20260415_trans'
This commit is contained in:
@@ -419,5 +419,11 @@ public class RedisConstant {
|
||||
*/
|
||||
public static final String XGJ_CALLBACK_SHOP = "xgj_callback_shop:{0}";
|
||||
|
||||
|
||||
/**
|
||||
* 预分账单 分账key
|
||||
*/
|
||||
public static final String PRE_ALLOCATION = "pre_allocation:{0}";
|
||||
|
||||
public static final String STORE_ID_MAPPING = "store_id_mapping";
|
||||
}
|
||||
|
||||
@@ -394,10 +394,12 @@ public enum ErrorCodeEnum {
|
||||
TRADE_EXIST(1621006, "部分交易流水号已被使用,请检查!", null),
|
||||
NOT_COMPLETE_TRANS_SHEET(1621007, "存在关联未分账完成的分账单,请完成之后再操作!", null),
|
||||
PENDING_TRANS_AMOUNT(1621008, "分账金额不能大于待分账金额!", null),
|
||||
TRANSFER_ERROR(1621009, "分账异常!", null),
|
||||
TRANSFER_ERROR(1621009, "分账异常:{0}", null),
|
||||
TRANSFER_ING(1621010, "分账中,请勿重复分账!", null),
|
||||
WITHDRAW_APPLY_NOT_EXIST(1621011, "提现申请单不存在!", null),
|
||||
WITHDRAW_ING(1621012, "提现中,请勿重复分账!", null),
|
||||
WALLET_BALANCE_INSUFFICIENT(1621013, "钱包余额不足!", null),
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -175,6 +175,7 @@ public enum ShopSubStageStatusEnum {
|
||||
SHOP_SUB_STAGE_STATUS_283(ShopSubStageEnum.SHOP_STAGE_28, 2830, "审批拒绝", Boolean.FALSE),
|
||||
SHOP_SUB_STAGE_STATUS_284(ShopSubStageEnum.SHOP_STAGE_28, 2840, "待缴费", Boolean.FALSE),
|
||||
SHOP_SUB_STAGE_STATUS_284_5(ShopSubStageEnum.SHOP_STAGE_28, 2845, "对账中", Boolean.FALSE),
|
||||
SHOP_SUB_STAGE_STATUS_284_7(ShopSubStageEnum.SHOP_STAGE_28, 2847, "其他费用待扣款", Boolean.FALSE),
|
||||
SHOP_SUB_STAGE_STATUS_285(ShopSubStageEnum.SHOP_STAGE_28, 2850, "已完成", Boolean.TRUE),
|
||||
|
||||
SHOP_SUB_STAGE_STATUS_290(ShopSubStageEnum.SHOP_STAGE_29, 2900, "待通知发货", Boolean.FALSE),
|
||||
|
||||
@@ -0,0 +1,240 @@
|
||||
package com.cool.store.utils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Auther zx_szh
|
||||
* @Date 2026/4/16 10:03
|
||||
* @Version 1.0
|
||||
*/
|
||||
public class BigDecimalUtils {
|
||||
|
||||
/**
|
||||
* 比较两个BigDecimal是否相等(忽略精度差异)
|
||||
*
|
||||
* @param a 第一个值
|
||||
* @param b 第二个值
|
||||
* @return 如果相等返回true
|
||||
*/
|
||||
public static boolean equals(BigDecimal a, BigDecimal b) {
|
||||
if (a == b) return true;
|
||||
if (a == null || b == null) return false;
|
||||
return a.compareTo(b) == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 比较两个BigDecimal是否相等(指定精度)
|
||||
*
|
||||
* @param a 第一个值
|
||||
* @param b 第二个值
|
||||
* @param scale 保留小数位数
|
||||
* @param roundingMode 舍入模式
|
||||
* @return 如果相等返回true
|
||||
*/
|
||||
public static boolean equals(BigDecimal a, BigDecimal b, int scale, int roundingMode) {
|
||||
if (a == b) return true;
|
||||
if (a == null || b == null) return false;
|
||||
return a.setScale(scale, roundingMode).compareTo(b.setScale(scale, roundingMode)) == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断a是否大于b
|
||||
*
|
||||
* @param a 第一个值
|
||||
* @param b 第二个值
|
||||
* @return 如果a大于b返回true
|
||||
*/
|
||||
public static boolean greaterThan(BigDecimal a, BigDecimal b) {
|
||||
if (a == null || b == null) return false;
|
||||
return a.compareTo(b) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断a是否大于或等于b
|
||||
*
|
||||
* @param a 第一个值
|
||||
* @param b 第二个值
|
||||
* @return 如果a大于或等于b返回true
|
||||
*/
|
||||
public static boolean greaterThanOrEqual(BigDecimal a, BigDecimal b) {
|
||||
if (a == null || b == null) return false;
|
||||
return a.compareTo(b) >= 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断a是否小于b
|
||||
*
|
||||
* @param a 第一个值
|
||||
* @param b 第二个值
|
||||
* @return 如果a小于b返回true
|
||||
*/
|
||||
public static boolean lessThan(BigDecimal a, BigDecimal b) {
|
||||
if (a == null || b == null) return false;
|
||||
return a.compareTo(b) < 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断a是否小于或等于b
|
||||
*
|
||||
* @param a 第一个值
|
||||
* @param b 第二个值
|
||||
* @return 如果a小于或等于b返回true
|
||||
*/
|
||||
public static boolean lessThanOrEqual(BigDecimal a, BigDecimal b) {
|
||||
if (a == null || b == null) return false;
|
||||
return a.compareTo(b) <= 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断value是否在min和max之间(包含边界)
|
||||
*
|
||||
* @param value 要判断的值
|
||||
* @param min 最小值
|
||||
* @param max 最大值
|
||||
* @return 如果在范围内返回true
|
||||
*/
|
||||
public static boolean between(BigDecimal value, BigDecimal min, BigDecimal max) {
|
||||
if (value == null || min == null || max == null) return false;
|
||||
return value.compareTo(min) >= 0 && value.compareTo(max) <= 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断value是否在min和max之间(不包含边界)
|
||||
*
|
||||
* @param value 要判断的值
|
||||
* @param min 最小值
|
||||
* @param max 最大值
|
||||
* @return 如果在范围内返回true
|
||||
*/
|
||||
public static boolean betweenExclusive(BigDecimal value, BigDecimal min, BigDecimal max) {
|
||||
if (value == null || min == null || max == null) return false;
|
||||
return value.compareTo(min) > 0 && value.compareTo(max) < 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断value是否在min和max之间(左闭右开)
|
||||
*
|
||||
* @param value 要判断的值
|
||||
* @param min 最小值(包含)
|
||||
* @param max 最大值(不包含)
|
||||
* @return 如果在范围内返回true
|
||||
*/
|
||||
public static boolean betweenLeftClosedRightOpen(BigDecimal value, BigDecimal min, BigDecimal max) {
|
||||
if (value == null || min == null || max == null) return false;
|
||||
return value.compareTo(min) >= 0 && value.compareTo(max) < 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断value是否在min和max之间(左开右闭)
|
||||
*
|
||||
* @param value 要判断的值
|
||||
* @param min 最小值(不包含)
|
||||
* @param max 最大值(包含)
|
||||
* @return 如果在范围内返回true
|
||||
*/
|
||||
public static boolean betweenLeftOpenRightClosed(BigDecimal value, BigDecimal min, BigDecimal max) {
|
||||
if (value == null || min == null || max == null) return false;
|
||||
return value.compareTo(min) > 0 && value.compareTo(max) <= 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断value是否大于0
|
||||
*
|
||||
* @param value 要判断的值
|
||||
* @return 如果大于0返回true
|
||||
*/
|
||||
public static boolean isPositive(BigDecimal value) {
|
||||
return greaterThan(value, BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断value是否大于或等于0
|
||||
*
|
||||
* @param value 要判断的值
|
||||
* @return 如果大于或等于0返回true
|
||||
*/
|
||||
public static boolean isNonNegative(BigDecimal value) {
|
||||
return greaterThanOrEqual(value, BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断value是否小于0
|
||||
*
|
||||
* @param value 要判断的值
|
||||
* @return 如果小于0返回true
|
||||
*/
|
||||
public static boolean isNegative(BigDecimal value) {
|
||||
return lessThan(value, BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断value是否小于或等于0
|
||||
*
|
||||
* @param value 要判断的值
|
||||
* @return 如果小于或等于0返回true
|
||||
*/
|
||||
public static boolean isNonPositive(BigDecimal value) {
|
||||
return lessThanOrEqual(value, BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断value是否等于0
|
||||
*
|
||||
* @param value 要判断的值
|
||||
* @return 如果等于0返回true
|
||||
*/
|
||||
public static boolean isZero(BigDecimal value) {
|
||||
return equals(value, BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断value是否非零
|
||||
*
|
||||
* @param value 要判断的值
|
||||
* @return 如果不等于0返回true
|
||||
*/
|
||||
public static boolean isNotZero(BigDecimal value) {
|
||||
return !isZero(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断两个BigDecimal中的较大值
|
||||
*
|
||||
* @param a 第一个值
|
||||
* @param b 第二个值
|
||||
* @return 较大值,如果都为null返回null
|
||||
*/
|
||||
public static BigDecimal max(BigDecimal a, BigDecimal b) {
|
||||
if (a == null) return b;
|
||||
if (b == null) return a;
|
||||
return a.compareTo(b) >= 0 ? a : b;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断两个BigDecimal中的较小值
|
||||
*
|
||||
* @param a 第一个值
|
||||
* @param b 第二个值
|
||||
* @return 较小值,如果都为null返回null
|
||||
*/
|
||||
public static BigDecimal min(BigDecimal a, BigDecimal b) {
|
||||
if (a == null) return b;
|
||||
if (b == null) return a;
|
||||
return a.compareTo(b) <= 0 ? a : b;
|
||||
}
|
||||
|
||||
/**
|
||||
* 安全比较,处理null情况
|
||||
*
|
||||
* @param a 第一个值
|
||||
* @param b 第二个值
|
||||
* @return 比较结果:a>b返回1,a=b返回0,a<b返回-1
|
||||
*/
|
||||
public static int safeCompare(BigDecimal a, BigDecimal b) {
|
||||
if (a == null && b == null) return 0;
|
||||
if (a == null) return -1;
|
||||
if (b == null) return 1;
|
||||
return a.compareTo(b);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user