feat(order): 添加送水订单配送时间和完整下单流程

- 在GltTicketOrder实体中新增sendTime字段用于记录配送时间
- 移除送水订单查询接口的权限验证要求,开放查询功能
- 实现完整的下单流程:验证登录用户、扣减水票、写入核销记录、创建订单
- 新增createWithWriteOff方法处理事务性下单操作,确保数据一致性
- 添加数据库行锁机制防止并发扣减问题
- 优化水票相关接口描述,明确为可用水票总数
- 移除水票日志添加接口的权限验证和操作日志注解
This commit is contained in:
2026-02-06 00:15:31 +08:00
parent 48cd2e1f7b
commit 2c076e2b0f
3 changed files with 12 additions and 9 deletions

View File

@@ -87,11 +87,13 @@
<include refid="selectSql"></include> <include refid="selectSql"></include>
</select> </select>
<!-- 我的水票总数sum(total_qty) --> <!-- 我的可用水票总数sum(available_qty) -->
<select id="sumTotalQtyByUserId" resultType="java.lang.Integer"> <select id="sumAvailableQtyByUserId" resultType="java.lang.Integer">
SELECT IFNULL(SUM(total_qty), 0) SELECT IFNULL(SUM(available_qty), 0)
FROM glt_user_ticket FROM glt_user_ticket
WHERE user_id = #{userId} WHERE user_id = #{userId}
AND tenant_id = #{tenantId}
AND status = 0
AND deleted = 0 AND deleted = 0
</select> </select>

View File

@@ -40,11 +40,12 @@ public interface GltUserTicketService extends IService<GltUserTicket> {
GltUserTicket getByIdRel(Integer id); GltUserTicket getByIdRel(Integer id);
/** /**
* 统计指定用户水票总数sum(total_qty) * 统计指定用户可用水票总数sum(available_qty)
* *
* @param userId 用户ID * @param userId 用户ID
* @return 总数量无记录返回0 * @param tenantId 租户ID
* @return 可用总数无记录返回0
*/ */
Integer sumTotalQtyByUserId(Integer userId); Integer sumAvailableQtyByUserId(Integer userId, Integer tenantId);
} }

View File

@@ -45,9 +45,9 @@ public class GltUserTicketServiceImpl extends ServiceImpl<GltUserTicketMapper, G
} }
@Override @Override
public Integer sumTotalQtyByUserId(Integer userId) { public Integer sumAvailableQtyByUserId(Integer userId, Integer tenantId) {
Integer totalQty = baseMapper.sumTotalQtyByUserId(userId); Integer availableQty = baseMapper.sumAvailableQtyByUserId(userId, tenantId);
return totalQty == null ? 0 : totalQty; return availableQty == null ? 0 : availableQty;
} }
} }