瀏覽代碼

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

zouxuan 5 年之前
父節點
當前提交
22a5bda439

+ 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() {

+ 33 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ContractServiceImpl.java

@@ -22,6 +22,7 @@ import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
 import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
 import com.ym.mec.biz.dal.dto.StudentInfo;
 import com.ym.mec.biz.dal.entity.Goods;
+import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
 import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
@@ -33,6 +34,7 @@ import com.ym.mec.biz.dal.entity.SysUserTsign;
 import com.ym.mec.biz.dal.entity.VipGroup;
 import com.ym.mec.biz.service.ContractService;
 import com.ym.mec.biz.service.GoodsService;
+import com.ym.mec.biz.service.MusicGroupService;
 import com.ym.mec.biz.service.MusicGroupSubjectGoodsGroupService;
 import com.ym.mec.biz.service.MusicGroupSubjectPlanService;
 import com.ym.mec.biz.service.StudentPaymentOrderService;
@@ -92,6 +94,9 @@ public class ContractServiceImpl implements ContractService {
 
 	@Autowired
 	private GoodsService goodsService;
+	
+	@Autowired
+	private MusicGroupService musicGroupService;
 
 	@Value("${contract.baseDir:/var/pdf}")
 	private String contractBaseDir;
@@ -278,6 +283,13 @@ public class ContractServiceImpl implements ContractService {
 		}
 		
 		params.put("isShowVisualSeal", false);
+		
+		MusicGroup musicGroup = musicGroupService.get(musicGroupId);
+		if(musicGroup == null){
+			throw new BizException("乐团信息没找到");
+		}
+		
+		params.put("ownershipType", musicGroup.getOwnershipType().name());
 
 		templateEngine.render(params, "courses.ftl", srcFile);
 
@@ -361,6 +373,13 @@ public class ContractServiceImpl implements ContractService {
 		}
 		
 		params.put("isShowVisualSeal", true);
+		
+		MusicGroup musicGroup = musicGroupService.get(musicGroupId);
+		if(musicGroup == null){
+			throw new BizException("乐团信息没找到");
+		}
+		
+		params.put("ownershipType", musicGroup.getOwnershipType().name());
 
 		templateEngine.render(params, "courses.ftl", srcFile);
 
@@ -548,6 +567,13 @@ public class ContractServiceImpl implements ContractService {
 		params.put("depositFeeFmt", MoneyUtil.toChinese(musicGroupSubjectPlan.getDepositFee().toString()));
 		
 		params.put("isShowVisualSeal", false);
+		
+		MusicGroup musicGroup = musicGroupService.get(musicGroupId);
+		if(musicGroup == null){
+			throw new BizException("乐团信息没找到");
+		}
+		
+		params.put("ownershipType", musicGroup.getOwnershipType().name());
 
 		templateEngine.render(params, "goods.ftl", srcFile);
 
@@ -618,6 +644,13 @@ public class ContractServiceImpl implements ContractService {
 		params.put("depositFeeFmt", MoneyUtil.toChinese(musicGroupSubjectPlan.getDepositFee().toString()));
 		
 		params.put("isShowVisualSeal", true);
+		
+		MusicGroup musicGroup = musicGroupService.get(musicGroupId);
+		if(musicGroup == null){
+			throw new BizException("乐团信息没找到");
+		}
+		
+		params.put("ownershipType", musicGroup.getOwnershipType().name());
 
 		templateEngine.render(params, "goods.ftl", srcFile);
 

+ 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);
 	}

+ 10 - 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,16 @@ 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.beans.factory.annotation.Value;
+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);
+		}
 
 	}
 

+ 16 - 0
mec-biz/src/main/resources/config/contracts/courses.ftl

@@ -76,7 +76,11 @@
     <div class="container">
         <h1>课程服务协议</h1>
         <!-- 甲方:深圳大雅乐盟网络教育股份有限公司 <br/> -->
+        <#if ownershipType == 'OWN'>
        甲方:深圳大雅乐盟网络教育股份有限公司 <br/>
+       <#else>
+       甲方:武汉长乐长风乐器销售有限公司 <br/>
+       </#if>
         <div style="display: flex;">乙方:
             <div style="flex: 1 auto;">
                 <div class="iInfo">
