update 2miner 店铺增专用网络费率

This commit is contained in:
yyb
2026-01-30 09:51:26 +08:00
parent c1acb0ea80
commit bb9f76012d
5 changed files with 54 additions and 4 deletions

View File

@@ -197,5 +197,10 @@ public class LeaseOrderItem implements Serializable {
*/ */
private Boolean type; private Boolean type;
/**
* 收卖家手续费率
*/
private BigDecimal feeRate;
} }

View File

@@ -1,6 +1,7 @@
package com.m2pool.lease.mapper; package com.m2pool.lease.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.m2pool.lease.dto.OrderItemShopOpenDto;
import com.m2pool.lease.dto.OrderStatusDto; import com.m2pool.lease.dto.OrderStatusDto;
import com.m2pool.lease.dto.v2.OrderTimeInfoDto; import com.m2pool.lease.dto.v2.OrderTimeInfoDto;
import com.m2pool.lease.entity.LeaseOrderItem; import com.m2pool.lease.entity.LeaseOrderItem;
@@ -109,4 +110,11 @@ public interface LeaseOrderItemMapper extends BaseMapper<LeaseOrderItem> {
* @return 更新行数 * @return 更新行数
*/ */
int updatePracticalPowerBatch(@Param("list") List<LeaseOrderItem> list); int updatePracticalPowerBatch(@Param("list") List<LeaseOrderItem> list);
/**
* 通过订单详情ID列表查询对应的店铺isOpen状态
* @param orderItemIds 订单详情ID列表
* @return 订单项和店铺开启状态列表
*/
List<OrderItemShopOpenDto> selectOrderItemShopOpenMap(@Param("orderItemIds") List<Long> orderItemIds);
} }

View File

