BatchUpdatePriceProcessor.java 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package com.szwl.handle.response;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  4. import com.szwl.constant.OperationType;
  5. import com.szwl.model.entity.MessageLog;
  6. import com.szwl.model.entity.TEquipment;
  7. import com.szwl.model.entity.TProduct;
  8. import com.szwl.service.TEquipmentService;
  9. import com.szwl.service.TProductService;
  10. import org.springframework.stereotype.Component;
  11. import javax.annotation.Resource;
  12. import java.math.BigDecimal;
  13. import java.util.List;
  14. @Component
  15. public class BatchUpdatePriceProcessor implements ResponseProcessor {
  16. @Resource
  17. private TEquipmentService equipmentService;
  18. @Resource
  19. private TProductService productService;
  20. @Override
  21. public void process(MessageLog messageLog) {
  22. Integer statusCode = messageLog.getStatusCode();
  23. if (statusCode == 200) {
  24. Integer direction = messageLog.getDirection();
  25. String clientId = messageLog.getClientId();
  26. String responseContent = messageLog.getResponseContent();
  27. BigDecimal price = new BigDecimal(responseContent).setScale(2, BigDecimal.ROUND_HALF_UP);
  28. // 查询设备
  29. LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
  30. query.eq(TEquipment::getClientId, clientId);
  31. TEquipment equipment = equipmentService.getOne(query);
  32. if (equipment != null) {
  33. LambdaQueryWrapper<TProduct> productWrapper = Wrappers.lambdaQuery();
  34. productWrapper.eq(TProduct::getEquipmentId, equipment.getId());
  35. List<TProduct> list = productService.list(productWrapper);
  36. if (!list.isEmpty()) {
  37. for (TProduct product : list) {
  38. product.setCodePrice(price);
  39. product.setRmbPrice(price);
  40. productService.updateById(product);
  41. }
  42. }
  43. }
  44. }
  45. }
  46. @Override
  47. public String getSupportedOperationType() {
  48. return OperationType.BATCH_UPDATE_PRICE.getCode();
  49. }
  50. }