feat(order): 更新订单修改功能并添加新环境配置
- 修改 application.yml 默认激活环境从 ysb2 到 glt2 - 新增 application-glt3.yml 环境配置文件,包含服务器、数据源、Redis等完整配置 - 在订单更新接口中添加地址同步逻辑,支持根据 addressId 更新订单地址快照 - 添加订单更新时的参数验证和权限检查机制 - 在订单模板实体中新增步长字段用于业务配置 - 优化订单更新流程中的租户和用户权限验证逻辑
This commit is contained in:
@@ -241,8 +241,33 @@ public class GltTicketOrderController extends BaseController {
|
||||
@Operation(summary = "修改送水订单")
|
||||
@PutMapping()
|
||||
public ApiResult<?> update(@RequestBody GltTicketOrder gltTicketOrder) {
|
||||
if (gltTicketOrder == null || gltTicketOrder.getId() == null) {
|
||||
return fail("订单ID不能为空");
|
||||
}
|
||||
Integer tenantId = getTenantId();
|
||||
|
||||
// 根据 addressId 同步更新订单地址快照
|
||||
if (gltTicketOrder.getAddressId() != null) {
|
||||
ShopUserAddress userAddress = shopUserAddressService.getByIdRel(gltTicketOrder.getAddressId());
|
||||
if (userAddress == null) {
|
||||
return fail("收货地址不存在");
|
||||
}
|
||||
if (tenantId != null && userAddress.getTenantId() != null && !tenantId.equals(userAddress.getTenantId())) {
|
||||
return fail("收货地址不存在或无权限");
|
||||
}
|
||||
GltTicketOrder oldOrder = gltTicketOrderService.getById(gltTicketOrder.getId());
|
||||
if (oldOrder == null) {
|
||||
return fail("订单不存在");
|
||||
}
|
||||
Integer targetUserId = gltTicketOrder.getUserId() != null ? gltTicketOrder.getUserId() : oldOrder.getUserId();
|
||||
if (targetUserId != null && userAddress.getUserId() != null && !targetUserId.equals(userAddress.getUserId())) {
|
||||
return fail("收货地址不存在或无权限");
|
||||
}
|
||||
gltTicketOrder.setAddressId(userAddress.getId());
|
||||
gltTicketOrder.setAddress(buildAddressSnapshot(userAddress));
|
||||
}
|
||||
|
||||
if (gltTicketOrderService.updateById(gltTicketOrder)) {
|
||||
Integer tenantId = getTenantId();
|
||||
// 后台指派配送员(直接改 riderId)时,同步商城订单为“已发货”(deliveryStatus=20)
|
||||
if (gltTicketOrder != null
|
||||
&& gltTicketOrder.getId() != null
|
||||
|
||||
@@ -58,6 +58,9 @@ public class GltTicketTemplate implements Serializable {
|
||||
@Schema(description = "首期释放时机:0=支付成功当刻;1=下个月同日")
|
||||
private Integer firstReleaseMode;
|
||||
|
||||
@Schema(description = "步长")
|
||||
private Integer step;
|
||||
|
||||
@Schema(description = "用户ID")
|
||||
private Integer userId;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user