From 70fab9b9607f18df92fc2c7c0efced0dcd55d5fc Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 02 三月 2026 09:46:04 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/ConvenienceController.java |  122 ++++++++++++++++++++++++++++++++--------
 1 files changed, 96 insertions(+), 26 deletions(-)

diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/ConvenienceController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/ConvenienceController.java
index 71c65dc..46784de 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/ConvenienceController.java
+++ b/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,16 +56,18 @@
         this.tDeliberationVoteService = tDeliberationVoteService;
         this.tDeliberationVoteOptionService = tDeliberationVoteOptionService;
         this.tAppealServicesService = tAppealServicesService;
+        this.appUserService = appUserService;
     }
 
 
-    @ApiOperation(value = "说明--3流程指引 11=群众诉求服务说明 12=随手拍说明  ", response = THtmlConfig.class)
+    @ApiOperation(value = "说明--1=托育服务 2=阅芽计划 3=办事指南图文指引 4=暖心服务图片 5=注册协议 6=隐私政策 7=学习申请书 8=安全告知书 9=购买支付说明 10=微心愿风险提示 11=群众诉求服务说明 12=随手拍说明 13=康年年图文介绍  ", response = THtmlConfig.class)
     @GetMapping("/getServiceGuide")
     public R<THtmlConfig> getServiceGuide(int type) {
         return R.ok(tHtmlConfigService.getOne(
                 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();
     }
 
+
 }

--
Gitblit v1.7.1