|
|
- package com.ruoyi.model.controller;
-
- import java.io.IOException;
- import java.util.ArrayList;
- 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;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.PutMapping;
- import org.springframework.web.bind.annotation.DeleteMapping;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import com.ruoyi.common.annotation.Log;
- import com.ruoyi.common.core.controller.BaseController;
- import com.ruoyi.common.core.domain.AjaxResult;
- import com.ruoyi.common.enums.BusinessType;
- import com.ruoyi.common.utils.poi.ExcelUtil;
- import com.ruoyi.common.core.page.TableDataInfo;
-
- /**
- * 伴宠师认证Controller
- *
- * @author ruoyi
- * @date 2025-03-27
- */
- @RestController
- @RequestMapping("/model/AppletUsersTeacher")
- public class AppletUsersTeacherController extends BaseController
- {
- @Autowired
- private IAppletUsersTeacherService appletUsersTeacherService;
- @Autowired
- private IAppUsersService appUsersService;
- @Autowired
- private AppletAnswerBaseMapper appletAnswerBaseMapper;
- @Autowired
- private AppletAnswerTrainMapper appletAnswerTrainMapper;
- @Autowired
- 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)
- {
- // 构建查询条件
- 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());
-
- // 处理答题状态筛选
- 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);
- }
- }
- }
- }
-
- // 按创建时间倒序排列
- queryWrapper.orderByDesc(AppletUsersTeacher::getCreateTime);
-
- // 分页查询
- startPage();
- List<AppletUsersTeacher> list = appletUsersTeacherService.list(queryWrapper);
-
- return getDataTable(list);
- }
-
- /**
- * 导出伴宠师认证列表
- */
- @PreAuthorize("@ss.hasPermi('model:AppletUsersTeacher:export')")
- @Log(title = "伴宠师认证", businessType = BusinessType.EXPORT)
- @PostMapping("/export")
- public void export(HttpServletResponse response, AppletUsersTeacher appletUsersTeacher) throws IOException {
- List<AppletUsersTeacher> list = appletUsersTeacherService.selectAppletUsersTeacherList(appletUsersTeacher);
- ExcelUtil<AppletUsersTeacher> util = new ExcelUtil<AppletUsersTeacher>(AppletUsersTeacher.class);
- util.exportExcel(response, list, "伴宠师认证数据");
- }
-
- /**
- * 获取伴宠师认证详细信息
- */
- @PreAuthorize("@ss.hasPermi('model:AppletUsersTeacher:query')")
- @GetMapping(value = "/{id}")
- public AjaxResult getInfo(@PathVariable("id") Long id)
- {
- return success(appletUsersTeacherService.selectAppletUsersTeacherById(id));
- }
-
- /**
- * 新增伴宠师认证
- */
- @PreAuthorize("@ss.hasPermi('model:AppletUsersTeacher:add')")
- @Log(title = "伴宠师认证", businessType = BusinessType.INSERT)
- @PostMapping
- public AjaxResult add(@RequestBody AppletUsersTeacher appletUsersTeacher)
- {
- return toAjax(appletUsersTeacherService.insertAppletUsersTeacher(appletUsersTeacher));
- }
-
- /**
- * 修改伴宠师认证
- */
- @PreAuthorize("@ss.hasPermi('model:AppletUsersTeacher:edit')")
- @Log(title = "伴宠师认证", businessType = BusinessType.UPDATE)
- @PutMapping
- public AjaxResult edit(@RequestBody AppletUsersTeacher appletUsersTeacher, String action)
- {
- // //如果审核状态为通过status = 1
- // if(appletUsersTeacher.getStatus() == 1){
- // //审核通过,修改用户表
- // AppUsers appUsers = appUsersService.selectAppUsersByUserId(appletUsersTeacher.getUserId());
- // //用户不存在
- // if(appUsers == null){
- // return AjaxResult.error("用户不存在");
- // }
- // appUsers.setUserBcs(1);
- // appUsers.setUserBcsRole(1);
- // appUsersService.updateAppUsers(appUsers);
- // }
- // return AjaxResult.success();
-
- if ("check".equals(action) && appletUsersTeacher.getPhone() != null){
- if (appletUsersTeacher.getStatus() == 1){//通过
- AliyunSmsUtils.sendBcshJoinSuccessSMS(appletUsersTeacher.getPhone());
- }
- if (appletUsersTeacher.getStatus() == 2){//驳回
- AliyunSmsUtils.sendBcshJoinFailSMS(appletUsersTeacher.getPhone());
- }
- }
-
- return toAjax(appletUsersTeacherService.updateAppletUsersTeacher(appletUsersTeacher));
- }
-
- /**
- * 删除伴宠师认证
- */
- @PreAuthorize("@ss.hasPermi('model:AppletUsersTeacher:remove')")
- @Log(title = "伴宠师认证", businessType = BusinessType.DELETE)
- @DeleteMapping("/{ids}")
- public AjaxResult remove(@PathVariable Long[] ids)
- {
- return toAjax(appletUsersTeacherService.deleteAppletUsersTeacherByIds(ids));
- }
- }
|