From fc0128242f812e476470dc9bada901d36ae09daf Mon Sep 17 00:00:00 2001
From: zepengdev <lzpsmith@outlook.com>
Date: Thu, 31 Jul 2025 16:37:52 +0800
Subject: [PATCH] feat: 1、增加店铺包装费用 2、修复营业时间显示问题和修改异常问题
---
oying-system/src/main/java/com/oying/modules/pc/store/domain/Store.java | 18 ++++++---
oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreFieldUpdateRequest.java | 3 +
oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreUpdateRequest.java | 6 +++
oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreCreateRequest.java | 4 ++
oying-system/src/main/java/com/oying/modules/pc/store/view/StoreMerchantView.java | 12 ++++++
oying-system/src/main/java/com/oying/modules/pc/store/view/CustomerStoreView.java | 30 +++++++++++++--
oying-system/src/main/resources/mapper/pc/store/StoreMapper.xml | 5 +-
oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreCustomerDetailDto.java | 3 +
oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreMerchantController.java | 6 +-
oying-system/src/main/java/com/oying/modules/pc/store/view/StoreSimpleView.java | 3 +
oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java | 12 ++++--
11 files changed, 83 insertions(+), 19 deletions(-)
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/domain/Store.java b/oying-system/src/main/java/com/oying/modules/pc/store/domain/Store.java
index 5ba2fd9..833fe2a 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/domain/Store.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/domain/Store.java
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
import com.oying.base.BaseEntity;
import com.oying.modules.pc.product.domain.Product;
import io.swagger.annotations.ApiModelProperty;
@@ -78,19 +79,15 @@
@ApiModelProperty(value = "店铺标签,逗号分隔")
private String tags;
- @ApiModelProperty(value = "配送费用")
- private BigDecimal deliveryFee;
-
- @ApiModelProperty(value = "起送金额")
- private BigDecimal deliveryMinimum;
-
@ApiModelProperty(value = "联系电话")
private String contactPhone;
@ApiModelProperty(value = "营业开始时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime openTime;
@ApiModelProperty(value = "营业结束时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime closeTime;
@ApiModelProperty(value = "营业状态")
@@ -139,6 +136,15 @@
@ApiModelProperty(value = "评分")
private Double score = 0d;
+ @ApiModelProperty(value = "包装费用")
+ private BigDecimal packagingFee;
+
+ @ApiModelProperty(value = "配送费用")
+ private BigDecimal deliveryFee;
+
+ @ApiModelProperty(value = "起送金额")
+ private BigDecimal deliveryMinimum;
+
@TableField(exist = false)
@ApiModelProperty(value = "配送距离")
private Integer deliveryDuration = 0;
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreCreateRequest.java b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreCreateRequest.java
index 011205f..05c2404 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreCreateRequest.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreCreateRequest.java
@@ -7,6 +7,7 @@
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.List;
@@ -67,6 +68,9 @@
@ApiModelProperty(value = "是否支持自提")
private Integer selfPickup;
+ @ApiModelProperty(value = "包装费用")
+ private BigDecimal packagingFee;
+
@ApiModelProperty(value = "店铺资质", example = "[]")
private List<StoreQualificationCreateRequest> qualificationList = new ArrayList<>();
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreCustomerDetailDto.java b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreCustomerDetailDto.java
index 7dc881f..c693101 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreCustomerDetailDto.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreCustomerDetailDto.java
@@ -1,5 +1,6 @@
package com.oying.modules.pc.store.domain.dto;
+import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -39,9 +40,11 @@
private String contactPhone;
@ApiModelProperty(value = "营业开始时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime openTime;
@ApiModelProperty(value = "营业结束时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime closeTime;
private String businessHours;
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreFieldUpdateRequest.java b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreFieldUpdateRequest.java
index 0bc09b2..faba857 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreFieldUpdateRequest.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreFieldUpdateRequest.java
@@ -1,5 +1,6 @@
package com.oying.modules.pc.store.domain.dto;
+import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -73,9 +74,11 @@
public interface UpdateStoreBusinessHoursGroup{}
@NotNull(groups = UpdateStoreBusinessHoursGroup.class)
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime openTime;
@NotNull(groups = UpdateStoreBusinessHoursGroup.class)
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime closeTime;
public interface UpdateStoreAddressGroup{}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreUpdateRequest.java b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreUpdateRequest.java
index 9ea552d..bf35cd7 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreUpdateRequest.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreUpdateRequest.java
@@ -1,5 +1,6 @@
package com.oying.modules.pc.store.domain.dto;
+import com.fasterxml.jackson.annotation.JsonFormat;
import com.oying.modules.pc.product.domain.Product;
import com.oying.modules.pc.store.domain.StoreQualification;
import io.swagger.annotations.ApiModelProperty;
@@ -61,13 +62,18 @@
@ApiModelProperty(value = "起送金额")
private BigDecimal deliveryMinimum;
+ @ApiModelProperty(value = "包装费用")
+ private BigDecimal packagingFee;
+
@ApiModelProperty(value = "联系电话")
private String contactPhone;
@ApiModelProperty(value = "营业开始时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime openTime;
@ApiModelProperty(value = "营业结束时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime closeTime;
@ApiModelProperty(value = "详细地址")
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java
index bfcf1c1..8e0c22d 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java
@@ -1,5 +1,7 @@
package com.oying.modules.pc.store.rest;
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.util.ObjUtil;
import com.oying.modules.pc.product.domain.Product;
import com.oying.modules.pc.product.domain.dto.ProductQueryCriteria;
@@ -18,7 +20,6 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
-import org.springframework.beans.BeanUtils;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@@ -59,7 +60,7 @@
public ResponseEntity<?> getStoreById(@PathVariable("storeId") Long storeId) {
Store store = storeService.getById(storeId);
CustomerStoreView view = new CustomerStoreView();
- BeanUtils.copyProperties(store, view);
+ BeanUtil.copyProperties(store, view, CopyOptions.create().setIgnoreNullValue(true));
view.setBusinessHours(BusinessHoursUtils.formatBusinessHours(store.getOpenTime(), store.getCloseTime()));
return ResponseEntity.ok(R.success(view));
}
@@ -68,10 +69,13 @@
@ApiOperation("查询店铺")
public ResponseEntity<?> getStoreDetailsById(@PathVariable("storeId") Long storeId) {
Store store = storeService.getById(storeId);
+ CustomerStoreView view = new CustomerStoreView();
+ BeanUtil.copyProperties(store, view, CopyOptions.create().setIgnoreNullValue(true));
+ view.setBusinessHours(BusinessHoursUtils.formatBusinessHours(store.getOpenTime(), store.getCloseTime()));
if (ObjUtil.isNotEmpty(store)) {
- store.setQualifications(storeQualificationService.getByStoreId(storeId));
+ view.setQualifications(storeQualificationService.getByStoreId(storeId));
}
- return ResponseEntity.ok(R.success(store));
+ return ResponseEntity.ok(R.success(view));
}
private List<Product> getProductsByStoreId(Long storeId) {
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreMerchantController.java b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreMerchantController.java
index 4f5f2f0..306160f 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreMerchantController.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreMerchantController.java
@@ -73,9 +73,9 @@
//@PreAuthorize("@el.check('merchant:store:getById')")
public ResponseEntity<?> getStoreById(@PathVariable Long storeId) {
Store store = storeService.getById(storeId);
- StoreMerchantView view = new StoreMerchantView();
- BeanUtils.copyProperties(store, view);
- return ResponseEntity.ok(R.success(view));
+ /*StoreMerchantView view = new StoreMerchantView();
+ BeanUtils.copyProperties(store, view);*/
+ return ResponseEntity.ok(R.success(store));
}
@GetMapping(value = "/{storeId}/details")
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/view/CustomerStoreView.java b/oying-system/src/main/java/com/oying/modules/pc/store/view/CustomerStoreView.java
index b43552e..d3f2474 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/view/CustomerStoreView.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/view/CustomerStoreView.java
@@ -1,12 +1,13 @@
package com.oying.modules.pc.store.view;
-import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.oying.modules.pc.store.domain.StoreQualification;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
-import lombok.Getter;
-import lombok.Setter;
+import java.math.BigDecimal;
import java.time.LocalTime;
+import java.util.List;
@Data
public class CustomerStoreView {
@@ -41,13 +42,22 @@
@ApiModelProperty(value = "联系电话")
private String contactPhone;
+ @ApiModelProperty(value = "营业时间")
+ private String businessHours;
+
@ApiModelProperty(value = "营业开始时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime openTime;
@ApiModelProperty(value = "营业结束时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime closeTime;
- private String businessHours;
+ @ApiModelProperty(value = "营业状态")
+ private Integer businessStatus;
+
+ @ApiModelProperty(value = "市级代码")
+ private String cityCode;
@ApiModelProperty(value = "详细地址")
private String address;
@@ -70,6 +80,15 @@
@ApiModelProperty(value = "评分")
private Double score = 0d;
+ @ApiModelProperty(value = "包装费用")
+ private BigDecimal packagingFee;
+
+ @ApiModelProperty(value = "配送费用")
+ private BigDecimal deliveryFee;
+
+ @ApiModelProperty(value = "起送金额")
+ private BigDecimal deliveryMinimum;
+
@ApiModelProperty(value = "配送距离")
private Integer deliveryDuration = 0;
@@ -82,4 +101,7 @@
@ApiModelProperty(value = "月销售量")
private Integer monthlyUnitsSold = 0;
+ @ApiModelProperty(value = "资质")
+ private List<StoreQualification> qualifications;
+
}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreMerchantView.java b/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreMerchantView.java
index cb84e75..1c8b870 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreMerchantView.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreMerchantView.java
@@ -1,9 +1,13 @@
package com.oying.modules.pc.store.view;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.oying.modules.pc.store.domain.StoreQualification;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.math.BigDecimal;
import java.time.LocalTime;
+import java.util.List;
@Data
public class StoreMerchantView {
@@ -35,13 +39,18 @@
@ApiModelProperty(value = "店铺描述")
private String description;
+ @ApiModelProperty(value = "包装费用")
+ private BigDecimal packagingFee;
+
@ApiModelProperty(value = "联系电话")
private String contactPhone;
@ApiModelProperty(value = "营业开始时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime openTime;
@ApiModelProperty(value = "营业结束时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime closeTime;
@ApiModelProperty(value = "详细地址")
@@ -65,4 +74,7 @@
@ApiModelProperty(value = "版本号")
private Long version;
+ @ApiModelProperty(value = "资质")
+ private List<StoreQualification> qualifications;
+
}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreSimpleView.java b/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreSimpleView.java
index 8f8c764..6652206 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreSimpleView.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreSimpleView.java
@@ -1,5 +1,6 @@
package com.oying.modules.pc.store.view;
+import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -52,9 +53,11 @@
private String contactPhone;
@ApiModelProperty(value = "营业开始时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime openTime;
@ApiModelProperty(value = "营业结束时间")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
private LocalTime closeTime;
@ApiModelProperty(value = "市级代码")
diff --git a/oying-system/src/main/resources/mapper/pc/store/StoreMapper.xml b/oying-system/src/main/resources/mapper/pc/store/StoreMapper.xml
index a70ccfa..8182980 100644
--- a/oying-system/src/main/resources/mapper/pc/store/StoreMapper.xml
+++ b/oying-system/src/main/resources/mapper/pc/store/StoreMapper.xml
@@ -23,6 +23,7 @@
<result property="tags" column="tags"/>
<result property="deliveryFee" column="delivery_fee"/>
<result property="deliveryMinimum" column="delivery_minimum"/>
+ <result property="packagingFee" column="packaging_fee"/>
<result property="contactPhone" column="contact_phone"/>
<result property="openTime" column="open_time"/>
<result property="closeTime" column="close_time"/>
@@ -43,14 +44,14 @@
<sql id="store_column_list">
store_id, merchant_id, platform_category_id, store_type, store_code, store_name, business_scope, status, business_status, audit_status, logo_image_id, logo_image_url,
- cover_image_id, cover_image_url, description, tags, delivery_fee, delivery_minimum, contact_phone, open_time, close_time,
+ cover_image_id, cover_image_url, description, tags, delivery_fee, delivery_minimum, packaging_fee, contact_phone, open_time, close_time,
address, longitude, latitude, geo_hash, geo_point, coordinate_system, radius, returns, self_pickup, create_by, create_time, update_by, update_time, version
</sql>
<sql id="selectStoreVo">
select
store_id, merchant_id, platform_category_id, store_type, store_code, store_name, business_scope, status, business_status, audit_status, logo_image_id, logo_image_url,
- cover_image_id, cover_image_url, description, tags, delivery_fee, delivery_minimum, contact_phone, open_time, close_time,
+ cover_image_id, cover_image_url, description, tags, delivery_fee, delivery_minimum, packaging_fee, contact_phone, open_time, close_time,
address, longitude, latitude, geo_hash, geo_point, coordinate_system, radius, returns, self_pickup, create_by, create_time, update_by, update_time, version from pc_store
</sql>
--
Gitblit v1.9.3