diff --git a/src/main/java/com/gxwebsoft/glt/controller/GltTicketOrderController.java b/src/main/java/com/gxwebsoft/glt/controller/GltTicketOrderController.java index 4502142..5ca099d 100644 --- a/src/main/java/com/gxwebsoft/glt/controller/GltTicketOrderController.java +++ b/src/main/java/com/gxwebsoft/glt/controller/GltTicketOrderController.java @@ -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 diff --git a/src/main/java/com/gxwebsoft/glt/entity/GltTicketTemplate.java b/src/main/java/com/gxwebsoft/glt/entity/GltTicketTemplate.java index 4e4f941..95338a9 100644 --- a/src/main/java/com/gxwebsoft/glt/entity/GltTicketTemplate.java +++ b/src/main/java/com/gxwebsoft/glt/entity/GltTicketTemplate.java @@ -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; diff --git a/src/main/resources/application-glt3.yml b/src/main/resources/application-glt3.yml new file mode 100644 index 0000000..0e17f39 --- /dev/null +++ b/src/main/resources/application-glt3.yml @@ -0,0 +1,86 @@ +# 服务器配置 +server: + port: 9300 +# 数据源配置 +spring: + datasource: + url: jdbc:mysql://1Panel-mysql-XsWW:3306/modules?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai + username: modules + password: tYmmMGh5wpwXR3ae + driver-class-name: com.mysql.cj.jdbc.Driver + type: com.alibaba.druid.pool.DruidDataSource + druid: + remove-abandoned: true + + # redis + redis: + database: 0 + host: 1Panel-redis-GmNr + port: 6379 + password: redis_t74P8C + +# 日志配置 +logging: + file: + name: websoft-modules.log + level: + root: WARN + com.gxwebsoft: ERROR + com.baomidou.mybatisplus: ERROR + +socketio: + host: 0.0.0.0 #IP地址 + +# MQTT配置 +mqtt: + enabled: false # 启用MQTT服务 + host: tcp://132.232.214.96:1883 + username: swdev + password: Sw20250523 + client-id-prefix: hjm_car_ + topic: /SW_GPS/# + qos: 2 + connection-timeout: 10 + keep-alive-interval: 20 + auto-reconnect: true + +# 框架配置 +config: + # 文件服务器 + file-server: https://file-s209.shoplnk.cn + # 生产环境接口 + server-url: https://glt-server.websoft.top/api + # 业务模块接口 + api-url: https://glt-api.websoft.top/api + upload-path: /www/wwwroot/file.ws + + # 阿里云OSS云存储 + endpoint: https://oss-cn-shenzhen.aliyuncs.com + accessKeyId: LTAI4GKGZ9Z2Z8JZ77c3GNZP + accessKeySecret: BiDkpS7UXj72HWwDWaFZxiXjNFBNCM + bucketName: oss-gxwebsoft + bucketDomain: https://oss.wsdns.cn + aliyunDomain: https://oss-gxwebsoft.oss-cn-shenzhen.aliyuncs.com + +# 生产环境证书配置 +certificate: + load-mode: VOLUME # 生产环境从Docker挂载卷加载 + cert-root-path: /www/wwwroot/file.ws + +# 支付配置缓存 +payment: + cache: + # 支付配置缓存键前缀,生产环境使用 Payment:1* 格式 + key-prefix: "Payment:1" + # 缓存过期时间(小时) + expire-hours: 24 +# 阿里云翻译配置 +aliyun: + translate: + access-key-id: LTAI5tEsyhW4GCKbds1qsopg + access-key-secret: zltFlQrYVAoq2KMFDWgLa3GhkMNeyO + endpoint: mt.cn-hangzhou.aliyuncs.com +wechatpay: + transfer: + scene-id: 1005 + scene-report-infos-json: '[{"info_type":"岗位类型","info_content":"配送员"},{"info_type":"报酬说明","info_content":"12月份配送费"}]' diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index dcba0f0..5be3164 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -4,7 +4,7 @@ server: # 多环境配置 spring: profiles: - active: ysb2 + active: glt2 application: name: server