diff --git a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/constant/WorkAppMenuConstant.java b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/constant/WorkAppMenuConstant.java new file mode 100644 index 000000000..4fc62cafa --- /dev/null +++ b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/constant/WorkAppMenuConstant.java @@ -0,0 +1,36 @@ +package com.elink.esua.epdc.constant; + +/** + * + * 工作端-首页菜单常量 + * + * @Author:liuchuang + * @Date:2019/11/28 19:04 + */ +public interface WorkAppMenuConstant { + + /** + * 议题管理-待回应 + */ + String WORK_APP_MENU_CODE_ISSUE_WAITING_RESPOND = "10001"; + + /** + * 议题管理-待处理 + */ + String WORK_APP_MENU_CODE_ISSUE_WAITING_HANDLE = "10002"; + + /** + * 项目管理-待处理 + */ + String WORK_APP_MENU_CODE_ITEM_WAITING_HANDLE = "10003"; + + /** + * 用户管理-待认证居民 + */ + String WORK_APP_MENU_CODE_USER_RESIDENTS_TO_BE_CERTIFIED = "10004"; + + /** + * 消息 + */ + String WORK_APP_MENU_CODE_NOTICE = "10005"; +} diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/WorkAppMenuStatisticsFormDTO.java b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/WorkAppMenuStatisticsFormDTO.java new file mode 100644 index 000000000..5f7c5329e --- /dev/null +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/WorkAppMenuStatisticsFormDTO.java @@ -0,0 +1,22 @@ +package com.elink.esua.epdc.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * + * 工作端小程序首页菜单消息数量Form DTO + * + * @Author:liuchuang + * @Date:2019/11/29 9:14 + */ +@Data +public class WorkAppMenuStatisticsFormDTO implements Serializable { + private static final long serialVersionUID = 4881526875170357671L; + + /** + * 部门ID + */ + private Long deptId; +} diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/WorkAppMenuStatisticsResultDTO.java b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/WorkAppMenuStatisticsResultDTO.java new file mode 100644 index 000000000..3a98d3912 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/WorkAppMenuStatisticsResultDTO.java @@ -0,0 +1,27 @@ +package com.elink.esua.epdc.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * + * 工作端小程序首页菜单消息数量 + * + * @Author:liuchuang + * @Date:2019/11/28 19:53 + */ +@Data +public class WorkAppMenuStatisticsResultDTO implements Serializable { + private static final long serialVersionUID = -8971266834441830462L; + + /** + * 菜单编码 + */ + private String menuCode; + + /** + * 菜单消息数量 + */ + private Integer menuNum; +} diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiWorkUserController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiWorkUserController.java index fc2359dbe..b4d435095 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiWorkUserController.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiWorkUserController.java @@ -7,6 +7,8 @@ import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; import com.elink.esua.epdc.dto.epdc.form.*; import com.elink.esua.epdc.dto.epdc.result.*; import com.elink.esua.epdc.dto.form.EpdcWorkAppUserMaTokenFormDTO; +import com.elink.esua.epdc.dto.form.WorkAppMenuStatisticsFormDTO; +import com.elink.esua.epdc.dto.result.WorkAppMenuStatisticsResultDTO; import com.elink.esua.epdc.service.WorkUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -167,4 +169,18 @@ public class ApiWorkUserController { ValidatorUtils.validateEntity(formDto); return workUserService.removeGrid(formDto); } + + /** + * + * 首页菜单消息数量显示 + * + * @params [] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author liuchuang + * @since 2019/11/28 19:56 + */ + @GetMapping("indexStatistics") + public Result> indexStatistics(WorkAppMenuStatisticsFormDTO formDto) { + return workUserService.indexStatistics(formDto); + } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/WorkUserService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/WorkUserService.java index 5452cb9d7..83f306436 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/WorkUserService.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/WorkUserService.java @@ -5,11 +5,11 @@ import com.elink.esua.epdc.common.token.dto.WorkUserLoginDTO; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.epdc.form.*; import com.elink.esua.epdc.dto.epdc.result.*; -import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.dto.form.EpdcWorkAppUserMaTokenFormDTO; +import com.elink.esua.epdc.dto.form.WorkAppMenuStatisticsFormDTO; +import com.elink.esua.epdc.dto.result.WorkAppMenuStatisticsResultDTO; import java.util.List; -import java.util.Map; /** * 工作端,用户登录、用户管理 相关业务接口 @@ -119,4 +119,15 @@ public interface WorkUserService { * @Date 2019/11/22 14:17 **/ Result removeGrid(EpdcAppRemoveGridFormDTO formDto); + + /** + * + * 首页菜单消息数量显示 + * + * @params [] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author liuchuang + * @since 2019/11/28 20:03 + */ + Result> indexStatistics(WorkAppMenuStatisticsFormDTO formDto); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/WorkUserServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/WorkUserServiceImpl.java index 2e3a1c65c..1809a95fa 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/WorkUserServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/WorkUserServiceImpl.java @@ -10,14 +10,22 @@ import com.elink.esua.epdc.commons.tools.security.user.SecurityUser; import com.elink.esua.epdc.commons.tools.security.user.UserDetail; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.constant.WorkAppMenuConstant; import com.elink.esua.epdc.dto.SysUserDTO; import com.elink.esua.epdc.dto.epdc.form.*; import com.elink.esua.epdc.dto.epdc.result.*; -import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.dto.form.EpdcWorkAppUserMaTokenFormDTO; +import com.elink.esua.epdc.dto.form.WorkAppMenuStatisticsFormDTO; +import com.elink.esua.epdc.dto.issue.form.IssueStateStatisticsFormDTO; +import com.elink.esua.epdc.dto.issue.result.IssueStateStatisticsResultDTO; +import com.elink.esua.epdc.dto.item.form.ItemStatisticsFormDTO; +import com.elink.esua.epdc.dto.item.result.ItemStatisticsResultDTO; +import com.elink.esua.epdc.dto.result.WorkAppMenuStatisticsResultDTO; import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.feign.ResourceFeignClient; import com.elink.esua.epdc.feign.UserFeignClient; +import com.elink.esua.epdc.service.WorkIssueService; +import com.elink.esua.epdc.service.WorkItemService; import com.elink.esua.epdc.service.WorkUserService; import com.elink.esua.epdc.utils.WxMaServiceUtils; import me.chanjar.weixin.common.error.WxErrorException; @@ -25,6 +33,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; /** @@ -47,6 +56,12 @@ public class WorkUserServiceImpl implements WorkUserService { @Autowired private WxMaServiceUtils wxMaServiceUtils; + @Autowired + private WorkIssueService workIssueService; + + @Autowired + private WorkItemService workItemService; + @Override public Result getMaToken(EpdcWorkAppUserMaTokenFormDTO formDto) { // 获取openId @@ -202,4 +217,78 @@ public class WorkUserServiceImpl implements WorkUserService { public Result removeGrid(EpdcAppRemoveGridFormDTO formDto) { return userFeignClient.removeGrid(formDto); } + + @Override + public Result> indexStatistics(WorkAppMenuStatisticsFormDTO formDto) { + if (null == SecurityUser.getUser()) { + return new Result>().error("获取当前登录用户信息失败"); + } + // 获取当前用户菜单信息 + Result> adminResult = adminFeignClient.indexPanel(SecurityUser.getUser().getMobile()); + if (!adminResult.success()) { + return new Result>().error(adminResult.getMsg()); + } + // 议题管理菜单消息数量统计 + IssueStateStatisticsFormDTO issueFormDto = new IssueStateStatisticsFormDTO(); + issueFormDto.setDeptId(formDto.getDeptId()); + Result issueResult = workIssueService.stateStatistics(issueFormDto); + // 项目管理菜单消息数量统计 + ItemStatisticsFormDTO itemFormDto = new ItemStatisticsFormDTO(); + itemFormDto.setDeptId(formDto.getDeptId()); + Result itemResult = workItemService.getItemStatistics(itemFormDto); + // 用户管理菜单消息数量统计 + EpdcUnauthorizedAmountFromDTO unauthorizedFromDto = new EpdcUnauthorizedAmountFromDTO(); + unauthorizedFromDto.setGridId(formDto.getDeptId()); + Result unauthorizedResult = this.getUnauthorizedAmount(unauthorizedFromDto); + + // 组装返回数据 + List resultDtoList = new ArrayList<>(); + for (EpdcAppIndexPanelResultDTO indexPanelDto: + adminResult.getData()) { + for (EpdcAppChildNavResultDTO childDto: + indexPanelDto.getChildNav()) { + WorkAppMenuStatisticsResultDTO resultDto = null; + switch (childDto.getNavCode()) { + case WorkAppMenuConstant.WORK_APP_MENU_CODE_ISSUE_WAITING_RESPOND: + resultDto = this.packageMenuData(childDto.getNavCode(), issueResult.getData().getPendingResponseNum()); + break; + case WorkAppMenuConstant.WORK_APP_MENU_CODE_ISSUE_WAITING_HANDLE: + resultDto = this.packageMenuData(childDto.getNavCode(), issueResult.getData().getPendingHandleNum()); + break; + case WorkAppMenuConstant.WORK_APP_MENU_CODE_ITEM_WAITING_HANDLE: + resultDto = this.packageMenuData(childDto.getNavCode(), itemResult.getData().getPendingHandleNum()); + break; + case WorkAppMenuConstant.WORK_APP_MENU_CODE_USER_RESIDENTS_TO_BE_CERTIFIED: + resultDto = this.packageMenuData(childDto.getNavCode(), unauthorizedResult.getData()); + break; + case WorkAppMenuConstant.WORK_APP_MENU_CODE_NOTICE: + resultDto = this.packageMenuData(childDto.getNavCode(), itemResult.getData().getNoticeNum()); + break; + default: + break; + } + if (null != resultDto) { + resultDtoList.add(resultDto); + } + } + } + + return new Result>().ok(resultDtoList); + } + + /** + * + * 组装菜单数据 + * + * @params [menuCode, menuNum] + * @return com.elink.esua.epdc.dto.result.WorkAppMenuStatisticsResultDTO + * @author liuchuang + * @since 2019/11/29 9:58 + */ + private WorkAppMenuStatisticsResultDTO packageMenuData(String menuCode, Integer menuNum) { + WorkAppMenuStatisticsResultDTO resultDto = new WorkAppMenuStatisticsResultDTO(); + resultDto.setMenuCode(menuCode); + resultDto.setMenuNum(menuNum); + return resultDto; + } }