Browse Source

账户加入删除的工鞥你

wuxw 1 year ago
parent
commit
cbef5af08d

+ 2 - 2
java110-db/src/main/resources/mapper/acct/AccountServiceDaoImplMapper.xml

@@ -12,8 +12,8 @@
     </insert>
     </insert>
 
 
     <insert id="saveAccount" parameterType="Map">
     <insert id="saveAccount" parameterType="Map">
-        insert into account(amount, acct_type, obj_id, acct_id, acct_name, b_id, obj_type, part_id, link)
-        values (#{amount}, #{acctType}, #{objId}, #{acctId}, #{acctName}, '-1', #{objType}, #{partId}, #{link})
+        insert into account(amount, acct_type, obj_id, acct_id, acct_name, b_id, obj_type, part_id, link,room_id,room_name)
+        values (#{amount}, #{acctType}, #{objId}, #{acctId}, #{acctName}, '-1', #{objType}, #{partId}, #{link},#{roomId},#{roomName})
     </insert>
     </insert>
 
 
     <!-- 查询账户信息(Business) add by wuxw 2018-07-03 -->
     <!-- 查询账户信息(Business) add by wuxw 2018-07-03 -->

+ 1 - 22
service-acct/src/main/java/com/java110/acct/api/AccountApi.java

@@ -134,26 +134,5 @@ public class AccountApi {
         return getAccountBMOImpl.getDetail(accountDto);
         return getAccountBMOImpl.getDetail(accountDto);
     }
     }
 
 
-    /**
-     * 业主账户预存
-     *
-     * @param reqJson 小区ID
-     * @return
-     * @serviceCode /account/ownerPrestoreAccount
-     * @path /app/account/ownerPrestoreAccount
-     */
-    @RequestMapping(value = "/ownerPrestoreAccount", method = RequestMethod.POST)
-    public ResponseEntity<String> queryAccountDetail(@RequestBody JSONObject reqJson) {
-        Assert.hasKeyAndValue(reqJson, "communityId", "小区ID不能为空");
-        Assert.hasKeyAndValue(reqJson, "ownerId", "业主不能为空");
-        Assert.hasKeyAndValue(reqJson, "amount", "金额不能为空");
-        Assert.hasKeyAndValue(reqJson, "acctType", "账户类型不能为空");
-        Assert.hasKeyAndValue(reqJson, "primeRate", "未包含支付方式");
-
-        AccountDetailPo accountDetailPo = new AccountDetailPo();
-        accountDetailPo.setRemark(reqJson.getString("remark"));
-        accountDetailPo.setObjId(reqJson.getString("ownerId"));
-        accountDetailPo.setAmount(reqJson.getString("amount"));
-        return ownerPrestoreAccountBMOImpl.prestore(accountDetailPo, reqJson);
-    }
+
 }
 }

+ 0 - 70
service-acct/src/main/java/com/java110/acct/bmo/account/impl/OwnerPrestoreAccountBMOImpl.java

