Browse Source

父级角色信息展示,工作台逻辑优化

huangqizheng/feature-20250719105717-后端完毕
lijianlin 4 weeks ago
parent
commit
83e4cb66a8
  1. 24
      src/main/java/com/example/demo/controller/WorkbenchController.java
  2. 1
      src/main/java/com/example/demo/domain/vo/RoleVo.java
  3. 10
      src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java
  4. 4
      src/main/resources/application.yml
  5. 12
      src/main/resources/mapper/RoleMapper.xml

24
src/main/java/com/example/demo/controller/WorkbenchController.java

@ -53,14 +53,22 @@ public class WorkbenchController {
@PostMapping("getCard")
public ResponseEntity<WorkbenchCard> card1(@RequestBody WorkbenchCard workbench,
@AuthenticationPrincipal Admin admin) throws Exception{
if (admin != null) {
String account = admin.getAccount();
List<String> markets = generalService.getRoleMarket(account);
WorkbenchCard result = workbenchService.getCard(markets);
return ResponseEntity.ok(result);
} else {
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(null);
}
if (admin == null) {
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(null);
}
String account = admin.getAccount();
//获取当前用户的市场列表
List<String> markets = generalService.getRoleMarket(account);
WorkbenchCard result;
//判断是否是总部
if (markets != null && markets.contains("总部")) {
result = workbenchService.getCardCache(markets);//走缓存拿全部市场的缓存数据
} else {
result = workbenchService.getCard(markets);//不走缓存计算卡片属性
}
return ResponseEntity.ok(result);
}
/*
获取各地区工作台图表的数据

1
src/main/java/com/example/demo/domain/vo/RoleVo.java

@ -32,6 +32,7 @@ public class RoleVo implements Serializable {
private Integer fatherId;//上级角色id
private String fatherName;//上级角色名称
private String market;//所属市场
private String fatherMarket;//父级角色市场
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date createTime; // 创建时间

10
src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java

@ -39,10 +39,10 @@ public class StatisticsServiceImpl implements StatisticsService {
private WorkbenchService workbenchService;
/*
每小时执行定时任务更新当天part1数据
每小时第十分执行定时任务更新当天part1数据
*/
@Override
@Scheduled(cron = "0 0 * * * ?") // 每小时执行一次
@Scheduled(cron = "0 10 * * * ?") // 每小时执行一次
public void runHourlyTaskPart1() {
Date today = new Date(); //取当天日期
for(String market : generalService.getMarket()){
@ -54,7 +54,7 @@ public class StatisticsServiceImpl implements StatisticsService {
每小时执行定时任务更新当天part2数据
*/
@Override
@Scheduled(cron = "0 0 * * * ?") // 每小时执行一次
@Scheduled(cron = "0 10 * * * ?") // 每小时执行一次
public void runHourlyTaskPart2() {
Date today = new Date(); //取当天日期
for(String market : generalService.getMarket()){
@ -65,7 +65,7 @@ public class StatisticsServiceImpl implements StatisticsService {
每小时执行定时任务更新年度数据
*/
@Override
@Scheduled(cron = "0 0 * * * ?") // 每小时执行一次
@Scheduled(cron = "0 10 * * * ?") // 每小时执行一次
public void runHourlyTaskYear() {
Date today = new Date();
// 获取当前日期
@ -86,7 +86,7 @@ public class StatisticsServiceImpl implements StatisticsService {
0点执行定时任务更新近一周part2数据
*/
@Override
@Scheduled(cron = "0 0 0 * * ?")
@Scheduled(cron = "0 30 0 * * ?") // 修改为每天 00:30 执行
public void runDailyTaskPart2() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_YEAR, -7); // 一周前

4
src/main/resources/application.yml

@ -67,9 +67,9 @@ spring:
data:
redis:
database: 0
host: localhost
host: 18.143.76.3
port: 6379
password: 123456
password: Ngc0FYUTA6h3wC5J
lettuce:
pool:

12
src/main/resources/mapper/RoleMapper.xml

@ -80,8 +80,16 @@
</select>
<!--获取当前角色的上级角色-->
<select id="selectFather" resultType="com.example.demo.domain.vo.RoleVo">
select father_id as id from role
where id = #{id}
select r.id as id,
r.role_name as roleName,
r.market as market,
r.father_id as fatherId,
father.market as fatherMarket,
father.role_name as fatherName
from role as r
-- 自连接,通过 father_id 关联父角色
LEFT JOIN role as father ON r.father_id = father.id
where r.id = #{id}
</select>
</mapper>
Loading…
Cancel
Save