瀏覽代碼

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 5 年之前
父節點
當前提交
92ec7e7413

+ 1 - 1
mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -138,7 +138,7 @@
                 wechat_id_ = #{wechatId},
             </if>
             <if test="realName != null">
-                real_name = #{realName},
+                real_name_ = #{realName},
             </if>
             <if test="isSuperAdmin != null">
                 is_super_admin_ = #{isSuperAdmin},

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentAttendanceDto.java

@@ -12,8 +12,18 @@ public class StudentAttendanceDto {
 
     private String signInLongitudeLatitude;
 
+    private Integer update;
+
     private List<StudentAttendance> studentAttendances;
 
+    public Integer getUpdate() {
+        return update;
+    }
+
+    public void setUpdate(Integer update) {
+        this.update = update;
+    }
+
     public String getSignInLongitudeLatitude() {
         return signInLongitudeLatitude;
     }

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

@@ -43,6 +43,9 @@ public class StudentPaymentOrder {
 	@ApiModelProperty(value = "实际金额",required = true)
 	private BigDecimal actualAmount;
 	
+	@ApiModelProperty(value = "余额付款金额",required = true)
+	private BigDecimal balancePaymentAmount;
+	
 	/** 交易流水号 */
 	@ApiModelProperty(value = "交易流水号",required = true)
 	private String transNo;
@@ -221,6 +224,14 @@ public class StudentPaymentOrder {
 		this.actualAmount = actualAmount;
 	}
 
+	public BigDecimal getBalancePaymentAmount() {
+		return balancePaymentAmount;
+	}
+
+	public void setBalancePaymentAmount(BigDecimal balancePaymentAmount) {
+		this.balancePaymentAmount = balancePaymentAmount;
+	}
+
 	public DealStatusEnum getStatus() {
 		return status;
 	}

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherAttendance.java

@@ -65,6 +65,16 @@ public class TeacherAttendance {
 
 	private String signOutLongitudeLatitude;
 
+	private Integer update;
+
+	public Integer getUpdate() {
+		return update;
+	}
+
+	public void setUpdate(Integer update) {
+		this.update = update;
+	}
+
 	public String getSignInLongitudeLatitude() {
 		return signInLongitudeLatitude;
 	}

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

@@ -19,7 +19,7 @@ public interface StudentAttendanceService extends BaseService<Long, StudentAtten
 	 * @Date: 2019/9/11
 	 * 批量插入学生上课签到信息
 	 */
-	void addStudentAttendances(StudentAttendanceDto studentAttendanceInfo);
+	Map addStudentAttendances(StudentAttendanceDto studentAttendanceInfo);
 
 	/**
 	 * @describe 获取当前课程的学生

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java

@@ -265,6 +265,8 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
                 TeacherAttendance teacherAttendance=new TeacherAttendance();
                 teacherAttendance.setMusicGroupId(courseScheduleTeacherSalary.getMusicGroupId());
+                teacherAttendance.setTeacherId(classGroupTeacherMapper.getUserId());
+                teacherAttendance.setClassGroupId(classGroupTeacherMapper.getClassGroupId());
                 teacherAttendance.setGroupType(courseScheduleTeacherSalary.getGroupType());
                 teacherAttendance.setCourseScheduleId(courseScheduleTeacherSalary.getCourseScheduleId());
                 teacherAttendance.setCreateTime(date);

+ 29 - 21
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -410,20 +410,24 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		allCourseSchedules.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
 		if(allCourseSchedules.size()>1){
 		    //记录连续冲突的次数
-		    Integer repeatTimes=1;
+		    Integer repeatTimes=0;
 			for (int i=1;i<allCourseSchedules.size();i++){
-				for(int j=repeatTimes;j>0;j--){
+				for(int j=1;j<=repeatTimes+1&&j<=i;j++){
                     //当前课程
                     CourseSchedule preCourseSchedule = allCourseSchedules.get(i-j);
                     //后面一节课程
                     CourseSchedule backCourseSchedule = allCourseSchedules.get(i);
-                    if(!checkExistCourseSchedule
-						&&existCourseScheduleIds.contains(preCourseSchedule.getId())
-						&&existCourseScheduleIds.contains(backCourseSchedule.getId())){
-                    	continue;
-					}
                     //判断前后两节课是否存在冲突
                     if(backCourseSchedule.getStartClassTime().before(preCourseSchedule.getEndClassTime())){
+						if(!checkExistCourseSchedule
+								&&existCourseScheduleIds.contains(preCourseSchedule.getId())
+								&&existCourseScheduleIds.contains(backCourseSchedule.getId())){
+							if(j==repeatTimes){
+								repeatTimes+=1;
+							}
+							continue;
+						}
+
                         //提示信息
                         StringBuffer errInfo = new StringBuffer("在");
                         errInfo.append(DateUtil.dateToString(preCourseSchedule.getStartClassTime(),"yyyy-MM-dd HH:mm"));
@@ -502,9 +506,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
                             repeatTimes+=1;
                         }
                     }else{
-                        if(j==repeatTimes){
-                            repeatTimes=1;
-                        }
+						repeatTimes=j;
+						break;
                     }
                 }
 			}
@@ -694,23 +697,28 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				//修改后的课程助教编号列表
 				List<Integer> newTeachingTeacherIdList = newCourseSchedule.getTeachingTeacherIdList();
 				//找出重复的助教编号
-				List<Integer> foundInCurrentCourseTeachingTeacherIds = newTeachingTeacherIdList.stream().filter(currentCourseTeachingTeacherIds::contains).collect(Collectors.toList());
+				List<Integer> foundInCurrentCourseTeachingTeacherIds;
 
 				//需要重新生成课酬的助教列表
 				List<Integer> newCreateSalaryTeachingTeacherIds=new ArrayList<>();
 
-				newTeachingTeacherIdList.forEach(newTeachingTeacherId->{
-					//如果不在重复列表中,则需要生成对应的课酬记录
-					if(!foundInCurrentCourseTeachingTeacherIds.contains(newTeachingTeacherId)){
-						//计算修改后的助教的课酬
-						newCreateSalaryTeachingTeacherIds.add(newTeachingTeacherId);
+				if(!CollectionUtils.isEmpty(newTeachingTeacherIdList)){
+					foundInCurrentCourseTeachingTeacherIds = newTeachingTeacherIdList.stream().filter(currentCourseTeachingTeacherIds::contains).collect(Collectors.toList());
 
-						if(Objects.nonNull(newTeachingTeacherId)){
-							beReplaceTeacherIds.add(newTeachingTeacherId);
+					newTeachingTeacherIdList.forEach(newTeachingTeacherId->{
+						//如果不在重复列表中,则需要生成对应的课酬记录
+						if(!foundInCurrentCourseTeachingTeacherIds.contains(newTeachingTeacherId)){
+							//计算修改后的助教的课酬
+							newCreateSalaryTeachingTeacherIds.add(newTeachingTeacherId);
+
+							if(Objects.nonNull(newTeachingTeacherId)){
+								beReplaceTeacherIds.add(newTeachingTeacherId);
+							}
 						}
-					}
-				});
-				newCourseSchedule.setTeachingTeacherIdList(newCreateSalaryTeachingTeacherIds);
+					});
+					newCourseSchedule.setTeachingTeacherIdList(newCreateSalaryTeachingTeacherIds);
+				}
+
 				if(!newCourseSchedule.isBishopTeacherSalaryNotCreate()||!CollectionUtils.isEmpty(newCreateSalaryTeachingTeacherIds)){
 					//如果主教或者助教发生了变化,则需要重新生成课酬
 					needCreateCourseScheduleTeacherSalaryCourse.add(newCourseSchedule);

+ 50 - 28
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -748,50 +748,72 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (amount == null || amount.doubleValue() == 0) {
             amount = musicGroupStudentFee.getCourseFee();
         }
+
+        Date date = new Date();
+        StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
+        studentPaymentOrder.setGroupType(GroupType.MUSIC);
+        studentPaymentOrder.setUserId(userId);
+        studentPaymentOrder.setOrderNo(idGeneratorService.generatorId("RENEW") + "");
+        studentPaymentOrder.setType(OrderTypeEnum.RENEW);
+        studentPaymentOrder.setExpectAmount(amount);
+        studentPaymentOrder.setActualAmount(amount);
+        studentPaymentOrder.setStatus(DealStatusEnum.ING);
+        studentPaymentOrder.setMusicGroupId(musicGroupId);
+        studentPaymentOrder.setCreateTime(date);
+        studentPaymentOrder.setUpdateTime(date);
+        studentPaymentOrderService.insert(studentPaymentOrder);
+
+        ArrayList<StudentPaymentOrderDetail> studentPaymentOrderDetailList = new ArrayList<>();
+        StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail();
+        studentPaymentOrderDetail.setType(OrderDetailTypeEnum.COURSE);
+        studentPaymentOrderDetail.setPrice(amount);
+        studentPaymentOrderDetail.setCreateTime(date);
+        studentPaymentOrderDetail.setUpdateTime(date);
+        studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
+        studentPaymentOrderDetailList.add(studentPaymentOrderDetail);
+
+        studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetailList);
         
-        if(isUseBalancePayment){
+        if(isUseBalancePayment || amount.doubleValue() == 0){
         	SysUserCashAccount userCashAccount = sysUserCashAccountService.getLocked(userId);
         	if(userCashAccount == null){
         		throw new BizException("用户账户找不到");
         	}
         	if(userCashAccount.getBalance().subtract(amount).doubleValue() > 0){
+        		// 更新订单信息
+        		studentPaymentOrder.setBalancePaymentAmount(amount);
+                studentPaymentOrder.setStatus(DealStatusEnum.SUCCESS);
+                studentPaymentOrder.setUpdateTime(date);
+                studentPaymentOrderService.update(studentPaymentOrder);
+                
         		sysUserCashAccountService.updateBalance(userId, amount.negate(),PlatformCashAccountDetailTypeEnum.PAY_FEE,"乐团续费");
+        		
+        		//更新下次续费时间
+        		musicGroupStudentFee.setUpdateTime(date);
+                musicGroupStudentFee.setLatestPaidTime(date);
+                musicGroupStudentFee.setPaymentStatus(PaymentStatus.PAID_COMPLETED);
+                musicGroupStudentFee.setTemporaryCourseFee(new BigDecimal(0));
+                musicGroupStudentFee.setNextPaymentDate(musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId));
+                musicGroupStudentFeeDao.update(musicGroupStudentFee);
+                
         		return null;
         	}else{
-        		if(userCashAccount.getBalance().doubleValue() > 0){
-            		sysUserCashAccountService.updateBalance(userId, userCashAccount.getBalance().negate(),PlatformCashAccountDetailTypeEnum.PAY_FEE,"乐团续费");
-            		amount = amount.subtract(userCashAccount.getBalance());
-        		}
+				if (userCashAccount.getBalance().doubleValue() > 0) {
+					sysUserCashAccountService.updateBalance(userId, userCashAccount.getBalance().negate(), PlatformCashAccountDetailTypeEnum.PAY_FEE, "乐团续费");
+					amount = amount.subtract(userCashAccount.getBalance());
+					studentPaymentOrder.setBalancePaymentAmount(userCashAccount.getBalance());
+				} else {
+					studentPaymentOrder.setBalancePaymentAmount(new BigDecimal(0));
+				}
         	}
         }
 
         try {
             Map<String, Object> payMap = payService.getPayMap(amount, idGeneratorService.generatorId("payment") + "", "https://pay.dayaedu.com/api/yqpay/notify",
                     "http://dev.dayaedu.com", "测试订单", "测试订单");
-
-            Date date = new Date();
-            StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
-            studentPaymentOrder.setGroupType(GroupType.MUSIC);
-            studentPaymentOrder.setUserId(userId);
-            studentPaymentOrder.setOrderNo(idGeneratorService.generatorId("RENEW") + "");
-            studentPaymentOrder.setType(OrderTypeEnum.RENEW);
-            studentPaymentOrder.setExpectAmount(amount);
-            studentPaymentOrder.setActualAmount(amount);
-            studentPaymentOrder.setStatus(DealStatusEnum.ING);
             studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));
-            studentPaymentOrder.setMusicGroupId(musicGroupId);
-            studentPaymentOrderService.insert(studentPaymentOrder);
-
-            ArrayList<StudentPaymentOrderDetail> studentPaymentOrderDetailList = new ArrayList<>();
-            StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail();
-            studentPaymentOrderDetail.setType(OrderDetailTypeEnum.COURSE);
-            studentPaymentOrderDetail.setPrice(amount);
-            studentPaymentOrderDetail.setCreateTime(date);
-            studentPaymentOrderDetail.setUpdateTime(date);
-            studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
-            studentPaymentOrderDetailList.add(studentPaymentOrderDetail);
-
-            studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetailList);
+            studentPaymentOrder.setUpdateTime(date);
+            studentPaymentOrderService.update(studentPaymentOrder);
 
             return payMap;
         } catch (Exception e) {

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

@@ -66,7 +66,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public void addStudentAttendances(StudentAttendanceDto studentAttendanceInfos) {
+	public Map addStudentAttendances(StudentAttendanceDto studentAttendanceInfos) {
 		List<StudentAttendance> studentAttendances=studentAttendanceInfos.getStudentAttendances();
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		if(Objects.isNull(sysUser)){
@@ -139,7 +139,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 		TeacherAttendance teacherAttendance = new TeacherAttendance(courseSchedule.getId(), 0);
 		teacherAttendance.setSignInLongitudeLatitude(studentAttendanceInfos.getSignInLongitudeLatitude());
 		teacherSignOutDto.setTeacherAttendanceInfo(teacherAttendance);
-		teacherAttendanceService.addTeacherAttendanceRecord(teacherSignOutDto);
+		return teacherAttendanceService.addTeacherAttendanceRecord(teacherSignOutDto);
 	}
 
 	@Override

+ 5 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -120,8 +120,11 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		//是否在范围内
 		boolean isInScore = true;
 		if(StringUtils.isBlank(school.getLongitudeLatitude())){
-			school.setLongitudeLatitude(teacherSignOutDto.getTeacherAttendanceInfo().getSignInLongitudeLatitude());
-			schoolDao.update(school);
+			if(teacherSignOutDto.getTeacherAttendanceInfo().getUpdate().equals(YesOrNoEnum.YES.getCode())){
+				school.setLongitudeLatitude(teacherSignOutDto.getTeacherAttendanceInfo().getSignInLongitudeLatitude());
+				schoolDao.update(school);
+			}
+			isInScore = false;
 		}else{
 			SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.ATTENDANCE_RANGE);
 			double attendanceRange = Double.valueOf(sysConfig.getParanValue());

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

@@ -111,7 +111,7 @@
                 wechat_id_ = #{wechatId},
             </if>
             <if test="realName != null">
-                real_name = #{realName},
+                real_name_ = #{realName},
             </if>
         </set>
         WHERE id_ = #{id}

+ 6 - 2
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml

@@ -13,6 +13,7 @@
         <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="expect_amount_" property="expectAmount"/>
         <result column="actual_amount_" property="actualAmount"/>
+        <result column="balance_payment_amount_" property="balancePaymentAmount"/>
         <result column="trans_no_" property="transNo"/>
         <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="memo_" property="memo"/>
@@ -74,8 +75,8 @@
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.StudentPaymentOrder" useGeneratedKeys="true"
             keyColumn="id" keyProperty="id">
         INSERT INTO student_payment_order
-        (id_,group_type_,user_id_,type_,expect_amount_,actual_amount_,trans_no_,status_,memo_,create_time_,update_time_,payment_channel_,payment_business_channel_,payment_account_no_,order_no_,music_group_id_,class_group_id_)
-        VALUES(#{id},#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{userId},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{expectAmount},#{actualAmount},#{transNo},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{memo},now(),now(),#{paymentChannel},#{paymentBusinessChannel},#{paymentAccountNo},#{orderNo},#{musicGroupId},#{classGroupId})
+        (id_,group_type_,user_id_,type_,expect_amount_,actual_amount_,balance_payment_amount_,trans_no_,status_,memo_,create_time_,update_time_,payment_channel_,payment_business_channel_,payment_account_no_,order_no_,music_group_id_,class_group_id_)
+        VALUES(#{id},#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{userId},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{expectAmount},#{actualAmount},#{balancePaymentAmount},#{transNo},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{memo},now(),now(),#{paymentChannel},#{paymentBusinessChannel},#{paymentAccountNo},#{orderNo},#{musicGroupId},#{classGroupId})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -121,6 +122,9 @@
             <if test="actualAmount != null">
                 actual_amount_ = #{actualAmount},
             </if>
+            <if test="balancePaymentAmount != null">
+                balance_payment_amount_ = #{balancePaymentAmount},
+            </if>
             <if test="type != null">
                 type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>

+ 1 - 2
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherAttendanceController.java

@@ -47,7 +47,6 @@ public class TeacherAttendanceController extends BaseController {
     @ApiOperation(value = "点名")
     @PostMapping("/addStudentAttendances")
     public Object addStudentAttendances(@RequestBody StudentAttendanceDto studentAttendanceInfo){
-        studentAttendanceService.addStudentAttendances(studentAttendanceInfo);
-        return succeed();
+        return succeed(studentAttendanceService.addStudentAttendances(studentAttendanceInfo));
     }
 }

+ 4 - 0
mec-web/src/main/java/com/ym/mec/web/controller/VipGroupManageController.java

@@ -246,6 +246,10 @@ public class VipGroupManageController extends BaseController {
         if(Objects.isNull(classDateAdjustDto.getId())){
             return failed(HttpStatus.FORBIDDEN, "请指定课程!");
         }
+        CourseSchedule courseSchedule = scheduleService.get(classDateAdjustDto.getId());
+        if(Objects.isNull(classDateAdjustDto.getClassGroupId())){
+            classDateAdjustDto.setClassGroupId(courseSchedule.getClassGroupId());
+        }
         List<CourseSchedule> courseSchedules=new ArrayList<>();
         courseSchedules.add(classDateAdjustDto);
         scheduleService.courseAdjust(courseSchedules);