Browse Source

Merge branch 'refs/heads/lijianlin/feature-20250710152503-二期工作台与部分权限' into milestone-20250711-金币重构二期

huangqizheng/feature-20250714180618-数据同步
lijianlin 1 month ago
parent
commit
fe7be57d2e
  1. 12
      src/main/java/com/example/demo/controller/PermissionController.java
  2. 6
      src/main/java/com/example/demo/controller/WorkbenchController.java
  3. 95
      src/main/java/com/example/demo/domain/vo/AdminVo.java
  4. 2
      src/main/java/com/example/demo/domain/vo/WorkbenchCard.java
  5. 5
      src/main/java/com/example/demo/domain/vo/WorkbenchMarketCard.java
  6. 1
      src/main/java/com/example/demo/mapper/PermissionMapper.java
  7. 4
      src/main/java/com/example/demo/service/PermissionService.java
  8. 4
      src/main/java/com/example/demo/service/WorkbenchService.java
  9. 32
      src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java
  10. 14
      src/main/java/com/example/demo/serviceImpl/WorkbenchServiceImpl.java
  11. 2
      src/main/resources/mapper/AuditMapper.xml
  12. 21
      src/main/resources/mapper/PermissionMapper.xml

12
src/main/java/com/example/demo/controller/PermissionController.java

