|
|
package com.example.demo.controller.coin;
import com.example.demo.Util.JWTUtil;import com.example.demo.Util.LanguageTranslationUtil;import com.example.demo.config.interfac.Log;import com.example.demo.domain.entity.Admin;import com.example.demo.service.coin.RefundService;import com.github.pagehelper.PageInfo;import jakarta.servlet.http.HttpServletRequest;import lombok.RequiredArgsConstructor;import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.util.ObjectUtils;import org.springframework.web.bind.annotation.*;import org.springframework.web.context.request.RequestContextHolder;import org.springframework.web.context.request.ServletRequestAttributes;import com.example.demo.domain.vo.coin.*;import java.util.Arrays;import java.util.List;
/** * @program: gold-java * @ClassName RefundMapper.xml * @description: * @author: Double * @create: 2025−06-26 11:28 * @Version 1.0 **/
@RestController@RequestMapping("/refund")@RequiredArgsConstructor@Slf4j@CrossOriginpublic class RefundController {
@Autowired private RefundService refundService;
// 注入多语言转换工具类
@Autowired private LanguageTranslationUtil languageTranslationUtil;
//退款明细
@Log("获取全部退款明细") @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 { //解token权限
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String token = request.getHeader("token"); Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class); if (admin != null) { List<String> list = Arrays.asList(admin.getMarkets().split(",")); page.getRefundUser().setMarkets(list); } else { return Result.error("角色为空"); } return Result.success(refundService.selectAll(page.getPageNum(), page.getPageSize(), page.getRefundUser())); } } catch (Exception e) { return Result.error("请检查筛选数据的格式"); }
}
//退款筛选
@Log("退款明细筛选") @PostMapping("/selectBy") public Result selcetBy(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) { try { if (ObjectUtils.isEmpty(page.getPageNum())) { return Result.error("页码数为空!"); } if (ObjectUtils.isEmpty(page.getPageSize())) { return Result.error("页大小为空!"); } else { //解token权限
if(page.getRefundUser().getMarkets()==null||page.getRefundUser().getMarkets().isEmpty()) { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String token = request.getHeader("token"); Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class); List<String> markets = Arrays.asList(StringUtils.split(admin.getMarkets(), ",")); page.getRefundUser().setMarkets(markets); } Result result = Result.success(refundService.selectBy(page.getPageNum(), page.getPageSize(), page.getRefundUser())); // 对返回结果进行多语言转换
if (result.getCode() == 200 && result.getData() instanceof PageInfo) { PageInfo<RefundUser> pageInfo = (PageInfo<RefundUser>) result.getData(); translateRefundUsers(pageInfo, lang); } return result; } } catch (Exception e) { return Result.error("请检查筛选数据的格式"); }
}
//退款金币统计
@Log("退款金币合计数统计") @PostMapping("/statsGold") public Result statsGold(@RequestBody RefundUser refundUser) { try { //解token权限
if(refundUser.getMarkets()==null||refundUser.getMarkets().isEmpty()) { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String token = request.getHeader("token"); Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class); List<String> markets = Arrays.asList(StringUtils.split(admin.getMarkets(), ",")); refundUser.setMarkets(markets); } Gold gold = refundService.statsGold(refundUser); return Result.success(gold); } catch (Exception e) { return Result.error("请检查数据的格式"); } }
//获取退款类型
@Log("获取退款类型") @PostMapping("/refundType") public Result getRefundType(@RequestHeader(defaultValue = "zh_CN") String lang) { List<String> list = refundService.getRefundType(); // 对退款类型进行多语言转换
translateRefundTypes(list, lang); return Result.success(list); }
//筛选产品
// @Log("筛选商品")
@PostMapping("/selectGoods") public Result getSelectGoods(@RequestBody RefundUser refundUser) { List<RefundUser> list = refundService.selectGoods(refundUser); return Result.success(list); }
//消耗金币退款
@Log("新增金币退款") @PostMapping("/add") public Result add(@RequestBody RefundUser refundUser) { try { return refundService.add(refundUser); } catch (Exception e) { e.printStackTrace(); return Result.error(e.getMessage()); } } public Result selcet(@RequestBody Page page) { try { if (ObjectUtils.isEmpty(page.getPageNum())) { return Result.error("页码数为空!"); } if (ObjectUtils.isEmpty(page.getPageSize())) { return Result.error("页大小为空!"); } else {
return Result.success(refundService.selectBy(page.getPageNum(), page.getPageSize(), page.getRefundUser())); } } catch (Exception e) { e.printStackTrace(); return Result.error("请检查筛选数据的格式"); }
}
/** * 转换退款用户信息的多语言字段 */ private void translateRefundUsers(PageInfo<RefundUser> pageInfo, String lang) { if (pageInfo != null && pageInfo.getList() != null) { for (RefundUser user : pageInfo.getList()) { // 翻译市场名称
if (user.getMarket() != null) { user.setMarket(languageTranslationUtil.translate(user.getMarket(), lang)); } // 翻译商品名称
if (user.getGoodsName() != null) { user.setGoodsName(languageTranslationUtil.translate(user.getGoodsName(), lang)); } // 翻译退款类型
if (user.getRefundType() != null) { user.setRefundType(languageTranslationUtil.translate(user.getRefundType(), lang)); } // 翻译退款模型描述
if (user.getRefundModel() != null) { String refundModelDesc = convertRefundModelToString(user.getRefundModel()); user.setRefundModelDesc(languageTranslationUtil.translate(refundModelDesc, lang)); } } } }
/** * 转换退款类型列表的多语言字段 */ private void translateRefundTypes(List<String> refundTypes, String lang) { if (refundTypes != null && !refundTypes.isEmpty()) { for (int i = 0; i < refundTypes.size(); i++) { String translatedType = languageTranslationUtil.translate(refundTypes.get(i), lang); refundTypes.set(i, translatedType); } } }
/** * 将退款模型数字转换为中文描述 */ private String convertRefundModelToString(Byte refundModel) { if (refundModel == null) return ""; switch (refundModel) { case 0: return "全部退款"; case 1: return "部分退款"; default: return "未知退款方式"; } }}
|