Browse Source

Merge remote-tracking branch 'origin/milestone-20250711-金币重构二期' into milestone-20250711-金币重构二期

huangqizheng/feature-20250718222252-导出修改完毕
huangqizhen 1 month ago
parent
commit
a7c989f345
  1. 1
      src/main/java/com/example/demo/controller/ConsumeController.java
  2. 13
      src/main/java/com/example/demo/controller/GeneralController.java
  3. 39
      src/main/java/com/example/demo/controller/RoleController.java
  4. 26
      src/main/java/com/example/demo/controller/WorkbenchController.java
  5. 5
      src/main/java/com/example/demo/domain/entity/Admin.java
  6. 6
      src/main/java/com/example/demo/domain/vo/AdminVo.java
  7. 3
      src/main/java/com/example/demo/domain/vo/ConsumeUser.java
  8. 1
      src/main/java/com/example/demo/domain/vo/Page.java
  9. 3
      src/main/java/com/example/demo/domain/vo/RechargeUser.java
  10. 3
      src/main/java/com/example/demo/domain/vo/RefundUser.java
  11. 5
      src/main/java/com/example/demo/domain/vo/RoleVo.java
  12. 2
      src/main/java/com/example/demo/mapper/GeneralMapper.java
  13. 15
      src/main/java/com/example/demo/mapper/RoleMapper.java
  14. 3
      src/main/java/com/example/demo/service/AdminService.java
  15. 3
      src/main/java/com/example/demo/service/GeneralService.java
  16. 12
      src/main/java/com/example/demo/service/RoleService.java
  17. 4
      src/main/java/com/example/demo/service/WorkbenchService.java
  18. 34
      src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java
  19. 23
      src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java
  20. 11
      src/main/java/com/example/demo/serviceImpl/GeneralServiceImpl.java
  21. 4
      src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java
  22. 15
      src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java
  23. 14
      src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java
  24. 74
      src/main/java/com/example/demo/serviceImpl/RoleServiceImpl.java
  25. 14
      src/main/java/com/example/demo/serviceImpl/WorkbenchServiceImpl.java
  26. 12
      src/main/resources/mapper/ConsumeMapper.xml
  27. 5
      src/main/resources/mapper/GeneralMapper.xml
  28. 40
      src/main/resources/mapper/RoleMapper.xml

1
src/main/java/com/example/demo/controller/ConsumeController.java

@ -47,6 +47,7 @@ public class ConsumeController {
return Result.success(consumeService.selectAll(page.getPageNum(), page.getPageSize(),page.getConsumeUser()));
}
} catch (Exception e) {
e.printStackTrace();
return Result.error("请检查筛选数据的格式");
}

13
src/main/java/com/example/demo/controller/GeneralController.java

