From bb198fb66045329b6dc47a031f202aabc6b8a1dd Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期日, 31 五月 2020 21:33:01 +0800
Subject: [PATCH] 优化代码

---
 Api/src/main/java/com/java110/api/bmo/room/impl/RoomBMOImpl.java |  260 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 260 insertions(+), 0 deletions(-)

diff --git a/Api/src/main/java/com/java110/api/bmo/room/impl/RoomBMOImpl.java b/Api/src/main/java/com/java110/api/bmo/room/impl/RoomBMOImpl.java
index adaea30..34aa209 100644
--- a/Api/src/main/java/com/java110/api/bmo/room/impl/RoomBMOImpl.java
+++ b/Api/src/main/java/com/java110/api/bmo/room/impl/RoomBMOImpl.java
@@ -1,8 +1,37 @@
 package com.java110.api.bmo.room.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.java110.api.bmo.ApiBaseBMO;
 import com.java110.api.bmo.room.IRoomBMO;
+import com.java110.core.context.DataFlowContext;
+import com.java110.core.smo.fee.IFeeConfigInnerServiceSMO;
+import com.java110.core.smo.fee.IFeeInnerServiceSMO;
+import com.java110.core.smo.owner.IOwnerRoomRelInnerServiceSMO;
+import com.java110.core.smo.room.IRoomInnerServiceSMO;
+import com.java110.dto.RoomDto;
+import com.java110.dto.fee.FeeConfigDto;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.owner.OwnerRoomRelDto;
+import com.java110.po.community.CommunityMemberPo;
+import com.java110.po.fee.PayFeePo;
+import com.java110.po.floor.FloorPo;
+import com.java110.po.owner.OwnerRoomRelPo;
+import com.java110.po.room.RoomPo;
+import com.java110.po.unit.UnitPo;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.constant.CommunityMemberTypeConstant;
+import com.java110.utils.constant.FeeTypeConstant;
+import com.java110.utils.constant.ResponseConstant;
+import com.java110.utils.constant.StateConstant;
+import com.java110.utils.exception.ListenerExecuteException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.DateUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 /**
  * @ClassName RoomBMOImpl
@@ -15,4 +44,235 @@
 
 @Service("roomBMOImpl")
 public class RoomBMOImpl extends ApiBaseBMO implements IRoomBMO {
+
+    @Autowired
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+    @Autowired
+    private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMO;
+
+    /**
+     * 淇敼鎴垮眿
+     *
+     * @param paramInJson     鎺ュ彛璋冪敤鏀句紶鍏ュ叆鍙�
+     * @param dataFlowContext 鏁版嵁涓婁笅鏂�
+     * @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
+     */
+    public void updateRoom(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+        RoomDto roomDto = new RoomDto();
+        roomDto.setCommunityId(paramInJson.getString("communityId"));
+        roomDto.setRoomId(paramInJson.getString("roomId"));
+        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+
+        Assert.listOnlyOne(roomDtos, "瀛樺湪" + roomDtos.size() + "鏉℃埧灞嬩俊鎭�");
+
+        JSONObject businessUnit = new JSONObject();
+        businessUnit.putAll(BeanConvertUtil.beanCovertMap(roomDtos.get(0)));
+        businessUnit.putAll(paramInJson);
+        businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
+        RoomPo roomPo = BeanConvertUtil.covertBean(businessUnit, RoomPo.class);
+        super.update(dataFlowContext, roomPo, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_ROOM_INFO);
+    }
+
+
+    public void addBusinessFloor(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+        FloorPo floorPo = BeanConvertUtil.covertBean(paramInJson, FloorPo.class);
+        super.insert(dataFlowContext, floorPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FLOOR_INFO);
+    }
+
+    /**
+     * 娣诲姞灏忓尯鎴愬憳
+     *
+     * @param paramInJson 缁勮 妤煎皬鍖哄叧绯�
+     * @return 灏忓尯鎴愬憳淇℃伅
+     */
+    public void addCommunityMember(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+        JSONObject businessCommunityMember = new JSONObject();
+        businessCommunityMember.put("communityMemberId", "-1");
+        businessCommunityMember.put("communityId", paramInJson.getString("communityId"));
+        businessCommunityMember.put("memberId", paramInJson.getString("floorId"));
+        businessCommunityMember.put("memberTypeCd", CommunityMemberTypeConstant.FLOOR);
+        businessCommunityMember.put("auditStatusCd", StateConstant.AGREE_AUDIT);
+        CommunityMemberPo communityMemberPo = BeanConvertUtil.covertBean(businessCommunityMember, CommunityMemberPo.class);
+        super.insert(dataFlowContext, communityMemberPo, BusinessTypeConstant.BUSINESS_TYPE_MEMBER_JOINED_COMMUNITY);
+    }
+
+    public void addBusinessUnit(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+        UnitPo unitPo = BeanConvertUtil.covertBean(paramInJson, UnitPo.class);
+        super.insert(dataFlowContext, unitPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_UNIT_INFO);
+    }
+
+    public void addBusinessRoom(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+        RoomPo roomPo = BeanConvertUtil.covertBean(paramInJson, RoomPo.class);
+        super.insert(dataFlowContext, roomPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_ROOM_INFO);
+    }
+
+    /**
+     * 娣诲姞灏忓尯妤间俊鎭�
+     *
+     * @param paramInJson     鎺ュ彛璋冪敤鏀句紶鍏ュ叆鍙�
+     * @param dataFlowContext 鏁版嵁涓婁笅鏂�
+     * @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
+     */
+    public void deleteRoom(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+
+        JSONObject businessUnit = new JSONObject();
+        businessUnit.putAll(paramInJson);
+        businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
+        RoomPo roomPo = BeanConvertUtil.covertBean(businessUnit, RoomPo.class);
+        super.delete(dataFlowContext, roomPo, BusinessTypeConstant.BUSINESS_TYPE_DELETE_ROOM_INFO);
+    }
+
+    /**
+     * 鍞崠鎴垮眿淇℃伅
+     *
+     * @param paramInJson     鎺ュ彛璋冪敤鏀句紶鍏ュ叆鍙�
+     * @param dataFlowContext 鏁版嵁涓婁笅鏂�
+     * @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
+     */
+    public void exitRoom(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+        //鏍规嵁ownerId 鍜� roomId 鏌ヨrelId 鍒犻櫎
+        OwnerRoomRelDto ownerRoomRelDto = BeanConvertUtil.covertBean(paramInJson, OwnerRoomRelDto.class);
+        List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
+
+        if (ownerRoomRelDtos == null || ownerRoomRelDtos.size() != 1) {
+            throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "鏁版嵁瀛樺湪闂锛屼笟涓诲拰鎴垮眿瀵瑰簲鍏崇郴涓嶆槸涓�鏉�");
+        }
+
+
+        JSONObject businessUnit = new JSONObject();
+        //businessUnit.putAll(paramInJson);
+        businessUnit.put("relId", ownerRoomRelDtos.get(0).getRelId());
+        //businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
+        OwnerRoomRelPo roomPo = BeanConvertUtil.covertBean(businessUnit, OwnerRoomRelPo.class);
+        super.delete(dataFlowContext, roomPo, BusinessTypeConstant.BUSINESS_TYPE_DELETE_OWNER_ROOM_REL);
+    }
+
+
+    /**
+     * 鍒犻櫎鐗╀笟璐圭敤淇℃伅
+     *
+     * @param paramInJson     鎺ュ彛璋冪敤鏀句紶鍏ュ叆鍙�
+     * @param dataFlowContext 鏁版嵁涓婁笅鏂�
+     * @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
+     */
+    public void exitPropertyFee(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+
+        //鏍¢獙鐗╀笟璐规槸鍚﹀凡缁忎氦娓�
+        FeeDto feeDto = new FeeDto();
+        feeDto.setCommunityId(paramInJson.getString("communityId"));
+        feeDto.setIncomeObjId(paramInJson.getString("storeId"));
+        feeDto.setPayerObjId(paramInJson.getString("roomId"));
+        feeDto.setFeeTypeCd(FeeTypeConstant.FEE_TYPE_PROPERTY);
+        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+
+        if (feeDtos == null || feeDtos.size() != 1) {
+            throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "鏁版嵁瀛樺湪闂锛岀墿涓氳垂瀵瑰簲鍏崇郴涓嶆槸涓�鏉�");
+        }
+
+        JSONObject businessFee = new JSONObject();
+        //businessUnit.putAll(paramInJson);
+        businessFee.put("feeId", feeDtos.get(0).getFeeId());
+        //businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
+        PayFeePo payFeePo = BeanConvertUtil.covertBean(businessFee, PayFeePo.class);
+        super.delete(dataFlowContext, payFeePo, BusinessTypeConstant.BUSINESS_TYPE_DELETE_FEE_INFO);
+    }
+
+    /**
+     * 娣诲姞灏忓尯妤间俊鎭�
+     *
+     * @param paramInJson     鎺ュ彛璋冪敤鏀句紶鍏ュ叆鍙�
+     * @param dataFlowContext 鏁版嵁涓婁笅鏂�
+     * @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
+     */
+    public void addRoom(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+        JSONObject businessUnit = new JSONObject();
+        businessUnit.putAll(paramInJson);
+        businessUnit.put("roomId", "-1");
+        businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
+        RoomPo roomPo = BeanConvertUtil.covertBean(businessUnit, RoomPo.class);
+        super.delete(dataFlowContext, roomPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_ROOM_INFO);
+    }
+
+    /**
+     * 鍞崠鎴垮眿淇℃伅
+     *
+     * @param paramInJson     鎺ュ彛璋冪敤鏀句紶鍏ュ叆鍙�
+     * @param dataFlowContext 鏁版嵁涓婁笅鏂�
+     * @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
+     */
+    public void sellRoom(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+        JSONObject businessUnit = new JSONObject();
+        businessUnit.putAll(paramInJson);
+        businessUnit.put("relId", "-1");
+        businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
+        OwnerRoomRelPo ownerRoomRelPo = BeanConvertUtil.covertBean(businessUnit, OwnerRoomRelPo.class);
+        super.insert(dataFlowContext, ownerRoomRelPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_OWNER_ROOM_REL);
+    }
+
+    /**
+     * 娣诲姞鐗╀笟璐圭敤
+     *
+     * @param paramInJson     鎺ュ彛璋冪敤鏀句紶鍏ュ叆鍙�
+     * @param dataFlowContext 鏁版嵁涓婁笅鏂�
+     * @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
+     */
+    public void addPropertyFee(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+        FeeConfigDto feeConfigDto = new FeeConfigDto();
+        feeConfigDto.setCommunityId(paramInJson.getString("communityId"));
+        feeConfigDto.setIsDefault("T");
+        feeConfigDto.setFeeTypeCd(FeeTypeConstant.FEE_TYPE_PROPERTY);
+        List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMO.queryFeeConfigs(feeConfigDto);
+
+        Assert.listOnlyOne(feeConfigDtos, "鐗╀笟璐归粯璁ら厤缃笉瀛樺湪鎴栧瓨鍦ㄥ鏉¤妫�鏌�");
+        JSONObject businessUnit = new JSONObject();
+        businessUnit.put("feeId", "-1");
+        businessUnit.put("configId", feeConfigDtos.get(0).getConfigId());
+        businessUnit.put("feeTypeCd", FeeTypeConstant.FEE_TYPE_PROPERTY);
+        businessUnit.put("incomeObjId", paramInJson.getString("storeId"));
+        businessUnit.put("amount", "-1.00");
+        businessUnit.put("startTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        businessUnit.put("endTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        businessUnit.put("communityId", paramInJson.getString("communityId"));
+        businessUnit.put("payerObjId", paramInJson.getString("roomId"));
+        businessUnit.put("payerObjType", "3333");
+        businessUnit.put("feeFlag", "1003006");
+        businessUnit.put("state", "2008001");
+        businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
+        PayFeePo payFeePo = BeanConvertUtil.covertBean(businessUnit, PayFeePo.class);
+        super.delete(dataFlowContext, payFeePo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
+    }
+
+    /**
+     * 娣诲姞灏忓尯妤间俊鎭�
+     *
+     * @param paramInJson     鎺ュ彛璋冪敤鏀句紶鍏ュ叆鍙�
+     * @param dataFlowContext 鏁版嵁涓婁笅鏂�
+     * @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
+     */
+    public void updateShellRoom(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+        JSONObject businessUnit = new JSONObject();
+        businessUnit.putAll(paramInJson);
+        businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
+        RoomPo roomPo = BeanConvertUtil.covertBean(businessUnit, RoomPo.class);
+        super.update(dataFlowContext, roomPo, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_ROOM_INFO);
+    }
+
+
 }

--
Gitblit v1.8.0