diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/controller/ApiVolunteerRankController.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/controller/ApiVolunteerRankController.java index a0c104b..b3147c5 100644 --- a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/controller/ApiVolunteerRankController.java +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/controller/ApiVolunteerRankController.java @@ -1,14 +1,16 @@ package com.elink.esua.epdc.controller; +import com.elink.esua.epdc.common.token.annotation.LoginUser; +import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.result.EpdcAppVolunteerRankDTO; import com.elink.esua.epdc.service.AppVolunteerRankService; +import com.elink.esua.epdc.volunteer.AppVolunteerApplyDTO; import com.elink.esua.epdc.volunteer.EpdcVolunteerRankDTO; +import com.elink.esua.epdc.volunteer.VolunteerOrgDTO; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -39,4 +41,40 @@ public class ApiVolunteerRankController { } + /** + * @describe: 小程序-组织列表 + * @author wangtong + * @date 2021/8/30 9:49 + * @params [] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + */ + @GetMapping("getAppVolunteerOrgList") + public Result> getAppVolunteerOrgList(){ + return appVolunteerRankService.getAppVolunteerOrgList(); + } + + /** + * @describe: 小程序-志愿者申请 + * @author wangtong + * @date 2021/8/30 10:43 + * @params [userDetail, formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + @PostMapping("applyVolunteer") + public Result applyVolunteer(@LoginUser TokenDto userDetail, @RequestBody AppVolunteerApplyDTO formDto) { + return appVolunteerRankService.applyVolunteer(userDetail, formDto); + } + + /** + * @describe: 小程序-志愿者详情 + * @author wangtong + * @date 2021/8/30 11:00 + * @params [userDetail] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + @GetMapping("getVolunteerDetail") + public Result getVolunteerDetail(@LoginUser TokenDto userDetail) { + return appVolunteerRankService.getVolunteerDetail(userDetail); + } + } diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/AppVolunteerRankFeignClient.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/AppVolunteerRankFeignClient.java index be3999e..0877be6 100644 --- a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/AppVolunteerRankFeignClient.java +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/AppVolunteerRankFeignClient.java @@ -3,9 +3,13 @@ package com.elink.esua.epdc.feign; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.feign.fallback.AppVolunteerRankFeignClientFallback; +import com.elink.esua.epdc.volunteer.AppVolunteerApplyDTO; import com.elink.esua.epdc.volunteer.EpdcVolunteerRankDTO; +import com.elink.esua.epdc.volunteer.VolunteerOrgDTO; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import java.util.List; @@ -25,4 +29,34 @@ public interface AppVolunteerRankFeignClient { */ @GetMapping("heart/volunteer/leaderboard") Result> leaderboard(); + + /** + * @describe: 小程序-组织列表 + * @author wangtong + * @date 2021/8/30 9:49 + * @params [] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + */ + @GetMapping("heart/volunteerorg/getAppVolunteerOrgList") + Result> getAppVolunteerOrgList(); + + /** + * @describe: 小程序-志愿者申请 + * @author wangtong + * @date 2021/8/30 10:43 + * @params [userDetail, formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + @PostMapping(value = "heart/volunteer/getAppVolunteerOrgList", consumes = MediaType.APPLICATION_JSON_VALUE) + Result applyVolunteer(AppVolunteerApplyDTO formDto); + + /** + * @describe: 小程序-志愿者详情 + * @author wangtong + * @date 2021/8/30 11:07 + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + @GetMapping(value = "heart/volunteer/getAppVolunteerOrgList", consumes = MediaType.APPLICATION_JSON_VALUE) + Result getVolunteerDetail(AppVolunteerApplyDTO formDto); } diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/fallback/AppVolunteerRankFeignClientFallback.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/fallback/AppVolunteerRankFeignClientFallback.java index 831adce..7250871 100644 --- a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/fallback/AppVolunteerRankFeignClientFallback.java +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/fallback/AppVolunteerRankFeignClientFallback.java @@ -4,7 +4,9 @@ import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.ModuleUtils; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.feign.AppVolunteerRankFeignClient; +import com.elink.esua.epdc.volunteer.AppVolunteerApplyDTO; import com.elink.esua.epdc.volunteer.EpdcVolunteerRankDTO; +import com.elink.esua.epdc.volunteer.VolunteerOrgDTO; import org.springframework.stereotype.Component; import java.util.List; @@ -21,5 +23,20 @@ public class AppVolunteerRankFeignClientFallback implements AppVolunteerRankFeig return ModuleUtils.feignConError(ServiceConstant.EPDC_HEART_SERVER, "leaderboard"); } + @Override + public Result> getAppVolunteerOrgList() { + return ModuleUtils.feignConError(ServiceConstant.EPDC_HEART_SERVER, "getAppVolunteerOrgList"); + } + + @Override + public Result applyVolunteer(AppVolunteerApplyDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_HEART_SERVER, "applyVolunteer",formDto); + } + + @Override + public Result getVolunteerDetail(AppVolunteerApplyDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_HEART_SERVER, "getVolunteerDetail",formDto); + } + } diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/AppVolunteerRankService.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/AppVolunteerRankService.java index 1457bf5..f6d6e59 100644 --- a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/AppVolunteerRankService.java +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/AppVolunteerRankService.java @@ -1,7 +1,10 @@ package com.elink.esua.epdc.service; +import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.volunteer.AppVolunteerApplyDTO; import com.elink.esua.epdc.volunteer.EpdcVolunteerRankDTO; +import com.elink.esua.epdc.volunteer.VolunteerOrgDTO; import java.util.List; @@ -18,5 +21,30 @@ public interface AppVolunteerRankService { */ Result> leaderboard(); + /** + * @describe: 小程序-组织列表 + * @author wangtong + * @date 2021/8/30 9:49 + * @params [] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + */ + Result> getAppVolunteerOrgList(); + /** + * @describe: 小程序-志愿者申请 + * @author wangtong + * @date 2021/8/30 10:43 + * @params [userDetail, formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + Result applyVolunteer(TokenDto userDetail, AppVolunteerApplyDTO formDto); + + /** + * @describe: 小程序-志愿者详情 + * @author wangtong + * @date 2021/8/30 11:00 + * @params [userDetail] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + Result getVolunteerDetail(TokenDto userDetail); } diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/impl/AppVolunteerRankServiceImpl.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/impl/AppVolunteerRankServiceImpl.java index 2f50122..2fcb1a4 100644 --- a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/impl/AppVolunteerRankServiceImpl.java +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/impl/AppVolunteerRankServiceImpl.java @@ -1,9 +1,16 @@ package com.elink.esua.epdc.service.impl; +import com.alibaba.nacos.client.naming.utils.CollectionUtils; +import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; +import com.elink.esua.epdc.dto.UserTagInfo; +import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.feign.AppVolunteerRankFeignClient; import com.elink.esua.epdc.service.AppVolunteerRankService; +import com.elink.esua.epdc.volunteer.AppVolunteerApplyDTO; import com.elink.esua.epdc.volunteer.EpdcVolunteerRankDTO; +import com.elink.esua.epdc.volunteer.VolunteerOrgDTO; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -22,10 +29,14 @@ public class AppVolunteerRankServiceImpl implements AppVolunteerRankService { @Autowired private AppVolunteerRankFeignClient appVolunteerRankFeignClient; + @Autowired + private AdminFeignClient adminFeignClient; + /** * 获取排行榜 - * @Author wanggongfeng + * * @return + * @Author wanggongfeng */ @Override public Result> leaderboard() { @@ -33,4 +44,55 @@ public class AppVolunteerRankServiceImpl implements AppVolunteerRankService { return dataResult; } + @Override + public Result> getAppVolunteerOrgList() { + return appVolunteerRankFeignClient.getAppVolunteerOrgList(); + } + + @Override + public Result applyVolunteer(TokenDto userDetail, AppVolunteerApplyDTO formDto) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + //获取所有上级机构名称和ID拼接 + Result dtoResult = adminFeignClient.getParentAndAllDept(userDetail.getGridId()); + ParentAndAllDeptDTO deptDTO = dtoResult.getData(); + // 父所有部门 + formDto.setParentDeptIds(deptDTO.getParentDeptIds()); + formDto.setParentDeptNames(deptDTO.getParentDeptNames()); + // 所有部门 + formDto.setAllDeptIds(deptDTO.getAllDeptIds()); + formDto.setAllDeptNames(deptDTO.getAllDeptNames()); + // 网格 + formDto.setDept(deptDTO.getGrid()); + formDto.setDeptId(deptDTO.getGridId()); + + formDto.setUserId(userDetail.getUserId()); + formDto.setFaceImg(userDetail.getFaceImg()); + //判断党员标识 + if (!CollectionUtils.isEmpty(userDetail.getUserTagInfos())) { + Boolean flag = false; + for (UserTagInfo ut : userDetail.getUserTagInfos()) { + if ("partymember".equals(ut.getTagCode())) { + flag = true; + break; + } + } + formDto.setPartyFlag(flag == true ? 1 : 0); + } else { + formDto.setPartyFlag(0); + } + return appVolunteerRankFeignClient.applyVolunteer(formDto); + } + + @Override + public Result getVolunteerDetail(TokenDto userDetail) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + AppVolunteerApplyDTO formDto = new AppVolunteerApplyDTO(); + formDto.setUserId(userDetail.getUserId()); + return appVolunteerRankFeignClient.getVolunteerDetail(formDto); + } + }