@@ -46,80 +46,10 @@ public class OwnerPrestoreAccountBMOImpl implements IOwnerPrestoreAccountBMO {
     @Java110Transactional
     @Java110Transactional
     public ResponseEntity<String> prestore(AccountDetailPo accountDetailPo, JSONObject reqJson) {
     public ResponseEntity<String> prestore(AccountDetailPo accountDetailPo, JSONObject reqJson) {
 
 
-        ResponseEntity<String> responseEntity = null;
 
 
-        //查询 业主是否有账户
-        AccountDto accountDto = new AccountDto();
-        accountDto.setObjId(accountDetailPo.getObjId());
-        accountDto.setObjType(AccountDto.OBJ_TYPE_PERSON);
-        accountDto.setPartId(reqJson.getString("communityId"));
-        accountDto.setAcctType(reqJson.getString("acctType"));
-        List<AccountDto> accountDtos = accountInnerServiceSMOImpl.queryAccounts(accountDto);
-        if (accountDtos == null || accountDtos.size() < 1) {
-            accountDto = addAccountDto(reqJson);
-            //保存交易明细
-            AccountDetailPo accountDetail = BeanConvertUtil.covertBean(accountDetailPo, AccountDetailPo.class);
-            accountDetail.setOrderId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_orderId));
-            accountDetail.setAcctId(accountDto.getAcctId());
-            accountDetail.setObjType(AccountDetailDto.ORDER_TYPE_USER);
-            accountDetail.setDetailType(AccountDetailDto.DETAIL_TYPE_IN);
-            if (StringUtil.isEmpty(accountDetail.getDetailId())) {
-                accountDetail.setDetailId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
-            }
-            if (StringUtil.isEmpty(accountDetail.getRelAcctId())) {
-                accountDetail.setRelAcctId("-1");
-            }
-            accountDetailInnerServiceSMOImpl.saveAccountDetails(accountDetail);
-        } else {
-            accountDto = accountDtos.get(0);
-            accountDetailPo.setOrderId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_orderId));
-            accountDetailPo.setAcctId(accountDto.getAcctId());
-            accountDetailPo.setObjType(AccountDetailDto.ORDER_TYPE_USER);
-            int flag = accountInnerServiceSMOImpl.prestoreAccount(accountDetailPo);
-            if (flag < 1) {
-                return ResultVo.error("预存失败");
-            }
-        }
-        // todo 记录账户收款单
-        OwnerDto ownerDto = new OwnerDto();
-        ownerDto.setMemberId(reqJson.getString("ownerId"));
-        ownerDto.setCommunityId(reqJson.getString("communityId"));
-        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
-        Assert.listOnlyOne(ownerDtos, "业主不存在");
-
-        AccountReceiptPo accountReceiptPo = new AccountReceiptPo();
-        accountReceiptPo.setOwnerId(reqJson.getString("ownerId"));
-        accountReceiptPo.setOwnerName(ownerDtos.get(0).getName());
-        accountReceiptPo.setLink(ownerDtos.get(0).getLink());
-        accountReceiptPo.setArId(GenerateCodeFactory.getGeneratorId("11"));
-        accountReceiptPo.setAcctId(accountDto.getAcctId());
-        accountReceiptPo.setPrimeRate(reqJson.getString("primeRate"));
-        accountReceiptPo.setReceivableAmount(reqJson.getString("amount"));
-        accountReceiptPo.setReceivedAmount(reqJson.getString("amount"));
-        accountReceiptPo.setRemark(reqJson.getString("remark"));
-        accountReceiptPo.setCommunityId(reqJson.getString("communityId"));
-        accountReceiptV1InnerServiceSMOImpl.saveAccountReceipt(accountReceiptPo);
         return ResultVo.success();
         return ResultVo.success();
     }
     }
 
 
 
 
-    private AccountDto addAccountDto(JSONObject reqJson) {
-        AccountPo accountPo = new AccountPo();
-        accountPo.setAmount(reqJson.getString("amount"));
-        accountPo.setAcctId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_acctId));
-        accountPo.setObjId(reqJson.getString("ownerId"));
-        accountPo.setObjType(AccountDto.OBJ_TYPE_PERSON);
-        accountPo.setAcctType(reqJson.getString("acctType"));
-        OwnerDto ownerDto = new OwnerDto();
-        ownerDto.setMemberId(reqJson.getString("ownerId"));
-        ownerDto.setCommunityId(reqJson.getString("communityId"));
-        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
-        Assert.listOnlyOne(ownerDtos, "业主不存在");
-        accountPo.setAcctName(ownerDtos.get(0).getName());
-        accountPo.setPartId(reqJson.getString("communityId"));
-        accountPo.setLink(ownerDtos.get(0).getLink());
-        accountInnerServiceSMOImpl.saveAccount(accountPo);
-        return BeanConvertUtil.covertBean(accountPo, AccountDto.class);
-    }
 
 
 }
 }

+ 14 - 1
service-acct/src/main/java/com/java110/acct/cmd/account/DeleteAccountCmd.java

@@ -5,19 +5,29 @@ import com.java110.core.annotation.Java110Cmd;
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
 import com.java110.core.event.cmd.CmdEvent;
