Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/master'

Joburgess 5 rokov pred
rodič
commit
6bf49ca8b6

+ 1 - 1
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/AuthServerApplication.java

@@ -16,7 +16,7 @@ import com.spring4all.swagger.EnableSwagger2Doc;
 
 @SpringBootApplication
 @EnableDiscoveryClient
-@EnableFeignClients({"com.ym.mec.im"})
+@EnableFeignClients({"com.ym.mec"})
 @MapperScan("com.ym.mec.auth.dal.dao")
 @ComponentScan(basePackages="com.ym.mec")
 @Configuration

+ 15 - 8
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysUserServiceImpl.java

@@ -1,5 +1,14 @@
 package com.ym.mec.auth.service.impl;
 
+import java.util.Date;
+import java.util.List;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.stereotype.Service;
+
 import com.ym.mec.auth.api.dto.SysUserInfo;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.enums.SysUserType;
@@ -14,14 +23,7 @@ import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.security.core.userdetails.UsernameNotFoundException;
-import org.springframework.stereotype.Service;
-
-import java.util.Date;
-import java.util.List;
+import com.ym.mec.user.UserFeignService;
 
 @Service
 public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implements SysUserService {
@@ -37,6 +39,9 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 
 	@Autowired
 	private ImFeignService imFeignService;
+	
+	@Autowired
+	private UserFeignService userFeignService;
 
 	@Value("${message.autoRegister}")
 	private boolean autoRegister;
@@ -166,7 +171,9 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 			sysUser.setPhone(phone);
 			sysUser.setUserType(SysUserType.STUDENT);
 			sysUserDao.insert(sysUser);
+            //添加用户现金账户
 			imFeignService.register(new ImUserModel(sysUser.getId().toString(),phone,null));
+			userFeignService.createCashAccount(sysUser.getId());
 			return queryUserInfoByPhone(phone);
 		}
 		throw new UsernameNotFoundException("404.9");

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupStudentMapperDao.java

@@ -211,4 +211,18 @@ public interface ClassGroupStudentMapperDao extends BaseDAO<Long, ClassGroupStud
      * @return
      */
     List<ClassGroupStudentMapper> findMusicGroupClassGroupByType(@Param("musicGroupId") String musicGroupId, @Param("classGroupType") ClassGroupTypeEnum classGroupType);
+
+    /**
+     * 获取vip课所有学员列表
+     * @param vipGroupId
+     * @return
+     */
+    List<Map<Integer, String>> queryStudentIdMap(Long vipGroupId);
+
+    /**
+     * 获取vip课所有教师列表
+     * @param vipGroupId
+     * @return
+     */
+    List<Map<Integer, String>> queryTeacherIdMap(Long vipGroupId);
 }

