|
@@ -18,13 +18,14 @@ import com.ym.mec.common.entity.ImResult;
|
|
|
import com.ym.mec.common.entity.ImUserModel;
|
|
|
import com.ym.mec.common.exception.BizException;
|
|
|
import com.ym.mec.common.page.PageInfo;
|
|
|
+import com.ym.mec.common.page.WrapperUtil;
|
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
-import com.ym.mec.common.tenant.TenantContextHolder;
|
|
|
import com.ym.mec.im.ImFeignService;
|
|
|
import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
import com.ym.mec.util.http.HttpUtil;
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -33,7 +34,6 @@ import org.springframework.http.HttpStatus;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Propagation;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
-import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.io.IOException;
|
|
@@ -192,11 +192,11 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
}
|
|
|
if (studentCloudTeacherMap.containsKey(e.getStudentId())) {
|
|
|
List<CloudTeacherOrder> cloudTeacherOrders = studentCloudTeacherMap.get(e.getStudentId());
|
|
|
- if(cloudTeacherOrders != null && cloudTeacherOrders.size() > 0){
|
|
|
+ if (cloudTeacherOrders != null && cloudTeacherOrders.size() > 0) {
|
|
|
BigDecimal cloudAmount = BigDecimal.ZERO;
|
|
|
for (CloudTeacherOrder cloudTeacherOrder : cloudTeacherOrders) {
|
|
|
- if (cloudTeacherOrder.getEndTime() == null || DateUtil.stringToDate(DateUtil.format(cloudTeacherOrder.getEndTime(),DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT).compareTo(
|
|
|
- DateUtil.stringToDate(DateUtil.format(nowDate,DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT)) >= 0) {
|
|
|
+ if (cloudTeacherOrder.getEndTime() == null || DateUtil.stringToDate(DateUtil.format(cloudTeacherOrder.getEndTime(), DateUtil.ISO_EXPANDED_DATE_FORMAT), DateUtil.ISO_EXPANDED_DATE_FORMAT).compareTo(
|
|
|
+ DateUtil.stringToDate(DateUtil.format(nowDate, DateUtil.ISO_EXPANDED_DATE_FORMAT), DateUtil.ISO_EXPANDED_DATE_FORMAT)) >= 0) {
|
|
|
cloudAmount = cloudAmount.add(cloudTeacherOrder.getAmount());
|
|
|
}
|
|
|
}
|
|
@@ -230,154 +230,153 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId, subId, 1);
|
|
|
MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
|
|
|
|
|
|
- sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(),new SysUserRoleEnum[]{SECTION_MANAGER},
|
|
|
- null,musicGroup.getEducationalTeacherId(),MessageTypeEnum.BACKSTAGE_STUDENT_SUBJECT_CHANGE, musicGroup.getName());
|
|
|
+ sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{SECTION_MANAGER},
|
|
|
+ null, musicGroup.getEducationalTeacherId(), MessageTypeEnum.BACKSTAGE_STUDENT_SUBJECT_CHANGE, musicGroup.getName());
|
|
|
}
|
|
|
return i;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<StudentPaymentOrderDetail> queryFeeDetail(Integer studentId, String musicGroupId) {
|
|
|
+ public List<StudentPaymentOrderDetail> queryFeeDetail(Integer studentId, String musicGroupId) {
|
|
|
|
|
|
- List<StudentPaymentOrder> studentPaymentOrderList = studentPaymentOrderService.queryByCondition(GroupType.MUSIC, musicGroupId, studentId,
|
|
|
- DealStatusEnum.SUCCESS, OrderTypeEnum.APPLY);
|
|
|
+ List<StudentPaymentOrder> studentPaymentOrderList = studentPaymentOrderService.queryByCondition(GroupType.MUSIC, musicGroupId, studentId,
|
|
|
+ DealStatusEnum.SUCCESS, OrderTypeEnum.APPLY);
|
|
|
|
|
|
- List<Long> orderIdList = studentPaymentOrderList.stream().map(t -> t.getId()).collect(Collectors.toList());
|
|
|
+ List<Long> orderIdList = studentPaymentOrderList.stream().map(t -> t.getId()).collect(Collectors.toList());
|
|
|
|
|
|
- List<StudentPaymentOrderDetail> studentPaymentOrderDetailList =new ArrayList<StudentPaymentOrderDetail>();
|
|
|
- if(orderIdList != null && orderIdList.size() > 0){
|
|
|
- studentPaymentOrderDetailList = studentPaymentOrderDetailService.getOrderDetail(orderIdList);
|
|
|
- }
|
|
|
+ List<StudentPaymentOrderDetail> studentPaymentOrderDetailList = new ArrayList<StudentPaymentOrderDetail>();
|
|
|
+ if (orderIdList != null && orderIdList.size() > 0) {
|
|
|
+ studentPaymentOrderDetailList = studentPaymentOrderDetailService.getOrderDetail(orderIdList);
|
|
|
+ }
|
|
|
|
|
|
- SubjectChange studentLastChange = subjectChangeDao.getStudentLastChange(studentId, musicGroupId);
|
|
|
+ SubjectChange studentLastChange = subjectChangeDao.getStudentLastChange(studentId, musicGroupId);
|
|
|
|
|
|
- if (studentLastChange != null) {
|
|
|
- Iterator<StudentPaymentOrderDetail> iterator = studentPaymentOrderDetailList.iterator();
|
|
|
- StudentPaymentOrderDetail spod = null;
|
|
|
- while (iterator.hasNext()) {
|
|
|
- spod = iterator.next();
|
|
|
- if ((spod.getType() == OrderDetailTypeEnum.ACCESSORIES || spod.getType() == OrderDetailTypeEnum.MUSICAL) && (studentLastChange.getOriginalOrderId() != null && spod.getPaymentOrderId() <= studentLastChange.getOriginalOrderId())) {
|
|
|
- iterator.remove();
|
|
|
- }
|
|
|
- }
|
|
|
+ if (studentLastChange != null) {
|
|
|
+ Iterator<StudentPaymentOrderDetail> iterator = studentPaymentOrderDetailList.iterator();
|
|
|
+ StudentPaymentOrderDetail spod = null;
|
|
|
+ while (iterator.hasNext()) {
|
|
|
+ spod = iterator.next();
|
|
|
+ if ((spod.getType() == OrderDetailTypeEnum.ACCESSORIES || spod.getType() == OrderDetailTypeEnum.MUSICAL) && (studentLastChange.getOriginalOrderId() != null && spod.getPaymentOrderId() <= studentLastChange.getOriginalOrderId())) {
|
|
|
+ iterator.remove();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- if (StringUtils.isNoneBlank(studentLastChange.getChangeAccessories())) {
|
|
|
- StudentPaymentOrderDetail detail = new StudentPaymentOrderDetail();
|
|
|
- detail.setGoodsIdList(studentLastChange.getChangeAccessories());
|
|
|
- List<Goods> goods = goodsDao.findGoodsByIds(detail.getGoodsIdList());
|
|
|
- if (goods != null && goods.size() > 0) {
|
|
|
- detail.setName(goods.stream().map(t -> t.getName()).collect(Collectors.joining(",")));
|
|
|
- }
|
|
|
- if(studentLastChange.getOriginalOrderId() != null){
|
|
|
- detail.setPaymentOrderId((long) studentLastChange.getOriginalOrderId());
|
|
|
- }
|
|
|
- detail.setPrice(studentLastChange.getChangeAccessoriesPrice());
|
|
|
- detail.setType(OrderDetailTypeEnum.ACCESSORIES);
|
|
|
- detail.setCreateTime(studentLastChange.getCreateTime());
|
|
|
+ if (StringUtils.isNoneBlank(studentLastChange.getChangeAccessories())) {
|
|
|
+ StudentPaymentOrderDetail detail = new StudentPaymentOrderDetail();
|
|
|
+ detail.setGoodsIdList(studentLastChange.getChangeAccessories());
|
|
|
+ List<Goods> goods = goodsDao.findGoodsByIds(detail.getGoodsIdList());
|
|
|
+ if (goods != null && goods.size() > 0) {
|
|
|
+ detail.setName(goods.stream().map(t -> t.getName()).collect(Collectors.joining(",")));
|
|
|
+ }
|
|
|
+ if (studentLastChange.getOriginalOrderId() != null) {
|
|
|
+ detail.setPaymentOrderId((long) studentLastChange.getOriginalOrderId());
|
|
|
+ }
|
|
|
+ detail.setPrice(studentLastChange.getChangeAccessoriesPrice());
|
|
|
+ detail.setType(OrderDetailTypeEnum.ACCESSORIES);
|
|
|
+ detail.setCreateTime(studentLastChange.getCreateTime());
|
|
|
|
|
|
- studentPaymentOrderDetailList.add(detail);
|
|
|
- }
|
|
|
- if (studentLastChange.getChangeMusical() != null) {
|
|
|
- StudentPaymentOrderDetail detail = new StudentPaymentOrderDetail();
|
|
|
- detail.setGoodsIdList(studentLastChange.getChangeMusical() + "");
|
|
|
- List<Goods> goods = goodsDao.findGoodsByIds(detail.getGoodsIdList());
|
|
|
- if (goods != null && goods.size() > 0) {
|
|
|
- detail.setName(goods.stream().map(t -> t.getName()).collect(Collectors.joining(",")));
|
|
|
- }
|
|
|
- if(studentLastChange.getOriginalOrderId() != null){
|
|
|
- detail.setPaymentOrderId((long) studentLastChange.getOriginalOrderId());
|
|
|
- }
|
|
|
- detail.setPrice(studentLastChange.getChangeMusicalPrice());
|
|
|
- detail.setType(OrderDetailTypeEnum.MUSICAL);
|
|
|
- detail.setCreateTime(studentLastChange.getCreateTime());
|
|
|
+ studentPaymentOrderDetailList.add(detail);
|
|
|
+ }
|
|
|
+ if (studentLastChange.getChangeMusical() != null) {
|
|
|
+ StudentPaymentOrderDetail detail = new StudentPaymentOrderDetail();
|
|
|
+ detail.setGoodsIdList(studentLastChange.getChangeMusical() + "");
|
|
|
+ List<Goods> goods = goodsDao.findGoodsByIds(detail.getGoodsIdList());
|
|
|
+ if (goods != null && goods.size() > 0) {
|
|
|
+ detail.setName(goods.stream().map(t -> t.getName()).collect(Collectors.joining(",")));
|
|
|
+ }
|
|
|
+ if (studentLastChange.getOriginalOrderId() != null) {
|
|
|
+ detail.setPaymentOrderId((long) studentLastChange.getOriginalOrderId());
|
|
|
+ }
|
|
|
+ detail.setPrice(studentLastChange.getChangeMusicalPrice());
|
|
|
+ detail.setType(OrderDetailTypeEnum.MUSICAL);
|
|
|
+ detail.setCreateTime(studentLastChange.getCreateTime());
|
|
|
|
|
|
- studentPaymentOrderDetailList.add(detail);
|
|
|
- }
|
|
|
- }
|
|
|
+ studentPaymentOrderDetailList.add(detail);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- return studentPaymentOrderDetailList;
|
|
|
- }
|
|
|
+ return studentPaymentOrderDetailList;
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
- public Map<String, BigDecimal> queryRefundsDetail(Integer studentId, String musicGroupId) {
|
|
|
+ public Map<String, BigDecimal> queryRefundsDetail(Integer studentId, String musicGroupId) {
|
|
|
|
|
|
- List<StudentPaymentOrderDetail> detailList = queryFeeDetail(studentId, musicGroupId);
|
|
|
+ List<StudentPaymentOrderDetail> detailList = queryFeeDetail(studentId, musicGroupId);
|
|
|
|
|
|
- Map<OrderDetailTypeEnum, List<StudentPaymentOrderDetail>> detailMap = detailList.stream().collect(
|
|
|
- Collectors.groupingBy(StudentPaymentOrderDetail::getType));
|
|
|
+ Map<OrderDetailTypeEnum, List<StudentPaymentOrderDetail>> detailMap = detailList.stream().collect(
|
|
|
+ Collectors.groupingBy(StudentPaymentOrderDetail::getType));
|
|
|
|
|
|
- Map<String, BigDecimal> map = new HashMap<String, BigDecimal>();
|
|
|
+ Map<String, BigDecimal> map = new HashMap<String, BigDecimal>();
|
|
|
|
|
|
if (detailMap.containsKey(OrderDetailTypeEnum.MUSICAL)) {
|
|
|
- detailList = detailMap.get(OrderDetailTypeEnum.MUSICAL);
|
|
|
- if (detailList == null) {
|
|
|
- detailList = new ArrayList<StudentPaymentOrderDetail>();
|
|
|
- }
|
|
|
+ detailList = detailMap.get(OrderDetailTypeEnum.MUSICAL);
|
|
|
+ if (detailList == null) {
|
|
|
+ detailList = new ArrayList<StudentPaymentOrderDetail>();
|
|
|
+ }
|
|
|
BigDecimal reduce = detailList.stream().map(StudentPaymentOrderDetail::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
|
- map.put(OrderDetailTypeEnum.MUSICAL.getCode(),sysUserCashAccountLogService.musicReturnFeeCharges(reduce,0));
|
|
|
- } else {
|
|
|
- map.put(OrderDetailTypeEnum.MUSICAL.getCode(), BigDecimal.ZERO);
|
|
|
- }
|
|
|
+ map.put(OrderDetailTypeEnum.MUSICAL.getCode(), sysUserCashAccountLogService.musicReturnFeeCharges(reduce, 0));
|
|
|
+ } else {
|
|
|
+ map.put(OrderDetailTypeEnum.MUSICAL.getCode(), BigDecimal.ZERO);
|
|
|
+ }
|
|
|
|
|
|
- if (detailMap.containsKey(MAINTENANCE)) {
|
|
|
+ if (detailMap.containsKey(MAINTENANCE)) {
|
|
|
|
|
|
- BigDecimal totalAmount = BigDecimal.ZERO;
|
|
|
+ BigDecimal totalAmount = BigDecimal.ZERO;
|
|
|
|
|
|
- Date date = new Date();
|
|
|
+ Date date = new Date();
|
|
|
|
|
|
- // 查询当前乐团报名订单中购买了乐保的订单
|
|
|
- List<StudentPaymentOrderDetail> studentPaymentOrderDetailList = studentPaymentOrderDetailDao.findUserApplyOrder(studentId, musicGroupId,
|
|
|
- DealStatusEnum.SUCCESS);
|
|
|
+ // 查询当前乐团报名订单中购买了乐保的订单
|
|
|
+ List<StudentPaymentOrderDetail> studentPaymentOrderDetailList = studentPaymentOrderDetailDao.findUserApplyOrder(studentId, musicGroupId,
|
|
|
+ DealStatusEnum.SUCCESS);
|
|
|
|
|
|
- if (studentPaymentOrderDetailList != null && studentPaymentOrderDetailList.size() > 0) {
|
|
|
+ if (studentPaymentOrderDetailList != null && studentPaymentOrderDetailList.size() > 0) {
|
|
|
|
|
|
- Map<Long, StudentPaymentOrderDetail> maintenanceMap = studentPaymentOrderDetailList.stream()
|
|
|
- .filter(t -> (t.getType() == MAINTENANCE))
|
|
|
- .collect(Collectors.toMap(t -> t.getStudentInstrumentId(), StudentPaymentOrderDetail -> StudentPaymentOrderDetail));
|
|
|
+ Map<Long, StudentPaymentOrderDetail> maintenanceMap = studentPaymentOrderDetailList.stream()
|
|
|
+ .filter(t -> (t.getType() == MAINTENANCE))
|
|
|
+ .collect(Collectors.toMap(t -> t.getStudentInstrumentId(), StudentPaymentOrderDetail -> StudentPaymentOrderDetail));
|
|
|
|
|
|
- List<Long> instrumentIdList = new ArrayList<Long>(maintenanceMap.keySet());
|
|
|
- if (instrumentIdList != null && instrumentIdList.size() > 0) {
|
|
|
- List<StudentInstrument> studentInstrumentList = studentInstrumentDao.queryById(instrumentIdList);
|
|
|
+ List<Long> instrumentIdList = new ArrayList<Long>(maintenanceMap.keySet());
|
|
|
+ if (instrumentIdList != null && instrumentIdList.size() > 0) {
|
|
|
+ List<StudentInstrument> studentInstrumentList = studentInstrumentDao.queryById(instrumentIdList);
|
|
|
|
|
|
- for (StudentInstrument si : studentInstrumentList) {
|
|
|
- if (si.getDelFlag() == 1) {
|
|
|
- continue;
|
|
|
- }
|
|
|
+ for (StudentInstrument si : studentInstrumentList) {
|
|
|
+ if (si.getDelFlag() == 1) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
|
|
|
- if ((si.getStatus() == 0 && si.getStartTime() == null) || si.getEndTime().after(date)) {
|
|
|
- totalAmount = totalAmount.add(maintenanceMap.get(si.getId()).getPrice());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- map.put(MAINTENANCE.getCode(), sysUserCashAccountLogService.musicReturnFeeCharges(totalAmount,0));
|
|
|
- } else {
|
|
|
- map.put(MAINTENANCE.getCode(), BigDecimal.ZERO);
|
|
|
- }
|
|
|
+ if ((si.getStatus() == 0 && si.getStartTime() == null) || si.getEndTime().after(date)) {
|
|
|
+ totalAmount = totalAmount.add(maintenanceMap.get(si.getId()).getPrice());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ map.put(MAINTENANCE.getCode(), sysUserCashAccountLogService.musicReturnFeeCharges(totalAmount, 0));
|
|
|
+ } else {
|
|
|
+ map.put(MAINTENANCE.getCode(), BigDecimal.ZERO);
|
|
|
+ }
|
|
|
|
|
|
- if (detailMap.containsKey(OrderDetailTypeEnum.ACCESSORIES)) {
|
|
|
- detailList = detailMap.get(OrderDetailTypeEnum.ACCESSORIES);
|
|
|
- if (detailList == null) {
|
|
|
- detailList = new ArrayList<StudentPaymentOrderDetail>();
|
|
|
- }
|
|
|
+ if (detailMap.containsKey(OrderDetailTypeEnum.ACCESSORIES)) {
|
|
|
+ detailList = detailMap.get(OrderDetailTypeEnum.ACCESSORIES);
|
|
|
+ if (detailList == null) {
|
|
|
+ detailList = new ArrayList<StudentPaymentOrderDetail>();
|
|
|
+ }
|
|
|
BigDecimal reduce = detailList.stream().map(StudentPaymentOrderDetail::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- map.put(OrderDetailTypeEnum.ACCESSORIES.getCode(),sysUserCashAccountLogService.musicReturnFeeCharges(reduce,0));
|
|
|
- } else {
|
|
|
- map.put(OrderDetailTypeEnum.ACCESSORIES.getCode(), BigDecimal.ZERO);
|
|
|
- }
|
|
|
+ map.put(OrderDetailTypeEnum.ACCESSORIES.getCode(), sysUserCashAccountLogService.musicReturnFeeCharges(reduce, 0));
|
|
|
+ } else {
|
|
|
+ map.put(OrderDetailTypeEnum.ACCESSORIES.getCode(), BigDecimal.ZERO);
|
|
|
+ }
|
|
|
|
|
|
- StudentRegistration studentRegistration = studentRegistrationDao.getStudentRegister(musicGroupId, studentId);
|
|
|
- if (studentRegistration == null) {
|
|
|
- throw new BizException("学生报名信息查询失败");
|
|
|
- }
|
|
|
- //未上课*0995手续费、以上课*0.8
|
|
|
+ StudentRegistration studentRegistration = studentRegistrationDao.getStudentRegister(musicGroupId, studentId);
|
|
|
+ if (studentRegistration == null) {
|
|
|
+ throw new BizException("学生报名信息查询失败");
|
|
|
+ }
|
|
|
+ //未上课*0995手续费、以上课*0.8
|
|
|
List<StudentCourseInfoDto> history = courseScheduleDao.findUserCourseInfos(GroupType.MUSIC, musicGroupId, studentId, "history");
|
|
|
- map.put(OrderDetailTypeEnum.COURSE.getCode(), sysUserCashAccountLogService.musicReturnFeeCharges(studentRegistration.getSurplusCourseFee(),history.size()));
|
|
|
-
|
|
|
+ map.put(OrderDetailTypeEnum.COURSE.getCode(), sysUserCashAccountLogService.musicReturnFeeCharges(studentRegistration.getSurplusCourseFee(), history.size()));
|
|
|
|
|
|
|
|
|
- // 查询云教练订单
|
|
|
+ // 查询云教练订单
|
|
|
/*BigDecimal cloudAmount = BigDecimal.ZERO;
|
|
|
List<Integer> studentIds = new ArrayList<Integer>();
|
|
|
studentIds.add(studentId);
|
|
@@ -396,10 +395,10 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
|
|
|
map.put(OrderDetailTypeEnum.CLOUD_TEACHER.getCode(), cloudAmount);*/
|
|
|
|
|
|
- return map;
|
|
|
- }
|
|
|
+ return map;
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
+ @Override
|
|
|
public List<Map<String, Object>> getNoClassStuBySubjectId(String musicGroupId, String actualSubjectId) {
|
|
|
List<StudentRegistration> students = studentRegistrationDao.getNoClassStuBySubjectId(musicGroupId, actualSubjectId);
|
|
|
List<Map<String, Object>> mapArrayList = new ArrayList<>();
|
|
@@ -524,43 +523,45 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public StudentPaymentOrder addOrder(StudentRegistration studentRegistration, StudentPaymentOrder studentPaymentOrder,
|
|
|
- MusicGroupApplyGoodsDto goodsDto,RegisterPayDto registerPayDto) {
|
|
|
+ public StudentPaymentOrder addOrder(StudentRegistration studentRegistration,
|
|
|
+ StudentPaymentOrder studentPaymentOrder,
|
|
|
+ MusicGroupApplyGoodsDto goodsDto,
|
|
|
+ RegisterPayDto registerPayDto,
|
|
|
+ CouponPayParam couponPayParam) throws Exception {
|
|
|
Date date = new Date();
|
|
|
- ArrayList<StudentPaymentOrderDetail> studentPaymentOrderDetailList = new ArrayList<>();
|
|
|
+ List<StudentPaymentOrderDetail> studentPaymentOrderDetailList = new ArrayList<>();
|
|
|
//乐器及打包辅件
|
|
|
String maintenanceGoodsId = "";
|
|
|
List<MusicGroupSubjectGoodsGroup> goodsGroups = goodsDto.getGoodsGroups();
|
|
|
List<MusicGroupPaymentCalenderCourseSettings> newCourses = goodsDto.getNewCourses();
|
|
|
BigDecimal remitFee = goodsDto.getRemitFee();
|
|
|
- if (goodsGroups != null && goodsGroups.size() > 0) {
|
|
|
+ if (CollectionUtils.isNotEmpty(goodsGroups)) {
|
|
|
for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
|
|
|
StudentPaymentOrderDetail studentPaymentOrderDetail4goodsGroup = new StudentPaymentOrderDetail();
|
|
|
studentPaymentOrderDetail4goodsGroup.setRemitFee(BigDecimal.ZERO);
|
|
|
OrderDetailTypeEnum type = null;
|
|
|
if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
|
|
|
- type = OrderDetailTypeEnum.MUSICAL;
|
|
|
+ type = OrderDetailTypeEnum.MUSICAL;//todo 乐器
|
|
|
goodsGroup.setPrice(goodsGroup.getPrice().subtract(remitFee));
|
|
|
studentPaymentOrderDetail4goodsGroup.setRemitFee(remitFee);
|
|
|
} else if (goodsGroup.getType().equals(GoodsType.ACCESSORIES)) {
|
|
|
- type = OrderDetailTypeEnum.ACCESSORIES;
|
|
|
+ type = OrderDetailTypeEnum.ACCESSORIES;//todo 辅件
|
|
|
} else if (goodsGroup.getType().equals(GoodsType.OTHER)) {
|
|
|
- type = OrderDetailTypeEnum.TEACHING;
|
|
|
+ type = OrderDetailTypeEnum.TEACHING;//todo 教谱
|
|
|
}
|
|
|
studentPaymentOrderDetail4goodsGroup.setType(type);
|
|
|
-
|
|
|
+
|
|
|
BigDecimal goodsPrice = new BigDecimal(0);
|
|
|
-
|
|
|
- if(studentRegistration.getOrganId() == 55 && (newCourses == null || newCourses.size() == 0) && !registerPayDto.getBuyCloudTeacher()){
|
|
|
- //取商品零售价
|
|
|
+ if (studentRegistration.getOrganId() == 55 && (newCourses == null || newCourses.size() == 0) && !registerPayDto.getBuyCloudTeacher()) {
|
|
|
+ //取商品零售价
|
|
|
if (StringUtils.isNotBlank(goodsGroup.getGoodsIdList())) {
|
|
|
- List<Goods> goodsList = goodsDao.findGoodsByIds(goodsGroup.getGoodsIdList());
|
|
|
- for(Goods goods : goodsList){
|
|
|
- goodsPrice = goodsPrice.add(goods.getDiscountPrice());
|
|
|
- }
|
|
|
+ List<Goods> goodsList = goodsDao.findGoodsByIds(goodsGroup.getGoodsIdList());
|
|
|
+ for (Goods goods : goodsList) {
|
|
|
+ goodsPrice = goodsPrice.add(goods.getDiscountPrice());
|
|
|
+ }
|
|
|
}
|
|
|
- }else{
|
|
|
- goodsPrice = goodsGroup.getPrice();
|
|
|
+ } else {
|
|
|
+ goodsPrice = goodsGroup.getPrice();
|
|
|
}
|
|
|
studentPaymentOrderDetail4goodsGroup.setPrice(goodsPrice);
|
|
|
studentPaymentOrderDetail4goodsGroup.setGoodsIdList(goodsGroup.getGoodsIdList());
|
|
@@ -575,8 +576,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //新的课程形态
|
|
|
- if (newCourses != null && newCourses.size() > 0) {
|
|
|
+ //新的课程形态 todo 合奏课 单技课
|
|
|
+ if (CollectionUtils.isNotEmpty(newCourses)) {
|
|
|
BigDecimal courseRemitFee = goodsDto.getCourseRemitFee();
|
|
|
for (MusicGroupPaymentCalenderCourseSettings newCourse : newCourses) {
|
|
|
StudentPaymentOrderDetail studentPaymentOrderDetailCourse = new StudentPaymentOrderDetail();
|
|
@@ -597,7 +598,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
|
|
|
//合班缴费
|
|
|
List<MusicGroupPaymentCalenderStudentDetail> studentDetails = musicGroupPaymentCalenderStudentDetailDao.findByBatchNoAndUserId(registerPayDto.getBatchNo(), studentPaymentOrder.getUserId());
|
|
|
- if(studentDetails != null && studentDetails.size() > 0){
|
|
|
+ if (CollectionUtils.isNotEmpty(studentDetails)) {
|
|
|
for (MusicGroupPaymentCalenderStudentDetail studentDetail : studentDetails) {
|
|
|
StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail();
|
|
|
studentPaymentOrderDetail.setType(OrderDetailTypeEnum.valueOf(studentDetail.getCourseType()));
|
|
@@ -609,7 +610,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //乐保
|
|
|
+ //乐保 todo 乐保
|
|
|
if (registerPayDto.getBuyMaintenance()) {
|
|
|
if (StringUtils.isEmpty(maintenanceGoodsId)) {
|
|
|
throw new BizException("有乐器才能购买乐保,请核查");
|
|
@@ -625,13 +626,14 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
maintenanceOrderDetail.setIsRenew(0);
|
|
|
studentPaymentOrderDetailList.add(maintenanceOrderDetail);
|
|
|
}
|
|
|
- //活动
|
|
|
+
|
|
|
+ //活动 todo VIP 或 网管课
|
|
|
List<Long> buyCalenderActivityId = registerPayDto.getBuyCalenderActivityId();
|
|
|
- if (buyCalenderActivityId != null && buyCalenderActivityId.size() > 0) {
|
|
|
+ if (CollectionUtils.isNotEmpty(buyCalenderActivityId)) {
|
|
|
List<MusicGroupPaymentCalenderActivity> calenderActivities = musicGroupPaymentCalenderActivityService.findByIds(buyCalenderActivityId);
|
|
|
for (MusicGroupPaymentCalenderActivity calenderActivity : calenderActivities) {
|
|
|
StudentPaymentOrderDetail maintenanceOrderDetail = new StudentPaymentOrderDetail();
|
|
|
- maintenanceOrderDetail.setType("网管课".equals(calenderActivity.getCategoryName())?PRACTICE:VIP);
|
|
|
+ maintenanceOrderDetail.setType("网管课".equals(calenderActivity.getCategoryName()) ? PRACTICE : VIP);
|
|
|
maintenanceOrderDetail.setPrice(calenderActivity.getActualAmount());
|
|
|
maintenanceOrderDetail.setRemitFee(BigDecimal.ZERO);
|
|
|
maintenanceOrderDetail.setCreateTime(date);
|
|
@@ -644,13 +646,12 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
}
|
|
|
}
|
|
|
MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
|
|
|
-
|
|
|
- //云教练/云教练+
|
|
|
+
|
|
|
+ //云教练/云教练+ todo 团练宝
|
|
|
if (registerPayDto.getBuyCloudTeacher()) {
|
|
|
MusicGroupPaymentCalenderMember calenderMember = musicGroupPaymentCalenderMemberService.findByCalenderId(studentPaymentOrder.getCalenderId());
|
|
|
- OrderDetailTypeEnum orderDetailTypeEnum = OrderDetailTypeEnum.CLOUD_TEACHER;
|
|
|
StudentPaymentOrderDetail cloudTeacherOrderDetail = new StudentPaymentOrderDetail();
|
|
|
- cloudTeacherOrderDetail.setType(orderDetailTypeEnum);
|
|
|
+ cloudTeacherOrderDetail.setType(OrderDetailTypeEnum.CLOUD_TEACHER);
|
|
|
cloudTeacherOrderDetail.setPrice(calenderMember.getActualAmount());
|
|
|
cloudTeacherOrderDetail.setRemitFee(BigDecimal.ZERO);
|
|
|
cloudTeacherOrderDetail.setCreateTime(date);
|
|
@@ -659,42 +660,57 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
cloudTeacherOrderDetail.setIsRenew(0);
|
|
|
studentPaymentOrderDetailList.add(cloudTeacherOrderDetail);
|
|
|
}
|
|
|
- studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetailList,studentPaymentOrder.getCouponRemitFee());
|
|
|
+
|
|
|
+ //开始计算商品的优惠券
|
|
|
+ if (Objects.nonNull(couponPayParam) && Objects.nonNull(couponPayParam.getCouponTypeInfo())) {
|
|
|
+ //按OrderDetailTypeEnum类型 进行聚合分组
|
|
|
+ Map<OrderDetailTypeEnum, List<StudentPaymentOrderDetail>> orderDetailGroupList =
|
|
|
+ WrapperUtil.groupList(studentPaymentOrderDetailList, StudentPaymentOrderDetail::getType);
|
|
|
+ //获取本次交易中各优惠券的使用信息
|
|
|
+ Map<String, CouponPayTypeInfo> couponParam = couponPayParam.getCouponTypeInfo();
|
|
|
+ //计算使用优惠券后的对应的商品应该均摊的金额
|
|
|
+ calculateCoupon(couponParam, orderDetailGroupList);
|
|
|
+ //获取使用了优惠券之后的总金额
|
|
|
+ BigDecimal useCouponAmount = WrapperUtil.sumList(studentPaymentOrderDetailList, StudentPaymentOrderDetail::getRemitFee);
|
|
|
+ studentPaymentOrder.setCouponRemitFee(useCouponAmount);
|
|
|
+ }
|
|
|
+ //添加订单明细
|
|
|
+ studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetailList);
|
|
|
|
|
|
//增加缴费学生数,0元订单不增加报名人数(没买云教练/云教练+的)
|
|
|
boolean paidZeroFlag = false;
|
|
|
|
|
|
MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId());
|
|
|
-
|
|
|
- if (studentRegistration.getMusicGroupStatus() != StudentMusicGroupStatusEnum.NORMAL) {
|
|
|
- // 判断之前是否已有订单
|
|
|
- List<StudentPaymentOrder> oldStudentPaymentOrderList = studentPaymentOrderService.queryByCondition(GroupType.MUSIC,
|
|
|
- studentRegistration.getMusicGroupId(), studentRegistration.getUserId(), DealStatusEnum.SUCCESS, OrderTypeEnum.APPLY);
|
|
|
-
|
|
|
- int paidNum = musicOneSubjectClassPlan.getPaidStudentNum() == null ? 0 : musicOneSubjectClassPlan.getPaidStudentNum();
|
|
|
- int paidZeroNum = musicOneSubjectClassPlan.getPaidZeroNum() == null ? 0 : musicOneSubjectClassPlan.getPaidZeroNum();
|
|
|
- if ((musicGroup.getCourseViewType().equals(CourseViewTypeEnum.MEMBER_FEE) && !registerPayDto.getBuyCloudTeacher() && StringUtils.isBlank(maintenanceGoodsId))) {
|
|
|
- if (studentRegistration.getPaymentStatus() != YES) {
|
|
|
- paidZeroFlag = true;
|
|
|
- }
|
|
|
- if (studentRegistration.getNoneNeedCloudTeacher().equals(1) && (oldStudentPaymentOrderList == null || oldStudentPaymentOrderList.size() == 0)) {
|
|
|
- musicOneSubjectClassPlan.setPaidZeroNum(paidZeroNum + 1);
|
|
|
- musicOneSubjectClassPlan.setPaidStudentNum(paidNum + 1);
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (oldStudentPaymentOrderList == null || oldStudentPaymentOrderList.size() == 0) {
|
|
|
- musicOneSubjectClassPlan.setPaidStudentNum(paidNum + 1);
|
|
|
- }
|
|
|
- }
|
|
|
- if (musicOneSubjectClassPlan.getPaidStudentNum() > musicOneSubjectClassPlan.getExpectedStudentNum()) {
|
|
|
- throw new BizException("乐团该声部人数暂时已满,请稍后再试");
|
|
|
- }
|
|
|
|
|
|
- int count = musicGroupSubjectPlanService.update(musicOneSubjectClassPlan);
|
|
|
- if (count <= 0) {
|
|
|
- throw new BizException("排队人数过多,请重试");
|
|
|
- }
|
|
|
- }
|
|
|
+ if (studentRegistration.getMusicGroupStatus() != StudentMusicGroupStatusEnum.NORMAL) {
|
|
|
+ // 判断之前是否已有订单
|
|
|
+ List<StudentPaymentOrder> oldStudentPaymentOrderList = studentPaymentOrderService.queryByCondition(GroupType.MUSIC,
|
|
|
+ studentRegistration.getMusicGroupId(), studentRegistration.getUserId(), DealStatusEnum.SUCCESS, OrderTypeEnum.APPLY);
|
|
|
+
|
|
|
+ int paidNum = musicOneSubjectClassPlan.getPaidStudentNum() == null ? 0 : musicOneSubjectClassPlan.getPaidStudentNum();
|
|
|
+ int paidZeroNum = musicOneSubjectClassPlan.getPaidZeroNum() == null ? 0 : musicOneSubjectClassPlan.getPaidZeroNum();
|
|
|
+ if ((musicGroup.getCourseViewType().equals(CourseViewTypeEnum.MEMBER_FEE) && !registerPayDto.getBuyCloudTeacher() && StringUtils.isBlank(maintenanceGoodsId))) {
|
|
|
+ if (studentRegistration.getPaymentStatus() != YES) {
|
|
|
+ paidZeroFlag = true;
|
|
|
+ }
|
|
|
+ if (studentRegistration.getNoneNeedCloudTeacher().equals(1) && (oldStudentPaymentOrderList == null || oldStudentPaymentOrderList.size() == 0)) {
|
|
|
+ musicOneSubjectClassPlan.setPaidZeroNum(paidZeroNum + 1);
|
|
|
+ musicOneSubjectClassPlan.setPaidStudentNum(paidNum + 1);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (oldStudentPaymentOrderList == null || oldStudentPaymentOrderList.size() == 0) {
|
|
|
+ musicOneSubjectClassPlan.setPaidStudentNum(paidNum + 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (musicOneSubjectClassPlan.getPaidStudentNum() > musicOneSubjectClassPlan.getExpectedStudentNum()) {
|
|
|
+ throw new BizException("乐团该声部人数暂时已满,请稍后再试");
|
|
|
+ }
|
|
|
+
|
|
|
+ int count = musicGroupSubjectPlanService.update(musicOneSubjectClassPlan);
|
|
|
+ if (count <= 0) {
|
|
|
+ throw new BizException("排队人数过多,请重试");
|
|
|
+ }
|
|
|
+ }
|
|
|
if (paidZeroFlag) {
|
|
|
studentPaymentOrder.setVersion(0);
|
|
|
String code = studentRegistration.getNoneNeedCloudTeacher().equals(1) ? "200" : "205";
|
|
@@ -707,6 +723,53 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
return studentPaymentOrder;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 计算使用优惠券后的每个明细均摊的金额
|
|
|
+ *
|
|
|
+ * @param couponParam 优惠券的信息
|
|
|
+ * @param orderDetailGroupList 订单信息
|
|
|
+ */
|
|
|
+ private void calculateCoupon(Map<String, CouponPayTypeInfo> couponParam,
|
|
|
+ Map<OrderDetailTypeEnum, List<StudentPaymentOrderDetail>> orderDetailGroupList) {
|
|
|
+ List<StudentPaymentOrderDetail> singleTypeList = new ArrayList<>();
|
|
|
+ List<StudentPaymentOrderDetail> allTypeList = new ArrayList<>();
|
|
|
+ //先处理”非全类型券“的数据
|
|
|
+ orderDetailGroupList.forEach((e, list) -> {
|
|
|
+ //根据OrderDetailTypeEnum类型找到对应的券类型,默认全类型
|
|
|
+ String couponDetailCode = CouponDetailTypeEnum.of(e.getCode());
|
|
|
+ //获取本次支付中该类型优惠券的详情,如果该商品没有找到本次支付时选择的优惠券则当作全类型
|
|
|
+ CouponPayTypeInfo couponPayTypeInfo = couponParam.get(couponDetailCode);
|
|
|
+ //全类型券数据后面处理
|
|
|
+ if (Objects.isNull(couponPayTypeInfo) || couponDetailCode.equals(CouponDetailTypeEnum.FULLCOUPON.getCode())) {
|
|
|
+ allTypeList.addAll(list);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ analyzeAmount(couponPayTypeInfo, singleTypeList, list);
|
|
|
+ });
|
|
|
+ List<StudentPaymentOrderDetail> allList = new ArrayList<>();
|
|
|
+ //再处理全类型优惠券数据
|
|
|
+ if (CollectionUtils.isNotEmpty(allTypeList)) {
|
|
|
+ allTypeList.addAll(singleTypeList);
|
|
|
+ analyzeAmount(couponParam.get(CouponDetailTypeEnum.FULLCOUPON.getCode()), allList, allTypeList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 计算分配优惠券金额
|
|
|
+ */
|
|
|
+ private void analyzeAmount(CouponPayTypeInfo couponPayTypeInfo, List<StudentPaymentOrderDetail> resultList,
|
|
|
+ List<StudentPaymentOrderDetail> list) {
|
|
|
+ //获取该优惠券对应的商品的总金额
|
|
|
+ BigDecimal totalAmount = WrapperUtil.sumList(list, StudentPaymentOrderDetail::getPrice);
|
|
|
+ //校验本次优惠券的 ”满额“ 是否大于 该类型的总金额
|
|
|
+ if (couponPayTypeInfo.getCouponAmount().compareTo(totalAmount) <= 0) {
|
|
|
+ List<StudentPaymentOrderDetail> details = studentPaymentOrderDetailService.allocateAmount(list, couponPayTypeInfo.getFaceValue());
|
|
|
+ resultList.addAll(details);
|
|
|
+ } else {
|
|
|
+ throw new BizException("交易失败,请重新选择优惠券!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public StudentRegistration queryByUserIdAndMusicGroupId(Integer userId, String musicGroupId) {
|
|
@@ -775,10 +838,10 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
sysUser.setImToken(register.getToken());
|
|
|
teacherDao.updateUser(sysUser);
|
|
|
} else {
|
|
|
- if(musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){
|
|
|
+ if (musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE) {
|
|
|
//该学员是否在其他的会员团
|
|
|
- boolean hasMemberGroup = studentRegistrationDao.checkHasMemberGroup(musicGroupId,sysUser.getId());
|
|
|
- if(hasMemberGroup){
|
|
|
+ boolean hasMemberGroup = studentRegistrationDao.checkHasMemberGroup(musicGroupId, sysUser.getId());
|
|
|
+ if (hasMemberGroup) {
|
|
|
throw new BizException("操作失败:该学员已在其他系统收费乐团中,不可报名该乐团请联系教务老师");
|
|
|
}
|
|
|
}
|
|
@@ -826,7 +889,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.APPLY);
|
|
|
studentRegistration.setTemporaryCourseFee(studentAddDto.getTemporaryCourseFee());
|
|
|
studentRegistration.setMusicGroupPaymentCalenderId(null);
|
|
|
-
|
|
|
+
|
|
|
//增加报名学生数
|
|
|
musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId, studentRegistration.getSubjectId(), 1);
|
|
|
//汇总金额
|
|
@@ -853,10 +916,10 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
studentDao.update(student);
|
|
|
//studentRegistrationDao.updateCurrentClass(studentRegistration);
|
|
|
imFeignService.update(new ImUserModel(userId.toString(), sysUser.getUsername(), sysUser.getAvatar()));
|
|
|
-
|
|
|
+
|
|
|
//学生报名表
|
|
|
- sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(),new SysUserRoleEnum[]{SECTION_MANAGER},
|
|
|
- null,musicGroup.getEducationalTeacherId(),MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_ADD_STUDENT, musicGroup.getName(), studentRegistration.getName());
|
|
|
+ sendSeoMessageSource.sendSeoMessage(musicGroup.getOrganId(), new SysUserRoleEnum[]{SECTION_MANAGER},
|
|
|
+ null, musicGroup.getEducationalTeacherId(), MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_ADD_STUDENT, musicGroup.getName(), studentRegistration.getName());
|
|
|
return userId;
|
|
|
}
|
|
|
|
|
@@ -1056,7 +1119,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
if (studentPaymentOrder.getStatus().equals(DealStatusEnum.SUCCESS)) {
|
|
|
MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
|
|
|
//支付成功后处理课程、云教练、活动等数据
|
|
|
- studentPaymentOrderDetailService.addOrderDetailTo(studentPaymentOrder,musicGroup,studentRegistration);
|
|
|
+ studentPaymentOrderDetailService.addOrderDetailTo(studentPaymentOrder, musicGroup, studentRegistration);
|
|
|
|
|
|
//插入交易明细
|
|
|
BigDecimal amount = studentPaymentOrder.getActualAmount();
|
|
@@ -1169,7 +1232,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
return studentPaymentOrder;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
@Override
|
|
|
public List<StudentRegistration> findMusicGroupNoClassGroupStudent(String musicGroupId, Integer actualSubjectId) {
|
|
|
//获取所有声部
|
|
@@ -1417,19 +1479,19 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
if (originalPaidNum > 0) {
|
|
|
originalSubjectPlan.setPaidStudentNum(originalPaidNum - 1);
|
|
|
//是否是0元入团
|
|
|
- if(studentRegistration.getNoneNeedCloudTeacher() != null && studentRegistration.getNoneNeedCloudTeacher() == 1){
|
|
|
- originalSubjectPlan.setPaidZeroNum(originalZeroPaidNum - 1);
|
|
|
+ if (studentRegistration.getNoneNeedCloudTeacher() != null && studentRegistration.getNoneNeedCloudTeacher() == 1) {
|
|
|
+ originalSubjectPlan.setPaidZeroNum(originalZeroPaidNum - 1);
|
|
|
}
|
|
|
originalPaidCount = musicGroupSubjectPlanService.update(originalSubjectPlan);
|
|
|
}
|
|
|
MusicGroupSubjectPlan changeSubjectPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(musicGroupId, changeSubjectId);
|
|
|
int changelPaidNum = changeSubjectPlan.getPaidStudentNum() == null ? 0 : changeSubjectPlan.getPaidStudentNum();
|
|
|
changeSubjectPlan.setPaidStudentNum(changelPaidNum + 1);
|
|
|
- if(studentRegistration.getNoneNeedCloudTeacher() != null && studentRegistration.getNoneNeedCloudTeacher() == 1){
|
|
|
- if(changeSubjectPlan.getPaidZeroNum() != null && changeSubjectPlan.getPaidZeroNum() > 0){
|
|
|
- throw new BizException("声部更换失败,当前用户是0元入团,且当前声部已有0元入团学生");
|
|
|
- }
|
|
|
- changeSubjectPlan.setPaidZeroNum(1);
|
|
|
+ if (studentRegistration.getNoneNeedCloudTeacher() != null && studentRegistration.getNoneNeedCloudTeacher() == 1) {
|
|
|
+ if (changeSubjectPlan.getPaidZeroNum() != null && changeSubjectPlan.getPaidZeroNum() > 0) {
|
|
|
+ throw new BizException("声部更换失败,当前用户是0元入团,且当前声部已有0元入团学生");
|
|
|
+ }
|
|
|
+ changeSubjectPlan.setPaidZeroNum(1);
|
|
|
}
|
|
|
int changePaidCount = musicGroupSubjectPlanService.update(changeSubjectPlan);
|
|
|
if (originalPaidCount > 0 && changePaidCount > 0) {
|
|
@@ -1481,8 +1543,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<StudentMusicGroupDto> queryStudentMusicGroupInfo(Integer userId,String musicGroupId) {
|
|
|
- return studentRegistrationDao.queryStudentMusicGroupInfo(userId,musicGroupId);
|
|
|
+ public List<StudentMusicGroupDto> queryStudentMusicGroupInfo(Integer userId, String musicGroupId) {
|
|
|
+ return studentRegistrationDao.queryStudentMusicGroupInfo(userId, musicGroupId);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -1716,28 +1778,28 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
throw new BizException("该学生已设置");
|
|
|
}
|
|
|
MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
|
|
|
- if(musicGroup == null){
|
|
|
+ if (musicGroup == null) {
|
|
|
throw new BizException("乐团信息不存在");
|
|
|
}
|
|
|
- if(musicGroup.getTenantId() == null){
|
|
|
+ if (musicGroup.getTenantId() == null) {
|
|
|
throw new BizException("乐团机构信息异常,请联系管理员");
|
|
|
}
|
|
|
|
|
|
MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId());
|
|
|
int paidNum = musicOneSubjectClassPlan.getPaidStudentNum() == null ? 0 : musicOneSubjectClassPlan.getPaidStudentNum();
|
|
|
int paidZeroNum = musicOneSubjectClassPlan.getPaidZeroNum() == null ? 0 : musicOneSubjectClassPlan.getPaidZeroNum();
|
|
|
- String configValue = sysTenantConfigService.getTenantConfigValue(SysConfigService.MEMBER_GROUP_FEE_STUDENT_NUM,musicGroup.getTenantId());
|
|
|
- if(StringUtils.isNotEmpty(configValue)){
|
|
|
- if(paidZeroNum >= Integer.parseInt(configValue)){
|
|
|
- throw new BizException("每个声部只能有{}个免费入团名额",configValue);
|
|
|
+ String configValue = sysTenantConfigService.getTenantConfigValue(SysConfigService.MEMBER_GROUP_FEE_STUDENT_NUM, musicGroup.getTenantId());
|
|
|
+ if (StringUtils.isNotEmpty(configValue)) {
|
|
|
+ if (paidZeroNum >= Integer.parseInt(configValue)) {
|
|
|
+ throw new BizException("每个声部只能有{}个免费入团名额", configValue);
|
|
|
}
|
|
|
}
|
|
|
- if(!isContinue){
|
|
|
- if (musicOneSubjectClassPlan.getPaidStudentNum() >= musicOneSubjectClassPlan.getExpectedStudentNum()) {
|
|
|
+ if (!isContinue) {
|
|
|
+ if (musicOneSubjectClassPlan.getPaidStudentNum() >= musicOneSubjectClassPlan.getExpectedStudentNum()) {
|
|
|
return new HttpResponseResult<Boolean>(true, HttpStatus.CONTINUE, null, "乐团该声部招生人数已满,是否继续操作?");
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
studentRegistration.setPayingStatus(0);
|
|
|
studentRegistration.setNoneNeedCloudTeacher(1);
|
|
|
studentRegistration.setPaymentStatus(YES);
|
|
@@ -1750,25 +1812,25 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
throw new BizException("订单处理失败,请重试");
|
|
|
}
|
|
|
}*/
|
|
|
-
|
|
|
- List<StudentPaymentOrder> studentPaymentOrderList = studentPaymentOrderService.queryByCondition(GroupType.MUSIC, studentRegistration.getMusicGroupId(), studentRegistration.getUserId(), DealStatusEnum.ING, OrderTypeEnum.APPLY);
|
|
|
-
|
|
|
- List<StudentPaymentOrder> updateList = new ArrayList<StudentPaymentOrder>();
|
|
|
-
|
|
|
- if(studentPaymentOrderList != null && studentPaymentOrderList.size() > 0){
|
|
|
- for(StudentPaymentOrder studentPaymentOrder : studentPaymentOrderList){
|
|
|
- if(StringUtils.equals("205", studentPaymentOrder.getPaymentAccountNo())){
|
|
|
- studentPaymentOrder.setStatus(DealStatusEnum.CLOSE);
|
|
|
- studentPaymentOrder.setMemo("用户未支付");
|
|
|
- updateList.add(studentPaymentOrder);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if(updateList.size() > 0){
|
|
|
- studentPaymentOrderService.batchUpdate(updateList);
|
|
|
- }
|
|
|
-
|
|
|
+
|
|
|
+ List<StudentPaymentOrder> studentPaymentOrderList = studentPaymentOrderService.queryByCondition(GroupType.MUSIC, studentRegistration.getMusicGroupId(), studentRegistration.getUserId(), DealStatusEnum.ING, OrderTypeEnum.APPLY);
|
|
|
+
|
|
|
+ List<StudentPaymentOrder> updateList = new ArrayList<StudentPaymentOrder>();
|
|
|
+
|
|
|
+ if (studentPaymentOrderList != null && studentPaymentOrderList.size() > 0) {
|
|
|
+ for (StudentPaymentOrder studentPaymentOrder : studentPaymentOrderList) {
|
|
|
+ if (StringUtils.equals("205", studentPaymentOrder.getPaymentAccountNo())) {
|
|
|
+ studentPaymentOrder.setStatus(DealStatusEnum.CLOSE);
|
|
|
+ studentPaymentOrder.setMemo("用户未支付");
|
|
|
+ updateList.add(studentPaymentOrder);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (updateList.size() > 0) {
|
|
|
+ studentPaymentOrderService.batchUpdate(updateList);
|
|
|
+ }
|
|
|
+
|
|
|
musicOneSubjectClassPlan.setPaidZeroNum(paidZeroNum + 1);
|
|
|
musicOneSubjectClassPlan.setPaidStudentNum(paidNum + 1);
|
|
|
int count = musicGroupSubjectPlanService.update(musicOneSubjectClassPlan);
|
|
@@ -1780,43 +1842,43 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
|
|
|
@Override
|
|
|
public StudentRegistration getStudentRegister(String musicGroupId, Integer studentId) {
|
|
|
- return studentRegistrationDao.getStudentRegister(musicGroupId,studentId);
|
|
|
+ return studentRegistrationDao.getStudentRegister(musicGroupId, studentId);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
+ @Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public Boolean setCloudTeacherToFailed(StudentRegistration studentRegistration) {
|
|
|
-
|
|
|
- if(studentRegistration.getPayingStatus() != 2){
|
|
|
- throw new BizException("只有'审核中'的记录才能取消审核");
|
|
|
- }
|
|
|
-
|
|
|
- Date date = new Date();
|
|
|
-
|
|
|
- studentRegistration.setPayingStatus(0);
|
|
|
- studentRegistration.setUpdateTime(date);
|
|
|
- update(studentRegistration);
|
|
|
-
|
|
|
- List<StudentPaymentOrder> studentPaymentOrderList = studentPaymentOrderService.queryByCondition(GroupType.MUSIC, studentRegistration.getMusicGroupId(), studentRegistration.getUserId(), DealStatusEnum.ING, OrderTypeEnum.APPLY);
|
|
|
-
|
|
|
- List<StudentPaymentOrder> updateList = new ArrayList<StudentPaymentOrder>();
|
|
|
-
|
|
|
- if(studentPaymentOrderList != null && studentPaymentOrderList.size() > 0){
|
|
|
- for(StudentPaymentOrder studentPaymentOrder : studentPaymentOrderList){
|
|
|
- if(StringUtils.equals("205", studentPaymentOrder.getPaymentAccountNo())){
|
|
|
- studentPaymentOrder.setStatus(DealStatusEnum.CLOSE);
|
|
|
- studentPaymentOrder.setMemo("云教练审核拒绝");
|
|
|
- updateList.add(studentPaymentOrder);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if(updateList.size() > 0){
|
|
|
- studentPaymentOrderService.batchUpdate(updateList);
|
|
|
- }
|
|
|
-
|
|
|
- return true;
|
|
|
- }
|
|
|
+ public Boolean setCloudTeacherToFailed(StudentRegistration studentRegistration) {
|
|
|
+
|
|
|
+ if (studentRegistration.getPayingStatus() != 2) {
|
|
|
+ throw new BizException("只有'审核中'的记录才能取消审核");
|
|
|
+ }
|
|
|
+
|
|
|
+ Date date = new Date();
|
|
|
+
|
|
|
+ studentRegistration.setPayingStatus(0);
|
|
|
+ studentRegistration.setUpdateTime(date);
|
|
|
+ update(studentRegistration);
|
|
|
+
|
|
|
+ List<StudentPaymentOrder> studentPaymentOrderList = studentPaymentOrderService.queryByCondition(GroupType.MUSIC, studentRegistration.getMusicGroupId(), studentRegistration.getUserId(), DealStatusEnum.ING, OrderTypeEnum.APPLY);
|
|
|
+
|
|
|
+ List<StudentPaymentOrder> updateList = new ArrayList<StudentPaymentOrder>();
|
|
|
+
|
|
|
+ if (studentPaymentOrderList != null && studentPaymentOrderList.size() > 0) {
|
|
|
+ for (StudentPaymentOrder studentPaymentOrder : studentPaymentOrderList) {
|
|
|
+ if (StringUtils.equals("205", studentPaymentOrder.getPaymentAccountNo())) {
|
|
|
+ studentPaymentOrder.setStatus(DealStatusEnum.CLOSE);
|
|
|
+ studentPaymentOrder.setMemo("云教练审核拒绝");
|
|
|
+ updateList.add(studentPaymentOrder);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (updateList.size() > 0) {
|
|
|
+ studentPaymentOrderService.batchUpdate(updateList);
|
|
|
+ }
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
public PageInfo<StudentInstrument> queryMusicStudentInstrument(StudentPreRegistrationQueryInfo queryInfo) {
|
|
@@ -1839,22 +1901,22 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public PageInfo<StudentRegisterInstrumentsDetailDto> queryStudentRegisterInstrumentsDetailList(MusicGroupRecordStudentQueryInfo queryInfo) {
|
|
|
- PageInfo<StudentRegisterInstrumentsDetailDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
- Map<String, Object> params = new HashMap<>();
|
|
|
- MapUtil.populateMap(params, queryInfo);
|
|
|
-
|
|
|
- List<StudentRegisterInstrumentsDetailDto> dataList = null;
|
|
|
- int count = studentRegistrationDao.queryStudentRegisterInstrumentsDetailCount(params);
|
|
|
- if (count > 0) {
|
|
|
- pageInfo.setTotal(count);
|
|
|
- params.put("offset", pageInfo.getOffset());
|
|
|
- dataList = studentRegistrationDao.queryStudentRegisterInstrumentsDetailList(params);
|
|
|
- }
|
|
|
- if (count == 0) {
|
|
|
- dataList = new ArrayList<>();
|
|
|
- }
|
|
|
- pageInfo.setRows(dataList);
|
|
|
- return pageInfo;
|
|
|
- }
|
|
|
+ public PageInfo<StudentRegisterInstrumentsDetailDto> queryStudentRegisterInstrumentsDetailList(MusicGroupRecordStudentQueryInfo queryInfo) {
|
|
|
+ PageInfo<StudentRegisterInstrumentsDetailDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ MapUtil.populateMap(params, queryInfo);
|
|
|
+
|
|
|
+ List<StudentRegisterInstrumentsDetailDto> dataList = null;
|
|
|
+ int count = studentRegistrationDao.queryStudentRegisterInstrumentsDetailCount(params);
|
|
|
+ if (count > 0) {
|
|
|
+ pageInfo.setTotal(count);
|
|
|
+ params.put("offset", pageInfo.getOffset());
|
|
|
+ dataList = studentRegistrationDao.queryStudentRegisterInstrumentsDetailList(params);
|
|
|
+ }
|
|
|
+ if (count == 0) {
|
|
|
+ dataList = new ArrayList<>();
|
|
|
+ }
|
|
|
+ pageInfo.setRows(dataList);
|
|
|
+ return pageInfo;
|
|
|
+ }
|
|
|
}
|