ソースを参照

预报名、启蒙问卷注册逻辑修改

zouxuan 3 年 前
コミット
c0bdaf7f9e

+ 2 - 1
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/provider/PhoneAuthenticationProvider.java

@@ -78,7 +78,8 @@ public class PhoneAuthenticationProvider extends AbstractAuthenticationProvider
 				throw new LockedException("用户不存在");
 			}
 			//如果机构不一致,不允许跨机构注册
-			if(!loginEntity.getTenantId().equals(user.getTenantId())){
+			if(loginEntity.getTenantId() != null && loginEntity.getTenantId() != 0 &&
+					!loginEntity.getTenantId().equals(user.getTenantId())){
 				throw new LockedException("用户已注册");
 			}
 			if (StringUtils.isNotBlank(deviceNum)) {

+ 0 - 21
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/SysUserService.java

@@ -50,27 +50,6 @@ public interface SysUserService extends BaseService<Integer, SysUser> {
 	SysUserInfo queryUserInfoByPhone(String phone);
 
 	/**
-	 * 根据手机号获取系统用户详细信息
-	 * @param phone
-	 * @return
-	 */
-	SysUserInfo queryUserInfoByPhoneAndClient(String phone,String client);
-
-	/**
-	 * 删除指定用户
-	 * @param id
-	 * @return
-	 */
-	boolean deleteById(Integer id);
-
-	/**
-	 * 根据用户手机号修改密码
-	 * @param mobile
-	 * @param password
-	 */
-	void updatePassword(String mobile, String password);
-
-	/**
 	 * 新增用户
 	 * @param sysUser
 	 * @return

+ 0 - 31
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysUserServiceImpl.java

@@ -2,15 +2,12 @@ package com.ym.mec.auth.service.impl;
 
 import com.ym.mec.auth.api.dto.SysUserInfo;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.auth.api.enums.YesOrNoEnum;
 import com.ym.mec.auth.dal.dao.SysUserDao;
 import com.ym.mec.auth.service.SysRoleMenuService;
-import com.ym.mec.auth.service.SysUserRoleService;
 import com.ym.mec.auth.service.SysUserService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImResult;
 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 com.ym.mec.web.WebFeignService;
@@ -20,8 +17,6 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Arrays;
-import java.util.Date;
 import java.util.List;
 
 @Service
@@ -75,11 +70,6 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 		return getSysUserInfo(queryLockByPhone(phone));
 	}
 
-	@Override
-	public SysUserInfo queryUserInfoByPhoneAndClient(String phone,String client) {
-		return getSysUserInfo(queryByPhoneAndClient(phone,client));
-	}
-
 	private SysUserInfo getSysUserInfo(SysUser sysUser) {
 		if (sysUser == null) {
 			return null;
@@ -93,27 +83,6 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 	}
 
 	@Override
-	public boolean deleteById(Integer id) {
-		SysUser user = get(id);
-
-		if (user == null) {
-			throw new BizException("账户不存在");
-		}
-
-		user.setUpdateTime(new Date());
-		user.setDelFlag(YesOrNoEnum.YES);
-
-		update(user);
-
-		return true;
-	}
-
-	@Override
-	public void updatePassword(String mobile, String password) {
-		sysUserDao.updatePassword(mobile,password);
-	}
-
-	@Override
 	public Integer add(SysUser sysUser) {
 		sysUserDao.insert(sysUser);
 		ImResult imResult = imFeignService.register(new ImUserModel(sysUser.getId().toString(), sysUser.getUsername(), sysUser.getAvatar()));

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

@@ -408,7 +408,7 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
 
     List<Student> queryStudent(Map<String, Object> params);
 
-    List<Map<Integer, String>> getStudentTeacherMap(List<Integer> studentIds);
-
     int updateMembershipEndTime(@Param("studentId")Integer studentId, @Param("endTime")Date endTime);
+
+    SysUser getUserByPhone(String phone);
 }

+ 89 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/BaseStudentDto.java

@@ -0,0 +1,89 @@
+package com.ym.mec.biz.dal.entity;
+
+import com.ym.mec.common.entity.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
+
+//学员基类
+public class BaseStudentDto extends BaseEntity {
+    @ApiModelProperty("分部编号")
+    private Integer organId;
+
+    @ApiModelProperty("用户编号")
+    private Integer userId;
+
+    /**  */
+    @ApiModelProperty("用户名")
+    private String userName;
+
+    /**  */
+    @ApiModelProperty("联系方式")
+    private String phone;
+
+    /** 年级 */
+    @ApiModelProperty("年级")
+    private String currentGrade;
+
+    /** 年级数字 */
+    @ApiModelProperty("年级数字")
+    private Integer currentGradeNum;
+
+    /** 班级 */
+    @ApiModelProperty("班级")
+    private String currentClass;
+
+    public Integer getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Integer organId) {
+        this.organId = organId;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getCurrentGrade() {
+        return currentGrade;
+    }
+
+    public void setCurrentGrade(String currentGrade) {
+        this.currentGrade = currentGrade;
+    }
+
+    public Integer getCurrentGradeNum() {
+        return currentGradeNum;
+    }
+
+    public void setCurrentGradeNum(Integer currentGradeNum) {
+        this.currentGradeNum = currentGradeNum;
+    }
+
+    public String getCurrentClass() {
+        return currentClass;
+    }
+
+    public void setCurrentClass(String currentClass) {
+        this.currentClass = currentClass;
+    }
+}

+ 1 - 76
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicEnlightenmentQuestionnaire.java

@@ -1,17 +1,14 @@
 package com.ym.mec.biz.dal.entity;
 
 import io.swagger.annotations.ApiModelProperty;
-
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
-import com.ym.mec.common.entity.BaseEntity;
-
 import java.util.Date;
 
 /**
  * 对应数据库表(music_enlightenment_questionnaire):
  */
-public class MusicEnlightenmentQuestionnaire extends BaseEntity {
+public class MusicEnlightenmentQuestionnaire extends BaseStudentDto {
 
 	/**  */
 	private Long id;
@@ -20,30 +17,6 @@ public class MusicEnlightenmentQuestionnaire extends BaseEntity {
 	@ApiModelProperty("乐团编号")
 	private String musicGroupId;
 	
-	/**  */
-	@ApiModelProperty("用户编号")
-	private Integer userId;
-	
-	/**  */
-	@ApiModelProperty("用户名")
-	private String userName;
-	
-	/**  */
-	@ApiModelProperty("联系方式")
-	private String phone;
-	
-	/** 年级 */
-	@ApiModelProperty("年级")
-	private String currentGrade;
-	
-	/** 年级数字 */
-	@ApiModelProperty("年级数字")
-	private Integer currentGradeNum;
-	
-	/** 班级 */
-	@ApiModelProperty("班级")
-	private String currentClass;
-	
 	/** 教师推荐专业 */
 	@ApiModelProperty("教师推荐专业")
 	private Integer teacherRecommandSubjectId;
@@ -87,54 +60,6 @@ public class MusicEnlightenmentQuestionnaire extends BaseEntity {
 		this.musicGroupId = musicGroupId;
 	}
 
-	public Integer getUserId() {
-		return userId;
-	}
-
-	public void setUserId(Integer userId) {
-		this.userId = userId;
-	}
-
-	public String getUserName() {
-		return userName;
-	}
-
-	public void setUserName(String userName) {
-		this.userName = userName;
-	}
-
-	public String getPhone() {
-		return phone;
-	}
-
-	public void setPhone(String phone) {
-		this.phone = phone;
-	}
-
-	public String getCurrentGrade() {
-		return currentGrade;
-	}
-
-	public void setCurrentGrade(String currentGrade) {
-		this.currentGrade = currentGrade;
-	}
-
-	public Integer getCurrentGradeNum() {
-		return currentGradeNum;
-	}
-
-	public void setCurrentGradeNum(Integer currentGradeNum) {
-		this.currentGradeNum = currentGradeNum;
-	}
-
-	public String getCurrentClass() {
-		return currentClass;
-	}
-
-	public void setCurrentClass(String currentClass) {
-		this.currentClass = currentClass;
-	}
-
 	public Integer getTeacherRecommandSubjectId() {
 		return teacherRecommandSubjectId;
 	}

+ 1 - 79
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentPreRegistration.java

@@ -2,43 +2,21 @@ package com.ym.mec.biz.dal.entity;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
-import com.ym.mec.common.entity.BaseEntity;
-
 /**
  * 对应数据库表(student_pre_registration):
  */
-public class StudentPreRegistration extends BaseEntity {
+public class StudentPreRegistration extends BaseStudentDto {
 
 	/**  */
 	private Long id;
 	
-	private Integer organId;
-	
 	private String musicGroupId;
 	
 	private String school;
 	
-	/** 用户编号 */
-	private Integer userId;
-	
-	/** 联系方式 */
-	private String phone;
-	
-	/** 学生姓名 */
-	private String userName;
-	
 	/** 性别 */
 	private boolean gender;
 
-	/** 年级 */
-	private String currentGrade;
-
-	/** 年级编号 */
-	private Integer currentGradeNum;
-
-	/** 班级 */
-	private String currentClass;
-	
 	/** 第一专业 */
 	private Integer subjectFirst;
 	
@@ -71,14 +49,6 @@ public class StudentPreRegistration extends BaseEntity {
 		return this.id;
 	}
 			
-	public Integer getOrganId() {
-		return organId;
-	}
-
-	public void setOrganId(Integer organId) {
-		this.organId = organId;
-	}
-
 	public String getMusicGroupId() {
 		return musicGroupId;
 	}
@@ -95,30 +65,6 @@ public class StudentPreRegistration extends BaseEntity {
 		this.school = school;
 	}
 
-	public void setUserId(Integer userId){
-		this.userId = userId;
-	}
-	
-	public Integer getUserId(){
-		return this.userId;
-	}
-			
-	public void setPhone(String phone){
-		this.phone = phone;
-	}
-	
-	public String getPhone(){
-		return this.phone;
-	}
-			
-	public void setUserName(String userName){
-		this.userName = userName;
-	}
-	
-	public String getUserName(){
-		return this.userName;
-	}
-			
 	public void setGender(boolean gender){
 		this.gender = gender;
 	}
@@ -127,22 +73,6 @@ public class StudentPreRegistration extends BaseEntity {
 		return this.gender;
 	}
 			
-	public void setCurrentGrade(String currentGrade){
-		this.currentGrade = currentGrade;
-	}
-	
-	public String getCurrentGrade(){
-		return this.currentGrade;
-	}
-			
-	public void setCurrentClass(String currentClass){
-		this.currentClass = currentClass;
-	}
-	
-	public String getCurrentClass(){
-		return this.currentClass;
-	}
-			
 	public void setSubjectFirst(Integer subjectFirst){
 		this.subjectFirst = subjectFirst;
 	}
@@ -204,14 +134,6 @@ public class StudentPreRegistration extends BaseEntity {
 		return ToStringBuilder.reflectionToString(this);
 	}
 
-	public Integer getCurrentGradeNum() {
-		return currentGradeNum;
-	}
-
-	public void setCurrentGradeNum(Integer currentGradeNum) {
-		this.currentGradeNum = currentGradeNum;
-	}
-
 	public String getCloudTeacherMethod() {
 		return cloudTeacherMethod;
 	}

+ 11 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/StudentService.java

@@ -5,14 +5,12 @@ import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.CloudStudyStudentDataDto;
 import com.ym.mec.biz.dal.dto.CloudTeacherActiveTargetDetailDto;
 import com.ym.mec.biz.dal.dto.EduOrganStudentDataDto;
 import com.ym.mec.biz.dal.dto.StatDto;
-import com.ym.mec.biz.dal.entity.CloudTeacherOrder;
-import com.ym.mec.biz.dal.entity.CooperationOrgan;
-import com.ym.mec.biz.dal.entity.Student;
-import com.ym.mec.biz.dal.entity.StudentPreRegistration;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.GradeTypeEnum;
 import com.ym.mec.biz.dal.enums.PeriodEnum;
 import com.ym.mec.biz.dal.page.CloudTeacherActiveQueryInfo;
@@ -159,4 +157,13 @@ public interface StudentService extends BaseService<Integer, Student> {
     PageInfo<CloudTeacherActiveTargetDetailDto> countCloudTeacherActiveDetail(CloudTeacherActiveQueryInfo queryInfo);
 
     int updateMembershipEndTime(Integer studentId, Date endTime);
+
+    /**
+    * @description: 根据手机号检测学员是否存在,存在就更新,不存在插入
+     * @param student
+    * @return com.ym.mec.auth.api.entity.SysUser
+    * @author zx
+    * @date 2022/1/7 11:02
+    */
+    <T extends BaseStudentDto> SysUser upSetStudent(T student);
 }

+ 12 - 34
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupMemberServiceImpl.java

@@ -1,24 +1,11 @@
 package com.ym.mec.biz.service.impl;
 
-import java.util.*;
-import java.util.Map.Entry;
-import java.util.stream.Collectors;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.GroupType;
-import com.ym.mec.biz.service.ImGroupService;
-import com.ym.mec.common.entity.ImGroupModel;
-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 com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.service.ImGroupMemberService;
+import com.ym.mec.biz.service.ImGroupService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
@@ -26,46 +13,39 @@ import com.ym.mec.im.ImFeignService;
 import com.ym.mec.im.entity.GroupMember;
 import com.ym.mec.im.entity.GroupModel;
 import com.ym.mec.util.collection.MapUtil;
+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.Map.Entry;
+import java.util.stream.Collectors;
 
 @Service
 public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMember> implements ImGroupMemberService {
-
 	@Autowired
 	private ImGroupMemberDao imGroupMemberDao;
-
 	@Autowired
 	private ImGroupDao imGroupDao;
-
 	@Autowired
 	private ImGroupService imGroupService;
-
 	@Autowired
 	private TeacherDao teacherDao;
-
 	@Autowired
 	private ClassGroupDao classGroupDao;
-
 	@Autowired
 	private MusicGroupDao musicGroupDao;
-
 	@Autowired
 	private PracticeGroupDao practiceGroupDao;
-
 	@Autowired
 	private VipGroupDao vipGroupDao;
-
 	@Autowired
 	private ClassGroupTeacherMapperDao classGroupTeacherMapperDao;
-
 	@Autowired
 	private ClassGroupStudentMapperDao classGroupStudentMapperDao;
-
 	@Autowired
 	private ImFeignService imFeignService;
-	
-	@Autowired
-	private SysUserFeignService sysUserFeignService;
-
 	@Override
 	public BaseDAO<Long, ImGroupMember> getDAO() {
 		return imGroupMemberDao;
@@ -140,9 +120,7 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 		if(imGroupMemberList != null && imGroupMemberList.size() > 0){
 			return true;
 		}
-		
-		SysUser user = sysUserFeignService.queryUserById(userId);
-		
+
 		ImGroupMember imGroupMember = new ImGroupMember();
 		Date date = new Date();
 
@@ -152,6 +130,7 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 		imGroupMember.setRoleType(roleType);
 		imGroupMember.setUpdateTime(date);
 		imGroupMember.setUserId(userId);
+		SysUser user = teacherDao.getUser(userId);
 		if (StringUtils.isBlank(roleType)) {
 			imGroupMember.setNickname(user.getUsername()==null?user.getRealName():user.getUsername());
 		} else {
@@ -168,7 +147,6 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 
 		GroupMember groupMember = new GroupMember(userId.toString(), groupId);
 		imFeignService.groupJoin(new GroupModel(groupId, new GroupMember[] { groupMember }, imGroup.getName()));
-
 		return true;
 	}
 

+ 10 - 67
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicEnlightenmentQuestionnaireServiceImpl.java

@@ -1,20 +1,17 @@
 package com.ym.mec.biz.service.impl;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dao.MusicEnlightenmentQuestionnaireDao;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
 import com.ym.mec.biz.dal.dto.MusicEnlightenmentQuestionnaireStatDto;
 import com.ym.mec.biz.dal.entity.MusicEnlightenmentQuestionnaire;
 import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.entity.Student;
-import com.ym.mec.biz.dal.entity.SysUserCashAccount;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
 import com.ym.mec.biz.dal.page.MusicEnlightenmentQuestionnaireQueryInfo;
 import com.ym.mec.biz.service.MusicEnlightenmentQuestionnaireService;
+import com.ym.mec.biz.service.StudentService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
-import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
@@ -22,7 +19,6 @@ import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.text.SimpleDateFormat;
@@ -37,13 +33,7 @@ public class MusicEnlightenmentQuestionnaireServiceImpl extends BaseServiceImpl<
 	@Autowired
 	private MusicGroupDao musicGroupDao;
 	@Autowired
-	private SysUserFeignService sysUserFeignService;
-	@Autowired
-	private TeacherDao teacherDao;
-	@Autowired
-	private StudentDao studentDao;
-	@Autowired
-	private SysUserCashAccountDao sysUserCashAccountDao;
+	private StudentService studentService;
 	@Autowired
 	private SysMessageService sysMessageService;
 
@@ -55,15 +45,13 @@ public class MusicEnlightenmentQuestionnaireServiceImpl extends BaseServiceImpl<
 	}
 
 	@Override
-	@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
+	@Transactional(rollbackFor = Exception.class)
 	public void addEnlightenmentQuestionnaire(MusicEnlightenmentQuestionnaire enlightenmentQuestionnaire) {
 		String musicGroupId = enlightenmentQuestionnaire.getMusicGroupId();
 		String userPhone = enlightenmentQuestionnaire.getPhone();
-
-		if(Objects.isNull(musicGroupId)||Objects.isNull(userPhone)){
+		if(Objects.isNull(musicGroupId) || Objects.isNull(userPhone)){
 			throw new BizException("问卷信息错误");
 		}
-
 		// 查询乐团状态
 		MusicGroup musicGroup = musicGroupDao.getLocked(musicGroupId);
 		if (musicGroup == null) {
@@ -72,55 +60,10 @@ public class MusicEnlightenmentQuestionnaireServiceImpl extends BaseServiceImpl<
 		if (musicGroup.getStatus() != MusicGroupStatusEnum.PRE_APPLY) {
 			throw new BizException("乐团当前状态不能预报名");
 		}
-
-		Date date = new Date();
-
-		// 判断用户是否存在
-		SysUser user = sysUserFeignService.queryUserByMobile(enlightenmentQuestionnaire.getPhone());
-		if (user == null || user.getId() == null) {
-			user = new SysUser();
-			user.setPhone(enlightenmentQuestionnaire.getPhone());
-			user.setUsername(enlightenmentQuestionnaire.getUserName());
-			user.setOrganId(musicGroup.getOrganId());
-			user.setUserType("STUDENT");
-			user.setCreateTime(date);
-			user.setUpdateTime(date);
-			// 注册账户信息
-			HttpResponseResult<Integer> result = sysUserFeignService.addUser(user);
-
-			Integer userId = result.getData();
-			user.setId(userId);
-
-			Student student = new Student();
-			student.setUserId(userId);
-			student.setCreateTime(date);
-			student.setUpdateTime(date);
-			student.setIsNewUser(true);
-			student.setCurrentGradeNum(enlightenmentQuestionnaire.getCurrentGradeNum());
-			student.setCurrentClass(enlightenmentQuestionnaire.getCurrentClass());
-			studentDao.insert(student);
-			sysUserCashAccountDao.insert(new SysUserCashAccount(userId, "CNY"));
-		} else {
-			user.setUsername(enlightenmentQuestionnaire.getUserName());
-			if (!user.getUserType().contains("STUDENT")) {
-				user.setUserType(user.getUserType() + ",STUDENT");
-
-				Integer userId = user.getId();
-				//添加student
-				Student student = new Student();
-				student.setUserId(userId);
-				student.setCreateTime(date);
-				student.setUpdateTime(date);
-				student.setIsNewUser(true);
-				student.setCurrentGradeNum(enlightenmentQuestionnaire.getCurrentGradeNum());
-				student.setCurrentClass(enlightenmentQuestionnaire.getCurrentClass());
-				studentDao.insert(student);
-			}
-			user.setUpdateTime(new Date());
-			teacherDao.updateUser(user);
-		}
-
-		enlightenmentQuestionnaire.setUserId(user.getId());
+		enlightenmentQuestionnaire.setTenantId(musicGroup.getTenantId());
+		enlightenmentQuestionnaire.setOrganId(musicGroup.getOrganId());
+		// 根据手机号检测学员是否存在,存在就更新,不存在插入
+		studentService.upSetStudent(enlightenmentQuestionnaire);
 
 		MusicEnlightenmentQuestionnaire musicEnlightenmentQuestionnaire = musicEnlightenmentQuestionnaireDao.lockUserMusicEnlightenmentQuestionnaire(musicGroupId, userPhone);
 		if(Objects.isNull(musicEnlightenmentQuestionnaire)){

+ 12 - 66
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -24,7 +24,6 @@ import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.entity.ImGroupMember;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
-import com.ym.mec.common.page.WrapperUtil;
 import com.ym.mec.common.service.IdGeneratorService;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.tenant.TenantContextHolder;
@@ -46,7 +45,6 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.io.IOException;
 import java.math.BigDecimal;
-import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -69,7 +67,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Autowired
     private TeacherDao teacherDao;
     @Autowired
-    private StudentDao studentDao;
+    private StudentService studentService;
     @Autowired
     private IdGeneratorService idGeneratorService;
     @Autowired
@@ -173,8 +171,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Autowired
     private GoodsDao goodsDao;
     @Autowired
-    private SysUserCashAccountDao sysUserCashAccountDao;
-    @Autowired
     private ContractService contractService;
     @Autowired
     private StudentPreRegistrationDao studentPreRegistrationDao;
@@ -324,9 +320,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean preRegister(StudentPreRegistration studentPreRegistration) {
-
         String musicGroupId = studentPreRegistration.getMusicGroupId();
-
         // 查询乐团状态
         MusicGroup musicGroup = musicGroupDao.getLocked(musicGroupId);
         if (musicGroup == null) {
@@ -335,69 +329,24 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (musicGroup.getStatus() != MusicGroupStatusEnum.PRE_APPLY) {
             throw new BizException("乐团当前状态不能预报名");
         }
-
         StudentPreRegistration originRegistration = studentPreRegistrationDao.queryByMusicGroupIdAndPhone(studentPreRegistration.getPhone(), musicGroupId);
         if (originRegistration != null) {
             throw new BizException("您已预报名成功,请勿重复提交资料");
         }
-        Date date = new Date();
 
-        // 判断用户是否存在
-        SysUser user = sysUserFeignService.queryUserByMobile(studentPreRegistration.getPhone());
-        if (user == null || user.getId() == null) {
-            user = new SysUser();
-            user.setPhone(studentPreRegistration.getPhone());
-            user.setUsername(studentPreRegistration.getUserName());
-            user.setOrganId(musicGroup.getOrganId());
-            user.setUserType("STUDENT");
-            user.setCreateTime(date);
-            user.setUpdateTime(date);
-            // 注册账户信息
-            HttpResponseResult<Integer> result = sysUserFeignService.addUser(user);
-
-            Integer userId = result.getData();
-            user.setId(userId);
-
-            Student student = new Student();
-            student.setUserId(userId);
-            student.setCreateTime(date);
-            student.setUpdateTime(date);
-            student.setIsNewUser(true);
-            student.setCurrentGradeNum(studentPreRegistration.getCurrentGradeNum());
-            student.setCurrentClass(studentPreRegistration.getCurrentClass());
-            studentDao.insert(student);
-            sysUserCashAccountDao.insert(new SysUserCashAccount(userId, "CNY"));
-        } else {
-            if (musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE) {
-                //该学员是否在其他的会员团
-                boolean hasMemberGroup = studentRegistrationDao.checkHasMemberGroup(musicGroupId, user.getId());
-                if (hasMemberGroup) {
-                    throw new BizException("乐团报名失败:该学员已在其他系统收费乐团中,不可报名该乐团请联系教务老师");
-                }
-            }
-            user.setUsername(studentPreRegistration.getUserName());
-            if (!user.getUserType().contains("STUDENT")) {
-                user.setUserType(user.getUserType() + ",STUDENT");
+        studentPreRegistration.setTenantId(musicGroup.getTenantId());
+        studentPreRegistration.setOrganId(musicGroup.getOrganId());
+        //保存学员信息
+        SysUser user = studentService.upSetStudent(studentPreRegistration);
 
-                Integer userId = user.getId();
-                //添加student
-                Student student = new Student();
-                student.setUserId(userId);
-                student.setCreateTime(date);
-                student.setUpdateTime(date);
-                student.setIsNewUser(true);
-                student.setCurrentGradeNum(studentPreRegistration.getCurrentGradeNum());
-                student.setCurrentClass(studentPreRegistration.getCurrentClass());
-                studentDao.insert(student);
+        if (musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE) {
+            //该学员是否在其他的会员团
+            boolean hasMemberGroup = studentRegistrationDao.checkHasMemberGroup(musicGroupId, user.getId());
+            if (hasMemberGroup) {
+                throw new BizException("乐团报名失败:该学员已在其他系统收费乐团中,不可报名该乐团请联系教务老师");
             }
-            user.setUpdateTime(new Date());
-            teacherDao.updateUser(user);
-
         }
 
-        studentPreRegistration.setCreateTime(date);
-        studentPreRegistration.setUserId(user.getId());
-
         Organization organization = organizationDao.get(musicGroup.getOrganId());
         if (organization.getGradeType().equals(GradeTypeEnum.SIX_PLUS)) {
             for (SixPlusGradeEnum value : SixPlusGradeEnum.values()) {
@@ -414,12 +363,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 }
             }
         }
-
         studentPreRegistrationDao.insert(studentPreRegistration);
-
         // 添加成员
         imGroupMemberService.join(Long.parseLong(musicGroupId), user.getId(), null, false);
-
         return true;
     }
 
@@ -1680,7 +1626,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         //获取对外课程务老师
         teacherIds.addAll(teacherDao.findCommEducationalTeacherId(studentId));
         //获取关联的指导老师
-        Student student = studentDao.get(studentId);
+        Student student = studentService.get(studentId);
         if (student != null && student.getTeacherId() != null) {
             teacherIds.add(student.getTeacherId());
         }
@@ -2962,7 +2908,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (user == null) {
             throw new BizException("学员 {} 信息不存在", userId);
         }
-        Student student = studentDao.get(userId);
+        Student student = studentService.get(userId);
         if (student == null) {
             throw new BizException("学员 {} 信息不存在", userId);
         }

+ 55 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java

@@ -20,10 +20,15 @@ import java.util.stream.Collectors;
 
 import javax.annotation.PostConstruct;
 
+import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.common.entity.ImResult;
+import com.ym.mec.common.entity.ImUserModel;
+import com.ym.mec.im.ImFeignService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
@@ -55,15 +60,6 @@ import com.ym.mec.biz.dal.dto.StatDto;
 import com.ym.mec.biz.dal.dto.StudentClassInfoDto;
 import com.ym.mec.biz.dal.dto.StudentCourseTimesDto;
 import com.ym.mec.biz.dal.dto.StudentTeacherCourseDto;
-import com.ym.mec.biz.dal.entity.CloudTeacherOrder;
-import com.ym.mec.biz.dal.entity.CooperationOrgan;
-import com.ym.mec.biz.dal.entity.CourseSchedule;
-import com.ym.mec.biz.dal.entity.IndexBaseMonthData;
-import com.ym.mec.biz.dal.entity.MemberRankSetting;
-import com.ym.mec.biz.dal.entity.Organization;
-import com.ym.mec.biz.dal.entity.Student;
-import com.ym.mec.biz.dal.entity.StudentPreRegistration;
-import com.ym.mec.biz.dal.entity.SysUserCashAccount;
 import com.ym.mec.biz.dal.enums.FivePlusGradeEnum;
 import com.ym.mec.biz.dal.enums.GradeTypeEnum;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
@@ -125,12 +121,12 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
     private EmployeeDao employeeDao;
     @Autowired
     private OrganizationService organizationService;
-
     @Autowired
     private SysUserFeignService sysUserFeignService;
-    
     @Autowired
     private SysUserCashAccountDao sysUserCashAccountDao;
+    @Autowired
+    private ImFeignService imFeignService;
 
     @Override
     public BaseDAO<Integer, Student> getDAO() {
@@ -1194,4 +1190,52 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
     public int updateMembershipEndTime(Integer studentId, Date endTime) {
         return studentDao.updateMembershipEndTime(studentId, endTime);
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public <T extends BaseStudentDto> SysUser upSetStudent(T baseStudent) {
+        // 判断用户是否存在
+        SysUser user = studentDao.getUserByPhone(baseStudent.getPhone());
+        if (user == null || user.getId() == null) {
+            user = new SysUser();
+            user.setPhone(baseStudent.getPhone());
+            user.setUsername(baseStudent.getUserName());
+            user.setOrganId(baseStudent.getOrganId());
+            user.setUserType("STUDENT");
+            user.setTenantId(baseStudent.getTenantId());
+            // 注册账户信息
+            teacherDao.addSysUser(user);
+            Integer userId = user.getId();
+            ImResult imResult = imFeignService.register(new ImUserModel(userId.toString(), user.getUsername(), user.getAvatar()));
+            if(imResult != null && StringUtils.isNotEmpty(imResult.getToken())) {
+                user.setImToken(imResult.getToken());
+                teacherDao.updateUser(user);
+            }
+            baseStudent.setUserId(user.getId());
+            //添加student
+            this.insertStudent(baseStudent);
+            sysUserCashAccountDao.insert(new SysUserCashAccount(userId, "CNY"));
+        } else {
+            if(!baseStudent.getTenantId().equals(user.getTenantId())){
+                throw new BizException("手机号已注册");
+            }
+            baseStudent.setUserId(user.getId());
+            if (!user.getUserType().contains("STUDENT")) {
+                user.setUserType(user.getUserType() + ",STUDENT");
+                //添加student
+                this.insertStudent(baseStudent);
+            }
+            user.setUsername(baseStudent.getUserName());
+            teacherDao.updateUser(user);
+        }
+        return user;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public  <T extends BaseStudentDto> void insertStudent(T baseStudent){
+        Student student = new Student();
+        BeanUtils.copyProperties(baseStudent,student);
+        student.setIsNewUser(true);
+        studentDao.insert(student);
+    }
 }

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

@@ -1375,4 +1375,8 @@
             </if>
         </where>
     </select>
+    <select id="getUserByPhone" resultType="com.ym.mec.auth.api.entity.SysUser">
+        SELECT su.id_,su.phone_,su.username_,su.birthdate_,su.gender_,su.user_type_,su.tenant_id_
+        FROM sys_user su WHERE su.phone_ = #{mobile} LIMIT 1
+    </select>
 </mapper>

+ 6 - 13
mec-biz/src/main/resources/config/mybatis/StudentPreRegistrationMapper.xml

@@ -84,14 +84,13 @@
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.StudentPreRegistration" useGeneratedKeys="true"
             keyColumn="id" keyProperty="id">
-        <!--
-        <selectKey resultClass="int" keyProperty="id" >
-        SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
-        </selectKey>
-        -->
         INSERT INTO student_pre_registration
-        (id_,music_group_id_,user_id_,phone_,user_name_,gender_,current_grade_,current_grade_num_,current_class_,subject_first_,subject_second_,teacher_recommand_subject_id_,selection_subject_id_,is_allow_adjust_,kit_purchase_method_,cloud_teacher_method_,create_time_,tenant_id_)
-        VALUES(#{id},#{musicGroupId},#{userId},#{phone},#{userName},#{gender},#{currentGrade},#{currentGradeNum},#{currentClass},#{subjectFirst},#{subjectSecond},#{teacherRecommandSubjectId},#{selectionSubjectId},#{isAllowAdjust},#{kitPurchaseMethod},#{cloudTeacherMethod},#{createTime},#{tenantId})
+        (music_group_id_,user_id_,phone_,user_name_,gender_,current_grade_,current_grade_num_,
+         current_class_,subject_first_,subject_second_,teacher_recommand_subject_id_,selection_subject_id_,
+         is_allow_adjust_,kit_purchase_method_,cloud_teacher_method_,create_time_,tenant_id_)
+        VALUES(#{musicGroupId},#{userId},#{phone},#{userName},#{gender},#{currentGrade},#{currentGradeNum},
+               #{currentClass},#{subjectFirst},#{subjectSecond},#{teacherRecommandSubjectId},#{selectionSubjectId},
+               #{isAllowAdjust},#{kitPurchaseMethod},#{cloudTeacherMethod},NOW(),#{tenantId})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -107,9 +106,6 @@
             <if test="userName != null">
                 user_name_ = #{userName},
             </if>
-            <if test="id != null">
-                id_ = #{id},
-            </if>
             <if test="currentGrade != null">
                 current_grade_ = #{currentGrade},
             </if>
@@ -146,9 +142,6 @@
             <if test="cloudTeacherMethod != null">
                 cloud_teacher_method_ = #{cloudTeacherMethod},
             </if>
-            <if test="createTime != null">
-                create_time_ = #{createTime},
-            </if>
         </set>
         WHERE id_ = #{id} and tenant_id_ = #{tenantId}
     </update>

+ 3 - 4
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -148,7 +148,8 @@
     <insert id="addSysUser" parameterType="com.ym.mec.auth.api.entity.SysUser" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">
         INSERT INTO sys_user
-        (tenant_id_,im_token_,id_,username_,salt_,phone_,avatar_,organ_id_,create_time_,update_time_,wx_openid_,qq_openid_,user_type_,gender_,nation_,birthdate_,email_,id_card_no_,wechat_id_,real_name_,password_)
+        (tenant_id_,im_token_,id_,username_,salt_,phone_,avatar_,organ_id_,create_time_,
+         update_time_,wx_openid_,qq_openid_,user_type_,gender_,nation_,birthdate_,email_,id_card_no_,wechat_id_,real_name_,password_)
         VALUES(#{tenantId},#{imToken},#{id},#{username},#{salt},#{phone},#{avatar},#{organId},now(),now(),#{wxOpenid},#{qqOpenid},#{userType},
         #{gender},#{nation},#{birthdate},#{email},#{idCardNo},#{wechatId},#{realName},#{password})
     </insert>
@@ -342,9 +343,6 @@
             <if test="userType != null">
                 user_type_ = #{userType},
             </if>
-            <if test="updateTime != null">
-                update_time_ = NOW(),
-            </if>
             <if test="lockFlag != null">
                 lock_flag_ = #{lockFlag},
             </if>
@@ -366,6 +364,7 @@
             <if test="imToken != null">
                 im_token_ = #{imToken},
             </if>
+            update_time_ = NOW()
         </set>
         WHERE id_ = #{id} and tenant_id_ = #{tenantId}
     </update>