feat:模型调整

This commit is contained in:
amos
2026-02-25 15:15:55 +08:00
parent fbdd6e78f4
commit 81aa359c8b
28 changed files with 474 additions and 230 deletions

View File

@@ -0,0 +1,81 @@
package pers.amos.mall.route.dal.dataobject;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 固定班次实体(独立库存管理)
*/
@Data
@TableName("fixed_schedule")
public class FixedScheduleDO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 线路编码
*/
private String routeCode;
/**
* 班次编号(唯一)
*/
private String scheduleCode;
/**
* 库存编码引用Inventory
*/
private String inventoryCode;
/**
* 班次日期
*/
private String scheduleDate;
/**
* 发车时间
*/
private String departureTime;
/**
* 到达时间
*/
private String arrivalTime;
/**
* 班次票价(如果为空则使用线路价格)
*/
private String price;
/**
* 总座位数
*/
private Integer totalSeats;
/**
* 可用座位数
*/
private Integer availableSeats;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
}

View File

@@ -14,47 +14,46 @@ import java.time.LocalDateTime;
*/
@Data
@TableName("inventory")
public class Inventory implements Serializable {
public class InventoryDO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 库存编码唯一
*/
private String inventoryCode;
/**
* 线路编码
*/
private String routeCode;
/**
* 班次编码
*/
private String scheduleCode;
/**
* 总库存
*/
private Integer totalStock;
/**
* 剩余库存
*/
private Integer remainingStock;
/**
* 乐观锁版本号防止超卖
*/
@Version
private Integer version;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/

View File

@@ -0,0 +1,86 @@
package pers.amos.mall.route.dal.dataobject;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 库存变动日志(固定班次和滚动发车通用)
*/
@Data
@TableName("inventory_log")
public class InventoryLogDO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 库存编码引用Inventory
*/
private String inventoryCode;
/**
* 库存类型FIXED-固定班次ROLLING-滚动发车
*/
private String inventoryType;
/**
* 固定班次编号
*/
private String scheduleCode;
/**
* 滚动班次编号
*/
private String rollingScheduleCode;
/**
* 线路编号
*/
private String routeCode;
/**
* 操作类型LOCK-锁定UNLOCK-解锁DEDUCT-扣减RELEASE-释放
*/
private String operationType;
/**
* 变动数量
*/
private Integer quantity;
/**
* 操作前库存
*/
private Integer beforeQty;
/**
* 操作后库存
*/
private Integer afterQty;
/**
* 关联订单号
*/
private String orderNo;
/**
* 操作描述
*/
private String remark;
/**
* 创建时间
*/
private LocalDateTime createTime;
}

View File

