ソースを参照

Merge branch 'pro' of http://git.mokasz.com/liuwei/launch-webFlux-platform into pro

MOKASZ\lw12420 2 年 前
コミット
433a3c1abc

+ 3 - 3
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/PlanNewCommonOutController.java

@@ -595,12 +595,12 @@ public class PlanNewCommonOutController {
         if (request.getCode() == null || request.getCode().isEmpty()) {
         if (request.getCode() == null || request.getCode().isEmpty()) {
             throw new BaseException("code不能为空");
             throw new BaseException("code不能为空");
         }
         }
-        Integer visits = planServiceInterface.setUserVisitsToRedis(request.getUnique(), request.getCode());
-        request.setUserVisits(visits);
-
         Mono<PlanNewCommon> planNewCommonMono = template.selectOne(Query.query(Criteria.where("code").is(request.getCode())), PlanNewCommon.class)
         Mono<PlanNewCommon> planNewCommonMono = template.selectOne(Query.query(Criteria.where("code").is(request.getCode())), PlanNewCommon.class)
                 .switchIfEmpty(Mono.error(new BaseException(" code错误")))
                 .switchIfEmpty(Mono.error(new BaseException(" code错误")))
                 .onErrorResume(throwable -> Mono.error(new BaseException(" code错误")));
                 .onErrorResume(throwable -> Mono.error(new BaseException(" code错误")));
+        // 记录访问
+        Integer visits = planServiceInterface.setUserVisitsToRedis(request.getUnique(), request.getCode());
+        request.setUserVisits(visits);
         Mono<PlanNewCommonShareRes> resMono = planNewCommonMono.flatMap(plan -> {
         Mono<PlanNewCommonShareRes> resMono = planNewCommonMono.flatMap(plan -> {
             Mono<StringBuilder> stringBuilderMono;
             Mono<StringBuilder> stringBuilderMono;
             boolean isQs = Objects.nonNull(request.getWx_user_id()) && !request.getWx_user_id().isEmpty();
             boolean isQs = Objects.nonNull(request.getWx_user_id()) && !request.getWx_user_id().isEmpty();

+ 3 - 3
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/PlanNewOutController.java

@@ -555,12 +555,12 @@ public class PlanNewOutController {
         if (request.getCode() == null || request.getCode().isEmpty()) {
         if (request.getCode() == null || request.getCode().isEmpty()) {
             throw new BaseException("code不能为空");
             throw new BaseException("code不能为空");
         }
         }
-        Integer visits = planServiceInterface.setUserVisitsToRedis(request.getUnique(), request.getCode());
-        request.setUserVisits(visits);
-
         Mono<PlanNew> code0 = template.selectOne(Query.query(Criteria.where("code").is(request.getCode())), PlanNew.class)
         Mono<PlanNew> code0 = template.selectOne(Query.query(Criteria.where("code").is(request.getCode())), PlanNew.class)
                 .switchIfEmpty(Mono.error(new BaseException(" code错误")))
                 .switchIfEmpty(Mono.error(new BaseException(" code错误")))
                 .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage())));
                 .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage())));
+        // 获取用户访问次数
+        Integer visits = planServiceInterface.setUserVisitsToRedis(request.getUnique(), request.getCode());
+        request.setUserVisits(visits);
         Mono<DataLists0> dataLists0Mono =  code0.flatMap(ftmp->{
         Mono<DataLists0> dataLists0Mono =  code0.flatMap(ftmp->{
             //(如果wx_user_id值不为空则使用清水分类)
             //(如果wx_user_id值不为空则使用清水分类)
             Mono<StringBuilder> stringBuilderMono;
             Mono<StringBuilder> stringBuilderMono;

+ 3 - 3
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/listening/ListeningPlanServiceImpl.java

@@ -430,13 +430,13 @@ public class ListeningPlanServiceImpl implements ListeningPlanServiceInterface{
         if (request.getCode() == null || request.getCode().isEmpty()) {
         if (request.getCode() == null || request.getCode().isEmpty()) {
             throw new BaseException("code不能为空");
             throw new BaseException("code不能为空");
         }
         }
-        Integer visits = planServiceInterface.setUserVisitsToRedis(request.getUnique(), request.getCode());
-        request.setUserVisits(visits);
-
         Mono<ListeningPlanNew> code1 = template.selectOne(Query.query(Criteria.where("code")
         Mono<ListeningPlanNew> code1 = template.selectOne(Query.query(Criteria.where("code")
                 .is(request.getCode())), ListeningPlanNew.class)
                 .is(request.getCode())), ListeningPlanNew.class)
                 .switchIfEmpty(Mono.error(new BaseException("hello!!! code错误")))
                 .switchIfEmpty(Mono.error(new BaseException("hello!!! code错误")))
                 .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage())));
                 .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage())));