@@ -157,16 +161,28 @@
         
         <div class="signature">
         	<#if isShowVisualSeal>
+        	<#if ownershipType == 'OWN'>
             <div class="sign">甲方签章:深圳大雅乐盟网络教育股份有限公司<img class="cachet" src="https://daya-online.oss-cn-beijing.aliyuncs.com/website/cachet.png" alt="" />
                 <span>日期:${.now?string("yyyy年MM月dd日")}</span>
             </div>
+            <#else>
+            <div class="sign">甲方签章:武汉长乐长风乐器销售有限公司<img class="cachet" src="https://daya-online.oss-cn-beijing.aliyuncs.com/website/clcf.png" alt="" />
+                <span>日期:${.now?string("yyyy年MM月dd日")}</span>
+            </div>
+            </#if>
             <div class="sign">乙方签字:${studentInfo.parentsName!}
                 <span>日期:${.now?string("yyyy年MM月dd日")} </span>
             </div>
         	<#else>
+        	<#if ownershipType == 'OWN'>
             <div class="sign">甲方签章:深圳大雅乐盟网络教育股份有限公司
                 <span>日期:${.now?string("yyyy年MM月dd日")}</span>
             </div>
+            <#else>
+            <div class="sign">甲方签章:武汉长乐长风乐器销售有限公司
+                <span>日期:${.now?string("yyyy年MM月dd日")}</span>
+            </div>
+            </#if>
             <div class="sign">乙方签字:
                 <span>日期:${.now?string("yyyy年MM月dd日")} </span>
             </div>

+ 16 - 0
mec-biz/src/main/resources/config/contracts/goods.ftl

@@ -75,7 +75,11 @@
 <body style="font-family:'SimSun'">
     <div class="container">
         <h1>《乐器借用协议》</h1>
+        <#if ownershipType == 'OWN'>
         甲方:深圳大雅乐盟网络教育股份有限公司 <br/>
+        <#else>
+        甲方:武汉长乐长风乐器销售有限公司 <br/>
+        </#if>        
         <div style="display: flex;">乙方:
             <div style="flex: 1 auto;">
                 <div class="iInfo">
@@ -136,16 +140,28 @@
         4、双方因履行本协议而相互发出或者提供的所有通知、文件、资料,均以本协议中所列明的电话、APP推送消息送达,乙方如果变更电话号码的,应当自变更后1日内通知甲方且获得甲方确认,甲方通过电话、APP方式无法联系乙方或者甲方认为必要时,甲方也可以通过特快专递至乙方住址的方式向乙方发出上述任何通知、文件、资料等,并在甲方寄出特快专递后第5日视为送达成功。
         <div class="signature">
         	<#if isShowVisualSeal>
+        	<#if ownershipType == 'OWN'>
             <div class="sign">甲方签章:深圳大雅乐盟网络教育股份有限公司<img class="cachet" src="https://daya-online.oss-cn-beijing.aliyuncs.com/website/cachet.png" alt="" />
                 <span>日期:${.now?string("yyyy年MM月dd日")}</span>
             </div>
+            <#else>
+            <div class="sign">甲方签章:武汉长乐长风乐器销售有限公司<img class="cachet" src="https://daya-online.oss-cn-beijing.aliyuncs.com/website/clcf.png" alt="" />
+                <span>日期:${.now?string("yyyy年MM月dd日")}</span>
+            </div>
+            </#if>
             <div class="sign">乙方签字:${studentInfo.parentsName!}
                 <span>日期:${.now?string("yyyy年MM月dd日")} </span>
             </div>
         	<#else>
+        	<#if ownershipType == 'OWN'>
             <div class="sign">甲方签章:深圳大雅乐盟网络教育股份有限公司
                 <span>日期:${.now?string("yyyy年MM月dd日")}</span>
             </div>
+            <#else>
+            <div class="sign">甲方签章:武汉长乐长风乐器销售有限公司
+                <span>日期:${.now?string("yyyy年MM月dd日")}</span>
+            </div>
+            </#if>
             <div class="sign">乙方签字:
                 <span>日期:${.now?string("yyyy年MM月dd日")} </span>
             </div>