瀏覽代碼

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

zouxuan 5 年之前
父節點
當前提交
4c67121744

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

@@ -113,9 +113,10 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 *  续费
 	 * @param musicGroupId 乐团编号
 	 * @param userId 用户编号
+	 * @param isUseBalancePayment 是否使用余额付款
 	 * @return
 	 */
-	Map renew(String musicGroupId, Integer userId);
+	Map renew(String musicGroupId, Integer userId, boolean isUseBalancePayment);
 
 	/**
 	 * 学生支付订单

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysUserCashAccountService.java

@@ -29,4 +29,11 @@ public interface SysUserCashAccountService extends BaseService<Integer, SysUserC
 	 * @return
 	 */
 	boolean transferCourseBalanceToBalance(Integer userId);
+	
+	/**
+	 * 获取行级锁
+	 * @param userId
+	 * @return
+	 */
+	SysUserCashAccount getLocked(Integer userId);
 }

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

@@ -180,7 +180,7 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      * @param vipGroupId: vip课编号
      * @return void
      */
-    void createVipGroupCourseScheInfo(Long vipGroupId);
+    void createVipGroupCourseScheInfo(Long vipGroupId,ClassGroup classGroup);
 
     /**
      * @Author: Joburgess

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

@@ -99,6 +99,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				true,
 				currentCourseDetail.getSchoolId().intValue());
 		currentCourseDetail.setOnlyNormal(yesOrNoEnum);
+		currentCourseDetail.setCurrentClassTimes(currentCourseDetail.getCurrentClassTimes()+1);
 
 		currentCourseDetail.setCurrentTime(new Date());
 		currentCourseDetail.setAdvanceSignInMinutes(Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.ADVANCE_SIGN_IN_MINUTES)));

+ 9 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -721,7 +721,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
     @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-    public Map renew(String musicGroupId, Integer userId) {
+    public Map renew(String musicGroupId, Integer userId, boolean isUseBalancePayment) {
 
         MusicGroup musicGroup = this.get(musicGroupId);
         if (musicGroup == null) {
@@ -742,6 +742,14 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (amount == null || amount.doubleValue() == 0) {
             amount = musicGroupStudentFee.getCourseFee();
         }
+        
+        if(isUseBalancePayment){
+        	SysUserCashAccount userCashAccount = sysUserCashAccountService.getLocked(userId);
+        	if(userCashAccount == null){
+        		throw new BizException("用户账户找不到");
+        	}
+        	
+        }
 
         try {
             Map<String, Object> payMap = payService.getPayMap(amount, idGeneratorService.generatorId("payment") + "", "https://pay.dayaedu.com/api/yqpay/notify",

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysUserCashAccountServiceImpl.java

@@ -11,6 +11,7 @@ import com.ym.mec.biz.service.SysUserCashAccountService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
@@ -107,4 +108,9 @@ public class SysUserCashAccountServiceImpl extends BaseServiceImpl<Integer, SysU
 		return true;
 	}
 
+	@Override
+	public SysUserCashAccount getLocked(Integer userId) {
+		return sysUserCashAccountDao.getLocked(userId);
+	}
+
 }

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

@@ -303,7 +303,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(StringUtils.isNotBlank(studentIds)){
 			List<Integer> collect = studentIdList.stream().mapToInt(Integer::parseInt).boxed().collect(Collectors.toList());
 			classGroupService.addStudentIntoClassGroup(vipGroupApplyBaseInfoDto.getId().toString(),classGroup.getId(),collect);
-			createVipGroupCourseScheInfo(vipGroupApplyBaseInfoDto.getId());
+			createVipGroupCourseScheInfo(vipGroupApplyBaseInfoDto.getId(),classGroup);
 		}
 
 		Set<Integer> roleIds = new HashSet<>(1);
@@ -835,11 +835,13 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		}
 
 		Integer studentPaymentNum=studentPaymentOrderDao.countStudentPaymentNum(vipGroupId.toString());
+
 		if(studentPaymentNum.equals(classGroup.getExpectStudentNum())&&updateVipStatus){
+			classGroup.setStudentNum(studentPaymentNum);
 			classGroup.setDelFlag(YesOrNoEnum.NO);
 			vipGroup.setStatus(VipGroupStatusEnum.PROGRESS);
 			vipGroupDao.update(vipGroup);
-			createVipGroupCourseScheInfo(vipGroupId);
+			createVipGroupCourseScheInfo(vipGroupId,classGroup);
 		}
 		if(num!=0||updateVipStatus){
 			classGroupDao.update(classGroup);
@@ -848,15 +850,13 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public void createVipGroupCourseScheInfo(Long vipGroupId){
+	public void createVipGroupCourseScheInfo(Long vipGroupId,ClassGroup classGroup){
 		VipGroup vipGroupApplyBaseInfoDto = vipGroupDao.get(vipGroupId);
 		List<CourseSchedule> courseSchedules = JSON.parseArray(vipGroupApplyBaseInfoDto.getCourseSchedulesJson(),CourseSchedule.class);
 		courseScheduleService.batchAddCourseSchedule(courseSchedules);
 
 		SysUser sysUser = sysUserFeignService.queryUserById(vipGroupApplyBaseInfoDto.getUserId());
 
-		ClassGroup classGroup = classGroupDao.findByVipGroup(vipGroupId,null);
-
 		ClassGroupTeacherSalary classGroupTeacherSalary = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroupId.intValue(), vipGroupApplyBaseInfoDto.getUserId());
 
 		//创建老师单节课课酬信息

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

@@ -175,7 +175,7 @@
 
 	<select id="findByClassGroupAndTeacher" resultMap="teacherHomeworkListDto">
 		SELECT
-			ch.id_ course_homework_id_,
+			cs.id_ course_homework_id_,
 			ch.content_,
 			ch.create_time_,
 			DATE_FORMAT(ch.create_time_,'%Y-%m-%d') 'day_',

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

@@ -261,7 +261,7 @@
         <![CDATA[ AND create_time_ <= ]]> #{beforeTime}
     </select>
     <select id="countStudentPaymentNum" resultType="int">
-        select count(1) from student_payment_order where  music_group_id_=#{musicGroupId} AND status_ = 'SUCCESS'
+        select count(1) from student_payment_order where  music_group_id_=#{musicGroupId} AND status_ = 'SUCCESS' AND type_='SMALL_CLASS_TO_BUY'
     </select>
 
 </mapper>

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

@@ -155,6 +155,7 @@
     <sql id="vipGroupQueryCondition">
         <where>
             1=1
+            AND vg.audit_status_!='REJECT'
             <if test="search!=null and search!=''">
                 AND (vg.name_ LIKE CONCAT('%',#{search},'%') OR vg.id_=#{search})
             </if>

+ 58 - 28
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -1,34 +1,59 @@
 package com.ym.mec.student.controller;
 
-import com.huifu.adapay.model.payment.PayChannelEnum;
-import com.huifu.adapay.model.payment.Payment;
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
-import com.ym.mec.biz.dal.dto.RegisterPayDto;
-import com.ym.mec.biz.dal.entity.*;
-import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
-import com.ym.mec.biz.dal.enums.*;
-import com.ym.mec.biz.service.*;
-import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.entity.HttpResponseResult;
-import com.ym.mec.common.exception.BizException;
-import com.ym.mec.common.service.IdGeneratorService;
-import com.ym.mec.thirdparty.adapay.Pay;
-import com.ym.mec.util.string.IdWorker;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+import javax.annotation.Resource;
+
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
-import javax.annotation.Resource;
-import java.math.BigDecimal;
-import java.util.*;
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
+import com.ym.mec.biz.dal.dto.RegisterPayDto;
+import com.ym.mec.biz.dal.entity.Goods;
+import com.ym.mec.biz.dal.entity.MusicGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
+import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
+import com.ym.mec.biz.dal.entity.StudentRegistration;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
+import com.ym.mec.biz.dal.enums.GoodsType;
+import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
+import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
+import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
+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.PayService;
+import com.ym.mec.biz.service.StudentPaymentOrderDetailService;
+import com.ym.mec.biz.service.StudentPaymentOrderService;
+import com.ym.mec.biz.service.StudentRegistrationService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.service.IdGeneratorService;
 
 @RequestMapping("musicGroup")
 @Api(tags = "乐团服务")
@@ -175,14 +200,19 @@ public class MusicGroupController extends BaseController {
         return succeed(model);
     }
 
-    @ApiOperation(value = "续费")
-    @GetMapping("/renew")
-    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String")})
-    public HttpResponseResult renew(String musicGroupId) throws Exception {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        Integer userId = sysUser.getId();
-        return succeed(musicGroupService.renew(musicGroupId, userId));
-    }
+	@ApiOperation(value = "续费")
+	@GetMapping("/renew")
+	@ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String"),
+			@ApiImplicitParam(name = "isUseBalancePayment", value = "是否使用余额付款", required = true, dataType = "Boolean") })
+	public HttpResponseResult renew(String musicGroupId, Boolean isUseBalancePayment) throws Exception {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		Integer userId = sysUser.getId();
+		
+		if (isUseBalancePayment == null) {
+			isUseBalancePayment = false;
+		}
+		return succeed(musicGroupService.renew(musicGroupId, userId, isUseBalancePayment));
+	}
 
     @ApiOperation(value = "退团")
     @PostMapping("/quitMusicGroup")