zhuyifan

feat(meal-order): 添加删除毕业生方法IdsRpcResponse 消息结构

......@@ -32,6 +32,8 @@ import com.infoloop.tianting.mealorderservice.DeleteGradeClassesAndDinersByClien
import com.infoloop.tianting.mealorderservice.DeleteGradeClassesAndDinersByClientIdsRpcResponse;
import com.infoloop.tianting.mealorderservice.DeleteGradeClassesByIdsRpcRequest;
import com.infoloop.tianting.mealorderservice.DeleteGradeClassesRpcResponse;
import com.infoloop.tianting.mealorderservice.DeleteGraduationDinersByClassIdsRpcRequest;
import com.infoloop.tianting.mealorderservice.DeleteGraduationDinersByClassIdsRpcResponse;
import com.infoloop.tianting.mealorderservice.DeleteMealOrdersByIdsRpcRequest;
import com.infoloop.tianting.mealorderservice.DeleteMealOrdersRpcResponse;
import com.infoloop.tianting.mealorderservice.DeleteMpAccountDinerRefsByIdsRpcRequest;
......@@ -1059,6 +1061,33 @@ public class MealOrderGrpcService extends MealOrderServiceRpcGrpc.MealOrderServi
}
@Override
@DS(DATA_SOURCE_MASTER)
@Transactional(rollbackFor = Exception.class)
public void deleteGraduationDinersByClassIds(final DeleteGraduationDinersByClassIdsRpcRequest request,
final StreamObserver<DeleteGraduationDinersByClassIdsRpcResponse> responseObserver) {
final var builder = DeleteGraduationDinersByClassIdsRpcResponse.newBuilder();
try {
final var enterpriseId = request.getEnterpriseId();
final var classIds = request.getClassIdsList();
if (classIds.isEmpty()) {
builder.setIsDeleted(false);
responseObserver.onNext(builder.build());
responseObserver.onCompleted();
return;
}
final var diners = dinerService.list(Wrappers.<Diner>lambdaQuery().eq(Diner::getEnterpriseId, enterpriseId).in(!classIds.isEmpty(), Diner::getClassId, classIds));
boolean dinerRemoved = dinerService.remove(Wrappers.<Diner>lambdaQuery().eq(Diner::getEnterpriseId, enterpriseId).in(!classIds.isEmpty(), Diner::getClassId, classIds));
boolean refRemoved = diners.isEmpty() || mpAccountDinerRefService.remove(Wrappers.<MpAccountDinerRef>lambdaQuery().eq(MpAccountDinerRef::getEnterpriseId, enterpriseId).in(MpAccountDinerRef::getDinerId, diners.stream().map(Diner::getId).collect(Collectors.toList())));
builder.setIsDeleted(dinerRemoved && refRemoved);
} catch (final Exception e) {
log.error("deleteGraduationDinersByClassIds error;", e);
responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException());
}
responseObserver.onNext(builder.build());
responseObserver.onCompleted();
}
@Override
@DS(DATA_SOURCE_SLAVE)
public void getMealMenuRecordById(final GetMealMenuRecordByIdRpcRequest request,
final StreamObserver<GetMealMenuRecordByIdRpcResponse> responseObserver) {
......
......@@ -31,6 +31,7 @@ service MealOrderServiceRpc {
rpc UpdateDiner (UpdateDinerRpcRequest) returns (UpdateDinerRpcResponse) {}
rpc BatchSaveOrUpdateDiners (BatchSaveOrUpdateDinersRpcRequest) returns (BatchSaveOrUpdateDinersRpcResponse) {}
rpc DeleteDinersByIds (DeleteDinersByIdsRpcRequest) returns (DeleteDinersRpcResponse) {}
rpc DeleteGraduationDinersByClassIds (DeleteGraduationDinersByClassIdsRpcRequest) returns (DeleteGraduationDinersByClassIdsRpcResponse) {}
rpc GetMpAccountDinerRefsByIds (GetMpAccountDinerRefsByIdsRpcRequest) returns (GetMpAccountDinerRefsByIdsRpcResponse) {}
rpc QueryMpAccountDinerRefsByCondition (QueryMpAccountDinerRefsByConditionRpcRequest) returns (QueryMpAccountDinerRefsByConditionRpcResponse) {}
......@@ -358,6 +359,17 @@ message DeleteDinersRpcResponse {
bool isDeleted = 1;
}
message DeleteGraduationDinersByClassIdsRpcRequest {
repeated int32 classIds = 1;
int32 enterpriseId = 2;
int32 updatedBy = 3;
int32 updateSource = 4;
}
message DeleteGraduationDinersByClassIdsRpcResponse {
bool isDeleted = 1;
}
enum MpAccountGenderEnum {
MP_ACCOUNT_GENDER_MAN = 0;
MP_ACCOUNT_GENDER_WOMAN = 1;
......