Browse Source

Merge remote-tracking branch 'origin/master'

周箭河 5 years ago
parent
commit
106e519984

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ClassGroupStudentMapper.java

@@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModelProperty;
 
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 
+import java.util.Date;
+
 /**
 /**
  * 对应数据库表(class_group_student_mapper):
  * 对应数据库表(class_group_student_mapper):
  */
  */
@@ -29,6 +31,15 @@ public class ClassGroupStudentMapper {
 	/**  */
 	/**  */
 	private java.util.Date createTime;
 	private java.util.Date createTime;
 
 
+	public ClassGroupStudentMapper() {
+	}
+
+	public ClassGroupStudentMapper(int classGroupId, Integer userId) {
+		this.classGroupId = classGroupId;
+		this.userId = userId;
+		this.status = ClassGroupStudentStatusEnum.NORMAL;
+	}
+
 	public ClassGroupStudentStatusEnum getStatus() {
 	public ClassGroupStudentStatusEnum getStatus() {
 		return status;
 		return status;
 	}
 	}

+ 17 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupStudentFee.java

@@ -39,7 +39,7 @@ public class MusicGroupStudentFee {
 
 
 	/**  */
 	/**  */
 	@ApiModelProperty(value = "乐团编号", required = false)
 	@ApiModelProperty(value = "乐团编号", required = false)
-	private Integer musicGroupId;
+	private String musicGroupId;
 
 
 	/**  */
 	/**  */
 	@ApiModelProperty(value = "用户编号", required = false)
 	@ApiModelProperty(value = "用户编号", required = false)
@@ -73,6 +73,20 @@ public class MusicGroupStudentFee {
 	/**  */
 	/**  */
 	private java.util.Date updateTime;
 	private java.util.Date updateTime;
 
 
+	public MusicGroupStudentFee(String musicGroupId, Integer userId, Integer subjectId, BigDecimal courseFee, Date nextPaymentDate, Integer continuousAbsenteeismTimes, BigDecimal temporaryCourseFee) {
+		this.musicGroupId = musicGroupId;
+		this.userId = userId;
+		this.subjectId = subjectId;
+		this.courseFee = courseFee;
+		this.nextPaymentDate = nextPaymentDate;
+		this.continuousAbsenteeismTimes = continuousAbsenteeismTimes;
+		this.temporaryCourseFee = temporaryCourseFee;
+		this.paymentStatus = PaymentStatus.NON_PAYMENT;
+	}
+
+	public MusicGroupStudentFee() {
+	}
+
 	public Date getNextPaymentDate() {
 	public Date getNextPaymentDate() {
 		return nextPaymentDate;
 		return nextPaymentDate;
 	}
 	}
@@ -97,11 +111,11 @@ public class MusicGroupStudentFee {
 		return this.id;
 		return this.id;
 	}
 	}
 
 
-	public void setMusicGroupId(Integer musicGroupId) {
+	public void setMusicGroupId(String musicGroupId) {
 		this.musicGroupId = musicGroupId;
 		this.musicGroupId = musicGroupId;
 	}
 	}
 
 
-	public Integer getMusicGroupId() {
+	public String getMusicGroupId() {
 		return this.musicGroupId;
 		return this.musicGroupId;
 	}
 	}
 
 

+ 13 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentRegistration.java

@@ -7,6 +7,8 @@ import io.swagger.annotations.ApiModelProperty;
 
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 
+import java.math.BigDecimal;
+
 /**
 /**
  * 对应数据库表(student_registration):
  * 对应数据库表(student_registration):
  */
  */
@@ -75,6 +77,17 @@ public class StudentRegistration {
     @ApiModelProperty(value = "班级id", hidden = true)
     @ApiModelProperty(value = "班级id", hidden = true)
     private Integer ClassGroupId;
     private Integer ClassGroupId;
 
 
+    @ApiModelProperty(value = "零时课程费用", hidden = true)
+    private BigDecimal temporaryCourseFee;
+
+    public BigDecimal getTemporaryCourseFee() {
+        return temporaryCourseFee;
+    }
+
+    public void setTemporaryCourseFee(BigDecimal temporaryCourseFee) {
+        this.temporaryCourseFee = temporaryCourseFee;
+    }
+
     public Integer getActualSubjectId() {
     public Integer getActualSubjectId() {
         return actualSubjectId;
         return actualSubjectId;
     }
     }

+ 57 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -1,22 +1,19 @@
 package com.ym.mec.biz.service.impl;
 package com.ym.mec.biz.service.impl;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 
 
-import com.ym.mec.biz.dal.dao.SubjectDao;
-import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.auth.api.entity.SysMenu;
+import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.service.MusicGroupSubjectPlanService;
 import com.ym.mec.biz.service.MusicGroupSubjectPlanService;
 import com.ym.mec.common.entity.ImResult;
 import com.ym.mec.common.entity.ImResult;
 import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.im.ImFeignService;
+import com.ym.mec.util.date.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
@@ -25,7 +22,6 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.enums.SysUserType;
 import com.ym.mec.auth.api.enums.SysUserType;
 import com.ym.mec.auth.api.enums.UserLockFlag;
 import com.ym.mec.auth.api.enums.UserLockFlag;
-import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
 import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
 import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
 import com.ym.mec.biz.dal.dto.StudentFeeDto;
 import com.ym.mec.biz.dal.dto.StudentFeeDto;
 import com.ym.mec.biz.dal.dto.StudentInfo;
 import com.ym.mec.biz.dal.dto.StudentInfo;
@@ -55,6 +51,16 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     @Autowired
     @Autowired
     private TeacherDao teacherDao;
     private TeacherDao teacherDao;
     @Autowired
     @Autowired
+    private ClassGroupDao classGroupDao;
+    @Autowired
+    private ClassGroupStudentMapperDao classGroupStudentMapperDao;
+    @Autowired
+    private MusicGroupStudentFeeDao musicGroupStudentFeeDao;
+    @Autowired
+    private MusicGroupPaymentCalenderDao musicGroupPaymentCalenderDao;
+    @Autowired
+    private MusicGroupSubjectPlanDao musicGroupSubjectPlanDao;
+    @Autowired
     private SubjectDao subjectDao;
     private SubjectDao subjectDao;
     @Autowired
     @Autowired
     private ImFeignService imFeignService;
     private ImFeignService imFeignService;
@@ -356,6 +362,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             throw new Exception("该学员已存在");
             throw new Exception("该学员已存在");
         }else {
         }else {
             SysUser sysUser = studentRegistrationDao.getSysUserByPhone(studentRegistration.getParentsPhone());
             SysUser sysUser = studentRegistrationDao.getSysUserByPhone(studentRegistration.getParentsPhone());
+            Integer userId;
             if(sysUser == null){
             if(sysUser == null){
                 //新增user
                 //新增user
                 sysUser = new SysUser();
                 sysUser = new SysUser();
@@ -364,18 +371,55 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 sysUser.setGender(studentRegistration.getGender());
                 sysUser.setGender(studentRegistration.getGender());
                 sysUser.setUserType(SysUserType.STUDENT);
                 sysUser.setUserType(SysUserType.STUDENT);
                 teacherDao.addSysUser(sysUser);
                 teacherDao.addSysUser(sysUser);
+                userId = sysUser.getId();
                 //注册到融云
                 //注册到融云
-                ImResult register = imFeignService.register(new ImUserModel(sysUser.getId().toString(), sysUser.getUsername(), sysUser.getAvatar()));
+                ImResult register = imFeignService.register(new ImUserModel(userId.toString(), sysUser.getUsername(), sysUser.getAvatar()));
                 sysUser.setImToken(register.getToken());
                 sysUser.setImToken(register.getToken());
                 teacherDao.updateUser(sysUser);
                 teacherDao.updateUser(sysUser);
+            }else {
+                userId = sysUser.getId();
             }
             }
+            studentRegistration.setUserId(userId);
             //学生报名表
             //学生报名表
             studentRegistrationDao.insert(studentRegistration);
             studentRegistrationDao.insert(studentRegistration);
-            //学生注册
-            //缴费金额
-            //学员加入的金额
+            if(studentRegistration.getClassGroupId() != null){
+                ClassGroup classGroup = classGroupDao.get(studentRegistration.getClassGroupId());
+                if(classGroup != null){
+                    if(classGroup.getMusicGroupId().equals(studentRegistration.getMusicGroupId())){
+                        throw new Exception("班级录入错误");
+                    }else {
+                        //修改实际学生人数
+                        classGroup.setStudentNum(classGroup.getStudentNum() + 1);
+                        classGroup.setUpdateTime(new Date());
+                        classGroupDao.update(classGroup);
+                    }
+                }else {
+                    throw new Exception("班级不存在");
+                }
+                //新增班级学生关系
+                classGroupStudentMapperDao.insert(new ClassGroupStudentMapper(studentRegistration.getClassGroupId(),userId));
+                //乐团学生费用表
+                MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId());
+                //获取当前月
+                Integer month = Integer.parseInt(DateUtil.getMonth(new Date()));
+                //获取下次缴费月份
+                List<MusicGroupPaymentCalender> musicGroupPaymentCalenders = musicGroupPaymentCalenderDao.findByMusicGroupId(studentRegistration.getMusicGroupId());
+                List<Integer> months = musicGroupPaymentCalenders.stream().map(e -> e.getPaymentMonth()).collect(Collectors.toList());
+                for (int i = 0;i<months.size();i++){
+                    if(months.get(i).equals(month)){
+                        month = i == months.size()-1?months.get(0):months.get(i+1);
+                    }
+                }
+                Calendar calendar = Calendar.getInstance();
+                calendar.add(Calendar.MONTH, month);
+                DateUtil.getFirstDayOfMonth(calendar.getTime());
+                //保存乐团学生费用表
+                musicGroupStudentFeeDao.insert(new MusicGroupStudentFee(studentRegistration.getMusicGroupId(),
+                        userId,studentRegistration.getSubjectId(),musicOneSubjectClassPlan.getFee(),
+                        DateUtil.getFirstDayOfMonth(calendar.getTime()),0,studentRegistration.getTemporaryCourseFee()));
+            }
+            return userId;
         }
         }
