重新计算价格

This commit is contained in:
邱贞招 2024-09-28 09:54:53 +08:00
parent ed4931b5b0
commit 52a0362ced
7 changed files with 48 additions and 7 deletions
ridelease-system/src/main
java/com/ruoyi/system
resources/mapper/system

View File

@ -14,7 +14,6 @@ import java.math.BigDecimal;
* @date 2024-05-13
*/
@Data
//@Builder
public class RlModel extends BaseEntity
{
private static final long serialVersionUID = 1L;
@ -54,4 +53,7 @@ public class RlModel extends BaseEntity
@Excel(name = "图片")
private String picture;
/** 描述 */
private String description;
}

View File

@ -68,7 +68,7 @@ public class RlOrder extends BaseEntity
private String type;
/** 订单总金额(元) */
@Excel(name = "订单总金额", readConverterExp = "=")
@Excel(name = "订单总金额", readConverterExp = "")
private BigDecimal totalFee;
/** 实际支付金额 */
@ -83,6 +83,10 @@ public class RlOrder extends BaseEntity
@Excel(name = "调度费")
private BigDecimal dispatchFee;
/** 配送费 */
@Excel(name = "配送费")
private BigDecimal deliveryFee;
/** 租赁费 */
@Excel(name = "租赁费")
private BigDecimal leaseFee;

View File

