diff --git a/food-admin/pom.xml b/food-admin/pom.xml
index 46e3473..43651a9 100644
--- a/food-admin/pom.xml
+++ b/food-admin/pom.xml
@@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- yzy
+ prepare_food
com.zbkj
0.0.1-SNAPSHOT
diff --git a/food-admin/src/main/java/com/zbkj/admin/task/bargain/BargainStopChangeTask.java b/food-admin/src/main/java/com/zbkj/admin/task/bargain/BargainStopChangeTask.java
index e04072f..21c1851 100644
--- a/food-admin/src/main/java/com/zbkj/admin/task/bargain/BargainStopChangeTask.java
+++ b/food-admin/src/main/java/com/zbkj/admin/task/bargain/BargainStopChangeTask.java
@@ -1,40 +1,40 @@
-package com.zbkj.admin.task.bargain;
-
-import com.zbkj.common.utils.DateUtil;
-import com.zbkj.service.service.StoreBargainService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-/**
- * 砍价活动结束状态变化定时任务
-
- */
-@Component
-@Configuration //读取配置
-@EnableScheduling // 2.开启定时任务
-public class BargainStopChangeTask {
-
- //日志
- private static final Logger logger = LoggerFactory.getLogger(BargainStopChangeTask.class);
-
- @Autowired
- private StoreBargainService storeBargainService;
-
- @Scheduled(cron = "0 0 0 */1 * ?") //5秒钟同步一次数据
- public void init(){
- logger.info("---BargainStopChangeTask------bargain stop status change task: Execution Time - {}", DateUtil.nowDateTime());
- try {
- storeBargainService.stopAfterChange();
- }catch (Exception e){
- e.printStackTrace();
- logger.error("BargainStopChangeTask" + " | msg : " + e.getMessage());
- }
-
- }
-
-}
+//package com.zbkj.admin.task.bargain;
+//
+//import com.zbkj.common.utils.DateUtil;
+//import com.zbkj.service.service.StoreBargainService;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.scheduling.annotation.EnableScheduling;
+//import org.springframework.scheduling.annotation.Scheduled;
+//import org.springframework.stereotype.Component;
+//
+///**
+// * 砍价活动结束状态变化定时任务
+//
+// */
+//@Component
+//@Configuration //读取配置
+//@EnableScheduling // 2.开启定时任务
+//public class BargainStopChangeTask {
+//
+// //日志
+// private static final Logger logger = LoggerFactory.getLogger(BargainStopChangeTask.class);
+//
+// @Autowired
+// private StoreBargainService storeBargainService;
+//
+// @Scheduled(cron = "0 0 0 */1 * ?") //5秒钟同步一次数据
+// public void init(){
+// logger.info("---BargainStopChangeTask------bargain stop status change task: Execution Time - {}", DateUtil.nowDateTime());
+// try {
+// storeBargainService.stopAfterChange();
+// }catch (Exception e){
+// e.printStackTrace();
+// logger.error("BargainStopChangeTask" + " | msg : " + e.getMessage());
+// }
+//
+// }
+//
+//}
diff --git a/food-admin/src/main/java/com/zbkj/admin/task/brokerage/BrokerageFrozenTask.java b/food-admin/src/main/java/com/zbkj/admin/task/brokerage/BrokerageFrozenTask.java
index 9266e9b..d120a33 100644
--- a/food-admin/src/main/java/com/zbkj/admin/task/brokerage/BrokerageFrozenTask.java
+++ b/food-admin/src/main/java/com/zbkj/admin/task/brokerage/BrokerageFrozenTask.java
@@ -1,42 +1,42 @@
-package com.zbkj.admin.task.brokerage;
-
-
-import com.zbkj.admin.task.order.OrderReceiptTask;
-import com.zbkj.common.utils.DateUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-/**
- * 佣金冻结期解冻task
-
- */
-@Component
-@Configuration //读取配置
-@EnableScheduling // 2.开启定时任务
-public class BrokerageFrozenTask {
-
- //日志
- private static final Logger logger = LoggerFactory.getLogger(OrderReceiptTask.class);
+//package com.zbkj.admin.task.brokerage;
//
-// @Autowired
-// private UserBrokerageRecordService userBrokerageRecordService;
//
-// // @Scheduled(fixedDelay = 1000 * 60 * 60L) //1小时同步一次数据
-// @Scheduled(fixedDelay = 1000 * 60L) //1分钟同步一次数据
-// public void init(){
-// logger.info("---BrokerageFrozenTask task------produce Data with fixed rate task: Execution Time - {}", DateUtil.nowDateTime());
-// try {
-// userBrokerageRecordService.brokerageThaw();
+//import com.zbkj.admin.task.order.OrderReceiptTask;
+//import com.zbkj.common.utils.DateUtil;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.scheduling.annotation.EnableScheduling;
+//import org.springframework.scheduling.annotation.Scheduled;
+//import org.springframework.stereotype.Component;
//
-// } catch (Exception e) {
-// e.printStackTrace();
-// logger.error("BrokerageFrozenTask.task" + " | msg : " + e.getMessage());
-// }
+///**
+// * 佣金冻结期解冻task
//
-// }
-}
+// */
+//@Component
+//@Configuration //读取配置
+//@EnableScheduling // 2.开启定时任务
+//public class BrokerageFrozenTask {
+//
+// //日志
+// private static final Logger logger = LoggerFactory.getLogger(OrderReceiptTask.class);
+////
+//// @Autowired
+//// private UserBrokerageRecordService userBrokerageRecordService;
+////
+//// // @Scheduled(fixedDelay = 1000 * 60 * 60L) //1小时同步一次数据
+//// @Scheduled(fixedDelay = 1000 * 60L) //1分钟同步一次数据
+//// public void init(){
+//// logger.info("---BrokerageFrozenTask task------produce Data with fixed rate task: Execution Time - {}", DateUtil.nowDateTime());
+//// try {
+//// userBrokerageRecordService.brokerageThaw();
+////
+//// } catch (Exception e) {
+//// e.printStackTrace();
+//// logger.error("BrokerageFrozenTask.task" + " | msg : " + e.getMessage());
+//// }
+////
+//// }
+//}
diff --git a/food-admin/src/main/java/com/zbkj/admin/task/integral/IntegralFrozenTask.java b/food-admin/src/main/java/com/zbkj/admin/task/integral/IntegralFrozenTask.java
index f21662f..09b0a39 100644
--- a/food-admin/src/main/java/com/zbkj/admin/task/integral/IntegralFrozenTask.java
+++ b/food-admin/src/main/java/com/zbkj/admin/task/integral/IntegralFrozenTask.java
@@ -1,40 +1,40 @@
-package com.zbkj.admin.task.integral;
-
-
-import com.zbkj.common.utils.DateUtil;
-import com.zbkj.service.service.UserIntegralRecordService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-/**
- * 积分冻结期解冻task
-
- */
-@Component
-@Configuration //读取配置
-@EnableScheduling // 2.开启定时任务
-public class IntegralFrozenTask {
-
- //日志
- private static final Logger logger = LoggerFactory.getLogger(IntegralFrozenTask.class);
-
- @Autowired
- private UserIntegralRecordService userIntegralRecordService;
-
- @Scheduled(fixedDelay = 1000 * 60L) //1分钟同步一次数据
- public void init() {
- logger.info("---IntegralFrozenTask task------produce Data with fixed rate task: Execution Time - {}", DateUtil.nowDateTime());
- try {
- userIntegralRecordService.integralThaw();
- } catch (Exception e) {
- e.printStackTrace();
- logger.error("IntegralFrozenTask.task" + " | msg : " + e.getMessage());
- }
-
- }
-}
+//package com.zbkj.admin.task.integral;
+//
+//
+//import com.zbkj.common.utils.DateUtil;
+//import com.zbkj.service.service.UserIntegralRecordService;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.scheduling.annotation.EnableScheduling;
+//import org.springframework.scheduling.annotation.Scheduled;
+//import org.springframework.stereotype.Component;
+//
+///**
+// * 积分冻结期解冻task
+//
+// */
+//@Component
+//@Configuration //读取配置
+//@EnableScheduling // 2.开启定时任务
+//public class IntegralFrozenTask {
+//
+// //日志
+// private static final Logger logger = LoggerFactory.getLogger(IntegralFrozenTask.class);
+//
+// @Autowired
+// private UserIntegralRecordService userIntegralRecordService;
+//
+// @Scheduled(fixedDelay = 1000 * 60L) //1分钟同步一次数据
+// public void init() {
+// logger.info("---IntegralFrozenTask task------produce Data with fixed rate task: Execution Time - {}", DateUtil.nowDateTime());
+// try {
+// userIntegralRecordService.integralThaw();
+// } catch (Exception e) {
+// e.printStackTrace();
+// logger.error("IntegralFrozenTask.task" + " | msg : " + e.getMessage());
+// }
+//
+// }
+//}
diff --git a/food-admin/src/main/java/com/zbkj/admin/task/pink/PinkStatusChangeTask.java b/food-admin/src/main/java/com/zbkj/admin/task/pink/PinkStatusChangeTask.java
index 54223a7..fbbeb4c 100644
--- a/food-admin/src/main/java/com/zbkj/admin/task/pink/PinkStatusChangeTask.java
+++ b/food-admin/src/main/java/com/zbkj/admin/task/pink/PinkStatusChangeTask.java
@@ -1,38 +1,38 @@
-package com.zbkj.admin.task.pink;
-import com.zbkj.common.utils.DateUtil;
-import com.zbkj.service.service.StorePinkService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-/**
- * 拼团状态变化Task
-
- */
-@Component
-@Configuration //读取配置
-@EnableScheduling // 2.开启定时任务
-public class PinkStatusChangeTask {
-
- //日志
- private static final Logger logger = LoggerFactory.getLogger(PinkStatusChangeTask.class);
-
- @Autowired
- private StorePinkService storePinkService;
-
- @Scheduled(cron = "0 */1 * * * ?") //每分钟执行一次
- public void init(){
- logger.info("---PinkStatusChange------bargain stop status change task: Execution Time - {}", DateUtil.nowDateTime());
- try {
- storePinkService.detectionStatus();
- } catch (Exception e) {
- e.printStackTrace();
- logger.error("PinkStatusChange" + " | msg : " + e.getMessage());
- }
-
- }
-}
+//package com.zbkj.admin.task.pink;
+//import com.zbkj.common.utils.DateUtil;
+//import com.zbkj.service.service.StorePinkService;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.scheduling.annotation.EnableScheduling;
+//import org.springframework.scheduling.annotation.Scheduled;
+//import org.springframework.stereotype.Component;
+//
+///**
+// * 拼团状态变化Task
+//
+// */
+//@Component
+//@Configuration //读取配置
+//@EnableScheduling // 2.开启定时任务
+//public class PinkStatusChangeTask {
+//
+// //日志
+// private static final Logger logger = LoggerFactory.getLogger(PinkStatusChangeTask.class);
+//
+// @Autowired
+// private StorePinkService storePinkService;
+//
+// @Scheduled(cron = "0 */1 * * * ?") //每分钟执行一次
+// public void init(){
+// logger.info("---PinkStatusChange------bargain stop status change task: Execution Time - {}", DateUtil.nowDateTime());
+// try {
+// storePinkService.detectionStatus();
+// } catch (Exception e) {
+// e.printStackTrace();
+// logger.error("PinkStatusChange" + " | msg : " + e.getMessage());
+// }
+//
+// }
+//}
diff --git a/food-admin/src/main/java/com/zbkj/admin/task/product/ProductStockTask.java b/food-admin/src/main/java/com/zbkj/admin/task/product/ProductStockTask.java
index 63bb3bb..c948384 100644
--- a/food-admin/src/main/java/com/zbkj/admin/task/product/ProductStockTask.java
+++ b/food-admin/src/main/java/com/zbkj/admin/task/product/ProductStockTask.java
@@ -41,8 +41,8 @@ public class ProductStockTask {
try {
storeProductService.consumeProductStock(); // 商品本身库存任务
storeSeckillService.consumeProductStock(); // 秒杀本身库存任务
- storeBargainService.consumeProductStock(); // 砍价本身库存任务
- storeCombinationService.consumeProductStock(); // 拼团本身库存任务
+ // storeBargainService.consumeProductStock(); // 砍价本身库存任务
+ // storeCombinationService.consumeProductStock(); // 拼团本身库存任务
} catch (Exception e) {
e.printStackTrace();
logger.error("OrderTakeByUser.task" + " | msg : " + e.getMessage());
diff --git a/food-common/pom.xml b/food-common/pom.xml
index eafc19f..e19692b 100644
--- a/food-common/pom.xml
+++ b/food-common/pom.xml
@@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- yzy
+ prepare_food
com.zbkj
0.0.1-SNAPSHOT
diff --git a/food-common/src/main/java/com/zbkj/common/constants/Constants.java b/food-common/src/main/java/com/zbkj/common/constants/Constants.java
index 0023458..f086a28 100644
--- a/food-common/src/main/java/com/zbkj/common/constants/Constants.java
+++ b/food-common/src/main/java/com/zbkj/common/constants/Constants.java
@@ -40,6 +40,8 @@ public class Constants {
public static final String DATE_FORMAT_START_PEREND = "00:00:00";
public static final String DATE_FORMAT_END_PEREND = "23:59:59";
public static final String DATE_FORMAT_HHMM = "yyyy-MM-dd HH:mm";
+ public static final String HH_MM = "HH:mm";
+ public static final String HH_MONTH_MM_DAY = "MM月dd日";
//后台管理员操作资金mark
public static final String USER_BILL_OPERATE_LOG_TITLE = "{$title}{$operate}了{$value}{$founds}";
@@ -308,12 +310,12 @@ public class Constants {
public static final int CATEGORY_TYPE_TREE_ID = 748; // 茶树游戏
//首页Banner图片
- public static final int INDEX_RECOMMEND_BANNER = 1; //首页精品推荐Banner图片
- public static final int INDEX_HOT_BANNER = 2; //热门榜单推荐Banner图片
- public static final int INDEX_NEW_BANNER = 3; //首页首发新品推荐Banner图片
- public static final int INDEX_BENEFIT_BANNER = 4; //首页促销单品推荐Banner图片
+ public static final int INDEX_RECOMMEND_BANNER = 1; //是否精品 推荐Banner图片
+ public static final int INDEX_HOT_BANNER = 2; //是否热卖 推荐Banner图片
+ public static final int INDEX_NEW_BANNER = 3; //是否新品 推荐Banner图片
+ public static final int INDEX_BENEFIT_BANNER = 4; //是否优惠 推荐Banner图片
+ public static final int INDEX_GOOD_BANNER = 5; //是否优品 推荐Banner图片
public static final int INDEX_LIMIT_DEFAULT = 3; //首页默认list分页条数
- public static final int INDEX_GOOD_BANNER = 5; //优选推荐
public static final String INDEX_BAST_LIMIT = "bastNumber"; //精品推荐个数
public static final String INDEX_FIRST_LIMIT = "firstNumber"; //首发新品个数
@@ -546,4 +548,10 @@ public class Constants {
/** 公共JS配置 */
// CRMEB chat 统计
public static final String JS_CONFIG_CRMEB_CHAT_TONGJI="crmeb_tongji_js";
+
+ /** 正常 */
+ public static final Integer STATUS_NORMAL = 1;
+ /** 失效 */
+ public static final Integer STATUS_INVALID = 0;
+
}
diff --git a/food-common/src/main/java/com/zbkj/common/constants/PayConstants.java b/food-common/src/main/java/com/zbkj/common/constants/PayConstants.java
index 00b16a4..e5d099d 100644
--- a/food-common/src/main/java/com/zbkj/common/constants/PayConstants.java
+++ b/food-common/src/main/java/com/zbkj/common/constants/PayConstants.java
@@ -41,7 +41,7 @@ public class PayConstants {
public static final String WX_PAY_SIGN_TYPE_MD5 = "MD5";
public static final String WX_PAY_SIGN_TYPE_SHA256 = "HMAC-SHA256";
- public static final String PAY_BODY = "水月雨-订单支付";
+ public static final String PAY_BODY = "食材配送-订单支付";
public static final String FIELD_SIGN = "sign";
// 公共号退款
diff --git a/food-common/src/main/java/com/zbkj/common/constants/SysConfigConstants.java b/food-common/src/main/java/com/zbkj/common/constants/SysConfigConstants.java
index 3fd9a1d..6e22c7f 100644
--- a/food-common/src/main/java/com/zbkj/common/constants/SysConfigConstants.java
+++ b/food-common/src/main/java/com/zbkj/common/constants/SysConfigConstants.java
@@ -53,6 +53,10 @@ public class SysConfigConstants {
/** 提现冻结时间 */
public static final String CONFIG_EXTRACT_FREEZING_TIME = "extract_time";
+ /** 全场满额配送开关 */
+ public static final String STORE_FEE_RIDER_SWITCH = "store_free_rider_switch";
+ /** 全场满额配送金额 */
+ public static final String STORE_FEE_RIDER = "store_free_rider";
/** 全场满额包邮开关 */
public static final String STORE_FEE_POSTAGE_SWITCH = "store_free_postage_switch";
/** 全场满额包邮金额 */
diff --git a/food-common/src/main/java/com/zbkj/common/model/deliveryset/DeliverySetFee.java b/food-common/src/main/java/com/zbkj/common/model/deliveryset/DeliverySetFee.java
deleted file mode 100644
index 4a7576c..0000000
--- a/food-common/src/main/java/com/zbkj/common/model/deliveryset/DeliverySetFee.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.zbkj.common.model.deliveryset;
-
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.Date;
-
-@Data
-@TableName("eb_delivery_set_fee")
-public class DeliverySetFee implements Serializable {
- private static final long serialVersionUID = 1L;
-
- /**
- * 编号
- */
- @TableId
- private Integer id;
- /**
- * 首米
- */
- private BigDecimal first;
- /**
- * 首米配送费
- */
- private BigDecimal firstPrice;
- /**
- * 续米
- */
- private BigDecimal renewal;
- /**
- * 续米配送费
- */
- private BigDecimal renewalPrice;
- /**
- * 是否无效
- */
- private Integer status;
- /**
- * 备注
- */
- private String remark;
- /**
- * 创建时间
- */
- private Date createTime;
- /**
- * 更新时间
- */
- private Date updateTime;
-
-}
diff --git a/food-common/src/main/java/com/zbkj/common/model/product/StoreProductReply.java b/food-common/src/main/java/com/zbkj/common/model/product/StoreProductReply.java
index df9ef57..da9e702 100644
--- a/food-common/src/main/java/com/zbkj/common/model/product/StoreProductReply.java
+++ b/food-common/src/main/java/com/zbkj/common/model/product/StoreProductReply.java
@@ -84,4 +84,8 @@ public class StoreProductReply implements Serializable {
@ApiModelProperty(value = "商品规格属性值")
private String sku;
+
+ @ApiModelProperty(value = "商品评论标签id,多个,号隔开")
+ private String reviewTags;
+
}
diff --git a/food-common/src/main/java/com/zbkj/common/request/CartNumRequest.java b/food-common/src/main/java/com/zbkj/common/request/CartNumRequest.java
index c5b9850..469cfc6 100644
--- a/food-common/src/main/java/com/zbkj/common/request/CartNumRequest.java
+++ b/food-common/src/main/java/com/zbkj/common/request/CartNumRequest.java
@@ -28,8 +28,8 @@ public class CartNumRequest implements Serializable {
@NotNull(message = "数量类型不能为空")
private String type;
- @ApiModelProperty(value = "商品类型:true-有效商品,false-无效商品", required = true)
+ @ApiModelProperty(value = "商品类型:-1全部,1-有效商品,0-无效商品", required = true)
@NotNull(message = "商品类型不能为空")
- private Boolean numType;
+ private Integer numType;
}
diff --git a/food-common/src/main/java/com/zbkj/common/request/CreateOrderRequest.java b/food-common/src/main/java/com/zbkj/common/request/CreateOrderRequest.java
index 2783e49..e33d6c1 100644
--- a/food-common/src/main/java/com/zbkj/common/request/CreateOrderRequest.java
+++ b/food-common/src/main/java/com/zbkj/common/request/CreateOrderRequest.java
@@ -27,9 +27,9 @@ public class CreateOrderRequest implements Serializable {
@NotBlank(message = "预下单订单号不能为空")
private String preOrderNo;
- @ApiModelProperty(value = "快递类型: 1-快递配送,2-到店自提")
+ @ApiModelProperty(value = "快递类型: 1-快递配送,2-到店自提,3-骑手配送")
@NotNull(message = "快递类型不能为空")
- @Range(min = 1, max = 2, message = "未知的快递类型")
+ @Range(min = 1, max = 3, message = "未知的配送类型")
private Integer shippingType;
@ApiModelProperty(value = "收货地址id")
@@ -47,12 +47,15 @@ public class CreateOrderRequest implements Serializable {
private String payChannel;
@ApiModelProperty(value = "是否使用积分")
- @NotNull(message = "是否使用积分不能为空")
+ // @NotNull(message = "是否使用积分不能为空")
private Boolean useIntegral;
@ApiModelProperty(value = "订单备注")
private String mark;
+ @ApiModelProperty(value = "预约送达时间")
+ private String deliveryTime;
+
// 以下为到店自提参数
@ApiModelProperty(value = "自提点id")
diff --git a/food-common/src/main/java/com/zbkj/common/request/OrderComputedPriceRequest.java b/food-common/src/main/java/com/zbkj/common/request/OrderComputedPriceRequest.java
index 1c1573e..1984e35 100644
--- a/food-common/src/main/java/com/zbkj/common/request/OrderComputedPriceRequest.java
+++ b/food-common/src/main/java/com/zbkj/common/request/OrderComputedPriceRequest.java
@@ -30,7 +30,7 @@ public class OrderComputedPriceRequest {
@ApiModelProperty(value = "优惠券id")
private Integer couponId;
- @ApiModelProperty(value = "快递类型: 1-快递配送,2-到店自提")
+ @ApiModelProperty(value = "快递类型: 1-快递配送,2-到店自提,3-骑手配送")
@NotNull(message = "快递类型不能为空")
@Range(min = 1, max = 2, message = "未知的快递类型")
private Integer shippingType;
diff --git a/food-common/src/main/java/com/zbkj/common/request/PreOrderRequest.java b/food-common/src/main/java/com/zbkj/common/request/PreOrderRequest.java
index b81076d..d055c55 100644
--- a/food-common/src/main/java/com/zbkj/common/request/PreOrderRequest.java
+++ b/food-common/src/main/java/com/zbkj/common/request/PreOrderRequest.java
@@ -19,10 +19,13 @@ import java.util.List;
@ApiModel(value="PreOrderRequest对象", description="预下单请求对象")
public class PreOrderRequest {
- @ApiModelProperty(value = "预下单类型(“shoppingCart”:购物车下单,“buyNow”:立即购买,”again“: 再次购买,”video“: 视频号商品下单,“fruitExchange”:茶果兑换)")
+ @ApiModelProperty(value = "预下单类型(“shoppingCart”:购物车下单,“buyNow”:立即购买,”again“: 再次购买,”video“: 视频号商品下单)")
@NotBlank(message = "预下单类型不能为空")
private String preOrderType;
+ @ApiModelProperty(value = "门店编号")
+ private Integer merId;
+
@ApiModelProperty(value = "订单详情列表")
private List orderDetails;
diff --git a/food-common/src/main/java/com/zbkj/common/request/ShippingTemplatesRequest.java b/food-common/src/main/java/com/zbkj/common/request/ShippingTemplatesRequest.java
index 005f82e..a88503d 100644
--- a/food-common/src/main/java/com/zbkj/common/request/ShippingTemplatesRequest.java
+++ b/food-common/src/main/java/com/zbkj/common/request/ShippingTemplatesRequest.java
@@ -33,9 +33,9 @@ public class ShippingTemplatesRequest implements Serializable {
@Length(max = 200, message = "模板名称不能超过200个字符")
private String name;
- @ApiModelProperty(value = "计费方式 1(按件数), 2(按重量),3(按体积)", example = "1", required = true)
+ @ApiModelProperty(value = "计费方式 1(按件数), 2(按重量),3(按体积),4(按距离)", example = "1", required = true)
@NotNull(message = "计费方式必须选择")
- @Range(min = 1, max = 3, message = "计费方式选择区间 1(按件数), 2(按重量),3(按体积)")
+ @Range(min = 1, max = 4, message = "计费方式选择区间 1(按件数), 2(按重量),3(按体积),4(按距离)")
private Integer type;
@ApiModelProperty(value = "配送区域及运费", required = true)
diff --git a/food-common/src/main/java/com/zbkj/common/request/StoreProductAddRequest.java b/food-common/src/main/java/com/zbkj/common/request/StoreProductAddRequest.java
index b5ad47d..e3fce80 100644
--- a/food-common/src/main/java/com/zbkj/common/request/StoreProductAddRequest.java
+++ b/food-common/src/main/java/com/zbkj/common/request/StoreProductAddRequest.java
@@ -92,7 +92,8 @@ public class StoreProductAddRequest implements Serializable {
@ApiModelProperty(value = "虚拟销量")
private Integer ficti;
- @ApiModelProperty(value = "运费模板ID")
+ @ApiModelProperty(value = "配送模板ID", required = true)
+ @NotNull(message = "配送模板不能为空")
private Integer tempId;
@ApiModelProperty(value = "规格 0单 1多", required = true)
diff --git a/food-common/src/main/java/com/zbkj/common/response/CartInfoResponse.java b/food-common/src/main/java/com/zbkj/common/response/CartInfoResponse.java
index 05ac5cc..b77e989 100644
--- a/food-common/src/main/java/com/zbkj/common/response/CartInfoResponse.java
+++ b/food-common/src/main/java/com/zbkj/common/response/CartInfoResponse.java
@@ -8,6 +8,7 @@ import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
+import java.util.List;
/**
* 购物车详情响应对象
@@ -24,6 +25,9 @@ public class CartInfoResponse implements Serializable {
@ApiModelProperty(value = "购物车表ID")
private Long id;
+ @ApiModelProperty(value = "商品包")
+ private List packCartInfo;
+
@ApiModelProperty(value = "商品ID")
private Integer productId;
diff --git a/food-common/src/main/java/com/zbkj/common/response/DeliveryTimeResponse.java b/food-common/src/main/java/com/zbkj/common/response/DeliveryTimeResponse.java
new file mode 100644
index 0000000..8c90923
--- /dev/null
+++ b/food-common/src/main/java/com/zbkj/common/response/DeliveryTimeResponse.java
@@ -0,0 +1,32 @@
+package com.zbkj.common.response;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="DeliveryTimeResponse对象", description="配送时间对象")
+public class DeliveryTimeResponse {
+
+ @ApiModelProperty(value = "对外展示时使用")
+ private String key;
+
+ @ApiModelProperty(value = "订单提交时使用")
+ private String date;
+
+ @ApiModelProperty(value = "订单提交时使用,时间段")
+ private List times;
+
+ public DeliveryTimeResponse(String key, String date, List times) {
+ this.key = key;
+ this.date = date;
+ this.times = times;
+ }
+}
diff --git a/food-common/src/main/java/com/zbkj/common/response/IndexProductResponse.java b/food-common/src/main/java/com/zbkj/common/response/IndexProductResponse.java
index 07910ad..5cca56b 100644
--- a/food-common/src/main/java/com/zbkj/common/response/IndexProductResponse.java
+++ b/food-common/src/main/java/com/zbkj/common/response/IndexProductResponse.java
@@ -1,5 +1,7 @@
package com.zbkj.common.response;
+import com.zbkj.common.vo.product.ProductAttrVo;
+import com.zbkj.common.vo.product.ProductInfoVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -8,6 +10,7 @@ import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
/**
@@ -65,4 +68,14 @@ public class IndexProductResponse {
@ApiModelProperty(value = "标签")
private String tags;
+
+ @ApiModelProperty(value = "规格 0单 1多")
+ private Boolean specType;
+
+ @ApiModelProperty(value = "产品属性")
+ private List productAttr;
+
+ @ApiModelProperty(value = "商品属性详情")
+ private HashMap productValue;
+
}
diff --git a/food-common/src/main/java/com/zbkj/common/response/StoreProductReplayCountResponse.java b/food-common/src/main/java/com/zbkj/common/response/StoreProductReplayCountResponse.java
index ca62d86..9007ce0 100644
--- a/food-common/src/main/java/com/zbkj/common/response/StoreProductReplayCountResponse.java
+++ b/food-common/src/main/java/com/zbkj/common/response/StoreProductReplayCountResponse.java
@@ -1,5 +1,6 @@
package com.zbkj.common.response;
+import com.zbkj.common.vo.ReplyReviewTagsVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -7,6 +8,7 @@ import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
+import java.util.List;
/**
* 商品评价数量和好评度
@@ -21,13 +23,14 @@ public class StoreProductReplayCountResponse implements Serializable {
private static final long serialVersionUID=1L;
public StoreProductReplayCountResponse() {}
- public StoreProductReplayCountResponse(Long sumCount, Long goodCount, Long inCount, Long poorCount, String replyChance, Integer replyStar) {
+ public StoreProductReplayCountResponse(Long sumCount, Long goodCount, Long inCount, Long poorCount, String replyChance, Integer replyStar, List reviewTags) {
this.sumCount = sumCount;
this.goodCount = goodCount;
this.inCount = inCount;
this.poorCount = poorCount;
this.replyChance = replyChance;
this.replyStar = replyStar;
+ this.reviewTags = reviewTags;
}
@ApiModelProperty(value = "评论总数")
@@ -48,5 +51,7 @@ public class StoreProductReplayCountResponse implements Serializable {
@ApiModelProperty(value = "评分星数")
private Integer replyStar;
+ @ApiModelProperty(value = "评论标签")
+ private List reviewTags;
}
diff --git a/food-common/src/main/java/com/zbkj/common/utils/DeliveryUtil.java b/food-common/src/main/java/com/zbkj/common/utils/DeliveryUtil.java
new file mode 100644
index 0000000..214c6bf
--- /dev/null
+++ b/food-common/src/main/java/com/zbkj/common/utils/DeliveryUtil.java
@@ -0,0 +1,142 @@
+package com.zbkj.common.utils;
+
+import com.zbkj.common.constants.Constants;
+import com.zbkj.common.response.DeliveryTimeResponse;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.List;
+
+public class DeliveryUtil {
+
+ /**
+ * 判断时间时上午还是下午
+ * @param dateTime
+ * @return
+ */
+ public static Integer isAmOrPm(LocalDateTime dateTime) {
+ // 定义上午和下午的分界时间(中午12点)
+ LocalTime noon = LocalTime.of(12, 0);
+ // 判断是上午还是下午
+ // 上午
+ if (dateTime.toLocalTime().isBefore(noon)) {
+ return 0;
+ } else { // 下午
+ return 1;
+ }
+ }
+
+ /**
+ * 判断时间是否是今天
+ * @param dateTime
+ * @return
+ */
+ public static Integer isNowDay(LocalDateTime dateTime) {
+ // 获取当前日期和时间
+ LocalDateTime now = LocalDateTime.now();
+ // 判断是否是今天
+ // 不是今天
+ if (!dateTime.toLocalDate().equals(now.toLocalDate())) {
+ return 0;
+ }
+ // 是今天
+ return 1;
+ }
+
+ /**
+ * 获取多天内指定上午和下午时间区间的每小时时间段
+ *
+ * @param startDate 起始日期
+ * @param numberOfDays 天数
+ * @param morningStart 上午开始时间
+ * @param morningEnd 上午结束时间
+ * @param afternoonStart 下午开始时间
+ * @param afternoonEnd 下午结束时间
+ * @return 每小时时间段的列表
+ */
+ public static List getHourlyTimeIntervals(
+ LocalDate startDate, int numberOfDays, int splitMin,
+ LocalTime morningStart, LocalTime morningEnd,
+ LocalTime afternoonStart, LocalTime afternoonEnd) {
+ List responseList = new ArrayList<>();
+ LocalDateTime now = LocalDateTime.now();
+ DateTimeFormatter hmFor = DateTimeFormatter.ofPattern(Constants.HH_MM);
+ DateTimeFormatter mdFor = DateTimeFormatter.ofPattern(Constants.HH_MONTH_MM_DAY);
+ DateTimeFormatter ymdFor = DateTimeFormatter.ofPattern(Constants.DATE_FORMAT_DATE);
+ // 遍历每一天
+ for (int i = 0; i < numberOfDays; i++) {
+ LocalDate currentDate = startDate.plusDays(i);
+ Integer isNowDay = isNowDay(LocalDateTime.of(currentDate, LocalTime.now()));
+ List intervals = new ArrayList<>();
+ // 处理上午时间段
+ if (isNowDay == 0) {
+ intervals.addAll(getHourlyIntervalsForPeriod(currentDate, morningStart, morningEnd, hmFor, splitMin));
+ }
+ // 处理下午时间段
+ if (isNowDay == 0 || (isNowDay == 1 && isAmOrPm(now) == 0)) {
+ intervals.addAll(getHourlyIntervalsForPeriod(currentDate, afternoonStart, afternoonEnd, hmFor, splitMin));
+ }
+ if (!intervals.isEmpty()) {
+ responseList.add(new DeliveryTimeResponse(getTargetDate(currentDate, mdFor), currentDate.format(ymdFor), intervals));
+ }
+ }
+ return responseList;
+ }
+
+ private static String getTargetDate(LocalDate targetDate, DateTimeFormatter md) {
+ LocalDate today = LocalDate.now();
+ long daysUntil = ChronoUnit.DAYS.between(today, targetDate);
+ // 判断日期
+ if (targetDate.isEqual(today)) {
+ return "今天 " + md;
+ } else if (targetDate.isAfter(today)) {
+ switch ((int) daysUntil) {
+ case 1:
+ return "明天 " + md;
+ case 2:
+ return "后天 " + md;
+ default:
+ return "其他 " + md;
+ }
+ }
+ return "";
+ }
+
+ /**
+ * 获取某一天的指定时间区间的每小时时间段
+ *
+ * @param date 当前日期
+ * @param startTime 开始时间
+ * @param endTime 结束时间
+ * @param formatter 日期时间格式化器
+ * @return 每小时时间段的列表
+ */
+ private static List getHourlyIntervalsForPeriod(LocalDate date, LocalTime startTime, LocalTime endTime, DateTimeFormatter formatter, Integer splitMin) {
+ List intervals = new ArrayList<>();
+ LocalTime currentTime = startTime;
+ // 遍历每小时
+ while (currentTime.isBefore(endTime) || currentTime.equals(endTime)) {
+ LocalDateTime startDateTime = LocalDateTime.of(date, currentTime);
+ LocalDateTime endDateTime = startDateTime.plusMinutes(splitMin);
+ // 如果结束时间超过当前时间段的结束时间,则调整为结束时间
+ if (endDateTime.toLocalTime().isAfter(endTime)) {
+ endDateTime = LocalDateTime.of(date, endTime);
+ }
+ String start = startDateTime.format(formatter);
+ String end = endDateTime.format(formatter);
+ intervals.add(start + "-" + end);
+
+ if (end.equals(endTime.toString())) {
+ break;
+ }
+ // 增加分钟数
+ currentTime = currentTime.plusMinutes(splitMin);
+ }
+ return intervals;
+ }
+
+}
diff --git a/food-common/src/main/java/com/zbkj/common/utils/DistanceUtil.java b/food-common/src/main/java/com/zbkj/common/utils/DistanceUtil.java
new file mode 100644
index 0000000..1faf3b5
--- /dev/null
+++ b/food-common/src/main/java/com/zbkj/common/utils/DistanceUtil.java
@@ -0,0 +1,32 @@
+package com.zbkj.common.utils;
+
+public class DistanceUtil {
+
+ // 将角度转换为弧度
+ private static double toRadians(double angle) {
+ return angle * Math.PI / 180.0;
+ }
+
+ // 计算两个经纬度点之间的距离(单位:公里)
+ public static double haversineDistance(double lat1, double lon1, double lat2, double lon2) {
+ double R = 6371.0; // 地球半径,单位:公里
+ double dLat = toRadians(lat2 - lat1);
+ double dLon = toRadians(lon2 - lon1);
+ lat1 = toRadians(lat1);
+ lat2 = toRadians(lat2);
+
+ double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
+ Math.sin(dLon / 2) * Math.sin(dLon / 2) * Math.cos(lat1) * Math.cos(lat2);
+ double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
+ return R * c; // 返回结果单位为公里
+ }
+
+ public static void main(String[] args) {
+ double lat1 = 40.7128; // 纬度1
+ double lon1 = -74.0060; // 经度1
+ double lat2 = 34.0522; // 纬度2
+ double lon2 = -118.2437; // 经度2
+ double distance = haversineDistance(lat1, lon1, lat2, lon2);
+ System.out.printf("距离: %.2f 公里\n", distance);
+ }
+}
diff --git a/food-common/src/main/java/com/zbkj/common/vo/OrderInfoVo.java b/food-common/src/main/java/com/zbkj/common/vo/OrderInfoVo.java
index f85fab0..f5ec0d3 100644
--- a/food-common/src/main/java/com/zbkj/common/vo/OrderInfoVo.java
+++ b/food-common/src/main/java/com/zbkj/common/vo/OrderInfoVo.java
@@ -93,4 +93,7 @@ public class OrderInfoVo {
@ApiModelProperty(value = "是否视频号订单")
private Boolean isVideo = false;
+
+ @ApiModelProperty(value = "门店编号")
+ private Integer merId;
}
diff --git a/food-common/src/main/java/com/zbkj/common/vo/ReplyReviewTagsVo.java b/food-common/src/main/java/com/zbkj/common/vo/ReplyReviewTagsVo.java
new file mode 100644
index 0000000..5eea9c2
--- /dev/null
+++ b/food-common/src/main/java/com/zbkj/common/vo/ReplyReviewTagsVo.java
@@ -0,0 +1,21 @@
+package com.zbkj.common.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="ReplyReviewTagsVo对象", description="评论标签对象")
+public class ReplyReviewTagsVo {
+
+ @ApiModelProperty(value = "名称")
+ private String tag;
+
+ @ApiModelProperty(value = "数量")
+ private Integer num;
+
+}
diff --git a/food-front/pom.xml b/food-front/pom.xml
index e1791c1..57a3a0a 100644
--- a/food-front/pom.xml
+++ b/food-front/pom.xml
@@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- yzy
+ prepare_food
com.zbkj
0.0.1-SNAPSHOT
diff --git a/food-front/src/main/java/com/zbkj/front/controller/CartController.java b/food-front/src/main/java/com/zbkj/front/controller/CartController.java
index 85df2eb..5d8109e 100644
--- a/food-front/src/main/java/com/zbkj/front/controller/CartController.java
+++ b/food-front/src/main/java/com/zbkj/front/controller/CartController.java
@@ -42,7 +42,7 @@ public class CartController {
@ApiOperation(value = "分页列表") //配合swagger使用
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiImplicitParams({
- @ApiImplicitParam(name="isValid", value="类型,true-有效商品,false-无效商品", required = true),
+ @ApiImplicitParam(name="isValid", value="类型:1-有效商品,0-无效商品", required = true),
@ApiImplicitParam(name="page", value="页码", required = true),
@ApiImplicitParam(name="limit", value="每页数量", required = true)
})
@@ -68,6 +68,8 @@ public class CartController {
}
}
+
+
/**
* 删除购物车表
* @param ids 购物车ids
diff --git a/food-front/src/main/java/com/zbkj/front/controller/CouponController.java b/food-front/src/main/java/com/zbkj/front/controller/CouponController.java
index cd2657e..dbb3124 100644
--- a/food-front/src/main/java/com/zbkj/front/controller/CouponController.java
+++ b/food-front/src/main/java/com/zbkj/front/controller/CouponController.java
@@ -34,7 +34,6 @@ public class CouponController {
@Autowired
private StoreCouponUserService storeCouponUserService;
-
/**
* 分页显示优惠券表
* @param type 类型,1-通用,2-商品,3-品类
@@ -49,8 +48,10 @@ public class CouponController {
@ApiImplicitParam(name="page", value="页码", required = true),
@ApiImplicitParam(name="limit", value="每页数量", required = true)
})
- public CommonResult> getList(@RequestParam(value = "type", defaultValue = "0") int type,
- @RequestParam(value = "productId", defaultValue = "0") int productId, @Validated PageParamRequest pageParamRequest) {
+ public CommonResult> getList(
+ @RequestParam(value = "type", defaultValue = "0") int type,
+ @RequestParam(value = "productId", defaultValue = "0") int productId,
+ @Validated PageParamRequest pageParamRequest) {
return CommonResult.success(storeCouponService.getH5List(type, productId, pageParamRequest));
}
diff --git a/food-front/src/main/java/com/zbkj/front/controller/DeliveryTimeController.java b/food-front/src/main/java/com/zbkj/front/controller/DeliveryTimeController.java
new file mode 100644
index 0000000..61d18b2
--- /dev/null
+++ b/food-front/src/main/java/com/zbkj/front/controller/DeliveryTimeController.java
@@ -0,0 +1,32 @@
+package com.zbkj.front.controller;
+
+import com.zbkj.common.response.CommonResult;
+import com.zbkj.common.response.DeliveryTimeResponse;
+import com.zbkj.service.service.DeliverySetTimeService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Slf4j
+@RestController
+@RequestMapping("api/front/delivery")
+@Api(tags = "配送时间")
+public class DeliveryTimeController {
+
+ @Autowired
+ private DeliverySetTimeService deliverySetTimeService;
+
+ @ApiOperation(value = "配送时间")
+ @RequestMapping(value = "/times", method = RequestMethod.GET)
+ public CommonResult> getList() {
+ List res = deliverySetTimeService.getDeliveryTime();
+ return CommonResult.success(res);
+ }
+}
+
+
+
diff --git a/food-front/src/main/java/com/zbkj/front/controller/IndexController.java b/food-front/src/main/java/com/zbkj/front/controller/IndexController.java
index a940531..e0ab5f0 100644
--- a/food-front/src/main/java/com/zbkj/front/controller/IndexController.java
+++ b/food-front/src/main/java/com/zbkj/front/controller/IndexController.java
@@ -1,26 +1,19 @@
package com.zbkj.front.controller;
-import com.zbkj.common.page.CommonPage;
import com.zbkj.common.response.CommonResult;
-import com.zbkj.common.request.PageParamRequest;
-import com.zbkj.common.model.system.SystemConfig;
import com.zbkj.common.response.IndexInfoResponse;
-import com.zbkj.common.response.IndexProductResponse;
import com.zbkj.front.service.IndexService;
import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List;
-import java.util.Map;
/**
* 用户 -- 用户中心
@@ -44,16 +37,6 @@ public class IndexController {
return CommonResult.success(indexService.getIndexInfo());
}
- /**
- * 首页商品列表
- */
- @ApiOperation(value = "首页商品列表")
- @RequestMapping(value = "/index/product/{type}", method = RequestMethod.GET)
- @ApiImplicitParam(name = "type", value = "类型 【1精品推荐】", dataType = "int", required = true)
- public CommonResult> getProductList(@PathVariable(value = "type") Integer type, PageParamRequest pageParamRequest) {
- return CommonResult.success(indexService.findIndexProductList(type, pageParamRequest));
- }
-
/**
* 热门搜索
*/
diff --git a/food-front/src/main/java/com/zbkj/front/controller/ProductController.java b/food-front/src/main/java/com/zbkj/front/controller/ProductController.java
index a685ab8..e76d651 100644
--- a/food-front/src/main/java/com/zbkj/front/controller/ProductController.java
+++ b/food-front/src/main/java/com/zbkj/front/controller/ProductController.java
@@ -1,7 +1,6 @@
package com.zbkj.front.controller;
-import com.zbkj.common.model.product.StoreProduct;
import com.zbkj.common.page.CommonPage;
import com.zbkj.common.request.PageParamRequest;
import com.zbkj.common.request.ProductListRequest;
@@ -11,6 +10,7 @@ import com.zbkj.common.vo.CategoryTreeVo;
import com.zbkj.front.service.ProductService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -33,12 +33,14 @@ public class ProductController {
private ProductService productService;
/**
- * 热门商品推荐
+ * 1.购物车/我的为你推荐(是否热卖)
+ * 2.首页精品商品推荐(是否精品)
*/
- @ApiOperation(value = "热门商品推荐")
- @RequestMapping(value = "/product/hot", method = RequestMethod.GET)
- public CommonResult> getHotProductList(@Validated PageParamRequest pageParamRequest) {
- return CommonResult.success(productService.getHotProductList(pageParamRequest));
+ @ApiOperation(value = "首页商品列表")
+ @RequestMapping(value = "/product/{type}", method = RequestMethod.GET)
+ @ApiImplicitParam(name = "type", value = "类型【1首页精品推荐, 2为你推荐】", dataType = "int", required = true)
+ public CommonResult> getProductList(@PathVariable(value = "type") Integer type, PageParamRequest pageParamRequest) {
+ return CommonResult.success(productService.getProductListByType(type, pageParamRequest));
}
/**
@@ -83,10 +85,15 @@ public class ProductController {
*/
@ApiOperation(value = "商品评论列表")
@RequestMapping(value = "/reply/list/{id}", method = RequestMethod.GET)
- @ApiImplicitParam(name = "type", value = "评价等级|0=全部,1=好评,2=中评,3=差评", allowableValues = "range[0,1,2,3]")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "type", value = "评价等级|0=全部,1=好评,2=中评,3=差评", allowableValues = "range[0,1,2,3]"),
+ @ApiImplicitParam(name = "tag", value = "评价标签")
+ })
public CommonResult> getReplyList(@PathVariable Integer id,
- @RequestParam(value = "type") Integer type, @Validated PageParamRequest pageParamRequest) {
- return CommonResult.success(CommonPage.restPage(productService.getReplyList(id, type, pageParamRequest)));
+ @RequestParam(value = "type") Integer type,
+ @RequestParam(value = "tag") String tag,
+ @Validated PageParamRequest pageParamRequest) {
+ return CommonResult.success(CommonPage.restPage(productService.getReplyList(id, type, tag, pageParamRequest)));
}
/**
@@ -125,14 +132,14 @@ public class ProductController {
return CommonResult.success(productService.getSkuDetail(id));
}
- /**
- * 商品排行榜
- */
- @ApiOperation(value = "商品排行榜")
- @RequestMapping(value = "/product/leaderboard", method = RequestMethod.GET)
- public CommonResult> getLeaderboard() {
- return CommonResult.success(productService.getLeaderboard());
- }
+// /**
+// * 商品排行榜
+// */
+// @ApiOperation(value = "商品排行榜")
+// @RequestMapping(value = "/product/leaderboard", method = RequestMethod.GET)
+// public CommonResult> getLeaderboard() {
+// return CommonResult.success(productService.getLeaderboard());
+// }
}
diff --git a/food-front/src/main/java/com/zbkj/front/controller/QrCodeController.java b/food-front/src/main/java/com/zbkj/front/controller/QrCodeController.java
index d526057..1c3a13b 100644
--- a/food-front/src/main/java/com/zbkj/front/controller/QrCodeController.java
+++ b/food-front/src/main/java/com/zbkj/front/controller/QrCodeController.java
@@ -27,6 +27,7 @@ public class QrCodeController {
@Autowired
private QrCodeService qrCodeService;
+
/**
* 获取二维码
* @return CommonResult
diff --git a/food-front/src/main/java/com/zbkj/front/controller/StoreOrderController.java b/food-front/src/main/java/com/zbkj/front/controller/StoreOrderController.java
index 229fdd7..4e3fb65 100644
--- a/food-front/src/main/java/com/zbkj/front/controller/StoreOrderController.java
+++ b/food-front/src/main/java/com/zbkj/front/controller/StoreOrderController.java
@@ -102,10 +102,9 @@ public class StoreOrderController {
@ApiOperation(value = "订单列表")
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiImplicitParams ({
- @ApiImplicitParam(name = "type", value = "评价等级|0=未支付,1=待发货,2=待收货,3=待评价,4=已完成,-3=售后/退款", required = true),
+ @ApiImplicitParam(name = "type", value = "评价等级|null=全部,0=未支付,1=待发货/备货中,2=待收货,3=待评价,4=已完成,-3=售后/退款", required = false),
})
- public CommonResult> orderList(@RequestParam(name = "type") Integer type,
- @ModelAttribute PageParamRequest pageRequest) {
+ public CommonResult> orderList(@RequestParam(name = "type") Integer type, @ModelAttribute PageParamRequest pageRequest) {
return CommonResult.success(orderService.list(type, pageRequest));
}
diff --git a/food-front/src/main/java/com/zbkj/front/service/IndexService.java b/food-front/src/main/java/com/zbkj/front/service/IndexService.java
index 6b2dfb1..22d6b00 100644
--- a/food-front/src/main/java/com/zbkj/front/service/IndexService.java
+++ b/food-front/src/main/java/com/zbkj/front/service/IndexService.java
@@ -33,14 +33,6 @@ public interface IndexService{
*/
HashMap getShareConfig();
- /**
- * 获取首页商品列表
- * @param type 类型 【1 精品推荐 2 热门榜单 3首发新品 4促销单品】
- * @param pageParamRequest 分页参数
- * @return List
- */
- CommonPage findIndexProductList(Integer type, PageParamRequest pageParamRequest);
-
/**
* 获取颜色配置
* @return SystemConfig
diff --git a/food-front/src/main/java/com/zbkj/front/service/ProductService.java b/food-front/src/main/java/com/zbkj/front/service/ProductService.java
index 595e556..83bb807 100644
--- a/food-front/src/main/java/com/zbkj/front/service/ProductService.java
+++ b/food-front/src/main/java/com/zbkj/front/service/ProductService.java
@@ -50,10 +50,11 @@ public interface ProductService {
* 商品评论列表
* @param proId 商品编号
* @param type 评价等级|0=全部,1=好评,2=中评,3=差评
+ * @param tag 评价标签名称
* @param pageParamRequest 分页参数
* @return PageInfo
*/
- PageInfo getReplyList(Integer proId, Integer type, PageParamRequest pageParamRequest);
+ PageInfo getReplyList(Integer proId, Integer type, String tag, PageParamRequest pageParamRequest);
/**
* 商品评论数量
@@ -62,13 +63,6 @@ public interface ProductService {
*/
StoreProductReplayCountResponse getReplyCount(Integer id);
- /**
- * 获取热门推荐商品列表
- * @param pageRequest 分页参数
- * @return CommonPage
- */
- CommonPage getHotProductList(PageParamRequest pageRequest);
-
/**
* 商品详情评论
* @param id 商品id
@@ -76,12 +70,6 @@ public interface ProductService {
*/
ProductDetailReplyResponse getProductReply(Integer id);
- /**
- * 优选商品推荐
- * @return CommonPage
- */
- CommonPage getGoodProductList(PageParamRequest pageRequest);
-
/**
* 商品列表(个别分类模型使用)
* @param request 列表请求参数
@@ -96,17 +84,17 @@ public interface ProductService {
*/
List getLeaderboard();
- /**
- * 促销单品(非遗抹茶)
- * @param pageParamRequest
- * @return
- */
- CommonPage getSalesProductList(PageParamRequest pageParamRequest);
-
/**
* 产品一级分类
* @return
*/
List getCategoryTop();
+ /**
+ * 根据类型查询商品
+ * @param type
+ * @param pageParamRequest
+ * @return
+ */
+ CommonPage getProductListByType(Integer type, PageParamRequest pageParamRequest);
}
diff --git a/food-front/src/main/java/com/zbkj/front/service/impl/IndexServiceImpl.java b/food-front/src/main/java/com/zbkj/front/service/impl/IndexServiceImpl.java
index 7e790ac..3a54777 100644
--- a/food-front/src/main/java/com/zbkj/front/service/impl/IndexServiceImpl.java
+++ b/food-front/src/main/java/com/zbkj/front/service/impl/IndexServiceImpl.java
@@ -103,72 +103,6 @@ public class IndexServiceImpl implements IndexService {
return map;
}
- /**
- * 获取首页商品列表
- * @param type 类型 【1 精品推荐 2 热门榜单 3首发新品 4促销单品】
- * @param pageParamRequest 分页参数
- * @return List
- */
- @Override
- public CommonPage findIndexProductList(Integer type, PageParamRequest pageParamRequest) {
- if (type < Constants.INDEX_RECOMMEND_BANNER || type > Constants.INDEX_BENEFIT_BANNER) {
- return CommonPage.restPage(new ArrayList<>());
- }
- List storeProductList = storeProductService.getIndexProduct(type, pageParamRequest);
- if(CollUtil.isEmpty(storeProductList)) {
- return CommonPage.restPage(new ArrayList<>());
- }
- CommonPage storeProductCommonPage = CommonPage.restPage(storeProductList);
-
- List productResponseArrayList = new ArrayList<>();
- for (StoreProduct storeProduct : storeProductList) {
- IndexProductResponse productResponse = new IndexProductResponse();
- List activityList = CrmebUtil.stringToArrayInt(storeProduct.getActivity());
- // 活动类型默认:直接跳过
- if (activityList.get(0).equals(Constants.PRODUCT_TYPE_NORMAL)) {
- BeanUtils.copyProperties(storeProduct, productResponse);
- productResponseArrayList.add(productResponse);
- continue;
- }
- // 根据参与活动添加对应商品活动标示
- HashMap activityByProduct =
- productUtils.getActivityByProduct(storeProduct.getId(), storeProduct.getActivity());
- if (CollUtil.isNotEmpty(activityByProduct)) {
- for (Integer activity : activityList) {
- if (activity.equals(Constants.PRODUCT_TYPE_NORMAL)) {
- break;
- }
- if (activity.equals(Constants.PRODUCT_TYPE_SECKILL)) {
- ProductActivityItemResponse itemResponse = activityByProduct.get(Constants.PRODUCT_TYPE_SECKILL);
- if (ObjectUtil.isNotNull(itemResponse)) {
- productResponse.setActivityH5(itemResponse);
- break;
- }
- }
- if (activity.equals(Constants.PRODUCT_TYPE_BARGAIN)) {
- ProductActivityItemResponse itemResponse = activityByProduct.get(Constants.PRODUCT_TYPE_BARGAIN);
- if (ObjectUtil.isNotNull(itemResponse)) {
- productResponse.setActivityH5(itemResponse);
- break;
- }
- }
- if (activity.equals(Constants.PRODUCT_TYPE_PINGTUAN)) {
- ProductActivityItemResponse itemResponse = activityByProduct.get(Constants.PRODUCT_TYPE_PINGTUAN);
- if (ObjectUtil.isNotNull(itemResponse)) {
- productResponse.setActivityH5(itemResponse);
- break;
- }
- }
- }
- }
- BeanUtils.copyProperties(storeProduct, productResponse);
- productResponseArrayList.add(productResponse);
- }
- CommonPage productResponseCommonPage = CommonPage.restPage(productResponseArrayList);
- BeanUtils.copyProperties(storeProductCommonPage, productResponseCommonPage, "list");
- return productResponseCommonPage;
- }
-
/**
* 获取颜色配置
* @return SystemConfig
diff --git a/food-front/src/main/java/com/zbkj/front/service/impl/ProductServiceImpl.java b/food-front/src/main/java/com/zbkj/front/service/impl/ProductServiceImpl.java
index 41b4c8c..347dc1c 100644
--- a/food-front/src/main/java/com/zbkj/front/service/impl/ProductServiceImpl.java
+++ b/food-front/src/main/java/com/zbkj/front/service/impl/ProductServiceImpl.java
@@ -27,7 +27,10 @@ import com.zbkj.common.response.*;
import com.zbkj.common.utils.CrmebUtil;
import com.zbkj.common.utils.RedisUtil;
import com.zbkj.common.vo.CategoryTreeVo;
+import com.zbkj.common.vo.HomeProductVo;
import com.zbkj.common.vo.MyRecord;
+import com.zbkj.common.vo.ReplyReviewTagsVo;
+import com.zbkj.common.vo.product.ProductDetailVo;
import com.zbkj.front.service.ProductService;
import com.zbkj.service.delete.ProductUtils;
import com.zbkj.service.service.*;
@@ -38,6 +41,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
+import java.util.stream.Collectors;
/**
* IndexServiceImpl 接口实现
@@ -114,67 +118,6 @@ public class ProductServiceImpl implements ProductService {
return listTree;
}
- /**
- * 商品列表
- * @return CommonPage
- */
- @Override
- public CommonPage getList(ProductRequest request, PageParamRequest pageRequest) {
- List storeProductList = storeProductService.findH5List(request, pageRequest);
- if (CollUtil.isEmpty(storeProductList)) {
- return CommonPage.restPage(new ArrayList<>());
- }
- CommonPage storeProductCommonPage = CommonPage.restPage(storeProductList);
-
- List productResponseArrayList = new ArrayList<>();
- for (StoreProduct storeProduct : storeProductList) {
- IndexProductResponse productResponse = new IndexProductResponse();
- List activityList = CrmebUtil.stringToArrayInt(storeProduct.getActivity());
- // 活动类型默认:直接跳过
- if (activityList.get(0).equals(Constants.PRODUCT_TYPE_NORMAL)) {
- BeanUtils.copyProperties(storeProduct, productResponse);
- productResponseArrayList.add(productResponse);
- continue;
- }
- // 根据参与活动添加对应商品活动标示
- HashMap activityByProduct =
- productUtils.getActivityByProduct(storeProduct.getId(), storeProduct.getActivity());
- if (CollUtil.isNotEmpty(activityByProduct)) {
- for (Integer activity : activityList) {
- if (activity.equals(Constants.PRODUCT_TYPE_NORMAL)) {
- break;
- }
- if (activity.equals(Constants.PRODUCT_TYPE_SECKILL)) {
- ProductActivityItemResponse itemResponse = activityByProduct.get(Constants.PRODUCT_TYPE_SECKILL);
- if (ObjectUtil.isNotNull(itemResponse)) {
- productResponse.setActivityH5(itemResponse);
- break;
- }
- }
- if (activity.equals(Constants.PRODUCT_TYPE_BARGAIN)) {
- ProductActivityItemResponse itemResponse = activityByProduct.get(Constants.PRODUCT_TYPE_BARGAIN);
- if (ObjectUtil.isNotNull(itemResponse)) {
- productResponse.setActivityH5(itemResponse);
- break;
- }
- }
- if (activity.equals(Constants.PRODUCT_TYPE_PINGTUAN)) {
- ProductActivityItemResponse itemResponse = activityByProduct.get(Constants.PRODUCT_TYPE_PINGTUAN);
- if (ObjectUtil.isNotNull(itemResponse)) {
- productResponse.setActivityH5(itemResponse);
- break;
- }
- }
- }
- }
- BeanUtils.copyProperties(storeProduct, productResponse);
- productResponseArrayList.add(productResponse);
- }
- CommonPage productResponseCommonPage = CommonPage.restPage(productResponseArrayList);
- BeanUtils.copyProperties(storeProductCommonPage, productResponseCommonPage, "list");
- return productResponseCommonPage;
- }
-
/**
* 获取商品详情
* @param id 商品编号
@@ -305,8 +248,8 @@ public class ProductServiceImpl implements ProductService {
* @return PageInfo
*/
@Override
- public PageInfo getReplyList(Integer proId, Integer type, PageParamRequest pageParamRequest) {
- return storeProductReplyService.getH5List(proId, type, pageParamRequest);
+ public PageInfo getReplyList(Integer proId, Integer type, String tag, PageParamRequest pageParamRequest) {
+ return storeProductReplyService.getH5List(proId, type, tag, pageParamRequest);
}
/**
@@ -322,7 +265,8 @@ public class ProductServiceImpl implements ProductService {
Long poorCount = myRecord.getLong("poorCount");
String replyChance = myRecord.getStr("replyChance");
Integer replyStar = myRecord.getInt("replyStar");
- return new StoreProductReplayCountResponse(sumCount, goodCount, inCount, poorCount, replyChance, replyStar);
+ List tags = myRecord.get("tags");
+ return new StoreProductReplayCountResponse(sumCount, goodCount, inCount, poorCount, replyChance, replyStar, tags);
}
/**
@@ -365,35 +309,55 @@ public class ProductServiceImpl implements ProductService {
}
/**
- * 获取热门推荐商品列表
+ * 更具类型查询商品
* @param pageRequest 分页参数
* @return CommonPage
*/
@Override
- public CommonPage getHotProductList(PageParamRequest pageRequest) {
- List storeProductList = storeProductService.getIndexProduct(Constants.INDEX_HOT_BANNER, pageRequest);
+ public CommonPage getProductListByType(Integer type, PageParamRequest pageRequest) {
+ if (type < Constants.INDEX_RECOMMEND_BANNER || type > Constants.INDEX_GOOD_BANNER) {
+ return CommonPage.restPage(new ArrayList<>());
+ }
+ List storeProductList = storeProductService.getIndexProduct(type, pageRequest);
if (CollUtil.isEmpty(storeProductList)) {
return CommonPage.restPage(new ArrayList<>());
}
- CommonPage storeProductCommonPage = CommonPage.restPage(storeProductList);
+ return resultIndexProductResponse(storeProductList);
+ }
+ /**
+ * 商品列表
+ * @return CommonPage
+ */
+ @Override
+ public CommonPage getList(ProductRequest request, PageParamRequest pageRequest) {
+ List storeProductList = storeProductService.findH5List(request, pageRequest);
+ if (CollUtil.isEmpty(storeProductList)) {
+ return CommonPage.restPage(new ArrayList<>());
+ }
+ return resultIndexProductResponse(storeProductList);
+ }
+
+ private CommonPage resultIndexProductResponse(List storeProductList) {
+ CommonPage storeProductCommonPage = CommonPage.restPage(storeProductList);
+ Map skuDetails = storeProductService.getSkuDetails(storeProductList.stream().map(StoreProduct::getId).collect(Collectors.toList()));
List productResponseArrayList = new ArrayList<>();
for (StoreProduct storeProduct : storeProductList) {
-
-
IndexProductResponse productResponse = new IndexProductResponse();
- productResponse.setTags(storeProduct.getTags());
+ BeanUtils.copyProperties(storeProduct, productResponse);
+
+ ProductDetailVo skuDetail = skuDetails.get(storeProduct.getId());
+ productResponse.setProductValue(skuDetail.getProductValue());
+ productResponse.setProductAttr(skuDetail.getProductAttr());
List activityList = CrmebUtil.stringToArrayInt(storeProduct.getActivity());
// 活动类型默认:直接跳过
if (activityList.get(0).equals(Constants.PRODUCT_TYPE_NORMAL)) {
- BeanUtils.copyProperties(storeProduct, productResponse);
productResponseArrayList.add(productResponse);
continue;
}
// 根据参与活动添加对应商品活动标示
- HashMap activityByProduct =
- productUtils.getActivityByProduct(storeProduct.getId(), storeProduct.getActivity());
+ HashMap activityByProduct = productUtils.getActivityByProduct(storeProduct.getId(), storeProduct.getActivity());
if (CollUtil.isNotEmpty(activityByProduct)) {
for (Integer activity : activityList) {
if (activity.equals(Constants.PRODUCT_TYPE_NORMAL)) {
@@ -422,7 +386,6 @@ public class ProductServiceImpl implements ProductService {
}
}
}
- BeanUtils.copyProperties(storeProduct, productResponse);
productResponseArrayList.add(productResponse);
}
CommonPage productResponseCommonPage = CommonPage.restPage(productResponseArrayList);
@@ -443,71 +406,6 @@ public class ProductServiceImpl implements ProductService {
return storeProductReplyService.getH5ProductReply(id);
}
- /**
- * 优选商品推荐
- * @return CommonPage
- */
- @Override
- public CommonPage getGoodProductList(PageParamRequest pageRequest) {
- //获取商品列表
- List storeProductList = storeProductService.getIndexProduct(Constants.INDEX_RECOMMEND_BANNER, pageRequest);
- //为空返回
- if (CollUtil.isEmpty(storeProductList)) {
- return CommonPage.restPage(new ArrayList<>());
- }
- //分页
- CommonPage storeProductCommonPage = CommonPage.restPage(storeProductList);
- List productResponseArrayList = new ArrayList<>();
- for (StoreProduct storeProduct : storeProductList) {
- IndexProductResponse productResponse = new IndexProductResponse();
- productResponse.setTags(storeProduct.getTags());
-
- List activityList = CrmebUtil.stringToArrayInt(storeProduct.getActivity());
- // 活动类型默认:直接跳过
- if (activityList.get(0).equals(Constants.PRODUCT_TYPE_NORMAL)) {
- BeanUtils.copyProperties(storeProduct, productResponse);
- productResponseArrayList.add(productResponse);
- continue;
- }
- // 根据参与活动添加对应商品活动标示
- HashMap activityByProduct =
- productUtils.getActivityByProduct(storeProduct.getId(), storeProduct.getActivity());
- if (CollUtil.isNotEmpty(activityByProduct)) {
- for (Integer activity : activityList) {
- if (activity.equals(Constants.PRODUCT_TYPE_NORMAL)) {
- break;
- }
- if (activity.equals(Constants.PRODUCT_TYPE_SECKILL)) {
- ProductActivityItemResponse itemResponse = activityByProduct.get(Constants.PRODUCT_TYPE_SECKILL);
- if (ObjectUtil.isNotNull(itemResponse)) {
- productResponse.setActivityH5(itemResponse);
- break;
- }
- }
- if (activity.equals(Constants.PRODUCT_TYPE_BARGAIN)) {
- ProductActivityItemResponse itemResponse = activityByProduct.get(Constants.PRODUCT_TYPE_BARGAIN);
- if (ObjectUtil.isNotNull(itemResponse)) {
- productResponse.setActivityH5(itemResponse);
- break;
- }
- }
- if (activity.equals(Constants.PRODUCT_TYPE_PINGTUAN)) {
- ProductActivityItemResponse itemResponse = activityByProduct.get(Constants.PRODUCT_TYPE_PINGTUAN);
- if (ObjectUtil.isNotNull(itemResponse)) {
- productResponse.setActivityH5(itemResponse);
- break;
- }
- }
- }
- }
- BeanUtils.copyProperties(storeProduct, productResponse);
- productResponseArrayList.add(productResponse);
- }
- CommonPage productResponseCommonPage = CommonPage.restPage(productResponseArrayList);
- BeanUtils.copyProperties(storeProductCommonPage, productResponseCommonPage, "list");
- return productResponseCommonPage;
- }
-
/**
* 商品列表(个别分类模型使用)
* @param request 列表请求参数
@@ -526,6 +424,7 @@ public class ProductServiceImpl implements ProductService {
User user = userService.getInfo();
List productResponseArrayList = new ArrayList<>();
+ Map skuDetails = storeProductService.getSkuDetails(storeProductList.stream().map(StoreProduct::getId).collect(Collectors.toList()));
for (StoreProduct storeProduct : storeProductList) {
IndexProductResponse productResponse = new IndexProductResponse();
// 获取商品购物车数量
@@ -533,6 +432,9 @@ public class ProductServiceImpl implements ProductService {
productResponse.setCartNum(cartService.getProductNumByUidAndProductId(user.getUid(), storeProduct.getId()));
}
BeanUtils.copyProperties(storeProduct, productResponse);
+ ProductDetailVo skuDetail = skuDetails.get(storeProduct.getId());
+ productResponse.setProductValue(skuDetail.getProductValue());
+ productResponse.setProductAttr(skuDetail.getProductAttr());
productResponseArrayList.add(productResponse);
}
CommonPage productResponseCommonPage = CommonPage.restPage(productResponseArrayList);
@@ -548,73 +450,6 @@ public class ProductServiceImpl implements ProductService {
public List getLeaderboard() {
return storeProductService.getLeaderboard();
}
-
- /**
- * 获取热门推荐商品列表
- * @param pageRequest 分页参数
- * @return CommonPage
- */
- @Override
- public CommonPage getSalesProductList(PageParamRequest pageRequest) {
- List storeProductList = storeProductService.getIndexProduct(Constants.INDEX_BENEFIT_BANNER, pageRequest);
- if (CollUtil.isEmpty(storeProductList)) {
- return CommonPage.restPage(new ArrayList<>());
- }
- CommonPage storeProductCommonPage = CommonPage.restPage(storeProductList);
-
- List productResponseArrayList = new ArrayList<>();
- for (StoreProduct storeProduct : storeProductList) {
-
-
- IndexProductResponse productResponse = new IndexProductResponse();
- productResponse.setTags(storeProduct.getTags());
-
- List activityList = CrmebUtil.stringToArrayInt(storeProduct.getActivity());
- // 活动类型默认:直接跳过
- if (activityList.get(0).equals(Constants.PRODUCT_TYPE_NORMAL)) {
- BeanUtils.copyProperties(storeProduct, productResponse);
- productResponseArrayList.add(productResponse);
- continue;
- }
- // 根据参与活动添加对应商品活动标示
- HashMap activityByProduct =
- productUtils.getActivityByProduct(storeProduct.getId(), storeProduct.getActivity());
- if (CollUtil.isNotEmpty(activityByProduct)) {
- for (Integer activity : activityList) {
- if (activity.equals(Constants.PRODUCT_TYPE_NORMAL)) {
- break;
- }
- if (activity.equals(Constants.PRODUCT_TYPE_SECKILL)) {
- ProductActivityItemResponse itemResponse = activityByProduct.get(Constants.PRODUCT_TYPE_SECKILL);
- if (ObjectUtil.isNotNull(itemResponse)) {
- productResponse.setActivityH5(itemResponse);
- break;
- }
- }
- if (activity.equals(Constants.PRODUCT_TYPE_BARGAIN)) {
- ProductActivityItemResponse itemResponse = activityByProduct.get(Constants.PRODUCT_TYPE_BARGAIN);
- if (ObjectUtil.isNotNull(itemResponse)) {
- productResponse.setActivityH5(itemResponse);
- break;
- }
- }
- if (activity.equals(Constants.PRODUCT_TYPE_PINGTUAN)) {
- ProductActivityItemResponse itemResponse = activityByProduct.get(Constants.PRODUCT_TYPE_PINGTUAN);
- if (ObjectUtil.isNotNull(itemResponse)) {
- productResponse.setActivityH5(itemResponse);
- break;
- }
- }
- }
- }
- BeanUtils.copyProperties(storeProduct, productResponse);
- productResponseArrayList.add(productResponse);
- }
- CommonPage productResponseCommonPage = CommonPage.restPage(productResponseArrayList);
- BeanUtils.copyProperties(storeProductCommonPage, productResponseCommonPage, "list");
- return productResponseCommonPage;
- }
-
}
diff --git a/food-service/pom.xml b/food-service/pom.xml
index 66e43dd..7435392 100644
--- a/food-service/pom.xml
+++ b/food-service/pom.xml
@@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- yzy
+ prepare_food
com.zbkj
0.0.1-SNAPSHOT
diff --git a/food-service/src/main/java/com/zbkj/service/dao/DeliverySetFeeDao.java b/food-service/src/main/java/com/zbkj/service/dao/DeliverySetFeeDao.java
deleted file mode 100644
index f14ecd1..0000000
--- a/food-service/src/main/java/com/zbkj/service/dao/DeliverySetFeeDao.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.zbkj.service.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zbkj.common.model.deliveryset.DeliverySetFee;
-
-public interface DeliverySetFeeDao extends BaseMapper {
-
-}
diff --git a/food-service/src/main/java/com/zbkj/service/dao/StoreProductReplyDao.java b/food-service/src/main/java/com/zbkj/service/dao/StoreProductReplyDao.java
index 7737fc3..2ccd707 100644
--- a/food-service/src/main/java/com/zbkj/service/dao/StoreProductReplyDao.java
+++ b/food-service/src/main/java/com/zbkj/service/dao/StoreProductReplyDao.java
@@ -2,6 +2,9 @@ package com.zbkj.service.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zbkj.common.model.product.StoreProductReply;
+import com.zbkj.common.vo.ReplyReviewTagsVo;
+
+import java.util.List;
/**
* 评论表 Mapper 接口
@@ -9,4 +12,6 @@ import com.zbkj.common.model.product.StoreProductReply;
*/
public interface StoreProductReplyDao extends BaseMapper {
+ List getReviewTags(Integer productId);
+
}
diff --git a/food-service/src/main/java/com/zbkj/service/delete/OrderUtils.java b/food-service/src/main/java/com/zbkj/service/delete/OrderUtils.java
index 6081196..aeebb99 100644
--- a/food-service/src/main/java/com/zbkj/service/delete/OrderUtils.java
+++ b/food-service/src/main/java/com/zbkj/service/delete/OrderUtils.java
@@ -119,52 +119,67 @@ public class OrderUtils {
return payTypeStr;
}
+ public static void main(String[] args) {
+ Integer status = null;
+ switch (status) {
+ case Constants.ORDER_STATUS_H5_UNPAID: // 未支付
+ System.out.println("111");
+ break;
+ case Constants.ORDER_STATUS_H5_NOT_SHIPPED: // 待发货
+ System.out.println("222");
+ break;
+ }
+ System.out.println("出来");
+ }
+
/**
* h5 订单查询 where status 封装
* @param queryWrapper 查询条件
* @param status 状态
*/
public void statusApiByWhere(LambdaQueryWrapper queryWrapper, Integer status){
- switch (status){
- case Constants.ORDER_STATUS_H5_UNPAID: // 未支付
- queryWrapper.eq(StoreOrder::getPaid, false);
- queryWrapper.eq(StoreOrder::getStatus, 0);
- queryWrapper.eq(StoreOrder::getRefundStatus, 0);
- queryWrapper.eq(StoreOrder::getType, 0);
- break;
- case Constants.ORDER_STATUS_H5_NOT_SHIPPED: // 待发货
- queryWrapper.eq(StoreOrder::getPaid, true);
- queryWrapper.eq(StoreOrder::getStatus, 0);
- queryWrapper.eq(StoreOrder::getRefundStatus, 0);
+ if (null != status) {
+ switch (status) {
+ case Constants.ORDER_STATUS_H5_UNPAID: // 未支付
+ queryWrapper.eq(StoreOrder::getPaid, false);
+ queryWrapper.eq(StoreOrder::getStatus, 0);
+ queryWrapper.eq(StoreOrder::getRefundStatus, 0);
+ queryWrapper.eq(StoreOrder::getType, 0);
+ break;
+ case Constants.ORDER_STATUS_H5_NOT_SHIPPED: // 待发货
+ queryWrapper.eq(StoreOrder::getPaid, true);
+ queryWrapper.eq(StoreOrder::getStatus, 0);
+ queryWrapper.eq(StoreOrder::getRefundStatus, 0);
// queryWrapper.eq(StoreOrder::getShippingType, 1);
- break;
- case Constants.ORDER_STATUS_H5_SPIKE: // 待收货
- queryWrapper.eq(StoreOrder::getPaid, true);
- queryWrapper.eq(StoreOrder::getStatus, 1);
- queryWrapper.eq(StoreOrder::getRefundStatus, 0);
- break;
- case Constants.ORDER_STATUS_H5_JUDGE: // 已支付 已收货 待评价
- queryWrapper.eq(StoreOrder::getPaid, true);
- queryWrapper.eq(StoreOrder::getStatus, 2);
- queryWrapper.eq(StoreOrder::getRefundStatus, 0);
- break;
- case Constants.ORDER_STATUS_H5_COMPLETE: // 已完成
- queryWrapper.eq(StoreOrder::getPaid, true);
- queryWrapper.eq(StoreOrder::getStatus, 3);
- queryWrapper.eq(StoreOrder::getRefundStatus, 0);
- break;
- case Constants.ORDER_STATUS_H5_REFUNDING: // 退款中
- queryWrapper.eq(StoreOrder::getPaid, true);
- queryWrapper.in(StoreOrder::getRefundStatus, 1, 3);
- break;
- case Constants.ORDER_STATUS_H5_REFUNDED: // 已退款
- queryWrapper.eq(StoreOrder::getPaid, true);
- queryWrapper.eq(StoreOrder::getRefundStatus, 2);
- break;
- case Constants.ORDER_STATUS_H5_REFUND: // 包含已退款和退款中
- queryWrapper.eq(StoreOrder::getPaid, true);
- queryWrapper.in(StoreOrder::getRefundStatus, 1,2,3);
- break;
+ break;
+ case Constants.ORDER_STATUS_H5_SPIKE: // 待收货
+ queryWrapper.eq(StoreOrder::getPaid, true);
+ queryWrapper.eq(StoreOrder::getStatus, 1);
+ queryWrapper.eq(StoreOrder::getRefundStatus, 0);
+ break;
+ case Constants.ORDER_STATUS_H5_JUDGE: // 已支付 已收货 待评价
+ queryWrapper.eq(StoreOrder::getPaid, true);
+ queryWrapper.eq(StoreOrder::getStatus, 2);
+ queryWrapper.eq(StoreOrder::getRefundStatus, 0);
+ break;
+ case Constants.ORDER_STATUS_H5_COMPLETE: // 已完成
+ queryWrapper.eq(StoreOrder::getPaid, true);
+ queryWrapper.eq(StoreOrder::getStatus, 3);
+ queryWrapper.eq(StoreOrder::getRefundStatus, 0);
+ break;
+ case Constants.ORDER_STATUS_H5_REFUNDING: // 退款中
+ queryWrapper.eq(StoreOrder::getPaid, true);
+ queryWrapper.in(StoreOrder::getRefundStatus, 1, 3);
+ break;
+ case Constants.ORDER_STATUS_H5_REFUNDED: // 已退款
+ queryWrapper.eq(StoreOrder::getPaid, true);
+ queryWrapper.eq(StoreOrder::getRefundStatus, 2);
+ break;
+ case Constants.ORDER_STATUS_H5_REFUND: // 包含已退款和退款中
+ queryWrapper.eq(StoreOrder::getPaid, true);
+ queryWrapper.in(StoreOrder::getRefundStatus, 1, 2, 3);
+ break;
+ }
}
queryWrapper.eq(StoreOrder::getIsDel, false);
queryWrapper.eq(StoreOrder::getIsSystemDel, false);
diff --git a/food-service/src/main/java/com/zbkj/service/service/DeliverySetFeeService.java b/food-service/src/main/java/com/zbkj/service/service/DeliverySetFeeService.java
deleted file mode 100644
index 256a880..0000000
--- a/food-service/src/main/java/com/zbkj/service/service/DeliverySetFeeService.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.zbkj.service.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.zbkj.common.model.deliveryset.DeliverySetFee;
-
-public interface DeliverySetFeeService extends IService {
-
-
-}
-
diff --git a/food-service/src/main/java/com/zbkj/service/service/DeliverySetTimeService.java b/food-service/src/main/java/com/zbkj/service/service/DeliverySetTimeService.java
index a37ec10..25ed10e 100644
--- a/food-service/src/main/java/com/zbkj/service/service/DeliverySetTimeService.java
+++ b/food-service/src/main/java/com/zbkj/service/service/DeliverySetTimeService.java
@@ -3,8 +3,14 @@ package com.zbkj.service.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zbkj.common.model.deliveryset.DeliverySetTime;
+import com.zbkj.common.response.DeliveryTimeResponse;
+
+import java.util.List;
+import java.util.Map;
public interface DeliverySetTimeService extends IService {
+ List getDeliveryTime();
+
}
diff --git a/food-service/src/main/java/com/zbkj/service/service/StoreCartService.java b/food-service/src/main/java/com/zbkj/service/service/StoreCartService.java
index b8be485..0423dbc 100644
--- a/food-service/src/main/java/com/zbkj/service/service/StoreCartService.java
+++ b/food-service/src/main/java/com/zbkj/service/service/StoreCartService.java
@@ -24,7 +24,7 @@ public interface StoreCartService extends IService {
* @param isValid 是否失效
* @return 购物车列表
*/
- PageInfo getList(PageParamRequest pageParamRequest, boolean isValid);
+ PageInfo getList(PageParamRequest pageParamRequest, Boolean isValid);
/**
* 获取当前购物车数量
diff --git a/food-service/src/main/java/com/zbkj/service/service/StoreProductReplyService.java b/food-service/src/main/java/com/zbkj/service/service/StoreProductReplyService.java
index 56986b7..07c8d23 100644
--- a/food-service/src/main/java/com/zbkj/service/service/StoreProductReplyService.java
+++ b/food-service/src/main/java/com/zbkj/service/service/StoreProductReplyService.java
@@ -69,7 +69,7 @@ public interface StoreProductReplyService extends IService {
* @param pageParamRequest 分页参数
* @return PageInfo
*/
- PageInfo getH5List(Integer proId, Integer type, PageParamRequest pageParamRequest);
+ PageInfo getH5List(Integer proId, Integer type, String tag, PageParamRequest pageParamRequest);
/**
* 删除评论
diff --git a/food-service/src/main/java/com/zbkj/service/service/impl/DeliverySetFeeServiceImpl.java b/food-service/src/main/java/com/zbkj/service/service/impl/DeliverySetFeeServiceImpl.java
deleted file mode 100644
index 2435c62..0000000
--- a/food-service/src/main/java/com/zbkj/service/service/impl/DeliverySetFeeServiceImpl.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.zbkj.service.service.impl;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zbkj.common.model.deliveryset.DeliverySetFee;
-import com.zbkj.service.dao.DeliverySetFeeDao;
-import com.zbkj.service.service.DeliverySetFeeService;
-import org.springframework.stereotype.Service;
-
-@Service
-public class DeliverySetFeeServiceImpl extends ServiceImpl implements DeliverySetFeeService {
-
-}
diff --git a/food-service/src/main/java/com/zbkj/service/service/impl/DeliverySetTimeServiceImpl.java b/food-service/src/main/java/com/zbkj/service/service/impl/DeliverySetTimeServiceImpl.java
index 807f6b3..b59b094 100644
--- a/food-service/src/main/java/com/zbkj/service/service/impl/DeliverySetTimeServiceImpl.java
+++ b/food-service/src/main/java/com/zbkj/service/service/impl/DeliverySetTimeServiceImpl.java
@@ -1,12 +1,44 @@
package com.zbkj.service.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zbkj.common.constants.Constants;
import com.zbkj.common.model.deliveryset.DeliverySetTime;
+import com.zbkj.common.response.DeliveryTimeResponse;
+import com.zbkj.common.utils.DeliveryUtil;
import com.zbkj.service.dao.DeliverySetTimeDao;
import com.zbkj.service.service.DeliverySetTimeService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.time.LocalDate;
+import java.time.LocalTime;
+import java.util.*;
+
@Service
public class DeliverySetTimeServiceImpl extends ServiceImpl implements DeliverySetTimeService {
+ @Autowired private DeliverySetTimeDao dao;
+
+ @Override
+ public List getDeliveryTime() {
+ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>();
+ lqw.eq(DeliverySetTime::getType, 1);
+ lqw.eq(DeliverySetTime::getStatus, Constants.COMMON_SWITCH_CLOSE);
+ DeliverySetTime deliverySetTime = dao.selectOne(lqw);
+ // 设置起始日期和天数
+ LocalDate startDate = LocalDate.now();; // 起始日期
+ int numberOfDays = deliverySetTime.getAppointDay(); // 需要生成的天数
+ int splitMin = deliverySetTime.getSendSplit(); // 间隔分钟数
+ String[] amSplit = deliverySetTime.getAmSendHour().split("-");
+ String[] pmSplit = deliverySetTime.getPmSendHour().split("-");
+ // 定义上午和下午的时间区间
+ LocalTime morningStart = LocalTime.of(Integer.parseInt(amSplit[0]), 0); // 上午开始时间
+ LocalTime morningEnd = LocalTime.of(Integer.parseInt(amSplit[1]), 0); // 上午结束时间
+ LocalTime afternoonStart = LocalTime.of(Integer.parseInt(pmSplit[0]), 0); // 下午开始时间
+ LocalTime afternoonEnd = LocalTime.of(Integer.parseInt(pmSplit[1]), 0); // 下午结束时间
+ // 获取时间段
+ return DeliveryUtil.getHourlyTimeIntervals(startDate, numberOfDays, splitMin, morningStart, morningEnd, afternoonStart, afternoonEnd);
+ }
+
}
diff --git a/food-service/src/main/java/com/zbkj/service/service/impl/EbHomeServiceImpl.java b/food-service/src/main/java/com/zbkj/service/service/impl/EbHomeServiceImpl.java
index ae0e3ab..98299d3 100644
--- a/food-service/src/main/java/com/zbkj/service/service/impl/EbHomeServiceImpl.java
+++ b/food-service/src/main/java/com/zbkj/service/service/impl/EbHomeServiceImpl.java
@@ -37,10 +37,10 @@ public class EbHomeServiceImpl extends ServiceImpl implements EbH
public List getIndexHomeList(Integer storeId) {
List homeVos = dao.selectHomeType(Constants.HOME_TYPE_1, storeId);
for (HomeVo homeVo : homeVos) {
- // 默认展示99个
+ // 默认展示5个
PageParamRequest fpPage = new PageParamRequest();
fpPage.setPage(1);
- fpPage.setLimit(99);
+ fpPage.setLimit(5);
SetMealFloorProRequest fp = new SetMealFloorProRequest();
fp.setHomeId(homeVo.getId().toString());
List fpResult = selectPageSetMealFloorPro(fp, fpPage);
diff --git a/food-service/src/main/java/com/zbkj/service/service/impl/OrderServiceImpl.java b/food-service/src/main/java/com/zbkj/service/service/impl/OrderServiceImpl.java
index 09ee8aa..9168604 100644
--- a/food-service/src/main/java/com/zbkj/service/service/impl/OrderServiceImpl.java
+++ b/food-service/src/main/java/com/zbkj/service/service/impl/OrderServiceImpl.java
@@ -34,9 +34,7 @@ import com.zbkj.common.model.user.UserAddress;
import com.zbkj.common.page.CommonPage;
import com.zbkj.common.request.*;
import com.zbkj.common.response.*;
-import com.zbkj.common.utils.CrmebUtil;
-import com.zbkj.common.utils.DateUtil;
-import com.zbkj.common.utils.RedisUtil;
+import com.zbkj.common.utils.*;
import com.zbkj.common.vo.*;
import com.zbkj.service.delete.OrderUtils;
import com.zbkj.service.service.*;
@@ -53,6 +51,8 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.TransactionTemplate;
import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -476,7 +476,7 @@ public class OrderServiceImpl implements OrderService {
return "退款中";
}
if (storeOrder.getStatus().equals(0)) {
- return "待发货";
+ return "备货中";
}
if (storeOrder.getStatus().equals(1)) {
return "待收货";
@@ -818,7 +818,7 @@ public class OrderServiceImpl implements OrderService {
UserAddress userAddress = userAddressService.getDefaultByUid(user.getUid());
if (ObjectUtil.isNotNull(userAddress)) {
// 计算运费
- getFreightFee(orderInfoVo, userAddress);
+ getFreightFeeRider(orderInfoVo, userAddress);
orderInfoVo.setAddressId(userAddress.getId());
orderInfoVo.setRealName(userAddress.getRealName());
orderInfoVo.setPhone(userAddress.getPhone());
@@ -833,6 +833,7 @@ public class OrderServiceImpl implements OrderService {
orderInfoVo.setPayFee(orderInfoVo.getProTotalFee().add(orderInfoVo.getFreightFee()));
orderInfoVo.setUserIntegral(user.getIntegral());
orderInfoVo.setUserBalance(user.getNowMoney());
+ orderInfoVo.setMerId(request.getMerId());
// 缓存订单
String key = user.getUid() + DateUtil.getNowTime().toString()+CrmebUtil.getUuid();
redisUtil.set("user_order:" + key, JSONObject.toJSONString(orderInfoVo), Constants.ORDER_CASH_CONFIRM, TimeUnit.MINUTES);
@@ -937,7 +938,7 @@ public class OrderServiceImpl implements OrderService {
request.setRealName(userAddress.getRealName());
request.setPhone(userAddress.getPhone());
userAddressStr = userAddress.getProvince() + userAddress.getCity() + userAddress.getDistrict() + userAddress.getDetail();
- }else if (request.getShippingType() == 2) { // 到店自提
+ } else if (request.getShippingType() == 2) { // 到店自提
if (StringUtils.isBlank(request.getRealName()) || StringUtils.isBlank(request.getPhone())) {
throw new CrmebException("请填写姓名和电话");
}
@@ -950,8 +951,31 @@ public class OrderServiceImpl implements OrderService {
if (ObjectUtil.isNull(systemStore) || systemStore.getIsDel() || !systemStore.getIsShow()) {
throw new CrmebException("暂无门店无法选择门店自提");
}
- verifyCode = CrmebUtil.randomCount(1000000000L, 9999999999L)+"";
+ verifyCode = CrmebUtil.randomCount(1000000000L, 9999999999L) + "";
userAddressStr = systemStore.getName();
+ } else if (request.getShippingType() == 3) { // 骑手配送
+ String deliveryTime = request.getDeliveryTime();
+ if (request.getAddressId() <= 0) throw new CrmebException("请选择配送地址");
+ if (StringUtils.isEmpty(deliveryTime)) throw new CrmebException("请选择配送时间");
+
+ UserAddress userAddress = userAddressService.getById(request.getAddressId());
+ if (ObjectUtil.isNull(userAddress) || userAddress.getIsDel()) {
+ throw new CrmebException("地址有误");
+ }
+ request.setRealName(userAddress.getRealName());
+ request.setPhone(userAddress.getPhone());
+ userAddressStr = userAddress.getProvince() + userAddress.getCity() + userAddress.getDistrict() + userAddress.getDetail();
+
+ DateTimeFormatter ymdHmFor = DateTimeFormatter.ofPattern(Constants.DATE_FORMAT_HHMM);
+ LocalDateTime dTime = LocalDateTime.parse(deliveryTime, ymdHmFor);
+ LocalDateTime now = LocalDateTime.now();
+ Integer isNowDay = DeliveryUtil.isNowDay(dTime);
+ // 选择配送的时间满足条件才可通过
+ // 配送时间不是今天 通过
+ // 配送时间是今天下午 && 当前时间是上午 通过
+ if (!(isNowDay == 0 || (isNowDay == 1 && DeliveryUtil.isAmOrPm(dTime) == 1 && DeliveryUtil.isAmOrPm(now) == 0))) {
+ throw new CrmebException("请重新选择配送时间");
+ }
}
// 活动商品校验
@@ -1888,11 +1912,78 @@ public class OrderServiceImpl implements OrderService {
return storeOrder;
}
+ /**
+ * 骑手配送费用
+ */
+ private void getFreightFeeRider(OrderInfoVo orderInfoVo, UserAddress userAddress) {
+ // 判断是否满额包邮 type=1按件数 2按重量 3按体积 4按距离
+ // 全场满额骑手开关
+ String riderSwitchString = systemConfigService.getValueByKey(SysConfigConstants.STORE_FEE_RIDER_SWITCH);
+ // 全场满额骑手金额
+ String storeFreeRiderString = systemConfigService.getValueByKey(SysConfigConstants.STORE_FEE_RIDER);
+ BigDecimal storePostage = BigDecimal.ZERO;
+ if ("true".equals(riderSwitchString) && ("0".equals(storeFreeRiderString) || orderInfoVo.getProTotalFee().compareTo(new BigDecimal(storeFreeRiderString)) >= 0)) {
+ storePostage = BigDecimal.ZERO;
+ } else if (ObjectUtil.isNull(userAddress) || userAddress.getCityId() <= 0) {
+ // 用户地址不存在,默认运费为0元
+ storePostage = BigDecimal.ZERO;
+ } else {
+ // 有用户地址的情况下
+ // 运费根据商品计算
+ Integer merId = orderInfoVo.getMerId();
+ SystemStore store = systemStoreService.getById(merId);
+ // 门店经度
+ String storeLatitude = store.getLatitude();
+ // 门店纬度
+ String storeLongitude = store.getLongitude();
+ // 用户经度
+ String userLongitude = userAddress.getLongitude();
+ // 用户纬度
+ String userLatitude = userAddress.getLatitude();
+ // 模板
+ Integer tempId = orderInfoVo.getOrderDetailList().get(0).getTempId();
+ // 指定包邮(单品运费模板)> 指定区域配送(单品运费模板)
+ int cityId = userAddress.getCityId();
+ // 门店和用户距离 km
+ BigDecimal km = BigDecimal.valueOf(DistanceUtil.haversineDistance(new Double(storeLatitude), new Double(storeLongitude), new Double(userLatitude), new Double(userLongitude)));
+
+ ShippingTemplates shippingTemplate = shippingTemplatesService.getById(tempId);
+ if (shippingTemplate.getAppoint()) { // 指定包邮
+ // 必须满足件数 [公里数小于等于 免费公里数] 才能包邮
+ ShippingTemplatesFree shippingTemplatesFree = shippingTemplatesFreeService.getByTempIdAndCityId(tempId, cityId);
+ if (ObjectUtil.isNotNull(shippingTemplatesFree)) { // 在包邮区域内
+ BigDecimal freeNum = shippingTemplatesFree.getNumber();
+ // 在免费公里数以内 = 包邮
+ if (freeNum.compareTo(km) >= 0) {
+ orderInfoVo.setFreightFee(storePostage);
+ return;
+ }
+ }
+ }
+ // 不满足指定包邮条件,走指定区域配送
+ ShippingTemplatesRegion shippingTemplatesRegion = shippingTemplatesRegionService.getByTempIdAndCityId(tempId, cityId);
+ if (ObjectUtil.isNull(shippingTemplatesRegion)) {
+ throw new CrmebException("计算配送费时,未找到全国配送配置");
+ }
+ // 判断距离是否超过首公里数
+ if (km.compareTo(shippingTemplatesRegion.getFirst()) <= 0) {
+ storePostage = storePostage.add(shippingTemplatesRegion.getFirstPrice());
+ } else { // 超过首公里数的需要计算续费
+ BigDecimal exceedKm = km.subtract(shippingTemplatesRegion.getFirst());
+ // 剩余公里数 / 续公里数 = 需要计算的续公里数费用的次数
+ BigDecimal divide = exceedKm.divide(shippingTemplatesRegion.getRenewal(), 0, BigDecimal.ROUND_UP);
+ BigDecimal renewalPrice = shippingTemplatesRegion.getRenewalPrice().multiply(divide);
+ storePostage = storePostage.add(shippingTemplatesRegion.getFirstPrice()).add(renewalPrice);
+ }
+ }
+ orderInfoVo.setFreightFee(storePostage);
+ }
+
/**
* 计算订单运费
*/
private void getFreightFee(OrderInfoVo orderInfoVo, UserAddress userAddress) {
- // 判断是否满额包邮 type=1按件数 2按重量 3按体积
+ // 判断是否满额包邮 type=1按件数 2按重量 3按体积 4按距离
// 全场满额包邮开关
String postageSwitchString = systemConfigService.getValueByKey(SysConfigConstants.STORE_FEE_POSTAGE_SWITCH);
// 全场满额包邮金额
@@ -2012,6 +2103,14 @@ public class OrderServiceImpl implements OrderService {
} else if (ObjectUtil.isNull(request.getAddressId()) || request.getAddressId() <= 0) {
// 快递配送,无地址
priceResponse.setFreightFee(BigDecimal.ZERO);
+ } else if (request.getShippingType().equals(3)) { // 骑手配送,计算距离公里数
+ UserAddress userAddress = userAddressService.getById(request.getAddressId());
+ if (ObjectUtil.isNull(userAddress)) {
+ priceResponse.setFreightFee(BigDecimal.ZERO);
+ } else {
+ getFreightFeeRider(orderInfoVo, userAddress);
+ priceResponse.setFreightFee(orderInfoVo.getFreightFee());
+ }
} else {// 快递配送,有地址
UserAddress userAddress = userAddressService.getById(request.getAddressId());
if (ObjectUtil.isNull(userAddress)) {
diff --git a/food-service/src/main/java/com/zbkj/service/service/impl/ShippingTemplatesFreeServiceImpl.java b/food-service/src/main/java/com/zbkj/service/service/impl/ShippingTemplatesFreeServiceImpl.java
index e619084..e5c72ec 100644
--- a/food-service/src/main/java/com/zbkj/service/service/impl/ShippingTemplatesFreeServiceImpl.java
+++ b/food-service/src/main/java/com/zbkj/service/service/impl/ShippingTemplatesFreeServiceImpl.java
@@ -2,6 +2,8 @@ package com.zbkj.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zbkj.common.model.express.ShippingTemplatesRegion;
+import com.zbkj.common.request.ShippingTemplatesRegionRequest;
import com.zbkj.common.utils.CrmebUtil;
import com.zbkj.common.model.express.ShippingTemplatesFree;
import com.zbkj.common.request.ShippingTemplatesFreeRequest;
@@ -16,6 +18,8 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
* ShippingTemplatesFreeServiceImpl 接口实现
@@ -140,7 +144,24 @@ public class ShippingTemplatesFreeServiceImpl extends ServiceImpl getListGroup(Integer tempId) {
- return dao.getListGroup(tempId);
+ List resList = new ArrayList<>();
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.eq(ShippingTemplatesFree::getTempId, tempId);
+ lambdaQueryWrapper.eq(ShippingTemplatesFree::getStatus, true);
+ lambdaQueryWrapper.orderByAsc(ShippingTemplatesFree::getId);
+ List list = dao.selectList(lambdaQueryWrapper);
+ Map> listMap = list.stream().collect(Collectors.groupingBy(ShippingTemplatesFree::getUniqid));
+ // 遍历分组结果
+ listMap.forEach((uniqId, value) -> {
+ String cityIds = value.stream().map(i -> i.getCityId().toString()).distinct().collect(Collectors.joining(","));
+ ShippingTemplatesFreeRequest res = new ShippingTemplatesFreeRequest();
+ res.setCityId(cityIds);
+ res.setTitle(value.get(0).getTitle());
+ res.setNumber(value.get(0).getNumber());
+ res.setPrice(value.get(0).getPrice());
+ resList.add(res);
+ });
+ return resList; //dao.getListGroup(tempId);
}
}
diff --git a/food-service/src/main/java/com/zbkj/service/service/impl/ShippingTemplatesRegionServiceImpl.java b/food-service/src/main/java/com/zbkj/service/service/impl/ShippingTemplatesRegionServiceImpl.java
index a61e217..c97f521 100644
--- a/food-service/src/main/java/com/zbkj/service/service/impl/ShippingTemplatesRegionServiceImpl.java
+++ b/food-service/src/main/java/com/zbkj/service/service/impl/ShippingTemplatesRegionServiceImpl.java
@@ -2,6 +2,9 @@ package com.zbkj.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zbkj.common.model.product.StoreProductAttrValue;
+import com.zbkj.common.model.user.UserGroup;
+import com.zbkj.common.model.user.UserTag;
import com.zbkj.common.utils.CrmebUtil;
import com.zbkj.common.model.express.ShippingTemplatesRegion;
import com.zbkj.common.request.ShippingTemplatesRegionRequest;
@@ -18,6 +21,8 @@ import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
* ShippingTemplatesRegionServiceImpl 接口实现
@@ -83,7 +88,6 @@ public class ShippingTemplatesRegionServiceImpl extends ServiceImpl getListGroup(Integer tempId) {
- return dao.getListGroup(tempId);
+ List resList = new ArrayList<>();
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.eq(ShippingTemplatesRegion::getTempId, tempId);
+ lambdaQueryWrapper.eq(ShippingTemplatesRegion::getStatus, true);
+ lambdaQueryWrapper.orderByAsc(ShippingTemplatesRegion::getId);
+ List list = dao.selectList(lambdaQueryWrapper);
+ Map> listMap = list.stream().collect(Collectors.groupingBy(ShippingTemplatesRegion::getUniqid));
+ // 遍历分组结果
+ listMap.forEach((uniqId, value) -> {
+ String cityIds = value.stream().map(i -> i.getCityId().toString()).distinct().collect(Collectors.joining(","));
+ ShippingTemplatesRegionRequest res = new ShippingTemplatesRegionRequest();
+ res.setCityId(cityIds);
+ res.setTitle(value.get(0).getTitle());
+ res.setFirst(value.get(0).getFirst());
+ res.setFirstPrice(value.get(0).getFirstPrice());
+ res.setRenewal(value.get(0).getRenewal());
+ res.setRenewalPrice(value.get(0).getRenewalPrice());
+ res.setUniqid(uniqId);
+ resList.add(res);
+ });
+ return resList; //dao.getListGroup(tempId);
}
}
diff --git a/food-service/src/main/java/com/zbkj/service/service/impl/ShippingTemplatesServiceImpl.java b/food-service/src/main/java/com/zbkj/service/service/impl/ShippingTemplatesServiceImpl.java
index 63222b4..cad913a 100644
--- a/food-service/src/main/java/com/zbkj/service/service/impl/ShippingTemplatesServiceImpl.java
+++ b/food-service/src/main/java/com/zbkj/service/service/impl/ShippingTemplatesServiceImpl.java
@@ -77,21 +77,18 @@ public class ShippingTemplatesServiceImpl extends ServiceImpl shippingTemplatesRegionRequestList = request.getShippingTemplatesRegionRequestList();
if (CollUtil.isEmpty(shippingTemplatesRegionRequestList)) {
- throw new CrmebException("区域运费最少需要一条默认的全国区域");
+ throw new CrmebException("区域配送最少需要一条默认的全国区域");
}
-
ShippingTemplates shippingTemplates = new ShippingTemplates();
shippingTemplates.setName(request.getName());
shippingTemplates.setSort(request.getSort());
shippingTemplates.setType(request.getType());
shippingTemplates.setAppoint(request.getAppoint());
-
save(shippingTemplates);
//区域运费
shippingTemplatesRegionService.saveAll(shippingTemplatesRegionRequestList, request.getType(), shippingTemplates.getId());
-
List shippingTemplatesFreeRequestList = request.getShippingTemplatesFreeRequestList();
if(null != shippingTemplatesFreeRequestList && shippingTemplatesFreeRequestList.size() > 0 && request.getAppoint()){
shippingTemplatesFreeService.saveAll(shippingTemplatesFreeRequestList, request.getType(), shippingTemplates.getId());
diff --git a/food-service/src/main/java/com/zbkj/service/service/impl/StoreCartServiceImpl.java b/food-service/src/main/java/com/zbkj/service/service/impl/StoreCartServiceImpl.java
index 38f2d3d..54d2670 100644
--- a/food-service/src/main/java/com/zbkj/service/service/impl/StoreCartServiceImpl.java
+++ b/food-service/src/main/java/com/zbkj/service/service/impl/StoreCartServiceImpl.java
@@ -73,7 +73,7 @@ public class StoreCartServiceImpl extends ServiceImpl i
* @return List
*/
@Override
- public PageInfo getList(PageParamRequest pageParamRequest, boolean isValid) {
+ public PageInfo getList(PageParamRequest pageParamRequest, Boolean isValid) {
Integer userId = userService.getUserIdException();
Page page = PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit());
//带 StoreCart 类的多条件查询
@@ -102,7 +102,7 @@ public class StoreCartServiceImpl extends ServiceImpl i
cartInfoResponse.setImage(storeProduct.getImage());
cartInfoResponse.setStoreName(storeProduct.getStoreName());
- if (!isValid) {// 失效商品直接掠过
+ if (!isValid) { // 失效商品直接掠过
cartInfoResponse.setAttrStatus(false);
response.add(cartInfoResponse);
continue ;
@@ -179,7 +179,6 @@ public class StoreCartServiceImpl extends ServiceImpl i
storeCartPram.setProductAttrUnique(storeCartRequest.getProductAttrUnique());
storeCartPram.setUid(currentUser.getUid());
List existCarts = getByEntity(storeCartPram); // 这里仅仅能获取一条以信息
- String todayStr = DateUtil.date().toString(Constants.DATE_FORMAT_DATE);
if (existCarts.size() > 0) { // 购物车添加数量
StoreCart forUpdateStoreCart = existCarts.get(0);
forUpdateStoreCart.setCartNum(forUpdateStoreCart.getCartNum() + storeCartRequest.getCartNum());
@@ -341,12 +340,14 @@ public class StoreCartServiceImpl extends ServiceImpl i
* @param status Boolean 商品类型:true-有效商品,false-无效商品
* @return Integer
*/
- private Integer getUserCountByStatus(Integer userId, Boolean status) {
+ private Integer getUserCountByStatus(Integer userId, Integer status) {
//购物车商品种类数量
LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(StoreCart::getUid, userId);
- lambdaQueryWrapper.eq(StoreCart::getStatus, status);
lambdaQueryWrapper.eq(StoreCart::getIsNew, false);
+ if (null != status) {
+ lambdaQueryWrapper.eq(StoreCart::getStatus, (status == Constants.STATUS_NORMAL ? true : false));
+ }
return dao.selectCount(lambdaQueryWrapper);
}
@@ -356,12 +357,14 @@ public class StoreCartServiceImpl extends ServiceImpl i
* @param status 商品类型:true-有效商品,false-无效商品
* @return Integer
*/
- private Integer getUserSumByStatus(Integer userId, Boolean status) {
+ private Integer getUserSumByStatus(Integer userId, Integer status) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.select("ifnull(sum(cart_num), 0) as cart_num");
queryWrapper.eq("uid", userId);
queryWrapper.eq("is_new", false);
- queryWrapper.eq("status", status);
+ if (null != status) {
+ queryWrapper.eq("status", (status == Constants.STATUS_NORMAL ? true : false));
+ }
StoreCart storeCart = dao.selectOne(queryWrapper);
if (ObjectUtil.isNull(storeCart)) {
return 0;
diff --git a/food-service/src/main/java/com/zbkj/service/service/impl/StoreOrderServiceImpl.java b/food-service/src/main/java/com/zbkj/service/service/impl/StoreOrderServiceImpl.java
index 3c5c9a7..b1da133 100644
--- a/food-service/src/main/java/com/zbkj/service/service/impl/StoreOrderServiceImpl.java
+++ b/food-service/src/main/java/com/zbkj/service/service/impl/StoreOrderServiceImpl.java
@@ -152,7 +152,7 @@ public class StoreOrderServiceImpl extends ServiceImpl 0) {
replyStar = getSumStar(productId);
-
}
+ List tags = dao.getReviewTags(productId);
MyRecord record = new MyRecord();
record.set("sumCount", sumCount);
record.set("goodCount", goodCount);
@@ -250,6 +251,7 @@ public class StoreProductReplyServiceImpl extends ServiceImpl
*/
@Override
- public PageInfo getH5List(Integer proId, Integer type, PageParamRequest pageParamRequest) {
+ public PageInfo getH5List(Integer proId, Integer type, String tag, PageParamRequest pageParamRequest) {
Page startPage = PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit());
//带 StoreProductReply 类的多条件查询
@@ -341,6 +344,9 @@ public class StoreProductReplyServiceImpl extends ServiceImpl replyList = dao.selectList(lqw);
List responseList = new ArrayList<>();
diff --git a/food-service/src/main/java/com/zbkj/service/service/impl/WeChatPayServiceImpl.java b/food-service/src/main/java/com/zbkj/service/service/impl/WeChatPayServiceImpl.java
index fc73cdb..7f1cf74 100644
--- a/food-service/src/main/java/com/zbkj/service/service/impl/WeChatPayServiceImpl.java
+++ b/food-service/src/main/java/com/zbkj/service/service/impl/WeChatPayServiceImpl.java
@@ -12,9 +12,7 @@ import com.zbkj.common.exception.CrmebException;
import com.zbkj.common.model.combination.StoreCombination;
import com.zbkj.common.model.combination.StorePink;
import com.zbkj.common.model.finance.UserRecharge;
-import com.zbkj.common.model.game.GameTreeOrder;
import com.zbkj.common.model.order.StoreOrder;
-import com.zbkj.common.model.teaplant.TeaPlantOrder;
import com.zbkj.common.model.user.User;
import com.zbkj.common.model.user.UserToken;
import com.zbkj.common.model.wechat.WechatPayInfo;
diff --git a/food-service/src/main/resources/mapper/express/ShippingTemplatesFreeMapper.xml b/food-service/src/main/resources/mapper/express/ShippingTemplatesFreeMapper.xml
index cfdb8ac..31055f6 100644
--- a/food-service/src/main/resources/mapper/express/ShippingTemplatesFreeMapper.xml
+++ b/food-service/src/main/resources/mapper/express/ShippingTemplatesFreeMapper.xml
@@ -3,6 +3,6 @@
diff --git a/food-service/src/main/resources/mapper/store/StoreProductReplyMapper.xml b/food-service/src/main/resources/mapper/store/StoreProductReplyMapper.xml
index 57d98fb..605ff1d 100644
--- a/food-service/src/main/resources/mapper/store/StoreProductReplyMapper.xml
+++ b/food-service/src/main/resources/mapper/store/StoreProductReplyMapper.xml
@@ -2,4 +2,14 @@
+
+