ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/BalanceChangeRecord.java
@@ -1,6 +1,7 @@ package com.ruoyi.account.api.model; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; @@ -47,4 +48,13 @@ @ApiModelProperty("添加时间") private LocalDateTime createTime; @TableField(exist = false) @ApiModelProperty("消费用户名称") private String userName; @TableField(exist = false) @ApiModelProperty("消费金额") private BigDecimal amount; } ruoyi-api/ruoyi-api-order/src/main/java/factory/RemoteOrderFallbackFactory.java
@@ -1,8 +1,13 @@ package factory; import com.ruoyi.common.core.domain.R; import feignClient.RemoteOrderClient; import model.Order; import model.OrderGood; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; import java.util.List; /** * 订单服务降级处理 @@ -14,6 +19,10 @@ @Override public RemoteOrderClient create(Throwable cause) { return new RemoteOrderClient() { @Override public R<List<Order>> goodsOrder(List<Long> goodsIds) { return R.fail("获取订单失败"); } }; } } ruoyi-api/ruoyi-api-order/src/main/java/feignClient/RemoteOrderClient.java
@@ -4,9 +4,14 @@ import com.ruoyi.common.core.domain.R; import factory.RemoteOrderFallbackFactory; import model.Order; import model.OrderGood; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; /** * 订单远程调用接口 @@ -14,4 +19,10 @@ */ @FeignClient(contextId = "RemoteOrderClient", value = ServiceNameConstants.ORDER_SERVICE, fallbackFactory = RemoteOrderFallbackFactory.class) public interface RemoteOrderClient { /** * 查询指定商品订单 */ @PostMapping("/order/getOrderListByIds") public R<List<Order>> goodsOrder(@RequestBody List<Long> orderIds); } ruoyi-api/ruoyi-api-order/src/main/java/feignClient/RemoteOrderGoodsClient.java
@@ -4,6 +4,7 @@ import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import factory.RemoteOrderGoodsFallbackFactory; import model.Order; import model.OrderGood; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -18,5 +19,5 @@ * 查询指定商品订单 */ @PostMapping("/order-good/selectGoodsOrder") public R<List<OrderGood>> goodsOrder(@RequestBody List<Long> goodsIds); public R<List<Order>> goodsOrder(@RequestBody List<Long> goodsIds); } ruoyi-api/ruoyi-api-order/src/main/java/vo/OrderDetailVO.java
File was renamed from ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java @@ -1,4 +1,4 @@ package com.ruoyi.order.vo; package vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; ruoyi-api/ruoyi-api-order/src/main/java/vo/OrderGoodsVO.java
File was renamed from ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderGoodsVO.java @@ -1,4 +1,4 @@ package com.ruoyi.order.vo; package vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; 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,10 +12,14 @@ 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 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; @@ -24,6 +31,8 @@ import java.time.LocalDateTime; import java.time.LocalTime; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @Api(tags = "小程序-个人中心-我的钱包") @RestController @@ -35,6 +44,10 @@ private TokenService tokenService; @Resource private WalletService walletService; @Resource private RemoteOrderClient remoteOrderClient; @Resource private AppUserService appUserService; /** * 钱包详情 @@ -52,10 +65,11 @@ */ @ApiOperation(value = "变更明细", notes = "变更明细") @GetMapping("change") public R<List<BalanceChangeRecord>> change(@ApiParam(value = "变更类型", required = false) public R<List<BalanceChangeRecord>> change(@ApiParam(value = "变更类型") @RequestParam(required = false) Integer changeType, @ApiParam(value = "创建时间", required = false) @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") @ApiParam(value = "创建时间") @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM") LocalDate createTime) { Long userId = SecurityUtils.getUserId(); @@ -65,10 +79,26 @@ localDateTime = createTime.atTime(specificTime); } return R.ok(balanceChangeRecordService.list(new LambdaQueryWrapper<BalanceChangeRecord>() List<BalanceChangeRecord> list = balanceChangeRecordService.list(new LambdaQueryWrapper<BalanceChangeRecord>() .eq(changeType != null, BalanceChangeRecord::getChangeType, changeType) .eq(createTime != null, BalanceChangeRecord::getCreateTime, localDateTime) .eq(BalanceChangeRecord::getAppUserId, userId))); .eq(BalanceChangeRecord::getAppUserId, userId)); List<Long> orderIds = list.stream().map(BalanceChangeRecord::getOrderId).collect(Collectors.toList()); R<List<Order>> r = remoteOrderClient.goodsOrder(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); } // /** ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
@@ -5,7 +5,8 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.order.service.OrderService; import com.ruoyi.order.vo.OrderDetailVO; import org.springframework.web.bind.annotation.*; import vo.OrderDetailVO; import com.ruoyi.order.vo.OrderVO; import com.ruoyi.system.api.model.LoginUser; import io.swagger.annotations.Api; @@ -13,10 +14,6 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import model.Order; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; @@ -53,6 +50,14 @@ } /** * 通过订单ids获取订单列表 */ @PostMapping("/getOrderListByIds") public R<List<Order>> getOrderListByIds(@RequestBody List<Long> ids){ return R.ok(orderService.listByIds(ids)); } /** * 订单详情 */ @ApiOperation(value = "订单详情", tags = {"小程序-订单详情"}) ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderService.java
@@ -1,7 +1,7 @@ package com.ruoyi.order.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.order.vo.OrderDetailVO; import vo.OrderDetailVO; import com.ruoyi.order.vo.OrderVO; import model.Order; ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -15,8 +15,8 @@ import com.ruoyi.order.mapper.OrderGoodMapper; import com.ruoyi.order.mapper.OrderMapper; import com.ruoyi.order.service.OrderService; import com.ruoyi.order.vo.OrderDetailVO; import com.ruoyi.order.vo.OrderGoodsVO; import vo.OrderDetailVO; import vo.OrderGoodsVO; import com.ruoyi.order.vo.OrderVO; import com.ruoyi.other.api.domain.CouponInfo; import com.ruoyi.other.api.domain.Goods; @@ -26,13 +26,10 @@ import com.ruoyi.system.api.model.LoginUser; import model.Order; import model.OrderGood; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.time.LocalDateTime; import java.time.ZoneId; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors;