Your Name
2023-08-26 7958f1dddb8a7f4e70d232b07a7703955ecedae0
service-acct/src/main/java/com/java110/acct/bmo/account/impl/GetAccountBMOImpl.java
@@ -4,14 +4,15 @@
import com.java110.core.factory.CommunitySettingFactory;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.account.AccountDto;
import com.java110.dto.accountDetail.AccountDetailDto;
import com.java110.dto.account.AccountDetailDto;
import com.java110.dto.owner.OwnerDto;
import com.java110.dto.user.UserDto;
import com.java110.intf.acct.IAccountDetailInnerServiceSMO;
import com.java110.intf.acct.IAccountInnerServiceSMO;
import com.java110.intf.user.IOwnerInnerServiceSMO;
import com.java110.intf.user.IUserInnerServiceSMO;
import com.java110.po.account.AccountPo;
import com.java110.utils.lock.DistributedLock;
import com.java110.utils.util.Assert;
import com.java110.utils.util.StringUtil;
import com.java110.vo.ResultVo;
import org.springframework.beans.factory.annotation.Autowired;
@@ -39,6 +40,9 @@
    //键(积分账户抵扣比例)
    public static final String DEDUCTION_PROPORTION = "DEDUCTION_PROPORTION";
    @Autowired
    private IUserInnerServiceSMO userInnerServiceSMOImpl;
    /**
     * @param accountDto
@@ -94,29 +98,22 @@
        List<OwnerDto> ownerDtos = null;
        List<AccountDto> accountDtos = null;
        int count = 0;
        if (!StringUtil.isEmpty(ownerDto.getLink()) || !StringUtil.isEmpty(ownerDto.getIdCard())) {
        if (!StringUtil.isEmpty(ownerDto.getIdCard())) {
            //先查询业主
            ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
            if (ownerDtos != null && ownerDtos.size() > 0) {
                accountDto.setAcctName("");
                accountDto.setObjId(ownerDtos.get(0).getMemberId());
                count = accountInnerServiceSMOImpl.queryAccountsCount(accountDto);
                if (count > 0) {
                    accountDtos = accountInnerServiceSMOImpl.queryAccounts(accountDto);
                } else {
                    accountDtos = new ArrayList<>();
                }
            } else {
                accountDtos = new ArrayList<>();
            }
        } else {
            count = accountInnerServiceSMOImpl.queryAccountsCount(accountDto);
            if (count > 0) {
                accountDtos = accountInnerServiceSMOImpl.queryAccounts(accountDto);
            } else {
                accountDtos = new ArrayList<>();
            }
        }
        count = accountInnerServiceSMOImpl.queryAccountsCount(accountDto);
        if (count > 0) {
            accountDtos = accountInnerServiceSMOImpl.queryAccounts(accountDto);
        } else {
            accountDtos = new ArrayList<>();
        }
        if (accountDtos == null || accountDtos.size() < 1) {
            //添加 账户
@@ -147,6 +144,12 @@
    private List<AccountDto> addAccountDto(AccountDto accountDto, OwnerDto ownerDto) {
        // todo  查询账户名称 这里如果存在业主则业主名称 不是业主 则 填写用户名称,如果用户都没有 则返回空
        String acctName = getAccountName(ownerDto);
        if (StringUtil.isEmpty(acctName)) {
            return new ArrayList<>();
        }
        //开始锁代码
        String requestId = DistributedLock.getLockUUID();
        String key = this.getClass().getSimpleName() + "AddCountDto" + ownerDto.getOwnerId();
@@ -159,13 +162,9 @@
            accountPo.setObjId(ownerDto.getOwnerId());
            accountPo.setObjType(AccountDto.OBJ_TYPE_PERSON);
            accountPo.setAcctType(AccountDto.ACCT_TYPE_CASH);
            OwnerDto tmpOwnerDto = new OwnerDto();
            tmpOwnerDto.setMemberId(ownerDto.getOwnerId());
            tmpOwnerDto.setCommunityId(ownerDto.getCommunityId());
            List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(tmpOwnerDto);
            Assert.listOnlyOne(ownerDtos, "业主不存在");
            accountPo.setAcctName(ownerDtos.get(0).getName());
            accountPo.setAcctName(acctName);
            accountPo.setPartId(ownerDto.getCommunityId());
            accountPo.setLink(ownerDto.getLink());
            accountInnerServiceSMOImpl.saveAccount(accountPo);
            List<AccountDto> accountDtos = accountInnerServiceSMOImpl.queryAccounts(accountDto);
            return accountDtos;
@@ -174,4 +173,46 @@
        }
    }
    private String getAccountName(OwnerDto ownerDto) {
        // todo  owner
        if (!StringUtil.isEmpty(ownerDto.getOwnerId())) {
            OwnerDto tmpOwnerDto = new OwnerDto();
            tmpOwnerDto.setMemberId(ownerDto.getOwnerId());
            tmpOwnerDto.setCommunityId(ownerDto.getCommunityId());
            List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(tmpOwnerDto);
            if (ownerDtos == null || ownerDtos.size() < 1) {
                return "";
            }
            ownerDto.setCommunityId(ownerDtos.get(0).getCommunityId());
            ownerDto.setLink(ownerDtos.get(0).getLink());
            return ownerDtos.get(0).getName();
        }
        // todo 必须包含 手机号和小区
        if (StringUtil.isEmpty(ownerDto.getLink()) || StringUtil.isEmpty(ownerDto.getCommunityId())) {
            return "";
        }
        // todo 业主用 手机号查询
        OwnerDto tmpOwnerDto = new OwnerDto();
        tmpOwnerDto.setLink(ownerDto.getLink());
        tmpOwnerDto.setCommunityId(ownerDto.getCommunityId());
        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(tmpOwnerDto);
        if (ownerDtos != null && ownerDtos.size() > 0) {
            ownerDto.setOwnerId(ownerDtos.get(0).getMemberId());
            return ownerDtos.get(0).getName();
        }
        //todo 非业主是游客
        UserDto userDto = new UserDto();
        userDto.setTel(ownerDto.getLink());
        List<UserDto> userDtos = userInnerServiceSMOImpl.getUsers(userDto);
        if (userDtos != null && userDtos.size() > 0) {
            ownerDto.setOwnerId("-1");
            return userDtos.get(0).getName();
        }
        return "";
    }
}