+import com.java110.intf.acct.IAccountDetailInnerServiceSMO;
 import com.java110.intf.acct.IAccountInnerServiceSMO;
 import com.java110.intf.acct.IAccountInnerServiceSMO;
+import com.java110.po.account.AccountDetailPo;
 import com.java110.po.account.AccountPo;
 import com.java110.po.account.AccountPo;
+import com.java110.utils.constant.StatusConstant;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.vo.ResultVo;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 
 
+/***
+ * 删除账户
+ */
 @Java110Cmd(serviceCode = "account.deleteAccount")
 @Java110Cmd(serviceCode = "account.deleteAccount")
 public class DeleteAccountCmd  extends Cmd {
 public class DeleteAccountCmd  extends Cmd {
 
 
     @Autowired
     @Autowired
     private IAccountInnerServiceSMO accountInnerServiceSMOImpl;
     private IAccountInnerServiceSMO accountInnerServiceSMOImpl;
+
+    @Autowired
+    private IAccountDetailInnerServiceSMO accountDetailInnerServiceSMOImpl;
+
     @Override
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
 
 
@@ -27,13 +37,16 @@ public class DeleteAccountCmd  extends Cmd {
     @Override
     @Override
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
 
 
-        AccountPo accountPo = BeanConvertUtil.covertBean(reqJson, AccountPo.class);
+        AccountPo accountPo = new AccountPo();
+        accountPo.setAcctId(reqJson.getString("acctId"));
+        accountPo.setStatusCd(StatusConstant.STATUS_CD_INVALID);
         int flag = accountInnerServiceSMOImpl.updateAccount(accountPo);
         int flag = accountInnerServiceSMOImpl.updateAccount(accountPo);
 
 
         if(flag < 1){
         if(flag < 1){
             throw new CmdException("更新失败");
             throw new CmdException("更新失败");
         }
         }
 
 
+
         cmdDataFlowContext.setResponseEntity(ResultVo.success());
         cmdDataFlowContext.setResponseEntity(ResultVo.success());
     }
     }
 }
 }

+ 168 - 0
service-acct/src/main/java/com/java110/acct/cmd/account/OwnerPrestoreAccountCmd.java

