Commit 5f067299 by wangxin

消息数量接口

parent 3793be10
package com.yizhi.application.promptStatistics; package com.yizhi.application.promptStatistics;
import com.yizhi.application.vo.PromptItemVO;
import com.yizhi.application.vo.PromptStatisticsVO; import com.yizhi.application.vo.PromptStatisticsVO;
import com.yizhi.core.application.context.ContextHolder; import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext; import com.yizhi.core.application.context.RequestContext;
...@@ -24,7 +25,9 @@ import org.springframework.web.bind.annotation.GetMapping; ...@@ -24,7 +25,9 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Map; import java.util.Map;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
...@@ -86,6 +89,42 @@ public class PromptStatisticsController { ...@@ -86,6 +89,42 @@ public class PromptStatisticsController {
return Response.fail("500", "获取提示统计信息失败"); return Response.fail("500", "获取提示统计信息失败");
} }
} }
@ApiOperation(value = "获取提示统计信息列表", notes = "获取提示统计信息列表,返回类型和数量的映射")
@GetMapping("/statistics/list")
public Response<List<PromptItemVO>> getPromptStatisticsList() {
try {
List<PromptItemVO> promptList = new ArrayList<>();
RequestContext context = ContextHolder.get();
// 1. 获取工作任务数量(调研表biz_type=1,已上架且处于调研期间)
Integer workTaskCount = getWorkTaskCount(context);
promptList.add(new PromptItemVO("工作任务", workTaskCount));
// 2. 获取主题活动数量(培训项目已上架未结束)
Integer themeActivityCount = getThemeActivityCount(context);
promptList.add(new PromptItemVO("主题活动", themeActivityCount));
// 3. 获取我要投票数量(调研表biz_type=2,已上架)
Integer voteCount = getVoteCount(context);
promptList.add(new PromptItemVO("我要投票", voteCount));
// 4. 获取培训测试数量(考试相关的提示数量)
Integer trainingTestCount = getTrainingTestCount(context);
promptList.add(new PromptItemVO("培训测试", trainingTestCount));
// 5. 检查用户是否有权限查看信箱,如果有权限则添加信箱提示数量
if (hasMailboxPermission()) {
Integer mailboxCount = getMailboxCount(context);
promptList.add(new PromptItemVO("信箱", mailboxCount));
}
return Response.ok(promptList);
} catch (Exception e) {
LOGGER.error("获取提示统计信息列表失败", e);
return Response.fail("500", "获取提示统计信息列表失败");
}
}
/** /**
* 获取工作任务数量 * 获取工作任务数量
...@@ -225,4 +264,17 @@ public class PromptStatisticsController { ...@@ -225,4 +264,17 @@ public class PromptStatisticsController {
return 0; return 0;
} }
} }
/**
* 检查用户是否有权限查看信箱
* @return
*/
private boolean hasMailboxPermission() {
try {
// 调用SystemMailboxClients的hasPermission方法检查权限
return systemMailboxClients.hasPermission();
} catch (Exception e) {
LOGGER.error("检查用户信箱权限失败", e);
return false;
}
}
} }
\ No newline at end of file
package com.yizhi.application.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("提示项VO")
public class PromptItemVO {
@ApiModelProperty(value = "提示类型")
private String type;
@ApiModelProperty(value = "提示数量")
private Integer num;
public PromptItemVO() {}
public PromptItemVO(String type, Integer num) {
this.type = type;
this.num = num;
}
}
\ No newline at end of file
package com.yizhi.application.promptStatistics; package com.yizhi.application.promptStatistics;
import com.yizhi.application.vo.PromptItemVO;
import com.yizhi.application.vo.PromptStatisticsVO; import com.yizhi.application.vo.PromptStatisticsVO;
import com.yizhi.core.application.context.ContextHolder; import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext; import com.yizhi.core.application.context.RequestContext;
import com.yizhi.site.application.feign.api.SystemMailboxClients;
import com.yizhi.site.application.vo.domain.SystemMailboxParamVo;
import com.yizhi.research.application.feign.ResearchClient; import com.yizhi.research.application.feign.ResearchClient;
import com.yizhi.research.application.vo.BaseModel; import com.yizhi.research.application.vo.BaseModel;
import com.yizhi.research.application.vo.api.PageVo; import com.yizhi.research.application.vo.api.PageVo;
import com.yizhi.site.application.feign.api.SystemMailboxClients;
import com.yizhi.site.application.vo.domain.SystemMailboxParamVo;
import com.yizhi.training.application.feign.TrainingProjectClient; import com.yizhi.training.application.feign.TrainingProjectClient;
import com.yizhi.training.application.vo.api.TrainingProjectMyParamVo; import com.yizhi.training.application.vo.api.TrainingProjectMyParamVo;
import com.yizhi.util.application.domain.Response; import com.yizhi.util.application.domain.Response;
...@@ -24,7 +25,9 @@ import org.springframework.web.bind.annotation.GetMapping; ...@@ -24,7 +25,9 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Map; import java.util.Map;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
...@@ -87,6 +90,43 @@ public class PromptStatisticsController { ...@@ -87,6 +90,43 @@ public class PromptStatisticsController {
} }
} }
@ApiOperation(value = "获取提示统计信息列表", notes = "获取提示统计信息列表,返回类型和数量的映射")
@GetMapping("/statistics/list")
public Response<List<PromptItemVO>> getPromptStatisticsList() {
try {
List<PromptItemVO> promptList = new ArrayList<>();
RequestContext context = ContextHolder.get();
// 1. 获取工作任务数量(调研表biz_type=1,已上架且处于调研期间)
Integer workTaskCount = getWorkTaskCount(context);
promptList.add(new PromptItemVO("工作任务", workTaskCount));
// 2. 获取主题活动数量(培训项目已上架未结束)
Integer themeActivityCount = getThemeActivityCount(context);
promptList.add(new PromptItemVO("主题活动", themeActivityCount));
// 3. 获取我要投票数量(调研表biz_type=2,已上架)
Integer voteCount = getVoteCount(context);
promptList.add(new PromptItemVO("我要投票", voteCount));
// 4. 获取培训测试数量(考试相关的提示数量)
Integer trainingTestCount = getTrainingTestCount(context);
promptList.add(new PromptItemVO("培训测试", trainingTestCount));
// 5. 检查用户是否有权限查看信箱,如果有权限则添加信箱提示数量
if (hasMailboxPermission()) {
Integer mailboxCount = getMailboxCount(context);
promptList.add(new PromptItemVO("信箱", mailboxCount));
}
return Response.ok(promptList);
} catch (Exception e) {
LOGGER.error("获取提示统计信息列表失败", e);
return Response.fail("500", "获取提示统计信息列表失败");
}
}
/** /**
* 获取工作任务数量 * 获取工作任务数量
* @param context * @param context
...@@ -225,4 +265,18 @@ public class PromptStatisticsController { ...@@ -225,4 +265,18 @@ public class PromptStatisticsController {
return 0; return 0;
} }
} }
/**
* 检查用户是否有权限查看信箱
* @return
*/
private boolean hasMailboxPermission() {
try {
// 调用SystemMailboxClients的hasPermission方法检查权限
return systemMailboxClients.hasPermission();
} catch (Exception e) {
LOGGER.error("检查用户信箱权限失败", e);
return false;
}
}
} }
\ No newline at end of file
package com.yizhi.application.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("提示项VO")
public class PromptItemVO {
@ApiModelProperty(value = "提示类型")
private String type;
@ApiModelProperty(value = "提示数量")
private Integer num;
public PromptItemVO() {}
public PromptItemVO(String type, Integer num) {
this.type = type;
this.num = num;
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment