fix some shits

pay.vue 还用 store.value.min_price,应改 minPrice。
后端下单最好也校验起送价,别只靠前端。
配送规则保存前过滤/校验空行、maxKm <= minKm。
This commit is contained in:
Kroytz committed 2026-07-03 19:19:17 +08:00
1 parent a0c13b91da
commit 4a1aab453d
4 files changed
+25 -4

No files matched your search

@@ -37,6 +37,7 @@ public interface ErrorCodeConstants {
ErrorCode STORE_ORDER_DESK_NOT = new ErrorCode(1008007023, "当前桌号不存在");
ErrorCode STORE_ORDER_OUT_OF_DELIVERY_RANGE = new ErrorCode(1008007024, "当前收货地址不在配送范围内");
ErrorCode STORE_ORDER_MIN_PRICE_NOT_MET = new ErrorCode(1008007025, "未达到外卖起送价");
@@ -229,6 +229,12 @@ public class AppStoreOrderServiceImpl extends ServiceImpl<StoreOrderMapper,Store
}
}
if (OrderLogEnum.ORDER_TAKE_OUT.getValue().equals(param.getOrderType())
&& storeShopDO.getMinPrice() != null
&& sumPrice.compareTo(storeShopDO.getMinPrice()) < 0) {
throw exception(STORE_ORDER_MIN_PRICE_NOT_MET);
}
//计算优惠券价格
if(StrUtil.isNotBlank(param.getCouponId())){
CouponUserDO couponUserDO = appCouponUserService.getById(param.getCouponId());
@@ -510,9 +510,9 @@ const submit = () => {
}
// 起送价钱
if (store.value.min_price > total.value) {
if (store.value.minPrice > total.value) {
uToast.value.show({
message: '本店外卖起送价为¥' + store.value.min_price,
message: '本店外卖起送价为¥' + store.value.minPrice,
type: 'error'
});
return
@@ -113,7 +113,7 @@ const dialogVisible = ref(false) // 弹窗的是否展示
const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
const formType = ref('') // 表单的类型:create - 新增;update - 修改
const formData = ref({
const formData = ref<any>({
id: undefined,
name: undefined,
mobile: undefined,
@@ -193,7 +193,21 @@ const submitForm = async () => {
// 提交请求
formLoading.value = true
try {
const data = formData.value as unknown as ShopApi.ShopVO
const isBlank = (value) => value === undefined || value === null || value === ''
const deliveryRules = (formData.value.deliveryRules || []).filter((rule) => {
return !isBlank(rule.minKm) || !isBlank(rule.maxKm) || !isBlank(rule.price)
})
for (const rule of deliveryRules) {
if (isBlank(rule.minKm) || isBlank(rule.maxKm) || isBlank(rule.price)) {
message.error('配送规则请填写完整')
return
}
if (Number(rule.maxKm) <= Number(rule.minKm)) {
message.error('配送规则最大km必须大于最小km')
return
}
}
const data = { ...formData.value, deliveryRules } as ShopApi.ShopVO
if (formType.value === 'create') {
await ShopApi.createShop(data)
message.success(t('common.createSuccess'))