From 9b4f475625eec863e9132093a4dc6f22a8322518 Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Thu, 10 Jul 2025 13:24:41 +0800 Subject: [PATCH 01/19] =?UTF-8?q?=E5=AF=86=E7=A0=81=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/example/demo/domain/vo/Password.java | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/main/java/com/example/demo/domain/vo/Password.java diff --git a/src/main/java/com/example/demo/domain/vo/Password.java b/src/main/java/com/example/demo/domain/vo/Password.java new file mode 100644 index 0000000..545ab2f --- /dev/null +++ b/src/main/java/com/example/demo/domain/vo/Password.java @@ -0,0 +1,30 @@ +package com.example.demo.domain.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @program: gold-java + * @ClassName Password + * @description: + * @author: Double + * @create: 2025−07-10 11:02 + * @Version 1.0 + **/ + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class Password implements Serializable { + + private String account; // 账号 + + private String oldPassword; + + private String newPassword; + + private String againPassword; +} From 47d0e611c877121278aa3c41736a6ec0c2884c39 Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Thu, 10 Jul 2025 15:04:08 +0800 Subject: [PATCH 02/19] =?UTF-8?q?=E5=AF=86=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/demo/controller/AdminController.java | 24 ++++++-- .../java/com/example/demo/mapper/AdminMapper.java | 2 + .../com/example/demo/service/AdminService.java | 4 ++ .../example/demo/serviceImpl/AdminServiceImpl.java | 65 +++++++++++++++++++++- src/main/resources/mapper/AdminMapper.xml | 8 +++ 5 files changed, 96 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/example/demo/controller/AdminController.java b/src/main/java/com/example/demo/controller/AdminController.java index 9be901a..df0a121 100644 --- a/src/main/java/com/example/demo/controller/AdminController.java +++ b/src/main/java/com/example/demo/controller/AdminController.java @@ -3,6 +3,7 @@ package com.example.demo.controller; import com.example.demo.Util.JWTUtil; import com.example.demo.Util.TokenPayload; import com.example.demo.domain.entity.Admin; +import com.example.demo.domain.vo.Password; import com.example.demo.domain.vo.Result; import com.example.demo.service.AdminService; import com.fasterxml.jackson.core.JsonProcessingException; @@ -29,27 +30,29 @@ import org.springframework.web.bind.annotation.*; public class AdminController { @Autowired private AdminService adminService; + @PostMapping("/login") public Result login(@RequestBody Admin admin) { try { admin = adminService.login(admin); String token = JWTUtil.createJWT(admin); - System.out.println( token); + System.out.println(token); admin.setPassword(null); - return Result.success(token,admin); + return Result.success(token, admin); } catch (Exception e) { e.printStackTrace(); log.error(e.getMessage()); return Result.error(e.getMessage()); } } + @PostMapping("/userinfo") public UserDetails getUserInfo(@RequestHeader("token") String token1) { //String token = token1.getToken(); String token = token1; - System.out.println("1/*/*/*/*//*-*-*-*-*-*-1" +token); + System.out.println("1/*/*/*/*//*-*-*-*-*-*-1" + token); try { System.out.println("/+/+/+/+/+/+/+//" + JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class)); return JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class); @@ -59,7 +62,7 @@ public class AdminController { } @PostMapping("/adminId") - public Result selectId(@RequestBody Admin admin ) { + public Result selectId(@RequestBody Admin admin) { try { String ID = adminService.getId(admin.getAccount()); @@ -69,4 +72,17 @@ public class AdminController { return Result.error(e.getMessage()); } } + + + @PostMapping("/password") + public Result updatePassword(@RequestBody Password password){ + + try { + return adminService.updatePassword(password); + } catch (Exception e) { + return Result.error("输入不能为空,请检查"); + } + } + +} diff --git a/src/main/java/com/example/demo/mapper/AdminMapper.java b/src/main/java/com/example/demo/mapper/AdminMapper.java index 410ca90..c1b34f5 100644 --- a/src/main/java/com/example/demo/mapper/AdminMapper.java +++ b/src/main/java/com/example/demo/mapper/AdminMapper.java @@ -16,5 +16,7 @@ public interface AdminMapper { Admin getAdmin(String account); Admin selectByName(String account); Integer getId(String account); + void updatePassword(Admin admin); + } diff --git a/src/main/java/com/example/demo/service/AdminService.java b/src/main/java/com/example/demo/service/AdminService.java index 461b510..5001d7f 100644 --- a/src/main/java/com/example/demo/service/AdminService.java +++ b/src/main/java/com/example/demo/service/AdminService.java @@ -1,6 +1,8 @@ package com.example.demo.service; import com.example.demo.domain.entity.Admin; +import com.example.demo.domain.vo.Password; +import com.example.demo.domain.vo.Result; /** * @program: GOLD @@ -14,4 +16,6 @@ public interface AdminService { Admin login(Admin admin)throws Exception; String getId(String account); + + Result updatePassword(Password password); } diff --git a/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java index a3aa0f6..aee7cb3 100644 --- a/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java @@ -1,24 +1,33 @@ package com.example.demo.serviceImpl; import com.example.demo.domain.entity.Admin; +import com.example.demo.domain.vo.Password; +import com.example.demo.domain.vo.Result; import com.example.demo.mapper.AdminMapper; import com.example.demo.service.AdminService; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; 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.userdetails.UsernameNotFoundException; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.regex.Pattern; + @Service @RequiredArgsConstructor public class AdminServiceImpl implements AdminService { @Autowired - private AuthenticationManager authenticationManager; + private AuthenticationManager authenticationManager; private final AdminMapper adminMapper; @Override @@ -45,12 +54,12 @@ public class AdminServiceImpl implements AdminService { System.out.println("admin:" + account); System.out.println("admin:" + admin.getPassword()); UsernamePasswordAuthenticationToken token = - new UsernamePasswordAuthenticationToken(account,admin.getPassword()); + new UsernamePasswordAuthenticationToken(account, admin.getPassword()); Authentication authentication = authenticationManager.authenticate(token); return (Admin) authentication.getPrincipal(); } catch (Exception e) { - System.out.println("密码错误"+e.getMessage()); + System.out.println("密码错误" + e.getMessage()); throw new RuntimeException("登录失败,请稍后再试", e); } } @@ -72,4 +81,54 @@ public class AdminServiceImpl implements AdminService { } return false; } + + private static final String PASSWORD_REGEX = "^(?![0-9]+$)(?![a-zA-Z]+$)(?!\\W+$).{8,16}$"; + private static final Pattern PASSWORD_PATTERN = Pattern.compile(PASSWORD_REGEX); + + @Override + public Result updatePassword(Password password) { + + String oldPassword = password.getOldPassword(); + String newPassword = password.getNewPassword(); + String againPassword = password.getAgainPassword(); + // 检查两次输入的新密码是否一致 + if (!newPassword.equals(againPassword)) { + return Result.error("两次输入的新密码不一致"); + } + // 检查新密码是否符合复杂度要求 + if (!PASSWORD_PATTERN.matcher(newPassword).matches()) { + return Result.error("新密码必须为8-16位数字、字母或符号组成,且至少包含其中两种"); + } + if(adminMapper.getAdmin(password.getAccount())==null) + { + return Result.error("用户不存在"); + } + try { + // 创建认证令牌并验证旧密码 + UsernamePasswordAuthenticationToken token = + new UsernamePasswordAuthenticationToken(password.getAccount(), oldPassword); + Authentication authentication = authenticationManager.authenticate(token); + + // 获取认证后的用户信息 + Admin admin = (Admin) authentication.getPrincipal(); + + BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); + // 使用Spring管理的密码编码器(不要手动new) + String encodedPassword = passwordEncoder.encode(newPassword); + + // 更新数据库中的密码 + admin.setPassword(encodedPassword); + admin.setUpdateTime(new Date()); // 更新修改时间 + adminMapper.updatePassword(admin); + + return Result.success("密码修改成功"); + + } catch (BadCredentialsException e) { + // 旧密码验证失败 + return Result.error("原密码错误"); + } + catch (Exception e) { + return Result.error("密码更新失败"); + } + } } \ No newline at end of file diff --git a/src/main/resources/mapper/AdminMapper.xml b/src/main/resources/mapper/AdminMapper.xml index daaed4a..15f0e8b 100644 --- a/src/main/resources/mapper/AdminMapper.xml +++ b/src/main/resources/mapper/AdminMapper.xml @@ -14,4 +14,12 @@ select id from admin where account=#{account} + + + + update admin + set password = #{password}, + update_time = #{updateTime} + where account = #{account} + From 3e71823a739db93750969dae2839360bcacf63cd Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Thu, 10 Jul 2025 15:10:11 +0800 Subject: [PATCH 03/19] =?UTF-8?q?=E5=AF=86=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/example/demo/controller/AdminController.java | 2 +- src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/example/demo/controller/AdminController.java b/src/main/java/com/example/demo/controller/AdminController.java index df0a121..10269c3 100644 --- a/src/main/java/com/example/demo/controller/AdminController.java +++ b/src/main/java/com/example/demo/controller/AdminController.java @@ -80,7 +80,7 @@ public class AdminController { try { return adminService.updatePassword(password); } catch (Exception e) { - return Result.error("输入不能为空,请检查"); + return Result.error("服务器波动,请稍作等待"); } } diff --git a/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java index aee7cb3..0ff080d 100644 --- a/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java @@ -91,6 +91,12 @@ public class AdminServiceImpl implements AdminService { String oldPassword = password.getOldPassword(); String newPassword = password.getNewPassword(); String againPassword = password.getAgainPassword(); + if(oldPassword == null || newPassword == null || againPassword == null ||password.getAccount() == null) { + return Result.error("输入不能为空"); + } + if (oldPassword.equals(newPassword)) { + return Result.error("新密码不能与旧密码相同"); + } // 检查两次输入的新密码是否一致 if (!newPassword.equals(againPassword)) { return Result.error("两次输入的新密码不一致"); From ea99e40db59d87d55c76769e9e3337338e779558 Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Thu, 10 Jul 2025 17:23:16 +0800 Subject: [PATCH 04/19] =?UTF-8?q?=E5=AF=86=E7=A0=81=E9=87=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/demo/service/AdminService.java | 2 ++ .../example/demo/serviceImpl/AdminServiceImpl.java | 38 ++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/src/main/java/com/example/demo/service/AdminService.java b/src/main/java/com/example/demo/service/AdminService.java index 5001d7f..106b9a3 100644 --- a/src/main/java/com/example/demo/service/AdminService.java +++ b/src/main/java/com/example/demo/service/AdminService.java @@ -18,4 +18,6 @@ public interface AdminService { String getId(String account); Result updatePassword(Password password); + + Result resetPassword(Password password); } diff --git a/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java index 0ff080d..a880423 100644 --- a/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java @@ -137,4 +137,42 @@ public class AdminServiceImpl implements AdminService { return Result.error("密码更新失败"); } } + + + + @Override + public Result resetPassword(Password password) { + + String newPassword = password.getNewPassword(); + if(newPassword == null ||password.getAccount() == null) { + return Result.error("输入不能为空"); + } + + // 检查新密码是否符合复杂度要求 + if (!PASSWORD_PATTERN.matcher(newPassword).matches()) { + return Result.error("新密码必须为8-16位数字、字母或符号组成,且至少包含其中两种"); + } + if(adminMapper.getAdmin(password.getAccount())==null) + { + return Result.error("用户不存在"); + } + try { + // 获取认证后的用户信息 + Admin admin = adminMapper.getAdmin(password.getAccount()); + + BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); + // 使用Spring管理的密码编码器(不要手动new) + String encodedPassword = passwordEncoder.encode(newPassword); + + // 更新数据库中的密码 + admin.setPassword(encodedPassword); + admin.setUpdateTime(new Date()); // 更新修改时间 + adminMapper.updatePassword(admin); + + return Result.success("密码重置成功"); + } + catch (Exception e) { + return Result.error("密码重置失败"); + } + } } \ No newline at end of file From f9082c8f64e4f666bf08a374a3c8ebb4812b1931 Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Fri, 11 Jul 2025 09:23:26 +0800 Subject: [PATCH 05/19] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/PermissionController.java | 5 ++- .../com/example/demo/mapper/PermissionMapper.java | 1 + .../com/example/demo/service/AdminService.java | 2 +- .../example/demo/service/PermissionService.java | 4 +- .../example/demo/serviceImpl/AdminServiceImpl.java | 12 +++--- .../demo/serviceImpl/PermissionServiceImpl.java | 44 +++++++++++++++------- src/main/resources/mapper/PermissionMapper.xml | 4 +- 7 files changed, 47 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/example/demo/controller/PermissionController.java b/src/main/java/com/example/demo/controller/PermissionController.java index 0c3d3c3..94f1d9a 100644 --- a/src/main/java/com/example/demo/controller/PermissionController.java +++ b/src/main/java/com/example/demo/controller/PermissionController.java @@ -2,6 +2,7 @@ package com.example.demo.controller; import com.example.demo.domain.entity.Admin; import com.example.demo.domain.entity.AdminRole; +import com.example.demo.domain.vo.AdminVo; import com.example.demo.domain.vo.Page; import com.example.demo.domain.vo.Permission; import com.example.demo.domain.vo.Result; @@ -53,9 +54,9 @@ public class PermissionController { } //编辑用户 @PostMapping("/updateAdmin") - public Result updateAdmin(@RequestBody Admin admin) throws Exception { + public Result updateAdmin(@RequestBody AdminVo adminVo) throws Exception { try { - return Result.success(permissionService.updateAdmin(admin)); + return Result.success(permissionService.updateAdmin(adminVo)); } catch (Exception e) { log.error(Arrays.toString(e.getStackTrace())); diff --git a/src/main/java/com/example/demo/mapper/PermissionMapper.java b/src/main/java/com/example/demo/mapper/PermissionMapper.java index 7660751..2407e0d 100644 --- a/src/main/java/com/example/demo/mapper/PermissionMapper.java +++ b/src/main/java/com/example/demo/mapper/PermissionMapper.java @@ -3,6 +3,7 @@ package com.example.demo.mapper; import com.example.demo.domain.entity.Admin; import com.example.demo.domain.entity.AdminRole; import com.example.demo.domain.entity.Role; +import com.example.demo.domain.vo.AdminVo; import com.example.demo.domain.vo.Permission; import org.apache.ibatis.annotations.Mapper; diff --git a/src/main/java/com/example/demo/service/AdminService.java b/src/main/java/com/example/demo/service/AdminService.java index 106b9a3..c1dbf4a 100644 --- a/src/main/java/com/example/demo/service/AdminService.java +++ b/src/main/java/com/example/demo/service/AdminService.java @@ -19,5 +19,5 @@ public interface AdminService { Result updatePassword(Password password); - Result resetPassword(Password password); + Integer resetPassword(Password password); } diff --git a/src/main/java/com/example/demo/service/PermissionService.java b/src/main/java/com/example/demo/service/PermissionService.java index e306b28..347bb0c 100644 --- a/src/main/java/com/example/demo/service/PermissionService.java +++ b/src/main/java/com/example/demo/service/PermissionService.java @@ -3,7 +3,9 @@ package com.example.demo.service; import com.example.demo.domain.entity.Admin; import com.example.demo.domain.entity.AdminRole; import com.example.demo.domain.entity.Role; +import com.example.demo.domain.vo.AdminVo; import com.example.demo.domain.vo.Permission; +import com.example.demo.domain.vo.Result; import com.github.pagehelper.PageInfo; import java.util.List; @@ -26,5 +28,5 @@ public interface PermissionService { Integer updateAdminRole(AdminRole adminRole); Integer upadatePermission(Admin admin) throws Exception; - Object updateAdmin(Admin admin)throws Exception; + Result updateAdmin(AdminVo adminVo)throws Exception; } diff --git a/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java index a880423..78cab48 100644 --- a/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java @@ -141,20 +141,20 @@ public class AdminServiceImpl implements AdminService { @Override - public Result resetPassword(Password password) { + public Integer resetPassword(Password password) { String newPassword = password.getNewPassword(); if(newPassword == null ||password.getAccount() == null) { - return Result.error("输入不能为空"); + return 0; } // 检查新密码是否符合复杂度要求 if (!PASSWORD_PATTERN.matcher(newPassword).matches()) { - return Result.error("新密码必须为8-16位数字、字母或符号组成,且至少包含其中两种"); + return 0; } if(adminMapper.getAdmin(password.getAccount())==null) { - return Result.error("用户不存在"); + return 0; } try { // 获取认证后的用户信息 @@ -169,10 +169,10 @@ public class AdminServiceImpl implements AdminService { admin.setUpdateTime(new Date()); // 更新修改时间 adminMapper.updatePassword(admin); - return Result.success("密码重置成功"); + return 1; } catch (Exception e) { - return Result.error("密码重置失败"); + return 0; } } } \ No newline at end of file diff --git a/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java index f026057..ea43441 100644 --- a/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java @@ -3,9 +3,13 @@ package com.example.demo.serviceImpl; import com.example.demo.domain.entity.Admin; import com.example.demo.domain.entity.AdminRole; import com.example.demo.domain.entity.Role; +import com.example.demo.domain.vo.AdminVo; +import com.example.demo.domain.vo.Password; 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.PermissionMapper; +import com.example.demo.service.AdminService; import com.example.demo.service.PermissionService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -32,6 +36,9 @@ public class PermissionServiceImpl implements PermissionService { private PermissionMapper permissionMapper; @Autowired private AdminMapper adminMapper; + @Autowired + private AdminService adminService; + @Override public List getposition(String token) { return permissionMapper.getposition(token); @@ -116,31 +123,42 @@ public class PermissionServiceImpl implements PermissionService { } @Override - public Object updateAdmin(Admin admin)throws Exception { + public Result updateAdmin(AdminVo adminVo)throws Exception { - if(ObjectUtils.isEmpty(admin.getAccount())){ + if(ObjectUtils.isEmpty(adminVo.getAccount())){ throw new Exception("账号为空!"); } - if(ObjectUtils.isEmpty( admin.getMarket())){ + if(ObjectUtils.isEmpty(adminVo.getAdminName())){ + throw new Exception("用户名为空!"); + } + if(ObjectUtils.isEmpty(adminVo.getMarket())){ throw new Exception("地区为空!"); } - if(ObjectUtils.isEmpty( admin.getPostiton())){ + if(ObjectUtils.isEmpty(adminVo.getPostiton())){ throw new Exception("职位为空!"); } - - if(ObjectUtils.isEmpty( admin.getAdminName())){ - throw new Exception("用户名为空!"); - } - if(ObjectUtils.isEmpty( admin.getMachineId())){ + if(ObjectUtils.isEmpty(adminVo.getMachineId())){ throw new Exception("机器编号为空!"); } - if (admin.getMachineId().contains(",")) { + if (adminVo.getMachineId().contains(",")) { throw new Exception("机器编号格式错误"); } else { - - - return permissionMapper.updateAdmin(admin); + Admin admin = new Admin(); + admin.setAccount(adminVo.getAccount()); + admin.setAdminName(adminVo.getAdminName()); + admin.setMarket(adminVo.getMarket()); + admin.setPostiton(adminVo.getPostiton()); + admin.setMachineId(adminVo.getMachineId()+","+adminVo.getMachineIds()); + admin.setRemark(adminVo.getRemark()); + permissionMapper.updateAdmin(admin); + Password password = new Password(); + password.setAccount(adminVo.getAccount()); + password.setNewPassword(adminVo.getPassword()); + if(adminService.resetPassword(password)==0){ + return Result.error("密码更改失败"); + }; + return Result.success("成功"); } } diff --git a/src/main/resources/mapper/PermissionMapper.xml b/src/main/resources/mapper/PermissionMapper.xml index e2663b7..63fdc1d 100644 --- a/src/main/resources/mapper/PermissionMapper.xml +++ b/src/main/resources/mapper/PermissionMapper.xml @@ -27,6 +27,7 @@ where admin_id= #{id} + update admin @@ -42,12 +43,11 @@ remark= #{remark}, - market= #{market} - where account= #{account} + delete from admin where id=#{id} From f98ef0a92a49d1d142ba4d64501f6ab1e22e1b0a Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Fri, 11 Jul 2025 15:07:39 +0800 Subject: [PATCH 06/19] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/serviceImpl/PermissionServiceImpl.java | 87 +++++++++++----------- 1 file changed, 45 insertions(+), 42 deletions(-) diff --git a/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java index ea43441..77616de 100644 --- a/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java @@ -52,47 +52,46 @@ public class PermissionServiceImpl implements PermissionService { @Override public PageInfo getpermission(Integer pageNum, Integer pageSize, Permission permission) { PageHelper.startPage(pageNum, pageSize); - List list= permissionMapper.getPermission(permission); + List list = permissionMapper.getPermission(permission); return new PageInfo<>(list); } @Override @Transactional - public Integer addpermission(Admin admin) throws Exception { + public Integer addpermission(Admin admin) throws Exception { - if(!ObjectUtils.isEmpty(adminMapper.getAdmin(admin.getAccount()))){ + if (!ObjectUtils.isEmpty(adminMapper.getAdmin(admin.getAccount()))) { throw new 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.getRoleId())){ - throw new Exception("权限类别为空!"); - } - if(ObjectUtils.isEmpty( admin.getAdminName())){ - throw new Exception("用户名为空!"); - } - if(ObjectUtils.isEmpty( admin.getMachineId())){ - throw new 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.getRoleId())) { + 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 { + BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); + admin.setPassword(passwordEncoder.encode(("123456"))); + permissionMapper.addPermission(admin); + AdminRole adminRole = new AdminRole(); + adminRole.setAdminId(admin.getId()); + adminRole.setRoleId(admin.getRoleId()); + return permissionMapper.addadminRole(adminRole); } - else { - BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); - admin.setPassword(passwordEncoder.encode(("123456"))); - permissionMapper.addPermission(admin); - AdminRole adminRole = new AdminRole(); - adminRole.setAdminId(admin.getId()); - adminRole.setRoleId(admin.getRoleId()); - return permissionMapper.addadminRole(adminRole); - } } @Override @@ -103,7 +102,7 @@ public class PermissionServiceImpl implements PermissionService { @Override @Transactional public Integer deleteAdmin(Integer id) { - if (id == null){ + if (id == null) { return -1; } @@ -123,41 +122,45 @@ public class PermissionServiceImpl implements PermissionService { } @Override - public Result updateAdmin(AdminVo adminVo)throws Exception { + public Result updateAdmin(AdminVo adminVo) throws Exception { - if(ObjectUtils.isEmpty(adminVo.getAccount())){ + if (ObjectUtils.isEmpty(adminVo.getAccount())) { throw new Exception("账号为空!"); } - if(ObjectUtils.isEmpty(adminVo.getAdminName())){ + if (ObjectUtils.isEmpty(adminVo.getAdminName())) { throw new Exception("用户名为空!"); } - if(ObjectUtils.isEmpty(adminVo.getMarket())){ + if (ObjectUtils.isEmpty(adminVo.getMarket())) { throw new Exception("地区为空!"); } - if(ObjectUtils.isEmpty(adminVo.getPostiton())){ + if (ObjectUtils.isEmpty(adminVo.getPostiton())) { throw new Exception("职位为空!"); } - if(ObjectUtils.isEmpty(adminVo.getMachineId())){ + if (ObjectUtils.isEmpty(adminVo.getMachineId())) { throw new Exception("机器编号为空!"); } if (adminVo.getMachineId().contains(",")) { throw new Exception("机器编号格式错误"); - } - else { + } else { Admin admin = new Admin(); admin.setAccount(adminVo.getAccount()); admin.setAdminName(adminVo.getAdminName()); admin.setMarket(adminVo.getMarket()); admin.setPostiton(adminVo.getPostiton()); - admin.setMachineId(adminVo.getMachineId()+","+adminVo.getMachineIds()); + if (adminVo.getMachineIds() == null) { + admin.setMachineId(adminVo.getMachineId()); + } else { + admin.setMachineId(adminVo.getMachineId() + "," + adminVo.getMachineIds()); + } admin.setRemark(adminVo.getRemark()); permissionMapper.updateAdmin(admin); Password password = new Password(); password.setAccount(adminVo.getAccount()); password.setNewPassword(adminVo.getPassword()); - if(adminService.resetPassword(password)==0){ + if (adminService.resetPassword(password) == 0) { return Result.error("密码更改失败"); - }; + } + ; return Result.success("成功"); } } From d9abca01055b3a1f07f459ab164ccc2b98cf3769 Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Mon, 14 Jul 2025 15:06:48 +0800 Subject: [PATCH 07/19] =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/example/demo/controller/AdminController.java | 2 ++ .../com/example/demo/controller/ConsumeController.java | 4 ++++ .../com/example/demo/controller/GeneralController.java | 2 ++ .../com/example/demo/controller/RechargeController.java | 6 +++--- .../java/com/example/demo/controller/RefundController.java | 4 ++++ .../java/com/example/demo/controller/UserController.java | 2 ++ src/main/java/com/example/demo/mapper/AdminMapper.java | 9 ++++++++- src/main/java/com/example/demo/mapper/ConsumeMapper.java | 6 ++++++ src/main/java/com/example/demo/mapper/GeneralMapper.java | 5 +++++ src/main/java/com/example/demo/mapper/RateMapper.java | 2 +- src/main/java/com/example/demo/mapper/RechargeMapper.java | 5 +++-- src/main/java/com/example/demo/mapper/RefundMapper.java | 5 +++++ src/main/java/com/example/demo/mapper/UserMapper.java | 14 +++++++++++--- src/main/java/com/example/demo/service/AdminService.java | 3 +++ src/main/java/com/example/demo/service/ConsumeService.java | 4 ++++ .../java/com/example/demo/service/PermissionService.java | 2 +- .../java/com/example/demo/service/RechargeService.java | 4 ++++ src/main/java/com/example/demo/service/RefundService.java | 5 +++++ src/main/java/com/example/demo/service/UserService.java | 7 +++++++ .../com/example/demo/serviceImpl/AdminServiceImpl.java | 7 +++++-- .../com/example/demo/serviceImpl/ConsumeServiceImpl.java | 1 + .../example/demo/serviceImpl/PermissionServiceImpl.java | 10 +++++++++- .../com/example/demo/serviceImpl/RechargeServiceImpl.java | 6 +++++- .../com/example/demo/serviceImpl/RefundServiceImpl.java | 9 ++++++++- .../java/com/example/demo/serviceImpl/UserServiceImpl.java | 3 +++ 25 files changed, 111 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/example/demo/controller/AdminController.java b/src/main/java/com/example/demo/controller/AdminController.java index 10269c3..01c6acf 100644 --- a/src/main/java/com/example/demo/controller/AdminController.java +++ b/src/main/java/com/example/demo/controller/AdminController.java @@ -61,6 +61,7 @@ public class AdminController { } } + //获取管理员ID @PostMapping("/adminId") public Result selectId(@RequestBody Admin admin) { @@ -74,6 +75,7 @@ public class AdminController { } + //更新用户密码 @PostMapping("/password") public Result updatePassword(@RequestBody Password password){ diff --git a/src/main/java/com/example/demo/controller/ConsumeController.java b/src/main/java/com/example/demo/controller/ConsumeController.java index 0914acb..d02758a 100644 --- a/src/main/java/com/example/demo/controller/ConsumeController.java +++ b/src/main/java/com/example/demo/controller/ConsumeController.java @@ -36,9 +36,11 @@ public class ConsumeController { @PostMapping("/selectAll") public Result selcetAll(@RequestBody Page page) { try { + //页码校验 if (ObjectUtils.isEmpty(page.getPageNum())) { return Result.error("页码数为空!"); } + //页面大小校验 if (ObjectUtils.isEmpty(page.getPageSize())) { return Result.error("页大小为空!"); } else { @@ -56,9 +58,11 @@ public class ConsumeController { @PostMapping("/selectBy") public Result selcetBy(@RequestBody Page page) { try { + //页码校验 if (ObjectUtils.isEmpty(page.getPageNum())) { return Result.error("页码数为空!"); } + //页面大小校验 if (ObjectUtils.isEmpty(page.getPageSize())) { return Result.error("页大小为空!"); } else { diff --git a/src/main/java/com/example/demo/controller/GeneralController.java b/src/main/java/com/example/demo/controller/GeneralController.java index be01a78..7472975 100644 --- a/src/main/java/com/example/demo/controller/GeneralController.java +++ b/src/main/java/com/example/demo/controller/GeneralController.java @@ -41,12 +41,14 @@ public class GeneralController { List list = generalService.getPlatform(); return Result.success(list); } + //获取商品名称 @PostMapping("/goods") public Result getGoods() { List list = generalService.getGoods(); return Result.success(list); } + //获取活动名称 @PostMapping("/activity") public Result getActivity() { diff --git a/src/main/java/com/example/demo/controller/RechargeController.java b/src/main/java/com/example/demo/controller/RechargeController.java index ecd0880..1615080 100644 --- a/src/main/java/com/example/demo/controller/RechargeController.java +++ b/src/main/java/com/example/demo/controller/RechargeController.java @@ -29,7 +29,7 @@ public class RechargeController { @Autowired private RechargeService rechargeService; - //消耗明细 + //充值明细 @PostMapping("/selectAll") public Result selcetAll(@RequestBody Page page) { try { @@ -49,7 +49,7 @@ public class RechargeController { } - //消耗明细筛选 + //充值明细筛选 @PostMapping("/selectBy") public Result selcetBy(@RequestBody Page page) { try { @@ -67,7 +67,7 @@ public class RechargeController { } - //消耗金币统计 + //充值金币统计 @PostMapping("/statsGold") public Result statsGold(@RequestBody RechargeUser rechargeUser) { try { diff --git a/src/main/java/com/example/demo/controller/RefundController.java b/src/main/java/com/example/demo/controller/RefundController.java index 78b3446..ec46014 100644 --- a/src/main/java/com/example/demo/controller/RefundController.java +++ b/src/main/java/com/example/demo/controller/RefundController.java @@ -48,6 +48,7 @@ public class RefundController { } + //退款筛选 @PostMapping("/selectBy") public Result selcetBy(@RequestBody Page page) { try { @@ -66,6 +67,7 @@ public class RefundController { } + //退款金币统计 @PostMapping("/statsGold") public Result statsGold(@RequestBody RefundUser refundUser) { try { @@ -76,6 +78,7 @@ public class RefundController { } } + //获取退款类型 @PostMapping("/refundType") public Result getRefundType() { @@ -83,6 +86,7 @@ public class RefundController { return Result.success(list); } + //筛选产品 @PostMapping("/selectGoods") public Result getSelectGoods(@RequestBody RefundUser refundUser) { diff --git a/src/main/java/com/example/demo/controller/UserController.java b/src/main/java/com/example/demo/controller/UserController.java index a31818a..1033fce 100644 --- a/src/main/java/com/example/demo/controller/UserController.java +++ b/src/main/java/com/example/demo/controller/UserController.java @@ -30,6 +30,7 @@ public class UserController { @Autowired private UserService userService; + //查找用户 @PostMapping("/selectUser") public Result selectUser(@RequestBody GoldUser user) { try { @@ -39,6 +40,7 @@ public class UserController { return Result.error("请检查输入精网号"); } } + //查找用户全部信息 @PostMapping("/selectAllUser") public Result selectUser(@RequestBody User user) { try { diff --git a/src/main/java/com/example/demo/mapper/AdminMapper.java b/src/main/java/com/example/demo/mapper/AdminMapper.java index c1b34f5..67c46b8 100644 --- a/src/main/java/com/example/demo/mapper/AdminMapper.java +++ b/src/main/java/com/example/demo/mapper/AdminMapper.java @@ -13,9 +13,16 @@ import org.apache.ibatis.annotations.Mapper; **/ @Mapper public interface AdminMapper { - Admin getAdmin(String account); + + //查找管理员信息 + Admin getAdmin(String account); + Admin selectByName(String account); + + //获取管理员ID Integer getId(String account); + + //更新密码 void updatePassword(Admin admin); diff --git a/src/main/java/com/example/demo/mapper/ConsumeMapper.java b/src/main/java/com/example/demo/mapper/ConsumeMapper.java index 60ca6a7..48bf80e 100644 --- a/src/main/java/com/example/demo/mapper/ConsumeMapper.java +++ b/src/main/java/com/example/demo/mapper/ConsumeMapper.java @@ -18,13 +18,19 @@ import java.util.List; @Mapper public interface ConsumeMapper { + //查找全部订单 List selectAll(ConsumeUser consumeUser); + //查找经过筛选后的订单 List selectBy(ConsumeUser consumeUser); + + //添加消费订单 void add(UserGoldRecord userGoldRecord); + //更新退款状态 void updateIsRefund(String orderCode); + //获得订单号 List selectOrderCodeByJwcode(String jwcode,String orderCode); } diff --git a/src/main/java/com/example/demo/mapper/GeneralMapper.java b/src/main/java/com/example/demo/mapper/GeneralMapper.java index de73b8a..56246c2 100644 --- a/src/main/java/com/example/demo/mapper/GeneralMapper.java +++ b/src/main/java/com/example/demo/mapper/GeneralMapper.java @@ -15,7 +15,12 @@ import java.util.List; @Mapper public interface GeneralMapper { List getMarket(); + List getPlatform(); + + //获取商品 List getGoods(); + + //获取活动 List getActivity(); } diff --git a/src/main/java/com/example/demo/mapper/RateMapper.java b/src/main/java/com/example/demo/mapper/RateMapper.java index 05602f3..0f50eca 100644 --- a/src/main/java/com/example/demo/mapper/RateMapper.java +++ b/src/main/java/com/example/demo/mapper/RateMapper.java @@ -8,7 +8,7 @@ import java.util.List; @Mapper public interface RateMapper { - List selectAll(); + List selectAll(); Rate selectById(Integer id); diff --git a/src/main/java/com/example/demo/mapper/RechargeMapper.java b/src/main/java/com/example/demo/mapper/RechargeMapper.java index e600ced..4a5170a 100644 --- a/src/main/java/com/example/demo/mapper/RechargeMapper.java +++ b/src/main/java/com/example/demo/mapper/RechargeMapper.java @@ -19,9 +19,10 @@ import java.util.List; @Mapper public interface RechargeMapper { + //获取全部充值 List selectAll(RechargeUser rechargeUser); - + //获取筛选后的充值 List selectBy(RechargeUser rechargeUser); - + //添加充值订单 void add(UserGoldRecord userGoldRecord); } diff --git a/src/main/java/com/example/demo/mapper/RefundMapper.java b/src/main/java/com/example/demo/mapper/RefundMapper.java index 3f8f14c..2c9c54d 100644 --- a/src/main/java/com/example/demo/mapper/RefundMapper.java +++ b/src/main/java/com/example/demo/mapper/RefundMapper.java @@ -19,14 +19,19 @@ import java.util.List; @Mapper public interface RefundMapper { + //获取全部退款订单 List selectAll(RefundUser refundUser); + //获取筛选后的订单 List selectBy(RefundUser refundUser); + //添加退款订单 void add(UserGoldRecord userGoldRecord); + //获取退款类型 List getRefundType(); + //获取商品 List selectGoods(Integer jwcode); } diff --git a/src/main/java/com/example/demo/mapper/UserMapper.java b/src/main/java/com/example/demo/mapper/UserMapper.java index 47e2946..f137af5 100644 --- a/src/main/java/com/example/demo/mapper/UserMapper.java +++ b/src/main/java/com/example/demo/mapper/UserMapper.java @@ -22,24 +22,32 @@ import java.util.List; @Mapper public interface UserMapper { + //获取用户金币信息 GoldUser selectUser(String jwcode); + //获取金币数 GoldUser selectGold(String jwcode); + //更新金币数 void updateGold(User user); - User selectAllUser(String jwcode); + //查找用户全部信息 + User selectAllUser(String jwcode); - //获取用户表全部jwcode + //获取用户表全部jwcode List getAllJwcode(); + //获取某用户最早的充值订单 Date getEarliestRecharge(Integer jwcode); + //更新用户首充日期 void updateFirstRecharge(@Param("jwcode") Integer jwcode, @Param("firstRecharge") Date firstRecharge); - void updateAllGold(User user); + + void updateAllGold(User user); void addUser(User user); + //根据精网号查询用户 User selectUserByJwcode(Integer jwcode); diff --git a/src/main/java/com/example/demo/service/AdminService.java b/src/main/java/com/example/demo/service/AdminService.java index c1dbf4a..a34327c 100644 --- a/src/main/java/com/example/demo/service/AdminService.java +++ b/src/main/java/com/example/demo/service/AdminService.java @@ -15,9 +15,12 @@ import com.example.demo.domain.vo.Result; public interface AdminService { Admin login(Admin admin)throws Exception; + //获取用户ID String getId(String account); + //更新密码 Result updatePassword(Password password); + //重置密码 Integer resetPassword(Password password); } diff --git a/src/main/java/com/example/demo/service/ConsumeService.java b/src/main/java/com/example/demo/service/ConsumeService.java index 9ab9a3d..802564e 100644 --- a/src/main/java/com/example/demo/service/ConsumeService.java +++ b/src/main/java/com/example/demo/service/ConsumeService.java @@ -18,11 +18,15 @@ import com.github.pagehelper.PageInfo; public interface ConsumeService { + //查询全部消费 PageInfo selectAll(Integer pageNum, Integer pageSize, ConsumeUser consumeUser); + //统计消费金币 Gold statsGold(ConsumeUser consumeUser); + //查询筛选消费 PageInfo selectBy(Integer pageNum, Integer pageSize, ConsumeUser consumeUser); + //增加消费订单 Result add(ConsumeUser consumeUser); } diff --git a/src/main/java/com/example/demo/service/PermissionService.java b/src/main/java/com/example/demo/service/PermissionService.java index 347bb0c..646b6e2 100644 --- a/src/main/java/com/example/demo/service/PermissionService.java +++ b/src/main/java/com/example/demo/service/PermissionService.java @@ -27,6 +27,6 @@ public interface PermissionService { Integer deleteAdmin(Integer id); Integer updateAdminRole(AdminRole adminRole); Integer upadatePermission(Admin admin) throws Exception; - + //更新管理员信息 Result updateAdmin(AdminVo adminVo)throws Exception; } diff --git a/src/main/java/com/example/demo/service/RechargeService.java b/src/main/java/com/example/demo/service/RechargeService.java index 409fa16..7c5959b 100644 --- a/src/main/java/com/example/demo/service/RechargeService.java +++ b/src/main/java/com/example/demo/service/RechargeService.java @@ -16,11 +16,15 @@ import com.github.pagehelper.PageInfo; **/ public interface RechargeService { + //查询所有充值 PageInfo selectAll(Integer pageNum, Integer pageSize, RechargeUser rechargeUser); + //统计金币记录 Gold statsGold(RechargeUser rechargeUser); + //查询筛选充值 PageInfo selectBy(Integer pageNum, Integer pageSize, RechargeUser rechargeUser); + //添加充值记录 Result add(RechargeUser rechargeUser); } diff --git a/src/main/java/com/example/demo/service/RefundService.java b/src/main/java/com/example/demo/service/RefundService.java index f8cbb41..7821f2e 100644 --- a/src/main/java/com/example/demo/service/RefundService.java +++ b/src/main/java/com/example/demo/service/RefundService.java @@ -20,16 +20,21 @@ import java.util.List; public interface RefundService { + //查找全部退款 PageInfo selectAll(Integer pageNum, Integer pageSize, RefundUser refundUser); + //统计退款金额 Gold statsGold(RefundUser refundUser); + //查找筛选退款 PageInfo selectBy(Integer pageNum, Integer pageSize, RefundUser refundUser); + //添加退款记录 Result add(RefundUser refundUser); //获取退款类型 List getRefundType(); + //查找退款商品 List selectGoods(Integer jwcode); } diff --git a/src/main/java/com/example/demo/service/UserService.java b/src/main/java/com/example/demo/service/UserService.java index 83fac3a..b945d93 100644 --- a/src/main/java/com/example/demo/service/UserService.java +++ b/src/main/java/com/example/demo/service/UserService.java @@ -17,14 +17,21 @@ import java.util.List; public interface UserService { + //查找用户部分信息 GoldUser selectUser(String jwcode); + + //查找用户金币 GoldUser selectgold(String jwcode); + //查找用户全部信息 User selectAllUser(String jwcode); + //更新用户的全部金币 void updateAllGold(User user); + //新增用户 void addUser(User user); + //更新用户的首充时间 void updateFirstRecharge(); } diff --git a/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java index 78cab48..3906575 100644 --- a/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java @@ -63,7 +63,7 @@ public class AdminServiceImpl implements AdminService { throw new RuntimeException("登录失败,请稍后再试", e); } } - + //获取用户ID @Override public String getId(String account) { return adminMapper.getAdmin(account).getId().toString(); @@ -85,15 +85,18 @@ public class AdminServiceImpl implements AdminService { private static final String PASSWORD_REGEX = "^(?![0-9]+$)(?![a-zA-Z]+$)(?!\\W+$).{8,16}$"; private static final Pattern PASSWORD_PATTERN = Pattern.compile(PASSWORD_REGEX); + //更新密码 @Override public Result updatePassword(Password password) { String oldPassword = password.getOldPassword(); String newPassword = password.getNewPassword(); String againPassword = password.getAgainPassword(); + // 校验输入参数是否为空(账号、旧密码、新密码、确认密码均不可为空) if(oldPassword == null || newPassword == null || againPassword == null ||password.getAccount() == null) { return Result.error("输入不能为空"); } + // 校验新密码是否与旧密码相同(不允许相同) if (oldPassword.equals(newPassword)) { return Result.error("新密码不能与旧密码相同"); } @@ -139,7 +142,7 @@ public class AdminServiceImpl implements AdminService { } - + //重置密码 @Override public Integer resetPassword(Password password) { diff --git a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java index d4fe28d..2186971 100644 --- a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java @@ -146,6 +146,7 @@ public class ConsumeServiceImpl implements ConsumeService { userGoldRecord.setFreeJune(0); } } + //信息输入 userGoldRecord.setTaskGold(-consumeUser.getTaskGold()); userGoldRecord.setRemark(consumeUser.getRemark()); userGoldRecord.setType((byte) 1); diff --git a/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java index 77616de..753c076 100644 --- a/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java @@ -121,24 +121,30 @@ public class PermissionServiceImpl implements PermissionService { return permissionMapper.updatePermission(admin); } + //更新管理员信息 @Override public Result updateAdmin(AdminVo adminVo) throws Exception { - + // 校验账号是否为空(账号是唯一标识,必须存在) if (ObjectUtils.isEmpty(adminVo.getAccount())) { throw new Exception("账号为空!"); } + // 校验用户名是否为空(管理员姓名为必填项) if (ObjectUtils.isEmpty(adminVo.getAdminName())) { throw new Exception("用户名为空!"); } + // 校验地区是否为空(管理员所属地区为必填项) if (ObjectUtils.isEmpty(adminVo.getMarket())) { throw new Exception("地区为空!"); } + // 校验职位是否为空(管理员职位为必填项) if (ObjectUtils.isEmpty(adminVo.getPostiton())) { throw new Exception("职位为空!"); } + // 校验机器编号是否为空(机器编号为必填项) if (ObjectUtils.isEmpty(adminVo.getMachineId())) { throw new Exception("机器编号为空!"); } + // 校验机器编号格式(不允许包含逗号,避免与后续拼接逻辑冲突 if (adminVo.getMachineId().contains(",")) { throw new Exception("机器编号格式错误"); } else { @@ -147,6 +153,7 @@ public class PermissionServiceImpl implements PermissionService { admin.setAdminName(adminVo.getAdminName()); admin.setMarket(adminVo.getMarket()); admin.setPostiton(adminVo.getPostiton()); + // 处理机器编号:若存在额外机器编号(machineIds),则与原编号拼接(用逗号分隔) if (adminVo.getMachineIds() == null) { admin.setMachineId(adminVo.getMachineId()); } else { @@ -154,6 +161,7 @@ public class PermissionServiceImpl implements PermissionService { } admin.setRemark(adminVo.getRemark()); permissionMapper.updateAdmin(admin); + // 处理密码重置:创建密码对象,设置账号和新密码 Password password = new Password(); password.setAccount(adminVo.getAccount()); password.setNewPassword(adminVo.getPassword()); diff --git a/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java index 832db37..9375beb 100644 --- a/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java @@ -38,7 +38,7 @@ public class RechargeServiceImpl implements RechargeService { @Autowired private UserMapper userMapper; - + //查询所有充值 @Override public PageInfo selectAll(Integer pageNum, Integer pageSize, RechargeUser rechargeUser) { PageHelper.startPage(pageNum, pageSize); @@ -46,6 +46,7 @@ public class RechargeServiceImpl implements RechargeService { return new PageInfo<>(rechargeUsers); } + //查询筛选充值 @Override public PageInfo selectBy(Integer pageNum, Integer pageSize, RechargeUser rechargeUser) { PageHelper.startPage(pageNum, pageSize); @@ -53,6 +54,7 @@ public class RechargeServiceImpl implements RechargeService { return new PageInfo<>(rechargeUsers); } + //统计金币记录 @Override public Gold statsGold(RechargeUser rechargeUser) { Gold gold = new Gold(); @@ -82,6 +84,7 @@ public class RechargeServiceImpl implements RechargeService { } + //添加充值记录 @Override public Result add(RechargeUser rechargeUser) { if(rechargeUser.getFreeGold()==null||rechargeUser.getPermanentGold()==null||rechargeUser.getMoney()==null){ @@ -120,6 +123,7 @@ public class RechargeServiceImpl implements RechargeService { userGoldRecord.setFreeJune(rechargeUser.getFreeGold()); userGoldRecord.setFreeDecember(0); } + //数据输入 userGoldRecord.setSumGold(rechargeUser.getFreeGold()+rechargeUser.getPermanentGold()); userGoldRecord.setRateId(rechargeUser.getRateId()); userGoldRecord.setMoney(rechargeUser.getMoney()); diff --git a/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java index 3c5b9e9..4e47d8f 100644 --- a/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java @@ -44,7 +44,7 @@ public class RefundServiceImpl implements RefundService { @Autowired private UserMapper userMapper; - + //查找全部退款 @Override public PageInfo selectAll(Integer pageNum, Integer pageSize, RefundUser refundUser) { PageHelper.startPage(pageNum, pageSize); @@ -52,6 +52,7 @@ public class RefundServiceImpl implements RefundService { return new PageInfo<>(refundUsers); } + //统计退款金额 @Override public Gold statsGold(RefundUser refundUser) { Gold gold = new Gold(); @@ -86,6 +87,7 @@ public class RefundServiceImpl implements RefundService { return gold; } + //查找筛选退款 @Override public PageInfo selectBy(Integer pageNum, Integer pageSize, RefundUser refundUser) { PageHelper.startPage(pageNum, pageSize); @@ -93,6 +95,7 @@ public class RefundServiceImpl implements RefundService { return new PageInfo<>(refundUsers); } + //添加退款记录 @Transactional @Override public Result add(RefundUser refundUser) { @@ -140,6 +143,7 @@ public class RefundServiceImpl implements RefundService { userGoldRecord.setFreeJune(refundUser.getFreeGold()); userGoldRecord.setFreeDecember(0); } + //信息输入 userGoldRecord.setTaskGold(refundUser.getTaskGold()); userGoldRecord.setSumGold(refundUser.getSumGold()); userGoldRecord.setPayPlatform("金币系统"); @@ -149,6 +153,7 @@ public class RefundServiceImpl implements RefundService { userGoldRecord.setAuditStatus(0); userGoldRecord.setCreateTime(new Date()); List list = consumeMapper.selectOrderCodeByJwcode(userGoldRecord.getJwcode().toString(), orderCode); + //消费订单号校验 if (list == null || list.isEmpty()) { return Result.error("该用户没有该订单号"); }else if(list.size()==1){ @@ -165,6 +170,7 @@ public class RefundServiceImpl implements RefundService { return Result.success(); } + //获取退款类型 @Override public List getRefundType() { List list = refundMapper.getRefundType(); @@ -175,6 +181,7 @@ public class RefundServiceImpl implements RefundService { return filteredList; } + //查找退款商品 @Override public List selectGoods(Integer jwcode) { List refundUsers = refundMapper.selectGoods(jwcode); diff --git a/src/main/java/com/example/demo/serviceImpl/UserServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/UserServiceImpl.java index ce4de57..a5646ad 100644 --- a/src/main/java/com/example/demo/serviceImpl/UserServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/UserServiceImpl.java @@ -29,12 +29,14 @@ public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; + //查找用户部分信息 @Override public GoldUser selectUser(String jwcode) { GoldUser user = userMapper.selectUser(jwcode); return user; } + //查找用户全部信息 @Override public User selectAllUser(String jwcode) { User user = userMapper.selectAllUser(jwcode); @@ -72,6 +74,7 @@ public class UserServiceImpl implements UserService { } } + //查找用户金币 @Override public GoldUser selectgold(String jwcode) { GoldUser gold = userMapper.selectGold(jwcode); From 5dbc73aaee6f5fe55ce5dd0214a7bd7e6ce089f3 Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Mon, 14 Jul 2025 15:23:33 +0800 Subject: [PATCH 08/19] =?UTF-8?q?=E9=87=8D=E7=BD=AE=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/demo/controller/AdminController.java | 13 +++++++++++ .../com/example/demo/service/AdminService.java | 2 +- .../example/demo/serviceImpl/AdminServiceImpl.java | 26 +++++++++------------- .../demo/serviceImpl/PermissionServiceImpl.java | 8 ------- 4 files changed, 25 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/example/demo/controller/AdminController.java b/src/main/java/com/example/demo/controller/AdminController.java index 01c6acf..ba835a4 100644 --- a/src/main/java/com/example/demo/controller/AdminController.java +++ b/src/main/java/com/example/demo/controller/AdminController.java @@ -87,4 +87,17 @@ public class AdminController { } + + //更新用户密码 + @PostMapping("/reset") + public Result resetPassword(@RequestBody Password password){ + + try { + return adminService.resetPassword(password); + } catch (Exception e) { + return Result.error("重置失败"); + } + + } + } diff --git a/src/main/java/com/example/demo/service/AdminService.java b/src/main/java/com/example/demo/service/AdminService.java index a34327c..5c0d4f4 100644 --- a/src/main/java/com/example/demo/service/AdminService.java +++ b/src/main/java/com/example/demo/service/AdminService.java @@ -22,5 +22,5 @@ public interface AdminService { Result updatePassword(Password password); //重置密码 - Integer resetPassword(Password password); + Result resetPassword(Password password); } diff --git a/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java index 3906575..9333f2c 100644 --- a/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java @@ -96,10 +96,6 @@ public class AdminServiceImpl implements AdminService { if(oldPassword == null || newPassword == null || againPassword == null ||password.getAccount() == null) { return Result.error("输入不能为空"); } - // 校验新密码是否与旧密码相同(不允许相同) - if (oldPassword.equals(newPassword)) { - return Result.error("新密码不能与旧密码相同"); - } // 检查两次输入的新密码是否一致 if (!newPassword.equals(againPassword)) { return Result.error("两次输入的新密码不一致"); @@ -112,6 +108,10 @@ public class AdminServiceImpl implements AdminService { { return Result.error("用户不存在"); } + // 校验新密码是否与旧密码相同(不允许相同) + if (oldPassword.equals(newPassword)) { + return Result.error("新密码与历史密码重复"); + } try { // 创建认证令牌并验证旧密码 UsernamePasswordAuthenticationToken token = @@ -144,20 +144,16 @@ public class AdminServiceImpl implements AdminService { //重置密码 @Override - public Integer resetPassword(Password password) { + public Result resetPassword(Password password) { - String newPassword = password.getNewPassword(); - if(newPassword == null ||password.getAccount() == null) { - return 0; + String newPassword = "123456"; + if(password.getAccount() == null) { + return Result.error("账户未输入"); } - // 检查新密码是否符合复杂度要求 - if (!PASSWORD_PATTERN.matcher(newPassword).matches()) { - return 0; - } if(adminMapper.getAdmin(password.getAccount())==null) { - return 0; + return Result.error("账户查找不到"); } try { // 获取认证后的用户信息 @@ -172,10 +168,10 @@ public class AdminServiceImpl implements AdminService { admin.setUpdateTime(new Date()); // 更新修改时间 adminMapper.updatePassword(admin); - return 1; + return Result.success("密码重置成功"); } catch (Exception e) { - return 0; + return Result.error("其他错误"); } } } \ No newline at end of file diff --git a/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java index 753c076..a031640 100644 --- a/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java @@ -161,14 +161,6 @@ public class PermissionServiceImpl implements PermissionService { } admin.setRemark(adminVo.getRemark()); permissionMapper.updateAdmin(admin); - // 处理密码重置:创建密码对象,设置账号和新密码 - Password password = new Password(); - password.setAccount(adminVo.getAccount()); - password.setNewPassword(adminVo.getPassword()); - if (adminService.resetPassword(password) == 0) { - return Result.error("密码更改失败"); - } - ; return Result.success("成功"); } } From 2c7c94a4f820e66c4191da91cc08c07011d09180 Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Mon, 14 Jul 2025 15:34:31 +0800 Subject: [PATCH 09/19] =?UTF-8?q?=E9=87=8D=E7=BD=AE=E5=8F=AF=E4=B8=BA0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java index 9375beb..48a4fe6 100644 --- a/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java @@ -90,8 +90,8 @@ public class RechargeServiceImpl implements RechargeService { if(rechargeUser.getFreeGold()==null||rechargeUser.getPermanentGold()==null||rechargeUser.getMoney()==null){ return Result.error("金币和金额不能为空"); } - if(rechargeUser.getFreeGold()<0||rechargeUser.getPermanentGold()<=0||rechargeUser.getMoney()<=0){ - return Result.error("充值不能为负数或0"); + if(rechargeUser.getFreeGold()<0||rechargeUser.getPermanentGold()<0||rechargeUser.getMoney()<0){ + return Result.error("充值不能为0"); } GoldUser goldUser = userMapper.selectUser(rechargeUser.getJwcode().toString()); if(goldUser==null){ From 736ffc473323076b86fe4374ef9a200cd7003506 Mon Sep 17 00:00:00 2001 From: huangqizhen <15552608129@163.com> Date: Mon, 14 Jul 2025 18:08:01 +0800 Subject: [PATCH 10/19] =?UTF-8?q?7.14=E6=95=B0=E6=8D=AE=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/demo/Export/ExportServiceImpl.java | 28 ++++++++++------------ .../example/demo/controller/AdminController.java | 1 + .../java/com/example/demo/mapper/AdminMapper.java | 1 + .../com/example/demo/service/AdminService.java | 1 + .../example/demo/serviceImpl/AdminServiceImpl.java | 5 ++++ .../demo/serviceImpl/GoldDetailServiceImpl.java | 9 +++++-- src/main/resources/application.yml | 6 ++--- src/main/resources/mapper/AdminMapper.xml | 4 ++++ src/main/resources/mapper/ConsumeMapper.xml | 8 +++---- src/main/resources/mapper/RechargeMapper.xml | 8 +++---- src/main/resources/mapper/RefundMapper.xml | 12 +++++----- 11 files changed, 49 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/example/demo/Export/ExportServiceImpl.java b/src/main/java/com/example/demo/Export/ExportServiceImpl.java index 78cc419..1e177eb 100644 --- a/src/main/java/com/example/demo/Export/ExportServiceImpl.java +++ b/src/main/java/com/example/demo/Export/ExportServiceImpl.java @@ -5,10 +5,13 @@ import com.example.demo.domain.DTO.ConsumeDTO; import com.example.demo.domain.DTO.RechargeDTO; import com.example.demo.domain.DTO.RefundDTO; import com.example.demo.domain.entity.Admin; +import com.example.demo.domain.entity.User; import com.example.demo.domain.vo.Result; import com.example.demo.exception.SystemException; import com.example.demo.mapper.GoldDetailMapper; import com.example.demo.Util.RedisUtil; +import com.example.demo.service.AdminService; +import com.example.demo.service.UserService; import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; @@ -22,6 +25,8 @@ import java.time.format.DateTimeFormatter; import java.util.HashMap; import java.util.Map; +import static net.sf.jsqlparser.util.validation.metadata.NamedObject.user; + /** * @program: GOLD * @ClassName ExportServiceImpl @@ -36,6 +41,8 @@ public class ExportServiceImpl implements ExportService{ private GoldDetailMapper goldDetailMapper; @Autowired private RedisUtil redisUtil; + @Autowired + private AdminService adminService; @Override public Result addExportRecharge(RechargeDTO dto) { @@ -48,10 +55,11 @@ public class ExportServiceImpl implements ExportService{ } catch (Exception e) { throw new RuntimeException(e.getMessage()); } + String admin = adminService.getName(String.valueOf(dto.getAccount())); // 生成文件名 String fileName = String.format("%s_%s_%s.xlsx", "充值明细", - "操作人", + admin, LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); System.out.println(fileName); dto.setUrl(""); @@ -78,10 +86,6 @@ public class ExportServiceImpl implements ExportService{ // 手动构造请求数据(避免 toString() 只返回部分字段) Map requestData = new HashMap<>(); - requestData.put("text", dto.getText()); - requestData.put("sort", dto.getSort()); - requestData.put("field", dto.getField()); - requestData.put("deptId", dto.getDeptid()); requestData.put("rechargeUser", dto.getRechargeUser()); exportData.put("requestData", requestData); @@ -106,10 +110,11 @@ public class ExportServiceImpl implements ExportService{ } catch (Exception e) { throw new RuntimeException(e.getMessage()); } + String admin = adminService.getName(String.valueOf(dto.getAccount())); // 生成文件名 String fileName = String.format("%s_%s_%s.xlsx", "退款明细", - "操作人", + admin, LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); System.out.println(fileName); dto.setUrl(""); @@ -135,10 +140,6 @@ public class ExportServiceImpl implements ExportService{ // 手动构造请求数据(避免 toString() 只返回部分字段) Map requestData = new HashMap<>(); - requestData.put("text", dto.getText()); - requestData.put("sort", dto.getSort()); - requestData.put("field", dto.getField()); - requestData.put("deptId", dto.getDeptid()); requestData.put("refundUser", dto.getRefundUser()); exportData.put("requestData", requestData); @@ -163,10 +164,11 @@ public class ExportServiceImpl implements ExportService{ } catch (Exception e) { throw new RuntimeException(e.getMessage()); } + String admin = adminService.getName(String.valueOf(dto.getAccount())); // 生成文件名 String fileName = String.format("%s_%s_%s.xlsx", "消耗明细", - "操作人", + admin, LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); System.out.println(fileName); dto.setUrl(""); @@ -192,10 +194,6 @@ public class ExportServiceImpl implements ExportService{ // 手动构造请求数据(避免 toString() 只返回部分字段) Map requestData = new HashMap<>(); - requestData.put("text", dto.getText()); - requestData.put("sort", dto.getSort()); - requestData.put("field", dto.getField()); - requestData.put("deptId", dto.getDeptid()); requestData.put("consumeUser", dto.getConsumeUser()); exportData.put("requestData", requestData); diff --git a/src/main/java/com/example/demo/controller/AdminController.java b/src/main/java/com/example/demo/controller/AdminController.java index 10269c3..e43a951 100644 --- a/src/main/java/com/example/demo/controller/AdminController.java +++ b/src/main/java/com/example/demo/controller/AdminController.java @@ -55,6 +55,7 @@ public class AdminController { System.out.println("1/*/*/*/*//*-*-*-*-*-*-1" + token); try { System.out.println("/+/+/+/+/+/+/+//" + JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class)); + return JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class); } catch (Exception e) { throw new RuntimeException(e); diff --git a/src/main/java/com/example/demo/mapper/AdminMapper.java b/src/main/java/com/example/demo/mapper/AdminMapper.java index c1b34f5..91996df 100644 --- a/src/main/java/com/example/demo/mapper/AdminMapper.java +++ b/src/main/java/com/example/demo/mapper/AdminMapper.java @@ -19,4 +19,5 @@ public interface AdminMapper { void updatePassword(Admin admin); + String getName(String account); } diff --git a/src/main/java/com/example/demo/service/AdminService.java b/src/main/java/com/example/demo/service/AdminService.java index 106b9a3..220d97b 100644 --- a/src/main/java/com/example/demo/service/AdminService.java +++ b/src/main/java/com/example/demo/service/AdminService.java @@ -16,6 +16,7 @@ public interface AdminService { Admin login(Admin admin)throws Exception; String getId(String account); + String getName(String account); Result updatePassword(Password password); diff --git a/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java index a880423..4bdf81b 100644 --- a/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java @@ -69,6 +69,11 @@ public class AdminServiceImpl implements AdminService { return adminMapper.getAdmin(account).getId().toString(); } + @Override + public String getName(String account) { + return adminMapper.getName(account); + } + private boolean hasPermissionToMachine(Admin admin, String targetMachineId) { if (targetMachineId == null || admin.getMachineId() == null) { return false; diff --git a/src/main/java/com/example/demo/serviceImpl/GoldDetailServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/GoldDetailServiceImpl.java index 98fa424..1b08c1d 100644 --- a/src/main/java/com/example/demo/serviceImpl/GoldDetailServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/GoldDetailServiceImpl.java @@ -9,6 +9,7 @@ import com.example.demo.domain.entity.User; import com.example.demo.domain.vo.*; import com.example.demo.exception.SystemException; import com.example.demo.mapper.GoldDetailMapper; +import com.example.demo.service.AdminService; import com.example.demo.service.GoldDetailService; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.pagehelper.PageHelper; @@ -42,6 +43,8 @@ public class GoldDetailServiceImpl implements GoldDetailService { private GoldDetailMapper goldDetailMapper; @Autowired private RedisUtil redisUtil; + @Autowired + private AdminService adminService; @Override public PageInfo getGoldDetail(Integer pageNum, Integer pageSize, GoldDetail goldDetail) { @@ -124,10 +127,11 @@ public class GoldDetailServiceImpl implements GoldDetailService { } catch (Exception e) { throw new RuntimeException(e.getMessage()); } + String admin = adminService.getName(String.valueOf(dto.getAccount())); // 生成文件名 String fileName = String.format("%s_%s_%s.xlsx", "客户金币明细", - "操作人", + admin, LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); System.out.println(fileName); dto.setUrl(""); @@ -182,10 +186,11 @@ public class GoldDetailServiceImpl implements GoldDetailService { } catch (Exception e) { throw new RuntimeException(e.getMessage()); } + String admin = adminService.getName(String.valueOf(dto.getAccount())); // 生成文件名 String fileName = String.format("%s_%s_%s.xlsx", "金币余额明细", - "操作人", + admin, LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); System.out.println(fileName); dto.setUrl(""); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index ef7a018..8e726da 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -4,9 +4,9 @@ spring: fail-on-unknown-properties: false datasource: mysql1: - jdbc-url: jdbc:mysql://18.143.76.3:3306/hwgoldc?serverTimezone=Asia/Shanghai - username: hwgoldc - password: zB48T55wCsHC8KPz + jdbc-url: jdbc:mysql://18.143.76.3:3306/hwgold?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true + username: hwgold + password: aDiw7MERSATdfGta driver-class-name: com.mysql.cj.jdbc.Driver hikari: pool-name: mysql1HikariCP diff --git a/src/main/resources/mapper/AdminMapper.xml b/src/main/resources/mapper/AdminMapper.xml index 15f0e8b..83a9c7f 100644 --- a/src/main/resources/mapper/AdminMapper.xml +++ b/src/main/resources/mapper/AdminMapper.xml @@ -22,4 +22,8 @@ update_time = #{updateTime} where account = #{account} + diff --git a/src/main/resources/mapper/ConsumeMapper.xml b/src/main/resources/mapper/ConsumeMapper.xml index 8263303..aa46c39 100644 --- a/src/main/resources/mapper/ConsumeMapper.xml +++ b/src/main/resources/mapper/ConsumeMapper.xml @@ -72,10 +72,10 @@ ugr.remark AS remark, a.admin_name AS adminName, ugr.create_time AS createTime - FROM user u - JOIN - user_gold_record ugr ON u.jwcode = ugr.jwcode - JOIN + FROM user_gold_record ugr + left JOIN + user u ON u.jwcode = ugr.jwcode + left JOIN admin a ON ugr.admin_id = a.id ugr.type = 1 diff --git a/src/main/resources/mapper/RechargeMapper.xml b/src/main/resources/mapper/RechargeMapper.xml index 3358e7a..84bd95d 100644 --- a/src/main/resources/mapper/RechargeMapper.xml +++ b/src/main/resources/mapper/RechargeMapper.xml @@ -79,10 +79,10 @@ ugr.admin_id AS adminId, a.admin_name AS adminName, ugr.pay_time AS payTime - FROM user u - JOIN user_gold_record ugr ON u.jwcode = ugr.jwcode - JOIN admin a ON ugr.admin_id = a.id - JOIN rate r ON ugr.rate_id = r.id + FROM user_gold_record ugr + left JOIN user u ON u.jwcode = ugr.jwcode + left JOIN admin a ON ugr.admin_id = a.id + left JOIN rate r ON ugr.rate_id = r.id ugr.type = 0 AND ugr.audit_status IN (1,3) diff --git a/src/main/resources/mapper/RefundMapper.xml b/src/main/resources/mapper/RefundMapper.xml index df4aaea..c04a435 100644 --- a/src/main/resources/mapper/RefundMapper.xml +++ b/src/main/resources/mapper/RefundMapper.xml @@ -19,9 +19,9 @@ a.admin_name AS adminName, ugr.create_time AS createTime FROM user u - JOIN + left JOIN user_gold_record ugr ON u.jwcode = ugr.jwcode - JOIN + left JOIN admin a ON ugr.admin_id = a.id WHERE ugr.type = 2 AND ugr.audit_status IN (1,3) @@ -76,10 +76,10 @@ ugr.remark AS remark, a.admin_name AS adminName, ugr.create_time AS createTime - FROM user u - JOIN - user_gold_record ugr ON u.jwcode = ugr.jwcode - JOIN + FROM user_gold_record ugr + left JOIN + user u ON u.jwcode = ugr.jwcode + left JOIN admin a ON ugr.admin_id = a.id ugr.type = 2 AND ugr.audit_status IN (1,3) From 9dbb61ad6a7f997da5231e6c705617f574820ec4 Mon Sep 17 00:00:00 2001 From: huangqizhen <15552608129@163.com> Date: Mon, 14 Jul 2025 18:08:34 +0800 Subject: [PATCH 11/19] =?UTF-8?q?7.14=E6=95=B0=E6=8D=AE=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java b/src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java index 0036465..b455b49 100644 --- a/src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java +++ b/src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java @@ -34,8 +34,9 @@ public class MysqlServiceImpl implements MysqlService { Set validZeroTypes = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 18, 19, 20, 21, 22, 23, 24, 26, 28, 29, 35, 36, 40, 45, 46, 47, 48, 49, 53, 54, 60)); Set validOneTypes = new HashSet<>(Arrays.asList(9, 15, 17, 25, 27, 37, 41, 42, 43, 50, 51, 62)); - Set validTwoTypes = new HashSet<>(Arrays.asList(52, 55, 56, 57, 58, 59, 61)); + Set validTwoTypes = new HashSet<>(Arrays.asList(52,61)); Set validThreeTypes = new HashSet<>(Arrays.asList(10, 16, 30, 31, 32, 33, 34, 39, 44)); + Set validFourTypes = new HashSet<>(Arrays.asList(55, 56, 57, 58, 59, 63, 64, 65)); LocalDateTime now = LocalDateTime.now(); Month currentMonth = now.getMonth(); @Autowired @@ -102,6 +103,9 @@ public class MysqlServiceImpl implements MysqlService { Random random = new Random(); int randomNumber = random.nextInt(900) + 100; // 判断gtype + if(validFourTypes.contains(gtype)){ + continue; + } if(validZeroTypes.contains(gtype)){ mysqlStmt.setInt(13, 0); mysqlStmt.setString(1, "ERPCZ"+timestampPart+randomNumber); From c0ec4a480f49d9b18a52fb4ef2aa1d73882fb881 Mon Sep 17 00:00:00 2001 From: lijianlin Date: Tue, 15 Jul 2025 08:55:56 +0800 Subject: [PATCH 12/19] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=BC=80=E5=90=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/example/demo/serviceImpl/StatisticsServiceImpl.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java index cf9cff8..8794abe 100644 --- a/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java @@ -42,7 +42,7 @@ public class StatisticsServiceImpl implements StatisticsService { 每小时执行定时任务更新当天part1数据 */ @Override -// @Scheduled(cron = "0 0 * * * ?") // 每小时执行一次 + @Scheduled(cron = "0 0 * * * ?") // 每小时执行一次 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 0 * * * ?") // 每小时执行一次 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 0 * * * ?") // 每小时执行一次 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 0 0 * * ?") public void runDailyTaskPart2() { Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_YEAR, -7); // 一周前 From 0f15490913d4d8a73206cdcf0e3250107151b42e Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Tue, 15 Jul 2025 09:59:53 +0800 Subject: [PATCH 13/19] =?UTF-8?q?=E4=BA=8C=E6=9C=9F=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=90=88=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/demo/controller/AdminController.java | 15 ++- .../example/demo/controller/ConsumeController.java | 4 + .../example/demo/controller/GeneralController.java | 2 + .../demo/controller/PermissionController.java | 5 +- .../demo/controller/RechargeController.java | 6 +- .../example/demo/controller/RefundController.java | 4 + .../example/demo/controller/UserController.java | 2 + .../java/com/example/demo/mapper/AdminMapper.java | 4 + .../com/example/demo/mapper/ConsumeMapper.java | 6 ++ .../com/example/demo/mapper/GeneralMapper.java | 3 + .../java/com/example/demo/mapper/RateMapper.java | 2 +- .../com/example/demo/mapper/RechargeMapper.java | 5 +- .../java/com/example/demo/mapper/RefundMapper.java | 5 + .../java/com/example/demo/mapper/UserMapper.java | 14 ++- .../com/example/demo/service/AdminService.java | 4 + .../com/example/demo/service/ConsumeService.java | 4 + .../example/demo/service/PermissionService.java | 6 +- .../java/com/example/demo/service/RateService.java | 2 +- .../com/example/demo/service/RechargeService.java | 4 + .../com/example/demo/service/RefundService.java | 5 + .../java/com/example/demo/service/UserService.java | 7 ++ .../example/demo/serviceImpl/AdminServiceImpl.java | 26 ++--- .../demo/serviceImpl/ConsumeServiceImpl.java | 11 +- .../demo/serviceImpl/PermissionServiceImpl.java | 115 ++++++++++++--------- .../example/demo/serviceImpl/RateServiceImpl.java | 8 +- .../demo/serviceImpl/RechargeServiceImpl.java | 10 +- .../demo/serviceImpl/RefundServiceImpl.java | 9 +- .../example/demo/serviceImpl/UserServiceImpl.java | 3 + 28 files changed, 203 insertions(+), 88 deletions(-) diff --git a/src/main/java/com/example/demo/controller/AdminController.java b/src/main/java/com/example/demo/controller/AdminController.java index e43a951..ab56559 100644 --- a/src/main/java/com/example/demo/controller/AdminController.java +++ b/src/main/java/com/example/demo/controller/AdminController.java @@ -62,6 +62,7 @@ public class AdminController { } } + //获取管理员ID @PostMapping("/adminId") public Result selectId(@RequestBody Admin admin) { @@ -74,7 +75,7 @@ public class AdminController { } } - + //更新用户密码 @PostMapping("/password") public Result updatePassword(@RequestBody Password password){ @@ -86,4 +87,16 @@ public class AdminController { } + //更新用户密码 + @PostMapping("/reset") + public Result resetPassword(@RequestBody Password password){ + + try { + return adminService.resetPassword(password); + } catch (Exception e) { + return Result.error("重置失败"); + } + + } + } diff --git a/src/main/java/com/example/demo/controller/ConsumeController.java b/src/main/java/com/example/demo/controller/ConsumeController.java index 0914acb..d02758a 100644 --- a/src/main/java/com/example/demo/controller/ConsumeController.java +++ b/src/main/java/com/example/demo/controller/ConsumeController.java @@ -36,9 +36,11 @@ public class ConsumeController { @PostMapping("/selectAll") public Result selcetAll(@RequestBody Page page) { try { + //页码校验 if (ObjectUtils.isEmpty(page.getPageNum())) { return Result.error("页码数为空!"); } + //页面大小校验 if (ObjectUtils.isEmpty(page.getPageSize())) { return Result.error("页大小为空!"); } else { @@ -56,9 +58,11 @@ public class ConsumeController { @PostMapping("/selectBy") public Result selcetBy(@RequestBody Page page) { try { + //页码校验 if (ObjectUtils.isEmpty(page.getPageNum())) { return Result.error("页码数为空!"); } + //页面大小校验 if (ObjectUtils.isEmpty(page.getPageSize())) { return Result.error("页大小为空!"); } else { diff --git a/src/main/java/com/example/demo/controller/GeneralController.java b/src/main/java/com/example/demo/controller/GeneralController.java index be01a78..7472975 100644 --- a/src/main/java/com/example/demo/controller/GeneralController.java +++ b/src/main/java/com/example/demo/controller/GeneralController.java @@ -41,12 +41,14 @@ public class GeneralController { List list = generalService.getPlatform(); return Result.success(list); } + //获取商品名称 @PostMapping("/goods") public Result getGoods() { List list = generalService.getGoods(); return Result.success(list); } + //获取活动名称 @PostMapping("/activity") public Result getActivity() { diff --git a/src/main/java/com/example/demo/controller/PermissionController.java b/src/main/java/com/example/demo/controller/PermissionController.java index 0c3d3c3..94f1d9a 100644 --- a/src/main/java/com/example/demo/controller/PermissionController.java +++ b/src/main/java/com/example/demo/controller/PermissionController.java @@ -2,6 +2,7 @@ package com.example.demo.controller; import com.example.demo.domain.entity.Admin; import com.example.demo.domain.entity.AdminRole; +import com.example.demo.domain.vo.AdminVo; import com.example.demo.domain.vo.Page; import com.example.demo.domain.vo.Permission; import com.example.demo.domain.vo.Result; @@ -53,9 +54,9 @@ public class PermissionController { } //编辑用户 @PostMapping("/updateAdmin") - public Result updateAdmin(@RequestBody Admin admin) throws Exception { + public Result updateAdmin(@RequestBody AdminVo adminVo) throws Exception { try { - return Result.success(permissionService.updateAdmin(admin)); + return Result.success(permissionService.updateAdmin(adminVo)); } catch (Exception e) { log.error(Arrays.toString(e.getStackTrace())); diff --git a/src/main/java/com/example/demo/controller/RechargeController.java b/src/main/java/com/example/demo/controller/RechargeController.java index ecd0880..1615080 100644 --- a/src/main/java/com/example/demo/controller/RechargeController.java +++ b/src/main/java/com/example/demo/controller/RechargeController.java @@ -29,7 +29,7 @@ public class RechargeController { @Autowired private RechargeService rechargeService; - //消耗明细 + //充值明细 @PostMapping("/selectAll") public Result selcetAll(@RequestBody Page page) { try { @@ -49,7 +49,7 @@ public class RechargeController { } - //消耗明细筛选 + //充值明细筛选 @PostMapping("/selectBy") public Result selcetBy(@RequestBody Page page) { try { @@ -67,7 +67,7 @@ public class RechargeController { } - //消耗金币统计 + //充值金币统计 @PostMapping("/statsGold") public Result statsGold(@RequestBody RechargeUser rechargeUser) { try { diff --git a/src/main/java/com/example/demo/controller/RefundController.java b/src/main/java/com/example/demo/controller/RefundController.java index 78b3446..ec46014 100644 --- a/src/main/java/com/example/demo/controller/RefundController.java +++ b/src/main/java/com/example/demo/controller/RefundController.java @@ -48,6 +48,7 @@ public class RefundController { } + //退款筛选 @PostMapping("/selectBy") public Result selcetBy(@RequestBody Page page) { try { @@ -66,6 +67,7 @@ public class RefundController { } + //退款金币统计 @PostMapping("/statsGold") public Result statsGold(@RequestBody RefundUser refundUser) { try { @@ -76,6 +78,7 @@ public class RefundController { } } + //获取退款类型 @PostMapping("/refundType") public Result getRefundType() { @@ -83,6 +86,7 @@ public class RefundController { return Result.success(list); } + //筛选产品 @PostMapping("/selectGoods") public Result getSelectGoods(@RequestBody RefundUser refundUser) { diff --git a/src/main/java/com/example/demo/controller/UserController.java b/src/main/java/com/example/demo/controller/UserController.java index a31818a..1033fce 100644 --- a/src/main/java/com/example/demo/controller/UserController.java +++ b/src/main/java/com/example/demo/controller/UserController.java @@ -30,6 +30,7 @@ public class UserController { @Autowired private UserService userService; + //查找用户 @PostMapping("/selectUser") public Result selectUser(@RequestBody GoldUser user) { try { @@ -39,6 +40,7 @@ public class UserController { return Result.error("请检查输入精网号"); } } + //查找用户全部信息 @PostMapping("/selectAllUser") public Result selectUser(@RequestBody User user) { try { diff --git a/src/main/java/com/example/demo/mapper/AdminMapper.java b/src/main/java/com/example/demo/mapper/AdminMapper.java index 91996df..b5ffe32 100644 --- a/src/main/java/com/example/demo/mapper/AdminMapper.java +++ b/src/main/java/com/example/demo/mapper/AdminMapper.java @@ -15,7 +15,11 @@ import org.apache.ibatis.annotations.Mapper; public interface AdminMapper { Admin getAdmin(String account); Admin selectByName(String account); + + //获取管理员ID Integer getId(String account); + + //更新密码 void updatePassword(Admin admin); diff --git a/src/main/java/com/example/demo/mapper/ConsumeMapper.java b/src/main/java/com/example/demo/mapper/ConsumeMapper.java index 60ca6a7..48bf80e 100644 --- a/src/main/java/com/example/demo/mapper/ConsumeMapper.java +++ b/src/main/java/com/example/demo/mapper/ConsumeMapper.java @@ -18,13 +18,19 @@ import java.util.List; @Mapper public interface ConsumeMapper { + //查找全部订单 List selectAll(ConsumeUser consumeUser); + //查找经过筛选后的订单 List selectBy(ConsumeUser consumeUser); + + //添加消费订单 void add(UserGoldRecord userGoldRecord); + //更新退款状态 void updateIsRefund(String orderCode); + //获得订单号 List selectOrderCodeByJwcode(String jwcode,String orderCode); } diff --git a/src/main/java/com/example/demo/mapper/GeneralMapper.java b/src/main/java/com/example/demo/mapper/GeneralMapper.java index de73b8a..3880ea1 100644 --- a/src/main/java/com/example/demo/mapper/GeneralMapper.java +++ b/src/main/java/com/example/demo/mapper/GeneralMapper.java @@ -16,6 +16,9 @@ import java.util.List; public interface GeneralMapper { List getMarket(); List getPlatform(); + //获取商品 List getGoods(); + + //获取活动 List getActivity(); } diff --git a/src/main/java/com/example/demo/mapper/RateMapper.java b/src/main/java/com/example/demo/mapper/RateMapper.java index 05602f3..0f50eca 100644 --- a/src/main/java/com/example/demo/mapper/RateMapper.java +++ b/src/main/java/com/example/demo/mapper/RateMapper.java @@ -8,7 +8,7 @@ import java.util.List; @Mapper public interface RateMapper { - List selectAll(); + List selectAll(); Rate selectById(Integer id); diff --git a/src/main/java/com/example/demo/mapper/RechargeMapper.java b/src/main/java/com/example/demo/mapper/RechargeMapper.java index e600ced..4a5170a 100644 --- a/src/main/java/com/example/demo/mapper/RechargeMapper.java +++ b/src/main/java/com/example/demo/mapper/RechargeMapper.java @@ -19,9 +19,10 @@ import java.util.List; @Mapper public interface RechargeMapper { + //获取全部充值 List selectAll(RechargeUser rechargeUser); - + //获取筛选后的充值 List selectBy(RechargeUser rechargeUser); - + //添加充值订单 void add(UserGoldRecord userGoldRecord); } diff --git a/src/main/java/com/example/demo/mapper/RefundMapper.java b/src/main/java/com/example/demo/mapper/RefundMapper.java index 3f8f14c..2c9c54d 100644 --- a/src/main/java/com/example/demo/mapper/RefundMapper.java +++ b/src/main/java/com/example/demo/mapper/RefundMapper.java @@ -19,14 +19,19 @@ import java.util.List; @Mapper public interface RefundMapper { + //获取全部退款订单 List selectAll(RefundUser refundUser); + //获取筛选后的订单 List selectBy(RefundUser refundUser); + //添加退款订单 void add(UserGoldRecord userGoldRecord); + //获取退款类型 List getRefundType(); + //获取商品 List selectGoods(Integer jwcode); } diff --git a/src/main/java/com/example/demo/mapper/UserMapper.java b/src/main/java/com/example/demo/mapper/UserMapper.java index 47e2946..f137af5 100644 --- a/src/main/java/com/example/demo/mapper/UserMapper.java +++ b/src/main/java/com/example/demo/mapper/UserMapper.java @@ -22,24 +22,32 @@ import java.util.List; @Mapper public interface UserMapper { + //获取用户金币信息 GoldUser selectUser(String jwcode); + //获取金币数 GoldUser selectGold(String jwcode); + //更新金币数 void updateGold(User user); - User selectAllUser(String jwcode); + //查找用户全部信息 + User selectAllUser(String jwcode); - //获取用户表全部jwcode + //获取用户表全部jwcode List getAllJwcode(); + //获取某用户最早的充值订单 Date getEarliestRecharge(Integer jwcode); + //更新用户首充日期 void updateFirstRecharge(@Param("jwcode") Integer jwcode, @Param("firstRecharge") Date firstRecharge); - void updateAllGold(User user); + + void updateAllGold(User user); void addUser(User user); + //根据精网号查询用户 User selectUserByJwcode(Integer jwcode); diff --git a/src/main/java/com/example/demo/service/AdminService.java b/src/main/java/com/example/demo/service/AdminService.java index 220d97b..7b90e1d 100644 --- a/src/main/java/com/example/demo/service/AdminService.java +++ b/src/main/java/com/example/demo/service/AdminService.java @@ -15,10 +15,14 @@ import com.example.demo.domain.vo.Result; public interface AdminService { Admin login(Admin admin)throws Exception; + //获取用户ID String getId(String account); String getName(String account); + //更新密码 Result updatePassword(Password password); + //重置密码 Result resetPassword(Password password); } + diff --git a/src/main/java/com/example/demo/service/ConsumeService.java b/src/main/java/com/example/demo/service/ConsumeService.java index 9ab9a3d..802564e 100644 --- a/src/main/java/com/example/demo/service/ConsumeService.java +++ b/src/main/java/com/example/demo/service/ConsumeService.java @@ -18,11 +18,15 @@ import com.github.pagehelper.PageInfo; public interface ConsumeService { + //查询全部消费 PageInfo selectAll(Integer pageNum, Integer pageSize, ConsumeUser consumeUser); + //统计消费金币 Gold statsGold(ConsumeUser consumeUser); + //查询筛选消费 PageInfo selectBy(Integer pageNum, Integer pageSize, ConsumeUser consumeUser); + //增加消费订单 Result add(ConsumeUser consumeUser); } diff --git a/src/main/java/com/example/demo/service/PermissionService.java b/src/main/java/com/example/demo/service/PermissionService.java index e306b28..646b6e2 100644 --- a/src/main/java/com/example/demo/service/PermissionService.java +++ b/src/main/java/com/example/demo/service/PermissionService.java @@ -3,7 +3,9 @@ package com.example.demo.service; import com.example.demo.domain.entity.Admin; import com.example.demo.domain.entity.AdminRole; import com.example.demo.domain.entity.Role; +import com.example.demo.domain.vo.AdminVo; import com.example.demo.domain.vo.Permission; +import com.example.demo.domain.vo.Result; import com.github.pagehelper.PageInfo; import java.util.List; @@ -25,6 +27,6 @@ public interface PermissionService { Integer deleteAdmin(Integer id); Integer updateAdminRole(AdminRole adminRole); Integer upadatePermission(Admin admin) throws Exception; - - Object updateAdmin(Admin admin)throws Exception; + //更新管理员信息 + Result updateAdmin(AdminVo adminVo)throws Exception; } diff --git a/src/main/java/com/example/demo/service/RateService.java b/src/main/java/com/example/demo/service/RateService.java index 0a14b2f..e0b2b1f 100644 --- a/src/main/java/com/example/demo/service/RateService.java +++ b/src/main/java/com/example/demo/service/RateService.java @@ -7,7 +7,7 @@ import com.github.pagehelper.PageInfo; public interface RateService { - PageInfo selectAll(Integer pageNum, Integer pageSize); + PageInfo selectAll(Integer pageNum, Integer pageSize); Rate selectById(Integer id); diff --git a/src/main/java/com/example/demo/service/RechargeService.java b/src/main/java/com/example/demo/service/RechargeService.java index 409fa16..7c5959b 100644 --- a/src/main/java/com/example/demo/service/RechargeService.java +++ b/src/main/java/com/example/demo/service/RechargeService.java @@ -16,11 +16,15 @@ import com.github.pagehelper.PageInfo; **/ public interface RechargeService { + //查询所有充值 PageInfo selectAll(Integer pageNum, Integer pageSize, RechargeUser rechargeUser); + //统计金币记录 Gold statsGold(RechargeUser rechargeUser); + //查询筛选充值 PageInfo selectBy(Integer pageNum, Integer pageSize, RechargeUser rechargeUser); + //添加充值记录 Result add(RechargeUser rechargeUser); } diff --git a/src/main/java/com/example/demo/service/RefundService.java b/src/main/java/com/example/demo/service/RefundService.java index f8cbb41..7821f2e 100644 --- a/src/main/java/com/example/demo/service/RefundService.java +++ b/src/main/java/com/example/demo/service/RefundService.java @@ -20,16 +20,21 @@ import java.util.List; public interface RefundService { + //查找全部退款 PageInfo selectAll(Integer pageNum, Integer pageSize, RefundUser refundUser); + //统计退款金额 Gold statsGold(RefundUser refundUser); + //查找筛选退款 PageInfo selectBy(Integer pageNum, Integer pageSize, RefundUser refundUser); + //添加退款记录 Result add(RefundUser refundUser); //获取退款类型 List getRefundType(); + //查找退款商品 List selectGoods(Integer jwcode); } diff --git a/src/main/java/com/example/demo/service/UserService.java b/src/main/java/com/example/demo/service/UserService.java index 83fac3a..b945d93 100644 --- a/src/main/java/com/example/demo/service/UserService.java +++ b/src/main/java/com/example/demo/service/UserService.java @@ -17,14 +17,21 @@ import java.util.List; public interface UserService { + //查找用户部分信息 GoldUser selectUser(String jwcode); + + //查找用户金币 GoldUser selectgold(String jwcode); + //查找用户全部信息 User selectAllUser(String jwcode); + //更新用户的全部金币 void updateAllGold(User user); + //新增用户 void addUser(User user); + //更新用户的首充时间 void updateFirstRecharge(); } diff --git a/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java index 4bdf81b..f044210 100644 --- a/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java @@ -64,6 +64,7 @@ public class AdminServiceImpl implements AdminService { } } + //获取用户ID @Override public String getId(String account) { return adminMapper.getAdmin(account).getId().toString(); @@ -90,18 +91,17 @@ public class AdminServiceImpl implements AdminService { private static final String PASSWORD_REGEX = "^(?![0-9]+$)(?![a-zA-Z]+$)(?!\\W+$).{8,16}$"; private static final Pattern PASSWORD_PATTERN = Pattern.compile(PASSWORD_REGEX); + //更新密码 @Override public Result updatePassword(Password password) { String oldPassword = password.getOldPassword(); String newPassword = password.getNewPassword(); String againPassword = password.getAgainPassword(); + // 校验输入参数是否为空(账号、旧密码、新密码、确认密码均不可为空) if(oldPassword == null || newPassword == null || againPassword == null ||password.getAccount() == null) { return Result.error("输入不能为空"); } - if (oldPassword.equals(newPassword)) { - return Result.error("新密码不能与旧密码相同"); - } // 检查两次输入的新密码是否一致 if (!newPassword.equals(againPassword)) { return Result.error("两次输入的新密码不一致"); @@ -114,6 +114,10 @@ public class AdminServiceImpl implements AdminService { { return Result.error("用户不存在"); } + // 校验新密码是否与旧密码相同(不允许相同) + if (oldPassword.equals(newPassword)) { + return Result.error("新密码与历史密码重复"); + } try { // 创建认证令牌并验证旧密码 UsernamePasswordAuthenticationToken token = @@ -144,22 +148,18 @@ public class AdminServiceImpl implements AdminService { } - + //重置密码 @Override public Result resetPassword(Password password) { - String newPassword = password.getNewPassword(); - if(newPassword == null ||password.getAccount() == null) { - return Result.error("输入不能为空"); + String newPassword = "123456"; + if(password.getAccount() == null) { + return Result.error("账户未输入"); } - // 检查新密码是否符合复杂度要求 - if (!PASSWORD_PATTERN.matcher(newPassword).matches()) { - return Result.error("新密码必须为8-16位数字、字母或符号组成,且至少包含其中两种"); - } if(adminMapper.getAdmin(password.getAccount())==null) { - return Result.error("用户不存在"); + return Result.error("账户查找不到"); } try { // 获取认证后的用户信息 @@ -177,7 +177,7 @@ public class AdminServiceImpl implements AdminService { return Result.success("密码重置成功"); } catch (Exception e) { - return Result.error("密码重置失败"); + return Result.error("其他错误"); } } } \ No newline at end of file diff --git a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java index d4fe28d..1a7ef1a 100644 --- a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java @@ -146,6 +146,7 @@ public class ConsumeServiceImpl implements ConsumeService { userGoldRecord.setFreeJune(0); } } + //信息输入 userGoldRecord.setTaskGold(-consumeUser.getTaskGold()); userGoldRecord.setRemark(consumeUser.getRemark()); userGoldRecord.setType((byte) 1); @@ -165,11 +166,11 @@ public class ConsumeServiceImpl implements ConsumeService { user.setConsumeNum(gold.getConsumeNum() + 1); user.setSumConsume(-(consumeUser.getPermanentGold() + consumeUser.getFreeGold() + consumeUser.getTaskGold())); 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()); - // } + // 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()); + // } return Result.success(); } } diff --git a/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java index f026057..a031640 100644 --- a/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java @@ -3,9 +3,13 @@ package com.example.demo.serviceImpl; import com.example.demo.domain.entity.Admin; import com.example.demo.domain.entity.AdminRole; import com.example.demo.domain.entity.Role; +import com.example.demo.domain.vo.AdminVo; +import com.example.demo.domain.vo.Password; 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.PermissionMapper; +import com.example.demo.service.AdminService; import com.example.demo.service.PermissionService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -32,6 +36,9 @@ public class PermissionServiceImpl implements PermissionService { private PermissionMapper permissionMapper; @Autowired private AdminMapper adminMapper; + @Autowired + private AdminService adminService; + @Override public List getposition(String token) { return permissionMapper.getposition(token); @@ -45,47 +52,46 @@ public class PermissionServiceImpl implements PermissionService { @Override public PageInfo getpermission(Integer pageNum, Integer pageSize, Permission permission) { PageHelper.startPage(pageNum, pageSize); - List list= permissionMapper.getPermission(permission); + List list = permissionMapper.getPermission(permission); return new PageInfo<>(list); } @Override @Transactional - public Integer addpermission(Admin admin) throws Exception { + public Integer addpermission(Admin admin) throws Exception { - if(!ObjectUtils.isEmpty(adminMapper.getAdmin(admin.getAccount()))){ + if (!ObjectUtils.isEmpty(adminMapper.getAdmin(admin.getAccount()))) { throw new 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.getRoleId())){ - throw new Exception("权限类别为空!"); - } - if(ObjectUtils.isEmpty( admin.getAdminName())){ - throw new Exception("用户名为空!"); - } - if(ObjectUtils.isEmpty( admin.getMachineId())){ - throw new 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.getRoleId())) { + 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 { + BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); + admin.setPassword(passwordEncoder.encode(("123456"))); + permissionMapper.addPermission(admin); + AdminRole adminRole = new AdminRole(); + adminRole.setAdminId(admin.getId()); + adminRole.setRoleId(admin.getRoleId()); + return permissionMapper.addadminRole(adminRole); } - else { - BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); - admin.setPassword(passwordEncoder.encode(("123456"))); - permissionMapper.addPermission(admin); - AdminRole adminRole = new AdminRole(); - adminRole.setAdminId(admin.getId()); - adminRole.setRoleId(admin.getRoleId()); - return permissionMapper.addadminRole(adminRole); - } } @Override @@ -96,7 +102,7 @@ public class PermissionServiceImpl implements PermissionService { @Override @Transactional public Integer deleteAdmin(Integer id) { - if (id == null){ + if (id == null) { return -1; } @@ -115,32 +121,47 @@ public class PermissionServiceImpl implements PermissionService { return permissionMapper.updatePermission(admin); } + //更新管理员信息 @Override - public Object updateAdmin(Admin admin)throws Exception { - - if(ObjectUtils.isEmpty(admin.getAccount())){ + public Result updateAdmin(AdminVo adminVo) throws Exception { + // 校验账号是否为空(账号是唯一标识,必须存在) + if (ObjectUtils.isEmpty(adminVo.getAccount())) { throw new Exception("账号为空!"); } - if(ObjectUtils.isEmpty( admin.getMarket())){ + // 校验用户名是否为空(管理员姓名为必填项) + if (ObjectUtils.isEmpty(adminVo.getAdminName())) { + throw new Exception("用户名为空!"); + } + // 校验地区是否为空(管理员所属地区为必填项) + if (ObjectUtils.isEmpty(adminVo.getMarket())) { throw new Exception("地区为空!"); } - if(ObjectUtils.isEmpty( admin.getPostiton())){ + // 校验职位是否为空(管理员职位为必填项) + if (ObjectUtils.isEmpty(adminVo.getPostiton())) { throw new Exception("职位为空!"); } - - if(ObjectUtils.isEmpty( admin.getAdminName())){ - throw new Exception("用户名为空!"); - } - if(ObjectUtils.isEmpty( admin.getMachineId())){ + // 校验机器编号是否为空(机器编号为必填项) + if (ObjectUtils.isEmpty(adminVo.getMachineId())) { throw new Exception("机器编号为空!"); } - if (admin.getMachineId().contains(",")) { + // 校验机器编号格式(不允许包含逗号,避免与后续拼接逻辑冲突 + if (adminVo.getMachineId().contains(",")) { throw new Exception("机器编号格式错误"); - } - else { - - - return permissionMapper.updateAdmin(admin); + } else { + Admin admin = new Admin(); + admin.setAccount(adminVo.getAccount()); + admin.setAdminName(adminVo.getAdminName()); + admin.setMarket(adminVo.getMarket()); + admin.setPostiton(adminVo.getPostiton()); + // 处理机器编号:若存在额外机器编号(machineIds),则与原编号拼接(用逗号分隔) + if (adminVo.getMachineIds() == null) { + admin.setMachineId(adminVo.getMachineId()); + } else { + admin.setMachineId(adminVo.getMachineId() + "," + adminVo.getMachineIds()); + } + admin.setRemark(adminVo.getRemark()); + permissionMapper.updateAdmin(admin); + return Result.success("成功"); } } diff --git a/src/main/java/com/example/demo/serviceImpl/RateServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RateServiceImpl.java index e2b55aa..e60f2aa 100644 --- a/src/main/java/com/example/demo/serviceImpl/RateServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/RateServiceImpl.java @@ -22,9 +22,9 @@ public class RateServiceImpl implements RateService { @Override - public PageInfo selectAll(Integer pageNum, Integer pageSize) { + public PageInfo selectAll(Integer pageNum, Integer pageSize) { PageHelper.startPage(pageNum, pageSize); - List rates = rateMapper.selectAll(); + List rates = rateMapper.selectAll(); return new PageInfo<>(rates); } @@ -45,6 +45,6 @@ public class RateServiceImpl implements RateService { if (rate.getNum() == null || rate.getNum().equals(BigDecimal.ZERO)) { return Result.error("汇率数值存在异常"); }else { - return Result.success("编辑成功"); - }} + return Result.success("编辑成功"); + }} } diff --git a/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java index 832db37..48a4fe6 100644 --- a/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java @@ -38,7 +38,7 @@ public class RechargeServiceImpl implements RechargeService { @Autowired private UserMapper userMapper; - + //查询所有充值 @Override public PageInfo selectAll(Integer pageNum, Integer pageSize, RechargeUser rechargeUser) { PageHelper.startPage(pageNum, pageSize); @@ -46,6 +46,7 @@ public class RechargeServiceImpl implements RechargeService { return new PageInfo<>(rechargeUsers); } + //查询筛选充值 @Override public PageInfo selectBy(Integer pageNum, Integer pageSize, RechargeUser rechargeUser) { PageHelper.startPage(pageNum, pageSize); @@ -53,6 +54,7 @@ public class RechargeServiceImpl implements RechargeService { return new PageInfo<>(rechargeUsers); } + //统计金币记录 @Override public Gold statsGold(RechargeUser rechargeUser) { Gold gold = new Gold(); @@ -82,13 +84,14 @@ public class RechargeServiceImpl implements RechargeService { } + //添加充值记录 @Override public Result add(RechargeUser rechargeUser) { if(rechargeUser.getFreeGold()==null||rechargeUser.getPermanentGold()==null||rechargeUser.getMoney()==null){ return Result.error("金币和金额不能为空"); } - if(rechargeUser.getFreeGold()<0||rechargeUser.getPermanentGold()<=0||rechargeUser.getMoney()<=0){ - return Result.error("充值不能为负数或0"); + if(rechargeUser.getFreeGold()<0||rechargeUser.getPermanentGold()<0||rechargeUser.getMoney()<0){ + return Result.error("充值不能为0"); } GoldUser goldUser = userMapper.selectUser(rechargeUser.getJwcode().toString()); if(goldUser==null){ @@ -120,6 +123,7 @@ public class RechargeServiceImpl implements RechargeService { userGoldRecord.setFreeJune(rechargeUser.getFreeGold()); userGoldRecord.setFreeDecember(0); } + //数据输入 userGoldRecord.setSumGold(rechargeUser.getFreeGold()+rechargeUser.getPermanentGold()); userGoldRecord.setRateId(rechargeUser.getRateId()); userGoldRecord.setMoney(rechargeUser.getMoney()); diff --git a/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java index 3c5b9e9..4e47d8f 100644 --- a/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java @@ -44,7 +44,7 @@ public class RefundServiceImpl implements RefundService { @Autowired private UserMapper userMapper; - + //查找全部退款 @Override public PageInfo selectAll(Integer pageNum, Integer pageSize, RefundUser refundUser) { PageHelper.startPage(pageNum, pageSize); @@ -52,6 +52,7 @@ public class RefundServiceImpl implements RefundService { return new PageInfo<>(refundUsers); } + //统计退款金额 @Override public Gold statsGold(RefundUser refundUser) { Gold gold = new Gold(); @@ -86,6 +87,7 @@ public class RefundServiceImpl implements RefundService { return gold; } + //查找筛选退款 @Override public PageInfo selectBy(Integer pageNum, Integer pageSize, RefundUser refundUser) { PageHelper.startPage(pageNum, pageSize); @@ -93,6 +95,7 @@ public class RefundServiceImpl implements RefundService { return new PageInfo<>(refundUsers); } + //添加退款记录 @Transactional @Override public Result add(RefundUser refundUser) { @@ -140,6 +143,7 @@ public class RefundServiceImpl implements RefundService { userGoldRecord.setFreeJune(refundUser.getFreeGold()); userGoldRecord.setFreeDecember(0); } + //信息输入 userGoldRecord.setTaskGold(refundUser.getTaskGold()); userGoldRecord.setSumGold(refundUser.getSumGold()); userGoldRecord.setPayPlatform("金币系统"); @@ -149,6 +153,7 @@ public class RefundServiceImpl implements RefundService { userGoldRecord.setAuditStatus(0); userGoldRecord.setCreateTime(new Date()); List list = consumeMapper.selectOrderCodeByJwcode(userGoldRecord.getJwcode().toString(), orderCode); + //消费订单号校验 if (list == null || list.isEmpty()) { return Result.error("该用户没有该订单号"); }else if(list.size()==1){ @@ -165,6 +170,7 @@ public class RefundServiceImpl implements RefundService { return Result.success(); } + //获取退款类型 @Override public List getRefundType() { List list = refundMapper.getRefundType(); @@ -175,6 +181,7 @@ public class RefundServiceImpl implements RefundService { return filteredList; } + //查找退款商品 @Override public List selectGoods(Integer jwcode) { List refundUsers = refundMapper.selectGoods(jwcode); diff --git a/src/main/java/com/example/demo/serviceImpl/UserServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/UserServiceImpl.java index ce4de57..a5646ad 100644 --- a/src/main/java/com/example/demo/serviceImpl/UserServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/UserServiceImpl.java @@ -29,12 +29,14 @@ public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; + //查找用户部分信息 @Override public GoldUser selectUser(String jwcode) { GoldUser user = userMapper.selectUser(jwcode); return user; } + //查找用户全部信息 @Override public User selectAllUser(String jwcode) { User user = userMapper.selectAllUser(jwcode); @@ -72,6 +74,7 @@ public class UserServiceImpl implements UserService { } } + //查找用户金币 @Override public GoldUser selectgold(String jwcode) { GoldUser gold = userMapper.selectGold(jwcode); From 507f7090a4a661d45d481f6dd06efee6d994d975 Mon Sep 17 00:00:00 2001 From: huangqizhen <15552608129@163.com> Date: Tue, 15 Jul 2025 10:02:03 +0800 Subject: [PATCH 14/19] =?UTF-8?q?7.15=E7=AD=9B=E9=80=89=E9=9D=9E=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java | 7 ++++++- src/main/resources/mapper/GoldDetailMapper.xml | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java b/src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java index b455b49..1aa4146 100644 --- a/src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java +++ b/src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java @@ -77,7 +77,7 @@ public class MysqlServiceImpl implements MysqlService { //退款类型 61:ERP退款(退金币) String insertSql = "INSERT INTO user_gold_record (order_code,jwcode,sum_gold,permanent_gold,free_june,free_december," + "task_gold,pay_platform,goods_name,refund_type,refund_model,remark,type,admin_id," + - "audit_status,create_time) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) "; + "audit_status,create_time,flag) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) "; try (PreparedStatement mysqlStmt = mysqlConn.prepareStatement(insertSql)) { while (resultSet.next()) { int gtype = resultSet.getInt("gtype"); @@ -159,6 +159,11 @@ public class MysqlServiceImpl implements MysqlService { mysqlStmt.setString(12, remark); mysqlStmt.setInt(15, 3); mysqlStmt.setTimestamp(16, created_at); + if(remark.contains("测试")){ + mysqlStmt.setInt(17, 0); + }else { + mysqlStmt.setInt(17, 1); + } // 更新时的值 mysqlStmt.addBatch(); diff --git a/src/main/resources/mapper/GoldDetailMapper.xml b/src/main/resources/mapper/GoldDetailMapper.xml index 5961ff2..76ad21c 100644 --- a/src/main/resources/mapper/GoldDetailMapper.xml +++ b/src/main/resources/mapper/GoldDetailMapper.xml @@ -13,6 +13,7 @@ left join `user` on `user`.jwcode = `ugr`.jwcode left join `admin` on `admin`.id = `ugr`.admin_id + ugr.flag = 1 and ugr.audit_status IN (1,3) and ugr.jwcode = #{jwcode} @@ -44,6 +45,8 @@ select sum(sum_gold) as Goldtotal, sum(permanent_gold) as permanentGold, sum(free_june+free_december) as freeGold, sum(task_gold) as taskGold from user_gold_record + ugr.flag = 1 and + ugr.audit_status IN (1,3) and `ugr`.jwcode = #{jwcode} @@ -103,6 +106,7 @@ left join `user` on `user`.jwcode = `ugr`.jwcode left join `admin` on `admin`.id = `ugr`.admin_id + ugr.flag = 1 and `ugr`.jwcode = #{jwcode} From 37bb058f54fde2292aaf5d72e4ee9d8ced668a05 Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Tue, 15 Jul 2025 10:16:14 +0800 Subject: [PATCH 15/19] flag=1 --- src/main/resources/mapper/ConsumeMapper.xml | 44 ++++++++++--------- src/main/resources/mapper/RechargeMapper.xml | 2 + src/main/resources/mapper/RefundMapper.xml | 65 ++++++++++++++++------------ 3 files changed, 63 insertions(+), 48 deletions(-) diff --git a/src/main/resources/mapper/ConsumeMapper.xml b/src/main/resources/mapper/ConsumeMapper.xml index aa46c39..f8e06a5 100644 --- a/src/main/resources/mapper/ConsumeMapper.xml +++ b/src/main/resources/mapper/ConsumeMapper.xml @@ -16,12 +16,12 @@ ugr.remark AS remark, a.admin_name AS adminName, ugr.create_time AS createTime - FROM user u - JOIN - user_gold_record ugr ON u.jwcode = ugr.jwcode - JOIN + FROM user_gold_record ugr + left JOIN + user u ON u.jwcode = ugr.jwcode + left JOIN admin a ON ugr.admin_id = a.id - WHERE ugr.type = 1 + WHERE ugr.type = 1 AND ugr.flag = 1 @@ -30,7 +30,9 @@ ugr.task_gold ugr.permanent_gold - (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) + (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, + 0)) + ugr.create_time @@ -72,13 +74,13 @@ ugr.remark AS remark, a.admin_name AS adminName, ugr.create_time AS createTime - FROM user_gold_record ugr + FROM user_gold_record ugr left JOIN user u ON u.jwcode = ugr.jwcode - left JOIN + left JOIN admin a ON ugr.admin_id = a.id - ugr.type = 1 + ugr.type = 1 AND ugr.flag = 1 AND ugr.jwcode = #{jwcode} @@ -103,7 +105,9 @@ ugr.task_gold ugr.permanent_gold - (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, 0)) + (COALESCE(ugr.free_june, 0) + COALESCE(ugr.free_december, + 0)) + ugr.create_time @@ -132,17 +136,17 @@ - + INSERT INTO user_gold_record order_code, @@ -186,7 +190,7 @@ UPDATE user_gold_record SET is_refund = 1 - where - order_code = #{orderCode} + where order_code = #{orderCode} + AND flag = 1 \ No newline at end of file diff --git a/src/main/resources/mapper/RechargeMapper.xml b/src/main/resources/mapper/RechargeMapper.xml index 84bd95d..bbd234b 100644 --- a/src/main/resources/mapper/RechargeMapper.xml +++ b/src/main/resources/mapper/RechargeMapper.xml @@ -25,6 +25,7 @@ JOIN admin a ON ugr.admin_id = a.id JOIN rate r ON ugr.rate_id = r.id WHERE ugr.type = 0 AND ugr.audit_status IN (1,3) + AND ugr.flag = 1 @@ -85,6 +86,7 @@ left JOIN rate r ON ugr.rate_id = r.id ugr.type = 0 AND ugr.audit_status IN (1,3) + AND ugr.flag = 1 AND ugr.jwcode = #{jwcode} diff --git a/src/main/resources/mapper/RefundMapper.xml b/src/main/resources/mapper/RefundMapper.xml index c04a435..db25452 100644 --- a/src/main/resources/mapper/RefundMapper.xml +++ b/src/main/resources/mapper/RefundMapper.xml @@ -4,26 +4,26 @@ - + INSERT INTO user_gold_record order_code, @@ -178,7 +185,8 @@ \ No newline at end of file From de263ab364df0342735bd8eae53c9c0faffec834 Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Tue, 15 Jul 2025 15:20:36 +0800 Subject: [PATCH 16/19] =?UTF-8?q?=E8=A7=92=E8=89=B2=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=EF=BC=8C=E6=9D=83=E9=99=90=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=EF=BC=8C=E8=A7=92=E8=89=B2=E6=96=B0=E5=A2=9E=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/demo/controller/MenuController.java | 40 +++++++++++++ .../example/demo/controller/RoleController.java | 41 ++++++++++++++ .../java/com/example/demo/domain/entity/Menu.java | 2 +- .../java/com/example/demo/domain/entity/Role.java | 1 + .../java/com/example/demo/domain/vo/MenuVo.java | 30 ++++++++++ .../java/com/example/demo/domain/vo/RoleVo.java | 35 ++++++++++++ .../java/com/example/demo/mapper/MenuMapper.java | 21 +++++++ .../java/com/example/demo/mapper/RoleMapper.java | 24 ++++++++ .../java/com/example/demo/service/MenuService.java | 20 +++++++ .../java/com/example/demo/service/RoleService.java | 20 +++++++ .../example/demo/serviceImpl/MenuServiceImpl.java | 58 +++++++++++++++++++ .../example/demo/serviceImpl/RoleServiceImpl.java | 66 ++++++++++++++++++++++ src/main/resources/application.yml | 6 +- src/main/resources/mapper/MenuMapper.xml | 23 ++++++++ src/main/resources/mapper/RoleMapper.xml | 13 +++++ 15 files changed, 396 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/example/demo/controller/MenuController.java create mode 100644 src/main/java/com/example/demo/controller/RoleController.java create mode 100644 src/main/java/com/example/demo/domain/vo/MenuVo.java create mode 100644 src/main/java/com/example/demo/domain/vo/RoleVo.java create mode 100644 src/main/java/com/example/demo/mapper/MenuMapper.java create mode 100644 src/main/java/com/example/demo/mapper/RoleMapper.java create mode 100644 src/main/java/com/example/demo/service/MenuService.java create mode 100644 src/main/java/com/example/demo/service/RoleService.java create mode 100644 src/main/java/com/example/demo/serviceImpl/MenuServiceImpl.java create mode 100644 src/main/java/com/example/demo/serviceImpl/RoleServiceImpl.java create mode 100644 src/main/resources/mapper/MenuMapper.xml create mode 100644 src/main/resources/mapper/RoleMapper.xml diff --git a/src/main/java/com/example/demo/controller/MenuController.java b/src/main/java/com/example/demo/controller/MenuController.java new file mode 100644 index 0000000..dec8ef1 --- /dev/null +++ b/src/main/java/com/example/demo/controller/MenuController.java @@ -0,0 +1,40 @@ +package com.example.demo.controller; + +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.service.MenuService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @program: gold-java + * @ClassName MenuController + * @description: + * @author: Double + * @create: 2025−07-15 14:10 + * @Version 1.0 + **/ + +@RestController +@RequestMapping("/menu") +@RequiredArgsConstructor +@Slf4j +@CrossOrigin +public class MenuController { + + @Autowired + private MenuService menuService; + + //获取权限树 + @PostMapping("/tree") + public Result getPermissionTree(@RequestBody RoleVo roleVo) { + List permissionTree = menuService.getPermissionTree(roleVo.getId()); + return Result.success(permissionTree); + } +} diff --git a/src/main/java/com/example/demo/controller/RoleController.java b/src/main/java/com/example/demo/controller/RoleController.java new file mode 100644 index 0000000..d365c8b --- /dev/null +++ b/src/main/java/com/example/demo/controller/RoleController.java @@ -0,0 +1,41 @@ +package com.example.demo.controller; + +import com.example.demo.domain.entity.Role; +import com.example.demo.domain.vo.Page; +import com.example.demo.domain.vo.Result; +import com.example.demo.domain.vo.RoleVo; +import com.example.demo.service.RefundService; +import com.example.demo.service.RoleService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.*; + +/** + * @program: gold-java + * @ClassName RoleController + * @description: + * @author: Double + * @create: 2025−07-15 11:23 + * @Version 1.0 + **/ + +@RestController +@RequestMapping("/role") +@RequiredArgsConstructor +@Slf4j +@CrossOrigin +public class RoleController { + + @Autowired + private RoleService roleService; + + //新增角色 + @PostMapping("/add") + public Result addRole(@RequestBody RoleVo roleVo) { + + return roleService.addRole(roleVo); + } + +} diff --git a/src/main/java/com/example/demo/domain/entity/Menu.java b/src/main/java/com/example/demo/domain/entity/Menu.java index edb381f..dd60531 100644 --- a/src/main/java/com/example/demo/domain/entity/Menu.java +++ b/src/main/java/com/example/demo/domain/entity/Menu.java @@ -23,7 +23,7 @@ public class Menu implements Serializable { private String permission; // 权限标识 private Integer sort; // 排序 private Byte menuStatus; // 状态 - + private Integer priority;//优先级 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private Date createTime; // 创建时间 diff --git a/src/main/java/com/example/demo/domain/entity/Role.java b/src/main/java/com/example/demo/domain/entity/Role.java index c572af9..2d9d42d 100644 --- a/src/main/java/com/example/demo/domain/entity/Role.java +++ b/src/main/java/com/example/demo/domain/entity/Role.java @@ -17,6 +17,7 @@ public class Role implements Serializable { private Integer id; // 角色id private String roleName; // 角色名 private String roleKey; // 角色标识符 + private Integer priority;//优先级 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private Date createTime; // 创建时间 diff --git a/src/main/java/com/example/demo/domain/vo/MenuVo.java b/src/main/java/com/example/demo/domain/vo/MenuVo.java new file mode 100644 index 0000000..bd4cb9a --- /dev/null +++ b/src/main/java/com/example/demo/domain/vo/MenuVo.java @@ -0,0 +1,30 @@ +package com.example.demo.domain.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @program: gold-java + * @ClassName MenuVo + * @description: + * @author: Double + * @create: 2025−07-15 13:16 + * @Version 1.0 + **/ + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class MenuVo { + + private Integer id;//id + private String menuName;//菜单名 + private Integer parentId;//父id + private Integer priority;//优先级 + private Integer menuType;//类型 + // 子菜单列表(用于构建树形结构) + private List children; +} diff --git a/src/main/java/com/example/demo/domain/vo/RoleVo.java b/src/main/java/com/example/demo/domain/vo/RoleVo.java new file mode 100644 index 0000000..7cd4ef8 --- /dev/null +++ b/src/main/java/com/example/demo/domain/vo/RoleVo.java @@ -0,0 +1,35 @@ +package com.example.demo.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.Date; + +/** + * @program: gold-java + * @ClassName RoleVo + * @description: + * @author: Double + * @create: 2025−07-15 11:45 + * @Version 1.0 + **/ + +@Data +@NoArgsConstructor +public class RoleVo implements Serializable { + private static final long serialVersionUID = 1L; + + private Integer id; // 角色id + private String roleName; // 角色名 + private String roleKey; // 角色标识符 + private Integer priority;//优先级 + private String fatherId;//上级角色id + @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; // 更新时间 +} diff --git a/src/main/java/com/example/demo/mapper/MenuMapper.java b/src/main/java/com/example/demo/mapper/MenuMapper.java new file mode 100644 index 0000000..2581749 --- /dev/null +++ b/src/main/java/com/example/demo/mapper/MenuMapper.java @@ -0,0 +1,21 @@ +package com.example.demo.mapper; + + +import com.example.demo.domain.vo.MenuVo; +import org.apache.ibatis.annotations.Mapper; +import java.util.List; + +/** + * @program: gold-java + * @ClassName MenuMapper + * @description: + * @author: Double + * @create: 2025−07-15 13:28 + * @Version 1.0 + **/ +@Mapper +public interface MenuMapper { + + //根据角色ID查菜单权限 + List selectMenusByRoleId(Integer roleId); +} diff --git a/src/main/java/com/example/demo/mapper/RoleMapper.java b/src/main/java/com/example/demo/mapper/RoleMapper.java new file mode 100644 index 0000000..bd8e333 --- /dev/null +++ b/src/main/java/com/example/demo/mapper/RoleMapper.java @@ -0,0 +1,24 @@ +package com.example.demo.mapper; + + +import com.example.demo.domain.entity.Role; +import org.apache.ibatis.annotations.Mapper; + +import java.util.Random; + +/** + * @program: gold-java + * @ClassName RoleMaper + * @description: + * @author: Double + * @create: 2025−07-15 11:33 + * @Version 1.0 + **/ + + +@Mapper +public interface RoleMapper { + + //查找角色名 + Role selectByRoleName(String roleName); +} diff --git a/src/main/java/com/example/demo/service/MenuService.java b/src/main/java/com/example/demo/service/MenuService.java new file mode 100644 index 0000000..01513af --- /dev/null +++ b/src/main/java/com/example/demo/service/MenuService.java @@ -0,0 +1,20 @@ +package com.example.demo.service; + +import java.util.List; +import com.example.demo.domain.vo.MenuVo; + +/** + * @program: gold-java + * @ClassName MenuService + * @description: + * @author: Double + * @create: 2025−07-15 13:38 + * @Version 1.0 + **/ + +public interface MenuService { + + + //根据角色ID生成权限树 + List getPermissionTree(Integer roleId); +} diff --git a/src/main/java/com/example/demo/service/RoleService.java b/src/main/java/com/example/demo/service/RoleService.java new file mode 100644 index 0000000..6a64c0e --- /dev/null +++ b/src/main/java/com/example/demo/service/RoleService.java @@ -0,0 +1,20 @@ +package com.example.demo.service; + + +import com.example.demo.domain.vo.Result; +import com.example.demo.domain.vo.RoleVo; + +/** + * @program: gold-java + * @ClassName RoleService + * @description: + * @author: Double + * @create: 2025−07-15 11:29 + * @Version 1.0 + **/ + +public interface RoleService { + + //新增角色 + Result addRole(RoleVo roleVo); +} diff --git a/src/main/java/com/example/demo/serviceImpl/MenuServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/MenuServiceImpl.java new file mode 100644 index 0000000..19b1da4 --- /dev/null +++ b/src/main/java/com/example/demo/serviceImpl/MenuServiceImpl.java @@ -0,0 +1,58 @@ +package com.example.demo.serviceImpl; + +import com.example.demo.domain.vo.MenuVo; +import com.example.demo.mapper.MenuMapper; +import com.example.demo.service.MenuService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * @program: gold-java + * @ClassName MenuServiceImpl + * @description: + * @author: Double + * @create: 2025−07-15 13:38 + * @Version 1.0 + **/ + +@Service +public class MenuServiceImpl implements MenuService { + + @Autowired + private MenuMapper menuMapper; + + //构建菜单树 + @Override + public List getPermissionTree(Integer roleId) { + // 1. 查询该管理员的所有权限菜单(平级列表) + List allMenus = menuMapper.selectMenusByRoleId(roleId); + + // 2. 构建树形结构(根节点parentId=1) + return buildTree(allMenus, 1); + } + + /** + * 递归构建树形结构 + * @param allMenus 所有菜单列表 + * @param parentId 父菜单ID(初始为0,查根节点) + */ + //详细递归构建树过程 + private List buildTree(List allMenus, Integer parentId) { + // 过滤出当前父节点的子菜单 + List children = allMenus.stream() + .filter(menu -> Objects.equals(menu.getParentId(), parentId)) + .collect(Collectors.toList()); + + // 递归为每个子菜单设置子节点 + for (MenuVo child : children) { + child.setChildren(buildTree(allMenus, child.getId())); + } + + return children; + } + +} diff --git a/src/main/java/com/example/demo/serviceImpl/RoleServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RoleServiceImpl.java new file mode 100644 index 0000000..b33b05b --- /dev/null +++ b/src/main/java/com/example/demo/serviceImpl/RoleServiceImpl.java @@ -0,0 +1,66 @@ +package com.example.demo.serviceImpl; + +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.RoleService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @program: gold-java + * @ClassName RoleServiceImpl + * @description: + * @author: Double + * @create: 2025−07-15 11:30 + * @Version 1.0 + **/ + +@Service +public class RoleServiceImpl implements RoleService { + + @Autowired + private RoleMapper roleMapper; + + //新增角色 + @Override + public Result addRole(RoleVo roleVo) { + //校验角色名 + if(roleVo.getRoleName()==null|| roleVo.getRoleName().isEmpty()){ + return Result.error("角色名为空"); + } + if(roleMapper.selectByRoleName(roleVo.getRoleName())!=null){ + return Result.error("角色名重复"); + } + if(roleVo.getPriority()==null){ + return Result.error("优先级为空"); + } + return Result.success("创建成功"); + } +} + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 8e726da..a550248 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -4,9 +4,9 @@ spring: fail-on-unknown-properties: false datasource: mysql1: - jdbc-url: jdbc:mysql://18.143.76.3:3306/hwgold?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true - username: hwgold - password: aDiw7MERSATdfGta + jdbc-url: jdbc:mysql://18.143.76.3:3306/hwgoldc?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true + username: hwgoldc + password: zB48T55wCsHC8KPz driver-class-name: com.mysql.cj.jdbc.Driver hikari: pool-name: mysql1HikariCP diff --git a/src/main/resources/mapper/MenuMapper.xml b/src/main/resources/mapper/MenuMapper.xml new file mode 100644 index 0000000..423b335 --- /dev/null +++ b/src/main/resources/mapper/MenuMapper.xml @@ -0,0 +1,23 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/RoleMapper.xml b/src/main/resources/mapper/RoleMapper.xml new file mode 100644 index 0000000..76499f6 --- /dev/null +++ b/src/main/resources/mapper/RoleMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + \ No newline at end of file From b40b2a7141f3edbdd0659fc4b68864275c656ca1 Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Tue, 15 Jul 2025 17:10:41 +0800 Subject: [PATCH 17/19] =?UTF-8?q?=E8=A7=92=E8=89=B2=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=89=A9=E4=BD=99=E6=8E=A5=E5=8F=A3=E3=80=82=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E5=92=8C=E8=A7=92=E8=89=B2=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/demo/controller/MenuController.java | 7 ++++ .../example/demo/controller/RoleController.java | 10 ++++++ .../java/com/example/demo/domain/vo/RoleMenu.java | 20 +++++++++++ .../java/com/example/demo/domain/vo/RoleVo.java | 5 ++- .../java/com/example/demo/mapper/MenuMapper.java | 10 ++++++ .../java/com/example/demo/mapper/RoleMapper.java | 10 ++++++ .../java/com/example/demo/service/MenuService.java | 7 ++++ .../java/com/example/demo/service/RoleService.java | 5 +++ .../example/demo/serviceImpl/MenuServiceImpl.java | 42 ++++++++++++++++++++++ .../example/demo/serviceImpl/RoleServiceImpl.java | 33 ++++++++++++++++- src/main/resources/mapper/MenuMapper.xml | 15 ++++++++ src/main/resources/mapper/RoleMapper.xml | 18 ++++++++++ 12 files changed, 180 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/example/demo/domain/vo/RoleMenu.java diff --git a/src/main/java/com/example/demo/controller/MenuController.java b/src/main/java/com/example/demo/controller/MenuController.java index dec8ef1..eb54768 100644 --- a/src/main/java/com/example/demo/controller/MenuController.java +++ b/src/main/java/com/example/demo/controller/MenuController.java @@ -37,4 +37,11 @@ public class MenuController { List permissionTree = menuService.getPermissionTree(roleVo.getId()); return Result.success(permissionTree); } + + //新增权限 + @PostMapping("/add") + public Result addPermission(@RequestBody RoleVo roleVo) { + + return menuService.addPermission(roleVo); + } } diff --git a/src/main/java/com/example/demo/controller/RoleController.java b/src/main/java/com/example/demo/controller/RoleController.java index d365c8b..237b919 100644 --- a/src/main/java/com/example/demo/controller/RoleController.java +++ b/src/main/java/com/example/demo/controller/RoleController.java @@ -12,6 +12,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * @program: gold-java * @ClassName RoleController @@ -38,4 +40,12 @@ public class RoleController { return roleService.addRole(roleVo); } + //查找全部角色 + @PostMapping("/selectAll") + public Result selectRole() { + List list = roleService.selectAllRole(); + return Result.success(list); + } + + } diff --git a/src/main/java/com/example/demo/domain/vo/RoleMenu.java b/src/main/java/com/example/demo/domain/vo/RoleMenu.java new file mode 100644 index 0000000..4b709f7 --- /dev/null +++ b/src/main/java/com/example/demo/domain/vo/RoleMenu.java @@ -0,0 +1,20 @@ +package com.example.demo.domain.vo; + +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @program: gold-java + * @ClassName RoleMenu + * @description: + * @author: Double + * @create: 2025−07-15 16:19 + * @Version 1.0 + **/ + +@Data +@NoArgsConstructor +public class RoleMenu { + private Integer roleId; // 角色id + private Integer menuId; // 菜单id +} diff --git a/src/main/java/com/example/demo/domain/vo/RoleVo.java b/src/main/java/com/example/demo/domain/vo/RoleVo.java index 7cd4ef8..17c9616 100644 --- a/src/main/java/com/example/demo/domain/vo/RoleVo.java +++ b/src/main/java/com/example/demo/domain/vo/RoleVo.java @@ -7,6 +7,7 @@ import lombok.NoArgsConstructor; import java.io.Serializable; import java.util.Date; +import java.util.List; /** * @program: gold-java @@ -26,10 +27,12 @@ public class RoleVo implements Serializable { private String roleName; // 角色名 private String roleKey; // 角色标识符 private Integer priority;//优先级 - private String fatherId;//上级角色id + private Integer fatherId;//上级角色id @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; // 更新时间 + + List menuIds;//拥有的菜单id } diff --git a/src/main/java/com/example/demo/mapper/MenuMapper.java b/src/main/java/com/example/demo/mapper/MenuMapper.java index 2581749..bedd339 100644 --- a/src/main/java/com/example/demo/mapper/MenuMapper.java +++ b/src/main/java/com/example/demo/mapper/MenuMapper.java @@ -1,7 +1,11 @@ package com.example.demo.mapper; +import com.example.demo.domain.entity.Menu; +import com.example.demo.domain.entity.Role; import com.example.demo.domain.vo.MenuVo; +import com.example.demo.domain.vo.RoleMenu; +import com.example.demo.domain.vo.RoleVo; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -18,4 +22,10 @@ public interface MenuMapper { //根据角色ID查菜单权限 List selectMenusByRoleId(Integer roleId); + + //新增权限 + void addPermission(List roleMenuList); + + //查找菜单id + Menu selectByMenuId(Integer id); } diff --git a/src/main/java/com/example/demo/mapper/RoleMapper.java b/src/main/java/com/example/demo/mapper/RoleMapper.java index bd8e333..ab01315 100644 --- a/src/main/java/com/example/demo/mapper/RoleMapper.java +++ b/src/main/java/com/example/demo/mapper/RoleMapper.java @@ -2,8 +2,10 @@ 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 java.util.List; import java.util.Random; /** @@ -21,4 +23,12 @@ public interface RoleMapper { //查找角色名 Role selectByRoleName(String roleName); + + //查找角色id + Role selectByRoleId(Integer id); + //查找全部角色 + List selectAllRole(); + + //新建角色 + void addRole(RoleVo roleVo); } diff --git a/src/main/java/com/example/demo/service/MenuService.java b/src/main/java/com/example/demo/service/MenuService.java index 01513af..93dae2c 100644 --- a/src/main/java/com/example/demo/service/MenuService.java +++ b/src/main/java/com/example/demo/service/MenuService.java @@ -2,6 +2,8 @@ package com.example.demo.service; import java.util.List; import com.example.demo.domain.vo.MenuVo; +import com.example.demo.domain.vo.Result; +import com.example.demo.domain.vo.RoleVo; /** * @program: gold-java @@ -17,4 +19,9 @@ public interface MenuService { //根据角色ID生成权限树 List getPermissionTree(Integer roleId); + + //新增权限 + Result addPermission(RoleVo roleVo); + + } diff --git a/src/main/java/com/example/demo/service/RoleService.java b/src/main/java/com/example/demo/service/RoleService.java index 6a64c0e..b802381 100644 --- a/src/main/java/com/example/demo/service/RoleService.java +++ b/src/main/java/com/example/demo/service/RoleService.java @@ -4,6 +4,8 @@ package com.example.demo.service; import com.example.demo.domain.vo.Result; import com.example.demo.domain.vo.RoleVo; +import java.util.List; + /** * @program: gold-java * @ClassName RoleService @@ -17,4 +19,7 @@ public interface RoleService { //新增角色 Result addRole(RoleVo roleVo); + + //查找全部角色 + List selectAllRole(); } diff --git a/src/main/java/com/example/demo/serviceImpl/MenuServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/MenuServiceImpl.java index 19b1da4..7e792e1 100644 --- a/src/main/java/com/example/demo/serviceImpl/MenuServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/MenuServiceImpl.java @@ -1,11 +1,17 @@ package com.example.demo.serviceImpl; import com.example.demo.domain.vo.MenuVo; +import com.example.demo.domain.vo.Result; +import com.example.demo.domain.vo.RoleMenu; +import com.example.demo.domain.vo.RoleVo; import com.example.demo.mapper.MenuMapper; +import com.example.demo.mapper.RoleMapper; import com.example.demo.service.MenuService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; @@ -25,6 +31,8 @@ public class MenuServiceImpl implements MenuService { @Autowired private MenuMapper menuMapper; + @Autowired + private RoleMapper roleMapper; //构建菜单树 @Override public List getPermissionTree(Integer roleId) { @@ -55,4 +63,38 @@ public class MenuServiceImpl implements MenuService { return children; } + //新增权限 + @Override + @Transactional + public Result addPermission(RoleVo roleVo) { + //校验 + if(Objects.isNull(roleVo)) { + return Result.error("传入角色为空"); + } + if(Objects.isNull(roleVo.getId())) { + return Result.error("角色ID为空"); + } + if(roleVo.getMenuIds() == null||roleVo.getMenuIds().isEmpty()) { + return Result.error("角色权限为空"); + } + if(roleMapper.selectByRoleId(roleVo.getId())==null){ + return Result.error("角色不存在"); + } + //角色菜单权限对应 + List roleMenuList = new ArrayList<>(); + //循环导入 + for (Integer menuId : roleVo.getMenuIds()) { + if(menuMapper.selectByMenuId(menuId)==null){ + return Result.error("菜单不存在"); + } + RoleMenu roleMenu = new RoleMenu(); + roleMenu.setRoleId(roleVo.getId()); + roleMenu.setMenuId(menuId); + roleMenuList.add(roleMenu); + } + //提交 + menuMapper.addPermission(roleMenuList); + return Result.success("权限新增成功"); + } + } diff --git a/src/main/java/com/example/demo/serviceImpl/RoleServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RoleServiceImpl.java index b33b05b..50c7db9 100644 --- a/src/main/java/com/example/demo/serviceImpl/RoleServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/RoleServiceImpl.java @@ -1,12 +1,17 @@ package com.example.demo.serviceImpl; +import com.example.demo.domain.entity.Role; 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 org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** * @program: gold-java @@ -22,11 +27,14 @@ public class RoleServiceImpl implements RoleService { @Autowired private RoleMapper roleMapper; + @Autowired + private MenuService menuService; //新增角色 @Override + @Transactional public Result addRole(RoleVo roleVo) { - //校验角色名 + //校验角色 if(roleVo.getRoleName()==null|| roleVo.getRoleName().isEmpty()){ return Result.error("角色名为空"); } @@ -36,8 +44,31 @@ public class RoleServiceImpl implements RoleService { if(roleVo.getPriority()==null){ return Result.error("优先级为空"); } + if(roleVo.getMenuIds()==null||roleVo.getMenuIds().isEmpty()){ + return Result.error("权限为空"); + } + try { + roleMapper.addRole(roleVo); + Role role = roleMapper.selectByRoleName(roleVo.getRoleName()); + if(role==null){ + return Result.error("角色添加失败"); + }else{ + roleVo.setId(role.getId()); + } + menuService.addPermission(roleVo); + }catch (Exception e) + { + return Result.error("添加失败"); + } + return Result.success("创建成功"); } + + //查找全部角色 + @Override + public List selectAllRole() { + return roleMapper.selectAllRole(); + } } diff --git a/src/main/resources/mapper/MenuMapper.xml b/src/main/resources/mapper/MenuMapper.xml index 423b335..e753797 100644 --- a/src/main/resources/mapper/MenuMapper.xml +++ b/src/main/resources/mapper/MenuMapper.xml @@ -20,4 +20,19 @@ m.parent_id,m.priority + + INSERT INTO role_menu (role_id, menu_id) + VALUES + + (#{item.roleId}, #{item.menuId}) + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/RoleMapper.xml b/src/main/resources/mapper/RoleMapper.xml index 76499f6..491113c 100644 --- a/src/main/resources/mapper/RoleMapper.xml +++ b/src/main/resources/mapper/RoleMapper.xml @@ -10,4 +10,22 @@ + + + + + + + INSERT INTO role + (role_name, priority, father_id) + VALUES + (#{roleName}, #{priority}, #{fatherId}) + \ No newline at end of file From e2f07f31bedb791dad1a1260ea1a31e12d43a0c0 Mon Sep 17 00:00:00 2001 From: lijianlin Date: Tue, 15 Jul 2025 17:12:35 +0800 Subject: [PATCH 18/19] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=91=98=E5=9C=B0=E5=8C=BA=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/example/demo/domain/entity/Admin.java | 2 +- src/main/java/com/example/demo/domain/vo/AdminVo.java | 2 +- .../java/com/example/demo/serviceImpl/PermissionServiceImpl.java | 6 ++++++ src/main/resources/mapper/PermissionMapper.xml | 2 +- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/example/demo/domain/entity/Admin.java b/src/main/java/com/example/demo/domain/entity/Admin.java index 56a48da..7f8fdc7 100644 --- a/src/main/java/com/example/demo/domain/entity/Admin.java +++ b/src/main/java/com/example/demo/domain/entity/Admin.java @@ -24,7 +24,7 @@ public class Admin implements UserDetails, Serializable { private String password; // 密码 private String machineId; // 机器码,限两个 private Byte adminStatus; // 状态(启用/不启用) - private String market; // 地区 + private List market; // 地区 private String postiton; // 职位 private String remark; // 备注 diff --git a/src/main/java/com/example/demo/domain/vo/AdminVo.java b/src/main/java/com/example/demo/domain/vo/AdminVo.java index a1b1088..88fc176 100644 --- a/src/main/java/com/example/demo/domain/vo/AdminVo.java +++ b/src/main/java/com/example/demo/domain/vo/AdminVo.java @@ -25,7 +25,7 @@ public class AdminVo implements UserDetails, Serializable { private String machineId; // 第一个机器码 private String machineIds; //第二个机器码 private Byte adminStatus; // 状态(启用/不启用) - private String market; // 地区 + private List market; // 地区 private String postiton; // 职位 private String remark; // 备注 diff --git a/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java index a031640..673e461 100644 --- a/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java @@ -19,6 +19,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; +import java.util.Collections; import java.util.List; /** @@ -69,6 +70,8 @@ public class PermissionServiceImpl implements PermissionService { if (ObjectUtils.isEmpty(admin.getMarket())) { throw new Exception("地区为空!"); } + if (admin.getMarket().contains("总部") && admin.getMarket().size() > 1) { + throw new Exception("总部不可与其他地区共存");} if (ObjectUtils.isEmpty(admin.getPostiton())) { throw new Exception("职位为空!"); } @@ -86,6 +89,9 @@ public class PermissionServiceImpl implements PermissionService { } else { BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); admin.setPassword(passwordEncoder.encode(("123456"))); + // 将地区列表转换为逗号分隔的字符串 + String markets = String.join(",", admin.getMarket()); + admin.setMarket(Collections.singletonList(markets)); permissionMapper.addPermission(admin); AdminRole adminRole = new AdminRole(); adminRole.setAdminId(admin.getId()); diff --git a/src/main/resources/mapper/PermissionMapper.xml b/src/main/resources/mapper/PermissionMapper.xml index 63fdc1d..e3ea7c8 100644 --- a/src/main/resources/mapper/PermissionMapper.xml +++ b/src/main/resources/mapper/PermissionMapper.xml @@ -3,7 +3,7 @@ insert into admin(admin_name,machine_id,account,password,market,postiton,remark,admin_status) - values(#{adminName},#{machineId},#{account},#{password},#{market},#{postiton},#{remark},1) + values(#{adminName},#{machineId},#{account},#{password},#{market[0]},#{postiton},#{remark},1) insert into admin_role(admin_id,role_id) From 07530f19762c1124b817d98b9ff5f112c24607dd Mon Sep 17 00:00:00 2001 From: lijianlin Date: Wed, 16 Jul 2025 09:20:25 +0800 Subject: [PATCH 19/19] =?UTF-8?q?=E7=BC=96=E8=BE=91=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=91=98=E5=9C=B0=E5=8C=BA=E4=BC=98=E5=8C=96=E4=B8=8E=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/demo/serviceImpl/PermissionServiceImpl.java | 14 +++++++++----- src/main/resources/mapper/PermissionMapper.xml | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java index 673e461..9e7a52a 100644 --- a/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/PermissionServiceImpl.java @@ -71,7 +71,8 @@ public class PermissionServiceImpl implements PermissionService { throw new Exception("地区为空!"); } if (admin.getMarket().contains("总部") && admin.getMarket().size() > 1) { - throw new Exception("总部不可与其他地区共存");} + throw new Exception("总部不可与其他地区共存"); + } if (ObjectUtils.isEmpty(admin.getPostiton())) { throw new Exception("职位为空!"); } @@ -142,14 +143,14 @@ public class PermissionServiceImpl implements PermissionService { if (ObjectUtils.isEmpty(adminVo.getMarket())) { throw new Exception("地区为空!"); } + if (adminVo.getMarket().contains("总部") && adminVo.getMarket().size() > 1) { + throw new Exception("总部不可与其他地区共存"); + } // 校验职位是否为空(管理员职位为必填项) if (ObjectUtils.isEmpty(adminVo.getPostiton())) { throw new Exception("职位为空!"); } - // 校验机器编号是否为空(机器编号为必填项) - if (ObjectUtils.isEmpty(adminVo.getMachineId())) { - throw new Exception("机器编号为空!"); - } + // 校验机器编号格式(不允许包含逗号,避免与后续拼接逻辑冲突 if (adminVo.getMachineId().contains(",")) { throw new Exception("机器编号格式错误"); @@ -159,6 +160,9 @@ public class PermissionServiceImpl implements PermissionService { admin.setAdminName(adminVo.getAdminName()); admin.setMarket(adminVo.getMarket()); admin.setPostiton(adminVo.getPostiton()); + // 将地区列表转换为逗号分隔的字符串 + String markets = String.join(",", admin.getMarket()); + admin.setMarket(Collections.singletonList(markets)); // 处理机器编号:若存在额外机器编号(machineIds),则与原编号拼接(用逗号分隔) if (adminVo.getMachineIds() == null) { admin.setMachineId(adminVo.getMachineId()); diff --git a/src/main/resources/mapper/PermissionMapper.xml b/src/main/resources/mapper/PermissionMapper.xml index e3ea7c8..e0d17ba 100644 --- a/src/main/resources/mapper/PermissionMapper.xml +++ b/src/main/resources/mapper/PermissionMapper.xml @@ -43,7 +43,7 @@ remark= #{remark}, - market= #{market} + market= #{market[0]} where account= #{account}