Eric 3 роки тому
батько
коміт
7a5117efa0

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/MK.java

@@ -7,7 +7,7 @@ package com.yonge.cooleshow.biz.dal.enums;
 public interface MK {
 
     // 手机号
-    String EXP_MOBILE_NUMBER = "^\\d{3,11}$";
+    String EXP_MOBILE_NUMBER = "^1(3\\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\\d|9[0-35-9])\\d{8}$";
     // 正型
     String EXP_INT = "^\\d+$";
 }

+ 41 - 32
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityPlanServiceImpl.java

@@ -202,38 +202,7 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
             // 分享活动-活动时间修改需要先校验与老师其他分享活动是否存在冲突
             if (ActivityTypeEnum.SHARE == old.getActivityType()) {
 
-                if (activityPlan.getActivityStart().getTime() != old.getActivityStart().getTime()
-                        || activityPlan.getActivityEnd().getTime() != old.getActivityEnd().getTime()) {
-
-                    // 排除当前活动,其他活动时间存在重复
-                    ActivityTeacherQuery query = ActivityTeacherQuery.builder()
-                            .activityId(activityPlan.getId())
-                            .activityType(ActivityTypeEnum.SHARE.getCode())
-                            .resourceType(ActivityResourceEnum.TEACHER.getCode())
-                            .activityState(EStatus.ENABLE.getValue())
-                            .startTime(Optional.ofNullable(activityPlan.getActivityStart()).map(x -> x.getTime() / 1000).orElse(null))
-                            .endTime(Optional.ofNullable(activityPlan.getActivityEnd()).map(x -> x.getTime() / 1000).orElse(null))
-                            .build();
-
-                    // 分页查询条件
-                    IPage<ActivityTeacherWrapper> page = new Page<>(1, 1000);
-
-                    IPage<ActivityTeacherWrapper> wrapper = activityEvaluationService.activityTeacherByTimePageInfo(page, query);
-
-                    if (CollectionUtils.isNotEmpty(wrapper.getRecords())) {
-
-                        String collect = wrapper.getRecords().stream().map(x -> {
-                            if (StringUtils.isNotEmpty(x.getRealName())) {
-                                return x.getRealName();
-                            }
-                            return x.getUsername();
-                        }).collect(Collectors.joining("、"));
-
-                        throw new BizException("以下老师存在时间冲突:" + collect);
-                    }
-
-                }
-
+                validActivityTeacherDuplicatTimeParam(activityPlan, old);
             }
 
             //启用状态,只能修改活动结束时间
@@ -267,6 +236,46 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
     }
 
     /**
+     * 校验活动时间,添加老师是否重复
+     * @param activityPlan 更新数据
+     * @param old 原始数据
+     */
+    private void validActivityTeacherDuplicatTimeParam(ActivityPlanDto activityPlan, ActivityPlan old) {
+
+        if (activityPlan.getActivityStart().getTime() != old.getActivityStart().getTime()
+                || activityPlan.getActivityEnd().getTime() != old.getActivityEnd().getTime()) {
+
+            // 排除当前活动,其他活动时间存在重复
+            ActivityTeacherQuery query = ActivityTeacherQuery.builder()
+                    .activityId(activityPlan.getId())
+                    .activityType(ActivityTypeEnum.SHARE.getCode())
+                    .resourceType(ActivityResourceEnum.TEACHER.getCode())
+                    .activityState(EStatus.ENABLE.getValue())
+                    .startTime(Optional.ofNullable(activityPlan.getActivityStart()).map(x -> x.getTime() / 1000).orElse(null))
+                    .endTime(Optional.ofNullable(activityPlan.getActivityEnd()).map(x -> x.getTime() / 1000).orElse(null))
+                    .build();
+
+            // 分页查询条件
+            IPage<ActivityTeacherWrapper> page = new Page<>(1, 1000);
+
+            IPage<ActivityTeacherWrapper> wrapper = activityEvaluationService.activityTeacherByTimePageInfo(page, query);
+
+            if (CollectionUtils.isNotEmpty(wrapper.getRecords())) {
+
+                String collect = wrapper.getRecords().stream().map(x -> {
+                    if (StringUtils.isNotEmpty(x.getUsername())) {
+                        return x.getUsername();
+                    }
+                    return x.getRealName();
+                }).distinct().collect(Collectors.joining("、"));
+
+                throw new BizException("以下老师存在时间冲突:" + collect);
+            }
+
+        }
+    }
+
+    /**
      * 分享活动奖品信息
      * @param activityPlan ActivityPlanDto
      * @param activityId 活动ID

+ 9 - 6
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityUserRewardServiceImpl.java

@@ -51,7 +51,7 @@ public class ActivityUserRewardServiceImpl extends ServiceImpl<ActivityUserRewar
         // 活动信息
         ActivityPlan activityPlan = activityPlanService.getBaseMapper().selectById(query.getActivityId());
         if (Objects.isNull(activityPlan)) {
-            throw  new BizException("无效的活动ID");
+            throw new BizException("无效的活动ID");
         }
 
         if (ActivityTypeEnum.SHARE == activityPlan.getActivityType()) {
@@ -74,22 +74,25 @@ public class ActivityUserRewardServiceImpl extends ServiceImpl<ActivityUserRewar
             Lists.partition(userIds, 30).parallelStream().forEach(item -> {
 
                 List<UserRewardVo> retlist = getBaseMapper().selectActivityShareTeacher(activityPlan.getId(), item);
+
                 // 同一个活动,用户关联多个老师信息
                 Map<Long, String> collect = retlist.stream()
                         .collect(Collectors.groupingBy(UserRewardVo::getUserId, Collectors.mapping(x -> {
 
-                            if (StringUtils.isNotEmpty(x.getRealName())) {
-                                return x.getRealName();
+                            if (StringUtils.isNotEmpty(x.getUsername())) {
+                                return x.getUsername();
                             }
-                            return x.getUsername();
-                        }, Collectors.joining("、"))));
+                            return x.getRealName();
+                        }, Collectors.toSet()))).entrySet().stream()
+                        .collect(Collectors.toMap(Map.Entry::getKey, x -> String.join("、", x.getValue())));
 
                 teacherNameMap.putAll(collect);
 
                 // 老师ID
                 teacherIdMap.putAll(retlist.stream()
                         .collect(Collectors.groupingBy(UserRewardVo::getUserId,
-                                Collectors.mapping(UserRewardVo::getTeacherId, Collectors.joining("、")))));
+                                Collectors.mapping(UserRewardVo::getTeacherId, Collectors.toSet()))).entrySet().stream()
+                        .collect(Collectors.toMap(Map.Entry::getKey, x -> String.join("、", x.getValue()))));
 
             });