Browse Source

Merge remote-tracking branch 'origin/master_saas' into master_saas

liweifan 3 years ago
parent
commit
c8556dd4e8

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/ImGroupService.java

@@ -23,7 +23,7 @@ public interface ImGroupService extends BaseService<String, ImGroup> {
 	ImGroup create(String id, Integer userId, String name, String introduce, String memo, String tags, String img, String type);
 
 	//创建非课程类型的业务群组
-	void createGroup(List<String> userIdList,String groupName,String groupType);
+	String createGroup(List<String> userIdList,String groupName,String groupType);
 
 	/**
 	 * 解散群组

+ 12 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupServiceImpl.java

@@ -16,11 +16,16 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.im.entity.GroupMember;
 import com.ym.mec.im.entity.GroupModel;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
+import java.util.function.Consumer;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 @Service
 public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> implements ImGroupService {
@@ -94,10 +99,10 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public void createGroup(List<String> userIdList,String groupName,String groupType){
-		Optional.of(userIdList).orElseThrow(() -> new BizException("群成员不能为空"));
-		Optional.of(groupName).orElseThrow(() -> new BizException("群名称不能为空"));
-		Optional.of(groupType).orElseThrow(() -> new BizException("群类型不能为空"));
+	public String createGroup(List<String> userIdList,String groupName,String groupType){
+		Optional.ofNullable(userIdList).filter(CollectionUtils::isNotEmpty).orElseThrow(() -> new BizException("群成员不能为空"));
+		Optional.ofNullable(groupName).filter(StringUtils::isNotBlank).orElseThrow(() -> new BizException("群名称不能为空"));
+		Optional.ofNullable(groupType).filter(StringUtils::isNotBlank).orElseThrow(() -> new BizException("群类型不能为空"));
 		Date date = new Date();
 		ImGroup imGroup = new ImGroup();
 		String groupId = UUID.randomUUID().toString();
@@ -109,16 +114,12 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
 		imGroup.setType(groupType);
 		imGroup.setUpdateTime(date);
 		imGroupDao.insert(imGroup);
-		List<GroupMember> groupMembers = new ArrayList<>();
-		for (String userId : userIdList) {
-			GroupMember groupMember = new GroupMember();
-			groupMember.setGroupId(groupId);
-			groupMember.setId(userId);
-			groupMembers.add(groupMember);
-		}
+        Function<String,GroupMember> newGroup = userId ->new GroupMember(userId, groupId);
+		List<GroupMember> groupMembers =  userIdList.stream().map(newGroup).collect(Collectors.toList());
 		GroupMember[] members = new GroupMember[groupMembers.size()];
 		groupMembers.toArray(members);
 		imFeignService.groupCreate(new GroupModel(groupId,members,groupName));
+        return groupId;
 	}
 
 	@Override

+ 16 - 14
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankSettingServiceImpl.java

@@ -246,17 +246,17 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
             //还原库存
             liveGoodsService.addGoodsStock(memberPayParamDto.getLiveGoodsId(),memberPayParamDto.getLiveId());
         }
+        String activeConfig = sysConfigDao.findConfigValue("cloud_teacher_active_config");
+        List<Cloud2022ActivityDto> cloud2022ActivityDtos = JSONArray.parseArray(activeConfig, Cloud2022ActivityDto.class);
+        List<Cloud2022ActivityDto> activityDtos = cloud2022ActivityDtos.stream().filter(e -> e.getOrganId().contains(sysUser.getOrganId().toString())).collect(Collectors.toList());
+        if(CollectionUtils.isEmpty(activityDtos)){
+            throw new BizException("当前分部暂未开通活动");
+        }
         BigDecimal amount = BigDecimal.ZERO;
         Integer activityId = null;
         //判断当前商品是否可以购买(库存、上架状态、是否购买过)
         //如果是云教练商品,那么只能购买一次、如果是免费直播课,那么每次上架只能买一次,总共只能买2次
         if(memberPayParamDto.getLiveGoodsId() == 1){
-            String activeConfig = sysConfigDao.findConfigValue("cloud_teacher_active_config");
-            List<Cloud2022ActivityDto> cloud2022ActivityDtos = JSONArray.parseArray(activeConfig, Cloud2022ActivityDto.class);
-            List<Cloud2022ActivityDto> activityDtos = cloud2022ActivityDtos.stream().filter(e -> e.getOrganId().contains(sysUser.getOrganId().toString())).collect(Collectors.toList());
-            if(CollectionUtils.isEmpty(activityDtos)){
-                throw new BizException("当前分部暂未开通活动");
-            }
             //是否还有购买资格
             activityId = Integer.parseInt(activityDtos.get(0).getActivityId());
             VipGroupActivity vipGroupActivity = Optional.ofNullable(vipGroupActivityDao.get(activityId)).orElseThrow(()-> new BizException("活动不存在"));
@@ -315,14 +315,14 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
         //判断当前商品是否可以购买(库存、上架状态、是否购买过)
         //如果是云教练商品,那么只能购买一次、如果是免费直播课,那么每次上架只能买一次,总共只能买2次
         HttpResponseResult<Integer> succeed = BaseController.succeed(0);
+        String activeConfig = sysConfigDao.findConfigValue("cloud_teacher_active_config");
+        List<Cloud2022ActivityDto> cloud2022ActivityDtos = JSONArray.parseArray(activeConfig, Cloud2022ActivityDto.class);
+        List<Cloud2022ActivityDto> activityDtos = cloud2022ActivityDtos.stream().filter(e -> e.getOrganId().contains(sysUser.getOrganId().toString())).collect(Collectors.toList());
+        if(CollectionUtils.isEmpty(activityDtos)){
+            succeed.setMsg("当前分部暂未开通活动");
+            return succeed;
+        }
         if(memberPayParamDto.getLiveGoodsId() == 1){
-            String activeConfig = sysConfigDao.findConfigValue("cloud_teacher_active_config");
-            List<Cloud2022ActivityDto> cloud2022ActivityDtos = JSONArray.parseArray(activeConfig, Cloud2022ActivityDto.class);
-            List<Cloud2022ActivityDto> activityDtos = cloud2022ActivityDtos.stream().filter(e -> e.getOrganId().contains(sysUser.getOrganId().toString())).collect(Collectors.toList());
-            if(CollectionUtils.isEmpty(activityDtos)){
-                succeed.setMsg("当前分部暂未开通活动");
-                return succeed;
-            }
             //是否还有购买资格
             Integer activityId = Integer.parseInt(activityDtos.get(0).getActivityId());
             VipGroupActivity vipGroupActivity = Optional.ofNullable(vipGroupActivityDao.get(activityId)).orElseThrow(()-> new BizException("活动不存在"));
@@ -602,12 +602,12 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
             }
             return true;
         }
-        SysUser sysUser = teacherDao.getUser(userId);
 
         // 支付成功
         if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
             //是否通过活动购买的团练宝
             if(Objects.nonNull(studentPaymentOrder.getActivityId())){
+                Student student = studentService.get(userId);
                 VipGroupActivity activity = vipGroupActivityDao.get(Integer.parseInt(studentPaymentOrder.getActivityId()));
                 //保存团练宝数据
                 CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
@@ -622,6 +622,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
                 cloudTeacherOrderService.save(cloudTeacherOrder,tenantConfigService.autoActivationFlag(cloudTeacherOrder.getTenantId()));
                 //赠送陪练课
                 ActivityUserMapper activityUserMapper = new ActivityUserMapper();
+                activityUserMapper.setTeacherId(student.getTeacherId());
                 activityUserMapper.setPaymentOrderId(studentPaymentOrder.getId());
                 activityUserMapper.setUserId(studentPaymentOrder.getUserId());
                 activityUserMapper.setActivityId(activity.getId());
@@ -654,6 +655,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
                 String activityDateStr = sysConfigDao.findConfigValue("qqhe_2022_buy_member_activity");
                 //获取活动时间
                 Date activityDate = DateUtil.stringToDate(activityDateStr, DateUtil.EXPANDED_DATE_TIME_FORMAT);
+                SysUser sysUser = teacherDao.getUser(userId);
                 logger.info("orderCallback >>> member param organId {}   orderTime {} activityDate {}  cache {}", sysUser.getOrganId(), studentPaymentOrder.getCreateTime(), activityDate, cache.isExists());
                 //分部编号59 并且下单时间大于等于activityDateStr  todo 并且redis能查询到的就算齐齐哈尔活动购买的
                 if (sysUser.getOrganId() == 59 && studentPaymentOrder.getCreateTime().after(activityDate) && cache.isExists()) {