Browse Source

Merge remote-tracking branch 'origin/master'

Joburgess 4 years ago
parent
commit
ada5cd8ebe

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImUserFriendDao.java

@@ -36,4 +36,6 @@ public interface ImUserFriendDao extends BaseDAO<Long, ImUserFriend> {
 	 * @param teacherId
 	 */
 	void batchInsert(@Param("teachers") Set<BasicUserDto> teachers, @Param("teacherId") Integer teacherId);
+
+	void insertByBasicUser(@Param("basicUserDto") BasicUserDto basicUserDto, @Param("teacherId") Integer teacherId);
 }

+ 8 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImUserFriendServiceImpl.java

@@ -10,6 +10,7 @@ import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.service.TeacherService;
 import com.ym.mec.util.collection.MapUtil;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
 import com.ym.mec.biz.dal.dto.ImUserFriendDto;
@@ -41,15 +42,13 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 	@Autowired
 	private TeacherDao teacherDao;
 	@Autowired
-	private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
-	@Autowired
-	private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
-	@Autowired
 	private CourseScheduleDao courseScheduleDao;
 	@Autowired
 	private StudentRegistrationDao studentRegistrationDao;
 	@Autowired
 	private ClassGroupDao classGroupDao;
+	@Autowired
+	private RedisTemplate<String,String> redisTemplate;
 
 	@Override
 	public BaseDAO<Long, ImUserFriend> getDAO() {
@@ -104,11 +103,12 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 
 	@Override
 	public List<ImUserFriendDto> queryFriendListByUserId(Integer userId, String search) {
-		List<ImUserFriendDto> imUserFriendDtos = imUserFriendDao.queryFriendListByUserId(userId, search);
-		if(imUserFriendDtos.size() == 0){
-			return teacherService.queryGroupStudents1(userId,search);
+		String syncImUserFriendKey = "syncImUserFriend:" + userId;
+		if(redisTemplate.hasKey(syncImUserFriendKey)){
+			return imUserFriendDao.queryFriendListByUserId(userId, search);
+		}else {
+			return teacherService.queryGroupStudents1(userId,null);
 		}
-		return imUserFriendDtos;
 	}
 
 	@Override

+ 10 - 36
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -15,7 +15,6 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
-import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -1875,6 +1874,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             //删除续费周期
             musicGroupStudentFeeDao.deleteByUserIdAndMusicGroupId(userId, musicGroupId);
             // 退团
+            BigDecimal surplusCourseFee = studentRegistration.getSurplusCourseFee();
             studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.QUIT);
             studentRegistration.setSurplusCourseFee(BigDecimal.ZERO);
             studentRegistration.setUpdateTime(date);
@@ -1921,19 +1921,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             //删除用户购买的课程记录
             musicGroupPaymentStudentCourseDetailDao.deleteByUserIdAndMusicGroupId(userId, musicGroupId);
 
-            //操作人
-            SysUser operator = sysUserFeignService.queryUserInfo();
-
-            BigDecimal price = courseScheduleStudentPaymentDao.countFinishCoursePriceWithMusicGroup(musicGroupId, GroupType.MUSIC, userId);
-            BigDecimal subtractAmount = studentRegistration.getSurplusCourseFee();
-            if (Objects.isNull(price)) {
-                price = new BigDecimal(0);
-            }
-            subtractAmount = subtractAmount.subtract(price);
-            if (BigDecimal.ZERO.compareTo(subtractAmount) < 0) {
-                studentRegistrationService.updateUserSurplusCourseFee(userId, musicGroupId, subtractAmount.negate(), reason, operator.getId());
-            }
-
             BigDecimal amount = new BigDecimal(0);
 
             // 判断乐器是否是租赁
@@ -1946,7 +1933,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             
             if (isRefundCourseFee) {
                 // 退课程费用
-                amount = amount.add(studentRegistration.getSurplusCourseFee());
+                amount = amount.add(surplusCourseFee);
             }
 
             StudentPaymentOrder studentPaymentOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, musicGroupId, SUCCESS);
@@ -2015,12 +2002,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             throw new BizException("退团失败,乐团状态[已取消]或[已暂停]");
         }
 
-        // 判断乐器是否是租赁
-        StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
-        if (studentRegistration == null) {
-            throw new BizException("用户注册信息不存在");
-		}
-
 		// 有进行中的课程不能退团
 		List<CourseSchedule> courseScheduleList = courseScheduleDao.findMusicGroupCourseSchedulesWithStudent(musicGroupId, GroupType.MUSIC.getCode(),
 				"UNDERWAY", userId);