@@ -0,0 +1,168 @@
+package com.java110.acct.cmd.account;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.acct.bmo.account.IOwnerPrestoreAccountBMO;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.account.AccountDetailDto;
+import com.java110.dto.account.AccountDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.room.RoomDto;
+import com.java110.intf.acct.IAccountDetailInnerServiceSMO;
+import com.java110.intf.acct.IAccountInnerServiceSMO;
+import com.java110.intf.community.IRoomInnerServiceSMO;
+import com.java110.intf.fee.IAccountReceiptV1InnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.po.account.AccountDetailPo;
+import com.java110.po.account.AccountPo;
+import com.java110.po.account.AccountReceiptPo;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.ListUtil;
+import com.java110.utils.util.StringUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+
+import java.text.ParseException;
+import java.util.List;
+
+/**
+ * 业主预存
+ */
+@Java110Cmd(serviceCode = "account.ownerPrestoreAccount")
+public class OwnerPrestoreAccountCmd extends Cmd {
+
+    @Autowired
+    private IOwnerPrestoreAccountBMO ownerPrestoreAccountBMOImpl;
+
+    @Autowired
+    private IAccountInnerServiceSMO accountInnerServiceSMOImpl;
+
+    @Autowired
+    private IAccountDetailInnerServiceSMO accountDetailInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+    @Autowired
+    private IAccountReceiptV1InnerServiceSMO accountReceiptV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        Assert.hasKeyAndValue(reqJson, "communityId", "小区ID不能为空");
+        Assert.hasKeyAndValue(reqJson, "ownerId", "业主不能为空");
+        Assert.hasKeyAndValue(reqJson, "amount", "金额不能为空");
+        Assert.hasKeyAndValue(reqJson, "acctType", "账户类型不能为空");
+        Assert.hasKeyAndValue(reqJson, "primeRate", "未包含支付方式");
+        String acctType = reqJson.getString("acctType");
+        if (AccountDto.ACCT_TYPE_PROPERTY_FEE.equals(acctType) || AccountDto.ACCT_TYPE_METER.equals(acctType)) {
+            Assert.hasKeyAndValue(reqJson, "roomId", "未包含扣款房屋");
+        }
+
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        AccountDetailPo accountDetailPo = new AccountDetailPo();
+        accountDetailPo.setRemark(reqJson.getString("remark"));
+        accountDetailPo.setObjId(reqJson.getString("ownerId"));
+        accountDetailPo.setAmount(reqJson.getString("amount"));
+
+
+        //查询 业主是否有账户
+        AccountDto accountDto = new AccountDto();
+        accountDto.setObjId(accountDetailPo.getObjId());
+        accountDto.setObjType(AccountDto.OBJ_TYPE_PERSON);
+        accountDto.setPartId(reqJson.getString("communityId"));
+        accountDto.setAcctType(reqJson.getString("acctType"));
+        List<AccountDto> accountDtos = accountInnerServiceSMOImpl.queryAccounts(accountDto);
+        if (ListUtil.isNull(accountDtos)) {
+            accountDto = addAccountDto(reqJson);
+            //保存交易明细
+            AccountDetailPo accountDetail = BeanConvertUtil.covertBean(accountDetailPo, AccountDetailPo.class);
+            accountDetail.setOrderId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_orderId));
+            accountDetail.setAcctId(accountDto.getAcctId());
+            accountDetail.setObjType(AccountDetailDto.ORDER_TYPE_USER);
+            accountDetail.setDetailType(AccountDetailDto.DETAIL_TYPE_IN);
+            if (StringUtil.isEmpty(accountDetail.getDetailId())) {
+                accountDetail.setDetailId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
+            }
+            if (StringUtil.isEmpty(accountDetail.getRelAcctId())) {
+                accountDetail.setRelAcctId("-1");
+            }
+            accountDetailInnerServiceSMOImpl.saveAccountDetails(accountDetail);
+        } else {
+            accountDto = accountDtos.get(0);
+            accountDetailPo.setOrderId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_orderId));
+            accountDetailPo.setAcctId(accountDto.getAcctId());
+            accountDetailPo.setObjType(AccountDetailDto.ORDER_TYPE_USER);
+            int flag = accountInnerServiceSMOImpl.prestoreAccount(accountDetailPo);
+            if (flag < 1) {
+                throw new CmdException("预存失败");
+            }
+        }
+        // todo 记录账户收款单
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setMemberId(reqJson.getString("ownerId"));
+        ownerDto.setCommunityId(reqJson.getString("communityId"));
+        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
+        Assert.listOnlyOne(ownerDtos, "业主不存在");
+
+        AccountReceiptPo accountReceiptPo = new AccountReceiptPo();
+        accountReceiptPo.setOwnerId(reqJson.getString("ownerId"));
+        accountReceiptPo.setOwnerName(ownerDtos.get(0).getName());
+        accountReceiptPo.setLink(ownerDtos.get(0).getLink());
+        accountReceiptPo.setArId(GenerateCodeFactory.getGeneratorId("11"));
+        accountReceiptPo.setAcctId(accountDto.getAcctId());
+        accountReceiptPo.setPrimeRate(reqJson.getString("primeRate"));
+        accountReceiptPo.setReceivableAmount(reqJson.getString("amount"));
+        accountReceiptPo.setReceivedAmount(reqJson.getString("amount"));
+        accountReceiptPo.setRemark(reqJson.getString("remark"));
+        accountReceiptPo.setCommunityId(reqJson.getString("communityId"));
+        accountReceiptV1InnerServiceSMOImpl.saveAccountReceipt(accountReceiptPo);
+
+        context.setResponseEntity(ResultVo.success());
+    }
+
+    /**
+     * 添加账户
+     * @param reqJson
+     * @return
+     */
+    private AccountDto addAccountDto(JSONObject reqJson) {
+
+        RoomDto roomDto = new RoomDto();
+        roomDto.setRoomId(reqJson.getString("roomId"));
+        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+        Assert.listOnlyOne(roomDtos,"房屋不存在");
+
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setMemberId(reqJson.getString("ownerId"));
+        ownerDto.setCommunityId(reqJson.getString("communityId"));
+        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
+        Assert.listOnlyOne(ownerDtos, "业主不存在");
+
+        AccountPo accountPo = new AccountPo();
+        accountPo.setAmount(reqJson.getString("amount"));
+        accountPo.setAcctId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_acctId));
+        accountPo.setObjId(reqJson.getString("ownerId"));
+        accountPo.setObjType(AccountDto.OBJ_TYPE_PERSON);
+        accountPo.setAcctType(reqJson.getString("acctType"));
+        accountPo.setAcctName(ownerDtos.get(0).getName());
+        accountPo.setPartId(reqJson.getString("communityId"));
+        accountPo.setLink(ownerDtos.get(0).getLink());
+        accountPo.setRoomId(roomDtos.get(0).getRoomId());
+        accountPo.setRoomName(roomDtos.get(0).getRoomName());
+        accountInnerServiceSMOImpl.saveAccount(accountPo);
+        return BeanConvertUtil.covertBean(accountPo, AccountDto.class);
+    }
+
+}

