diff --git a/src/main/java/com/example/demo/controller/coin/AdminController.java b/src/main/java/com/example/demo/controller/coin/AdminController.java index b821128..32ca95c 100644 --- a/src/main/java/com/example/demo/controller/coin/AdminController.java +++ b/src/main/java/com/example/demo/controller/coin/AdminController.java @@ -46,7 +46,7 @@ public class AdminController { @Log("用户登录") @PostMapping("/login") - public Result login(@RequestBody Admin admin) { + public Result login(@RequestBody Admin admin, @RequestHeader(defaultValue = "zh") String lang) { try { admin = adminService.login(admin); @@ -58,14 +58,15 @@ public class AdminController { } catch (Exception e) { e.printStackTrace(); log.error(e.getMessage()); - return Result.error(e.getMessage()); + String translatedErrorMsg = languageTranslationUtil.translate(e.getMessage(), lang); + return Result.error(translatedErrorMsg); } } @Log("查看用户信息") @PostMapping("/userinfo") public UserDetails getUserInfo(@RequestHeader("token") String token1, - @RequestHeader(defaultValue = "zh_CN") String lang) { + @RequestHeader(defaultValue = "zh") String lang) { //String token = token1.getToken(); String token = token1; @@ -86,26 +87,28 @@ public class AdminController { //获取管理员ID @Log("获取用户ID") @PostMapping("/adminId") - public Result selectId(@RequestBody Admin admin) { + public Result selectId(@RequestBody Admin admin, @RequestHeader(defaultValue = "zh") String lang) { try { String ID = adminService.getId(admin.getAccount()); return Result.success(ID); } catch (Exception e) { log.error(e.getMessage()); - return Result.error(e.getMessage()); + String translatedErrorMsg = languageTranslationUtil.translate(e.getMessage(), lang); + return Result.error(translatedErrorMsg); } } //更新用户密码 @Log("更新用户密码") @PostMapping("/password") - public Result updatePassword(@RequestBody Password password){ + public Result updatePassword(@RequestBody Password password, @RequestHeader(defaultValue = "zh") String lang){ try { - return adminService.updatePassword(password); + return adminService.updatePassword(password, lang); } catch (Exception e) { - return Result.error("服务器波动,请稍作等待"); + String translatedErrorMsg = languageTranslationUtil.translate("服务器波动,请稍作等待", lang); + return Result.error(translatedErrorMsg); } } @@ -113,12 +116,13 @@ public class AdminController { //更新用户密码 @Log("重置用户密码") @PostMapping("/reset") - public Result resetPassword(@RequestBody Password password){ + public Result resetPassword(@RequestBody Password password, @RequestHeader(defaultValue = "zh") String lang){ try { - return adminService.resetPassword(password); + return adminService.resetPassword(password, lang); } catch (Exception e) { - return Result.error("重置失败"); + String translatedErrorMsg = languageTranslationUtil.translate("重置失败", lang); + return Result.error(translatedErrorMsg); } } diff --git a/src/main/java/com/example/demo/controller/coin/RefundController.java b/src/main/java/com/example/demo/controller/coin/RefundController.java index a912810..f5c195e 100644 --- a/src/main/java/com/example/demo/controller/coin/RefundController.java +++ b/src/main/java/com/example/demo/controller/coin/RefundController.java @@ -45,13 +45,15 @@ public class RefundController { //退款明细 @Log("获取全部退款明细") @PostMapping("/selectAll") - public Result selcetAll(@RequestBody Page page) { + public Result selectAll(@RequestBody Page page, @RequestHeader(defaultValue = "zh") String lang) { try { if (ObjectUtils.isEmpty(page.getPageNum())) { - return Result.error("页码数为空!"); + String errorMsg = languageTranslationUtil.translate("页码数为空!", lang); + return Result.error(errorMsg); } if (ObjectUtils.isEmpty(page.getPageSize())) { - return Result.error("页大小为空!"); + String errorMsg = languageTranslationUtil.translate("页大小为空!", lang); + return Result.error(errorMsg); } else { //解token权限 HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); @@ -61,12 +63,14 @@ public class RefundController { List list = Arrays.asList(admin.getMarkets().split(",")); page.getRefundUser().setMarkets(list); } else { - return Result.error("角色为空"); + String errorMsg = languageTranslationUtil.translate("角色为空", lang); + return Result.error(errorMsg); } return Result.success(refundService.selectAll(page.getPageNum(), page.getPageSize(), page.getRefundUser())); } } catch (Exception e) { - return Result.error("请检查筛选数据的格式"); + String errorMsg = languageTranslationUtil.translate("请检查筛选数据的格式", lang); + return Result.error(errorMsg); } } @@ -74,13 +78,15 @@ public class RefundController { //退款筛选 @Log("退款明细筛选") @PostMapping("/selectBy") - public Result selcetBy(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) { + public Result selectBy(@RequestBody Page page, @RequestHeader(defaultValue = "zh") String lang) { try { if (ObjectUtils.isEmpty(page.getPageNum())) { - return Result.error("页码数为空!"); + String errorMsg = languageTranslationUtil.translate("页码数为空!", lang); + return Result.error(errorMsg); } if (ObjectUtils.isEmpty(page.getPageSize())) { - return Result.error("页大小为空!"); + String errorMsg = languageTranslationUtil.translate("页大小为空!", lang); + return Result.error(errorMsg); } else { //解token权限 if(page.getRefundUser().getMarkets()==null||page.getRefundUser().getMarkets().isEmpty()) { @@ -99,7 +105,8 @@ public class RefundController { return result; } } catch (Exception e) { - return Result.error("请检查筛选数据的格式"); + String errorMsg = languageTranslationUtil.translate("请检查筛选数据的格式", lang); + return Result.error(errorMsg); } } @@ -107,7 +114,7 @@ public class RefundController { //退款金币统计 @Log("退款金币合计数统计") @PostMapping("/statsGold") - public Result statsGold(@RequestBody RefundUser refundUser) { + public Result statsGold(@RequestBody RefundUser refundUser, @RequestHeader(defaultValue = "zh") String lang) { try { //解token权限 if(refundUser.getMarkets()==null||refundUser.getMarkets().isEmpty()) { @@ -120,15 +127,16 @@ public class RefundController { Gold gold = refundService.statsGold(refundUser); return Result.success(gold); } catch (Exception e) { - return Result.error("请检查数据的格式"); + String errorMsg = languageTranslationUtil.translate("请检查数据的格式", lang); + return Result.error(errorMsg); } } //获取退款类型 @Log("获取退款类型") @PostMapping("/refundType") - public Result getRefundType(@RequestHeader(defaultValue = "zh_CN") String lang) { - List list = refundService.getRefundType(); + public Result getRefundType(@RequestHeader(defaultValue = "zh") String lang) { + List list = refundService.getRefundType(lang); // 对退款类型进行多语言转换 translateRefundTypes(list, lang); return Result.success(list); @@ -137,36 +145,40 @@ public class RefundController { //筛选产品 // @Log("筛选商品") @PostMapping("/selectGoods") - public Result getSelectGoods(@RequestBody RefundUser refundUser) { - List list = refundService.selectGoods(refundUser); + public Result getSelectGoods(@RequestBody RefundUser refundUser, @RequestHeader(defaultValue = "zh") String lang) { + List list = refundService.selectGoods(refundUser, lang); return Result.success(list); } //消耗金币退款 @Log("新增金币退款") @PostMapping("/add") - public Result add(@RequestBody RefundUser refundUser) { + public Result add(@RequestBody RefundUser refundUser, @RequestHeader(defaultValue = "zh") String lang) { try { - return refundService.add(refundUser); + return refundService.add(refundUser, lang); } catch (Exception e) { e.printStackTrace(); - return Result.error(e.getMessage()); + String errorMsg = languageTranslationUtil.translate(e.getMessage(), lang); + return Result.error(errorMsg); } } - public Result selcet(@RequestBody Page page) { + + public Result select(@RequestBody Page page, @RequestHeader(defaultValue = "zh") String lang) { try { if (ObjectUtils.isEmpty(page.getPageNum())) { - return Result.error("页码数为空!"); + String errorMsg = languageTranslationUtil.translate("页码数为空!", lang); + return Result.error(errorMsg); } if (ObjectUtils.isEmpty(page.getPageSize())) { - return Result.error("页大小为空!"); + String errorMsg = languageTranslationUtil.translate("页大小为空!", lang); + return Result.error(errorMsg); } else { - return Result.success(refundService.selectBy(page.getPageNum(), page.getPageSize(), page.getRefundUser())); } } catch (Exception e) { e.printStackTrace(); - return Result.error("请检查筛选数据的格式"); + String errorMsg = languageTranslationUtil.translate("请检查筛选数据的格式", lang); + return Result.error(errorMsg); } } diff --git a/src/main/java/com/example/demo/service/coin/AdminService.java b/src/main/java/com/example/demo/service/coin/AdminService.java index 8f1665e..2a0dea1 100644 --- a/src/main/java/com/example/demo/service/coin/AdminService.java +++ b/src/main/java/com/example/demo/service/coin/AdminService.java @@ -20,12 +20,11 @@ public interface AdminService { String getName(String account); //更新密码 - Result updatePassword(Password password); + Result updatePassword(Password password, String lang); //重置密码 - Result resetPassword(Password password); + Result resetPassword(Password password, String lang); //获取当前登录的管理员账号 String getCurrentAdminAccount(); } - diff --git a/src/main/java/com/example/demo/service/coin/RefundService.java b/src/main/java/com/example/demo/service/coin/RefundService.java index b52546d..f4a00bc 100644 --- a/src/main/java/com/example/demo/service/coin/RefundService.java +++ b/src/main/java/com/example/demo/service/coin/RefundService.java @@ -1,6 +1,5 @@ package com.example.demo.service.coin; - import com.example.demo.domain.vo.coin.ConsumeUser; import com.example.demo.domain.vo.coin.Gold; import com.example.demo.domain.vo.coin.RefundUser; @@ -30,12 +29,12 @@ public interface RefundService { PageInfo selectBy(Integer pageNum, Integer pageSize, RefundUser refundUser)throws Exception; //添加退款记录 - Result add(RefundUser refundUser); + Result add(RefundUser refundUser, String lang); //获取退款类型 - List getRefundType(); + List getRefundType(String lang); //查找退款商品 - List selectGoods(RefundUser refundUser); + List selectGoods(RefundUser refundUser, String lang); } diff --git a/src/main/java/com/example/demo/serviceImpl/coin/AdminServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/AdminServiceImpl.java index b28b1a4..96fe0fa 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/AdminServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/AdminServiceImpl.java @@ -5,6 +5,7 @@ import com.example.demo.domain.vo.coin.Password; import com.example.demo.domain.vo.coin.Result; import com.example.demo.mapper.coin.AdminMapper; import com.example.demo.service.coin.AdminService; +import com.example.demo.Util.LanguageTranslationUtil; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.AuthenticationManager; @@ -27,6 +28,10 @@ public class AdminServiceImpl implements AdminService { private AuthenticationManager authenticationManager; private final AdminMapper adminMapper; + // 注入多语言工具类 + @Autowired + private LanguageTranslationUtil languageTranslationUtil; + @Override public Admin login(Admin admin) throws Exception { String account = admin.getAccount(); @@ -93,29 +98,34 @@ public class AdminServiceImpl implements AdminService { //更新密码 @Override - public Result updatePassword(Password password) { + public Result updatePassword(Password password, String lang) { 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("输入不能为空"); + String errorMsg = languageTranslationUtil.translate("输入不能为空", lang); + return Result.error(errorMsg); } // 检查两次输入的新密码是否一致 if (!newPassword.equals(againPassword)) { - return Result.error("两次输入的新密码不一致,请核对后重新输入"); + String errorMsg = languageTranslationUtil.translate("两次输入的新密码不一致,请核对后重新输入", lang); + return Result.error(errorMsg); } // 检查新密码是否符合复杂度要求 if (!PASSWORD_PATTERN.matcher(newPassword).matches()) { - return Result.error("新密码必须为8-16位数字、字母或符号组成,且至少包含其中两种"); + String errorMsg = languageTranslationUtil.translate("新密码必须为8-16位数字、字母或符号组成,且至少包含其中两种", lang); + return Result.error(errorMsg); } if(adminMapper.getAdmin(password.getAccount())==null) { - return Result.error("用户不存在"); + String errorMsg = languageTranslationUtil.translate("用户不存在", lang); + return Result.error(errorMsg); } // 校验新密码是否与旧密码相同(不允许相同) if (oldPassword.equals(newPassword)) { - return Result.error("新密码与历史密码重复"); + String errorMsg = languageTranslationUtil.translate("新密码与历史密码重复", lang); + return Result.error(errorMsg); } try { // 创建认证令牌并验证旧密码 @@ -136,29 +146,34 @@ public class AdminServiceImpl implements AdminService { admin.setPassword(encodedPassword); admin.setUpdateTime(new Date()); // 更新修改时间 adminMapper.updatePassword(admin); - return Result.success("密码修改成功"); + String successMsg = languageTranslationUtil.translate("密码修改成功", lang); + return Result.success(successMsg); } catch (BadCredentialsException e) { // 旧密码验证失败 - return Result.error("原密码错误,请重新输入"); + String errorMsg = languageTranslationUtil.translate("原密码错误,请重新输入", lang); + return Result.error(errorMsg); } catch (Exception e) { - return Result.error("密码更新失败"); + String errorMsg = languageTranslationUtil.translate("密码更新失败", lang); + return Result.error(errorMsg); } } //重置密码 @Override - public Result resetPassword(Password password) { + public Result resetPassword(Password password, String lang) { String newPassword = "123456"; if(password.getAccount() == null) { - return Result.error("账户未输入"); + String errorMsg = languageTranslationUtil.translate("账户未输入", lang); + return Result.error(errorMsg); } if(adminMapper.getAdmin(password.getAccount())==null) { - return Result.error("账户查找不到"); + String errorMsg = languageTranslationUtil.translate("账户查找不到", lang); + return Result.error(errorMsg); } try { // 获取认证后的用户信息 @@ -173,10 +188,12 @@ public class AdminServiceImpl implements AdminService { admin.setUpdateTime(new Date()); // 更新修改时间 adminMapper.updatePassword(admin); - return Result.success("密码重置成功"); + String successMsg = languageTranslationUtil.translate("密码重置成功", lang); + return Result.success(successMsg); } catch (Exception e) { - return Result.error("其他错误"); + String errorMsg = languageTranslationUtil.translate("其他错误", lang); + return Result.error(errorMsg); } } diff --git a/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java index c5ed708..efefdaa 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java @@ -187,7 +187,7 @@ public class ExportExcelServiceImpl implements ExportExcelService { List markets = Arrays.asList(StringUtils.split(admin.getMarkets(), ",")); refundUser.setMarkets(markets); page.setRefundUser(refundUser); - return refundController.selcet(page); + return refundController.select(page, String.join(",", markets)); } catch (Exception e) { throw new RuntimeException(e); } diff --git a/src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java index 0401b67..0bfdc87 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/RefundServiceImpl.java @@ -4,6 +4,7 @@ import com.example.demo.domain.entity.UserGoldRecord; import com.example.demo.mapper.coin.*; import com.example.demo.service.coin.MarketService; import com.example.demo.service.coin.RefundService; +import com.example.demo.Util.LanguageTranslationUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; @@ -40,12 +41,16 @@ public class RefundServiceImpl implements RefundService { @Autowired private UserMapper userMapper; - @Autowired private MarketMapper marketMapper; + @Autowired private RechargeMapper rechargeMapper; + // 注入多语言工具类 + @Autowired + private LanguageTranslationUtil languageTranslationUtil; + //查找全部退款 @Override public PageInfo selectAll(Integer pageNum, Integer pageSize, RefundUser refundUser) throws Exception { @@ -84,29 +89,34 @@ public class RefundServiceImpl implements RefundService { //添加退款记录 @Transactional @Override - public Result add(RefundUser refundUser) { + public Result add(RefundUser refundUser, String lang) { if (refundUser.getTaskGold() == null || refundUser.getFreeGold() == null || refundUser.getPermanentGold() == null) { - return Result.error("金币不能为空"); + String errorMsg = languageTranslationUtil.translate("金币不能为空", lang); + return Result.error(errorMsg); } if (refundUser.getTaskGold().compareTo(BigDecimal.ZERO) < 0 || refundUser.getFreeGold().compareTo(BigDecimal.ZERO) < 0 || refundUser.getPermanentGold().compareTo(BigDecimal.ZERO) < 0) { - return Result.error("金币不能为负数"); + String errorMsg = languageTranslationUtil.translate("金币不能为负数", lang); + return Result.error(errorMsg); } if (refundUser.getJwcode() < 10000000 || refundUser.getJwcode() > 99999999) { - return Result.error("精网号位数小于8位或大于8位"); + String errorMsg = languageTranslationUtil.translate("精网号位数小于8位或大于8位", lang); + return Result.error(errorMsg); } GoldUser goldUser = userMapper.selectUser(refundUser.getJwcode().toString()); if (goldUser == null) { - return Result.error("用户不存在"); + String errorMsg = languageTranslationUtil.translate("用户不存在", lang); + return Result.error(errorMsg); } UserGoldRecord userGoldRecord = new UserGoldRecord(); if(refundUser.getOrderCode()==null|| refundUser.getOrderCode().isEmpty()){ - return Result.error("订单号不能为空"); + String errorMsg = languageTranslationUtil.translate("订单号不能为空", lang); + return Result.error(errorMsg); } String goodsName = ""; if(refundUser.getGoodsName()==null|| refundUser.getGoodsName().isEmpty()){ - goodsName = "空"; + goodsName = languageTranslationUtil.translate("空", lang); }else { goodsName = refundUser.getGoodsName(); } @@ -138,7 +148,8 @@ public class RefundServiceImpl implements RefundService { if (refundUser.getFreeGold().compareTo(gold.getNowFreeDecember().add(gold.getNowFreeJune())) > 0 || refundUser.getPermanentGold().compareTo(gold.getNowPermanentGold()) > 0 || refundUser.getTaskGold().compareTo(gold.getNowTaskGold()) > 0) { - return Result.error("金币数量不足"); + String errorMsg = languageTranslationUtil.translate("金币数量不足", lang); + return Result.error(errorMsg); } // 根据当前月份设置对应字段 if (currentMonth >= 1 && currentMonth <= 6) { @@ -166,8 +177,6 @@ public class RefundServiceImpl implements RefundService { userGoldRecord.setSumGold(-refundUser.getSumGold().intValue()); } - - userGoldRecord.setPayPlatform("金币系统"); userGoldRecord.setRemark(refundUser.getRemark()); userGoldRecord.setAdminId(refundUser.getAdminId()); @@ -178,49 +187,57 @@ public class RefundServiceImpl implements RefundService { List list1 = consumeMapper.selectOrderCodeByJwcode(refundUser); List list2 = rechargeMapper.selectOrderCodeByJwcode(refundUser); if(Objects.equals(refundUser.getRefundType(), "商品退款")){ - //消费订单号校验 - if (list1 == null || list1.isEmpty()) { - return Result.error("该用户没有该订单号"); - } else if (list1.size() == 1) { - ConsumeUser consumeUser = list1.getFirst(); - if (consumeUser.getIsRefund().equals(1)) { - return Result.error("该订单已被退款或待审核"); + //消费订单号校验 + if (list1 == null || list1.isEmpty()) { + String errorMsg = languageTranslationUtil.translate("该用户没有该订单号", lang); + return Result.error(errorMsg); + } else if (list1.size() == 1) { + ConsumeUser consumeUser = list1.getFirst(); + if (consumeUser.getIsRefund().equals(1)) { + String errorMsg = languageTranslationUtil.translate("该订单已被退款或待审核", lang); + return Result.error(errorMsg); + } + } else { + String errorMsg = languageTranslationUtil.translate("订单重复", lang); + return Result.error(errorMsg); } - } else { - return Result.error("订单重复"); - } }else{ //充值订单号校验 if (list2 == null || list2.isEmpty()) { - return Result.error("该用户没有该订单号"); + String errorMsg = languageTranslationUtil.translate("该用户没有该订单号", lang); + return Result.error(errorMsg); } else if (list2.size() == 1) { RechargeUser rechargeUser = list2.getFirst(); if (rechargeUser.getIsRefund().equals(1)) { - return Result.error("该订单已被退款或待审核"); + String errorMsg = languageTranslationUtil.translate("该订单已被退款或待审核", lang); + return Result.error(errorMsg); } } else { - return Result.error("订单重复"); + String errorMsg = languageTranslationUtil.translate("订单重复", lang); + return Result.error(errorMsg); } } refundMapper.add(userGoldRecord); consumeMapper.updateIsRefund(orderCode); - return Result.success(); + String successMsg = languageTranslationUtil.translate("操作成功", lang); + return Result.success(successMsg); } //获取退款类型 @Override - public List getRefundType() { + public List getRefundType(String lang) { List list = refundMapper.getRefundType(); List filteredList = list.stream() .filter(Objects::nonNull) // 过滤掉 null 值 .filter(str -> !str.trim().isEmpty()) // 过滤掉空字符串和仅包含空白字符的字符串 + .map(type -> languageTranslationUtil.translate(type, lang)) // 翻译每个类型 .collect(Collectors.toList()); return filteredList; } //查找退款商品 @Override - public List selectGoods(RefundUser refundUser) { + public List selectGoods(RefundUser refundUser, String lang) { List refundUsers = refundMapper.selectGoods(refundUser); List list = new ArrayList<>(); for (RefundUser record : refundUsers) { @@ -228,16 +245,13 @@ public class RefundServiceImpl implements RefundService { continue; } - String orderCode = record.getOrderCode() != null ? record.getOrderCode() : "无订单号"; - String goodsName = record.getGoodsName() != null ? record.getGoodsName() : "无商品名"; + String orderCode = record.getOrderCode() != null ? record.getOrderCode() : languageTranslationUtil.translate("无订单号", lang); + String goodsName = record.getGoodsName() != null ? record.getGoodsName() : languageTranslationUtil.translate("无商品名", lang); BigDecimal permanentGold = record.getPermanentGold() != null ? record.getPermanentGold() : BigDecimal.ZERO; BigDecimal freeGold = record.getFreeGold() != null ? record.getFreeGold() : BigDecimal.ZERO; BigDecimal taskGold = record.getTaskGold() != null ? record.getTaskGold() : BigDecimal.ZERO; -// 计算总和 - // 拼接格式:订单号_商品名(例如:XF20250629_商品BC) - String combined = orderCode + "_" + goodsName; RefundUser newRefundUser = new RefundUser(); newRefundUser.setOrderCode(orderCode); newRefundUser.setGoodsName(goodsName);