update 删除店铺新增,是否存在进行中订单校验

This commit is contained in:
yyb
2026-01-13 14:50:21 +08:00
parent fc3bcff8cb
commit a88cf2611f
3 changed files with 28 additions and 0 deletions

View File

@@ -5,6 +5,7 @@ import com.m2pool.lease.dto.OrderStatusDto;
import com.m2pool.lease.dto.v2.OrderTimeInfoDto;
import com.m2pool.lease.entity.LeaseOrderItem;
import com.m2pool.lease.entity.LeasePaymentRecord;
import com.m2pool.lease.entity.LeaseShopConfig;
import com.m2pool.lease.mq.message.RabbitmqPayAutoReturnInfoMessage;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
@@ -80,4 +81,11 @@ public interface LeaseOrderItemMapper extends BaseMapper<LeaseOrderItem> {
List<OrderTimeInfoDto> getOneDayApartOrder();
/**
* 检测店铺正在运行中的订单数量
* @param list
* @return
*/
long checkShopExistRunningOrderNumbers(@Param("list") List<LeaseShopConfig> list);
}

View File

@@ -243,6 +243,8 @@ public class LeaseShopServiceImpl extends ServiceImpl<LeaseShopMapper, LeaseShop
if (leaseMachineMapper.checkHasSaleMachineByShopId(shopId) >= 1){
throw new MachineException("注销失败,店铺存在租约中矿机");
}
//校验是否存在余额不为0的钱包
List<LeaseShopConfig> leaseShopConfigs = leaseShopConfigMapper.selectList(new LambdaQueryWrapper<LeaseShopConfig>()
.select(LeaseShopConfig::getId,LeaseShopConfig::getBalance)
@@ -250,6 +252,13 @@ public class LeaseShopServiceImpl extends ServiceImpl<LeaseShopMapper, LeaseShop
if (leaseShopConfigs.stream().anyMatch(leaseShopConfig -> leaseShopConfig.getBalance().compareTo(BigDecimal.ZERO) > 0)){
throw new MachineException("注销失败,店铺存在余额不为0的钱包");
}
//校验是否存在订单
long runningOrderCount = leaseOrderItemMapper.checkShopExistRunningOrderNumbers(leaseShopConfigs);
if (runningOrderCount > 0) {
throw new MachineException("注销失败,店铺钱包存在未完成的订单");
}
leaseMachineMapper.update(LeaseMachine.builder().del(true).build(), new LambdaUpdateWrapper<LeaseMachine>()
.eq(LeaseMachine::getShopId, shopId));
@@ -492,6 +501,7 @@ public class LeaseShopServiceImpl extends ServiceImpl<LeaseShopMapper, LeaseShop
Long l = leaseOrderItemMapper.selectCount(new LambdaQueryWrapper<LeaseOrderItem>()
.eq(LeaseOrderItem::getChain, config.getChain())
.eq(LeaseOrderItem::getFromSymbol, config.getPayCoin())
.eq(LeaseOrderItem::getFromAddress, config.getPayAddress())
.ne(LeaseOrderItem::getStatus, 0)
);
if (l > 0){

View File

@@ -116,6 +116,16 @@
WHERE
STATUS = 1
</select>
<select id="checkShopExistRunningOrderNumbers" resultType="java.lang.Long">
SELECT COUNT(*)
FROM lease_order_item
WHERE status = 1
AND (
<foreach collection="list" item="item" separator=" OR ">
(chain = #{item.chain} AND from_symbol = #{item.payCoin} AND from_address = #{item.payAddress})
</foreach>
)
</select>
</mapper>