From a981c07d34edd0975b9d556d97c1f851ce79974c Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期三, 04 十二月 2024 13:40:00 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WalletController.java | 62 ++++++++++++++++++++++++++++--- 1 files changed, 56 insertions(+), 6 deletions(-) diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WalletController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WalletController.java index 291de10..b71c1de 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WalletController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WalletController.java @@ -1,7 +1,10 @@ package com.ruoyi.account.controller; +import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ruoyi.account.api.model.AppUser; import com.ruoyi.account.api.model.BalanceChangeRecord; +import com.ruoyi.account.service.AppUserService; import com.ruoyi.account.service.BalanceChangeRecordService; import com.ruoyi.account.service.WalletService; import com.ruoyi.account.vo.WalletVO; @@ -9,17 +12,30 @@ import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.other.api.feignClient.OrderClient; import com.ruoyi.system.api.model.LoginUser; +import feignClient.RemoteOrderClient; +import feignClient.RemoteOrderGoodsClient; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import model.Order; +import model.OrderGood; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; -@Api("钱包") +@Api(tags = "小程序-个人中心-我的钱包") @RestController @RequestMapping("wallet") public class WalletController extends BaseController { @@ -29,12 +45,16 @@ private TokenService tokenService; @Resource private WalletService walletService; + @Resource + private RemoteOrderGoodsClient remoteOrderGoodsClient; + @Resource + private AppUserService appUserService; /** * 钱包详情 */ @GetMapping("detail") - @ApiOperation(value = "钱包详情", notes = "钱包详情", tags = {"小程序-个人中心-我的钱包-钱包详情"}) + @ApiOperation(value = "钱包详情", notes = "钱包详情") public R<WalletVO> detail() { LoginUser loginUserApplet = tokenService.getLoginUserApplet(); WalletVO walletVO = walletService.getWalletByUserId(loginUserApplet.getUserid()); @@ -44,12 +64,42 @@ /** * 变更明细 */ - @ApiOperation(value = "变更明细", notes = "变更明细", tags = {"小程序-个人中心-我的钱包-变更记录"}) + @ApiOperation(value = "变更明细", notes = "变更明细") @GetMapping("change") - public R<List<BalanceChangeRecord>> change() { + public R<List<BalanceChangeRecord>> change(@ApiParam(value = "变更类型") + @RequestParam(required = false) Integer changeType, + @ApiParam(value = "创建时间") + @RequestParam(required = false) + @DateTimeFormat(pattern = "yyyy-MM") + LocalDate createTime) { Long userId = SecurityUtils.getUserId(); - return R.ok(balanceChangeRecordService.list(new LambdaQueryWrapper<BalanceChangeRecord>() - .eq(BalanceChangeRecord::getAppUserId, userId))); + + LocalDateTime localDateTime = null; + if (createTime != null) { + LocalTime specificTime = LocalTime.of(0, 0); + localDateTime = createTime.atTime(specificTime); + } + + List<BalanceChangeRecord> list = balanceChangeRecordService.list(new LambdaQueryWrapper<BalanceChangeRecord>() + .eq(changeType != null, BalanceChangeRecord::getChangeType, changeType) + .eq(createTime != null, BalanceChangeRecord::getCreateTime, localDateTime) + .eq(BalanceChangeRecord::getAppUserId, userId)); + + List<Long> orderIds = list.stream().map(BalanceChangeRecord::getOrderId).collect(Collectors.toList()); + R<List<Order>> r = remoteOrderGoodsClient.getOrderListByIds(orderIds); + if (!R.isSuccess(r)){ + return R.fail(r.getMsg()); + } + List<Order> orderList = r.getData(); + list.forEach(bc -> { + orderList.stream().filter(o -> o.getId().equals(bc.getOrderId())).findFirst().ifPresent(o -> { + Long appUserId = o.getAppUserId(); + AppUser appUser = appUserService.getById(appUserId); + bc.setUserName(appUser.getName()); + bc.setAmount(o.getPaymentAmount()); + }); + }); + return R.ok(list); } // /** -- Gitblit v1.7.1