@ -1,14 +1,12 @@
package com.example.demo.controller;
import com.example.demo.domain.vo.AdminVo;
import com.example.demo.domain.vo.Result;
import com.example.demo.service.GeneralService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -35,6 +33,13 @@ public class GeneralController {
List<String> list = generalService.getMarket();
return Result.success(list);
}
//获取角色地区权限列表
@PostMapping("/roleMarkets")
public Result getRoleMarkets(@RequestBody AdminVo adminVo) throws Exception {
String account = adminVo.getAccount();
List<String> list = generalService.getRoleMarket(account);
return Result.success(list);
}
@PostMapping("/platform")
public Result getPlatform()
{

39
src/main/java/com/example/demo/controller/RoleController.java

@ -39,6 +39,12 @@ public class RoleController {
return roleService.addRole(roleVo);
}
//删除角色
@PostMapping("/delete")
public Result deleteRole(@RequestBody RoleVo roleVo) {
return roleService.deleteRole(roleVo);
}
//查找全部角色
@PostMapping("/selectAll")
@ -48,10 +54,37 @@ public class RoleController {
}
//获取上级角色的下属角色列表
@PostMapping("/selectSub")
public List<RoleVo> selectSub(Integer fatherId) {
return roleService.selectSubRole(fatherId);
public Result selectSub(@RequestBody RoleVo roleVo) {
Integer id = roleVo.getId();
List<RoleVo> list=roleService.selectSubRole(id);
return Result.success(list);
}
//获取当前角色的上级角色
@PostMapping("/selectFather")
public Result selectFather(@RequestBody RoleVo roleVo) {
Integer id = roleVo.getId();
RoleVo role = roleService.selectFather(id);
return Result.success(role);
}
//角色明细筛选
@PostMapping("/selectBy")
public Result selectBy(@RequestBody Page page) {
try {
//页码校验
if (ObjectUtils.isEmpty(page.getPageNum())) {
return Result.error("页码数为空!");
}
//页面大小校验
if (ObjectUtils.isEmpty(page.getPageSize())) {
return Result.error("页大小为空!");
} else {
return Result.success(roleService.selectBy(page.getPageNum(), page.getPageSize(), page.getRoleVo()));
}
} catch (Exception e) {
e.printStackTrace();
return Result.error("请检查筛选数据的格式");
}
}
}

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

@ -1,18 +1,25 @@
package com.example.demo.controller;
import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.entity.Statistics;
import com.example.demo.domain.vo.TestRequest;
import com.example.demo.domain.vo.WorkbenchCard;
import com.example.demo.mapper.StatisticsMapper;
import com.example.demo.service.GeneralService;
import com.example.demo.service.StatisticsService;
import com.example.demo.service.WorkbenchService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
@ -36,15 +43,24 @@ public class WorkbenchController {
@Autowired
private StatisticsService statisticsService;
@Autowired
private GeneralService generalService;
@Autowired
private StatisticsMapper statisticsMapper;
/*
获取各地区工作台卡片的数据
*/
@PostMapping("getCard")
public ResponseEntity<WorkbenchCard> card1(@RequestBody WorkbenchCard workbench){
WorkbenchCard result =workbenchService.getCard(workbench.getMarkets());
return ResponseEntity.ok(result);
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);
}
}
/*
获取各地区工作台图表的数据
@ -57,12 +73,12 @@ public class WorkbenchController {
/*
更新统计表并获取卡片数据
*/
@PostMapping("updateCard")
/*@PostMapping("updateCard")
public ResponseEntity<WorkbenchCard> updateCard(@RequestBody WorkbenchCard workbench){
statisticsService.runHourlyTaskPart1(); //更新余量数据
statisticsService.runHourlyTaskPart2(); //更新余量外数据
WorkbenchCard result =workbenchService.getCard(workbench.getMarkets()); //获取卡片数据
return ResponseEntity.ok(result);
}
}*/
}

5
src/main/java/com/example/demo/domain/entity/Admin.java

