Showing
6 changed files
with
432 additions
and
0 deletions
| 1 | +package com.tianting.infoloop.mapper; | ||
| 2 | + | ||
| 3 | +import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||
| 4 | +import com.tianting.infoloop.model.db.DinerMealSuspensionRecord; | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * 学生停餐记录Mapper接口 | ||
| 8 | + */ | ||
| 9 | +public interface DinerMealSuspensionRecordMapper extends BaseMapper<DinerMealSuspensionRecord> { | ||
| 10 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +package com.tianting.infoloop.model.db; | ||
| 2 | + | ||
| 3 | +import com.baomidou.mybatisplus.annotation.FieldFill; | ||
| 4 | +import com.baomidou.mybatisplus.annotation.IdType; | ||
| 5 | +import com.baomidou.mybatisplus.annotation.TableField; | ||
| 6 | +import com.baomidou.mybatisplus.annotation.TableId; | ||
| 7 | +import com.baomidou.mybatisplus.annotation.TableLogic; | ||
| 8 | +import com.baomidou.mybatisplus.annotation.TableName; | ||
| 9 | +import com.baomidou.mybatisplus.extension.activerecord.Model; | ||
| 10 | +import lombok.Data; | ||
| 11 | +import lombok.EqualsAndHashCode; | ||
| 12 | +import lombok.experimental.Accessors; | ||
| 13 | + | ||
| 14 | +import java.io.Serializable; | ||
| 15 | +import java.time.LocalDateTime; | ||
| 16 | + | ||
| 17 | +/** | ||
| 18 | + * @TableName diner_meal_suspension_records | ||
| 19 | + */ | ||
| 20 | +@Data | ||
| 21 | +@Accessors(chain = true) | ||
| 22 | +@EqualsAndHashCode(callSuper = true) | ||
| 23 | +@TableName(value ="diner_meal_suspension_records") | ||
| 24 | +public class DinerMealSuspensionRecord extends Model<DinerMealSuspensionRecord> implements Serializable { | ||
| 25 | + | ||
| 26 | + @TableId(type = IdType.AUTO) | ||
| 27 | + private Integer id; | ||
| 28 | + | ||
| 29 | + private Integer enterpriseId; | ||
| 30 | + | ||
| 31 | + private Integer clientId; | ||
| 32 | + | ||
| 33 | + private Integer classId; | ||
| 34 | + | ||
| 35 | + private Integer dinerId; | ||
| 36 | + | ||
| 37 | + private LocalDateTime startAt; | ||
| 38 | + | ||
| 39 | + private LocalDateTime endAt; | ||
| 40 | + | ||
| 41 | + private String comment; | ||
| 42 | + | ||
| 43 | + private Integer createdBy; | ||
| 44 | + | ||
| 45 | + @TableField(fill = FieldFill.INSERT) | ||
| 46 | + private LocalDateTime createdAt; | ||
| 47 | + | ||
| 48 | + private Integer creationSource; | ||
| 49 | + | ||
| 50 | + private Integer updatedBy; | ||
| 51 | + | ||
| 52 | + @TableField(fill = FieldFill.INSERT_UPDATE) | ||
| 53 | + private LocalDateTime updatedAt; | ||
| 54 | + | ||
| 55 | + private Integer updateSource; | ||
| 56 | + | ||
| 57 | + @TableLogic | ||
| 58 | + private Boolean isDeleted; | ||
| 59 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +package com.tianting.infoloop.service; | ||
| 2 | + | ||
| 3 | +import com.baomidou.mybatisplus.extension.service.IService; | ||
| 4 | +import com.tianting.infoloop.model.db.DinerMealSuspensionRecord; | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * 学生停餐记录服务接口 | ||
| 8 | + */ | ||
| 9 | +public interface DinerMealSuspensionRecordService extends IService<DinerMealSuspensionRecord> { | ||
| 10 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -4,6 +4,8 @@ import cn.hutool.core.date.LocalDateTimeUtil; | ... | @@ -4,6 +4,8 @@ import cn.hutool.core.date.LocalDateTimeUtil; |
| 4 | import com.baomidou.dynamic.datasource.annotation.DS; | 4 | import com.baomidou.dynamic.datasource.annotation.DS; |
| 5 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 5 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| 6 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | 6 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| 7 | +import com.infoloop.tianting.mealorderservice.BatchCreateDinerMealSuspensionRecordsRpcRequest; | ||
| 8 | +import com.infoloop.tianting.mealorderservice.BatchCreateDinerMealSuspensionRecordsRpcResponse; | ||
| 7 | import com.infoloop.tianting.mealorderservice.BatchCreateGradeClassesRpcRequest; | 9 | import com.infoloop.tianting.mealorderservice.BatchCreateGradeClassesRpcRequest; |
| 8 | import com.infoloop.tianting.mealorderservice.BatchCreateGradeClassesRpcResponse; | 10 | import com.infoloop.tianting.mealorderservice.BatchCreateGradeClassesRpcResponse; |
| 9 | import com.infoloop.tianting.mealorderservice.BatchCreateMealOrdersRpcRequest; | 11 | import com.infoloop.tianting.mealorderservice.BatchCreateMealOrdersRpcRequest; |
| ... | @@ -12,6 +14,8 @@ import com.infoloop.tianting.mealorderservice.BatchSaveOrUpdateDinersRpcRequest; | ... | @@ -12,6 +14,8 @@ import com.infoloop.tianting.mealorderservice.BatchSaveOrUpdateDinersRpcRequest; |
| 12 | import com.infoloop.tianting.mealorderservice.BatchSaveOrUpdateDinersRpcResponse; | 14 | import com.infoloop.tianting.mealorderservice.BatchSaveOrUpdateDinersRpcResponse; |
| 13 | import com.infoloop.tianting.mealorderservice.BatchSaveOrUpdateGradeClassesRpcRequest; | 15 | import com.infoloop.tianting.mealorderservice.BatchSaveOrUpdateGradeClassesRpcRequest; |
| 14 | import com.infoloop.tianting.mealorderservice.BatchSaveOrUpdateGradeClassesRpcResponse; | 16 | import com.infoloop.tianting.mealorderservice.BatchSaveOrUpdateGradeClassesRpcResponse; |
| 17 | +import com.infoloop.tianting.mealorderservice.CreateDinerMealSuspensionRecordRpcRequest; | ||
| 18 | +import com.infoloop.tianting.mealorderservice.CreateDinerMealSuspensionRecordRpcResponse; | ||
| 15 | import com.infoloop.tianting.mealorderservice.CreateDinerRpcRequest; | 19 | import com.infoloop.tianting.mealorderservice.CreateDinerRpcRequest; |
| 16 | import com.infoloop.tianting.mealorderservice.CreateDinerRpcResponse; | 20 | import com.infoloop.tianting.mealorderservice.CreateDinerRpcResponse; |
| 17 | import com.infoloop.tianting.mealorderservice.CreateGradeClassRpcRequest; | 21 | import com.infoloop.tianting.mealorderservice.CreateGradeClassRpcRequest; |
| ... | @@ -24,6 +28,8 @@ import com.infoloop.tianting.mealorderservice.CreateMpAccountDinerRefRpcRequest; | ... | @@ -24,6 +28,8 @@ import com.infoloop.tianting.mealorderservice.CreateMpAccountDinerRefRpcRequest; |
| 24 | import com.infoloop.tianting.mealorderservice.CreateMpAccountDinerRefRpcResponse; | 28 | import com.infoloop.tianting.mealorderservice.CreateMpAccountDinerRefRpcResponse; |
| 25 | import com.infoloop.tianting.mealorderservice.CreateMpAccountRpcRequest; | 29 | import com.infoloop.tianting.mealorderservice.CreateMpAccountRpcRequest; |
| 26 | import com.infoloop.tianting.mealorderservice.CreateMpAccountRpcResponse; | 30 | import com.infoloop.tianting.mealorderservice.CreateMpAccountRpcResponse; |
| 31 | +import com.infoloop.tianting.mealorderservice.DeleteDinerMealSuspensionRecordsByIdsRpcRequest; | ||
| 32 | +import com.infoloop.tianting.mealorderservice.DeleteDinerMealSuspensionRecordsRpcResponse; | ||
| 27 | import com.infoloop.tianting.mealorderservice.DeleteDinersByIdsRpcRequest; | 33 | import com.infoloop.tianting.mealorderservice.DeleteDinersByIdsRpcRequest; |
| 28 | import com.infoloop.tianting.mealorderservice.DeleteDinersRpcResponse; | 34 | import com.infoloop.tianting.mealorderservice.DeleteDinersRpcResponse; |
| 29 | import com.infoloop.tianting.mealorderservice.DeleteGradeClassesAndDinersByClassIdsRpcRequest; | 35 | import com.infoloop.tianting.mealorderservice.DeleteGradeClassesAndDinersByClassIdsRpcRequest; |
| ... | @@ -43,6 +49,10 @@ import com.infoloop.tianting.mealorderservice.DeleteMpAccountsRpcResponse; | ... | @@ -43,6 +49,10 @@ import com.infoloop.tianting.mealorderservice.DeleteMpAccountsRpcResponse; |
| 43 | import com.infoloop.tianting.mealorderservice.DinerModification; | 49 | import com.infoloop.tianting.mealorderservice.DinerModification; |
| 44 | import com.infoloop.tianting.mealorderservice.GetDinerByIdRpcRequest; | 50 | import com.infoloop.tianting.mealorderservice.GetDinerByIdRpcRequest; |
| 45 | import com.infoloop.tianting.mealorderservice.GetDinerByIdRpcResponse; | 51 | import com.infoloop.tianting.mealorderservice.GetDinerByIdRpcResponse; |
| 52 | +import com.infoloop.tianting.mealorderservice.GetDinerMealSuspensionRecordByIdRpcRequest; | ||
| 53 | +import com.infoloop.tianting.mealorderservice.GetDinerMealSuspensionRecordByIdRpcResponse; | ||
| 54 | +import com.infoloop.tianting.mealorderservice.GetDinerMealSuspensionRecordsByIdsRpcRequest; | ||
| 55 | +import com.infoloop.tianting.mealorderservice.GetDinerMealSuspensionRecordsByIdsRpcResponse; | ||
| 46 | import com.infoloop.tianting.mealorderservice.GetDinersByIdsRpcRequest; | 56 | import com.infoloop.tianting.mealorderservice.GetDinersByIdsRpcRequest; |
| 47 | import com.infoloop.tianting.mealorderservice.GetDinersByIdsRpcResponse; | 57 | import com.infoloop.tianting.mealorderservice.GetDinersByIdsRpcResponse; |
| 48 | import com.infoloop.tianting.mealorderservice.GetGradeClassByIdRpcRequest; | 58 | import com.infoloop.tianting.mealorderservice.GetGradeClassByIdRpcRequest; |
| ... | @@ -67,6 +77,8 @@ import com.infoloop.tianting.mealorderservice.GetMpAccountsByIdsRpcRequest; | ... | @@ -67,6 +77,8 @@ import com.infoloop.tianting.mealorderservice.GetMpAccountsByIdsRpcRequest; |
| 67 | import com.infoloop.tianting.mealorderservice.GetMpAccountsByIdsRpcResponse; | 77 | import com.infoloop.tianting.mealorderservice.GetMpAccountsByIdsRpcResponse; |
| 68 | import com.infoloop.tianting.mealorderservice.MealOrderServiceRpcGrpc; | 78 | import com.infoloop.tianting.mealorderservice.MealOrderServiceRpcGrpc; |
| 69 | import com.infoloop.tianting.mealorderservice.MenuSchedule; | 79 | import com.infoloop.tianting.mealorderservice.MenuSchedule; |
| 80 | +import com.infoloop.tianting.mealorderservice.QueryDinerMealSuspensionRecordsByConditionRpcRequest; | ||
| 81 | +import com.infoloop.tianting.mealorderservice.QueryDinerMealSuspensionRecordsByConditionRpcResponse; | ||
| 70 | import com.infoloop.tianting.mealorderservice.QueryDinersByConditionRpcRequest; | 82 | import com.infoloop.tianting.mealorderservice.QueryDinersByConditionRpcRequest; |
| 71 | import com.infoloop.tianting.mealorderservice.QueryDinersByConditionRpcResponse; | 83 | import com.infoloop.tianting.mealorderservice.QueryDinersByConditionRpcResponse; |
| 72 | import com.infoloop.tianting.mealorderservice.QueryGradeClassesByConditionRpcRequest; | 84 | import com.infoloop.tianting.mealorderservice.QueryGradeClassesByConditionRpcRequest; |
| ... | @@ -83,12 +95,15 @@ import com.infoloop.tianting.mealorderservice.QueryMpAccountsByConditionRpcReque | ... | @@ -83,12 +95,15 @@ import com.infoloop.tianting.mealorderservice.QueryMpAccountsByConditionRpcReque |
| 83 | import com.infoloop.tianting.mealorderservice.QueryMpAccountsByConditionRpcResponse; | 95 | import com.infoloop.tianting.mealorderservice.QueryMpAccountsByConditionRpcResponse; |
| 84 | import com.infoloop.tianting.mealorderservice.QueryReserveMealOrdersByDinerIdsRpcRequest; | 96 | import com.infoloop.tianting.mealorderservice.QueryReserveMealOrdersByDinerIdsRpcRequest; |
| 85 | import com.infoloop.tianting.mealorderservice.QueryReserveMealOrdersByDinerIdsRpcResponse; | 97 | import com.infoloop.tianting.mealorderservice.QueryReserveMealOrdersByDinerIdsRpcResponse; |
| 98 | +import com.infoloop.tianting.mealorderservice.SingleDinerMealSuspensionRecordRpcResponse; | ||
| 86 | import com.infoloop.tianting.mealorderservice.SingleDinerRpcResponse; | 99 | import com.infoloop.tianting.mealorderservice.SingleDinerRpcResponse; |
| 87 | import com.infoloop.tianting.mealorderservice.SingleGradeClassRpcResponse; | 100 | import com.infoloop.tianting.mealorderservice.SingleGradeClassRpcResponse; |
| 88 | import com.infoloop.tianting.mealorderservice.SingleMealMenuRecordRpcResponse; | 101 | import com.infoloop.tianting.mealorderservice.SingleMealMenuRecordRpcResponse; |
| 89 | import com.infoloop.tianting.mealorderservice.SingleMealOrderRpcResponse; | 102 | import com.infoloop.tianting.mealorderservice.SingleMealOrderRpcResponse; |
| 90 | import com.infoloop.tianting.mealorderservice.SingleMpAccountDinerRefRpcResponse; | 103 | import com.infoloop.tianting.mealorderservice.SingleMpAccountDinerRefRpcResponse; |
| 91 | import com.infoloop.tianting.mealorderservice.SingleMpAccountRpcResponse; | 104 | import com.infoloop.tianting.mealorderservice.SingleMpAccountRpcResponse; |
| 105 | +import com.infoloop.tianting.mealorderservice.UpdateDinerMealSuspensionRecordRpcRequest; | ||
| 106 | +import com.infoloop.tianting.mealorderservice.UpdateDinerMealSuspensionRecordRpcResponse; | ||
| 92 | import com.infoloop.tianting.mealorderservice.UpdateDinerRpcRequest; | 107 | import com.infoloop.tianting.mealorderservice.UpdateDinerRpcRequest; |
| 93 | import com.infoloop.tianting.mealorderservice.UpdateDinerRpcResponse; | 108 | import com.infoloop.tianting.mealorderservice.UpdateDinerRpcResponse; |
| 94 | import com.infoloop.tianting.mealorderservice.UpdateGradeClassRpcRequest; | 109 | import com.infoloop.tianting.mealorderservice.UpdateGradeClassRpcRequest; |
| ... | @@ -96,6 +111,7 @@ import com.infoloop.tianting.mealorderservice.UpdateGradeClassRpcResponse; | ... | @@ -96,6 +111,7 @@ import com.infoloop.tianting.mealorderservice.UpdateGradeClassRpcResponse; |
| 96 | import com.infoloop.tianting.mealorderservice.UpdateMpAccountRpcRequest; | 111 | import com.infoloop.tianting.mealorderservice.UpdateMpAccountRpcRequest; |
| 97 | import com.infoloop.tianting.mealorderservice.UpdateMpAccountRpcResponse; | 112 | import com.infoloop.tianting.mealorderservice.UpdateMpAccountRpcResponse; |
| 98 | import com.tianting.infoloop.model.db.Diner; | 113 | import com.tianting.infoloop.model.db.Diner; |
| 114 | +import com.tianting.infoloop.model.db.DinerMealSuspensionRecord; | ||
| 99 | import com.tianting.infoloop.model.db.GradeClass; | 115 | import com.tianting.infoloop.model.db.GradeClass; |
| 100 | import com.tianting.infoloop.model.db.MealMenuRecord; | 116 | import com.tianting.infoloop.model.db.MealMenuRecord; |
| 101 | import com.tianting.infoloop.model.db.MealOrder; | 117 | import com.tianting.infoloop.model.db.MealOrder; |
| ... | @@ -107,6 +123,7 @@ import com.tianting.infoloop.service.MealMenuRecordService; | ... | @@ -107,6 +123,7 @@ import com.tianting.infoloop.service.MealMenuRecordService; |
| 107 | import com.tianting.infoloop.service.MealOrderService; | 123 | import com.tianting.infoloop.service.MealOrderService; |
| 108 | import com.tianting.infoloop.service.MpAccountDinerRefService; | 124 | import com.tianting.infoloop.service.MpAccountDinerRefService; |
| 109 | import com.tianting.infoloop.service.MpAccountService; | 125 | import com.tianting.infoloop.service.MpAccountService; |
| 126 | +import com.tianting.infoloop.service.DinerMealSuspensionRecordService; | ||
| 110 | import com.tianting.infoloop.utils.ProtoBeanUtil; | 127 | import com.tianting.infoloop.utils.ProtoBeanUtil; |
| 111 | import io.grpc.Status; | 128 | import io.grpc.Status; |
| 112 | import io.grpc.stub.StreamObserver; | 129 | import io.grpc.stub.StreamObserver; |
| ... | @@ -117,6 +134,7 @@ import org.springframework.stereotype.Service; | ... | @@ -117,6 +134,7 @@ import org.springframework.stereotype.Service; |
| 117 | import org.springframework.transaction.annotation.Transactional; | 134 | import org.springframework.transaction.annotation.Transactional; |
| 118 | 135 | ||
| 119 | import java.time.DayOfWeek; | 136 | import java.time.DayOfWeek; |
| 137 | +import java.time.Instant; | ||
| 120 | import java.time.LocalDate; | 138 | import java.time.LocalDate; |
| 121 | import java.time.LocalDateTime; | 139 | import java.time.LocalDateTime; |
| 122 | import java.time.LocalTime; | 140 | import java.time.LocalTime; |
| ... | @@ -147,6 +165,8 @@ public class MealOrderGrpcService extends MealOrderServiceRpcGrpc.MealOrderServi | ... | @@ -147,6 +165,8 @@ public class MealOrderGrpcService extends MealOrderServiceRpcGrpc.MealOrderServi |
| 147 | 165 | ||
| 148 | private final MpAccountService mpAccountService; | 166 | private final MpAccountService mpAccountService; |
| 149 | 167 | ||
| 168 | + private final DinerMealSuspensionRecordService dinerMealSuspensionRecordService; | ||
| 169 | + | ||
| 150 | @Override | 170 | @Override |
| 151 | @DS(DATA_SOURCE_SLAVE) | 171 | @DS(DATA_SOURCE_SLAVE) |
| 152 | public void getMealOrderById(final GetMealOrderByIdRpcRequest request, | 172 | public void getMealOrderById(final GetMealOrderByIdRpcRequest request, |
| ... | @@ -1210,4 +1230,191 @@ public class MealOrderGrpcService extends MealOrderServiceRpcGrpc.MealOrderServi | ... | @@ -1210,4 +1230,191 @@ public class MealOrderGrpcService extends MealOrderServiceRpcGrpc.MealOrderServi |
| 1210 | responseObserver.onNext(builder.build()); | 1230 | responseObserver.onNext(builder.build()); |
| 1211 | responseObserver.onCompleted(); | 1231 | responseObserver.onCompleted(); |
| 1212 | } | 1232 | } |
| 1233 | + | ||
| 1234 | + @Override | ||
| 1235 | + @DS(DATA_SOURCE_SLAVE) | ||
| 1236 | + public void getDinerMealSuspensionRecordById(final GetDinerMealSuspensionRecordByIdRpcRequest request, | ||
| 1237 | + final StreamObserver<GetDinerMealSuspensionRecordByIdRpcResponse> responseObserver) { | ||
| 1238 | + final var builder = GetDinerMealSuspensionRecordByIdRpcResponse.newBuilder(); | ||
| 1239 | + try { | ||
| 1240 | + final var record = dinerMealSuspensionRecordService.getById(request.getId()); | ||
| 1241 | + if (record != null) { | ||
| 1242 | + builder.setResponse(ProtoBeanUtil.beanToProto(record, SingleDinerMealSuspensionRecordRpcResponse.class)); | ||
| 1243 | + } | ||
| 1244 | + } catch (final Exception e) { | ||
| 1245 | + log.error("getDinerMealSuspensionRecordById error;", e); | ||
| 1246 | + responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException()); | ||
| 1247 | + } | ||
| 1248 | + responseObserver.onNext(builder.build()); | ||
| 1249 | + responseObserver.onCompleted(); | ||
| 1250 | + } | ||
| 1251 | + | ||
| 1252 | + @Override | ||
| 1253 | + @DS(DATA_SOURCE_SLAVE) | ||
| 1254 | + public void getDinerMealSuspensionRecordsByIds(final GetDinerMealSuspensionRecordsByIdsRpcRequest request, | ||
| 1255 | + final StreamObserver<GetDinerMealSuspensionRecordsByIdsRpcResponse> responseObserver) { | ||
| 1256 | + final var builder = GetDinerMealSuspensionRecordsByIdsRpcResponse.newBuilder(); | ||
| 1257 | + try { | ||
| 1258 | + if (request.getIdsList().isEmpty()) { | ||
| 1259 | + builder.addAllResponses(Collections.emptyList()); | ||
| 1260 | + } else { | ||
| 1261 | + final var records = dinerMealSuspensionRecordService.listByIds(request.getIdsList()); | ||
| 1262 | + if (!records.isEmpty()) { | ||
| 1263 | + builder.addAllResponses(ProtoBeanUtil.beanListToProtoList(records, SingleDinerMealSuspensionRecordRpcResponse.class)); | ||
| 1264 | + } | ||
| 1265 | + } | ||
| 1266 | + } catch (final Exception e) { | ||
| 1267 | + log.error("getDinerMealSuspensionRecordsByIds error;", e); | ||
| 1268 | + responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException()); | ||
| 1269 | + } | ||
| 1270 | + responseObserver.onNext(builder.build()); | ||
| 1271 | + responseObserver.onCompleted(); | ||
| 1272 | + } | ||
| 1273 | + | ||
| 1274 | + @Override | ||
| 1275 | + @DS(DATA_SOURCE_SLAVE) | ||
| 1276 | + public void queryDinerMealSuspensionRecordsByCondition(final QueryDinerMealSuspensionRecordsByConditionRpcRequest request, | ||
| 1277 | + final StreamObserver<QueryDinerMealSuspensionRecordsByConditionRpcResponse> responseObserver) { | ||
| 1278 | + final var builder = QueryDinerMealSuspensionRecordsByConditionRpcResponse.newBuilder(); | ||
| 1279 | + try { | ||
| 1280 | + LambdaQueryWrapper<DinerMealSuspensionRecord> queryWrapper = new LambdaQueryWrapper<>(); | ||
| 1281 | + queryWrapper.eq(DinerMealSuspensionRecord::getEnterpriseId, request.getEnterpriseId()); | ||
| 1282 | + if (request.getShouldFilterClientIds()) { | ||
| 1283 | + queryWrapper.in(!request.getClientIdsList().isEmpty(), DinerMealSuspensionRecord::getClientId, request.getClientIdsList()); | ||
| 1284 | + } | ||
| 1285 | + if (request.getShouldFilterClassIds()) { | ||
| 1286 | + queryWrapper.in(!request.getClassIdsList().isEmpty(), DinerMealSuspensionRecord::getClassId, request.getClassIdsList()); | ||
| 1287 | + } | ||
| 1288 | + if (request.getShouldFilterDinerIds()) { | ||
| 1289 | + queryWrapper.in(!request.getDinerIdsList().isEmpty(), DinerMealSuspensionRecord::getDinerId, request.getDinerIdsList()); | ||
| 1290 | + } | ||
| 1291 | + if (request.getShouldFilterStartAt()) { | ||
| 1292 | + queryWrapper.ge(DinerMealSuspensionRecord::getStartAt, LocalDateTimeUtil.of(request.getStartAt())); | ||
| 1293 | + } | ||
| 1294 | + if (request.getShouldFilterEndAt()) { | ||
| 1295 | + queryWrapper.le(DinerMealSuspensionRecord::getEndAt, LocalDateTimeUtil.of(request.getEndAt())); | ||
| 1296 | + } | ||
| 1297 | + final var records = dinerMealSuspensionRecordService.list(queryWrapper); | ||
| 1298 | + if (!records.isEmpty()) { | ||
| 1299 | + builder.addAllResponses(ProtoBeanUtil.beanListToProtoList(records, SingleDinerMealSuspensionRecordRpcResponse.class)); | ||
| 1300 | + } | ||
| 1301 | + } catch (final Exception e) { | ||
| 1302 | + log.error("queryDinerMealSuspensionRecordsByCondition error;", e); | ||
| 1303 | + responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException()); | ||
| 1304 | + } | ||
| 1305 | + responseObserver.onNext(builder.build()); | ||
| 1306 | + responseObserver.onCompleted(); | ||
| 1307 | + } | ||
| 1308 | + | ||
| 1309 | + @Override | ||
| 1310 | + @DS(DATA_SOURCE_MASTER) | ||
| 1311 | + public void createDinerMealSuspensionRecord(final CreateDinerMealSuspensionRecordRpcRequest request, | ||
| 1312 | + final StreamObserver<CreateDinerMealSuspensionRecordRpcResponse> responseObserver) { | ||
| 1313 | + final var builder = CreateDinerMealSuspensionRecordRpcResponse.newBuilder(); | ||
| 1314 | + try { | ||
| 1315 | + DinerMealSuspensionRecord record = new DinerMealSuspensionRecord(); | ||
| 1316 | + record.setEnterpriseId(request.getEnterpriseId()); | ||
| 1317 | + record.setCreatedBy(request.getCreatedBy()); | ||
| 1318 | + record.setCreationSource(request.getCreationSource()); | ||
| 1319 | + record.setUpdatedBy(request.getCreatedBy()); | ||
| 1320 | + record.setUpdateSource(request.getCreationSource()); | ||
| 1321 | + record.setClientId(request.getCreation().getClientId()); | ||
| 1322 | + record.setClassId(request.getCreation().getClassId()); | ||
| 1323 | + record.setDinerId(request.getCreation().getDinerId()); | ||
| 1324 | + record.setStartAt(LocalDateTimeUtil.of(request.getCreation().getStartAt())); | ||
| 1325 | + record.setEndAt(LocalDateTimeUtil.of(request.getCreation().getEndAt())); | ||
| 1326 | + record.setComment(request.getCreation().getComment()); | ||
| 1327 | + builder.setIsCreated(dinerMealSuspensionRecordService.save(record)).setId(record.getId()); | ||
| 1328 | + } catch (final Exception e) { | ||
| 1329 | + log.error("createDinerMealSuspensionRecord error;", e); | ||
| 1330 | + responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException()); | ||
| 1331 | + } | ||
| 1332 | + responseObserver.onNext(builder.build()); | ||
| 1333 | + responseObserver.onCompleted(); | ||
| 1334 | + } | ||
| 1335 | + | ||
| 1336 | + @Override | ||
| 1337 | + @DS(DATA_SOURCE_MASTER) | ||
| 1338 | + public void batchCreateDinerMealSuspensionRecords(final BatchCreateDinerMealSuspensionRecordsRpcRequest request, | ||
| 1339 | + final StreamObserver<BatchCreateDinerMealSuspensionRecordsRpcResponse> responseObserver) { | ||
| 1340 | + final var builder = BatchCreateDinerMealSuspensionRecordsRpcResponse.newBuilder(); | ||
| 1341 | + try { | ||
| 1342 | + final var records = new ArrayList<DinerMealSuspensionRecord>(); | ||
| 1343 | + for (final var creation : request.getCreationsList()) { | ||
| 1344 | + DinerMealSuspensionRecord record = new DinerMealSuspensionRecord(); | ||
| 1345 | + record.setEnterpriseId(request.getEnterpriseId()); | ||
| 1346 | + record.setCreatedBy(request.getCreatedBy()); | ||
| 1347 | + record.setCreationSource(request.getCreationSource()); | ||
| 1348 | + record.setUpdatedBy(request.getCreatedBy()); | ||
| 1349 | + record.setUpdateSource(request.getCreationSource()); | ||
| 1350 | + record.setClientId(creation.getClientId()); | ||
| 1351 | + record.setClassId(creation.getClassId()); | ||
| 1352 | + record.setDinerId(creation.getDinerId()); | ||
| 1353 | + record.setStartAt(LocalDateTimeUtil.of(creation.getStartAt())); | ||
| 1354 | + record.setEndAt(LocalDateTimeUtil.of(creation.getEndAt())); | ||
| 1355 | + record.setComment(creation.getComment()); | ||
| 1356 | + records.add(record); | ||
| 1357 | + } | ||
| 1358 | + builder.setIsCreated(dinerMealSuspensionRecordService.saveBatch(records)) | ||
| 1359 | + .addAllIds(records.stream().map(DinerMealSuspensionRecord::getId).collect(Collectors.toList())); | ||
| 1360 | + } catch (final Exception e) { | ||
| 1361 | + log.error("batchCreateDinerMealSuspensionRecords error;", e); | ||
| 1362 | + responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException()); | ||
| 1363 | + } | ||
| 1364 | + responseObserver.onNext(builder.build()); | ||
| 1365 | + responseObserver.onCompleted(); | ||
| 1366 | + } | ||
| 1367 | + | ||
| 1368 | + @Override | ||
| 1369 | + @DS(DATA_SOURCE_MASTER) | ||
| 1370 | + public void updateDinerMealSuspensionRecord(final UpdateDinerMealSuspensionRecordRpcRequest request, | ||
| 1371 | + final StreamObserver<UpdateDinerMealSuspensionRecordRpcResponse> responseObserver) { | ||
| 1372 | + final var builder = UpdateDinerMealSuspensionRecordRpcResponse.newBuilder(); | ||
| 1373 | + try { | ||
| 1374 | + DinerMealSuspensionRecord record = new DinerMealSuspensionRecord(); | ||
| 1375 | + record.setId(request.getModification().getId()); | ||
| 1376 | + record.setEnterpriseId(request.getEnterpriseId()); | ||
| 1377 | + record.setUpdatedBy(request.getUpdatedBy()); | ||
| 1378 | + record.setUpdateSource(request.getUpdateSource()); | ||
| 1379 | + if (request.getModification().getShouldUpdateStartAt()) { | ||
| 1380 | + record.setStartAt(LocalDateTimeUtil.of(request.getModification().getStartAt())); | ||
| 1381 | + } | ||
| 1382 | + if (request.getModification().getShouldUpdateEndAt()) { | ||
| 1383 | + record.setEndAt(LocalDateTimeUtil.of(request.getModification().getEndAt())); | ||
| 1384 | + } | ||
| 1385 | + if (request.getModification().getShouldUpdateComment()) { | ||
| 1386 | + record.setComment(request.getModification().getComment()); | ||
| 1387 | + } | ||
| 1388 | + if (request.getModification().getShouldUpdateClassId()) { | ||
| 1389 | + record.setClassId(request.getModification().getClassId()); | ||
| 1390 | + } | ||
| 1391 | + builder.setIsUpdated(dinerMealSuspensionRecordService.updateById(record)); | ||
| 1392 | + } catch (final Exception e) { | ||
| 1393 | + log.error("updateDinerMealSuspensionRecord error;", e); | ||
| 1394 | + responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException()); | ||
| 1395 | + } | ||
| 1396 | + responseObserver.onNext(builder.build()); | ||
| 1397 | + responseObserver.onCompleted(); | ||
| 1398 | + } | ||
| 1399 | + | ||
| 1400 | + @Override | ||
| 1401 | + @DS(DATA_SOURCE_MASTER) | ||
| 1402 | + public void deleteDinerMealSuspensionRecordsByIds(final DeleteDinerMealSuspensionRecordsByIdsRpcRequest request, | ||
| 1403 | + final StreamObserver<DeleteDinerMealSuspensionRecordsRpcResponse> responseObserver) { | ||
| 1404 | + final var builder = DeleteDinerMealSuspensionRecordsRpcResponse.newBuilder(); | ||
| 1405 | + try { | ||
| 1406 | + final var records = dinerMealSuspensionRecordService.listByIds(request.getIdsList()); | ||
| 1407 | + for (final var record : records) { | ||
| 1408 | + record.setUpdatedBy(request.getUpdatedBy()); | ||
| 1409 | + record.setUpdateSource(request.getUpdateSource()); | ||
| 1410 | + } | ||
| 1411 | + builder.setIsDeleted(dinerMealSuspensionRecordService.updateBatchById(records) && | ||
| 1412 | + dinerMealSuspensionRecordService.removeBatchByIds(request.getIdsList())); | ||
| 1413 | + } catch (final Exception e) { | ||
| 1414 | + log.error("deleteDinerMealSuspensionRecordsByIds error;", e); | ||
| 1415 | + responseObserver.onError(Status.INTERNAL.withDescription(e.getMessage()).asException()); | ||
| 1416 | + } | ||
| 1417 | + responseObserver.onNext(builder.build()); | ||
| 1418 | + responseObserver.onCompleted(); | ||
| 1419 | + } | ||
| 1213 | } | 1420 | } | ... | ... |
src/main/java/com/tianting/infoloop/service/impl/DinerMealSuspensionRecordServiceImpl.java
0 → 100644
| 1 | +package com.tianting.infoloop.service.impl; | ||
| 2 | + | ||
| 3 | +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | ||
| 4 | +import com.tianting.infoloop.mapper.DinerMealSuspensionRecordMapper; | ||
| 5 | +import com.tianting.infoloop.model.db.DinerMealSuspensionRecord; | ||
| 6 | +import com.tianting.infoloop.service.DinerMealSuspensionRecordService; | ||
| 7 | +import org.springframework.stereotype.Service; | ||
| 8 | + | ||
| 9 | +/** | ||
| 10 | + * 学生停餐记录服务实现类 | ||
| 11 | + */ | ||
| 12 | +@Service | ||
| 13 | +public class DinerMealSuspensionRecordServiceImpl extends ServiceImpl<DinerMealSuspensionRecordMapper, DinerMealSuspensionRecord> implements DinerMealSuspensionRecordService { | ||
| 14 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -54,6 +54,15 @@ service MealOrderServiceRpc { | ... | @@ -54,6 +54,15 @@ service MealOrderServiceRpc { |
| 54 | rpc QueryMealMenuRecordsByCondition (QueryMealMenuRecordsByConditionRpcRequest) returns (QueryMealMenuRecordsByConditionRpcResponse) {} | 54 | rpc QueryMealMenuRecordsByCondition (QueryMealMenuRecordsByConditionRpcRequest) returns (QueryMealMenuRecordsByConditionRpcResponse) {} |
| 55 | rpc CreateMealMenuRecord (CreateMealMenuRecordRpcRequest) returns (CreateMealMenuRecordRpcResponse) {} | 55 | rpc CreateMealMenuRecord (CreateMealMenuRecordRpcRequest) returns (CreateMealMenuRecordRpcResponse) {} |
| 56 | rpc QueryLatestMealMenuRecordsByClientIds (QueryLatestMealMenuRecordsByClientIdsRpcRequest) returns (QueryLatestMealMenuRecordsByClientIdsRpcResponse) {} | 56 | rpc QueryLatestMealMenuRecordsByClientIds (QueryLatestMealMenuRecordsByClientIdsRpcRequest) returns (QueryLatestMealMenuRecordsByClientIdsRpcResponse) {} |
| 57 | + | ||
| 58 | + // 停餐记录相关服务 | ||
| 59 | + rpc getDinerMealSuspensionRecordById(GetDinerMealSuspensionRecordByIdRpcRequest) returns (GetDinerMealSuspensionRecordByIdRpcResponse); | ||
| 60 | + rpc getDinerMealSuspensionRecordsByIds(GetDinerMealSuspensionRecordsByIdsRpcRequest) returns (GetDinerMealSuspensionRecordsByIdsRpcResponse); | ||
| 61 | + rpc queryDinerMealSuspensionRecordsByCondition(QueryDinerMealSuspensionRecordsByConditionRpcRequest) returns (QueryDinerMealSuspensionRecordsByConditionRpcResponse); | ||
| 62 | + rpc createDinerMealSuspensionRecord(CreateDinerMealSuspensionRecordRpcRequest) returns (CreateDinerMealSuspensionRecordRpcResponse); | ||
| 63 | + rpc batchCreateDinerMealSuspensionRecords(BatchCreateDinerMealSuspensionRecordsRpcRequest) returns (BatchCreateDinerMealSuspensionRecordsRpcResponse); | ||
| 64 | + rpc updateDinerMealSuspensionRecord(UpdateDinerMealSuspensionRecordRpcRequest) returns (UpdateDinerMealSuspensionRecordRpcResponse); | ||
| 65 | + rpc deleteDinerMealSuspensionRecordsByIds(DeleteDinerMealSuspensionRecordsByIdsRpcRequest) returns (DeleteDinerMealSuspensionRecordsRpcResponse); | ||
| 57 | } | 66 | } |
| 58 | 67 | ||
| 59 | enum MealOrderOrderMethodEnum { | 68 | enum MealOrderOrderMethodEnum { |
| ... | @@ -823,3 +832,126 @@ message QueryLatestMealMenuRecordsByClientIdsRpcRequest { | ... | @@ -823,3 +832,126 @@ message QueryLatestMealMenuRecordsByClientIdsRpcRequest { |
| 823 | message QueryLatestMealMenuRecordsByClientIdsRpcResponse { | 832 | message QueryLatestMealMenuRecordsByClientIdsRpcResponse { |
| 824 | repeated SingleMealMenuRecordRpcResponse responses = 1; | 833 | repeated SingleMealMenuRecordRpcResponse responses = 1; |
| 825 | } | 834 | } |
| 835 | + | ||
| 836 | +// 停餐记录相关消息定义 | ||
| 837 | +message SingleDinerMealSuspensionRecordRpcResponse { | ||
| 838 | + int32 id = 1; | ||
| 839 | + int32 enterpriseId = 2; | ||
| 840 | + int32 clientId = 3; | ||
| 841 | + int32 classId = 4; | ||
| 842 | + int32 dinerId = 5; | ||
| 843 | + int64 startAt = 6; | ||
| 844 | + int64 endAt = 7; | ||
| 845 | + string comment = 8; | ||
| 846 | + int64 createdAt = 9; | ||
| 847 | + int32 createdBy = 10; | ||
| 848 | + int32 creationSource = 11; | ||
| 849 | + int64 updatedAt = 12; | ||
| 850 | + int32 updatedBy = 13; | ||
| 851 | + int32 updateSource = 14; | ||
| 852 | +} | ||
| 853 | + | ||
| 854 | +message GetDinerMealSuspensionRecordByIdRpcRequest { | ||
| 855 | + int64 id = 1; | ||
| 856 | +} | ||
| 857 | + | ||
| 858 | +message GetDinerMealSuspensionRecordByIdRpcResponse { | ||
| 859 | + SingleDinerMealSuspensionRecordRpcResponse response = 1; | ||
| 860 | +} | ||
| 861 | + | ||
| 862 | +message GetDinerMealSuspensionRecordsByIdsRpcRequest { | ||
| 863 | + repeated int32 ids = 1; | ||
| 864 | +} | ||
| 865 | + | ||
| 866 | +message GetDinerMealSuspensionRecordsByIdsRpcResponse { | ||
| 867 | + repeated SingleDinerMealSuspensionRecordRpcResponse responses = 1; | ||
| 868 | +} | ||
| 869 | + | ||
| 870 | +message QueryDinerMealSuspensionRecordsByConditionRpcRequest { | ||
| 871 | + int32 enterpriseId = 1; | ||
| 872 | + bool shouldFilterClientIds = 2; | ||
| 873 | + repeated int32 clientIds = 3; | ||
| 874 | + bool shouldFilterClassIds = 4; | ||
| 875 | + repeated int32 classIds = 5; | ||
| 876 | + bool shouldFilterDinerIds = 6; | ||
| 877 | + repeated int32 dinerIds = 7; | ||
| 878 | + bool shouldFilterStartAt = 8; | ||
| 879 | + int64 startAt = 9; | ||
| 880 | + bool shouldFilterEndAt = 10; | ||
| 881 | + int64 endAt = 11; | ||
| 882 | +} | ||
| 883 | + | ||
| 884 | +message QueryDinerMealSuspensionRecordsByConditionRpcResponse { | ||
| 885 | + repeated SingleDinerMealSuspensionRecordRpcResponse responses = 1; | ||
| 886 | +} | ||
| 887 | + | ||
| 888 | +message CreateDinerMealSuspensionRecordRpcRequest { | ||
| 889 | + int32 enterpriseId = 1; | ||
| 890 | + int32 createdBy = 2; | ||
| 891 | + int32 creationSource = 3; | ||
| 892 | + DinerMealSuspensionRecordCreation creation = 4; | ||
| 893 | +} | ||
| 894 | + | ||
| 895 | +message DinerMealSuspensionRecordCreation { | ||
| 896 | + int32 clientId = 1; | ||
| 897 | + int32 classId = 2; | ||
| 898 | + int32 dinerId = 3; | ||
| 899 | + int64 startAt = 4; | ||
| 900 | + int64 endAt = 5; | ||
| 901 | + string comment = 6; | ||
| 902 | +} | ||
| 903 | + | ||
| 904 | +message CreateDinerMealSuspensionRecordRpcResponse { | ||
| 905 | + bool isCreated = 1; | ||
| 906 | + int32 id = 2; | ||
| 907 | +} | ||
| 908 | + | ||
| 909 | +message UpdateDinerMealSuspensionRecordRpcRequest { | ||
| 910 | + int32 enterpriseId = 1; | ||
| 911 | + int32 updatedBy = 2; | ||
| 912 | + int32 updateSource = 3; | ||
| 913 | + DinerMealSuspensionRecordModification modification = 4; | ||
| 914 | +} | ||
| 915 | + | ||
| 916 | +message DinerMealSuspensionRecordModification { | ||
| 917 | + int32 id = 1; | ||
| 918 | + bool shouldUpdateClientId = 2; | ||
| 919 | + int32 clientId = 3; | ||
| 920 | + bool shouldUpdateClassId = 4; | ||
| 921 | + int32 classId = 5; | ||
| 922 | + bool shouldUpdateDinerId = 6; | ||
| 923 | + int32 dinerId = 7; | ||
| 924 | + bool shouldUpdateStartAt = 8; | ||
| 925 | + int64 startAt = 9; | ||
| 926 | + bool shouldUpdateEndAt = 10; | ||
| 927 | + int64 endAt = 11; | ||
| 928 | + bool shouldUpdateComment = 12; | ||
| 929 | + string comment = 13; | ||
| 930 | +} | ||
| 931 | + | ||
| 932 | +message UpdateDinerMealSuspensionRecordRpcResponse { | ||
| 933 | + bool isUpdated = 1; | ||
| 934 | +} | ||
| 935 | + | ||
| 936 | +message DeleteDinerMealSuspensionRecordsByIdsRpcRequest { | ||
| 937 | + repeated int32 ids = 1; | ||
| 938 | + int32 enterpriseId = 2; | ||
| 939 | + int32 updatedBy = 3; | ||
| 940 | + int32 updateSource = 4; | ||
| 941 | +} | ||
| 942 | + | ||
| 943 | +message DeleteDinerMealSuspensionRecordsRpcResponse { | ||
| 944 | + bool isDeleted = 1; | ||
| 945 | +} | ||
| 946 | + | ||
| 947 | +message BatchCreateDinerMealSuspensionRecordsRpcRequest { | ||
| 948 | + int32 enterpriseId = 1; | ||
| 949 | + int32 createdBy = 2; | ||
| 950 | + int32 creationSource = 3; | ||
| 951 | + repeated DinerMealSuspensionRecordCreation creations = 4; | ||
| 952 | +} | ||
| 953 | + | ||
| 954 | +message BatchCreateDinerMealSuspensionRecordsRpcResponse { | ||
| 955 | + bool isCreated = 1; | ||
| 956 | + repeated int32 ids = 2; | ||
| 957 | +} | ... | ... |
-
Please register or login to post a comment