+ 7 - 7
service-acct/src/main/java/com/java110/acct/dao/impl/AccountDetailServiceDaoImpl.java

@@ -54,9 +54,9 @@ public class AccountDetailServiceDaoImpl extends BaseServiceDao implements IAcco
 
 
         logger.debug("查询账户交易信息 入参 info : {}", info);
         logger.debug("查询账户交易信息 入参 info : {}", info);
 
 
-        List<Map> businessAccountDetailInfos = sqlSessionTemplate.selectList("accountDetailServiceDaoImpl.getBusinessAccountDetailInfo", info);
+        List<Map> infos = sqlSessionTemplate.selectList("accountDetailServiceDaoImpl.getBusinessAccountDetailInfo", info);
 
 
-        return businessAccountDetailInfos;
+        return infos;
     }
     }
 
 
 
 
@@ -89,9 +89,9 @@ public class AccountDetailServiceDaoImpl extends BaseServiceDao implements IAcco
     public List<Map> getAccountDetailInfo(Map info) throws DAOException {
     public List<Map> getAccountDetailInfo(Map info) throws DAOException {
         logger.debug("查询账户交易信息 入参 info : {}", info);
         logger.debug("查询账户交易信息 入参 info : {}", info);
 
 
-        List<Map> businessAccountDetailInfos = sqlSessionTemplate.selectList("accountDetailServiceDaoImpl.getAccountDetailInfo", info);
+        List<Map> infos = sqlSessionTemplate.selectList("accountDetailServiceDaoImpl.getAccountDetailInfo", info);
 
 
-        return businessAccountDetailInfos;
+        return infos;
     }
     }
 
 
 
 
@@ -122,12 +122,12 @@ public class AccountDetailServiceDaoImpl extends BaseServiceDao implements IAcco
     public int queryAccountDetailsCount(Map info) {
     public int queryAccountDetailsCount(Map info) {
         logger.debug("查询账户交易数据 入参 info : {}", info);
         logger.debug("查询账户交易数据 入参 info : {}", info);
 
 
-        List<Map> businessAccountDetailInfos = sqlSessionTemplate.selectList("accountDetailServiceDaoImpl.queryAccountDetailsCount", info);
-        if (businessAccountDetailInfos.size() < 1) {
+        List<Map> infos = sqlSessionTemplate.selectList("accountDetailServiceDaoImpl.queryAccountDetailsCount", info);
+        if (infos.size() < 1) {
             return 0;
             return 0;
         }
         }
 
 
-        return Integer.parseInt(businessAccountDetailInfos.get(0).get("count").toString());
+        return Integer.parseInt(infos.get(0).get("count").toString());
     }
     }
 
 
     @Override
     @Override