diff --git a/framework/src/main/java/cn/lili/cache/config/redis/RedisConfig.java b/framework/src/main/java/cn/lili/cache/config/redis/RedisConfig.java
index 0551f26b..8af75596 100644
--- a/framework/src/main/java/cn/lili/cache/config/redis/RedisConfig.java
+++ b/framework/src/main/java/cn/lili/cache/config/redis/RedisConfig.java
@@ -11,7 +11,6 @@ import org.redisson.config.ClusterServersConfig;
import org.redisson.config.Config;
import org.redisson.config.SentinelServersConfig;
import org.redisson.config.SingleServerConfig;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
@@ -56,13 +55,11 @@ import java.util.Map;
public class RedisConfig extends CachingConfigurerSupport {
+ private static final String REDIS_PREFIX = "redis://";
+
@Value("${lili.cache.timeout:7200}")
private Integer timeout;
- @Autowired
- private RedisProperties redisProperties;
-
-
/**
* 当有多个管理器的时候,必须使用该注解在一个管理器上注释:表示该管理器为默认的管理器
*
@@ -101,7 +98,7 @@ public class RedisConfig extends CachingConfigurerSupport {
public RedisTemplate
*
- * @param openId
- * @param unionId
- * @param member
+ * @param openId 微信openid
+ * @param unionId 微信unionid
+ * @param member 会员
*/
private void bindMpMember(String openId, String unionId, Member member) {
@@ -272,7 +275,7 @@ public class ConnectServiceImpl extends ServiceImpl impl
lambdaQueryWrapper.eq(Connect::getUnionId, unionId);
lambdaQueryWrapper.eq(Connect::getUnionType, ConnectEnum.WECHAT.name());
List connects = this.list(lambdaQueryWrapper);
- if (connects.size() == 0) {
+ if (connects.isEmpty()) {
Connect connect = new Connect();
connect.setUnionId(unionId);
connect.setUserId(member.getId());
@@ -281,7 +284,7 @@ public class ConnectServiceImpl extends ServiceImpl impl
}
}//如果openid 不为空 则为账号绑定openid
if (CharSequenceUtil.isNotEmpty(openId)) {
- LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper();
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(Connect::getUnionId, openId);
lambdaQueryWrapper.eq(Connect::getUnionType, ConnectEnum.WECHAT_MP_OPEN_ID.name());
List connects = this.list(lambdaQueryWrapper);
diff --git a/framework/src/main/java/cn/lili/modules/member/entity/dto/ManagerMemberEditDTO.java b/framework/src/main/java/cn/lili/modules/member/entity/dto/ManagerMemberEditDTO.java
index 8818ad4a..c61792aa 100644
--- a/framework/src/main/java/cn/lili/modules/member/entity/dto/ManagerMemberEditDTO.java
+++ b/framework/src/main/java/cn/lili/modules/member/entity/dto/ManagerMemberEditDTO.java
@@ -24,6 +24,7 @@ public class ManagerMemberEditDTO {
@ApiModelProperty(value = "会员用户名,用户名不能进行修改", required = true)
@NotNull(message = "会员用户名不能为空")
private String id;
+
@ApiModelProperty(value = "会员用户名,用户名不能进行修改", required = true)
@NotNull(message = "会员用户名不能为空")
private String username;
@@ -48,7 +49,7 @@ public class ManagerMemberEditDTO {
private Integer sex;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(value = "会员生日")
private Date birthday;
diff --git a/framework/src/main/java/cn/lili/modules/order/cart/entity/vo/CartSkuVO.java b/framework/src/main/java/cn/lili/modules/order/cart/entity/vo/CartSkuVO.java
index 30608258..1dcffeeb 100644
--- a/framework/src/main/java/cn/lili/modules/order/cart/entity/vo/CartSkuVO.java
+++ b/framework/src/main/java/cn/lili/modules/order/cart/entity/vo/CartSkuVO.java
@@ -6,6 +6,7 @@ import cn.lili.modules.order.cart.entity.enums.CartTypeEnum;
import cn.lili.modules.promotion.tools.PromotionTools;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@@ -19,6 +20,7 @@ import java.util.Map;
*/
@Data
@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
public class CartSkuVO extends CartBase implements Serializable {
diff --git a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
index b6211c3c..ca00f595 100644
--- a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
@@ -811,10 +811,10 @@ public class OrderServiceImpl extends ServiceImpl implements
List list = this.getPintuanOrder(pintuanId, parentOrderSn);
int count = list.size();
if (count == 1) {
- //如果为开团订单,则发布一个一小时的延时任务,时间到达后,如果未成团则自动结束(未开启虚拟成团的情况下)
+ //如果为开团订单,则发布一个24小时的延时任务,时间到达后,如果未成团则自动结束(未开启虚拟成团的情况下)
PintuanOrderMessage pintuanOrderMessage = new PintuanOrderMessage();
//开团结束时间
- long startTime = DateUtil.offsetMinute(new Date(), 2).getTime();
+ long startTime = DateUtil.offsetHour(new Date(), 24).getTime();
pintuanOrderMessage.setOrderSn(parentOrderSn);
pintuanOrderMessage.setPintuanId(pintuanId);
TimeTriggerMsg timeTriggerMsg = new TimeTriggerMsg(TimeExecuteConstant.PROMOTION_EXECUTOR,
diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PintuanServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PintuanServiceImpl.java
index 4edd344a..6750104b 100644
--- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PintuanServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PintuanServiceImpl.java
@@ -299,7 +299,7 @@ public class PintuanServiceImpl extends AbstractPromotionsServiceImpl filterFunctionBuilders = new ArrayList<>();
- GaussDecayFunctionBuilder skuNoScore = ScoreFunctionBuilders.gaussDecayFunction("skuSource", 50, 10, 50).setWeight(2);
- FunctionScoreQueryBuilder.FilterFunctionBuilder skuNoBuilder = new FunctionScoreQueryBuilder.FilterFunctionBuilder(QueryBuilders.matchAllQuery(), skuNoScore);
- filterFunctionBuilders.add(skuNoBuilder);
- FieldValueFactorFunctionBuilder buyCountScore = ScoreFunctionBuilders.fieldValueFactorFunction("buyCount").modifier(FieldValueFactorFunction.Modifier.LOG1P).setWeight(3);
- FunctionScoreQueryBuilder.FilterFunctionBuilder buyCountBuilder = new FunctionScoreQueryBuilder.FilterFunctionBuilder(QueryBuilders.matchAllQuery(), buyCountScore);
- filterFunctionBuilders.add(buyCountBuilder);
+ List filterFunctionBuilders = this.buildFunctionSearch();
FunctionScoreQueryBuilder.FilterFunctionBuilder[] builders = new FunctionScoreQueryBuilder.FilterFunctionBuilder[filterFunctionBuilders.size()];
filterFunctionBuilders.toArray(builders);
- FunctionScoreQueryBuilder functionScoreQueryBuilder = QueryBuilders.functionScoreQuery(builders)
+ FunctionScoreQueryBuilder functionScoreQueryBuilder = QueryBuilders.functionScoreQuery(QueryBuilders.matchAllQuery(), builders)
.scoreMode(FunctionScoreQuery.ScoreMode.SUM)
.setMinScore(2);
//聚合搜索则将结果放入过滤条件
@@ -529,47 +525,40 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService {
* @param keyword 关键字
*/
private void keywordSearch(BoolQueryBuilder filterBuilder, String keyword) {
- List filterFunctionBuilders = new ArrayList<>();
- if (keyword.contains(" ")) {
- for (String s : keyword.split(" ")) {
- filterFunctionBuilders.addAll(this.buildKeywordSearch(s));
- }
- } else {
- filterFunctionBuilders = this.buildKeywordSearch(keyword);
- }
+
+ List filterFunctionBuilders = this.buildFunctionSearch();
+
+ //分词匹配
+ // operator 为 AND 时 需全部分词匹配。为 OR 时 需配置 minimumShouldMatch(最小分词匹配数)不设置默认为1
+ MatchQueryBuilder goodsNameMatchQuery = QueryBuilders.matchQuery("goodsName", keyword).operator(Operator.OR).minimumShouldMatch(MINIMUM_SHOULD_MATCH);
FunctionScoreQueryBuilder.FilterFunctionBuilder[] builders = new FunctionScoreQueryBuilder.FilterFunctionBuilder[filterFunctionBuilders.size()];
filterFunctionBuilders.toArray(builders);
- FunctionScoreQueryBuilder functionScoreQueryBuilder = QueryBuilders.functionScoreQuery(builders)
+ FunctionScoreQueryBuilder functionScoreQueryBuilder = QueryBuilders.functionScoreQuery(goodsNameMatchQuery, builders)
.scoreMode(FunctionScoreQuery.ScoreMode.SUM)
.setMinScore(2);
//聚合搜索则将结果放入过滤条件
filterBuilder.must(functionScoreQueryBuilder);
+ filterBuilder.should(QueryBuilders.boolQuery().should(QueryBuilders.matchPhraseQuery("goodsName", keyword).boost(10)));
}
/**
* 构造关键字查询
*
- * @param keyword 关键字
* @return 构造查询的集合
*/
- private List buildKeywordSearch(String keyword) {
+ private List buildFunctionSearch() {
List filterFunctionBuilders = new ArrayList<>();
- // operator 为 AND 时 需全部分词匹配。为 OR 时 需配置 minimumShouldMatch(最小分词匹配数)不设置默认为1
- MatchQueryBuilder goodsNameQuery = QueryBuilders.matchQuery("goodsName", keyword).operator(Operator.OR).minimumShouldMatch("2");
- //分词匹配
- filterFunctionBuilders.add(new FunctionScoreQueryBuilder.FilterFunctionBuilder(goodsNameQuery,
- ScoreFunctionBuilders.weightFactorFunction(10)));
- //属性匹配
- filterFunctionBuilders.add(new FunctionScoreQueryBuilder.FilterFunctionBuilder(QueryBuilders.nestedQuery(ATTR_PATH, QueryBuilders.wildcardQuery(ATTR_VALUE, "*" + keyword + "*"), ScoreMode.None),
- ScoreFunctionBuilders.weightFactorFunction(8)));
- GaussDecayFunctionBuilder skuNoScore = ScoreFunctionBuilders.gaussDecayFunction("skuSource", 50, 10, 50).setWeight(7);
- FunctionScoreQueryBuilder.FilterFunctionBuilder skuNoBuilder = new FunctionScoreQueryBuilder.FilterFunctionBuilder(goodsNameQuery, skuNoScore);
+// GaussDecayFunctionBuilder skuNoScore = ScoreFunctionBuilders.gaussDecayFunction("skuSource", 100, 10).setWeight(2);
+// FunctionScoreQueryBuilder.FilterFunctionBuilder skuNoBuilder = new FunctionScoreQueryBuilder.FilterFunctionBuilder(skuNoScore);
+// filterFunctionBuilders.add(skuNoBuilder);
+ FieldValueFactorFunctionBuilder skuNoScore = ScoreFunctionBuilders.fieldValueFactorFunction("skuSource").modifier(FieldValueFactorFunction.Modifier.LOG1P).setWeight(3);
+ FunctionScoreQueryBuilder.FilterFunctionBuilder skuNoBuilder = new FunctionScoreQueryBuilder.FilterFunctionBuilder(skuNoScore);
filterFunctionBuilders.add(skuNoBuilder);
- FieldValueFactorFunctionBuilder buyCountScore = ScoreFunctionBuilders.fieldValueFactorFunction("buyCount").modifier(FieldValueFactorFunction.Modifier.LOG1P).setWeight(6);
- FunctionScoreQueryBuilder.FilterFunctionBuilder buyCountBuilder = new FunctionScoreQueryBuilder.FilterFunctionBuilder(goodsNameQuery, buyCountScore);
+ FieldValueFactorFunctionBuilder buyCountScore = ScoreFunctionBuilders.fieldValueFactorFunction("buyCount").modifier(FieldValueFactorFunction.Modifier.LOG1P).setWeight(3);
+ FunctionScoreQueryBuilder.FilterFunctionBuilder buyCountBuilder = new FunctionScoreQueryBuilder.FilterFunctionBuilder(buyCountScore);
filterFunctionBuilders.add(buyCountBuilder);
return filterFunctionBuilders;
}