@@ -2030,6 +2011,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
         courseScheduleStudentPaymentService.updateCourseActualPrice(Arrays.asList(musicGroupId), Arrays.asList(userId), GroupType.MUSIC);
 
+        // 判断乐器是否是租赁
+        StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
+        if (studentRegistration == null) {
+            throw new BizException("用户注册信息不存在");
+		}
+
         Date date = new Date();
 
         MusicGroupQuit musicGroupQuit = new MusicGroupQuit();
@@ -2056,6 +2043,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         //删除续费周期
         musicGroupStudentFeeDao.deleteByUserIdAndMusicGroupId(userId, musicGroupId);
 
+        BigDecimal surplusCourseFee = studentRegistration.getSurplusCourseFee();
         // 退团
         studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.QUIT);
         studentRegistration.setSurplusCourseFee(BigDecimal.ZERO);
@@ -2103,20 +2091,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         //删除用户购买的课程记录
         musicGroupPaymentStudentCourseDetailDao.deleteByUserIdAndMusicGroupId(userId, musicGroupId);
         
-
-        //操作人
-        SysUser operator = sysUserFeignService.queryUserInfo();
-
-        BigDecimal price = courseScheduleStudentPaymentDao.countFinishCoursePriceWithMusicGroup(musicGroupId, GroupType.MUSIC, userId);
-        BigDecimal subtractAmount = studentRegistration.getSurplusCourseFee();
-        if (Objects.isNull(price)) {
-            price = new BigDecimal(0);
-        }
-        subtractAmount = subtractAmount.subtract(price);
-        if (BigDecimal.ZERO.compareTo(subtractAmount) < 0) {
-            studentRegistrationService.updateUserSurplusCourseFee(userId, musicGroupId, subtractAmount.negate(), reason, operator.getId());
-        }
-
         BigDecimal amount = new BigDecimal(0);
 
         // 判断乐器是否是租赁
@@ -2129,7 +2103,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         
         if (isRefundCourseFee) {
             // 退课程费用
-            amount = amount.add(studentRegistration.getSurplusCourseFee());
+            amount = amount.add(surplusCourseFee);
         }
 
         StudentPaymentOrder studentPaymentOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, musicGroupId, SUCCESS);

+ 18 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -27,6 +27,7 @@ import com.ym.mec.util.idcard.IdcardValidator;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -73,6 +74,8 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 	private StudentDao studentDao;
 	@Autowired
 	private ImUserFriendDao imUserFriendDao;
+	@Autowired
+	private RedisTemplate<String,String> redisTemplate;
 
 
 	@Override
@@ -328,11 +331,24 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 		if(studentIds.size() > 0){
 			basicUserDtos.addAll(teacherDao.queryTeacherBaseInfo(studentIds,search));
 		}
+
+		String syncImUserFriendKey = "syncImUserFriend:" + teacherId;
 		if(basicUserDtos.size() > 0){
-			//批量新增
-			imUserFriendDao.batchInsert(basicUserDtos,teacherId);
+			for (BasicUserDto basicUserDto : basicUserDtos) {
+				if(basicUserDto.getUserId().equals(teacherId)){
+					continue;
+				}
+				// 检查是否已经是好友
+				ImUserFriend userFriend = imUserFriendDao.query(teacherId, basicUserDto.getUserId());
+				if (userFriend != null) {
+					continue;
+				}
+				imUserFriendDao.insertByBasicUser(basicUserDto,teacherId);
+			}
+			redisTemplate.opsForValue().setIfAbsent(syncImUserFriendKey,teacherId.toString());
 			return imUserFriendDao.queryFriendListByUserId(teacherId, search);
 		}
+		redisTemplate.opsForValue().setIfAbsent(syncImUserFriendKey,teacherId.toString());
 		return new ArrayList<>();
 	}
 

+ 4 - 0
mec-biz/src/main/resources/config/mybatis/ImUserFriendMapper.xml

@@ -47,6 +47,10 @@
 			(#{teacherId},#{item.userId},#{item.name},#{item.subjectName},#{item.musicGroupName},NOW(),NOW())
 		</foreach>
 	</insert>
+	<insert id="insertByBasicUser">
+		INSERT INTO im_user_friend (user_id_,friend_id_,friend_nickname_,tags_,memo_,create_time_,update_time_)
+		VALUES (#{teacherId},#{item.userId},#{item.name},#{item.subjectName},#{item.musicGroupName},NOW(),NOW())
+	</insert>
 
 	<!-- 根据主键查询一条记录 -->
 	<update id="update" parameterType="com.ym.mec.biz.dal.entity.ImUserFriend">