zhuyifan

fix(service): 修复创建 diner时的逻辑错误

...@@ -4,7 +4,6 @@ import com.infoloop.tianting.clientinventoryservice.SingleClientRpcResponse; ...@@ -4,7 +4,6 @@ import com.infoloop.tianting.clientinventoryservice.SingleClientRpcResponse;
4 import com.infoloop.tianting.context.LoginContextHolder; 4 import com.infoloop.tianting.context.LoginContextHolder;
5 import com.infoloop.tianting.exception.ClientEndExceptions; 5 import com.infoloop.tianting.exception.ClientEndExceptions;
6 import com.infoloop.tianting.exception.ErrorCodeEnum; 6 import com.infoloop.tianting.exception.ErrorCodeEnum;
7 -import com.infoloop.tianting.mealorderservice.DinerCreation;
8 import com.infoloop.tianting.mealorderservice.DinerModification; 7 import com.infoloop.tianting.mealorderservice.DinerModification;
9 import com.infoloop.tianting.mealorderservice.MpAccountDinerRefCreation; 8 import com.infoloop.tianting.mealorderservice.MpAccountDinerRefCreation;
10 import com.infoloop.tianting.mealorderservice.SingleDinerRpcResponse; 9 import com.infoloop.tianting.mealorderservice.SingleDinerRpcResponse;
...@@ -75,45 +74,30 @@ public class DinerServiceImpl implements DinerService { ...@@ -75,45 +74,30 @@ public class DinerServiceImpl implements DinerService {
75 } 74 }
76 final var singleClientRpcResponse = clientsByCodes.get(0); 75 final var singleClientRpcResponse = clientsByCodes.get(0);
77 final var diners = mealOrderServiceRpcClient.queryDinersByCondition(loginInfo.getEnterpriseId(), List.of(singleClientRpcResponse.getId()), List.of(createDinerDTO.getClassId()), createDinerDTO.getStudentNo()); 76 final var diners = mealOrderServiceRpcClient.queryDinersByCondition(loginInfo.getEnterpriseId(), List.of(singleClientRpcResponse.getId()), List.of(createDinerDTO.getClassId()), createDinerDTO.getStudentNo());
78 - if (!diners.isEmpty()) { 77 + if (diners.isEmpty()) {
79 - if (diners.size() != 1) { 78 + throw ClientEndExceptions.IncorrectRequestValue.build(ErrorCodeEnum.DINER_NOT_FOUND);
80 - throw ClientEndExceptions.IncorrectRequestValue.build(ErrorCodeEnum.DINER_NOT_FOUND);
81 - }
82 - final var diner = diners.get(0);
83 - if (!diner.getName().equals(createDinerDTO.getName())) {
84 - log.info("createMpAccountDiner dinerId:{} name:{}, createName:{}", diner.getId(), diner.getName(), createDinerDTO.getName());
85 - throw ClientEndExceptions.IncorrectRequestValue.build(ErrorCodeEnum.DINER_NAME_STUDENT_NO_NOT_MISMATCH);
86 - }
87 - final int dinerId = diner.getId();
88 - final var mpAccountDinerRefs = mealOrderServiceRpcClient.queryMpAccountDinerRefsByCondition(loginInfo.getEnterpriseId(), List.of(loginInfo.getId()), List.of(dinerId));
89 - if (!mpAccountDinerRefs.isEmpty()) {
90 - throw ClientEndExceptions.IncorrectRequestValue.build(ErrorCodeEnum.DINER_ALREADY_EXISTS);
91 - } else {
92 - final var mpAccountDinerRefCreation = MpAccountDinerRefCreation.newBuilder()
93 - .setDinerId(dinerId)
94 - .setAccountId(loginInfo.getId())
95 - .build();
96 - final var mpAccountDinerRef = mealOrderServiceRpcClient.createMpAccountDinerRef(loginInfo, mpAccountDinerRefCreation);
97 - log.info("createMpAccountDiner dinerId:{} mpAccountDinerRefId:{}", dinerId, mpAccountDinerRef.getId());
98 - return CreatedResult.<DinerVO>builder().id(dinerId).isCreated(mpAccountDinerRef.getIsCreated()).build();
99 - }
100 } 79 }
101 - final var dinerCreation = DinerCreation.newBuilder() 80 + if (diners.size() != 1) {
102 - .setClientId(singleClientRpcResponse.getId()) 81 + throw ClientEndExceptions.IncorrectRequestValue.build(ErrorCodeEnum.DINER_NOT_FOUND);
103 - .setClassId(createDinerDTO.getClassId()) 82 + }
104 - .setStudentNo(createDinerDTO.getStudentNo()) 83 + final var diner = diners.get(0);
105 - .setName(createDinerDTO.getName()) 84 + if (!diner.getName().equals(createDinerDTO.getName())) {
106 - .build(); 85 + log.info("createMpAccountDiner dinerId:{} name:{}, createName:{}", diner.getId(), diner.getName(), createDinerDTO.getName());
107 - final var dinerResponse = mealOrderServiceRpcClient.createDiner(loginInfo, dinerCreation); 86 + throw ClientEndExceptions.IncorrectRequestValue.build(ErrorCodeEnum.DINER_NAME_STUDENT_NO_NOT_MISMATCH);
108 - if (dinerResponse.getIsCreated()) { 87 + }
88 + final int dinerId = diner.getId();
89 + final var mpAccountDinerRefs = mealOrderServiceRpcClient.queryMpAccountDinerRefsByCondition(loginInfo.getEnterpriseId(), List.of(loginInfo.getId()), List.of(dinerId));
90 + if (!mpAccountDinerRefs.isEmpty()) {
91 + throw ClientEndExceptions.IncorrectRequestValue.build(ErrorCodeEnum.DINER_ALREADY_EXISTS);
92 + } else {
109 final var mpAccountDinerRefCreation = MpAccountDinerRefCreation.newBuilder() 93 final var mpAccountDinerRefCreation = MpAccountDinerRefCreation.newBuilder()
110 - .setDinerId(dinerResponse.getId()) 94 + .setDinerId(dinerId)
111 .setAccountId(loginInfo.getId()) 95 .setAccountId(loginInfo.getId())
112 .build(); 96 .build();
113 final var mpAccountDinerRef = mealOrderServiceRpcClient.createMpAccountDinerRef(loginInfo, mpAccountDinerRefCreation); 97 final var mpAccountDinerRef = mealOrderServiceRpcClient.createMpAccountDinerRef(loginInfo, mpAccountDinerRefCreation);
114 - log.info("createMpAccountDiner dinerId:{} mpAccountDinerRefId:{}", dinerResponse.getId(), mpAccountDinerRef.getId()); 98 + log.info("createMpAccountDiner dinerId:{} mpAccountDinerRefId:{}", dinerId, mpAccountDinerRef.getId());
99 + return CreatedResult.<DinerVO>builder().id(dinerId).isCreated(mpAccountDinerRef.getIsCreated()).build();
115 } 100 }
116 - return CreatedResult.<DinerVO>builder().id(dinerResponse.getId()).isCreated(dinerResponse.getIsCreated()).build();
117 } 101 }
118 102
119 @Override 103 @Override
......