package com.java110.fee.bmo.feeDiscountRule.impl; import com.java110.dto.feeDiscount.FeeDiscountRuleDto; import com.java110.dto.feeDiscount.FeeDiscountRuleSpecDto; import com.java110.fee.bmo.feeDiscountRule.IGetFeeDiscountRuleBMO; import com.java110.intf.fee.IFeeDiscountRuleInnerServiceSMO; import com.java110.intf.fee.IFeeDiscountRuleSpecInnerServiceSMO; import com.java110.vo.ResultVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @Service("getFeeDiscountRuleBMOImpl") public class GetFeeDiscountRuleBMOImpl implements IGetFeeDiscountRuleBMO { @Autowired private IFeeDiscountRuleInnerServiceSMO feeDiscountRuleInnerServiceSMOImpl; @Autowired private IFeeDiscountRuleSpecInnerServiceSMO feeDiscountRuleSpecInnerServiceSMOImpl; /** * @param feeDiscountRuleDto * @return 订单服务能够接受的报文 */ public ResponseEntity get(FeeDiscountRuleDto feeDiscountRuleDto) { int count = feeDiscountRuleInnerServiceSMOImpl.queryFeeDiscountRulesCount(feeDiscountRuleDto); List feeDiscountRuleDtos = null; if (count > 0) { feeDiscountRuleDtos = feeDiscountRuleInnerServiceSMOImpl.queryFeeDiscountRules(feeDiscountRuleDto); freshRuleSpec(feeDiscountRuleDtos); } else { feeDiscountRuleDtos = new ArrayList<>(); } ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) feeDiscountRuleDto.getRow()), count, feeDiscountRuleDtos); ResponseEntity responseEntity = new ResponseEntity(resultVo.toString(), HttpStatus.OK); return responseEntity; } private void freshRuleSpec(List feeDiscountRuleDtos) { List ruleIds = new ArrayList<>(); for (FeeDiscountRuleDto feeDiscountRuleDto : feeDiscountRuleDtos) { ruleIds.add(feeDiscountRuleDto.getRuleId()); } if (ruleIds.size() < 1) { return; } FeeDiscountRuleSpecDto feeDiscountRuleSpecDto = new FeeDiscountRuleSpecDto(); feeDiscountRuleSpecDto.setRuleIds(ruleIds.toArray(new String[ruleIds.size()])); List feeDiscountRuleSpecDtos = feeDiscountRuleSpecInnerServiceSMOImpl.queryFeeDiscountRuleSpecs(feeDiscountRuleSpecDto); List tmpSpecs = null; for (FeeDiscountRuleDto feeDiscountRuleDto : feeDiscountRuleDtos) { tmpSpecs = new ArrayList<>(); for (FeeDiscountRuleSpecDto tmpFeeDiscountRuleSpecDto : feeDiscountRuleSpecDtos) { if (feeDiscountRuleDto.getRuleId().equals(tmpFeeDiscountRuleSpecDto.getRuleId())) { tmpSpecs.add(tmpFeeDiscountRuleSpecDto); } } feeDiscountRuleDto.setFeeDiscountRuleSpecs(tmpSpecs); } } }