@@ -927,6 +927,7 @@ public class LeaseOrderInfoServiceImpl extends ServiceImpl<LeaseOrderInfoMapper,
.numbers(orderInfoVo.getNumbers()) .numbers(orderInfoVo.getNumbers())
.type(leaseMachine.getType()) .type(leaseMachine.getType())
.theoryPower(theoryHashRate) .theoryPower(theoryHashRate)
.feeRate(leaseShop.getFeeRate())
.build(); .build();
//Long timestamp = startTime + orderInfoVo.getLeaseTime() * 24 * 60 * 60 * 1000L; //Long timestamp = startTime + orderInfoVo.getLeaseTime() * 24 * 60 * 60 * 1000L;
//开发环境 //开发环境
@@ -1062,6 +1063,11 @@ public class LeaseOrderInfoServiceImpl extends ServiceImpl<LeaseOrderInfoMapper,
Map<String,ClientMessage<MiningConfigDto>> macMessageMap = new HashMap<>(); Map<String,ClientMessage<MiningConfigDto>> macMessageMap = new HashMap<>();
List<LeaseOrderMining> orderMiningList = new ArrayList<>(); List<LeaseOrderMining> orderMiningList = new ArrayList<>();
List<OrderItemShopOpenDto> orderItemShopOpenList = leaseOrderItemMapper.selectOrderItemShopOpenMap(
new ArrayList<>(machineOrderItemIdMap.values()));
Map<Long, OrderItemShopOpenDto> collect = orderItemShopOpenList.stream().collect(Collectors.toMap(OrderItemShopOpenDto::getId,Function.identity()));
for (OrderMiningInfoDto orderMiningInfoDto : orderMiningInfo) { for (OrderMiningInfoDto orderMiningInfoDto : orderMiningInfo) {
MiningConfigDto miningConfigDto = coinAndAlgoMap.get(orderMiningInfoDto.getCoinConfigId()); MiningConfigDto miningConfigDto = coinAndAlgoMap.get(orderMiningInfoDto.getCoinConfigId());
Long machineId = orderMiningInfoDto.getMachineId(); Long machineId = orderMiningInfoDto.getMachineId();
@@ -1076,6 +1082,10 @@ public class LeaseOrderInfoServiceImpl extends ServiceImpl<LeaseOrderInfoMapper,
String poolUrl = miningConfigDto.getPool(); String poolUrl = miningConfigDto.getPool();
String poolUser = orderMiningInfoDto.getPoolUser(); String poolUser = orderMiningInfoDto.getPoolUser();
String poolWorkerId = orderMiningInfoDto.getWorkerId(); String poolWorkerId = orderMiningInfoDto.getWorkerId();
OrderItemShopOpenDto orderItemShopOpenDto = collect.get(orderItemId);
if (orderItemShopOpenDto != null && orderItemShopOpenDto.getIsOpen()){
poolUrl = miningConfigDto.getPoolProxyUrl();
}
//这里因为orderMiningInfo 存在ASIC 的信息可能为空 //这里因为orderMiningInfo 存在ASIC 的信息可能为空
if (leaseMachine != null){ if (leaseMachine != null){
String mac = leaseMachine.getHostMac(); String mac = leaseMachine.getHostMac();

View File

@@ -149,9 +149,14 @@ public class LeaseShopServiceImpl extends ServiceImpl<LeaseShopMapper, LeaseShop
if (byId.getDel()){ if (byId.getDel()){
return Result.fail("修改失败,店铺已被删除"); return Result.fail("修改失败,店铺已被删除");
} }
if (shopVo.getIsOpen() != null && shopVo.getIsOpen()){ if (shopVo.getIsOpen() != null && !byId.getIsOpen().equals(shopVo.getIsOpen())){
if (shopVo.getIsOpen()){
leaseShop.setFeeRate(leaseShop.getFeeRate().add(BigDecimal.valueOf(0.02))); leaseShop.setFeeRate(leaseShop.getFeeRate().add(BigDecimal.valueOf(0.02)));
}else{
leaseShop.setFeeRate(leaseShop.getFeeRate().subtract(BigDecimal.valueOf(0.02)));
} }
}
boolean save = updateById(leaseShop); boolean save = updateById(leaseShop);
if (save) { if (save) {
return Result.success("修改店铺成功"); return Result.success("修改店铺成功");
@@ -195,13 +200,17 @@ public class LeaseShopServiceImpl extends ServiceImpl<LeaseShopMapper, LeaseShop
.id(leaseShop.getId()) .id(leaseShop.getId())
.name(leaseShop.getName()) .name(leaseShop.getName())
.image(leaseShop.getImage()) .image(leaseShop.getImage())
.feeRate(leaseShop.getFeeRate().subtract(leaseShop.getNetworkFee()).setScale(4, RoundingMode.HALF_UP)) .feeRate(leaseShop.getFeeRate())
.description(leaseShop.getDescription()) .description(leaseShop.getDescription())
.state(leaseShop.getState()) .state(leaseShop.getState())
.isOpen(leaseShop.getIsOpen()) .isOpen(leaseShop.getIsOpen())
.networkFee(leaseShop.getNetworkFee()) .networkFee(BigDecimal.ZERO)
.del(leaseShop.getDel()) .del(leaseShop.getDel())
.build(); .build();
if (leaseShop.getIsOpen()){
build.setFeeRate(leaseShop.getFeeRate().subtract(leaseShop.getNetworkFee()).setScale(4, RoundingMode.HALF_UP));
build.setNetworkFee(leaseShop.getNetworkFee());
}
} }
return Result.success(build); return Result.success(build);
@@ -220,7 +229,13 @@ public class LeaseShopServiceImpl extends ServiceImpl<LeaseShopMapper, LeaseShop
.state(leaseShop.getState()) .state(leaseShop.getState())
.feeRate(leaseShop.getFeeRate()) .feeRate(leaseShop.getFeeRate())
.del(leaseShop.getDel()) .del(leaseShop.getDel())
.networkFee(BigDecimal.ZERO)
.isOpen(leaseShop.getIsOpen())
.build(); .build();
if (leaseShop.getIsOpen()){
build.setFeeRate(leaseShop.getFeeRate().subtract(leaseShop.getNetworkFee()).setScale(4, RoundingMode.HALF_UP));
build.setNetworkFee(leaseShop.getNetworkFee());
}
} }
return Result.success(build); return Result.success(build);

View File

@@ -158,4 +158,16 @@
) )
</update> </update>
<select id="selectOrderItemShopOpenMap" resultType="com.m2pool.lease.dto.OrderItemShopOpenDto">
SELECT
oi.id,
ls.is_open AS isOpen
FROM lease_order_item oi
JOIN lease_shop ls ON oi.shop_id = ls.id
WHERE oi.id IN
<foreach item="id" collection="orderItemIds" open="(" separator="," close=")">
#{id}
</foreach>
</select>
</mapper> </mapper>