package com.szwl.handle.response; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.szwl.constant.OperationType; import com.szwl.model.entity.MessageLog; import com.szwl.model.entity.TEquipment; import com.szwl.model.entity.TProduct; import com.szwl.service.TEquipmentService; import com.szwl.service.TProductService; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.List; @Component public class BatchUpdatePriceProcessor implements ResponseProcessor { @Resource private TEquipmentService equipmentService; @Resource private TProductService productService; @Override public void process(MessageLog messageLog) { Integer statusCode = messageLog.getStatusCode(); if (statusCode == 200) { Integer direction = messageLog.getDirection(); String clientId = messageLog.getClientId(); String responseContent = messageLog.getResponseContent(); BigDecimal price = new BigDecimal(responseContent).setScale(2, BigDecimal.ROUND_HALF_UP); // 查询设备 LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getClientId, clientId); TEquipment equipment = equipmentService.getOne(query); if (equipment != null) { LambdaQueryWrapper productWrapper = Wrappers.lambdaQuery(); productWrapper.eq(TProduct::getEquipmentId, equipment.getId()); List list = productService.list(productWrapper); if (!list.isEmpty()) { for (TProduct product : list) { product.setCodePrice(price); product.setRmbPrice(price); productService.updateById(product); } } } } } @Override public String getSupportedOperationType() { return OperationType.BATCH_UPDATE_PRICE.getCode(); } }