From 05683f2b2bdbdbe21cf17ad523c21ab338bd1c54 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期二, 19 七月 2022 21:49:55 +0800
Subject: [PATCH] 优化添加设备 功能

---
 service-fee/src/main/java/com/java110/fee/api/ApplyRoomDiscountApi.java |  108 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 102 insertions(+), 6 deletions(-)

diff --git a/service-fee/src/main/java/com/java110/fee/api/ApplyRoomDiscountApi.java b/service-fee/src/main/java/com/java110/fee/api/ApplyRoomDiscountApi.java
index 02896ee..fc7731e 100755
--- a/service-fee/src/main/java/com/java110/fee/api/ApplyRoomDiscountApi.java
+++ b/service-fee/src/main/java/com/java110/fee/api/ApplyRoomDiscountApi.java
@@ -6,13 +6,11 @@
 import com.java110.core.annotation.Java110Transactional;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.factory.GenerateCodeFactory;
-import com.java110.dto.account.AccountDto;
-import com.java110.dto.accountDetail.AccountDetailDto;
 import com.java110.dto.applyRoomDiscount.ApplyRoomDiscountDto;
 import com.java110.dto.applyRoomDiscountType.ApplyRoomDiscountTypeDto;
 import com.java110.dto.fee.FeeDetailDto;
 import com.java110.dto.feeDiscount.FeeDiscountRuleDto;
-import com.java110.dto.owner.OwnerRoomRelDto;
+import com.java110.dto.file.FileDto;
 import com.java110.fee.bmo.account.ISaveAccountBMO;
 import com.java110.fee.bmo.account.IUpdateAccountBMO;
 import com.java110.fee.bmo.applyRoomDiscount.IAuditApplyRoomDiscountBMO;
@@ -25,19 +23,26 @@
 import com.java110.fee.bmo.applyRoomDiscountType.ISaveApplyRoomDiscountTypeBMO;
 import com.java110.fee.bmo.applyRoomDiscountType.IUpdateApplyRoomDiscountTypeBMO;
 import com.java110.intf.acct.IAccountInnerServiceSMO;
+import com.java110.intf.common.IFileInnerServiceSMO;
+import com.java110.intf.common.IFileRelInnerServiceSMO;
 import com.java110.intf.fee.IApplyRoomDiscountInnerServiceSMO;
 import com.java110.intf.fee.IFeeDetailInnerServiceSMO;
 import com.java110.intf.fee.IFeeDiscountRuleInnerServiceSMO;
 import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
 import com.java110.po.applyRoomDiscount.ApplyRoomDiscountPo;
 import com.java110.po.applyRoomDiscountType.ApplyRoomDiscountTypePo;
+import com.java110.po.file.FileRelPo;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.StringUtil;
-import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 import java.math.BigDecimal;
 import java.text.DecimalFormat;
