From 555480944133321134e88ee61bcc56604687399c Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期一, 24 四月 2023 14:44:41 +0800
Subject: [PATCH] optimize pc charge month card

---
 service-common/src/main/java/com/java110/common/cmd/chargeCard/SaveChargeMonthOrderCmd.java |   69 ++++++++++++++++++++++++++++++++++
 1 files changed, 68 insertions(+), 1 deletions(-)

diff --git a/service-common/src/main/java/com/java110/common/cmd/chargeCard/SaveChargeMonthOrderCmd.java b/service-common/src/main/java/com/java110/common/cmd/chargeCard/SaveChargeMonthOrderCmd.java
index f69e3ad..240ed0f 100644
--- a/service-common/src/main/java/com/java110/common/cmd/chargeCard/SaveChargeMonthOrderCmd.java
+++ b/service-common/src/main/java/com/java110/common/cmd/chargeCard/SaveChargeMonthOrderCmd.java
@@ -22,15 +22,27 @@
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.chargeMonthCard.ChargeMonthCardDto;
+import com.java110.dto.chargeMonthOrder.ChargeMonthOrderDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.user.UserDto;
+import com.java110.intf.acct.IIntegralConfigV1InnerServiceSMO;
+import com.java110.intf.common.IChargeMonthCardV1InnerServiceSMO;
 import com.java110.intf.common.IChargeMonthOrderV1InnerServiceSMO;
+import com.java110.intf.user.IOwnerV1InnerServiceSMO;
+import com.java110.intf.user.IUserV1InnerServiceSMO;
 import com.java110.po.chargeMonthOrder.ChargeMonthOrderPo;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.DateUtil;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
+import java.util.Date;
+import java.util.List;
 
 /**
  * 绫昏〃杩帮細淇濆瓨
@@ -52,6 +64,15 @@
     @Autowired
     private IChargeMonthOrderV1InnerServiceSMO chargeMonthOrderV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IChargeMonthCardV1InnerServiceSMO chargeMonthCardV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerV1InnerServiceSMO ownerInnerServiceSMOImpl;
+
+    @Autowired
+    private IUserV1InnerServiceSMO userV1InnerServiceSMOImpl;
+
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "cardId", "璇锋眰鎶ユ枃涓湭鍖呭惈cardId");
@@ -59,17 +80,42 @@
         Assert.hasKeyAndValue(reqJson, "personTel", "璇锋眰鎶ユ枃涓湭鍖呭惈personTel");
         Assert.hasKeyAndValue(reqJson, "communityId", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId");
         Assert.hasKeyAndValue(reqJson, "primeRate", "璇锋眰鎶ユ枃涓湭鍖呭惈primeRate");
-        Assert.hasKeyAndValue(reqJson, "receivableAmount", "璇锋眰鎶ユ枃涓湭鍖呭惈receivableAmount");
         Assert.hasKeyAndValue(reqJson, "receivedAmount", "璇锋眰鎶ユ枃涓湭鍖呭惈receivedAmount");
 
+        //鏍¢獙鏈堝崱鏄惁 瀛樺湪
+        ChargeMonthCardDto chargeMonthCardDto = new ChargeMonthCardDto();
+        chargeMonthCardDto.setCardId(reqJson.getString("cardId"));
+        chargeMonthCardDto.setCommunityId(reqJson.getString("communityId"));
+        List<ChargeMonthCardDto> chargeMonthCardDtos = chargeMonthCardV1InnerServiceSMOImpl.queryChargeMonthCards(chargeMonthCardDto);
+
+        Assert.listOnlyOne(chargeMonthCardDtos, "鏈堝崱涓嶅瓨鍦�");
+        reqJson.put("receivableAmount", chargeMonthCardDtos.get(0).getCardPrice());
+        reqJson.put("cardMonth", chargeMonthCardDtos.get(0).getCardMonth());
     }
 
     @Override
     @Java110Transactional
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
 
+        ChargeMonthOrderDto chargeMonthOrderDto = new ChargeMonthOrderDto();
+        chargeMonthOrderDto.setPersonTel(reqJson.getString("personTel"));
+        chargeMonthOrderDto.setQueryTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        List<ChargeMonthOrderDto> chargeMonthOrderDtos = chargeMonthOrderV1InnerServiceSMOImpl.queryChargeMonthOrders(chargeMonthOrderDto);
+        Date startTime = null;
+        if (chargeMonthOrderDtos == null || chargeMonthOrderDtos.size() < 1) {
+            startTime = DateUtil.getCurrentDate();
+        } else {
+            startTime = DateUtil.getDateFromStringA(chargeMonthOrderDtos.get(0).getEndTime());
+        }
+
+        String endDate = DateUtil.getAddMonthStringA(startTime, reqJson.getIntValue("cardMonth"));
+
         ChargeMonthOrderPo chargeMonthOrderPo = BeanConvertUtil.covertBean(reqJson, ChargeMonthOrderPo.class);
         chargeMonthOrderPo.setOrderId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+        chargeMonthOrderPo.setStartTime(DateUtil.getFormatTimeString(startTime, DateUtil.DATE_FORMATE_STRING_A));
+        chargeMonthOrderPo.setEndTime(endDate);
+        chargeMonthOrderPo.setPersonTel("personTel");
+        chargeMonthOrderPo.setPersonName(getPersonName(reqJson));
         int flag = chargeMonthOrderV1InnerServiceSMOImpl.saveChargeMonthOrder(chargeMonthOrderPo);
 
         if (flag < 1) {
@@ -78,4 +124,25 @@
 
         cmdDataFlowContext.setResponseEntity(ResultVo.success());
     }
+
+    private String getPersonName(JSONObject reqJson) {
+
+        // todo 涓氫富鐢� 鎵嬫満鍙锋煡璇�
+        OwnerDto tmpOwnerDto = new OwnerDto();
+        tmpOwnerDto.setLink(reqJson.getString("personTel"));
+        tmpOwnerDto.setCommunityId(reqJson.getString("communityId"));
+        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(tmpOwnerDto);
+        if (ownerDtos != null && ownerDtos.size() > 0) {
+            return ownerDtos.get(0).getName();
+        }
+
+        //todo 闈炰笟涓绘槸娓稿
+        UserDto userDto = new UserDto();
+        userDto.setTel(reqJson.getString("personTel"));
+        List<UserDto> userDtos = userV1InnerServiceSMOImpl.queryUsers(userDto);
+        if (userDtos != null && userDtos.size() > 0) {
+            return userDtos.get(0).getName();
+        }
+        throw new CmdException("涓氫富涓嶅瓨鍦�");
+    }
 }

--
Gitblit v1.8.0