+ 28 - 73
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -267,9 +267,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     @Override
     @Transactional(rollbackFor = Exception.class)
     public List<HighClassGroupDto> addHighClassGroup(List<HighClassGroupDto> highClassGroupList) throws Exception {
-    	String key = "addHighClassGroup";
-    	long value = Thread.currentThread().getId();
-    	redisCache.getLocked(key, value, 30);
+        String key = "addHighClassGroup";
+        long value = Thread.currentThread().getId();
+        redisCache.getLocked(key, value, 30);
         MusicGroup musicGroup = musicGroupDao.get(highClassGroupList.get(0).getMusicGroupId());
 
         int highClassGroupNum = studentRegistrationDao.findMusicGroupStudentNum(musicGroup.getId()) / 5;
@@ -532,7 +532,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //获取分页前的所有的乐团编号和vip编号
         params.put("offset", pageInfo.getOffset());
         List<String> musicGroupIds = courseScheduleDao.queryMusicGroupIds(params);
-        if(queryInfo.isHideOverGroup()){
+        if (queryInfo.isHideOverGroup()) {
             musicGroupIds = courseScheduleDao.queryMusicGroupIdsWithoutOverGroup(params);
         }
         courseListDtos = new ArrayList<>();
@@ -1198,64 +1198,26 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         if (musicGroup == null) {
             throw new Exception("乐团不存在");
         }
-        ClassGroup classgroup = classGroupDao.get(classGroup4MixDto.getClassGroupId());
-        if (classgroup == null) {
+        ClassGroup classGroup = classGroupDao.get(classGroup4MixDto.getClassGroupId());
+        if (classGroup == null) {
             throw new Exception("班级不存在");
         }
-
         Integer schoolId = musicGroup.getSchoolId();
 
+        List<Subject> subjectList = subjectService.findBySubjectByIdList(classGroup.getSubjectIdList());
 
-        List<Integer> studentIdList = classGroup4MixDto.getStudents();
-        List<StudentRegistration> studentList = studentRegistrationService.findStudentListByUserIdList(musicGroupId, studentIdList);
-        List<Integer> subjectIdList = studentList.stream().map(student -> student.getActualSubjectId()).collect(Collectors.toList());
-
-        List<Subject> subjectList = subjectService.findBySubjectByIdList(subjectIdList);
-
-        String subjectIds = subjectList.stream().map(subject -> subject.getId().toString()).collect(Collectors.joining(","));
         String subjectNames = subjectList.stream().map(subject -> subject.getName()).collect(Collectors.joining("/"));
 
-        //1、新建班级
-        ClassGroup classGroup = new ClassGroup();
-        classGroup.setMusicGroupId(classGroup4MixDto.getMusicGroupId());
-        classGroup.setSubjectIdList(subjectIds);
-        classGroup.setName(classGroup4MixDto.getClassGroupName());
-        classGroup.setExpectStudentNum(studentList.size());
-        classGroup.setStudentNum(studentList.size());
-        classGroup.setType(ClassGroupTypeEnum.NORMAL);
-        classGroup.setGroupType(GroupType.MUSIC);
-        classGroup.setDelFlag(0);
-        classGroup.setCreateTime(date);
-        classGroup.setUpdateTime(date);
-        classGroupDao.insert(classGroup);
-
-
-        //2、将学生加入新班级(学生注册表,关联表
-        List<ClassGroupStudentMapper> classGroupStudentMapperList = new ArrayList<>();
-        for (StudentRegistration studentRegistration : studentList) {
-            studentRegistration.setClassGroupId(classGroup.getId());
-            studentRegistrationService.update(studentRegistration);
-
-            ClassGroupStudentMapper classGroupStudentMapper = new ClassGroupStudentMapper();
-            classGroupStudentMapper.setClassGroupId(classGroup.getId());
-            classGroupStudentMapper.setUserId(studentRegistration.getUserId());
-            classGroupStudentMapper.setCreateTime(date);
-            classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
-            classGroupStudentMapper.setGroupType(GroupType.MUSIC);
-            classGroupStudentMapperList.add(classGroupStudentMapper);
-        }
-        classGroupStudentMapperDao.classGroupStudentsInsert(classGroupStudentMapperList);
-
-
-        //3、将老师加入关联关系
+        //1、跟新班级关联老师信息
         List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroup4MixDto.getClassGroupTeacherMapperList();
-
-        classGroupTeacherMapperList.forEach(classGroupTeacherMapper -> {
-            classGroupTeacherMapper.setGroupType(classGroup.getGroupType());
-            classGroupTeacherMapper.setClassGroupId(classGroup.getId());
-            classGroupTeacherMapper.setMusicGroupId(classGroup4MixDto.getMusicGroupId());
-        });
-        classGroupTeacherMapperDao.classGroupTeachersInsert(classGroupTeacherMapperList);
+        if (classGroupTeacherMapperList != null && classGroupTeacherMapperList.size() > 0) {
+            classGroupTeacherMapperList.forEach(classGroupTeacherMapper -> {
+                classGroupTeacherMapper.setGroupType(classGroup.getGroupType());
+                classGroupTeacherMapper.setClassGroupId(classGroup.getId());
+                classGroupTeacherMapper.setMusicGroupId(classGroup.getMusicGroupId());
+            });
+            classGroupTeacherMapperDao.classGroupTeachersInsert(classGroupTeacherMapperList);
+        }
 
         //5、插入班级排课信息
         LocalDateTime now = LocalDate.parse(classGroup4MixDto.getStartDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd")).atStartOfDay();
@@ -1348,18 +1310,18 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     courseScheduleTeacherSalary.setUpdateTime(date);
                     courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
                 }
-                for (StudentRegistration studentRegistration : studentList) {
-                    CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
-                    courseScheduleStudentPayment.setGroupType(classGroup.getGroupType());
-                    courseScheduleStudentPayment.setMusicGroupId(classGroup.getMusicGroupId());
-                    courseScheduleStudentPayment.setCourseScheduleId(courseSchedule.getId());
-                    courseScheduleStudentPayment.setUserId(studentRegistration.getUserId());
-                    courseScheduleStudentPayment.setExpectPrice(expectPrice);
-                    courseScheduleStudentPayment.setCreateTime(date);
-                    courseScheduleStudentPayment.setUpdateTime(date);
-                    courseScheduleStudentPayment.setClassGroupId(classGroup.getId());
-                    courseScheduleStudentPaymentList.add(courseScheduleStudentPayment);
-                }
+//                for (StudentRegistration studentRegistration : studentList) {
+//                    CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
+//                    courseScheduleStudentPayment.setGroupType(classGroup.getGroupType());
+//                    courseScheduleStudentPayment.setMusicGroupId(classGroup.getMusicGroupId());
+//                    courseScheduleStudentPayment.setCourseScheduleId(courseSchedule.getId());
+//                    courseScheduleStudentPayment.setUserId(studentRegistration.getUserId());
+//                    courseScheduleStudentPayment.setExpectPrice(expectPrice);
+//                    courseScheduleStudentPayment.setCreateTime(date);
+//                    courseScheduleStudentPayment.setUpdateTime(date);
+//                    courseScheduleStudentPayment.setClassGroupId(classGroup.getId());
+//                    courseScheduleStudentPaymentList.add(courseScheduleStudentPayment);
+//                }
                 if (classGroup4MixDto.getCourseTimes().equals(times)) {
                     break WhileNode;
                 }
@@ -1373,13 +1335,6 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //老师结算表
         courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
 
-        //加入合奏班
-        ClassGroupRelation classGroupRelation = new ClassGroupRelation();
-        classGroupRelation.setClassGroupId(classGroup4MixDto.getClassGroupId());
-        classGroupRelation.setSubClassGroupId(classGroup.getId());
-        classGroupRelation.setCreateTime(date);
-        classGroupRelationService.insert(classGroupRelation);
-
         //学生结算表
         courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPaymentList);
         return classGroup;

+ 13 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -1654,14 +1654,26 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(CollectionUtils.isEmpty(noCreateSuccessVipGroups)){
 			return;
 		}
+		String refundPeriod = sysConfigDao.findConfigValue(SysConfigService.REFUND_PERIOD);
 		//用户账户资金变动信息列表
 		List<SysUserCashAccountDetail> userCashAccountDetails = new ArrayList<>();
 		for (VipGroup noCreateSuccessVipGroup : noCreateSuccessVipGroups) {
 			List<StudentPaymentOrder> studentPaymentOrders = studentPaymentOrderDao.queryByDealStatus(noCreateSuccessVipGroup.getId().toString(),
 					OrderTypeEnum.SMALL_CLASS_TO_BUY, DealStatusEnum.SUCCESS);
+
 			//学生推送消息
+			Map<Integer,String> maps = MapUtil.convertMybatisMap(classGroupStudentMapperDao.queryStudentIdMap(noCreateSuccessVipGroup.getId()));
+			if(maps != null && maps.size() > 0){
+				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,MessageTypeEnum.PUSH_STUDENT_VIP_STOP,
+						maps,null,0,null,noCreateSuccessVipGroup.getName(),refundPeriod);
+			}
 			//老师推送消息
-//			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,MessageTypeEnum.PUSH_STUDENT_VIP_STOP,);
+			maps = MapUtil.convertMybatisMap(classGroupStudentMapperDao.queryTeacherIdMap(noCreateSuccessVipGroup.getId()));
+			if(maps != null && maps.size() > 0){
+				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,MessageTypeEnum.PUSH_TEACHER_VIP_STOP,
+						maps,null,0,null,noCreateSuccessVipGroup.getName());
+			}
+
 			for (StudentPaymentOrder studentPaymentOrder:studentPaymentOrders){
 				//生成账户资金明细
 				sysUserCashAccountService.updateCourseBalance(studentPaymentOrder.getUserId(),studentPaymentOrder.getActualAmount());

+ 8 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml

@@ -248,4 +248,12 @@
         LEFT JOIN class_group cg on cgsm.class_group_id_ = cg.id_
         WHERE cgsm.music_group_id_ = #{musicGroupId} AND cg.group_type_ ='MUSIC' AND cg.type_=#{classGroupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND cg.del_flag_='0' AND cgsm.status_='NORMAL'
     </select>
+    <select id="queryStudentIdMap" resultType="java.util.Map">
+        SELECT cgsm.user_id_ 'key',cgsm.user_id_ 'value' FROM class_group_student_mapper cgsm
+        WHERE cgsm.music_group_id_ = #{vipGroupId} AND cgsm.group_type_ = 'VIP' AND cgsm.status_ != 'QUIT'
+    </select>
+    <select id="queryTeacherIdMap" resultType="java.util.Map">
+        SELECT cgtm.user_id_ 'key',cgtm.user_id_ 'value' FROM class_group_teacher_mapper cgtm
+        WHERE cgtm.music_group_id_ = #{vipGroupId} AND cgtm.group_type_ = 'VIP'
+    </select>
 </mapper>

+ 1 - 1
mec-client-api/src/main/java/com/ym/mec/task/TaskRemoteService.java

@@ -6,7 +6,7 @@ import org.springframework.web.bind.annotation.GetMapping;
 import com.ym.mec.common.config.FeignConfiguration;
 import com.ym.mec.task.fallback.TaskRemoteServiceFallback;
 
-@FeignClient(name = "web-server", configuration = { FeignConfiguration.class }, fallback = TaskRemoteServiceFallback.class)
+@FeignClient(name = "web-server", contextId = "TaskRemoteService", configuration = { FeignConfiguration.class }, fallback = TaskRemoteServiceFallback.class)
 public interface TaskRemoteService {
 
 	@GetMapping(value = "task/refreshPaymentFeeStatus")

+ 15 - 0
mec-client-api/src/main/java/com/ym/mec/user/UserFeignService.java

@@ -0,0 +1,15 @@
+package com.ym.mec.user;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+
+import com.ym.mec.common.config.FeignConfiguration;
+import com.ym.mec.user.fallback.UserFeignServiceFallback;
+
+@FeignClient(name = "web-server", contextId = "UserFeignService", configuration = FeignConfiguration.class, fallback = UserFeignServiceFallback.class)
+public interface UserFeignService {
+
+	@GetMapping(value = "api/createCashAccount/{userId}")
+	public Boolean createCashAccount(@PathVariable("userId") Integer userId);
+}

+ 13 - 0
mec-client-api/src/main/java/com/ym/mec/user/fallback/UserFeignServiceFallback.java

@@ -0,0 +1,13 @@
+package com.ym.mec.user.fallback;
+
+import org.springframework.stereotype.Component;
+
+import com.ym.mec.user.UserFeignService;
+
+@Component
+public class UserFeignServiceFallback implements UserFeignService {
+
+	@Override
+	public Boolean createCashAccount(Integer userId) {
+		return false;
+	}}

+ 31 - 0
mec-web/src/main/java/com/ym/mec/web/controller/APIController.java

@@ -0,0 +1,31 @@
+package com.ym.mec.web.controller;
+
+import io.swagger.annotations.Api;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
+import com.ym.mec.biz.dal.entity.SysUserCashAccount;
+import com.ym.mec.common.controller.BaseController;
+
+@RequestMapping("api")
+@Api(tags = "对外接口")
+@RestController
+public class APIController extends BaseController {
+
+	@Autowired
+	private SysUserCashAccountDao sysUserCashAccountDao;
+
+	@GetMapping("/createCashAccount/{userId}")
+	public Boolean createCashAccount(@PathVariable("userId") Integer userId) {
+		// 添加用户现金账户
+		sysUserCashAccountDao.insert(new SysUserCashAccount(userId, "CNY"));
+
+		return true;
+	}
+
+}

+ 6 - 6
mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

@@ -66,6 +66,12 @@ public class TaskController extends BaseController {
 		vipGroupService.updateVipGroupStatusToFinished();
 	}
 
+	@GetMapping("/stopVipGroupWithNoCreate")
+	// 取消达到报名时间未达到报名人数的vip课
+	public void stopVipGroupWithNoCreate() {
+		vipGroupService.stopVipGroupWithNoCreate();
+	}
+
 	@GetMapping("/pushNoSignOutMessage")
 	// 推送未签退消息提醒
 	public void pushNoSignOutMessage() {
@@ -114,10 +120,4 @@ public class TaskController extends BaseController {
 		studentPaymentOrderService.queryOrderStatus();
 	}
 
-	//取消达到报名时间仍未达到报名人数的vip课
-	@GetMapping("/stopVipGroupWithNoCreate")
-	public void stopVipGroupWithNoCreate(){
-		vipGroupService.stopVipGroupWithNoCreate();
-	}
-
 }