@@ -49,6 +54,8 @@
 @RestController
 @RequestMapping(value = "/applyRoomDiscount")
 public class ApplyRoomDiscountApi {
+
+    private static final String SPEC_RATE = "89002020980013"; // 鎵撴姌鐜�
 
     @Autowired
     private ISaveApplyRoomDiscountBMO saveApplyRoomDiscountBMOImpl;
@@ -98,6 +105,12 @@
     @Autowired
     private IUpdateAccountBMO updateAccountBMOImpl;
 
+    @Autowired
+    private IFileInnerServiceSMO fileInnerServiceSMOImpl;
+
+    @Autowired
+    private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
+
     /**
      * 浼樻儬鐢宠
      *
@@ -127,6 +140,7 @@
         ApplyRoomDiscountDto applyRoomDiscountDto = new ApplyRoomDiscountDto();
         applyRoomDiscountDto.setCommunityId(applyRoomDiscountPo.getCommunityId());
         applyRoomDiscountDto.setRoomId(applyRoomDiscountPo.getRoomId());
+        applyRoomDiscountDto.setFeeId(applyRoomDiscountPo.getFeeId());
         //鏌ヨ鎶樻墸鐢宠琛ㄤ腑璇ユ埧灞嬩笅绗﹀悎鏉′欢鐨勬渶鏂扮殑涓�鏉℃暟鎹�
         List<ApplyRoomDiscountDto> applyRoomDiscountDtos = applyRoomDiscountInnerServiceSMOImpl.queryFirstApplyRoomDiscounts(applyRoomDiscountDto);
         //鑾峰彇鏈濉啓鐨勫紑濮嬫椂闂�
@@ -134,6 +148,9 @@
         if (applyRoomDiscountDtos.size() == 0) {
             //绌虹疆鎴夸紭鎯犲彲鐢�
             applyRoomDiscountPo.setInUse("0");
+            applyRoomDiscountPo.setArdId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ardId));
+            applyRoomDiscountPo.setState(ApplyRoomDiscountDto.STATE_APPLY);
+            saveFile(applyRoomDiscountPo);
             return saveApplyRoomDiscountBMOImpl.save(applyRoomDiscountPo);
         } else if (applyRoomDiscountDtos.size() > 0) {
             //鍙栧嚭缁撴潫鏃堕棿
@@ -142,12 +159,47 @@
             if (startDate.getTime() - finishTime.getTime() >= 0) {
                 //绌虹疆鎴夸紭鎯犲彲鐢�
                 applyRoomDiscountPo.setInUse("0");
+                applyRoomDiscountPo.setArdId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ardId));
+                applyRoomDiscountPo.setState(ApplyRoomDiscountDto.STATE_APPLY);
+                saveFile(applyRoomDiscountPo);
                 return saveApplyRoomDiscountBMOImpl.save(applyRoomDiscountPo);
             } else {
                 throw new UnsupportedOperationException("璇ユ椂闂存宸茬粡鐢宠杩囩┖缃埧锛岃閲嶆柊杈撳叆绌虹疆鎴跨敵璇峰紑濮嬪拰缁撴潫鏃堕棿");
             }
         } else {
             throw new UnsupportedOperationException("淇℃伅閿欒");
+        }
+    }
+
+    /**
+     * 涓婁紶鍥剧墖
+     *
+     * @param applyRoomDiscountPo
+     */
+    public void saveFile(ApplyRoomDiscountPo applyRoomDiscountPo) {
+        //鑾峰彇鍥剧墖
+        List<String> photos = applyRoomDiscountPo.getPhotos();
+        FileRelPo fileRelPo = new FileRelPo();
+        fileRelPo.setFileRelId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_relId));
+        fileRelPo.setObjId(applyRoomDiscountPo.getArdId());
+        //table琛ㄧず琛ㄥ瓨鍌� ftp琛ㄧずftp鏂囦欢瀛樺偍
+        fileRelPo.setSaveWay("ftp");
+        fileRelPo.setCreateTime(new Date());
+        //鍥剧墖涓婁紶
+        if (photos != null && photos.size() > 0) {
+            //19000琛ㄧず瑁呬慨鍥剧墖
+            fileRelPo.setRelTypeCd("19000");
+            for (String photo : photos) {
+                FileDto fileDto = new FileDto();
+                fileDto.setCommunityId("-1");
+                fileDto.setContext(photo);
+                fileDto.setFileId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_file_id));
+                fileDto.setFileName(fileDto.getFileId());
+                String fileName = fileInnerServiceSMOImpl.saveFile(fileDto);
+                fileRelPo.setFileRealName(fileName);
+                fileRelPo.setFileSaveName(fileName);
+                fileRelInnerServiceSMOImpl.saveFileRel(fileRelPo);
+            }
         }
     }
 
@@ -249,7 +301,8 @@
                 //鑾峰彇鎶樻墸绫诲瀷(1: 鎵撴姌  2:鍑忓厤  3:婊炵撼閲�  4:绌虹疆鎴挎墦鎶�  5:绌虹疆鎴垮噺鍏�)
                 String discountSmallType = feeDiscountRuleDtos.get(0).getDiscountSmallType();
                 //鑾峰彇瑙勫垯