-        return null;
     }
     }
 
 
 }
 }

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/DemoGroupMapper.xml

@@ -156,7 +156,7 @@ create_time_ = #{createTime},
 				AND FIND_IN_SET(dg.subject_id_,#{subjectIds})
 				AND FIND_IN_SET(dg.subject_id_,#{subjectIds})
 			</if>
 			</if>
 			<if test="startTime!=null and endTime==null">
 			<if test="startTime!=null and endTime==null">
-				AND CONCAT(dgcp.course_date_,' ',dgcp.start_time_)&gt;t=#{startTime}
+				AND CONCAT(dgcp.course_date_,' ',dgcp.start_time_)&gt;=#{startTime}
 			</if>
 			</if>
 			<if test="startTime!=null and endTime!=null">
 			<if test="startTime!=null and endTime!=null">
 				AND (CONCAT(dgcp.course_date_,' ',dgcp.start_time_) BETWEEN DATE_FORMAT(#{startTime},'%Y-%m-%d %H:%i') AND DATE_FORMAT(#{endTime},'%Y-%m-%d %H:%i'))
 				AND (CONCAT(dgcp.course_date_,' ',dgcp.start_time_) BETWEEN DATE_FORMAT(#{startTime},'%Y-%m-%d %H:%i') AND DATE_FORMAT(#{endTime},'%Y-%m-%d %H:%i'))

+ 3 - 1
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderMapper.xml

@@ -73,6 +73,8 @@
 		SELECT COUNT(*) FROM music_group_payment_calender
 		SELECT COUNT(*) FROM music_group_payment_calender
 	</select>
 	</select>
     <select id="findByMusicGroupId" resultMap="MusicGroupPaymentCalender">
     <select id="findByMusicGroupId" resultMap="MusicGroupPaymentCalender">
-        SELECT * FROM music_group_payment_calender mgpc WHERE music_group_id_ = #{musicGroupId}
+        SELECT * FROM music_group_payment_calender mgpc
+        WHERE music_group_id_ = #{musicGroupId}
+        ORDER BY payment_month_
     </select>
     </select>
 </mapper>
 </mapper>

+ 1 - 1
mec-common/common-core/src/main/java/com/ym/mec/common/config/LocalFastJsonHttpMessageConverter.java

@@ -17,7 +17,7 @@ import com.ym.mec.util.json.JsonUtil;
 
 
 public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConverter {
 public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConverter {
 
 
-	private static final String FORMAT = "yyyy-MM-dd HH:mm:ss SSS";
+	private static final String FORMAT = "yyyy-MM-dd HH:mm:ss";
 
 
 	@Override
 	@Override
 	protected void writeInternal(Object obj, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
 	protected void writeInternal(Object obj, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {

+ 7 - 8
mec-web/src/main/java/com/ym/mec/web/controller/StudentRegistrationController.java

@@ -32,16 +32,15 @@ public class StudentRegistrationController extends BaseController {
     @ApiOperation(value = "乐团添加学员")
     @ApiOperation(value = "乐团添加学员")
     @PostMapping("/insertStudent")
     @PostMapping("/insertStudent")
     public Object add(StudentRegistration studentRegistration) throws Exception {
     public Object add(StudentRegistration studentRegistration) throws Exception {
-        studentRegistrationService.insertStudent(studentRegistration);
-        return succeed();
+        return succeed(studentRegistrationService.insertStudent(studentRegistration));
     }
     }
 
 
-    @ApiOperation(value = "删除学生报名信息")
-    @PostMapping("/del/{id}")
-    public Object del(@ApiParam(value = "学生报名信息编号", required = true) @PathVariable("id") Long id) {
-        studentRegistrationService.delete(id);
-        return succeed();
-    }
+//    @ApiOperation(value = "删除学生报名信息")
+//    @PostMapping("/del")
+//    public Object del(@ApiParam(value = "学生报名信息编号", required = true) @PathVariable("id") Long id) {
+//        studentRegistrationService.delete(id);
+//        return succeed();
+//    }
 
 
     @ApiOperation(value = "修改学生报名信息")
     @ApiOperation(value = "修改学生报名信息")
     @PostMapping("/update")
     @PostMapping("/update")