@ -36,10 +36,7 @@ public class Admin implements UserDetails, Serializable {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date updateTime; // 更新时间
private Integer roleId;
// 添加一个方法来方便测试和调试
// public void setMarket(String marketStr) {
// this.market = Arrays.asList(marketStr.split(","));
//}
@Override
@JsonIgnore

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

@ -24,8 +24,10 @@ public class AdminVo implements UserDetails, Serializable {
private String password; // 密码
private String machineId; // 第一个机器码
private String machineIds; //第二个机器码
private String markets; // 地区
private Byte adminStatus; // 状态启用/不启用
private List<String> market; // 地区
private List<String> market; // 地区列表
private Integer roleId;// 角色ID
private String postiton; // 职位
private String remark; // 备注
@ -34,7 +36,7 @@ public class AdminVo implements UserDetails, Serializable {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date updateTime; // 更新时间
private Integer roleId;
@Override

3
src/main/java/com/example/demo/domain/vo/ConsumeUser.java

@ -10,6 +10,7 @@ import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @program: gold-java
@ -67,4 +68,6 @@ public class ConsumeUser implements Serializable {
private String sortField; //排序字段
@ExcelIgnore
private String sortOrder; //排序顺序
private List<String> markets; // 地区列表
}

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

@ -28,4 +28,5 @@ public class Page {
private RechargeAudit rechargeAudit;
private RefundAudit refundAudit;
private RechargeUser rechargeUser;
private RoleVo roleVo;
}

3
src/main/java/com/example/demo/domain/vo/RechargeUser.java

@ -8,6 +8,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
/**
* @program: gold-java
@ -82,4 +83,6 @@ public class RechargeUser {
private String sortField; //排序字段
@ExcelIgnore
private String sortOrder; //排序顺序
private List<String> markets; // 地区列表
}

3
src/main/java/com/example/demo/domain/vo/RefundUser.java

@ -8,6 +8,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
/**
* @program: gold-java
@ -67,4 +68,6 @@ public class RefundUser {
private String sortField; //排序字段
@ExcelIgnore
private String sortOrder; //排序顺序
private List<String> markets; // 地区列表
}

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

@ -2,6 +2,7 @@ package com.example.demo.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -20,6 +21,7 @@ import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class RoleVo implements Serializable {
private static final long serialVersionUID = 1L;
@ -28,6 +30,7 @@ public class RoleVo implements Serializable {
private String roleKey; // 角色标识符
private Integer priority;//优先级
private Integer fatherId;//上级角色id
private String fatherName;//上级角色名称
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date createTime; // 创建时间
@ -35,4 +38,6 @@ public class RoleVo implements Serializable {
private Date updateTime; // 更新时间
List<Integer> menuIds;//拥有的菜单id
List<MenuVo> tree;//菜单树
}

2
src/main/java/com/example/demo/mapper/GeneralMapper.java

@ -21,4 +21,6 @@ public interface GeneralMapper {
//获取活动
List<String> getActivity();
//获取角色的地区权限列表
String getRoleMarket(String account);
}

15
src/main/java/com/example/demo/mapper/RoleMapper.java

@ -4,6 +4,7 @@ package com.example.demo.mapper;
import com.example.demo.domain.entity.Role;
import com.example.demo.domain.vo.RoleVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Random;
@ -32,5 +33,17 @@ public interface RoleMapper {
//新建角色
void addRole(RoleVo roleVo);
//根据父级id查下属角色
List<RoleVo> selectByFatherId(Integer fatherId);
List<RoleVo> selectByFatherId(@Param("id") Integer id);
//分页查找角色
List<RoleVo> selectBy(RoleVo roleVo);
//删除角色
void deleteRole(RoleVo roleVo);
//删除角色菜单
void deleteRoleMenu(RoleVo roleVo);
//获取当前角色的上级角色
RoleVo selectFather(Integer id);
}

3
src/main/java/com/example/demo/service/AdminService.java

@ -24,5 +24,8 @@ public interface AdminService {
//重置密码
Result resetPassword(Password password);
//获取当前登录的管理员账号
String getCurrentAdminAccount();
}

3
src/main/java/com/example/demo/service/GeneralService.java

@ -32,5 +32,6 @@ public interface GeneralService {
String formatDate(Date date) ;
//获取时间段内的所有日期包含起始和结束日
List<Date> getAllDatesBetween(Date start, Date end);
//获取角色的地区权限列表
List<String> getRoleMarket(String account) throws Exception;
}

12
src/main/java/com/example/demo/service/RoleService.java

@ -1,8 +1,10 @@
package com.example.demo.service;
import com.example.demo.domain.vo.ConsumeUser;
import com.example.demo.domain.vo.Result;
import com.example.demo.domain.vo.RoleVo;
import com.github.pagehelper.PageInfo;
import java.util.List;
@ -23,5 +25,13 @@ public interface RoleService {
//查找全部角色
List<RoleVo> selectAllRole();
//根据父级id查找下属角色
List<RoleVo> selectSubRole(Integer fatherId);
List<RoleVo> selectSubRole(Integer id);
//分页查找角色
PageInfo<RoleVo> selectBy(Integer pageNum, Integer pageSize, RoleVo roleVo);
//删除角色
Result deleteRole(RoleVo roleVo);
//获取当前角色的上级角色
RoleVo selectFather(Integer id);
}

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

@ -32,11 +32,11 @@ public interface WorkbenchService {
//获取该日期该市场的日环比
Integer calculateDayOverDay(String market,Date date);
//获取总体日环比
Integer calculateAllDayOverDay(Date date);
Integer calculateAllDayOverDay(Date date,List<String> markets);
//获取该日期该市场的周同比
Integer calculateWeekOverWeek(String market, Date date);
//获取该日期总体的周同比
Integer calculateAllWeekOverWeek( Date date);
Integer calculateAllWeekOverWeek( Date date,List<String> markets);
//获取与传入的日期相差XX天的日期
Date addDays(Date date, int days);
//获取传入时间所在周的第一天周一

34
src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java

@ -11,6 +11,7 @@ import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
import org.apache.commons.lang3.StringUtils;
@ -53,9 +54,10 @@ public class AdminServiceImpl implements AdminService {
UsernamePasswordAuthenticationToken token =
new UsernamePasswordAuthenticationToken(account, admin.getPassword());
Authentication authentication = authenticationManager.authenticate(token);
SecurityContextHolder.getContext().setAuthentication(authentication); // 存储认证信息
Admin authenticatedAdmin = (Admin) authentication.getPrincipal();
System.out.println("authenticatedAdmin markets: " + authenticatedAdmin.getMarkets()); // 添加日志检查
return (Admin) authentication.getPrincipal();
return authenticatedAdmin;
} catch (Exception e) {
System.out.println("密码错误" + e.getMessage());
@ -179,4 +181,34 @@ public class AdminServiceImpl implements AdminService {
return Result.error("其他错误");
}
}
public String getCurrentAdminAccount() {
// 1. Security 上下文获取认证信息
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
// 2. 校验认证状态未登录则抛出异常
if (authentication == null) {
throw new RuntimeException("当前用户未登录");
}
// 3. 获取登录用户的主体信息principal
Object principal = authentication.getPrincipal();
// 4. 校验主体类型是否为 Admin确保类型匹配
if (!(principal instanceof Admin)) {
throw new RuntimeException("登录用户类型错误,不是 Admin");
}
// 5. 转换为 Admin 对象并获取 account 属性
Admin currentAdmin = (Admin) principal;
String account = currentAdmin.getAccount();
// 6. 校验 account 不为空根据业务需求可选
if (account == null || account.trim().isEmpty()) {
throw new RuntimeException("当前 Admin 的 account 属性为空");
}
return account;
}
}

23
src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java

@ -9,7 +9,9 @@ import com.example.demo.domain.vo.GoldUser;
import com.example.demo.domain.vo.Result;
import com.example.demo.mapper.ConsumeMapper;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.AdminService;
import com.example.demo.service.ConsumeService;
import com.example.demo.service.GeneralService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
@ -42,9 +44,17 @@ public class ConsumeServiceImpl implements ConsumeService {
@Autowired
private UserMapper userMapper;
@Autowired
private AdminService adminService;
@Autowired
private GeneralService generalService;
//消耗明细
@Override
public PageInfo<ConsumeUser> selectAll(Integer pageNum, Integer pageSize, ConsumeUser consumeUser) {
String account = adminService.getCurrentAdminAccount();
List<String> markets = generalService.getRoleMarket(account);
consumeUser.setMarkets(markets);
PageHelper.startPage(pageNum, pageSize);
List<ConsumeUser> consumeUsers = consumeMapper.selectAll(consumeUser);
return new PageInfo<>(consumeUsers);
@ -88,6 +98,9 @@ public class ConsumeServiceImpl implements ConsumeService {
//消耗明细筛选
@Override
public PageInfo<ConsumeUser> selectBy(Integer pageNum, Integer pageSize, ConsumeUser consumeUser) {
String account = adminService.getCurrentAdminAccount();
List<String> markets = generalService.getRoleMarket(account);
consumeUser.setMarkets(markets);
PageHelper.startPage(pageNum, pageSize);
List<ConsumeUser> consumeUsers = consumeMapper.selectBy(consumeUser);
return new PageInfo<>(consumeUsers);
@ -96,14 +109,14 @@ public class ConsumeServiceImpl implements ConsumeService {
//新增消耗
@Override
public Result add(ConsumeUser consumeUser) {
if(consumeUser.getTaskGold()==null||consumeUser.getFreeGold()==null||consumeUser.getPermanentGold()==null){
if (consumeUser.getTaskGold() == null || consumeUser.getFreeGold() == null || consumeUser.getPermanentGold() == null) {
return Result.error("金币数量不能为空");
}
if(consumeUser.getTaskGold()<0||consumeUser.getFreeGold()<0||consumeUser.getPermanentGold()<0){
if (consumeUser.getTaskGold() < 0 || consumeUser.getFreeGold() < 0 || consumeUser.getPermanentGold() < 0) {
return Result.error("金币不能为负数");
}
GoldUser goldUser = userMapper.selectUser(consumeUser.getJwcode().toString());
if(goldUser==null){
if (goldUser == null) {
return Result.error("用户不存在");
}
UserGoldRecord userGoldRecord = new UserGoldRecord();
@ -168,8 +181,8 @@ public class ConsumeServiceImpl implements ConsumeService {
userMapper.updateGold(user);
// if(consumeUser.getJwcode().equals(94226013)){
GoldTistV2.addCoinNew(userGoldRecord.getJwcode().toString(), 65,
(double) (userGoldRecord.getPermanentGold() + userGoldRecord.getFreeDecember() + userGoldRecord.getFreeJune() + userGoldRecord.getTaskGold()) /100,
userGoldRecord.getRemark(),((double) userGoldRecord.getPermanentGold() /100), userGoldRecord.getPayPlatform(), userGoldRecord.getGoodsName());
(double) (userGoldRecord.getPermanentGold() + userGoldRecord.getFreeDecember() + userGoldRecord.getFreeJune() + userGoldRecord.getTaskGold()) / 100,
userGoldRecord.getRemark(), ((double) userGoldRecord.getPermanentGold() / 100), userGoldRecord.getPayPlatform(), userGoldRecord.getGoodsName());
// }
return Result.success();
}

11
src/main/java/com/example/demo/serviceImpl/GeneralServiceImpl.java

@ -108,6 +108,17 @@ public class GeneralServiceImpl implements GeneralService {
return dates;
}
/*
获取角色的地区权限列表
*/
@Override
public List<String> getRoleMarket(String account) throws Exception {
String market = generalMapper.getRoleMarket(account);
if (market == null)
throw new Exception("没有地区权限");
List<String> list = Arrays.asList(market.split(","));
return list;
}
}

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

@ -140,6 +140,10 @@ public class PermissionServiceImpl implements PermissionService {
if (ObjectUtils.isEmpty(adminVo.getAdminName())) {
throw new Exception("用户名为空!");
}
//校验角色是否为空
if (ObjectUtils.isEmpty(adminVo.getRoleId())) {
throw new Exception("角色为空!");
}
// 校验地区是否为空管理员所属地区为必填项
if (ObjectUtils.isEmpty(adminVo.getMarket())) {
throw new Exception("地区为空!");

15
src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java

@ -6,6 +6,8 @@ import com.example.demo.domain.vo.*;
import com.example.demo.mapper.ConsumeMapper;
import com.example.demo.mapper.RechargeMapper;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.AdminService;
import com.example.demo.service.GeneralService;
import com.example.demo.service.RechargeService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -38,9 +40,19 @@ public class RechargeServiceImpl implements RechargeService {
@Autowired
private UserMapper userMapper;
@Autowired
private AdminService adminService;
@Autowired
private GeneralService generalService;
//查询所有充值
@Override
public PageInfo<RechargeUser> selectAll(Integer pageNum, Integer pageSize, RechargeUser rechargeUser) {
String account = adminService.getCurrentAdminAccount();
List<String> markets = generalService.getRoleMarket(account);
rechargeUser.setMarkets(markets);
PageHelper.startPage(pageNum, pageSize);
List<RechargeUser> rechargeUsers = rechargeMapper.selectAll(rechargeUser);
return new PageInfo<>(rechargeUsers);
@ -49,6 +61,9 @@ public class RechargeServiceImpl implements RechargeService {
//查询筛选充值
@Override
public PageInfo<RechargeUser> selectBy(Integer pageNum, Integer pageSize, RechargeUser rechargeUser) {
String account = adminService.getCurrentAdminAccount();
List<String> markets = generalService.getRoleMarket(account);
rechargeUser.setMarkets(markets);
PageHelper.startPage(pageNum, pageSize);
List<RechargeUser> rechargeUsers = rechargeMapper.selectBy(rechargeUser);
return new PageInfo<>(rechargeUsers);

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

@ -5,6 +5,8 @@ import com.example.demo.domain.vo.*;
import com.example.demo.mapper.ConsumeMapper;
import com.example.demo.mapper.RefundMapper;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.AdminService;
import com.example.demo.service.GeneralService;
import com.example.demo.service.RefundService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -44,9 +46,18 @@ public class RefundServiceImpl implements RefundService {
@Autowired
private UserMapper userMapper;
@Autowired
private AdminService adminService;
@Autowired
private GeneralService generalService;
//查找全部退款
@Override
public PageInfo<RefundUser> selectAll(Integer pageNum, Integer pageSize, RefundUser refundUser) {
String account = adminService.getCurrentAdminAccount();
List<String> markets = generalService.getRoleMarket(account);
refundUser.setMarkets(markets);
PageHelper.startPage(pageNum, pageSize);
List<RefundUser> refundUsers = refundMapper.selectAll(refundUser);
return new PageInfo<>(refundUsers);
@ -90,6 +101,9 @@ public class RefundServiceImpl implements RefundService {
//查找筛选退款
@Override
public PageInfo<RefundUser> selectBy(Integer pageNum, Integer pageSize, RefundUser refundUser) {
String account = adminService.getCurrentAdminAccount();
List<String> markets = generalService.getRoleMarket(account);
refundUser.setMarkets(markets);
PageHelper.startPage(pageNum, pageSize);
List<RefundUser> refundUsers = refundMapper.selectBy(refundUser);
return new PageInfo<>(refundUsers);

74
src/main/java/com/example/demo/serviceImpl/RoleServiceImpl.java

@ -1,12 +1,16 @@
package com.example.demo.serviceImpl;
import com.example.demo.domain.entity.Role;
import com.example.demo.domain.vo.ConsumeUser;
import com.example.demo.domain.vo.MenuVo;
import com.example.demo.domain.vo.Result;
import com.example.demo.domain.vo.RoleVo;
import com.example.demo.mapper.RefundMapper;
import com.example.demo.mapper.RoleMapper;
import com.example.demo.service.MenuService;
import com.example.demo.service.RoleService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -35,35 +39,70 @@ public class RoleServiceImpl implements RoleService {
@Transactional
public Result addRole(RoleVo roleVo) {
//校验角色
if(roleVo.getRoleName()==null|| roleVo.getRoleName().isEmpty()){
if (roleVo.getRoleName() == null || roleVo.getRoleName().isEmpty()) {
return Result.error("角色名为空");
}
if(roleMapper.selectByRoleName(roleVo.getRoleName())!=null){
if (roleMapper.selectByRoleName(roleVo.getRoleName()) != null) {
return Result.error("角色名重复");
}
if(roleVo.getPriority()==null){
if (roleVo.getPriority() == null) {
return Result.error("优先级为空");
}
if(roleVo.getMenuIds()==null||roleVo.getMenuIds().isEmpty()){
if (roleVo.getMenuIds() == null || roleVo.getMenuIds().isEmpty()) {
return Result.error("权限为空");
}
else {
if(roleVo.getFatherId() != 2) {
for(Integer menuId : roleVo.getMenuIds()){
if(menuId == 9){
return Result.error("上级角色非管理员用户不能赋予权限管理");
}
}
}
}
try {
roleMapper.addRole(roleVo);
Role role = roleMapper.selectByRoleName(roleVo.getRoleName());
if(role==null){
if (role == null) {
return Result.error("角色添加失败");
}else{
} else {
roleVo.setId(role.getId());
}
menuService.addPermission(roleVo);
}catch (Exception e)
{
} catch (Exception e) {
return Result.error("添加失败");
}
return Result.success("创建成功");
}
//删除角色
@Override
@Transactional
public Result deleteRole(RoleVo roleVo) {
if (roleVo.getId() == null) {
return Result.error("角色id为空");
}
if(roleVo.getId() == 2){
return Result.error("管理员不允许删除");
}
try {
roleMapper.deleteRoleMenu(roleVo);
roleMapper.deleteRole(roleVo);
} catch (Exception e) {
e.printStackTrace();
return Result.error("删除失败");
}
return Result.success("删除成功");
}
@Override
public RoleVo selectFather(Integer id) {
return roleMapper.selectFather(id);
}
//查找全部角色
@Override
public List<RoleVo> selectAllRole() {
@ -71,8 +110,23 @@ public class RoleServiceImpl implements RoleService {
}
@Override
public List<RoleVo> selectSubRole(Integer fatherId) {
return roleMapper.selectByFatherId(fatherId);
public List<RoleVo> selectSubRole(Integer id) {
return roleMapper.selectByFatherId(id);
}
//分页查找角色
@Override
public PageInfo<RoleVo> selectBy(Integer pageNum, Integer pageSize, RoleVo roleVo) {
PageHelper.startPage(pageNum, pageSize);
List<RoleVo> roleVos = roleMapper.selectBy(roleVo);
// 遍历 roleVos 列表
for (RoleVo role : roleVos) {
// 获取每个角色的权限树
List<MenuVo> permissionTree = menuService.getPermissionTree(role.getId());
// 将权限树设置到角色对象中
role.setTree(permissionTree);
}
return new PageInfo<>(roleVos);
}
}

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

@ -63,7 +63,7 @@ public class WorkbenchServiceImpl implements WorkbenchService {
// 获取当前年份的第一天
LocalDate firstDayOfYear = LocalDate.now().withDayOfYear(1);
Date yearlyStartDate = Date.from(firstDayOfYear.atStartOfDay(ZoneId.systemDefault()).toInstant());
markets = generalService.getMarket();
// markets = generalService.getRoleMarket();
// 批量获取统计数据
List<Statistics> currentStatsList = statisticsMapper.selectByMarketsAndDate(markets,
@ -90,8 +90,8 @@ public class WorkbenchServiceImpl implements WorkbenchService {
new Date()))
.collect(Collectors.toList());
Integer sumWow= calculateAllWeekOverWeek(date);
Integer sumDaily=calculateAllDayOverDay(date);
Integer sumWow= calculateAllWeekOverWeek(date,markets);
Integer sumDaily=calculateAllDayOverDay(date, markets);
Date updateTime = findLatestUpdateTime(currentStatsList);
return new WorkbenchCard(marketCards, new ArrayList<>(), markets, new Date(), new Date(),sumWow,sumDaily,updateTime);
@ -274,12 +274,12 @@ public class WorkbenchServiceImpl implements WorkbenchService {
}
// 计算所有市场总体日环比
@Override
public Integer calculateAllDayOverDay(Date date) {
public Integer calculateAllDayOverDay(Date date,List<String> markets) {
//获取今天的开始时间和结束时间
LocalDateTime startTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime().with(LocalTime.MIN);
LocalDateTime endTime= startTime.plusDays(1).minusSeconds(1);
//获取地区列表
List<String> markets = generalService.getMarket();
// List<String> markets = generalService.getMarket();
int currentTotal = 0; //今日所有地区总的充值人数
int yesterdayTotal = 0; //昨日所有地区总的充值人数
@ -324,9 +324,9 @@ public class WorkbenchServiceImpl implements WorkbenchService {
获取改天总体的的周环比
*/
@Override
public Integer calculateAllWeekOverWeek( Date date) {
public Integer calculateAllWeekOverWeek( Date date,List<String> markets) {
List<String> markets = generalService.getMarket();
// List<String> markets = generalService.getMarket();
int thisWeekTotal = 0; //本周至当天充值人数
int lastWeekTotal = 0; //上周至当天充值人数
//获取本周周一

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

@ -21,7 +21,17 @@
user u ON u.jwcode = ugr.jwcode
left JOIN
admin a ON ugr.admin_id = a.id
WHERE ugr.type = 1 AND ugr.flag = 1
<where>
ugr.type = 1 AND ugr.flag = 1
<!-- 判断 market 是否不为总部且 markets 不为空 -->
<if test="markets != null and markets.size() > 0 and '总部' not in markets">
AND u.market IN
<foreach collection="markets" item="market" open="(" close=")" separator=",">
#{market}
</foreach>
</if>
</where>
<trim prefix="ORDER BY" suffixOverrides=",">
<choose>
<!-- 当指定排序字段时使用指定字段排序 -->

5
src/main/resources/mapper/GeneralMapper.xml

@ -14,4 +14,9 @@
<select id="getActivity" resultType="java.lang.String">
select DISTINCT activity from user_gold_record
</select>
<!--获取角色的地区权限列表-->
<select id="getRoleMarket" resultType="java.lang.String">
select market from admin
where account = #{account}
</select>
</mapper>

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

@ -21,11 +21,11 @@
SELECT id,role_name FROM role
</select>
<select id="selectByFatherId" resultType="com.example.demo.domain.vo.RoleVo">
SELECT id,role_name FROM role
SELECT id,role_name,priority FROM role
<where>
father_id = #{fatherId}
father_id = #{id}
</where>
ORDER BY priority
ORDER BY priority desc
</select>
<!-- 插入角色信息 -->
@ -35,4 +35,38 @@
VALUES
(#{roleName}, #{priority}, #{fatherId})
</insert>
<!-- 删除 role_menu 表中对应角色的数据 -->
<delete id="deleteRoleMenu" parameterType="Integer">
DELETE FROM role_menu WHERE role_id = #{id};
</delete>
<!-- 删除 role 表中对应的数据 -->
<delete id="deleteRole" parameterType="Integer">
DELETE FROM role WHERE id = #{id};
</delete>
<!-- 查询筛选后角色记录 -->
<select id="selectBy" resultType="com.example.demo.domain.vo.RoleVo">
SELECT r.id AS id,
r.role_name AS roleName,
r.priority AS priority,
r.father_id AS fatherId,
-- 通过自连接查询父角色名称
father.role_name AS fatherName
FROM role r
-- 自连接,通过 father_id 关联父角色
LEFT JOIN role father ON r.father_id = father.id
<where>
<if test="roleName != null and roleName != ''">
r.role_name LIKE CONCAT('%', #{roleName}, '%')
</if>
</where>
ORDER BY r.priority DESC
</select>
<!--获取当前角色的上级角色-->
<select id="selectFather" resultType="com.example.demo.domain.vo.RoleVo">
select father_id as id from role
where id = #{id}
</select>
</mapper>
Loading…
Cancel
Save