|  | @@ -16,6 +16,7 @@ import com.ym.mec.biz.service.*;
 | 
	
		
			
				|  |  |  import com.ym.mec.common.dal.BaseDAO;
 | 
	
		
			
				|  |  |  import com.ym.mec.common.exception.BizException;
 | 
	
		
			
				|  |  |  import com.ym.mec.common.page.PageInfo;
 | 
	
		
			
				|  |  | +import com.ym.mec.common.page.QueryInfo;
 | 
	
		
			
				|  |  |  import com.ym.mec.common.service.IdGeneratorService;
 | 
	
		
			
				|  |  |  import com.ym.mec.common.service.impl.BaseServiceImpl;
 | 
	
		
			
				|  |  |  import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 | 
	
	
		
			
				|  | @@ -25,7 +26,6 @@ import org.slf4j.Logger;
 | 
	
		
			
				|  |  |  import org.slf4j.LoggerFactory;
 | 
	
		
			
				|  |  |  import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  |  import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | -import org.springframework.transaction.annotation.Isolation;
 | 
	
		
			
				|  |  |  import org.springframework.transaction.annotation.Propagation;
 | 
	
		
			
				|  |  |  import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -104,7 +104,7 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  | -    @Transactional(rollbackFor = Exception.class,isolation = Isolation.SERIALIZABLE)
 | 
	
		
			
				|  |  | +    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public Map addGoodsSellOrder(StudentGoodsSell studentGoodsSell) throws Exception {
 | 
	
		
			
				|  |  |          //关闭老订单
 | 
	
		
			
				|  |  |          if(StringUtils.isNotEmpty(studentGoodsSell.getOrderNo())){
 | 
	
	
		
			
				|  | @@ -119,6 +119,8 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
 | 
	
		
			
				|  |  |              if (orderByOrderNo.getBalancePaymentAmount() != null && orderByOrderNo.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
 | 
	
		
			
				|  |  |                  sysUserCashAccountService.updateBalance(orderByOrderNo.getUserId(), orderByOrderNo.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "关闭订单");
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +            studentGoodsSell = studentGoodsSellDao.findByOrderNo(studentGoodsSell.getOrderNo());
 | 
	
		
			
				|  |  | +            studentGoodsSell.setGoodsSellDtos(JSON.parseArray(studentGoodsSell.getGoodsJson(),GoodsSellDto.class));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          Integer studentId = studentGoodsSell.getUserId();
 | 
	
		
			
				|  |  |          List<GoodsSellDto> goodsSellDtos = studentGoodsSell.getGoodsSellDtos();
 | 
	
	
		
			
				|  | @@ -130,13 +132,27 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          studentDao.lockUser(studentId);
 | 
	
		
			
				|  |  |          SysUser student = sysUserFeignService.queryUserById(studentId);
 | 
	
		
			
				|  |  | +        //如果教务老师为空,代表学员自己创建的订单
 | 
	
		
			
				|  |  |          if(studentGoodsSell.getTeacherId() == null){
 | 
	
		
			
				|  |  | -            //获取学员第一个教务老师
 | 
	
		
			
				|  |  | -            studentGoodsSell.setTeacherId(musicGroupDao.getFirstEduTeacherId(studentGoodsSell.getUserId()));
 | 
	
		
			
				|  |  | +            //获取学生关联的所有教务老师列表
 | 
	
		
			
				|  |  | +            List<Integer> stuEducation = studentRepairDao.countStuEducation(studentId);
 | 
	
		
			
				|  |  | +            if (stuEducation != null && stuEducation.size() == 1){
 | 
	
		
			
				|  |  | +                //获取学员乐团关联的教务
 | 
	
		
			
				|  |  | +                MusicGroup musicGroup = musicGroupDao.getStuMusic(studentId);
 | 
	
		
			
				|  |  | +                studentGoodsSell.setTeacherId(stuEducation.get(0));
 | 
	
		
			
				|  |  | +                if(musicGroup != null){
 | 
	
		
			
				|  |  | +                    studentGoodsSell.setCooperationOrganId(musicGroup.getCooperationOrganId());
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }else if(studentGoodsSell.getCooperationOrganId() == null){
 | 
	
		
			
				|  |  | +            //获取教务老师,学员关联的乐团
 | 
	
		
			
				|  |  | +            MusicGroup musicGroup = musicGroupDao.getStuEduMusic(studentId,studentGoodsSell.getTeacherId());
 | 
	
		
			
				|  |  | +            if(musicGroup != null){
 | 
	
		
			
				|  |  | +                studentGoodsSell.setCooperationOrganId(musicGroup.getCooperationOrganId());
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          List<Integer> goodsIds = goodsSellDtos.stream().map(e -> e.getGoodsId()).collect(Collectors.toList());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -//        String[] goodsIds = goodsJson.split(",");
 | 
	
		
			
				|  |  |          Map<Integer, BigDecimal> map = getMap("goods", "id_", "market_price_", goodsIds, Integer.class, BigDecimal.class);
 | 
	
		
			
				|  |  |          for (GoodsSellDto goodsSellDto : goodsSellDtos) {
 | 
	
		
			
				|  |  |              goodsSellDto.setGoodsPrice(map.get(goodsSellDto.getGoodsId()));
 | 
	
	
		
			
				|  | @@ -226,7 +242,7 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  | -    @Transactional(rollbackFor = Exception.class,isolation = Isolation.SERIALIZABLE)
 | 
	
		
			
				|  |  | +    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public Map studentPaymentGoodsOrder(Integer goodsSellId) throws Exception {
 | 
	
		
			
				|  |  |          StudentGoodsSell studentGoodsSell = studentGoodsSellDao.get(goodsSellId);
 | 
	
		
			
				|  |  |          Integer studentId = studentGoodsSell.getUserId();
 | 
	
	
		
			
				|  | @@ -691,6 +707,31 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    public PageInfo<BasicUserDto> queryEduStudents(QueryInfo queryInfo) {
 | 
	
		
			
				|  |  | +        SysUser sysUser = sysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  | +        if (sysUser == null) {
 | 
	
		
			
				|  |  | +            throw new BizException("请登录");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        PageInfo<BasicUserDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 | 
	
		
			
				|  |  | +        Map<String, Object> params = new HashMap<>();
 | 
	
		
			
				|  |  | +        MapUtil.populateMap(params, queryInfo);
 | 
	
		
			
				|  |  | +        params.put("teacherId",sysUser.getId());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        List<BasicUserDto> dataList = null;
 | 
	
		
			
				|  |  | +        int count = studentRepairDao.countEduStudents(params);
 | 
	
		
			
				|  |  | +        if (count > 0) {
 | 
	
		
			
				|  |  | +            pageInfo.setTotal(count);
 | 
	
		
			
				|  |  | +            params.put("offset", pageInfo.getOffset());
 | 
	
		
			
				|  |  | +            dataList = studentRepairDao.queryEduStudents(params);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if (count == 0) {
 | 
	
		
			
				|  |  | +            dataList = new ArrayList<>();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        pageInfo.setRows(dataList);
 | 
	
		
			
				|  |  | +        return pageInfo;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      private void saveSellOrder(String orderNo){
 | 
	
		
			
				|  |  |          StudentPaymentOrder orderByOrderNo = studentPaymentOrderService.findOrderByOrderNo(orderNo);
 | 
	
		
			
				|  |  |          StudentGoodsSell studentGoodsSell = studentGoodsSellDao.findByOrderNo(orderNo);
 | 
	
	
		
			
				|  | @@ -728,6 +769,8 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
 | 
	
		
			
				|  |  |              sellOrder.setPaymentChannel(orderByOrderNo.getPaymentChannel());
 | 
	
		
			
				|  |  |              sellOrder.setMerNo(orderByOrderNo.getMerNos());
 | 
	
		
			
				|  |  |              sellOrder.setSellTime(orderByOrderNo.getPayTime());
 | 
	
		
			
				|  |  | +            sellOrder.setEduTeacherId(studentGoodsSell.getTeacherId());
 | 
	
		
			
				|  |  | +            sellOrder.setCooperationOrganId(studentGoodsSell.getCooperationOrganId());
 | 
	
		
			
				|  |  |              sellOrders.add(sellOrder);
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |          if(sellOrders.size() > 0){
 |