|
@@ -1,17 +1,28 @@
|
|
|
package com.xjrsoft.module.textbook.service.impl;
|
|
|
|
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import cn.dev33.satoken.stp.StpUtil;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.github.yulichang.base.MPJBaseServiceImpl;
|
|
|
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
+import com.xjrsoft.common.exception.MyException;
|
|
|
+import com.xjrsoft.module.base.entity.BaseClass;
|
|
|
+import com.xjrsoft.module.base.entity.BaseSemester;
|
|
|
+import com.xjrsoft.module.base.service.IBaseSemesterService;
|
|
|
+import com.xjrsoft.module.student.entity.BaseStudent;
|
|
|
+import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
|
|
|
+import com.xjrsoft.module.teacher.entity.AttendanceRecord;
|
|
|
+import com.xjrsoft.module.teacher.entity.XjrUser;
|
|
|
+import com.xjrsoft.module.teacher.mapper.XjrUserMapper;
|
|
|
+import com.xjrsoft.module.textbook.dto.TextbookClaimStudentConfirmDto;
|
|
|
import com.xjrsoft.module.textbook.entity.TextbookStudentClaim;
|
|
|
import com.xjrsoft.module.textbook.mapper.TextbookStudentClaimMapper;
|
|
|
import com.xjrsoft.module.textbook.service.ITextbookStudentClaimService;
|
|
|
+import com.xjrsoft.module.textbook.vo.TextbookClaimStudentConfirmVo;
|
|
|
+import com.xjrsoft.module.textbook.vo.TextbookClaimVO;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
import java.util.List;
|
|
|
-import java.util.Objects;
|
|
|
-import java.util.stream.Collectors;
|
|
|
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
|
|
|
/**
|
|
|
* @title: 学生教材认领记录
|
|
@@ -22,4 +33,60 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
@Service
|
|
|
@AllArgsConstructor
|
|
|
public class TextbookStudentClaimServiceImpl extends MPJBaseServiceImpl<TextbookStudentClaimMapper, TextbookStudentClaim> implements ITextbookStudentClaimService {
|
|
|
+
|
|
|
+ private final XjrUserMapper xjrUserMapper;
|
|
|
+
|
|
|
+ private final TextbookStudentClaimMapper textbookStudentClaimMapper;
|
|
|
+ private final IBaseSemesterService baseSemesterService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public TextbookClaimStudentConfirmVo getStudentConfirmList(TextbookClaimStudentConfirmDto dto) {
|
|
|
+ //判断输入的合法性
|
|
|
+ if(ObjectUtil.isNull(dto.getBaseSemesterId()) || dto.getBaseSemesterId() <= 0){
|
|
|
+ throw new MyException("请选择学期");
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取当前登录学生的信息
|
|
|
+ MPJLambdaWrapper<XjrUser> queryUser = new MPJLambdaWrapper<>();
|
|
|
+ queryUser
|
|
|
+ .selectAs(XjrUser::getName, TextbookClaimStudentConfirmVo::getStudentName)
|
|
|
+ .selectAs(BaseStudent::getStudentId, TextbookClaimStudentConfirmVo::getStudentId)
|
|
|
+ .selectAs(BaseClass::getName, TextbookClaimStudentConfirmVo::getClassCN)
|
|
|
+ .leftJoin(BaseStudent.class, BaseStudent::getUserId, XjrUser::getId)
|
|
|
+ .leftJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, XjrUser::getId)
|
|
|
+ .leftJoin(BaseClass.class, BaseClass::getId, BaseStudentSchoolRoll::getClassId)
|
|
|
+ .eq(XjrUser::getId, StpUtil.getLoginIdAsLong())
|
|
|
+ .disableSubLogicDel()
|
|
|
+ .orderByDesc(AttendanceRecord::getId);
|
|
|
+ TextbookClaimStudentConfirmVo textbookClaimStudentConfirmVo = xjrUserMapper.selectJoinOne(TextbookClaimStudentConfirmVo.class, queryUser);
|
|
|
+ if(ObjectUtil.isNull(textbookClaimStudentConfirmVo)){
|
|
|
+ throw new MyException("未找到该学生的相关信息");
|
|
|
+ }
|
|
|
+
|
|
|
+ //根据学期id查出学期名称
|
|
|
+ BaseSemester baseSemester = baseSemesterService.getById(dto.getBaseSemesterId());
|
|
|
+ if(ObjectUtil.isNull(baseSemester)){
|
|
|
+ throw new MyException("学期不存在");
|
|
|
+ }
|
|
|
+ textbookClaimStudentConfirmVo.setBaseSemesterCN(baseSemester.getName());
|
|
|
+
|
|
|
+ //查出整个学生教材认领记录集合
|
|
|
+ /*MPJLambdaWrapper<TextbookStudentClaim> queryTextbookClaimList = new MPJLambdaWrapper<>();
|
|
|
+ queryTextbookClaimList
|
|
|
+ .selectAs(TextbookStudentClaim::getId, TextbookClaimVO::getTextbookStudentClaimId)
|
|
|
+ .selectFunc(() ->"t1.price * t1.discount", TextbookClaimVO::getDiscountPrice)
|
|
|
+ .selectFunc("(%f * %f", arg -> arg.accept(Textbook::getPrice, Textbook::getDiscount), TextbookClaimVO::getDiscountPrice)
|
|
|
+ .select(TextbookStudentClaim.class, x -> VoToColumnUtil.fieldsToColumns(TextbookClaimVO.class).contains(x.getProperty()))
|
|
|
+ .select(Textbook.class, x -> VoToColumnUtil.fieldsToColumns(TextbookClaimVO.class).contains(x.getProperty()))
|
|
|
+ .leftJoin(Textbook.class, Textbook::getId, TextbookStudentClaim::getTextbookId)
|
|
|
+ .eq(TextbookStudentClaim::getStudentUserId, StpUtil.getLoginIdAsLong())
|
|
|
+ .eq(TextbookStudentClaim::getBaseSemesterId, dto.getBaseSemesterId())
|
|
|
+ .disableSubLogicDel()
|
|
|
+ .orderByDesc(AttendanceRecord::getId);
|
|
|
+ List<TextbookClaimVO> textbookClaimVOList = this.selectJoinList(TextbookClaimVO.class, queryTextbookClaimList);
|
|
|
+ textbookClaimStudentConfirmVo.setTextbookClaimVoList(textbookClaimVOList);*/
|
|
|
+ List<TextbookClaimVO> textbookClaimVOList = textbookStudentClaimMapper.queryTextbookClaimList(dto.getBaseSemesterId(),StpUtil.getLoginIdAsLong());
|
|
|
+ textbookClaimStudentConfirmVo.setTextbookClaimVoList(textbookClaimVOList);
|
|
|
+ return textbookClaimStudentConfirmVo;
|
|
|
+ }
|
|
|
}
|