@@ -6,15 +6,14 @@ import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 票种规则实体定价规则
* 滚动发车班次实体共享库存池
*/
@Data
@TableName("ticket_rule")
public class TicketRule implements Serializable {
@TableName("rolling_schedule")
public class RollingScheduleDO implements Serializable {
private static final long serialVersionUID = 1L;
@@ -25,50 +24,40 @@ public class TicketRule implements Serializable {
private Long id;
/**
* 规则编码唯一
* 线路编码
*/
private String ruleCode;
private String routeCode;
/**
* 票种ADULT-成人票STUDENT-学生票CHILD-儿童票SENIOR-老人票
* 滚动班次编号唯一
*/
private String ticketType;
private String rollingScheduleCode;
/**
* 规则名称
* 库存编码引用Inventory
*/
private String ruleName;
private String inventoryCode;
/**
* 规则描述
* 班次日期
*/
private String ruleDescription;
private String scheduleDate;
/**
* 折扣率基于基础票价
*/
private BigDecimal discountRate;
/**
* 是否需要身份验证
*/
private Boolean needVerify;
/**
* 最小年龄限制
*/
private Integer minAge;
/**
* 最大年龄限制
*/
private Integer maxAge;
/**
* 状态1-启用0-停用
* 状态1-运营中0-已停运
*/
private Integer status;
/**
* 可用座位数
*/
private Integer availableSeats;
/**
* 已售座位数
*/
private Integer soldSeats;
/**
* 创建时间
*/
@@ -79,3 +68,4 @@ public class TicketRule implements Serializable {
*/
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,103 @@
package pers.amos.mall.route.dal.dataobject;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;
/**
* 线路实体
*/
@Data
@TableName("route")
public class RouteDO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 线路编码(唯一)
*/
private String routeCode;
/**
* 线路名称
*/
private String routeName;
/**
* 起点站
*/
private String startStation;
/**
* 终点站
*/
private String endStation;
/**
* 里程(公里)
*/
private Double distance;
/**
* 预计时长(分钟)
*/
private Integer estimatedDuration;
/**
* 基础票价(成人票)
*/
private String basePrice;
/**
* 运营模式FIXED-固定班次ROLLING-滚动发车
*/
private String operationMode;
/**
* 滚动发车运营开始时间仅ROLLING模式有效
*/
private String operationStart;
/**
* 滚动发车运营结束时间仅ROLLING模式有效
*/
private String operationEnd;
/**
* 滚动发车间隔分钟仅ROLLING模式有效
*/
private Integer departureInterval;
/**
* 滚动发车每日总座位数仅ROLLING模式有效
*/
private Integer dailyCapacity;
/**
* 状态1-运营中0-停运
*/
private Integer status;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
}

View File

@@ -2,12 +2,12 @@ package pers.amos.mall.route.dal.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import pers.amos.mall.route.dal.dataobject.FixedSchedule;
import pers.amos.mall.route.dal.dataobject.FixedScheduleDO;
/**
* 固定班次Mapper
*/
@Mapper
public interface FixedScheduleMapper extends BaseMapper<FixedSchedule> {
public interface FixedScheduleMapper extends BaseMapper<FixedScheduleDO> {
}

View File

@@ -2,12 +2,12 @@ package pers.amos.mall.route.dal.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import pers.amos.mall.route.dal.dataobject.InventoryLog;
import pers.amos.mall.route.dal.dataobject.InventoryLogDO;
/**
* 库存日志Mapper
*/
@Mapper
public interface InventoryLogMapper extends BaseMapper<InventoryLog> {
public interface InventoryLogMapper extends BaseMapper<InventoryLogDO> {
}

View File

@@ -2,11 +2,11 @@ package pers.amos.mall.route.dal.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import pers.amos.mall.route.dal.dataobject.Inventory;
import pers.amos.mall.route.dal.dataobject.InventoryDO;
/**
* 库存Mapper
*/
@Mapper
public interface InventoryMapper extends BaseMapper<Inventory> {
public interface InventoryMapper extends BaseMapper<InventoryDO> {
}

View File

@@ -2,12 +2,12 @@ package pers.amos.mall.route.dal.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import pers.amos.mall.route.dal.dataobject.RollingSchedule;
import pers.amos.mall.route.dal.dataobject.RollingScheduleDO;
/**
* 滚动发车班次Mapper
*/
@Mapper
public interface RollingScheduleMapper extends BaseMapper<RollingSchedule> {
public interface RollingScheduleMapper extends BaseMapper<RollingScheduleDO> {
}

View File

@@ -2,12 +2,12 @@ package pers.amos.mall.route.dal.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import pers.amos.mall.route.dal.dataobject.Route;
import pers.amos.mall.route.dal.dataobject.RouteDO;
/**
* 线路Mapper
*/
@Mapper
public interface RouteMapper extends BaseMapper<Route> {
public interface RouteMapper extends BaseMapper<RouteDO> {
}

View File

@@ -2,11 +2,10 @@ package pers.amos.mall.route.dal.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import pers.amos.mall.route.dal.dataobject.TicketRule;
/**
* 票种规则Mapper
*/
@Mapper
public interface TicketRuleMapper extends BaseMapper<TicketRule> {
public interface TicketRuleMapper extends BaseMapper<TicketRuleDO> {
}

View File

@@ -1,11 +1,11 @@
package pers.amos.mall.route.dal.repository;
import com.baomidou.mybatisplus.extension.service.IService;
import pers.amos.mall.route.dal.dataobject.FixedSchedule;
import pers.amos.mall.route.dal.dataobject.FixedScheduleDO;
/**
* 固定班次Repository
*/
public interface FixedScheduleRepository extends IService<FixedSchedule> {
public interface FixedScheduleRepository extends IService<FixedScheduleDO> {
}

View File

@@ -1,11 +1,11 @@
package pers.amos.mall.route.dal.repository;
import com.baomidou.mybatisplus.extension.service.IService;
import pers.amos.mall.route.dal.dataobject.InventoryLog;
import pers.amos.mall.route.dal.dataobject.InventoryLogDO;
/**
* 库存日志Repository
*/
public interface InventoryLogRepository extends IService<InventoryLog> {
public interface InventoryLogRepository extends IService<InventoryLogDO> {
}

View File

@@ -1,6 +1,6 @@
package pers.amos.mall.route.dal.repository;
import pers.amos.mall.route.dal.dataobject.Inventory;
import pers.amos.mall.route.dal.dataobject.InventoryDO;
/**
* 库存仓储接口
@@ -10,15 +10,15 @@ public interface InventoryRepository {
/**
* 根据库存编码查询
*/
Inventory findByInventoryCode(String inventoryCode);
InventoryDO findByInventoryCode(String inventoryCode);
/**
* 保存库存
*/
void save(Inventory inventory);
void save(InventoryDO inventoryDO);
/**
* 更新库存(乐观锁)
*/
boolean updateWithVersion(Inventory inventory);
boolean updateWithVersion(InventoryDO inventoryDO);
}

View File

@@ -1,11 +1,11 @@
package pers.amos.mall.route.dal.repository;
import com.baomidou.mybatisplus.extension.service.IService;
import pers.amos.mall.route.dal.dataobject.RollingSchedule;
import pers.amos.mall.route.dal.dataobject.RollingScheduleDO;
/**
* 滚动发车班次Repository
*/
public interface RollingScheduleRepository extends IService<RollingSchedule> {
public interface RollingScheduleRepository extends IService<RollingScheduleDO> {
}

View File

@@ -1,11 +1,11 @@
package pers.amos.mall.route.dal.repository;
import com.baomidou.mybatisplus.extension.service.IService;
import pers.amos.mall.route.dal.dataobject.Route;
import pers.amos.mall.route.dal.dataobject.RouteDO;
/**
* 线路Repository
*/
public interface RouteRepository extends IService<Route> {
public interface RouteRepository extends IService<RouteDO> {
}

View File

@@ -1,10 +1,9 @@
package pers.amos.mall.route.dal.repository;
import com.baomidou.mybatisplus.extension.service.IService;
import pers.amos.mall.route.dal.dataobject.TicketRule;
/**
* 票种规则Repository
*/
public interface TicketRuleRepository extends IService<TicketRule> {
public interface TicketRuleRepository extends IService<TicketRuleDO> {
}

View File

@@ -2,7 +2,7 @@ package pers.amos.mall.route.dal.repository.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Repository;
import pers.amos.mall.route.dal.dataobject.FixedSchedule;
import pers.amos.mall.route.dal.dataobject.FixedScheduleDO;
import pers.amos.mall.route.dal.mapper.FixedScheduleMapper;
import pers.amos.mall.route.dal.repository.FixedScheduleRepository;
@@ -10,6 +10,6 @@ import pers.amos.mall.route.dal.repository.FixedScheduleRepository;
* 固定班次Repository实现
*/
@Repository
public class FixedScheduleRepositoryImpl extends ServiceImpl<FixedScheduleMapper, FixedSchedule> implements FixedScheduleRepository {
public class FixedScheduleRepositoryImpl extends ServiceImpl<FixedScheduleMapper, FixedScheduleDO> implements FixedScheduleRepository {
}

View File

@@ -2,7 +2,7 @@ package pers.amos.mall.route.dal.repository.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Repository;
import pers.amos.mall.route.dal.dataobject.InventoryLog;
import pers.amos.mall.route.dal.dataobject.InventoryLogDO;
import pers.amos.mall.route.dal.mapper.InventoryLogMapper;
import pers.amos.mall.route.dal.repository.InventoryLogRepository;
@@ -10,6 +10,6 @@ import pers.amos.mall.route.dal.repository.InventoryLogRepository;
* 库存日志Repository实现
*/
@Repository
public class InventoryLogRepositoryImpl extends ServiceImpl<InventoryLogMapper, InventoryLog> implements InventoryLogRepository {
public class InventoryLogRepositoryImpl extends ServiceImpl<InventoryLogMapper, InventoryLogDO> implements InventoryLogRepository {
}

View File

@@ -2,7 +2,7 @@ package pers.amos.mall.route.dal.repository.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Repository;
import pers.amos.mall.route.dal.dataobject.RollingSchedule;
import pers.amos.mall.route.dal.dataobject.RollingScheduleDO;
import pers.amos.mall.route.dal.mapper.RollingScheduleMapper;
import pers.amos.mall.route.dal.repository.RollingScheduleRepository;
@@ -10,6 +10,6 @@ import pers.amos.mall.route.dal.repository.RollingScheduleRepository;
* 滚动发车班次Repository实现
*/
@Repository
public class RollingScheduleRepositoryImpl extends ServiceImpl<RollingScheduleMapper, RollingSchedule> implements RollingScheduleRepository {
public class RollingScheduleRepositoryImpl extends ServiceImpl<RollingScheduleMapper, RollingScheduleDO> implements RollingScheduleRepository {
}

View File

@@ -2,7 +2,7 @@ package pers.amos.mall.route.dal.repository.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import pers.amos.mall.route.dal.dataobject.Route;
import pers.amos.mall.route.dal.dataobject.RouteDO;
import pers.amos.mall.route.dal.mapper.RouteMapper;
import pers.amos.mall.route.dal.repository.RouteRepository;
@@ -10,6 +10,6 @@ import pers.amos.mall.route.dal.repository.RouteRepository;
* 线路Repository实现
*/
@Service
public class RouteRepositoryImpl extends ServiceImpl<RouteMapper, Route> implements RouteRepository {
public class RouteRepositoryImpl extends ServiceImpl<RouteMapper, RouteDO> implements RouteRepository {
}

View File

@@ -2,7 +2,6 @@ package pers.amos.mall.route.dal.repository.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Repository;
import pers.amos.mall.route.dal.dataobject.TicketRule;
import pers.amos.mall.route.dal.mapper.TicketRuleMapper;
import pers.amos.mall.route.dal.repository.TicketRuleRepository;
@@ -10,5 +9,5 @@ import pers.amos.mall.route.dal.repository.TicketRuleRepository;
* 票种规则Repository实现
*/
@Repository
public class TicketRuleRepositoryImpl extends ServiceImpl<TicketRuleMapper, TicketRule> implements TicketRuleRepository {
public class TicketRuleRepositoryImpl extends ServiceImpl<TicketRuleMapper, TicketRuleDO> implements TicketRuleRepository {
}

View File

@@ -1,4 +1,4 @@
package pers.amos.mall.route.dal.dataobject;
package pers.amos.mall.route.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
@@ -15,77 +15,57 @@ import java.time.LocalTime;
* 固定班次实体独立库存管理
*/
@Data
@TableName("fixed_schedule")
public class FixedSchedule implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 线路编码
*/
private String routeCode;
/**
* 班次编号唯一
*/
private String scheduleCode;
/**
* 库存编码引用Inventory
*/
private String inventoryCode;
/**
* 班次日期
*/
private LocalDate scheduleDate;
/**
* 发车时间
*/
private LocalTime departureTime;
/**
* 到达时间
*/
private LocalTime arrivalTime;
/**
* 班次票价如果为空则使用线路价格
*/
private BigDecimal price;
/**
* 状态1-可售2-售罄3-已发车4-已取消
* 总座位数
*/
private Integer status;
private Integer totalSeats;
/**
* 可用座位数
*/
private Integer availableSeats;
/**
* 已售座位数
*/
private Integer soldSeats;
/**
* 乐观锁版本号
*/
private Integer version;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/

View File

@@ -0,0 +1,50 @@
package pers.amos.mall.route.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 库存实体(独立管理,被班次引用)
*/
@Data
public class Inventory implements Serializable {
/**
* 库存编码(唯一)
*/
private String inventoryCode;
/**
* 线路编码
*/
private String routeCode;
/**
* 班次编码
*/
private String scheduleCode;
/**
* 总库存
*/
private Integer totalStock;
/**
* 剩余库存
*/
private Integer remainingStock;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
}

View File

@@ -1,4 +1,4 @@
package pers.amos.mall.route.dal.dataobject;
package pers.amos.mall.route.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
@@ -12,17 +12,8 @@ import java.time.LocalDateTime;
* 库存变动日志固定班次和滚动发车通用
*/
@Data
@TableName("inventory_log")
public class InventoryLog implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 库存编码引用Inventory
*/

View File

@@ -1,4 +1,4 @@
package pers.amos.mall.route.dal.dataobject;
package pers.amos.mall.route.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
@@ -13,62 +13,48 @@ import java.time.LocalDateTime;
* 滚动发车班次实体共享库存池
*/
@Data
@TableName("rolling_schedule")
public class RollingSchedule implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 线路编码
*/
private String routeCode;
/**
* 滚动班次编号唯一
*/
private String rollingScheduleCode;
/**
* 库存编码引用Inventory
*/
private String inventoryCode;
/**
* 班次日期
*/
private LocalDate scheduleDate;
/**
* 状态1-运营中0-已停运
*/
private Integer status;
/**
* 可用座位数
*/
private Integer availableSeats;
/**
* 已售座位数
*/
private Integer soldSeats;
/**
* 乐观锁版本号
*/
private Integer version;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/

View File

@@ -1,4 +1,4 @@
package pers.amos.mall.route.dal.dataobject;
package pers.amos.mall.route.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
@@ -14,17 +14,8 @@ import java.time.LocalTime;
* 线路实体
*/
@Data
@TableName("route")
public class Route implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 线路编码唯一
*/
@@ -48,7 +39,7 @@ public class Route implements Serializable {
/**
* 里程公里
*/
private Integer distance;
private Double distance;
/**
* 预计时长分钟
@@ -60,16 +51,6 @@ public class Route implements Serializable {
*/
private BigDecimal basePrice;
/**
* 学生票价
*/
private BigDecimal studentPrice;
/**
* 儿童票价
*/
private BigDecimal childPrice;
/**
* 运营模式FIXED-固定班次ROLLING-滚动发车
*/

View File

@@ -10,9 +10,9 @@ import pers.amos.mall.common.enums.InventoryOperationTypeEnum;
import pers.amos.mall.common.enums.OrderTypeEnum;
import pers.amos.mall.common.log.LogUtil;
import pers.amos.mall.common.response.Result;
import pers.amos.mall.route.dal.dataobject.FixedSchedule;
import pers.amos.mall.route.dal.dataobject.InventoryLog;
import pers.amos.mall.route.dal.dataobject.RollingSchedule;
import pers.amos.mall.route.dal.dataobject.FixedScheduleDO;
import pers.amos.mall.route.dal.dataobject.InventoryLogDO;
import pers.amos.mall.route.dal.dataobject.RollingScheduleDO;
import pers.amos.mall.route.dal.repository.FixedScheduleRepository;
import pers.amos.mall.route.dal.repository.InventoryLogRepository;
import pers.amos.mall.route.dal.repository.RollingScheduleRepository;
@@ -73,9 +73,9 @@ public class RouteServiceImpl implements RouteService {
// ==================== 固定班次库存操作 ====================
private Result<Boolean> checkFixedScheduleInventory(InventoryCheckDTO dto) {
FixedSchedule schedule = fixedScheduleRepository.getOne(
Wrappers.lambdaQuery(FixedSchedule.class)
.eq(FixedSchedule::getScheduleCode, dto.getScheduleCode())
FixedScheduleDO schedule = fixedScheduleRepository.getOne(
Wrappers.lambdaQuery(FixedScheduleDO.class)
.eq(FixedScheduleDO::getScheduleCode, dto.getScheduleCode())
);
if (schedule == null) {
@@ -90,9 +90,9 @@ public class RouteServiceImpl implements RouteService {
}
private Result<Boolean> lockFixedScheduleInventory(InventoryOperationDTO dto) {
FixedSchedule schedule = fixedScheduleRepository.getOne(
Wrappers.lambdaQuery(FixedSchedule.class)
.eq(FixedSchedule::getScheduleCode, dto.getScheduleCode())
FixedScheduleDO schedule = fixedScheduleRepository.getOne(
Wrappers.lambdaQuery(FixedScheduleDO.class)
.eq(FixedScheduleDO::getScheduleCode, dto.getScheduleCode())
);
if (schedule == null) {
@@ -103,12 +103,12 @@ public class RouteServiceImpl implements RouteService {
// 乐观锁扣减可用库存
boolean success = fixedScheduleRepository.update(
Wrappers.lambdaUpdate(FixedSchedule.class)
.eq(FixedSchedule::getScheduleCode, dto.getScheduleCode())
.eq(FixedSchedule::getVersion, schedule.getVersion())
Wrappers.lambdaUpdate(FixedScheduleDO.class)
.eq(FixedScheduleDO::getScheduleCode, dto.getScheduleCode())
.eq(FixedScheduleDO::getVersion, schedule.getVersion())
.setSql("available_seats = available_seats - " + dto.getQuantity())
.set(FixedSchedule::getVersion, schedule.getVersion() + 1)
.ge(FixedSchedule::getAvailableSeats, dto.getQuantity())
.set(FixedScheduleDO::getVersion, schedule.getVersion() + 1)
.ge(FixedScheduleDO::getAvailableSeats, dto.getQuantity())
);
if (!success) {
@@ -128,9 +128,9 @@ public class RouteServiceImpl implements RouteService {
private Result<Boolean> deductFixedScheduleInventory(InventoryOperationDTO dto) {
// 固定班次在锁定时已经扣减了available_seats这里只需要增加sold_seats
FixedSchedule schedule = fixedScheduleRepository.getOne(
Wrappers.lambdaQuery(FixedSchedule.class)
.eq(FixedSchedule::getScheduleCode, dto.getScheduleCode())
FixedScheduleDO schedule = fixedScheduleRepository.getOne(
Wrappers.lambdaQuery(FixedScheduleDO.class)
.eq(FixedScheduleDO::getScheduleCode, dto.getScheduleCode())
);
if (schedule == null) {
@@ -140,8 +140,8 @@ public class RouteServiceImpl implements RouteService {
Integer beforeSold = schedule.getSoldSeats();
fixedScheduleRepository.update(
Wrappers.lambdaUpdate(FixedSchedule.class)
.eq(FixedSchedule::getScheduleCode, dto.getScheduleCode())
Wrappers.lambdaUpdate(FixedScheduleDO.class)
.eq(FixedScheduleDO::getScheduleCode, dto.getScheduleCode())
.setSql("sold_seats = sold_seats + " + dto.getQuantity())
);
@@ -157,9 +157,9 @@ public class RouteServiceImpl implements RouteService {
}
private Result<Boolean> releaseFixedScheduleInventory(InventoryOperationDTO dto) {
FixedSchedule schedule = fixedScheduleRepository.getOne(
Wrappers.lambdaQuery(FixedSchedule.class)
.eq(FixedSchedule::getScheduleCode, dto.getScheduleCode())
FixedScheduleDO schedule = fixedScheduleRepository.getOne(
Wrappers.lambdaQuery(FixedScheduleDO.class)
.eq(FixedScheduleDO::getScheduleCode, dto.getScheduleCode())
);
if (schedule == null) {
@@ -170,8 +170,8 @@ public class RouteServiceImpl implements RouteService {
// 释放库存
fixedScheduleRepository.update(
Wrappers.lambdaUpdate(FixedSchedule.class)
.eq(FixedSchedule::getScheduleCode, dto.getScheduleCode())
Wrappers.lambdaUpdate(FixedScheduleDO.class)
.eq(FixedScheduleDO::getScheduleCode, dto.getScheduleCode())
.setSql("available_seats = available_seats + " + dto.getQuantity())
);
@@ -189,9 +189,9 @@ public class RouteServiceImpl implements RouteService {
// ==================== 滚动班次库存操作 ====================
private Result<Boolean> checkRollingScheduleInventory(InventoryCheckDTO dto) {
RollingSchedule schedule = rollingScheduleRepository.getOne(
Wrappers.lambdaQuery(RollingSchedule.class)
.eq(RollingSchedule::getRollingScheduleCode, dto.getRollingScheduleCode())
RollingScheduleDO schedule = rollingScheduleRepository.getOne(
Wrappers.lambdaQuery(RollingScheduleDO.class)
.eq(RollingScheduleDO::getRollingScheduleCode, dto.getRollingScheduleCode())
);
if (schedule == null) {
@@ -206,9 +206,9 @@ public class RouteServiceImpl implements RouteService {
}
private Result<Boolean> lockRollingScheduleInventory(InventoryOperationDTO dto) {
RollingSchedule schedule = rollingScheduleRepository.getOne(
Wrappers.lambdaQuery(RollingSchedule.class)
.eq(RollingSchedule::getRollingScheduleCode, dto.getRollingScheduleCode())
RollingScheduleDO schedule = rollingScheduleRepository.getOne(
Wrappers.lambdaQuery(RollingScheduleDO.class)
.eq(RollingScheduleDO::getRollingScheduleCode, dto.getRollingScheduleCode())
);
if (schedule == null) {
@@ -219,12 +219,12 @@ public class RouteServiceImpl implements RouteService {
// 乐观锁扣减共享库存池
boolean success = rollingScheduleRepository.update(
Wrappers.lambdaUpdate(RollingSchedule.class)
.eq(RollingSchedule::getRollingScheduleCode, dto.getRollingScheduleCode())
.eq(RollingSchedule::getVersion, schedule.getVersion())
Wrappers.lambdaUpdate(RollingScheduleDO.class)
.eq(RollingScheduleDO::getRollingScheduleCode, dto.getRollingScheduleCode())
.eq(RollingScheduleDO::getVersion, schedule.getVersion())
.setSql("available_seats = available_seats - " + dto.getQuantity())
.set(RollingSchedule::getVersion, schedule.getVersion() + 1)
.ge(RollingSchedule::getAvailableSeats, dto.getQuantity())
.set(RollingScheduleDO::getVersion, schedule.getVersion() + 1)
.ge(RollingScheduleDO::getAvailableSeats, dto.getQuantity())
);
if (!success) {
@@ -243,9 +243,9 @@ public class RouteServiceImpl implements RouteService {
}
private Result<Boolean> deductRollingScheduleInventory(InventoryOperationDTO dto) {
RollingSchedule schedule = rollingScheduleRepository.getOne(
Wrappers.lambdaQuery(RollingSchedule.class)
.eq(RollingSchedule::getRollingScheduleCode, dto.getRollingScheduleCode())
RollingScheduleDO schedule = rollingScheduleRepository.getOne(
Wrappers.lambdaQuery(RollingScheduleDO.class)
.eq(RollingScheduleDO::getRollingScheduleCode, dto.getRollingScheduleCode())
);
if (schedule == null) {
@@ -255,8 +255,8 @@ public class RouteServiceImpl implements RouteService {
Integer beforeSold = schedule.getSoldSeats();
rollingScheduleRepository.update(
Wrappers.lambdaUpdate(RollingSchedule.class)
.eq(RollingSchedule::getRollingScheduleCode, dto.getRollingScheduleCode())
Wrappers.lambdaUpdate(RollingScheduleDO.class)
.eq(RollingScheduleDO::getRollingScheduleCode, dto.getRollingScheduleCode())
.setSql("sold_seats = sold_seats + " + dto.getQuantity())
);
@@ -272,9 +272,9 @@ public class RouteServiceImpl implements RouteService {
}
private Result<Boolean> releaseRollingScheduleInventory(InventoryOperationDTO dto) {
RollingSchedule schedule = rollingScheduleRepository.getOne(
Wrappers.lambdaQuery(RollingSchedule.class)
.eq(RollingSchedule::getRollingScheduleCode, dto.getRollingScheduleCode())
RollingScheduleDO schedule = rollingScheduleRepository.getOne(
Wrappers.lambdaQuery(RollingScheduleDO.class)
.eq(RollingScheduleDO::getRollingScheduleCode, dto.getRollingScheduleCode())
);
if (schedule == null) {
@@ -285,8 +285,8 @@ public class RouteServiceImpl implements RouteService {
// 释放库存
rollingScheduleRepository.update(
Wrappers.lambdaUpdate(RollingSchedule.class)
.eq(RollingSchedule::getRollingScheduleCode, dto.getRollingScheduleCode())
Wrappers.lambdaUpdate(RollingScheduleDO.class)
.eq(RollingScheduleDO::getRollingScheduleCode, dto.getRollingScheduleCode())
.setSql("available_seats = available_seats + " + dto.getQuantity())
);
@@ -307,18 +307,18 @@ public class RouteServiceImpl implements RouteService {
String rollingScheduleCode, String operationType,
Integer quantity, Integer beforeQty, Integer afterQty,
String orderNo, String remark) {
InventoryLog inventoryLog = new InventoryLog();
inventoryLog.setInventoryType(inventoryType);
inventoryLog.setScheduleCode(scheduleCode);
inventoryLog.setRollingScheduleCode(rollingScheduleCode);
inventoryLog.setOperationType(operationType);
inventoryLog.setQuantity(quantity);
inventoryLog.setBeforeQty(beforeQty);
inventoryLog.setAfterQty(afterQty);
inventoryLog.setOrderNo(orderNo);
inventoryLog.setRemark(remark);
inventoryLog.setCreateTime(LocalDateTime.now());
InventoryLogDO inventoryLogDO = new InventoryLogDO();
inventoryLogDO.setInventoryType(inventoryType);
inventoryLogDO.setScheduleCode(scheduleCode);
inventoryLogDO.setRollingScheduleCode(rollingScheduleCode);
inventoryLogDO.setOperationType(operationType);
inventoryLogDO.setQuantity(quantity);
inventoryLogDO.setBeforeQty(beforeQty);
inventoryLogDO.setAfterQty(afterQty);
inventoryLogDO.setOrderNo(orderNo);
inventoryLogDO.setRemark(remark);
inventoryLogDO.setCreateTime(LocalDateTime.now());
inventoryLogRepository.save(inventoryLog);
inventoryLogRepository.save(inventoryLogDO);
}
}