xuhy
2026-03-02 70fab9b9607f18df92fc2c7c0efced0dcd55d5fc
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/ConvenienceController.java
@@ -1,5 +1,6 @@
package com.ruoyi.web.controller.api;
import cn.hutool.crypto.SecureUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -16,6 +17,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
@@ -40,9 +42,10 @@
    private final TCommunityActivityRegistrationService tCommunityActivityRegistrationService;
    private final TDeliberationVoteService tDeliberationVoteService;
    private final TDeliberationVoteOptionService tDeliberationVoteOptionService;
    private final TAppealServicesService tAppealServicesService ;
    private final TAppealServicesService tAppealServicesService;
    private final TAppUserService appUserService;
    public ConvenienceController(THtmlConfigService tHtmlConfigService, TServiceGuideFileService tServiceGuideFileService, TConvenientInformationService tConvenientInformationService, TMicroWishService tMicroWishService, TokenService tokenService, TCommunityActivityService tCommunityActivityService, TCommunityActivityRegistrationService tCommunityActivityRegistrationService, TDeliberationVoteService tDeliberationVoteService, TDeliberationVoteOptionService tDeliberationVoteOptionService, TAppealServicesService tAppealServicesService) {
    public ConvenienceController(THtmlConfigService tHtmlConfigService, TServiceGuideFileService tServiceGuideFileService, TConvenientInformationService tConvenientInformationService, TMicroWishService tMicroWishService, TokenService tokenService, TCommunityActivityService tCommunityActivityService, TCommunityActivityRegistrationService tCommunityActivityRegistrationService, TDeliberationVoteService tDeliberationVoteService, TDeliberationVoteOptionService tDeliberationVoteOptionService, TAppealServicesService tAppealServicesService, TAppUserService appUserService) {
        this.tHtmlConfigService = tHtmlConfigService;
        this.tServiceGuideFileService = tServiceGuideFileService;
        this.tConvenientInformationService = tConvenientInformationService;
@@ -53,6 +56,7 @@
        this.tDeliberationVoteService = tDeliberationVoteService;
        this.tDeliberationVoteOptionService = tDeliberationVoteOptionService;
        this.tAppealServicesService = tAppealServicesService;
        this.appUserService = appUserService;
    }
@@ -63,6 +67,7 @@
                Wrappers.<THtmlConfig>lambdaQuery().eq(THtmlConfig::getConfigType, type)
        ));
    }
    @ApiOperation(value = "办事指南--流程指引文件", response = TServiceGuideFile.class)
    @PostMapping("/getServiceGuideFile")
@@ -79,8 +84,8 @@
        Page<TConvenientInformation> page = new Page<>(query.getPageNum(), query.getPageSize());
        Page<TConvenientInformation> tConvenientInformationPage = tConvenientInformationService.page(page, new LambdaQueryWrapper<TConvenientInformation>().like(Objects.nonNull(query.getName()), TConvenientInformation::getConvenientName, query.getName()).orderByDesc(BaseModel::getCreateTime));
        return R.ok(tConvenientInformationPage);
    }
    @ApiOperation(value = "便民信息--便民信息详情", response = TConvenientInformation.class)
    @GetMapping("/getConvenientInformationDetail/{id}")
@@ -93,7 +98,20 @@
    @PostMapping("/getMicroWishList")
    public R<Page<TMicroWish>> getMicroWishList(@RequestBody MicroWishListQuery query) {
        Page<TMicroWish> page = new Page<>(query.getPageNum(), query.getPageSize());
        Page<TMicroWish> tMicroWishPage = tMicroWishService.page(page, new LambdaQueryWrapper<TMicroWish>().eq(TMicroWish::getWishType, 1).eq(TMicroWish::getStatus, 2).like(Objects.nonNull(query.getWishDescription()), TMicroWish::getWishDescription, query.getWishDescription()).orderByDesc(BaseModel::getCreateTime));
        Page<TMicroWish> tMicroWishPage = tMicroWishService.page(page, new LambdaQueryWrapper<TMicroWish>().eq(TMicroWish::getWishType, 1).eq(TMicroWish::getState, 1).eq(TMicroWish::getStatus, 2).like(Objects.nonNull(query.getWishDescription()), TMicroWish::getWishDescription, query.getWishDescription()).orderByDesc(BaseModel::getCreateTime));
        List<TMicroWish> records = tMicroWishPage.getRecords();
        List<String> appUserIds = records.stream().map(TMicroWish::getAppUserId).collect(Collectors.toList());
        if (!CollectionUtils.isEmpty(appUserIds)) {
            List<TAppUser> appUsers = appUserService.list(Wrappers.lambdaQuery(TAppUser.class)
                    .in(TAppUser::getId, appUserIds));
            for (TMicroWish microWish : records) {
                List<TAppUser> appUserList = appUsers.stream().filter(appUser -> microWish.getAppUserId().equals(appUser.getId())).collect(Collectors.toList());
                if (!CollectionUtils.isEmpty(appUserList)) {
                    microWish.setUserName(appUserList.get(0).getNickName());
                }
            }
        }
        return R.ok(tMicroWishPage);
    }