+        // 获取用户访问次数
+        Integer visits = planServiceInterface.setUserVisitsToRedis(request.getUnique(), request.getCode());
+        request.setUserVisits(visits);
         Mono<DataListsShare> dataListsShareMono = code1.flatMap(ftmp -> {
         Mono<DataListsShare> dataListsShareMono = code1.flatMap(ftmp -> {
             Mono<ListeningPlanNew> code = Mono.just(ftmp);
             Mono<ListeningPlanNew> code = Mono.just(ftmp);
             return Mono.zip(code, getPoster_template_id(code), getPoster(code), getPlanNewBackgroupPoster(code), getQrcode(code)).flatMap(f -> {
             return Mono.zip(code, getPoster_template_id(code), getPoster(code), getPlanNewBackgroupPoster(code), getQrcode(code)).flatMap(f -> {

+ 19 - 13
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/planNew/PlanServiceImpl.java

@@ -48,8 +48,8 @@ public class PlanServiceImpl implements PlanServiceInterface {
     @Override
     @Override
     public Mono<RStatus<Paged<ListeningPlanNewRes2>>> page(PlanReqPage request, Criteria criteria) {
     public Mono<RStatus<Paged<ListeningPlanNewRes2>>> page(PlanReqPage request, Criteria criteria) {
         Query query = Query.query(criteria);
         Query query = Query.query(criteria);
-        int skip  = (request.getPage() - 1) * request.getSize();
-        int limit =  request.getSize();
+        int skip = (request.getPage() - 1) * request.getSize();
+        int limit = request.getSize();
         Mono<Long> count = template.count(query, PlanNewCommon.class);
         Mono<Long> count = template.count(query, PlanNewCommon.class);
         Flux<PlanNewCommon> createdAt = template.select(Query.query(criteria)
         Flux<PlanNewCommon> createdAt = template.select(Query.query(criteria)
                 .offset(skip)
                 .offset(skip)
@@ -91,19 +91,25 @@ public class PlanServiceImpl implements PlanServiceInterface {
     @Override
     @Override
     public Integer setUserVisitsToRedis(String unique, String code) {
     public Integer setUserVisitsToRedis(String unique, String code) {
         String redisKey = RedisKey.H5_USER_UNIQUE + unique;
         String redisKey = RedisKey.H5_USER_UNIQUE + unique;
-        Integer integer = 0;
-        if (Boolean.TRUE.equals(stringRedisTemplate.hasKey(redisKey))){
-            Object val = stringRedisTemplate.opsForHash().get(unique, code);
-            if (val != null) {
-                integer = Integer.getInteger(val.toString());
-                integer = integer + 1;
+        int integer = 0;
+        try {
+            if (Boolean.TRUE.equals(stringRedisTemplate.hasKey(redisKey))) {
+                Object val = stringRedisTemplate.opsForHash().get(redisKey, code);
+                if (val != null) {
+                    integer = Integer.parseInt(val.toString());
+                    integer = integer + 1;
+                }
             }
             }
+            stringRedisTemplate.opsForHash().put(redisKey, code, Integer.toString(integer));
+            // 设置过期时间
+            if (integer == 0) {
+                LocalDateTime expireTime = LocalDateTime.of(LocalDate.now().plusDays(1), LocalTime.of(2, 0));
+                long minute = Duration.between(LocalDateTime.now(), expireTime).toMinutes();
+                stringRedisTemplate.expire(redisKey, minute, TimeUnit.MINUTES);
+            }
+        } catch (Exception e) {
+            log.error("设置用户访问次数到redis异常,unique:{},code:{}", unique, code, e);
         }
         }
-        stringRedisTemplate.opsForHash().put(redisKey, code, integer.toString());
-        // 设置过期时间
-        LocalDateTime expireTime = LocalDateTime.of(LocalDate.now().plusDays(1), LocalTime.of(4,0));
-        long minute = Duration.between(LocalDateTime.now(), expireTime).toMinutes();
-        stringRedisTemplate.expire(redisKey, minute, TimeUnit.MINUTES);
         return integer;
         return integer;
     }
     }
 }
 }