xuhy
2025-11-10 e262c1ae2741c56a9e6162ead1b93419abfdfa8e
Merge remote-tracking branch 'origin/master'
4个文件已添加
3个文件已修改
277 ■■■■■ 已修改文件
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/ChildcareController.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/PartyBuildingController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/PensionController.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/QuestionnaireController.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/dto/SaveTQuestionnaireDto.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TQuestionnaire.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TQuestionnaireStem.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/ChildcareController.java
New file
@@ -0,0 +1,45 @@
package com.ruoyi.web.controller.api;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.model.TChildcareServices;
import com.ruoyi.system.service.TChildcareServicesService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping("/childcare")
@Api(tags = "托育模块")
public class ChildcareController {
    private final TChildcareServicesService childcareServicesService;
    private final TokenService tokenService;
    public ChildcareController(TChildcareServicesService childcareServicesService, TokenService tokenService) {
        this.childcareServicesService = childcareServicesService;
        this.tokenService = tokenService;
    }
    // 添加托育模块
    @PostMapping("/addChildcare")
    @ApiOperation(value = "添加托育服务")
    public R<String> addChildcare(@RequestBody TChildcareServices tChildcareServices) {
        String userId = tokenService.getLoginUserApplet().getUserId();
        tChildcareServices.setAppUserId(userId);
        boolean save = childcareServicesService.save(tChildcareServices);
        if (save) {
            return R.ok("添加成功");
        }
        return R.fail("添加失败");
    }
}
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/PartyBuildingController.java
@@ -1,11 +1,8 @@
package com.ruoyi.web.controller.api;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.dto.IdDto;
import com.ruoyi.system.model.TBanner;
import com.ruoyi.system.model.TPartyBuilding;
import com.ruoyi.system.query.PartyBuildingListQuery;
import com.ruoyi.system.service.TPartyBuildingService;
@@ -13,8 +10,6 @@
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Slf4j
@RestController
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/PensionController.java
New file
@@ -0,0 +1,75 @@
package com.ruoyi.web.controller.api;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.BaseModel;
import com.ruoyi.common.core.domain.BasePage;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.model.TAssistedDining;
import com.ruoyi.system.model.THelpNeeds;
import com.ruoyi.system.model.TPartyBuilding;
import com.ruoyi.system.query.AssistedDiningListQuery;
import com.ruoyi.system.service.TAssistedDiningService;
import com.ruoyi.system.service.THelpNeedsService;
import com.ruoyi.system.service.TPartyBuildingService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
@Slf4j
@RestController
@RequestMapping("/pension")
@Api(tags = "养老服务")
public class PensionController {
    private final TAssistedDiningService tAssistedDiningService;
    private final THelpNeedsService tHelpNeedsService;
    private final TokenService tokenService;
    public PensionController(TAssistedDiningService tAssistedDiningService, THelpNeedsService tHelpNeedsService, TokenService tokenService) {
        this.tAssistedDiningService = tAssistedDiningService;
        this.tHelpNeedsService = tHelpNeedsService;
        this.tokenService = tokenService;
    }
    @PostMapping("/getAssistedDiningList")
    @ApiOperation(value = "养老服务--助餐",response = TAssistedDining.class)
    public R<PageInfo<TAssistedDining>> getAssistedDiningList(@RequestBody AssistedDiningListQuery query) {
        PageInfo<TAssistedDining> pageInfo = tAssistedDiningService.pageList(query);
        return R.ok(pageInfo);
    }
    @PostMapping("/getAssistedDiningDetail/{id}")
    @ApiOperation(value = "养老服务--助餐详情")
    public R<TAssistedDining> getAssistedDiningDetail(@PathVariable String id) {
        TAssistedDining tAssistedDining = tAssistedDiningService.getById(id);
        return R.ok(tAssistedDining);
    }
    @PostMapping("/getHelpNeedsList")
    @ApiOperation(value = "养老服务--助需",response = TPartyBuilding.class)
    public R<Page<THelpNeeds>> getHelpNeedsList(@RequestBody BasePage basePage) {
        String userId = tokenService.getLoginUserApplet().getUserId();
        Page<THelpNeeds> page = new Page<>(basePage.getPageNum(), basePage.getPageSize());
        Page<THelpNeeds> helpNeedsPage = tHelpNeedsService.page(page, Wrappers.<THelpNeeds>lambdaQuery().eq(THelpNeeds::getAppUserId, userId).orderByDesc(BaseModel::getCreateTime));
        return R.ok(helpNeedsPage);
    }
    @PostMapping("/addHelpNeeds")
    @ApiOperation(value = "养老服务--添加助需")
    public R<String> addHelpNeeds(@RequestBody THelpNeeds tHelpNeeds) {
        String userId = tokenService.getLoginUserApplet().getUserId();
        tHelpNeeds.setAppUserId(userId);
        boolean save = tHelpNeedsService.save(tHelpNeeds);
        if (save) {
            return R.ok("添加成功");
        }
        return R.fail("添加失败");
    }
}
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/QuestionnaireController.java
New file
@@ -0,0 +1,115 @@
package com.ruoyi.web.controller.api;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.SaveTQuestionnaireDto;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.PartyBuildingListQuery;
import com.ruoyi.system.service.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@RestController
@RequestMapping("/questionnaire")
@Api(tags = "问卷调查")
public class QuestionnaireController {
    private final TQuestionnaireService questionnaireService;
    private final TQuestionnaireRecordService questionnaireRecordService;
    private final TokenService tokenService;
    private final TQuestionnaireStemService questionnaireStemService;
    private final TQuestionnaireStemOptionService questionnaireStemOptionService;
    private final TQuestionnaireStemBriefAnswerService questionnaireStemBriefAnswerService;
    public QuestionnaireController(TQuestionnaireService questionnaireService, TQuestionnaireRecordService questionnaireRecordService, TokenService tokenService, TQuestionnaireStemService questionnaireStemService, TQuestionnaireStemOptionService questionnaireStemOptionService, TQuestionnaireStemBriefAnswerService questionnaireStemBriefAnswerService) {
        this.questionnaireService = questionnaireService;
        this.questionnaireRecordService = questionnaireRecordService;
        this.tokenService = tokenService;
        this.questionnaireStemService = questionnaireStemService;
        this.questionnaireStemOptionService = questionnaireStemOptionService;
        this.questionnaireStemBriefAnswerService = questionnaireStemBriefAnswerService;
    }
    @ApiOperation(value = "问卷调查--列表", response = TQuestionnaire.class)
    @GetMapping(value = "/getTQuestionnaireList")
    public R<List<TQuestionnaire>> getTQuestionnaireList() {
        String userId = null;
        try {
            userId = tokenService.getLoginUserApplet().getUserId();
        } catch (Exception e) {
        }
        List<TQuestionnaire> list = questionnaireService.list(new LambdaQueryWrapper<TQuestionnaire>().eq(TQuestionnaire::getStatus, 2));
        List<TQuestionnaireRecord> questionnaireRecordList = questionnaireRecordService.list();
        for (TQuestionnaire tQuestionnaire : list) {
            List<String> userIds = questionnaireRecordList.stream().filter(questionnaireRecord -> questionnaireRecord.getQuestionnaireId().equals(tQuestionnaire.getId())).map(TQuestionnaireRecord::getAppUserId).collect(Collectors.toList());
            tQuestionnaire.setTotalNum(userIds.size());
            if(userId!=null && userIds.contains(userId)){
                tQuestionnaire.setState(2);
            }
        }
        return R.ok(list);
    }
    @ApiOperation(value = "问卷调查--获取题干和选项", response = TQuestionnaireStem.class)
    @GetMapping(value = "/getTQuestionnaireStemList/{id}")
    public R<List<TQuestionnaireStem>> getTQuestionnaireStemList(@PathVariable String id) {
        List<TQuestionnaireStem> list = questionnaireStemService.list(new LambdaQueryWrapper<TQuestionnaireStem>().eq(TQuestionnaireStem::getQuestionnaireId, id));
        List<TQuestionnaireStemOption> questionnaireStemOptions = questionnaireStemOptionService.list(new LambdaQueryWrapper<TQuestionnaireStemOption>().in(TQuestionnaireStemOption::getStemId, list.stream().map(TQuestionnaireStem::getId).collect(Collectors.toList())));
        for (TQuestionnaireStem tQuestionnaireStem : list) {
            tQuestionnaireStem.setOptions(questionnaireStemOptions.stream().filter(questionnaireStemOption -> questionnaireStemOption.getStemId().equals(tQuestionnaireStem.getId())).collect(Collectors.toList()));
        }
        return R.ok(list);
    }
    @ApiOperation(value = "问卷调查--保存")
    @PostMapping(value = "/saveTQuestionnaire")
    public R<TQuestionnaire> saveTQuestionnaire(@RequestBody SaveTQuestionnaireDto dto) {
        String userId = tokenService.getLoginUserApplet().getUserId();
        TQuestionnaire questionnaire = questionnaireService.getById(dto.getQuestionnaireId());
        if(questionnaire.getStatus()==3){
            return R.fail("问卷已结束");
        }
        if(questionnaire.getStatus()==1){
            return R.fail("问卷未开始");
        }
        long count = questionnaireRecordService.count(new LambdaQueryWrapper<TQuestionnaireRecord>().eq(TQuestionnaireRecord::getQuestionnaireId, dto.getQuestionnaireId()).eq(TQuestionnaireRecord::getAppUserId, userId));
        if (count > 0) {
            return R.fail("您已作答过此问卷");
        }
        List<String> tQuestionnaireStemOptionIds = dto.getTQuestionnaireStemOptionIds();
        if(!tQuestionnaireStemOptionIds.isEmpty()){
            List<TQuestionnaireStemOption> questionnaireStemOptions = questionnaireStemOptionService.listByIds(tQuestionnaireStemOptionIds);
            for (TQuestionnaireStemOption questionnaireStemOption : questionnaireStemOptions) {
                String answerValue = questionnaireStemOption.getAnswerValue();
                answerValue = answerValue+","+userId;
                questionnaireStemOption.setAnswerValue(answerValue);
            }
            questionnaireStemOptionService.updateBatchById(questionnaireStemOptions);
        }
        List<TQuestionnaireStemBriefAnswer> tQuestionnaireStemBriefAnswers = dto.getTQuestionnaireStemBriefAnswers();
        if(!tQuestionnaireStemBriefAnswers.isEmpty()){
            tQuestionnaireStemBriefAnswers.forEach(e->e.setAppUserId(userId));
            questionnaireStemBriefAnswerService.saveBatch(tQuestionnaireStemBriefAnswers);
        }
        TQuestionnaireRecord tQuestionnaireRecord = new TQuestionnaireRecord();
        tQuestionnaireRecord.setAppUserId(userId);
        tQuestionnaireRecord.setQuestionnaireId(dto.getQuestionnaireId());
        questionnaireRecordService.save(tQuestionnaireRecord);
        return R.ok();
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/dto/SaveTQuestionnaireDto.java
New file
@@ -0,0 +1,23 @@
package com.ruoyi.system.dto;
import com.ruoyi.system.model.TQuestionnaireStemBriefAnswer;
import com.ruoyi.system.model.TQuestionnaireStemOption;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel("答题Dto")
public class SaveTQuestionnaireDto {
    @ApiModelProperty("问卷id")
    private String questionnaireId;
    @ApiModelProperty("选择Id")
    private List<String> tQuestionnaireStemOptionIds;
    @ApiModelProperty("简答题")
    private List<TQuestionnaireStemBriefAnswer> tQuestionnaireStemBriefAnswers;
}
ruoyi-system/src/main/java/com/ruoyi/system/model/TQuestionnaire.java
@@ -48,4 +48,13 @@
    @TableField("status")
    private Integer status;
    @TableField(exist = false)
    @ApiModelProperty(value = "状态 1=未作答 2=已做答")
    private Integer state=1;
    @TableField(exist = false)
    @ApiModelProperty(value = "作答人数")
    private Integer totalNum;
}
ruoyi-system/src/main/java/com/ruoyi/system/model/TQuestionnaireStem.java
@@ -10,6 +10,7 @@
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.List;
/**
 * <p>
@@ -46,5 +47,9 @@
    @TableField("stem_type")
    private Integer stemType;
    @ApiModelProperty(value = "选项")
    @TableField(exist = false)
    private List<TQuestionnaireStemOption> options;
}