diff --git a/docs/dev-ops/nginx/html/css/index.css b/docs/dev-ops/nginx/html/css/index.css index 7ec93be..bcc58fe 100644 --- a/docs/dev-ops/nginx/html/css/index.css +++ b/docs/dev-ops/nginx/html/css/index.css @@ -1,20 +1,51 @@ /* ========== 全局 ========== */ *{ - margin:0;padding:0;box-sizing:border-box; + margin:0; + padding:0; + box-sizing:border-box; font-family:'PingFang SC','Helvetica Neue',Arial,sans-serif; } -body{ - background:#f5f5f5; - color:#333; - max-width:500px; - margin:0 auto; - position:relative; - padding-bottom:30px; + +/* 最外层浏览器灰底(最深) */ +html{ + background:#e5e5e5; } -/* ========== 轮播图 ========== */ +/* ========== 版心包裹层(中灰) ========== */ +/* body 中请包一层
… */ +.app-wrapper{ + max-width:500px; + margin:0 auto; + background:#f3f4f6; /* ⭐ 中灰,与 html 有层次 */ + padding:12px 0 60px; /* 顶 12px,底 60px=底栏高 */ + min-height:100vh; + border-radius:12px; + box-shadow:0 0 20px rgba(0,0,0,.10); + position:relative; + overflow-x:hidden; +} + +/* body 仅语义,无视觉 */ +body{ color:#333; } + +/* —— 卡片公共阴影 —— */ +.card{ + background:#fff; + border-radius:12px; + box-shadow:0 2px 8px rgba(0,0,0,.05); + margin:0 16px 12px; /* 左右 16px 灰缝,底 12px 间隔 */ +} + +/* ========== 轮播图卡片 ========== */ .swiper-container{ - width:100%;height:375px;position:relative;overflow:hidden; + composes: card; /* 写法若不支持 composes 就把下面三行展开 */ + width:calc(100% - 32px); + height:375px; + margin:0 16px 12px; + border-radius:12px; + box-shadow:0 2px 8px rgba(0,0,0,.05); + position:relative; + overflow:hidden; } .swiper-wrapper{display:flex;transition:transform .3s;} .swiper-slide{flex:0 0 100%;height:375px;} @@ -22,16 +53,24 @@ body{ .swiper-pagination{ position:absolute;bottom:10px;left:50%; - transform:translateX(-50%);display:flex;gap:6px; + transform:translateX(-50%); + display:flex;gap:6px; } .swiper-dot{ width:8px;height:8px;border-radius:50%; - background:rgba(255,255,255,.5);transition:all .3s; + background:rgba(255,255,255,.5); + transition:all .3s; } .swiper-dot.active{background:#ff5000;width:16px;border-radius:4px;} -/* ========== 商品信息 ========== */ -.product-info{background:#fff;padding:15px;margin-bottom:10px;} +/* ========== 商品信息卡片 ========== */ +.product-info{ + background:#fff; + padding:16px; + margin:0 16px 12px; + border-radius:12px; + box-shadow:0 2px 8px rgba(0,0,0,.05); +} .price-row{display:flex;align-items:center;margin-bottom:12px;} .current-price{color:#ff5000;font-size:28px;font-weight:bold;} @@ -47,13 +86,11 @@ body{ .promo-row{display:flex;align-items:center;gap:6px;margin-top:6px;} .promo-tag{ flex-shrink:0; - display:inline-block; background:linear-gradient(90deg,#ff2c2c,#ff6b22); color:#fff;font-size:12px;padding:2px 6px;border-radius:2px; } .promo-box{ - display:inline-block;font-size:13px;padding:2px 6px; - border-radius:4px;font-weight:600;line-height:1.2;white-space:nowrap; + font-size:13px;padding:2px 6px;border-radius:4px;font-weight:600;white-space:nowrap; } .promo-box.drop, .promo-box.sold{ @@ -61,10 +98,19 @@ body{ color:#fff; } -/* ========== 拼单列表 ========== */ -.group-buying{background:#fff;padding:15px;margin-bottom:10px;position:relative;overflow:hidden;} +/* ========== 拼单区域卡片 ========== */ +.group-buying{ + background:#fff; + padding:16px; + margin:0 16px 12px; + border-radius:12px; + box-shadow:0 2px 8px rgba(0,0,0,.05); + position:relative; + overflow:hidden; +} .section-title{ - font-size:16px;font-weight:bold;margin-bottom:12px;position:relative;padding-left:10px; + font-size:16px;font-weight:bold;margin-bottom:12px; + position:relative;padding-left:10px; } .section-title::before{ content:"";position:absolute;left:0;top:50%;transform:translateY(-50%); @@ -102,9 +148,15 @@ body{ /* ========== 底部操作栏 ========== */ .action-bar{ - position:fixed;inset-inline:0;bottom:0;max-width:500px;margin:0 auto; - background:#fff;display:flex;height:60px; - box-shadow:0 -2px 10px rgba(0,0,0,.1);z-index:100; + position:fixed; + left:50%;bottom:0;transform:translateX(-50%); + width:100%;max-width:500px; + background:#fff; + display:flex;height:60px; + box-shadow:0 -2px 10px rgba(0,0,0,.08); + border-top:1px solid #e5e5e5; + border-radius:0 0 12px 12px; + z-index:100; } .action-btn{ flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center; @@ -121,13 +173,14 @@ body{ .btn-single{background:#ff9500;color:#fff;} .btn-group {background:#ff5000;color:#fff;} -.btn-price{font-size:18px;font-weight:700;line-height:1;} -.btn-label{font-size:12px;line-height:1;} +.btn-price{font-size:18px;font-weight:700;} +.btn-label{font-size:12px;} /* ========== 支付弹窗 ========== */ .payment-overlay{ position:fixed;inset:0;z-index:9999; - background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center; + background:rgba(0,0,0,.55); + display:flex;align-items:center;justify-content:center; backdrop-filter:blur(2px); } .payment-modal{ diff --git a/docs/dev-ops/nginx/html/css/order-list.css b/docs/dev-ops/nginx/html/css/order-list.css index 24ba58f..8cd604b 100644 --- a/docs/dev-ops/nginx/html/css/order-list.css +++ b/docs/dev-ops/nginx/html/css/order-list.css @@ -3,14 +3,24 @@ padding: 0; box-sizing: border-box; } - -body { - background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; - padding-bottom: 20px; - min-height: 100vh; +/* 让整个浏览器窗口仍是淡灰渐变 */ +html{ + background: linear-gradient(135deg,#f5f7fa 0%,#c3cfe2 100%); } +/* 把主体内容包在白底里 + 居中 + 投影 */ +body{ + max-width:500px; + margin:0 auto; + background:#fff; /* 白色版心 */ + min-height:100vh; /* 满高,sticky/fixed 才能正确定位 */ + box-shadow:0 0 20px rgba(0,0,0,.08); + position:relative; /* 保留你原来的 relative 语义 */ + padding-bottom:20px; /* 其余样式保持 */ + font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif; +} + + /* 头部样式 */ .header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); @@ -46,12 +56,15 @@ body { border: 1px solid rgba(255,255,255,0.3); } +/* 仅修改 hover 这段 */ .back-btn:hover { background: rgba(255,255,255,0.3); - transform: translateY(-50%) translateX(-2px); + /* transform: translateY(-50%) translateX(-2px); ❌ 这一行会导致上下抖动 */ + transform: translateX(-2px); /* ✅ 只做水平小位移 */ box-shadow: 0 4px 12px rgba(0,0,0,0.2); } + .header-content h1 { font-size: 20px; color: white; diff --git a/docs/dev-ops/nginx/html/images/goods_info1.png b/docs/dev-ops/nginx/html/images/goods_info1.png index 4e80f6a..0e2ee04 100644 Binary files a/docs/dev-ops/nginx/html/images/goods_info1.png and b/docs/dev-ops/nginx/html/images/goods_info1.png differ diff --git a/docs/dev-ops/nginx/html/index.html b/docs/dev-ops/nginx/html/index.html index b4c61b7..cfd3fbd 100644 --- a/docs/dev-ops/nginx/html/index.html +++ b/docs/dev-ops/nginx/html/index.html @@ -11,6 +11,7 @@ +
@@ -97,7 +98,7 @@
- +
diff --git a/docs/dev-ops/nginx/html/order-list.html b/docs/dev-ops/nginx/html/order-list.html index 529465e..e4de0aa 100644 --- a/docs/dev-ops/nginx/html/order-list.html +++ b/docs/dev-ops/nginx/html/order-list.html @@ -3,7 +3,7 @@ - 小傅哥 - 拼团项目 - 订单明细 + Smile - 拼团项目 - 订单明细 diff --git a/group-buying-sys-app/src/main/resources/mybatis/mapper/group_buy_order_list_mapper.xml b/group-buying-sys-app/src/main/resources/mybatis/mapper/group_buy_order_list_mapper.xml index e63e745..a0b8171 100644 --- a/group-buying-sys-app/src/main/resources/mybatis/mapper/group_buy_order_list_mapper.xml +++ b/group-buying-sys-app/src/main/resources/mybatis/mapper/group_buy_order_list_mapper.xml @@ -10,6 +10,7 @@ + @@ -27,12 +28,12 @@ insert into group_buy_order_list( user_id, team_id, order_id, activity_id, start_time, - end_time, goods_id, source, channel, original_price, pay_price, + end_time, valid_end_time, goods_id, source, channel, original_price, pay_price, deduction_price, status, out_trade_no, biz_id, create_time, update_time ) values( #{userId}, #{teamId}, #{orderId}, #{activityId}, #{startTime}, - #{endTime}, #{goodsId}, #{source}, #{channel}, #{originalPrice},#{payPrice}, + #{endTime}, #{validEndTime}, #{goodsId}, #{source}, #{channel}, #{originalPrice},#{payPrice}, #{deductionPrice}, #{status}, #{outTradeNo}, #{bizId}, now(), now() ) @@ -86,28 +87,20 @@ select out_trade_no from group_buy_order_list where team_id = #{teamId} and status = 1 - + select user_id,team_id,out_trade_no from group_buy_order_list - where activity_id = #{activityId} and user_id = #{userId} and status in (0, 1) and end_time > now() - order by id desc - limit #{count} + where activity_id = #{activityId} + and user_id = #{userId} + and team_id in ( select team_id from group_buy_order where activity_id = #{activityId} and status = 0) + and status in (0, 1) + and valid_end_time > now() + order by rand() + limit #{count} -