-                String specValue = feeDiscountSpecs.getJSONObject(1).getString("specValue");
+                //String specValue = feeDiscountSpecs.getJSONObject(1).getString("specValue");
+                String specValue = getRateSpecValueByFeeDiscountSpecs(feeDiscountSpecs);
                 if (!StringUtil.isEmpty(discountSmallType) && (discountSmallType.equals("1") || discountSmallType.equals("4"))) { //鎵撴姌
                     for (int index = 0; index < feeDetailIds.size(); index++) {
                         String feeDetailId = String.valueOf(feeDetailIds.get(index));
@@ -290,6 +343,47 @@
         reqJson.put("reviewUserId", userId);
         ApplyRoomDiscountPo applyRoomDiscountPo = BeanConvertUtil.covertBean(reqJson, ApplyRoomDiscountPo.class);
         return updateApplyRoomDiscountBMOImpl.update(applyRoomDiscountPo);
+    }
+
+    /**
+     * 89002020980001	102020001	鏈堜唤
+     * 89002020980002	102020001	鎵撴姌鐜�
+     * 89002020980003	102020002	鏈堜唤
+     * 89002020980004	102020002	鍑忓厤閲戦
+     * 89002020980005	102020003	婊炵撼閲�
+     * 89002020980006	102020004	婊炵撼閲�
+     * 89002020980007	102020005	鏈堜唤
+     * 89002020980008	102020005	鎵撴姌鐜�
+     * 89002020980009	102020005	娆犺垂鏃堕暱
+     * 89002020980010	102020006	鏈堜唤
+     * 89002020980011	102020006	鍑忓厤閲戦
+     * 89002020980012	102020007	鏈堜唤
+     * 89002020980013	102020007	鎵撴姌鐜�
+     *
+     * @param feeDiscountSpecs
+     * @return
+     */
+    private String getRateSpecValueByFeeDiscountSpecs(JSONArray feeDiscountSpecs) {
+
+        for (int specIndex = 0; specIndex < feeDiscountSpecs.size(); specIndex++) {
+            if (SPEC_RATE.equals(feeDiscountSpecs.getJSONObject(specIndex).getString("specId"))) {
+                return feeDiscountSpecs.getJSONObject(specIndex).getString("specValue");
+            }
+            if ("89002020980002".equals(feeDiscountSpecs.getJSONObject(specIndex).getString("specId"))) {
+                return feeDiscountSpecs.getJSONObject(specIndex).getString("specValue");
+            }
+            if ("89002020980004".equals(feeDiscountSpecs.getJSONObject(specIndex).getString("specId"))) {
+                return feeDiscountSpecs.getJSONObject(specIndex).getString("specValue");
+            }
+            if ("89002020980008".equals(feeDiscountSpecs.getJSONObject(specIndex).getString("specId"))) {
+                return feeDiscountSpecs.getJSONObject(specIndex).getString("specValue");
+            }
+            if ("89002020980011".equals(feeDiscountSpecs.getJSONObject(specIndex).getString("specId"))) {
+                return feeDiscountSpecs.getJSONObject(specIndex).getString("specValue");
+            }
+        }
+
+        throw new IllegalArgumentException("鏈壘鍒� 鎵撴姌绯绘暟");
     }
 
     /**
@@ -336,6 +430,7 @@
      */
     @RequestMapping(value = "/queryApplyRoomDiscount", method = RequestMethod.GET)
     public ResponseEntity<String> queryApplyRoomDiscount(@RequestParam(value = "communityId") String communityId,
+                                                         @RequestParam(value = "ardId", required = false) String ardId,
                                                          @RequestParam(value = "roomName", required = false) String roomName,
                                                          @RequestParam(value = "roomId", required = false) String roomId,
                                                          @RequestParam(value = "state", required = false) String state,
@@ -343,6 +438,7 @@
                                                          @RequestParam(value = "page") int page,
                                                          @RequestParam(value = "row") int row) {
         ApplyRoomDiscountDto applyRoomDiscountDto = new ApplyRoomDiscountDto();
+        applyRoomDiscountDto.setArdId(ardId);
         applyRoomDiscountDto.setPage(page);
         applyRoomDiscountDto.setRow(row);
         applyRoomDiscountDto.setCommunityId(communityId);

--
Gitblit v1.8.0