Przeglądaj źródła

优化 出售车辆添加

Your Name 3 lat temu
rodzic
commit
3767ccf8bf

+ 53 - 8
service-acct/src/main/java/com/java110/acct/bmo/account/impl/GetAccountBMOImpl.java

@@ -6,9 +6,11 @@ import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.account.AccountDto;
 import com.java110.dto.accountDetail.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;
@@ -40,6 +42,9 @@ public class GetAccountBMOImpl implements IGetAccountBMO {
     //键(积分账户抵扣比例)
     public static final String DEDUCTION_PROPORTION = "DEDUCTION_PROPORTION";
 
+    @Autowired
+    private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
     /**
      * @param accountDto
      * @return 订单服务能够接受的报文
@@ -147,7 +152,10 @@ public class GetAccountBMOImpl implements IGetAccountBMO {
 
 
     private List<AccountDto> addAccountDto(AccountDto accountDto, OwnerDto ownerDto) {
-        if (StringUtil.isEmpty(ownerDto.getOwnerId())) {
+        // todo  查询账户名称 这里如果存在业主则业主名称 不是业主 则 填写用户名称,如果用户都没有 则返回空
+        String acctName = getAccountName(ownerDto);
+
+        if (StringUtil.isEmpty(acctName)) {
             return new ArrayList<>();
         }
         //开始锁代码
@@ -162,14 +170,9 @@ public class GetAccountBMOImpl implements IGetAccountBMO {
             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(ownerDtos.get(0).getLink());
+            accountPo.setLink(ownerDto.getLink());
             accountInnerServiceSMOImpl.saveAccount(accountPo);
             List<AccountDto> accountDtos = accountInnerServiceSMOImpl.queryAccounts(accountDto);
             return accountDtos;
@@ -178,4 +181,46 @@ public class GetAccountBMOImpl implements IGetAccountBMO {
         }
     }
 
+    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("-1");
+            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 "";
+    }
+
 }