From 6dfa1d6bee9568d13414cb0457121a59a89eacce Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期一, 27 六月 2022 14:57:52 +0800
Subject: [PATCH] 优化处理
---
service-fee/src/main/java/com/java110/fee/smo/impl/TempCarFeeConfigInnerServiceSMOImpl.java | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 152 insertions(+), 23 deletions(-)
diff --git a/service-fee/src/main/java/com/java110/fee/smo/impl/TempCarFeeConfigInnerServiceSMOImpl.java b/service-fee/src/main/java/com/java110/fee/smo/impl/TempCarFeeConfigInnerServiceSMOImpl.java
old mode 100644
new mode 100755
index e782d2b..5372462
--- a/service-fee/src/main/java/com/java110/fee/smo/impl/TempCarFeeConfigInnerServiceSMOImpl.java
+++ b/service-fee/src/main/java/com/java110/fee/smo/impl/TempCarFeeConfigInnerServiceSMOImpl.java
@@ -2,17 +2,29 @@
import com.java110.core.base.smo.BaseServiceSMO;
-import com.java110.intf.fee.ITempCarFeeConfigInnerServiceSMO;
import com.java110.dto.PageDto;
+import com.java110.dto.fee.TempCarFeeResult;
+import com.java110.dto.machine.CarInoutDetailDto;
+import com.java110.dto.machine.CarInoutDto;
+import com.java110.dto.tempCarFeeConfig.TempCarFeeConfigAttrDto;
import com.java110.dto.tempCarFeeConfig.TempCarFeeConfigDto;
-import com.java110.dto.user.UserDto;
+import com.java110.dto.tempCarFeeConfig.TempCarFeeRuleDto;
+import com.java110.dto.tempCarFeeConfig.TempCarFeeRuleSpecDto;
import com.java110.fee.dao.ITempCarFeeConfigServiceDao;
+import com.java110.intf.fee.IComputeTempCarFee;
+import com.java110.intf.fee.ITempCarFeeConfigAttrInnerServiceSMO;
+import com.java110.intf.fee.ITempCarFeeConfigInnerServiceSMO;
+import com.java110.utils.factory.ApplicationContextFactory;
import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.DateUtil;
+import org.slf4j.Logger;
+import com.java110.core.log.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
/**
@@ -25,9 +37,13 @@
**/
@RestController
public class TempCarFeeConfigInnerServiceSMOImpl extends BaseServiceSMO implements ITempCarFeeConfigInnerServiceSMO {
+ private static Logger logger = LoggerFactory.getLogger(TempCarFeeConfigInnerServiceSMOImpl.class);
@Autowired
private ITempCarFeeConfigServiceDao tempCarFeeConfigServiceDaoImpl;
+
+ @Autowired
+ private ITempCarFeeConfigAttrInnerServiceSMO tempCarFeeConfigAttrInnerServiceSMOImpl;
@Override
@@ -43,36 +59,43 @@
List<TempCarFeeConfigDto> tempCarFeeConfigs = BeanConvertUtil.covertBeanList(tempCarFeeConfigServiceDaoImpl.getTempCarFeeConfigInfo(BeanConvertUtil.beanCovertMap(tempCarFeeConfigDto)), TempCarFeeConfigDto.class);
+ refreshTempCarFeeConfig(tempCarFeeConfigs);
+
return tempCarFeeConfigs;
}
/**
* 浠庣敤鎴峰垪琛ㄤ腑鏌ヨ鐢ㄦ埛锛屽皢鐢ㄦ埛涓殑淇℃伅 鍒锋柊鍒� floor瀵硅薄涓�
*
- * @param tempCarFeeConfig 灏忓尯涓存椂杞︽敹璐规爣鍑嗕俊鎭�
- * @param users 鐢ㄦ埛鍒楄〃
+ * @param tempCarFeeConfigs 灏忓尯涓存椂杞︽敹璐规爣鍑嗕俊鎭�
*/
- private void refreshTempCarFeeConfig(TempCarFeeConfigDto tempCarFeeConfig, List<UserDto> users) {
- for (UserDto user : users) {
- if (tempCarFeeConfig.getConfigId().equals(user.getUserId())) {
- BeanConvertUtil.covertBean(user, tempCarFeeConfig);
+ private void refreshTempCarFeeConfig(List<TempCarFeeConfigDto> tempCarFeeConfigs) {
+ if (tempCarFeeConfigs == null || tempCarFeeConfigs.size() < 1) {
+ return;
+ }
+ List<String> configIds = new ArrayList<>();
+ for (TempCarFeeConfigDto tempCarFeeConfigDto : tempCarFeeConfigs) {
+ configIds.add(tempCarFeeConfigDto.getConfigId());
+ }
+
+ TempCarFeeConfigAttrDto tempCarFeeConfigAttrDto = new TempCarFeeConfigAttrDto();
+ tempCarFeeConfigAttrDto.setConfigIds(configIds.toArray(new String[configIds.size()]));
+ tempCarFeeConfigAttrDto.setCommunityId(tempCarFeeConfigs.get(0).getCommunityId());
+ List<TempCarFeeConfigAttrDto> tempCarFeeConfigAttrDtos = tempCarFeeConfigAttrInnerServiceSMOImpl.queryTempCarFeeConfigAttrs(tempCarFeeConfigAttrDto);
+
+ if (tempCarFeeConfigAttrDtos == null || tempCarFeeConfigAttrDtos.size() < 1) {
+ return;
+ }
+ List<TempCarFeeConfigAttrDto> tempCarFeeConfigAttrDtoList = null;
+ for (TempCarFeeConfigDto tempCarFeeConfigDto : tempCarFeeConfigs) {
+ tempCarFeeConfigAttrDtoList = new ArrayList<>();
+ for (TempCarFeeConfigAttrDto tCarFeeConfigAttrDto : tempCarFeeConfigAttrDtos) {
+ if (tempCarFeeConfigDto.getConfigId().equals(tCarFeeConfigAttrDto.getConfigId())) {
+ tempCarFeeConfigAttrDtoList.add(tCarFeeConfigAttrDto);
+ }
}
+ tempCarFeeConfigDto.setTempCarFeeConfigAttrs(tempCarFeeConfigAttrDtoList);
}
- }
-
- /**
- * 鑾峰彇鎵归噺userId
- *
- * @param tempCarFeeConfigs 灏忓尯妤间俊鎭�
- * @return 鎵归噺userIds 淇℃伅
- */
- private String[] getUserIds(List<TempCarFeeConfigDto> tempCarFeeConfigs) {
- List<String> userIds = new ArrayList<String>();
- for (TempCarFeeConfigDto tempCarFeeConfig : tempCarFeeConfigs) {
- userIds.add(tempCarFeeConfig.getConfigId());
- }
-
- return userIds.toArray(new String[userIds.size()]);
}
@Override
@@ -80,6 +103,112 @@
return tempCarFeeConfigServiceDaoImpl.queryTempCarFeeConfigsCount(BeanConvertUtil.beanCovertMap(tempCarFeeConfigDto));
}
+ @Override
+ public List<TempCarFeeRuleDto> queryTempCarFeeRules(@RequestBody TempCarFeeRuleDto tempCarFeeRuleDto) {
+
+ List<TempCarFeeRuleDto> tempCarFeeRuleDtos = BeanConvertUtil.covertBeanList(tempCarFeeConfigServiceDaoImpl.queryTempCarFeeRules(BeanConvertUtil.beanCovertMap(tempCarFeeRuleDto)), TempCarFeeRuleDto.class);
+ freshRuleSpecs(tempCarFeeRuleDtos);
+ return tempCarFeeRuleDtos;
+ }
+
+ @Override
+ public List<CarInoutDto> computeTempCarFee(@RequestBody List<CarInoutDto> carInoutDtos) {
+ TempCarFeeConfigDto tempCarFeeConfigDto = new TempCarFeeConfigDto();
+ tempCarFeeConfigDto.setPaId(carInoutDtos.get(0).getPaId());
+ tempCarFeeConfigDto.setCommunityId(carInoutDtos.get(0).getCommunityId());
+ List<TempCarFeeConfigDto> tempCarFeeConfigDtos = queryTempCarFeeConfigs(tempCarFeeConfigDto);
+
+ if (tempCarFeeConfigDtos == null || tempCarFeeConfigDtos.size() < 1) {
+ return carInoutDtos;
+ }
+ TempCarFeeConfigAttrDto tempCarFeeConfigAttrDto = new TempCarFeeConfigAttrDto();
+ tempCarFeeConfigAttrDto.setConfigId(tempCarFeeConfigDto.getConfigId());
+ tempCarFeeConfigAttrDto.setCommunityId(tempCarFeeConfigDto.getCommunityId());
+
+ List<TempCarFeeConfigAttrDto> tempCarFeeConfigAttrDtos = tempCarFeeConfigAttrInnerServiceSMOImpl.queryTempCarFeeConfigAttrs(tempCarFeeConfigAttrDto);
+ IComputeTempCarFee computeTempCarFee = ApplicationContextFactory.getBean(tempCarFeeConfigDtos.get(0).getRuleId(), IComputeTempCarFee.class);
+ for (CarInoutDto carInoutDto : carInoutDtos) {
+ try {
+ TempCarFeeResult result = computeTempCarFee.computeTempCarFee(carInoutDto, tempCarFeeConfigDtos.get(0), tempCarFeeConfigAttrDtos);
+ carInoutDto.setMin(result.getMin());
+ carInoutDto.setHours(result.getHours());
+ carInoutDto.setPayCharge(result.getPayCharge() + "");
+ } catch (Exception e) {
+ logger.error("涓存椂杞︾畻璐瑰け璐�", e);
+ }
+ }
+
+ return carInoutDtos;
+ }
+
+ @Override
+ public List<CarInoutDetailDto> computeTempCarInoutDetailFee(@RequestBody List<CarInoutDetailDto> carInoutDtos) {
+ TempCarFeeConfigDto tempCarFeeConfigDto = new TempCarFeeConfigDto();
+ tempCarFeeConfigDto.setPaId(carInoutDtos.get(0).getPaId());
+ tempCarFeeConfigDto.setCommunityId(carInoutDtos.get(0).getCommunityId());
+ List<TempCarFeeConfigDto> tempCarFeeConfigDtos = queryTempCarFeeConfigs(tempCarFeeConfigDto);
+
+ if (tempCarFeeConfigDtos == null || tempCarFeeConfigDtos.size() < 1) {
+ return carInoutDtos;
+ }
+ TempCarFeeConfigAttrDto tempCarFeeConfigAttrDto = new TempCarFeeConfigAttrDto();
+ tempCarFeeConfigAttrDto.setConfigId(tempCarFeeConfigDto.getConfigId());
+ tempCarFeeConfigAttrDto.setCommunityId(tempCarFeeConfigDto.getCommunityId());
+
+ List<TempCarFeeConfigAttrDto> tempCarFeeConfigAttrDtos = tempCarFeeConfigAttrInnerServiceSMOImpl.queryTempCarFeeConfigAttrs(tempCarFeeConfigAttrDto);
+ IComputeTempCarFee computeTempCarFee = ApplicationContextFactory.getBean(tempCarFeeConfigDtos.get(0).getRuleId(), IComputeTempCarFee.class);
+ for (CarInoutDetailDto carInoutDto : carInoutDtos) {
+ try {
+ if (CarInoutDetailDto.CAR_INOUT_IN.equals(carInoutDto.getCarInout())) {
+ TempCarFeeResult result = computeTempCarFee.computeTempCarFee(carInoutDto, tempCarFeeConfigDtos.get(0), tempCarFeeConfigAttrDtos);
+ carInoutDto.setMin(result.getMin());
+ carInoutDto.setHours(result.getHours());
+ carInoutDto.setPayCharge(result.getPayCharge() + "");
+ } else {
+ //鑾峰彇鍋滆溅鏃堕棿
+ Date stateDate = DateUtil.getDateFromString(carInoutDto.getInTime(), DateUtil.DATE_FORMATE_STRING_A);
+ Date endDate = DateUtil.getDateFromString(carInoutDto.getOutTime(), DateUtil.DATE_FORMATE_STRING_A);
+ long min = (endDate.getTime() - stateDate.getTime()) / (60 * 1000);
+ long hours = min / 60; //鍥犱负涓よ�呴兘鏄暣鏁帮紝浣犲緱鍒颁竴涓猧nt
+ long minutes = min % 60;
+ carInoutDto.setMin(minutes);
+ carInoutDto.setHours(hours);
+ carInoutDto.setPayCharge(carInoutDto.getRealCharge());
+ }
+ } catch (Exception e) {
+ logger.error("涓存椂杞︾畻璐瑰け璐�", e);
+ }
+ }
+
+ return carInoutDtos;
+ }
+
+ private void freshRuleSpecs(List<TempCarFeeRuleDto> tempCarFeeRuleDtos) {
+ if (tempCarFeeRuleDtos == null || tempCarFeeRuleDtos.size() < 1) {
+ return;
+ }
+ List<String> ruleIds = new ArrayList<>();
+ for (TempCarFeeRuleDto tempCarFeeRuleDto : tempCarFeeRuleDtos) {
+ ruleIds.add(tempCarFeeRuleDto.getRuleId());
+ }
+
+ TempCarFeeRuleSpecDto tempCarFeeRuleSpecDto = new TempCarFeeRuleSpecDto();
+ tempCarFeeRuleSpecDto.setRuleIds(ruleIds.toArray(new String[ruleIds.size()]));
+ List<TempCarFeeRuleSpecDto> tempCarFeeRuleSpecDtos = BeanConvertUtil.covertBeanList(
+ tempCarFeeConfigServiceDaoImpl.queryTempCarFeeRuleSpecs(
+ BeanConvertUtil.beanCovertMap(tempCarFeeRuleSpecDto)), TempCarFeeRuleSpecDto.class);
+ List<TempCarFeeRuleSpecDto> tCarFeeRuleSpecDtos = null;
+ for (TempCarFeeRuleDto tempCarFeeRuleDto : tempCarFeeRuleDtos) {
+ tCarFeeRuleSpecDtos = new ArrayList<>();
+ for (TempCarFeeRuleSpecDto tCarFeeRuleSpecDto : tempCarFeeRuleSpecDtos) {
+ if (tempCarFeeRuleDto.getRuleId().equals(tCarFeeRuleSpecDto.getRuleId())) {
+ tCarFeeRuleSpecDtos.add(tCarFeeRuleSpecDto);
+ }
+ }
+ tempCarFeeRuleDto.setTempCarFeeRuleSpecs(tCarFeeRuleSpecDtos);
+ }
+ }
+
public ITempCarFeeConfigServiceDao getTempCarFeeConfigServiceDaoImpl() {
return tempCarFeeConfigServiceDaoImpl;
}
--
Gitblit v1.8.0