From a20310f135ebf1c8ccff2b619f3eff3d704436a0 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期四, 08 十二月 2022 13:12:03 +0800
Subject: [PATCH] Merge branch 'xinghong-dev' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 service-fee/src/main/java/com/java110/fee/cmd/returnPayFee/UpdateReturnPayFeeCmd.java |   79 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 79 insertions(+), 0 deletions(-)

diff --git a/service-fee/src/main/java/com/java110/fee/cmd/returnPayFee/UpdateReturnPayFeeCmd.java b/service-fee/src/main/java/com/java110/fee/cmd/returnPayFee/UpdateReturnPayFeeCmd.java
index 20b50c4..3faa67c 100644
--- a/service-fee/src/main/java/com/java110/fee/cmd/returnPayFee/UpdateReturnPayFeeCmd.java
+++ b/service-fee/src/main/java/com/java110/fee/cmd/returnPayFee/UpdateReturnPayFeeCmd.java
@@ -15,6 +15,7 @@
  */
 package com.java110.fee.cmd.returnPayFee;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
 import com.java110.core.annotation.Java110Transactional;
@@ -22,15 +23,26 @@
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.RoomDto;
+import com.java110.dto.account.AccountDto;
 import com.java110.dto.fee.FeeDetailDto;
 import com.java110.dto.fee.FeeDto;
 import com.java110.dto.feeDiscount.FeeDiscountDto;
 import com.java110.dto.feeDiscount.FeeDiscountRuleDto;
 import com.java110.dto.feeDiscount.FeeDiscountSpecDto;
+import com.java110.dto.owner.OwnerCarDto;
+import com.java110.dto.owner.OwnerRoomRelDto;
 import com.java110.dto.payFeeConfigDiscount.PayFeeConfigDiscountDto;
 import com.java110.dto.payFeeDetailDiscount.PayFeeDetailDiscountDto;
 import com.java110.dto.returnPayFee.ReturnPayFeeDto;
+import com.java110.intf.acct.IAccountDetailInnerServiceSMO;
+import com.java110.intf.acct.IAccountInnerServiceSMO;
+import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.fee.*;
+import com.java110.intf.user.IOwnerCarInnerServiceSMO;
+import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
+import com.java110.po.account.AccountPo;
+import com.java110.po.accountDetail.AccountDetailPo;
 import com.java110.po.fee.PayFeeDetailPo;
 import com.java110.po.fee.PayFeePo;
 import com.java110.po.payFeeDetailDiscount.PayFeeDetailDiscountPo;
@@ -100,6 +112,18 @@
 
     @Autowired
     private IPayFeeDetailDiscountNewV1InnerServiceSMO payFeeDetailDiscountNewV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
+
+    @Autowired
+    private IAccountInnerServiceSMO accountInnerServiceSMOImpl;
+
+    @Autowired
+    private IAccountDetailInnerServiceSMO accountDetailInnerServiceSMOImpl;
 
     private static final String SPEC_RATE = "89002020980015"; //璧犻�佹湀浠�
 
@@ -256,6 +280,61 @@
                 }
             }
             //妫�鏌ユ槸鍚︾幇閲戣处鎴锋姷鎵�
+            String feeAccountDetailDtoList = reqJson.getString("feeAccountDetailDtoList");
+            JSONArray feeAccountDetails = JSONArray.parseArray(feeAccountDetailDtoList);
+            if (feeAccountDetails != null && feeAccountDetails.size() > 0) {
+                String ownerId = "";
+                if (!StringUtil.isEmpty(reqJson.getString("payerObjType")) && reqJson.getString("payerObjType").equals("3333")) { //鎴垮眿
+                    OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+                    ownerRoomRelDto.setRoomId(reqJson.getString("payerObjId"));
+                    List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
+                    Assert.listOnlyOne(ownerRoomRelDtos, "鏌ヨ涓氫富鎴垮眿鍏崇郴琛ㄩ敊璇紒");
+                    ownerId = ownerRoomRelDtos.get(0).getOwnerId();
+                } else if (!StringUtil.isEmpty(reqJson.getString("payerObjType")) && reqJson.getString("payerObjType").equals("6666")) { //杞﹁締
+                    OwnerCarDto ownerCarDto = new OwnerCarDto();
+                    ownerCarDto.setCarId(reqJson.getString("payerObjId"));
+                    List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
+                    Assert.listOnlyOne(ownerCarDtos, "鏌ヨ涓氫富杞﹁締閿欒锛�");
+                    ownerId = ownerCarDtos.get(0).getOwnerId();
+                }
+                for (int index = 0; index < feeAccountDetails.size(); index++) {
+                    JSONObject param = feeAccountDetails.getJSONObject(index);
+                    String state = param.getString("state");
+                    if (!StringUtil.isEmpty(param.getString("state")) && param.getString("state").equals("1002")) { //1001 鏃犳姷鎵� 1002 鐜伴噾璐︽埛鎶垫墸 1003 绉垎璐︽埛鎶垫墸 1004 浼樻儬鍒告姷鎵�
+                        AccountDto accountDto = new AccountDto();
+                        accountDto.setObjId(ownerId);
+                        accountDto.setAcctType(AccountDto.ACCT_TYPE_CASH); //2003  鐜伴噾璐︽埛
+                        List<AccountDto> accountDtos = accountInnerServiceSMOImpl.queryAccounts(accountDto);
+                        Assert.listOnlyOne(accountDtos, "鏌ヨ涓氫富鐜伴噾璐︽埛閿欒锛�");
+                        BigDecimal amount = new BigDecimal(accountDtos.get(0).getAmount());
+                        BigDecimal money = new BigDecimal(param.getString("amount"));
+                        BigDecimal newAmount = amount.add(money);
+                        AccountPo accountPo = new AccountPo();
+                        accountPo.setAcctId(accountDtos.get(0).getAcctId());
+                        accountPo.setAmount(String.valueOf(newAmount));
+                        int flag = accountInnerServiceSMOImpl.updateAccount(accountPo);
+                        if (flag < 1) {
+                            throw new IllegalArgumentException("鏇存柊涓氫富鐜伴噾璐︽埛澶辫触锛�");
+                        }
+                        AccountDetailPo accountDetailPo = new AccountDetailPo();
+                        accountDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
+                        accountDetailPo.setAcctId(accountDtos.get(0).getAcctId());
+                        accountDetailPo.setDetailType("1001"); //1001 杞叆 2002 杞嚭
+                        accountDetailPo.setRelAcctId("-1");
+                        accountDetailPo.setAmount(param.getString("amount"));
+                        accountDetailPo.setObjType("6006"); //6006 涓汉 7007 鍟嗘埛
+                        accountDetailPo.setObjId(ownerId);
+                        accountDetailPo.setOrderId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_orderId));
+                        accountDetailPo.setbId("-1");
+                        accountDetailPo.setRemark("鐜伴噾璐︽埛閫�璐�");
+                        accountDetailPo.setCreateTime(new Date());
+                        int i = accountDetailInnerServiceSMOImpl.saveAccountDetails(accountDetailPo);
+                        if (i < 1) {
+                            throw new IllegalArgumentException("淇濆瓨涓氫富鐜伴噾璐︽埛鏄庣粏澶辫触锛�");
+                        }
+                    }
+                }
+            }
         }
         //涓嶉�氳繃
         if ("1200".equals(reqJson.getString("state"))) {

--
Gitblit v1.8.0