refactor(quotation): 优化价格计算逻辑并修复数据类型问题

- 修改AppRatioAgentConfigController中的价格计算逻辑,增加空值检查避免NPE
- 更新PlanSearchItemVO中salePrice的计算方法,统一使用NumberUtil.multiply
- 注释掉ProductModelMapper.xml中型号编号的查询条件
- 修正QuotationProductModelSearchVO中moduleName字段类型为String
- 在PlanSearchItemVO中添加NumberUtil导入声明
This commit is contained in:
曹鹏飞 2026-03-13 19:05:48 +08:00
parent 6a7b51ce73
commit 24185b09e5
4 changed files with 14 additions and 13 deletions

View File

@ -1,5 +1,6 @@
package com.nflg.mobilebroken.common.pojo.vo;
import com.nflg.mobilebroken.common.util.NumberUtil;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@ -54,9 +55,6 @@ public class PlanSearchItemVO {
private BigDecimal salePrice;
public BigDecimal getSalePrice() {
if (Objects.nonNull(standardPrice)) {
return standardPrice.multiply(ratio);
}
return null;
return NumberUtil.multiply(standardPrice,ratio);
}
}

View File

@ -14,7 +14,7 @@ public class QuotationProductModelSearchVO {
/**
* 模块名称
*/
private Integer moduleName;
private String moduleName;
/**
* 系列名称

View File

@ -131,10 +131,13 @@ public class AppRatioAgentConfigController extends ControllerBase {
&& it.getUserId().equals(user.getId()))
.findFirst()
.orElse(null);
QuotationModelRatioAgentItem mitem = ratioAgentItemService.getEffectiveForUser(data.getBatchNumber(), AppUserUtil.getUserId());
BigDecimal basePrice = Objects.nonNull(modelPrice) ? NumberUtil.multiply(modelPrice.getAmount(), Optional.ofNullable(mitem)
.map(QuotationModelRatioAgentItem::getStandardRatio)
.orElse(null)) : null;
BigDecimal basePrice = Optional.ofNullable(modelPrice).map(ModelPriceVO::getAmount).orElse(null);
if (Objects.nonNull(basePrice)) {
QuotationModelRatioAgentItem mitem = ratioAgentItemService.getEffectiveForUser(data.getBatchNumber(), AppUserUtil.getUserId());
if (Objects.nonNull(mitem)) {
basePrice = NumberUtil.multiply(basePrice, mitem.getStandardRatio());
}
}
BigDecimal standardRatio = Objects.nonNull(item) ? item.getStandardRatio() : null;
map.put(user.getId().toString() + "-standardPrice", NumberUtil.format(basePrice));
map.put(user.getId().toString() + "-standardRatio", NumberUtil.format(standardRatio));
@ -239,7 +242,7 @@ public class AppRatioAgentConfigController extends ControllerBase {
}
/**
* 获取方案列表
* 查看下级数据
*/
@PostMapping("list/search")
public ApiResult<PageData<RatioConfigSearchVO>> search(@Valid @RequestBody ModelRatioUserSearchRequest request) {

View File

@ -137,9 +137,9 @@
<if test="request.hasDiscount==true">
AND dis.model_id is not null
</if>
<if test="request.no!=null and request.no!=''">
AND pm.`no` like concat('%', #{request.no}, '%')
</if>
<!-- <if test="request.no!=null and request.no!=''">-->
<!-- AND pm.`no` like concat('%', #{request.no}, '%')-->
<!-- </if>-->
ORDER BY pm.sort,pm.id DESC
</select>