|
|
@ -6,11 +6,15 @@ import java.util.List; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.ruoyi.common.core.sms.AliyunSmsUtils; |
|
|
|
import com.ruoyi.common.utils.SmsUtils; |
|
|
|
import com.ruoyi.common.utils.StringUtils; |
|
|
|
import com.ruoyi.model.domain.*; |
|
|
|
import com.ruoyi.model.mapper.AppletAnswerBaseMapper; |
|
|
|
import com.ruoyi.model.mapper.AppletAnswerTrainMapper; |
|
|
|
import com.ruoyi.model.mapper.AppletQuestionMapper; |
|
|
|
import com.ruoyi.model.service.*; |
|
|
|
import org.springframework.security.access.prepost.PreAuthorize; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
@ -43,64 +47,168 @@ public class AppletUsersTeacherController extends BaseController |
|
|
|
private IAppletUsersTeacherService appletUsersTeacherService; |
|
|
|
@Autowired |
|
|
|
private IAppUsersService appUsersService; |
|
|
|
|
|
|
|
//用户培训考核答案 |
|
|
|
@Autowired |
|
|
|
private IAppletAnswerTrainService appletAnswerTrainService; |
|
|
|
|
|
|
|
//用户培训考核答案 |
|
|
|
private AppletAnswerBaseMapper appletAnswerBaseMapper; |
|
|
|
@Autowired |
|
|
|
private IAppletAnswerBaseService appletAnswerBaseService; |
|
|
|
//题目信息 |
|
|
|
private AppletAnswerTrainMapper appletAnswerTrainMapper; |
|
|
|
@Autowired |
|
|
|
private IAppletQuestionService appletQuestionService; |
|
|
|
private AppletQuestionMapper appletQuestionMapper; |
|
|
|
/** |
|
|
|
* 查询伴宠师认证列表(原方法已注释) |
|
|
|
*/ |
|
|
|
// @PreAuthorize("@ss.hasPermi('model:AppletUsersTeacher:list')") |
|
|
|
// @GetMapping("/list") |
|
|
|
// public TableDataInfo list(AppletUsersTeacher appletUsersTeacher, String answerStatus) |
|
|
|
// { |
|
|
|
// if (StringUtils.isNotBlank(answerStatus)){ |
|
|
|
// appletUsersTeacher.setAnswerStatus(answerStatus); |
|
|
|
// |
|
|
|
// // 获取培训类型的题目ID |
|
|
|
// LambdaQueryWrapper<AppletQuestion> questionWrapper = new LambdaQueryWrapper<>(); |
|
|
|
// questionWrapper.eq(AppletQuestion::getType, "培训"); |
|
|
|
// List<AppletQuestion> questions = appletQuestionMapper.selectList(questionWrapper); |
|
|
|
// List<Long> questionIds = questions.stream().map(AppletQuestion::getId).collect(Collectors.toList()); |
|
|
|
// |
|
|
|
// if (!questionIds.isEmpty()) { |
|
|
|
// // 获取基础答题的用户ID |
|
|
|
// QueryWrapper<AppletAnswerBase> baseWrapper = new QueryWrapper<>(); |
|
|
|
// baseWrapper.in("question_id", questionIds); |
|
|
|
// List<AppletAnswerBase> baseAnswers = appletAnswerBaseMapper.selectList(baseWrapper); |
|
|
|
// List<Long> baseUserIds = baseAnswers.stream().map(AppletAnswerBase::getUserId).distinct().collect(Collectors.toList()); |
|
|
|
// |
|
|
|
// // 获取培训答题的用户ID |
|
|
|
// QueryWrapper<AppletAnswerTrain> trainWrapper = new QueryWrapper<>(); |
|
|
|
// trainWrapper.in("question_id", questionIds); |
|
|
|
// List<AppletAnswerTrain> trainAnswers = appletAnswerTrainMapper.selectList(trainWrapper); |
|
|
|
// List<Long> trainUserIds = trainAnswers.stream().map(AppletAnswerTrain::getUserId).distinct().collect(Collectors.toList()); |
|
|
|
// |
|
|
|
// List<Long> userIds = new ArrayList<>(); |
|
|
|
// if ("1".equals(answerStatus)) { |
|
|
|
// // 已完成答题:取交集(同时在基础答题和培训答题中的用户) |
|
|
|
// userIds = baseUserIds.stream() |
|
|
|
// .filter(trainUserIds::contains) |
|
|
|
// .collect(Collectors.toList()); |
|
|
|
// } else if ("0".equals(answerStatus)) { |
|
|
|
// // 未完成答题:取已完成答题的用户ID,用于NOT IN查询 |
|
|
|
// userIds = baseUserIds.stream() |
|
|
|
// .filter(trainUserIds::contains) |
|
|
|
// .collect(Collectors.toList()); |
|
|
|
// } |
|
|
|
// |
|
|
|
// appletUsersTeacher.setUserIds(userIds); |
|
|
|
// } |
|
|
|
// } |
|
|
|
// |
|
|
|
// startPage(); |
|
|
|
// List<AppletUsersTeacher> list = appletUsersTeacherService.selectAppletUsersTeacherList(appletUsersTeacher); |
|
|
|
// //获取用户信息 |
|
|
|
//// List<AppletUsersTeacher> listVo = new ArrayList<>(); |
|
|
|
//// for (AppletUsersTeacher teacher : list) { |
|
|
|
//// |
|
|
|
//// if (StringUtils.isNotBlank(answerStatus)){ |
|
|
|
//// |
|
|
|
//// int i = count + count1; |
|
|
|
//// if (i > 0 && "1".equals(answerStatus) || |
|
|
|
//// i == 0 && "0".equals(answerStatus)){ |
|
|
|
//// listVo.add(teacher); |
|
|
|
//// } |
|
|
|
//// } else { |
|
|
|
//// listVo.add(teacher); |
|
|
|
//// } |
|
|
|
//// |
|
|
|
//// AppUsers appUsers = appUsersService.selectAppUsersByUserId(teacher.getUserId()); |
|
|
|
//// if(appUsers != null){ |
|
|
|
//// teacher.setUserName(appUsers.getUserName()); |
|
|
|
//// } |
|
|
|
//// |
|
|
|
//// } |
|
|
|
// return getDataTable(list); |
|
|
|
// } |
|
|
|
|
|
|
|
/** |
|
|
|
* 查询伴宠师认证列表 |
|
|
|
* 查询伴宠师认证列表(使用MyBatis Plus) |
|
|
|
*/ |
|
|
|
@PreAuthorize("@ss.hasPermi('model:AppletUsersTeacher:list')") |
|
|
|
@GetMapping("/list") |
|
|
|
public TableDataInfo list(AppletUsersTeacher appletUsersTeacher, String answerStatus) |
|
|
|
{ |
|
|
|
startPage(); |
|
|
|
List<AppletUsersTeacher> list = appletUsersTeacherService.selectAppletUsersTeacherList(appletUsersTeacher); |
|
|
|
//获取用户信息 |
|
|
|
List<AppletUsersTeacher> listVo = new ArrayList<>(); |
|
|
|
for (AppletUsersTeacher teacher : list) { |
|
|
|
|
|
|
|
if (StringUtils.isNotBlank(answerStatus)){ |
|
|
|
List<Long> ids = appletQuestionService.lambdaQuery() |
|
|
|
.eq(AppletQuestion::getType, "培训") |
|
|
|
.select(AppletQuestion::getId) |
|
|
|
.list() |
|
|
|
.stream().map(AppletQuestion::getId) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
|
|
|
|
Integer count = appletAnswerBaseService.lambdaQuery() |
|
|
|
.in(AppletAnswerBase::getQuestionId, ids) |
|
|
|
.eq(AppletAnswerBase::getUserId, teacher.getUserId()) |
|
|
|
.count(); |
|
|
|
|
|
|
|
Integer count1 = appletAnswerTrainService.lambdaQuery() |
|
|
|
.in(AppletAnswerTrain::getQuestionId, ids) |
|
|
|
.eq(AppletAnswerTrain::getUserId, teacher.getUserId()) |
|
|
|
.count(); |
|
|
|
// 构建查询条件 |
|
|
|
LambdaQueryWrapper<AppletUsersTeacher> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
|
|
|
// 基本查询条件 |
|
|
|
queryWrapper.eq(appletUsersTeacher.getUserId() != null, AppletUsersTeacher::getUserId, appletUsersTeacher.getUserId()) |
|
|
|
.like(StringUtils.isNotBlank(appletUsersTeacher.getName()), AppletUsersTeacher::getName, appletUsersTeacher.getName()) |
|
|
|
.like(StringUtils.isNotBlank(appletUsersTeacher.getIdCard()), AppletUsersTeacher::getIdCard, appletUsersTeacher.getIdCard()) |
|
|
|
.eq(appletUsersTeacher.getSex() != null, AppletUsersTeacher::getSex, appletUsersTeacher.getSex()) |
|
|
|
.like(StringUtils.isNotBlank(appletUsersTeacher.getPhone()), AppletUsersTeacher::getPhone, appletUsersTeacher.getPhone()) |
|
|
|
.eq(StringUtils.isNotBlank(appletUsersTeacher.getExperience()), AppletUsersTeacher::getExperience, appletUsersTeacher.getExperience()) |
|
|
|
.eq(appletUsersTeacher.getIsHave() != null, AppletUsersTeacher::getIsHave, appletUsersTeacher.getIsHave()) |
|
|
|
.eq(appletUsersTeacher.getPetType() != null, AppletUsersTeacher::getPetType, appletUsersTeacher.getPetType()) |
|
|
|
.eq(appletUsersTeacher.getStatus() != null, AppletUsersTeacher::getStatus, appletUsersTeacher.getStatus()) |
|
|
|
.eq(StringUtils.isNotBlank(appletUsersTeacher.getImages()), AppletUsersTeacher::getImages, appletUsersTeacher.getImages()) |
|
|
|
.eq(StringUtils.isNotBlank(appletUsersTeacher.getArea()), AppletUsersTeacher::getArea, appletUsersTeacher.getArea()) |
|
|
|
.eq(StringUtils.isNotBlank(appletUsersTeacher.getAddress()), AppletUsersTeacher::getAddress, appletUsersTeacher.getAddress()) |
|
|
|
.eq(StringUtils.isNotBlank(appletUsersTeacher.getLongitude()), AppletUsersTeacher::getLongitude, appletUsersTeacher.getLongitude()) |
|
|
|
.eq(StringUtils.isNotBlank(appletUsersTeacher.getLatitude()), AppletUsersTeacher::getLatitude, appletUsersTeacher.getLatitude()) |
|
|
|
.eq(appletUsersTeacher.getAge() != null, AppletUsersTeacher::getAge, appletUsersTeacher.getAge()) |
|
|
|
.eq(StringUtils.isNotBlank(appletUsersTeacher.getLicense()), AppletUsersTeacher::getLicense, appletUsersTeacher.getLicense()) |
|
|
|
.eq(StringUtils.isNotBlank(appletUsersTeacher.getUserBrief()), AppletUsersTeacher::getUserBrief, appletUsersTeacher.getUserBrief()) |
|
|
|
.eq(appletUsersTeacher.getThumbsUp() != null, AppletUsersTeacher::getThumbsUp, appletUsersTeacher.getThumbsUp()) |
|
|
|
.eq(StringUtils.isNotBlank(appletUsersTeacher.getReason()), AppletUsersTeacher::getReason, appletUsersTeacher.getReason()); |
|
|
|
|
|
|
|
int i = count + count1; |
|
|
|
if (i > 0 && "1".equals(answerStatus) || |
|
|
|
i == 0 && "0".equals(answerStatus)){ |
|
|
|
listVo.add(teacher); |
|
|
|
// 处理答题状态筛选 |
|
|
|
if (StringUtils.isNotBlank(answerStatus)) { |
|
|
|
// 获取培训类型的题目ID |
|
|
|
LambdaQueryWrapper<AppletQuestion> questionWrapper = new LambdaQueryWrapper<>(); |
|
|
|
questionWrapper.eq(AppletQuestion::getType, "培训"); |
|
|
|
List<AppletQuestion> questions = appletQuestionMapper.selectList(questionWrapper); |
|
|
|
List<Long> questionIds = questions.stream().map(AppletQuestion::getId).collect(Collectors.toList()); |
|
|
|
|
|
|
|
if (!questionIds.isEmpty()) { |
|
|
|
// 获取基础答题的用户ID |
|
|
|
LambdaQueryWrapper<AppletAnswerBase> baseWrapper = new LambdaQueryWrapper<>(); |
|
|
|
baseWrapper.in(AppletAnswerBase::getQuestionId, questionIds); |
|
|
|
List<AppletAnswerBase> baseAnswers = appletAnswerBaseMapper.selectList(baseWrapper); |
|
|
|
List<Long> baseUserIds = baseAnswers.stream().map(AppletAnswerBase::getUserId).distinct().collect(Collectors.toList()); |
|
|
|
|
|
|
|
// 获取培训答题的用户ID |
|
|
|
LambdaQueryWrapper<AppletAnswerTrain> trainWrapper = new LambdaQueryWrapper<>(); |
|
|
|
trainWrapper.in(AppletAnswerTrain::getQuestionId, questionIds); |
|
|
|
List<AppletAnswerTrain> trainAnswers = appletAnswerTrainMapper.selectList(trainWrapper); |
|
|
|
List<Long> trainUserIds = trainAnswers.stream().map(AppletAnswerTrain::getUserId).distinct().collect(Collectors.toList()); |
|
|
|
|
|
|
|
List<Long> userIds = new ArrayList<>(); |
|
|
|
if ("1".equals(answerStatus)) { |
|
|
|
// 已完成答题:取交集(同时在基础答题和培训答题中的用户) |
|
|
|
userIds = baseUserIds.stream() |
|
|
|
.filter(trainUserIds::contains) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
if (!userIds.isEmpty()) { |
|
|
|
queryWrapper.in(AppletUsersTeacher::getUserId, userIds); |
|
|
|
} else { |
|
|
|
// 如果没有符合条件的用户,返回空结果 |
|
|
|
queryWrapper.eq(AppletUsersTeacher::getId, -1L); |
|
|
|
} |
|
|
|
} else if ("0".equals(answerStatus)) { |
|
|
|
// 未完成答题:排除已完成答题的用户 |
|
|
|
userIds = baseUserIds.stream() |
|
|
|
.filter(trainUserIds::contains) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
if (!userIds.isEmpty()) { |
|
|
|
queryWrapper.notIn(AppletUsersTeacher::getUserId, userIds); |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
listVo.add(teacher); |
|
|
|
} |
|
|
|
|
|
|
|
AppUsers appUsers = appUsersService.selectAppUsersByUserId(teacher.getUserId()); |
|
|
|
if(appUsers != null){ |
|
|
|
teacher.setUserName(appUsers.getUserName()); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
return getDataTable(listVo); |
|
|
|
|
|
|
|
// 按创建时间倒序排列 |
|
|
|
queryWrapper.orderByDesc(AppletUsersTeacher::getCreateTime); |
|
|
|
|
|
|
|
// 分页查询 |
|
|
|
startPage(); |
|
|
|
List<AppletUsersTeacher> list = appletUsersTeacherService.list(queryWrapper); |
|
|
|
|
|
|
|
return getDataTable(list); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|