123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- 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<TEquipment> query = Wrappers.lambdaQuery();
- query.eq(TEquipment::getClientId, clientId);
- TEquipment equipment = equipmentService.getOne(query);
- if (equipment != null) {
- LambdaQueryWrapper<TProduct> productWrapper = Wrappers.lambdaQuery();
- productWrapper.eq(TProduct::getEquipmentId, equipment.getId());
- List<TProduct> 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();
- }
- }
|