bigdecimal bean
时间: 2023-08-28 18:07:29 浏览: 117
BigDecimal是Java中的一个类,它可以用来表示任意大小的浮点数,因此被广泛应用于金融、精确计算等领域。一个BigDecimal对象包含两部分:一个BigInteger对象和一个int型的scale值,其中BigInteger对象存储数值,scale值表示小数点后的位数。
BigDecimal bean是一个Java bean,用于封装BigDecimal对象的属性值。它通常包含以下属性:
1. value:BigDecimal对象的值;
2. scale:小数点后的位数;
3. precision:数值的精度;
4. roundingMode:舍入模式,用于处理运算结果的舍入方式;
5. format:格式化字符串,用于将BigDecimal对象格式化为指定的字符串表示形式。
使用BigDecimal bean可以方便地进行数值计算和格式化,避免了手动处理BigDecimal对象属性的繁琐过程。
相关问题
注册一个用于处理BigDecimal类型的编辑器
您好!为了注册一个用于处理BigDecimal类型的编辑器,您可以按照以下步骤进行操作:
1. 创建一个新的类,命名为BigDecimalEditor,该类需要实现PropertyEditor接口。
2. 在BigDecimalEditor类中,需要实现以下方法:
- setValue(Object value):将传入的值设置为BigDecimal类型的值。
- getValue():返回BigDecimal类型的值。
- setAsText(String text):将传入的字符串转换为BigDecimal类型的值。
- getAsText():返回BigDecimal类型值的字符串表示形式。
3. 在BigDecimalEditor类中,可以根据需要添加其他方法或逻辑来处理BigDecimal类型的编辑操作。
4. 将BigDecimalEditor类注册到您的应用程序中。具体的注册方法取决于您所使用的框架或工具。
- 如果您使用Spring框架,可以通过在配置文件中注册自定义属性编辑器来实现。例如,在XML配置文件中添加以下代码:
```xml
<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="customEditors">
<map>
<entry key="java.math.BigDecimal" value="com.example.BigDecimalEditor" />
</map>
</property>
</bean>
```
- 如果您使用其他框架或工具,请查阅相关文档以了解如何注册自定义属性编辑器。
希望这些步骤对您有所帮助!如果您还有其他问题,请随时提问。
String sign =""; if( null != map.get("sign")){ sign = map.get("sign"); } log.info("买气退款回调参数"+map.toString()); String isRepeat = stringRedisTemplate.opsForValue().get((refundOrderNo+"repeat")); if(null == isRepeat || isRepeat.length() <= 0){ log.info("支付结束"); return null; }else{ stringRedisTemplate.delete((refundOrderNo+"repeat")); } Map<String,String> codeMap = MapUtil.newHashMap(); codeMap.put("serialNumber",outTradeNo); List<H5UserPayCode> list = h5UserPayCodeServiceImpl.byList(codeMap); H5UserPayCode payCode = list.get(0); payCode.setIsRefund(1); payCode.setRefundTime(LocalDateTime.now()); payCode.setRefundCode(refundOrderNo); if(h5UserPayCodeServiceImpl.updateById(payCode)) { stringRedisTemplate.delete(refundOrderNo); log.info("开始往稠州银行写数据-退款数据"); String tempUrl = platformConfig.getPayCzcb().getBaseUrl() + "gasbusiness/v2/orderRefund"; CzcbSFTRefundVO czcbSFTRefundVO = new CzcbSFTRefundVO(); czcbSFTRefundVO.setChannel_no(platformConfig.getPayCzcb().getChannelNo()); czcbSFTRefundVO.setApp_no(platformConfig.getPayCzcb().getAppNo()); String serialNo = SerialNoUtil.genSerialNo("OAC"); czcbSFTRefundVO.setSerial_no(serialNo); czcbSFTRefundVO.setOrder_no(payCode.getOrderCode()); // czcbSFTPayVO.setOrder_type("A"); DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); czcbSFTRefundVO.setRefund_time(dtf.format(payCode.getCreateTime())); czcbSFTRefundVO.setRefund_amount(new BigDecimal(payCode.getAmount()+"")); czcbSFTRefundVO.setOut_trade_no(payCode.getSerialNumber()); czcbSFTRefundVO.setOut_refund_no(refundOrderNo); czcbSFTRefundVO.setTrans_amount_1(BigDecimal.ZERO); czcbSFTRefundVO.setTrans_amount_2(BigDecimal.ZERO); czcbSFTRefundVO.setTrans_amount_3(new BigDecimal(payCode.getAmount()+"")); czcbSFTRefundVO.setRemark("盛付通订单支付退款"); //判断是正式还是测试 if ( SpringContextUtil.isProd() ) { czcbSFTRefundVO.setOpp_account_no("1010220406000001"); // czcbSFTRefundVO.setOpp_account_no("1010220214000003"); }else{ czcbSFTRefundVO.setOpp_account_no("1010220214000003"); } czcbSFTRefundVO.setOpp_account_name("义乌市城建燃气经营有限公司"); czcbSFTRefundVO.setTrans_amount_4(BigDecimal.ZERO); czcbSFTRefundVO.setTrans_amount_5(new BigDecimal(payCode.getAmount()+"")); czcbSFTRefundVO.setTrans_amount_6(BigDecimal.ZERO); // 操作日期 czcbSFTRefundVO.setTrans_date(DateTime.now().toString("yyyy-MM-dd")); // 操作时间 czcbSFTRefundVO.setTrans_tradetime(DateTime.now().toString("yyyy-MM-dd HH:mm:ss")); czcbSFTRefundVO.setSign_data(SignUtil.addSignMD5(BeanUtil.beanToMap(czcbSFTRefundVO), platformConfig.getPayCzcb().getKey())); log.info("开始往稠州银行写数据:" + JSON.toJSONString(czcbSFTRefundVO)); String result = HttpUtil.post(tempUrl, JSON.toJSONString(czcbSFTRefundVO)); log.info("开始往稠州银行写数据:" + result); if(isSuccess(result)){ log.info("开始往稠州银行写数据写入成功"); } } }catch(Exception ex){ ex.printStackTrace(); } return new R(200,"回调成功"); }
这是一段使用 Java 编写的代码。它的作用是执行退款操作,并将退款的相关信息写入稠州银行的系统。
具体来说,首先检查传入的参数中是否包含 "sign" 字段,如果包含就将其赋值给变量 "sign"。然后记录一条日志,内容为传入参数的内容。接下来,在 Redis 中检查是否存在与退款订单号对应的值,如果不存在或值为空,就直接返回 null。否则,就将 Redis 中的对应的值删除。
然后,使用传入的流水号从数据库中查询相关的记录,并将记录的退款状态更新为已退款。之后使用更新后的记录更新数据库中的相应记录,并在操作成功后将 Redis 中与退款订单号对应的值删除。
最后,使用从配置文件中读取的稠州银行的 URL 和相关参数,调用稠州银行的退款接口,并将相关信息写入稠州银行的系统中。
阅读全文