@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.List;
/**
@ -27,5 +28,8 @@ public class StoreVo extends Store {
@ApiModelProperty("车型列表")
private List<RlModelVO> models;
@ApiModelProperty("最低价")
private BigDecimal bottomPrice;
}

View File

@ -192,6 +192,10 @@ public class RlOrderServiceImpl implements IRlOrderService
order.setOrderNo(orderNo);
order.setPaid(ServiceConstants.ORDER_PAY_STATUS_NON_PAYMENT);
order.setType(type);
/** 计算价格 */
onceMoreCalculatePrice(order);
Integer deliveryMethod = order.getDeliveryMethod();
if(ServiceConstants.DELIVERY_METHOD_SELF_PICKUP == deliveryMethod){
order.setStatus(ServiceConstants.ORDER_STATUS_TO_BE_TAKEN);
@ -210,6 +214,15 @@ public class RlOrderServiceImpl implements IRlOrderService
return responseVO;
}
private void onceMoreCalculatePrice(RlOrderQuery order) {
PriceVO priceVO = calculatePrice(order);
order.setDeposit(priceVO.getDeposit());
order.setLeaseFee(priceVO.getRent());
order.setDispatchFee(priceVO.getDeliveryFee());
order.setTotalFee(priceVO.getTotalFee());
order.setPayFee(priceVO.getTotalFee());
}
/** 解析地址 */
private void analyzeAddress(RlOrderQuery order) {
String address = cityService.getAddressByLocation(order.getPickupLon(),order.getPickupLat());

View File

@ -450,6 +450,14 @@ public class StoreServiceImpl implements RlStoreService
.map(store -> {
List<RlModelVO> list = modelService.selectEModelListByStoreId(store.getStoreId());
store.setModels(list);
/** 日均 */
// 计算最低价格
BigDecimal minPrice = list.stream()
.map(RlModelVO::getPrice) // 获取每个模型的价格
.filter(Objects::nonNull) // 过滤掉可能为 null 的价格
.min(BigDecimal::compareTo) // 找到最小值
.orElse(BigDecimal.ZERO); // 如果列表为空返回 BigDecimal.ZERO
store.setBottomPrice(minPrice);
/** 多少辆可租 */
Integer integer = deviceService.selectRentalDeviceCountByStoreId(store.getStoreId(),null);
store.setRentalCar(integer);

View File

@ -7,13 +7,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="RlModelVO" id="EModelResult" autoMapping="true" />
<sql id="selectEModelVo">
select model_id, model, full_voltage, low_voltage, full_endurance, create_by, create_time, update_by, update_time, remark, intro, agent_id, deposit, picture from rl_model
select model_id, model, full_voltage, low_voltage, full_endurance, create_by, create_time, update_by, update_time, remark, intro, agent_id, deposit, picture, description from rl_model
</sql>
<select id="selectEModelList" parameterType="RlModel" resultMap="EModelResult">
select m.model_id, m.model, m.full_voltage, m.low_voltage,
m.full_endurance, m.create_by, m.create_time,
m.update_by, m.update_time, m.remark, m.intro, m.agent_id, m.deposit, m.picture from rl_model m
m.update_by, m.update_time, m.remark, m.intro, m.agent_id, m.deposit, m.picture,m.description from rl_model m
where 1 = 1
<if test="model != null and model != ''"> and m.model = #{model}</if>
<!-- 数据范围过滤 <if test="operator != null and operator != ''"> and m.operator = #{operator}</if> -->
@ -23,14 +23,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectEModelListByAgentId" parameterType="RlModel" resultMap="EModelResult">
select m.model_id, m.model, m.full_voltage, m.low_voltage,
m.full_endurance, m.create_by, m.create_time,
m.update_by, m.update_time, m.remark, m.intro, m.agent_id, m.deposit, m.picture from rl_model m
m.update_by, m.update_time, m.remark, m.intro, m.agent_id, m.deposit, m.picture, m.description from rl_model m
where m.agent_id = #{agentId}
</select>
<select id="selectEModelByModelId" parameterType="Long" resultMap="EModelResult">
select m.model_id, m.model, m.full_voltage, m.low_voltage,
m.full_endurance, m.create_by, m.create_time,
m.update_by, m.update_time, m.remark, m.intro, m.agent_id, m.deposit, m.picture from rl_model m
m.update_by, m.update_time, m.remark, m.intro, m.agent_id, m.deposit, m.picture, m.description from rl_model m
where m.model_id = #{modelId}
</select>
@ -54,6 +54,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
m.agent_id,
m.deposit,
m.picture,
m.description,
fr.price,
fr.rental_unit
FROM
@ -84,6 +85,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="agentId != null">agent_id,</if>
<if test="deposit != null">deposit,</if>
<if test="picture != null">picture,</if>
<if test="description != null">description,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="modelId != null">#{modelId},</if>
@ -100,6 +102,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="agentId != null">#{agentId},</if>
<if test="deposit != null">#{deposit},</if>
<if test="picture != null">#{picture},</if>
<if test="description != null">#{description},</if>
</trim>
</insert>
@ -119,6 +122,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="agentId != null">agent_id = #{agentId},</if>
<if test="deposit != null">deposit = #{deposit},</if>
<if test="picture != null">picture = #{picture},</if>
<if test="description != null">description = #{description},</if>
</trim>
where model_id = #{modelId}
</update>

View File

@ -7,7 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="RlOrderVO" id="RlOrderResult" autoMapping="true"/>
<sql id="selectRlOrderVo">
select order_id, order_no, out_trade_no, user_id, rule_id, device_mac, sn, pay_time, pay_type, paid, type, total_fee, pay_fee, deposit, overdue_fee, dispatch_fee,
select order_id, order_no, out_trade_no, user_id, rule_id, device_mac, sn, pay_time, pay_type, paid, type, total_fee, pay_fee, deposit, overdue_fee, dispatch_fee,delivery_fee,
lease_fee, mark, duration, status, create_time, return_time, deposit_deduction, deposit_order_no, deduction_amount, used_sn, change_reason,
auto_refund_deposit, rental_unit, handling_charge, platform_service_fee, operator_dividend, pay_channel, delivery_method, pickup_time,
agent_id, store_id, pickup_city, pickup_loc, pickup_lon, pickup_lat, model_id, expiry_time, original_order_no, num, price, explain,
@ -32,6 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
o.deposit,
o.overdue_fee,
o.dispatch_fee,
o.delivery_fee,
o.lease_fee,
o.mark,
o.duration,
@ -119,6 +120,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="payFee != null"> and o.pay_fee = #{payFee}</if>
<if test="deposit != null"> and o.deposit = #{deposit}</if>
<if test="dispatchFee != null"> and o.dispatch_fee = #{dispatchFee}</if>
<if test="deliveryFee != null"> and o.delivery_fee = #{deliveryFee}</if>
<if test="leaseFee != null"> and o.lease_fee = #{leaseFee}</if>
<if test="mark != null and mark != ''"> and o.mark = #{mark}</if>
<if test="duration != null"> and o.duration = #{duration}</if>
@ -180,6 +182,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="deposit != null">deposit,</if>
<if test="overdueFee != null">overdue_fee,</if>
<if test="dispatchFee != null">dispatch_fee,</if>
<if test="deliveryFee != null">delivery_fee,</if>
<if test="leaseFee != null">lease_fee,</if>
<if test="mark != null">mark,</if>
<if test="duration != null">duration,</if>
@ -230,6 +233,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="deposit != null">#{deposit},</if>
<if test="overdueFee != null">#{overdueFee},</if>
<if test="dispatchFee != null">#{dispatchFee},</if>
<if test="deliveryFee != null">#{deliveryFee},</if>
<if test="leaseFee != null">#{leaseFee},</if>
<if test="mark != null">#{mark},</if>
<if test="duration != null">#{duration},</if>
@ -284,6 +288,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="deposit != null">deposit = #{deposit},</if>
<if test="overdueFee != null">overdue_fee = #{overdueFee},</if>
<if test="dispatchFee != null">dispatch_fee = #{dispatchFee},</if>
<if test="deliveryFee != null">delivery_fee = #{deliveryFee},</if>
<if test="leaseFee != null">lease_fee = #{leaseFee},</if>
<if test="mark != null">mark = #{mark},</if>
<if test="duration != null">duration = #{duration},</if>
@ -339,6 +344,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="deposit != null">deposit = #{deposit},</if>
<if test="overdueFee != null">overdue_fee = #{overdueFee},</if>
<if test="dispatchFee != null">dispatch_fee = #{dispatchFee},</if>
<if test="deliveryFee != null">delivery_fee = #{deliveryFee},</if>
<if test="leaseFee != null">lease_fee = #{leaseFee},</if>
<if test="mark != null">mark = #{mark},</if>
<if test="duration != null">duration = #{duration},</if>