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.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.*;
|
import com.ruoyi.system.query.CommunityActivityListQuery;
|
import com.ruoyi.system.query.ConvenientInformationListQuery;
|
import com.ruoyi.system.query.DeliberationVoteListQuery;
|
import com.ruoyi.system.query.MicroWishListQuery;
|
import com.ruoyi.system.service.*;
|
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;
|
import java.util.Arrays;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Objects;
|
import java.util.stream.Collectors;
|
|
@Slf4j
|
@RestController
|
@RequestMapping("/convenience")
|
@Api(tags = "普惠便民模块")
|
public class ConvenienceController {
|
|
private final THtmlConfigService tHtmlConfigService;
|
private final TServiceGuideFileService tServiceGuideFileService;
|
private final TConvenientInformationService tConvenientInformationService;
|
private final TMicroWishService tMicroWishService;
|
private final TokenService tokenService;
|
private final TCommunityActivityService tCommunityActivityService;
|
private final TCommunityActivityRegistrationService tCommunityActivityRegistrationService;
|
private final TDeliberationVoteService tDeliberationVoteService;
|
private final TDeliberationVoteOptionService tDeliberationVoteOptionService;
|
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, TAppUserService appUserService) {
|
this.tHtmlConfigService = tHtmlConfigService;
|
this.tServiceGuideFileService = tServiceGuideFileService;
|
this.tConvenientInformationService = tConvenientInformationService;
|
this.tMicroWishService = tMicroWishService;
|
this.tokenService = tokenService;
|
this.tCommunityActivityService = tCommunityActivityService;
|
this.tCommunityActivityRegistrationService = tCommunityActivityRegistrationService;
|
this.tDeliberationVoteService = tDeliberationVoteService;
|
this.tDeliberationVoteOptionService = tDeliberationVoteOptionService;
|
this.tAppealServicesService = tAppealServicesService;
|
this.appUserService = appUserService;
|
}
|
|
|
@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")
|
public R<Page<TServiceGuideFile>> getServiceGuideFile(@RequestBody BasePage basePage) {
|
return R.ok(tServiceGuideFileService.page(new Page<TServiceGuideFile>(basePage.getPageNum(), basePage.getPageSize()),
|
Wrappers.<TServiceGuideFile>lambdaQuery().orderByDesc(TServiceGuideFile::getCreateTime)
|
));
|
}
|
|
|
@ApiOperation(value = "便民信息--便民信息列表", response = TConvenientInformation.class)
|
@PostMapping("/getConvenientInformationList")
|
public R<Page<TConvenientInformation>> getConvenientInformationList(@RequestBody ConvenientInformationListQuery query) {
|
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}")
|
public R<TConvenientInformation> getConvenientInformationDetail(@PathVariable String id) {
|
return R.ok(tConvenientInformationService.getById(id));
|
}
|
|
|
@ApiOperation(value = "微心愿--微心愿列表", response = TMicroWish.class)
|
@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::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);
|
}
|
|
|
@ApiOperation(value = "微心愿--发布心愿", response = TMicroWish.class)
|
@PostMapping("/addMicroWish")
|
public R<?> addMicroWish(@RequestBody TMicroWish dto) {
|
String userId = tokenService.getLoginUserApplet().getUserId();
|
dto.setAppUserId(userId);
|
if(dto.getWishType() == 1){
|
dto.setStatus(1);
|
}else {
|
dto.setStatus(4);
|
}
|
tMicroWishService.save(dto);
|
return R.ok();
|
}
|
|
|
@ApiOperation(value = "社区活动--列表", response = TCommunityActivity.class)
|
@PostMapping("/getCommunityActivityList")
|
public R<Page<TCommunityActivity>> getCommunityActivityList(@RequestBody CommunityActivityListQuery query) {
|
String userId = null;
|
try {
|
userId = tokenService.getLoginUserApplet().getUserId();
|
} catch (Exception e) {
|
}
|
Page<TCommunityActivity> page = new Page<>(query.getPageNum(), query.getPageSize());
|
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) {
|
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));
|
for (TCommunityActivity tCommunityActivity : activityList) {
|
List<TCommunityActivityRegistration> tCommunityActivityRegistrations = activityRegistrationList.stream().filter(e -> e.getActivityId().equals(tCommunityActivity.getId())).collect(Collectors.toList());
|
tCommunityActivity.setUserNum(tCommunityActivityRegistrations.size());
|
String finalUserId = userId;
|
TCommunityActivityRegistration tCommunityActivityRegistration = tCommunityActivityRegistrations.stream().filter(e -> e.getAppUserId().equals(finalUserId)).findFirst().orElse(null);
|
if (tCommunityActivityRegistration != null) {
|
tCommunityActivity.setState(2);
|
}
|
}
|
|
}
|
tCommunityActivityPage.setRecords(activityList);
|
return R.ok(tCommunityActivityPage);
|
}
|
|
|
@ApiOperation(value = "社区活动--详情", response = TCommunityActivity.class)
|
@GetMapping("/getCommunityActivityDetail/{id}")
|
public R<TCommunityActivity> getCommunityActivityDetail(@PathVariable String id) {
|
TCommunityActivity tCommunityActivity = tCommunityActivityService.getById(id);
|
if (tCommunityActivity == null) {
|
return R.fail("活动不存在");
|
}
|
String userId = null;
|
try {
|
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);
|
}
|
}
|
return R.ok(tCommunityActivity);
|
}
|
|
|
@ApiOperation(value = "社区活动--报名", response = TCommunityActivity.class)
|
@PostMapping("/addCommunityActivityRegistration")
|
public R<?> addCommunityActivityRegistration(@RequestBody TCommunityActivityRegistration dto) {
|
|
String userId = tokenService.getLoginUserApplet().getUserId();
|
TCommunityActivity activity = tCommunityActivityService.getById(dto.getActivityId());
|
if (activity == null) {
|
return R.fail("活动不存在");
|
}
|
if (activity.getEndTime().isBefore(LocalDateTime.now())) {
|
return R.fail("报名已结束");
|
}
|
if (activity.getStartTime().isAfter(LocalDateTime.now())) {
|
return R.fail("报名未开始");
|
}
|
if (activity.getStatus() == 3) {
|
return R.fail("活动已结束");
|
}
|
if (activity.getStatus() == 1) {
|
return R.fail("活动未发布");
|
}
|
if (tCommunityActivityRegistrationService.count(new LambdaQueryWrapper<TCommunityActivityRegistration>().eq(TCommunityActivityRegistration::getActivityId, dto.getActivityId()).eq(TCommunityActivityRegistration::getAppUserId, userId)) > 0) {
|
return R.fail("你已报名");
|
}
|
|
dto.setAppUserId(userId);
|
tCommunityActivityRegistrationService.save(dto);
|
return R.ok();
|
}
|
|
|
@ApiOperation(value = "议事投票--列表", response = TDeliberationVote.class)
|
@PostMapping("/getDeliberationVoteList")
|
public R<Page<TDeliberationVote>> getDeliberationVoteList(@RequestBody DeliberationVoteListQuery query) {
|
String userId = null;
|
try {
|
userId = tokenService.getLoginUserApplet().getUserId();
|
} catch (Exception e) {
|
}
|
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()) {
|
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) {
|
|
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);
|
}
|
}
|
tDeliberationVotePage.setRecords(tDeliberationVoteList);
|
return R.ok(tDeliberationVotePage);
|
}
|
|
@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")
|
public R<?> addDeliberationVoteOption(@RequestBody TDeliberationVoteOption dto) {
|
String voteId = dto.getVoteId();
|
TDeliberationVote tDeliberationVote = tDeliberationVoteService.getById(voteId);
|
if (tDeliberationVote == null) {
|
return R.fail("投票不存在");
|
}
|
if (tDeliberationVote.getStatus() == 3) {
|
return R.fail("投票已结束");
|
}
|
if (tDeliberationVote.getStatus() == 1) {
|
return R.fail("投票未开始");
|
}
|
String userId = tokenService.getLoginUserApplet().getUserId();
|
List<TDeliberationVoteOption> list = tDeliberationVoteOptionService.list(new LambdaQueryWrapper<TDeliberationVoteOption>().eq(TDeliberationVoteOption::getVoteId, dto.getVoteId()));
|
for (TDeliberationVoteOption tDeliberationVoteOption : list) {
|
String voteCount = tDeliberationVoteOption.getVoteCount();
|
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) {
|
return R.fail("选项不存在");
|
}
|
tDeliberationVoteOption.setVoteCount(tDeliberationVoteOption.getVoteCount() + "," + userId);
|
tDeliberationVoteOptionService.updateById(tDeliberationVoteOption);
|
return R.ok();
|
}
|
|
|
@ApiOperation(value = "群众服务诉求/随手拍--提交")
|
@PostMapping("/addAppealServices")
|
public R<?> addAppealServices(@RequestBody TAppealServices dto) {
|
String userId = tokenService.getLoginUserApplet().getUserId();
|
dto.setAppUserId(userId);
|
dto.setStatus(1);
|
tAppealServicesService.save(dto);
|
return R.ok();
|
}
|
|
|
}
|