@@ -103,7 +121,11 @@
    public R<?> addMicroWish(@RequestBody TMicroWish dto) {
        String userId = tokenService.getLoginUserApplet().getUserId();
        dto.setAppUserId(userId);
        dto.setStatus(1);
        if (dto.getWishType() == 1) {
            dto.setStatus(1);
        } else {
            dto.setStatus(4);
        }
        tMicroWishService.save(dto);
        return R.ok();
    }
@@ -121,14 +143,17 @@
        Page<TCommunityActivity> tCommunityActivityPage = tCommunityActivityService.page(page, new LambdaQueryWrapper<TCommunityActivity>().eq(TCommunityActivity::getStatus, 2).like(Objects.nonNull(query.getName()), TCommunityActivity::getActivityTitle, query.getName()).orderByDesc(BaseModel::getCreateTime));
        List<TCommunityActivity> activityList = tCommunityActivityPage.getRecords();
        // 判断是否已经报名
        if (!activityList.isEmpty() && userId != null) {
        if (!activityList.isEmpty()) {
            List<String> activityIds = activityList.stream().map(TCommunityActivity::getId).collect(Collectors.toList());
            List<TCommunityActivityRegistration> activityRegistrationList = tCommunityActivityRegistrationService.list(new LambdaQueryWrapper<TCommunityActivityRegistration>().in(TCommunityActivityRegistration::getActivityId, activityIds).eq(TCommunityActivityRegistration::getAppUserId, userId));
            List<TCommunityActivityRegistration> activityRegistrationList = tCommunityActivityRegistrationService.list(new LambdaQueryWrapper<TCommunityActivityRegistration>().in(TCommunityActivityRegistration::getActivityId, activityIds));
            for (TCommunityActivity tCommunityActivity : activityList) {
                TCommunityActivityRegistration tCommunityActivityRegistration = activityRegistrationList.stream().filter(e -> e.getActivityId().equals(tCommunityActivity.getId())).findFirst().orElse(null);
                if (tCommunityActivityRegistration != null) {
                    tCommunityActivity.setState(2);
                List<TCommunityActivityRegistration> tCommunityActivityRegistrations = activityRegistrationList.stream().filter(e -> e.getActivityId().equals(tCommunityActivity.getId())).collect(Collectors.toList());
                tCommunityActivity.setUserNum(tCommunityActivityRegistrations.size());
                String finalUserId = userId;
                if (finalUserId != null) {
                }
            }
        }
@@ -149,14 +174,16 @@
            userId = tokenService.getLoginUserApplet().getUserId();
        } catch (Exception e) {
        }
        if (userId != null) {
            long count = tCommunityActivityRegistrationService.count(new LambdaQueryWrapper<TCommunityActivityRegistration>().eq(TCommunityActivityRegistration::getActivityId, id).eq(TCommunityActivityRegistration::getAppUserId, userId));
            if (count > 0) {
                tCommunityActivity.setState(2);
            }
        long count = tCommunityActivityRegistrationService.count(new LambdaQueryWrapper<TCommunityActivityRegistration>().eq(TCommunityActivityRegistration::getActivityId, id));
        if (count > 0) {
            tCommunityActivity.setUserNum((int) count);
        }
        if(userId!=null){
            tCommunityActivity.setState(tCommunityActivityRegistrationService.count(new LambdaQueryWrapper<TCommunityActivityRegistration>().eq(TCommunityActivityRegistration::getActivityId, id).eq(TCommunityActivityRegistration::getAppUserId, userId)) > 0 ? 1 : 2);
        }
        return R.ok(tCommunityActivity);
    }
    @ApiOperation(value = "社区活动--报名", response = TCommunityActivity.class)
    @PostMapping("/addCommunityActivityRegistration")
@@ -200,19 +227,23 @@
        Page<TDeliberationVote> page = new Page<>(query.getPageNum(), query.getPageSize());
        Page<TDeliberationVote> tDeliberationVotePage = tDeliberationVoteService.page(page, new LambdaQueryWrapper<TDeliberationVote>().eq(TDeliberationVote::getStatus, query.getStatus()).orderByDesc(BaseModel::getCreateTime));
        List<TDeliberationVote> tDeliberationVoteList = tDeliberationVotePage.getRecords();
        if(!tDeliberationVoteList.isEmpty()){
        if (!tDeliberationVoteList.isEmpty()) {
            List<String> voteIds = tDeliberationVoteList.stream().map(TDeliberationVote::getId).collect(Collectors.toList());
            List<TDeliberationVoteOption> tDeliberationVoteOptionList = tDeliberationVoteOptionService.list(new LambdaQueryWrapper<TDeliberationVoteOption>().in(TDeliberationVoteOption::getVoteId, voteIds));
            for (TDeliberationVote tDeliberationVote : tDeliberationVoteList) {
                List<TDeliberationVoteOption> options = tDeliberationVoteOptionList.stream().filter(e -> e.getVoteId().equals(tDeliberationVote.getId())).collect(Collectors.toList());
                for (TDeliberationVoteOption option : options) {
                    String[] split = option.getVoteCount().split(",");
                    // split转为数组
                    List<String> list = Arrays.asList(split);
                    option.setVoteCountNum(list.size());
                    if(tDeliberationVote.getVoteState()==1 && userId!=null &&  list.contains(userId)){
                        tDeliberationVote.setVoteState(2);
                    if (option.getVoteCount() != null) {
                        String[] split = option.getVoteCount().split(",");
                        // split转为数组
                        List<String> list = Arrays.asList(split);
                        option.setVoteCountNum(list.size());
                        if (tDeliberationVote.getVoteState() == 1 && userId != null && list.contains(userId)) {
                            tDeliberationVote.setVoteState(2);
                        }
                    }
                }
@@ -222,6 +253,41 @@
        tDeliberationVotePage.setRecords(tDeliberationVoteList);
        return R.ok(tDeliberationVotePage);
    }
    public static void main(String[] args) {
        String s = SecureUtil.md5("123456");
        System.out.println(s);
    }
    @ApiOperation(value = "议事投票--详情", response = TDeliberationVote.class)
    @GetMapping("/getDeliberationVoteDetail/{id}")
    public R<TDeliberationVote> getDeliberationVoteDetail(@PathVariable String id) {
        String userId = null;
        try {
            userId = tokenService.getLoginUserApplet().getUserId();
        } catch (Exception e) {
        }
        TDeliberationVote tDeliberationVote = tDeliberationVoteService.getById(id);
        if (tDeliberationVote != null) {
            List<TDeliberationVoteOption> tDeliberationVoteOptionList = tDeliberationVoteOptionService.list(new LambdaQueryWrapper<TDeliberationVoteOption>().eq(TDeliberationVoteOption::getVoteId, id));
            List<TDeliberationVoteOption> options = tDeliberationVoteOptionList.stream().filter(e -> e.getVoteId().equals(tDeliberationVote.getId())).collect(Collectors.toList());
            for (TDeliberationVoteOption option : options) {
                if (option.getVoteCount() != null) {
                    String[] split = option.getVoteCount().split(",");
                    // split转为数组
                    List<String> list = Arrays.asList(split);
                    option.setVoteCountNum(list.size());
                    if (tDeliberationVote.getVoteState() == 1 && userId != null && list.contains(userId)) {
                        tDeliberationVote.setVoteState(2);
                    }
                }
            }
            tDeliberationVote.setOptions(options);
        }
        return R.ok(tDeliberationVote);
    }
    @ApiOperation(value = "议事投票--投票")
    @PostMapping("/addDeliberationVoteOption")
@@ -241,10 +307,13 @@
        List<TDeliberationVoteOption> list = tDeliberationVoteOptionService.list(new LambdaQueryWrapper<TDeliberationVoteOption>().eq(TDeliberationVoteOption::getVoteId, dto.getVoteId()));
        for (TDeliberationVoteOption tDeliberationVoteOption : list) {
            String voteCount = tDeliberationVoteOption.getVoteCount();
            String[] split = voteCount.split(",");
            if (Arrays.asList(split).contains(userId)) {
                return R.fail("你已经投票");
            if (voteCount != null) {
                String[] split = voteCount.split(",");
                if (Arrays.asList(split).contains(userId)) {
                    return R.fail("你已经投票");
                }
            }
        }
        TDeliberationVoteOption tDeliberationVoteOption = list.stream().filter(e -> e.getOptionContent().equals(dto.getOptionContent())).findFirst().orElse(null);
        if (tDeliberationVoteOption == null) {
@@ -266,4 +335,5 @@
        return R.ok();
    }
}