Pārlūkot izejas kodu

1、处理积分增加分布式锁
2、优化职位搜索接口

rayson 8 mēneši atpakaļ
vecāks
revīzija
ac98e86f0d

+ 1 - 1
citu-framework/citu-spring-boot-starter-protection/pom.xml

@@ -33,7 +33,7 @@
         <dependency>
             <groupId>com.baomidou</groupId>
             <artifactId>lock4j-redisson-spring-boot-starter</artifactId>
-            <optional>true</optional>
+<!--            <optional>true</optional>-->
         </dependency>
 
         <!-- Test 测试相关 -->

+ 2 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/record/UserAccountRecordServiceImpl.java

@@ -3,6 +3,7 @@ package com.citu.module.menduner.system.service.record;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.baomidou.lock.annotation.Lock4j;
 import com.citu.framework.common.exception.util.ServiceExceptionUtil;
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
@@ -47,6 +48,7 @@ public class UserAccountRecordServiceImpl implements UserAccountRecordService {
 
     @Override
     @DSTransactional
+    @Lock4j(keys = {"#userId"}, expire = 60000, acquireTimeout = 1000)
     public void createPointRecord(Long userId,
                                   String url,
                                   String title,

+ 12 - 12
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/user/UserAccountServiceImpl.java

@@ -2,6 +2,7 @@ package com.citu.module.menduner.system.service.user;
 
 
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.baomidou.lock.annotation.Lock4j;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.system.controller.admin.user.vo.UserAccountPageRespVO;
@@ -12,7 +13,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
-import java.math.BigDecimal;
 
 /**
  * 用户账户 Service 实现类
@@ -49,19 +49,19 @@ public class UserAccountServiceImpl implements UserAccountService {
 
     @Override
     @DSTransactional
+    @Lock4j(keys = {"#userId"}, expire = 60000, acquireTimeout = 1000)
     public UserAccountDO createUserAccountIfAbsent(Long userId) {
-        synchronized (userId) {
-            UserAccountDO accountDO = userAccountMapper.selectByUserId(userId);
-            if (null != accountDO) {
-                return accountDO;
-            }
-            UserAccountDO entity = UserAccountDO.builder()
-                    .userId(userId)
-                    .point(0)
-                    .build();
-            userAccountMapper.insert(entity);
-            return entity;
+        UserAccountDO accountDO = userAccountMapper.selectByUserId(userId);
+        if (null != accountDO) {
+            return accountDO;
         }
+        UserAccountDO entity = UserAccountDO.builder()
+                .userId(userId)
+                .point(0)
+                .build();
+        userAccountMapper.insert(entity);
+        return entity;
+
     }
 
     @Override

+ 3 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/util/ESQueryBuildUtils.java

@@ -80,11 +80,12 @@ public class ESQueryBuildUtils {
             BoolQueryBuilder payScopeQuery = QueryBuilders.boolQuery();
             if (null != payScope.getStart()) {
                 // 大于
-                payScopeQuery.should(QueryBuilders.rangeQuery("payFrom").gt(payScope.getStart()));
+                payScopeQuery.must(QueryBuilders.rangeQuery("payFrom").gt(payScope.getStart()));
             }
             if (null != payScope.getEnd()) {
                 // 小于等于
-                payScopeQuery.should(QueryBuilders.rangeQuery("payTo").lte(payScope.getEnd()));
+                payScopeQuery.must(QueryBuilders.rangeQuery("payTo").lte(payScope.getEnd()));
+
             }
             boolQuery.filter(payScopeQuery);
         }