@ -39,6 +39,7 @@ public class PermissionController {
public Result getPermission(@RequestBody Page page){ public Result getPermission(@RequestBody Page page){
return Result.success(permissionService.getpermission(page.getPageNum(), page.getPageSize(), page.getPermission())); return Result.success(permissionService.getpermission(page.getPageNum(), page.getPageSize(), page.getPermission()));
} }
//新增用户
@PostMapping("/addPermission") @PostMapping("/addPermission")
public Result addPermission(@RequestBody Admin admin) throws Exception { public Result addPermission(@RequestBody Admin admin) throws Exception {
System.out.println( admin); System.out.println( admin);
@ -50,6 +51,17 @@ public class PermissionController {
return Result.error(e.getMessage()); return Result.error(e.getMessage());
} }
} }
//编辑用户
@PostMapping("/updateAdmin")
public Result updateAdmin(@RequestBody Admin admin) throws Exception {
try {
return Result.success(permissionService.updateAdmin(admin));
}
catch (Exception e) {
log.error(Arrays.toString(e.getStackTrace()));
return Result.error(e.getMessage());
}
}
@PostMapping("/getRole") @PostMapping("/getRole")
public Result getRole(@RequestBody String token){ public Result getRole(@RequestBody String token){
return Result.success(permissionService.getRole(token)); return Result.success(permissionService.getRole(token));

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

@ -43,7 +43,7 @@ public class WorkbenchController {
*/ */
@PostMapping("getCard") @PostMapping("getCard")
public ResponseEntity<WorkbenchCard> card1(@RequestBody WorkbenchCard workbench){ public ResponseEntity<WorkbenchCard> card1(@RequestBody WorkbenchCard workbench){
WorkbenchCard result =workbenchService.getCard(workbench.getToken());
WorkbenchCard result =workbenchService.getCard();
return ResponseEntity.ok(result); return ResponseEntity.ok(result);
} }
/* /*
@ -51,7 +51,7 @@ public class WorkbenchController {
*/ */
@PostMapping("getGraph") @PostMapping("getGraph")
public ResponseEntity<WorkbenchCard> graph1(@RequestBody WorkbenchCard workbench){ public ResponseEntity<WorkbenchCard> graph1(@RequestBody WorkbenchCard workbench){
WorkbenchCard result =workbenchService.getGraph(workbench.getToken(),workbench.getStartDate(),workbench.getEndDate(),workbench.getMarkets());
WorkbenchCard result =workbenchService.getGraph(workbench.getStartDate(),workbench.getEndDate(),workbench.getMarkets());
return ResponseEntity.ok(result); return ResponseEntity.ok(result);
} }
/* /*
@ -61,7 +61,7 @@ public class WorkbenchController {
public ResponseEntity<WorkbenchCard> updateCard(@RequestBody WorkbenchCard workbench){ public ResponseEntity<WorkbenchCard> updateCard(@RequestBody WorkbenchCard workbench){
statisticsService.runHourlyTaskPart1(); //更新余量数据 statisticsService.runHourlyTaskPart1(); //更新余量数据
statisticsService.runHourlyTaskPart2(); //更新余量外数据 statisticsService.runHourlyTaskPart2(); //更新余量外数据
WorkbenchCard result =workbenchService.getCard(workbench.getToken()); //获取卡片数据
WorkbenchCard result =workbenchService.getCard(); //获取卡片数据
return ResponseEntity.ok(result); return ResponseEntity.ok(result);
} }
} }

95
src/main/java/com/example/demo/domain/vo/AdminVo.java

@ -0,0 +1,95 @@
package com.example.demo.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import java.io.Serializable;
import java.util.*;
@Data
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class AdminVo implements UserDetails, Serializable {
private static final long serialVersionUID = 1L;
private Integer id; // 主键ID
private String adminName; // 用户姓名
private String account; // 账号
private String password; // 密码
private String machineId; // 第一个机器码
private String machineIds; //第二个机器码
private Byte adminStatus; // 状态启用/不启用
private String market; // 地区
private String postiton; // 职位
private String remark; // 备注
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date createTime; // 创建时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date updateTime; // 更新时间
private Integer roleId;
@Override
@JsonIgnore
public Collection<? extends GrantedAuthority> getAuthorities() {
Set<GrantedAuthority> authorities = new HashSet<>();
Optional.ofNullable(postiton)
.map(Integer::valueOf)
.ifPresent(permValue -> {
switch (permValue) {
case 1:
authorities.add(new SimpleGrantedAuthority("ROLE_SUPER_ADMIN"));
break;
case 2:
authorities.add(new SimpleGrantedAuthority("ROLE_ADMIN"));
break;
case 3:
authorities.add(new SimpleGrantedAuthority("ROLE_AUDITORS"));
break;
case 5:
authorities.add(new SimpleGrantedAuthority("Branch_Manager"));
break;
default:
// 可以添加默认角色或处理未知权限
break;
}
});
return authorities;
}
@Override
public String getUsername() {
return account;
}
@Override
@JsonIgnore
public boolean isAccountNonExpired() {
return true; // 默认账户未过期
}
@Override
@JsonIgnore
public boolean isAccountNonLocked() {
return true; // 默认账户未锁定
}
@Override
@JsonIgnore
public boolean isCredentialsNonExpired() {
return true; // 默认凭证未过期
}
@Override
@JsonIgnore
public boolean isEnabled() {
return adminStatus != null && adminStatus == 1;
}
}

2
src/main/java/com/example/demo/domain/vo/WorkbenchCard.java

@ -22,7 +22,7 @@ import java.util.List;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class WorkbenchCard implements Serializable { public class WorkbenchCard implements Serializable {
private String token; //用户token
//private String token; //用户token
private List<WorkbenchMarketCard> marketCards; // 地区卡片数据 private List<WorkbenchMarketCard> marketCards; // 地区卡片数据
private List<WorkbenchMarketGraph> marketGraphs; // 地区图表数据 private List<WorkbenchMarketGraph> marketGraphs; // 地区图表数据
private List<String> markets; // 地区列表 private List<String> markets; // 地区列表

5
src/main/java/com/example/demo/domain/vo/WorkbenchMarketCard.java

@ -1,10 +1,12 @@
package com.example.demo.domain.vo; package com.example.demo.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* @program: gold-java * @program: gold-java
@ -59,6 +61,9 @@ public class WorkbenchMarketCard implements Serializable {
private Integer sumDaily; // 总日环比% private Integer sumDaily; // 总日环比%
private Integer yearlyRechargeNum; // 全年累计充值人头数 private Integer yearlyRechargeNum; // 全年累计充值人头数
//更新时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date updateTime;
//图表 //图表
private Integer SumRechargePermanent; //合计充值永久金币 private Integer SumRechargePermanent; //合计充值永久金币
private Integer SumRechargeFree; //合计充值免费金币 private Integer SumRechargeFree; //合计充值免费金币

1
src/main/java/com/example/demo/mapper/PermissionMapper.java

@ -28,4 +28,5 @@ public interface PermissionMapper {
Integer deleteAdmin(Integer id); Integer deleteAdmin(Integer id);
Integer deleteAdminRole(Integer id); Integer deleteAdminRole(Integer id);
Integer updateAdminRole(AdminRole adminRole); Integer updateAdminRole(AdminRole adminRole);
Integer updateAdmin(Admin admin);
} }

4
src/main/java/com/example/demo/service/PermissionService.java

@ -3,11 +3,9 @@ package com.example.demo.service;
import com.example.demo.domain.entity.Admin; import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.entity.AdminRole; import com.example.demo.domain.entity.AdminRole;
import com.example.demo.domain.entity.Role; import com.example.demo.domain.entity.Role;
import com.example.demo.domain.vo.Page;
import com.example.demo.domain.vo.Permission; import com.example.demo.domain.vo.Permission;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import javax.swing.*;
import java.util.List; import java.util.List;
/** /**
@ -27,4 +25,6 @@ public interface PermissionService {
Integer deleteAdmin(Integer id); Integer deleteAdmin(Integer id);
Integer updateAdminRole(AdminRole adminRole); Integer updateAdminRole(AdminRole adminRole);
Integer upadatePermission(Admin admin) throws Exception; Integer upadatePermission(Admin admin) throws Exception;
Object updateAdmin(Admin admin)throws Exception;
} }

4
src/main/java/com/example/demo/service/WorkbenchService.java

@ -20,11 +20,11 @@ import java.util.Map;
public interface WorkbenchService { public interface WorkbenchService {
//获取不同地区的工作台统计卡片 //获取不同地区的工作台统计卡片
WorkbenchCard getCard(String token);
WorkbenchCard getCard( );
//获取卡片数据 //获取卡片数据
WorkbenchMarketCard createWorkbenchMarketCard(String market, Statistics currentStatistics,Statistics ydayStatistics, Date yearlyStartDate, Date currentDate); WorkbenchMarketCard createWorkbenchMarketCard(String market, Statistics currentStatistics,Statistics ydayStatistics, Date yearlyStartDate, Date currentDate);
//获取不同地区的工作台柱状图数据根据类型起止时间地区查询 //获取不同地区的工作台柱状图数据根据类型起止时间地区查询
WorkbenchCard getGraph(String token, Date startDate, Date endDate, List<String> markets);
WorkbenchCard getGraph(Date startDate, Date endDate, List<String> markets);
//根据类型获取年初至今的统计数据 //根据类型获取年初至今的统计数据
Map<String, Integer> calculateAllSum(String market, Date startDate, Date endDate); Map<String, Integer> calculateAllSum(String market, Date startDate, Date endDate);
//获取该日期该市场的日环比 //获取该日期该市场的日环比

32
src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java

@ -3,9 +3,7 @@ package com.example.demo.serviceImpl;
import com.example.demo.domain.entity.Admin; import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.entity.AdminRole; import com.example.demo.domain.entity.AdminRole;
import com.example.demo.domain.entity.Role; import com.example.demo.domain.entity.Role;
import com.example.demo.domain.entity.User;
import com.example.demo.domain.vo.Permission; import com.example.demo.domain.vo.Permission;
import com.example.demo.domain.vo.Result;
import com.example.demo.mapper.AdminMapper; import com.example.demo.mapper.AdminMapper;
import com.example.demo.mapper.PermissionMapper; import com.example.demo.mapper.PermissionMapper;
import com.example.demo.service.PermissionService; import com.example.demo.service.PermissionService;
@ -111,10 +109,40 @@ public class PermissionServiceImpl implements PermissionService {
return permissionMapper.updateAdminRole(adminRole); return permissionMapper.updateAdminRole(adminRole);
} }
//修改管理员状态启用 不启用
@Override @Override
public Integer upadatePermission(Admin admin) throws Exception { public Integer upadatePermission(Admin admin) throws Exception {
return permissionMapper.updatePermission(admin); return permissionMapper.updatePermission(admin);
} }
@Override
public Object updateAdmin(Admin admin)throws Exception {
if(ObjectUtils.isEmpty(admin.getAccount())){
throw new Exception("账号为空!");
}
if(ObjectUtils.isEmpty( admin.getMarket())){
throw new Exception("地区为空!");
}
if(ObjectUtils.isEmpty( admin.getPostiton())){
throw new Exception("职位为空!");
}
if(ObjectUtils.isEmpty( admin.getAdminName())){
throw new Exception("用户名为空!");
}
if(ObjectUtils.isEmpty( admin.getMachineId())){
throw new Exception("机器编号为空!");
}
if (admin.getMachineId().contains(",")) {
throw new Exception("机器编号格式错误");
}
else {
return permissionMapper.updateAdmin(admin);
}
}
} }

14
src/main/java/com/example/demo/serviceImpl/WorkbenchServiceImpl.java

@ -39,7 +39,7 @@ public class WorkbenchServiceImpl implements WorkbenchService {
@Autowired @Autowired
private StatisticsMapper statisticsMapper; private StatisticsMapper statisticsMapper;
@Override @Override
public WorkbenchCard getCard(String token) {
public WorkbenchCard getCard( ) {
Date date=new Date();//当天 Date date=new Date();//当天
Date yday=generalService.getYesterday(); Date yday=generalService.getYesterday();
// 获取开始时间和结束时间当天 // 获取开始时间和结束时间当天
@ -83,7 +83,7 @@ public class WorkbenchServiceImpl implements WorkbenchService {
// 收集并行流结果为列表 // 收集并行流结果为列表
.collect(Collectors.toList()); .collect(Collectors.toList());
return new WorkbenchCard(token, marketCards,new ArrayList<>(), markets, date, date);
return new WorkbenchCard( marketCards,new ArrayList<>(), markets, date, date);
} }
/* /*
@ -97,7 +97,6 @@ public class WorkbenchServiceImpl implements WorkbenchService {
if (currentStatistics != null&& ydayStatistics != null) { if (currentStatistics != null&& ydayStatistics != null) {
// 一次性获取全年统计数据从年初到今天 // 一次性获取全年统计数据从年初到今天
Map<String, Integer> yearlyStats = calculateAllSum(market, yearlyStartDate, date); Map<String, Integer> yearlyStats = calculateAllSum(market, yearlyStartDate, date);
// 卡片一当前金币相关 // 卡片一当前金币相关
card.setCurrentPermanent(currentStatistics.getCurrentPermanent());//余量-永久金币 card.setCurrentPermanent(currentStatistics.getCurrentPermanent());//余量-永久金币
card.setCurrentFreeJune(currentStatistics.getCurrentFreeJune()); //余量-免费六月金币 card.setCurrentFreeJune(currentStatistics.getCurrentFreeJune()); //余量-免费六月金币
@ -127,25 +126,24 @@ public class WorkbenchServiceImpl implements WorkbenchService {
card.setDailyReduce(totalConsume - totalRefund);//昨日总消耗 card.setDailyReduce(totalConsume - totalRefund);//昨日总消耗
card.setYearlyConsume(yearlyStats.getOrDefault("consume", 0)); // 年累计消费 card.setYearlyConsume(yearlyStats.getOrDefault("consume", 0)); // 年累计消费
card.setYearlyRefund(yearlyStats.getOrDefault("refund", 0)); // 年累计退款 card.setYearlyRefund(yearlyStats.getOrDefault("refund", 0)); // 年累计退款
card.setYearlyReduce(card.getYearlyConsume() - card.getYearlyRefund());//年累计消耗 card.setYearlyReduce(card.getYearlyConsume() - card.getYearlyRefund());//年累计消耗
// 卡片四人头数相关 // 卡片四人头数相关
card.setRechargeNum(currentStatistics.getRechargeNum()); card.setRechargeNum(currentStatistics.getRechargeNum());
card.setFirstRecharge(currentStatistics.getFirstRecharge()); card.setFirstRecharge(currentStatistics.getFirstRecharge());
card.setYearlyRechargeNum(yearlyStats.getOrDefault("rechargeNum", 0)); card.setYearlyRechargeNum(yearlyStats.getOrDefault("rechargeNum", 0));
// 周环比日同比 // 周环比日同比
card.setWow(calculateWeekOverWeek(market, currentDate)); card.setWow(calculateWeekOverWeek(market, currentDate));
card.setSumWow(calculateAllWeekOverWeek(date)); card.setSumWow(calculateAllWeekOverWeek(date));
card.setDaily(calculateDayOverDay(market, currentDate)); card.setDaily(calculateDayOverDay(market, currentDate));
card.setSumDaily(calculateAllDayOverDay(date)); card.setSumDaily(calculateAllDayOverDay(date));
//更新时间
card.setUpdateTime(currentStatistics.getUpdateTime());
} }
return card; return card;
} }
@Override @Override
public WorkbenchCard getGraph(String token, Date startDate, Date endDate, List<String> markets) {
public WorkbenchCard getGraph( Date startDate, Date endDate, List<String> markets) {
List<WorkbenchMarketGraph> marketGraphs = new ArrayList<>(); List<WorkbenchMarketGraph> marketGraphs = new ArrayList<>();
for (String market : markets) { for (String market : markets) {
@ -161,7 +159,7 @@ public class WorkbenchServiceImpl implements WorkbenchService {
graphs.setSumConsume(sums.get("consume")); graphs.setSumConsume(sums.get("consume"));
marketGraphs.add(graphs); marketGraphs.add(graphs);
} }
return new WorkbenchCard(token, new ArrayList<>(),marketGraphs,markets,startDate,endDate);
return new WorkbenchCard(new ArrayList<>(),marketGraphs,markets,startDate,endDate);
} }
/* /*

2
src/main/resources/mapper/AuditMapper.xml

@ -23,7 +23,7 @@
current_free_june = current_free_june + COALESCE(#{currentFreeJune},0), current_free_june = current_free_june + COALESCE(#{currentFreeJune},0),
current_free_december = current_free_december + COALESCE(#{currentFreeDecember},0), current_free_december = current_free_december + COALESCE(#{currentFreeDecember},0),
current_task_gold = current_task_gold + COALESCE(#{currentTaskGold},0), current_task_gold = current_task_gold + COALESCE(#{currentTaskGold},0),
recharge_num = recharge_num + COALESCE(#{rechargeNum},0)
recharge_num = #{rechargeNum}
where jwcode = #{jwcode} where jwcode = #{jwcode}
</update> </update>

21
src/main/resources/mapper/PermissionMapper.xml

@ -27,6 +27,27 @@
</set> </set>
where admin_id= #{id} where admin_id= #{id}
</update> </update>
<update id="updateAdmin">
update admin
<set>
<if test="adminName!=null">
admin_name= #{adminName},
</if>
<if test="machineId!=null">
machine_id= #{machineId},
</if>
<if test="postiton!=null">
postiton= #{postiton},
</if>
<if test="remark!=null">
remark= #{remark},
</if>
<if test="market!=null">
market= #{market}
</if>
</set>
where account= #{account}
</update>
<delete id="deleteAdmin"> <delete id="deleteAdmin">
delete from admin where id=#{id} delete from admin where id=#{id}
</delete> </delete>

Loading…
Cancel
Save