Joburgess 5 năm trước cách đây
mục cha
commit
310a75ecf9

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupBuyParamsDto.java

@@ -17,6 +17,17 @@ public class VipGroupBuyParamsDto {
     @ApiModelProperty(value = "业务渠道")
     private String paymentBusinessChannel;
 
+    @ApiModelProperty(value = "是否使用账户余额支付")
+    private boolean isUseBalancePayment;
+
+    public boolean isUseBalancePayment() {
+        return isUseBalancePayment;
+    }
+
+    public void setUseBalancePayment(boolean useBalancePayment) {
+        isUseBalancePayment = useBalancePayment;
+    }
+
     private Integer userId;
 
     public Integer getUserId() {

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

@@ -138,6 +138,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 		TeacherSignOutDto teacherSignOutDto=new TeacherSignOutDto();
 		TeacherAttendance teacherAttendance = new TeacherAttendance(courseSchedule.getId(), 0);
 		teacherAttendance.setSignInLongitudeLatitude(studentAttendanceInfos.getSignInLongitudeLatitude());
+		teacherAttendance.setUpdate(studentAttendanceInfos.getUpdate());
 		teacherSignOutDto.setTeacherAttendanceInfo(teacherAttendance);
 		return teacherAttendanceService.addTeacherAttendanceRecord(teacherSignOutDto);
 	}

+ 9 - 17
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java

@@ -1,22 +1,5 @@
 package com.ym.mec.biz.service.impl;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Random;
-import java.util.Set;
-
-import org.apache.commons.lang.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.stereotype.Service;
-
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.SysMessageDao;
@@ -35,6 +18,15 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.string.MessageFormatter;
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.Map.Entry;
 
 @Service
 public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> implements SysMessageService {

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

@@ -123,8 +123,9 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			if(teacherSignOutDto.getTeacherAttendanceInfo().getUpdate().equals(YesOrNoEnum.YES.getCode())){
 				school.setLongitudeLatitude(teacherSignOutDto.getTeacherAttendanceInfo().getSignInLongitudeLatitude());
 				schoolDao.update(school);
+			}else{
+				isInScore = false;
 			}
-			isInScore = false;
 		}else{
 			SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.ATTENDANCE_RANGE);
 			double attendanceRange = Double.valueOf(sysConfig.getParanValue());

+ 47 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -102,6 +102,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	private TeacherAttendanceDao teacherAttendanceDao;
 	@Autowired
 	private ClassGroupService classGroupService;
+	@Autowired
+	private StudentPaymentOrderService studentPaymentOrderService;
 
 	@Override
 	public BaseDAO<Long, VipGroup> getDAO() {
@@ -927,6 +929,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			classGroupStudentMapperDao.insert(classGroupStudentMapper);
 		}
 
+		Date date=new Date();
+
 		List<CourseSchedule> courseSchedules = JSON.parseArray(vipGroup.getCourseSchedulesJson(),CourseSchedule.class);
 		courseScheduleService.checkNewCourseSchedules(courseSchedules,false);
 
@@ -942,6 +946,35 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		studentPaymentOrder.setActualAmount(studentPaymentOrder.getExpectAmount());
 		studentPaymentOrder.setMusicGroupId(vipGroup.getId().toString());
 		studentPaymentOrder.setClassGroupId(classGroup.getId());
+		studentPaymentOrderDao.insert(studentPaymentOrder);
+
+		BigDecimal amount=vipGroup.getTotalPrice();
+
+		if(vipGroupBuyParams.isUseBalancePayment() || amount.doubleValue() == 0){
+			SysUserCashAccount userCashAccount = sysUserCashAccountService.getLocked(vipGroupBuyParams.getUserId());
+			if(userCashAccount == null){
+				throw new BizException("用户账户找不到");
+			}
+			if(userCashAccount.getBalance().subtract(vipGroup.getTotalPrice()).doubleValue() > 0){
+				// 更新订单信息
+				studentPaymentOrder.setBalancePaymentAmount(amount);
+				studentPaymentOrder.setStatus(DealStatusEnum.SUCCESS);
+				studentPaymentOrder.setUpdateTime(date);
+				studentPaymentOrderService.update(studentPaymentOrder);
+
+				sysUserCashAccountService.updateBalance(vipGroupBuyParams.getUserId(), amount.negate(),PlatformCashAccountDetailTypeEnum.PAY_FEE,"乐团续费");
+
+				return null;
+			}else{
+				if (userCashAccount.getBalance().doubleValue() > 0) {
+					sysUserCashAccountService.updateBalance(vipGroupBuyParams.getUserId(), userCashAccount.getBalance().negate(), PlatformCashAccountDetailTypeEnum.PAY_FEE, "乐团续费");
+					amount = amount.subtract(userCashAccount.getBalance());
+					studentPaymentOrder.setBalancePaymentAmount(userCashAccount.getBalance());
+				} else {
+					studentPaymentOrder.setBalancePaymentAmount(new BigDecimal(0));
+				}
+			}
+		}
 
 //		try {
 //			contractService.register(user.getId(),user.getRealName(),user.getIdCardNo(),user.getPhone());
@@ -949,18 +982,20 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 //			e.printStackTrace();
 //		}
 
-		//生成回调地址
-		Map<String,Object> payMap = payService.getPayMap(
-				vipGroup.getTotalPrice(),
-				orderNo,
-				"http://mstudev.dayaedu.com/api-student/studentOrder/notify",
-				"http://mstudev.dayaedu.com/#/paymentresult?orderNo=" + orderNo,
-				"vip课购买",
-				vipGroup.getName());
-		studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));
-		studentPaymentOrderDao.insert(studentPaymentOrder);
-
-		return payMap;
+		try {
+			Map<String,Object> payMap = payService.getPayMap(
+					amount,
+					orderNo,
+					"http://mstudev.dayaedu.com/api-student/studentOrder/notify",
+					"http://mstudev.dayaedu.com/#/paymentresult?orderNo=" + orderNo,
+					"vip课购买",
+					vipGroup.getName());
+			studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));
+
+			return payMap;
+		} catch (Exception e) {
+			throw new BizException("调用支付接口出错", e);
+		}
 
 	}