From b5ead35c1d955f2a0e2e10da79254860d0ba95e9 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期五, 23 五月 2025 14:50:27 +0800 Subject: [PATCH] 大屏接口bug修改 --- ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/OrderController.java | 162 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 145 insertions(+), 17 deletions(-) diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/OrderController.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/OrderController.java index 88a2ca4..4acf1bf 100644 --- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/OrderController.java +++ b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/OrderController.java @@ -1,27 +1,43 @@ package com.ruoyi.user.controller; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.ruoyi.admin.api.entity.Prize; import com.ruoyi.admin.api.feignClient.AdminClient; import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.exception.GlobalException; +import com.ruoyi.common.core.utils.GaoDeMapUtil; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.vo.CityInfoVO; import com.ruoyi.common.security.service.TokenService; +import com.ruoyi.order.api.entity.Order; +import com.ruoyi.order.api.entity.ServeRecord; +import com.ruoyi.order.api.feignClient.OrderClient; +import com.ruoyi.order.api.feignClient.ServeRecordClient; import com.ruoyi.system.api.model.LoginUserInfo; -import com.ruoyi.user.entity.Order; -import com.ruoyi.user.entity.ServeRecord; +import com.ruoyi.user.entity.RecoveryServe; +import com.ruoyi.user.entity.RecoveryServePrice; import com.ruoyi.user.request.OrderRequest; import com.ruoyi.user.service.OrderService; -import com.ruoyi.user.service.ServeRecordService; +import com.ruoyi.user.service.RecoveryServePriceService; +import com.ruoyi.user.service.RecoveryServeService; +import com.ruoyi.user.service.UserService; import com.ruoyi.user.vo.OrderDetailVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import org.springframework.boot.autoconfigure.kafka.KafkaProperties; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.stream.Collectors; /** * <p> @@ -37,33 +53,94 @@ public class OrderController { @Resource - private OrderService orderService; + private RecoveryServeService recoveryServeService; @Resource - private ServeRecordService serveRecordService; + private RecoveryServePriceService recoveryServePriceService; @Resource private AdminClient adminClient; @Resource private TokenService tokenService; + @Resource + private OrderClient orderClient; + @Resource + private OrderService orderService; + @Resource + private ServeRecordClient serveRecordClient; + + @GetMapping("/orderList") + @ApiOperation(value = "订单列表", tags = {"用户端-订单"}) + @ApiImplicitParams({ + @ApiImplicitParam(value = "状态(-1:全部;0:派单中;1:待上门;2:待完工;3:已完结;4:已取消;5:已改派)", name = "state", dataType = "Integer", required = true), + @ApiImplicitParam(value = "页码", name = "pageNum", dataType = "Integer", required = true), + @ApiImplicitParam(value = "条数", name = "pageSize", dataType = "Integer", required = true) + }) + public R<IPage<Order>> orderList(@RequestParam Integer state, + @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + LoginUserInfo loginUser = tokenService.getLoginUserByUser(); + if (null == loginUser) { + return R.loginExpire("登录失效!"); + } + IPage<Order> data = orderClient.orderListByUser(loginUser.getUserid(), state, pageNum, pageSize).getData(); + List<Integer> ids = data.getRecords().stream().map(Order::getServeId).collect(Collectors.toList()); + if (!ids.isEmpty()) { + List<RecoveryServe> serveList = recoveryServeService.lambdaQuery() + .in(RecoveryServe::getId, ids).eq(RecoveryServe::getIsDelete, 0).list(); + Map<Integer, String> map = serveList.stream().collect(Collectors.toMap(RecoveryServe::getId, + mw -> Optional.ofNullable(mw.getCover()).orElse(""))); + for (Order order : data.getRecords()) { + + Integer serveId = order.getServeId(); + order.setCover(map.get(serveId)); + } + } + return R.ok(data); + } + + @GetMapping("/estimate") + @ApiOperation(value = "在线评估", tags = {"用户端-订单"}) + @ApiImplicitParams({ + @ApiImplicitParam(value = "回收服务id", name = "orderId", dataType = "Integer", required = true), + @ApiImplicitParam(value = "所在城市code", name = "city", dataType = "String") + }) + public R<BigDecimal> estimate(@RequestParam String orderId, String city) { + Order order = orderClient.detail(orderId).getData(); +// RecoveryServe recoveryServe = recoveryServeService.lambdaQuery() +// .eq(RecoveryServe::getId, order.getServeId()) +// .eq(RecoveryServe::getIsDelete, 0).one(); +// BigDecimal money = recoveryServe.getDefaultPrice(); +// if (StringUtils.isNotBlank(city)) { +// CityInfoVO info = GaoDeMapUtil.getAddressInfo(city).getDatas(); +// RecoveryServePrice price = recoveryServePriceService.lambdaQuery() +// .eq(RecoveryServePrice::getRecoveryServeId, recoveryServe.getId()) +// .eq(RecoveryServePrice::getCity, info.getCode()) +// .eq(RecoveryServePrice::getIsDelete, Constants.ZERO).one(); +// if (null != price) { +// money = price.getRecoveryPrice(); +// } +// } + return R.ok(order.getServePrice()); + } @GetMapping("/detail") @ApiOperation(value = "订单详情", tags = {"用户端-订单"}) @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", dataType = "Integer", required = true) }) - public R<OrderDetailVO> detail(@RequestParam Integer orderId) { - Order order = orderService.lambdaQuery().eq(Order::getId, orderId).eq(Order::getIsDelete, 0).one(); + public R<OrderDetailVO> detail(@RequestParam String orderId) { + Order order = orderClient.detail(orderId).getData(); if (null == order) { - throw new GlobalException("订单状态异常!"); + throw new GlobalException("订单不存在或已删除!"); } OrderDetailVO orderDetail = new OrderDetailVO(order); if (Constants.THREE.equals(order.getState())) { - ServeRecord record = serveRecordService.lambdaQuery().eq(ServeRecord::getOrderId, orderId) - .eq(ServeRecord::getIsDelete, 0).one(); - if (null == record) { - throw new GlobalException("暂未上传家电照片!"); + ServeRecord serveRecord = serveRecordClient.serveRecordByOrderId(orderId).getData(); + if (null != serveRecord) { + orderDetail.setPhoto(serveRecord.getPhoto()); } - orderDetail.setPhoto(record.getPhoto()); } + R<String> workPic = adminClient.getWorkPic(order.getServerId()); + orderDetail.setWorkPic(workPic.getMsg()); return R.ok(orderDetail); } @@ -74,8 +151,8 @@ */ @GetMapping("/prizeList") @ApiOperation(value = "获取奖品列表", tags = {"用户端-订单"}) - public R<List<Prize>> prizeList() { - return R.ok(adminClient.prizeList().getData()); + public R<List<Prize>> prizeList(@RequestParam("serveId") String serveId) { + return R.ok(adminClient.prizeList(Integer.valueOf(serveId)).getData()); } /** @@ -85,8 +162,44 @@ */ @GetMapping("/allowance") @ApiOperation(value = "抽奖获取津贴", tags = {"用户端-订单"}) - public R<Object> obtainAllowance() { - return R.ok(orderService.obtainAllowance(adminClient.prizeList().getData())); + public R<Object> obtainAllowance(@RequestParam("serveId") String serveId) { + return R.ok(orderService.obtainAllowance(adminClient.prizeList(Integer.valueOf(serveId)).getData())); + } + + /** + * 抽奖获取津贴 + * + * @return 奖品列表 + */ + @GetMapping("/allowanceMoney") + @ApiOperation(value = "补充订单津贴金额", tags = {"用户端-订单"}) + public R<Object> allowanceMoney(@RequestParam("orderId") String orderId, + @RequestParam("prizeId") String prizeId, + @RequestParam("serveId") String serveId) { + Prize data = adminClient.prizeDetail(prizeId).getData(); + if (null == data) { + return R.fail(adminClient.prizeDetail(prizeId).getMsg()); + } + String prizeMoney; + if (data.getPrizeType() == 1) { + // 查询服务回收补贴金 + RecoveryServe recoveryServe = recoveryServeService.getById(serveId); + prizeMoney = recoveryServe.getRecycleSubsidy().toString(); + } else { + prizeMoney = "0"; + } + return R.ok(orderClient.supplementAllowance(orderId, prizeMoney).getData()); + } + + @PostMapping("/orderEstimate") + @ApiOperation(value = "下单评估,生成预订单信息", tags = {"用户端-订单"}) + public R<String> orderEstimate(@RequestBody OrderRequest orderRequest) { + LoginUserInfo loginUser = tokenService.getLoginUserByUser(); + if (null == loginUser) { + return R.loginExpire("登录失效!"); + } + String result = orderService.orderEstimate(orderRequest, loginUser.getUserid()); + return R.ok(result, ""); } @PostMapping("/placeOrder") @@ -100,5 +213,20 @@ return result ? R.ok() : R.fail(); } + /** + * 领取补贴金 + * + */ + @GetMapping("/receivingSubsidies") + @ApiOperation(value = "领取补贴金", tags = {"用户端-订单-领取补贴金[2.0]"}) + public R<Object> receivingSubsidies(@RequestParam("serveId") String serveId,@RequestParam("orderId") String orderId) { + // 查询补贴金 + RecoveryServe recoveryServe = recoveryServeService.getById(serveId); + if (Objects.isNull(recoveryServe)) { + return R.fail("该服务不存在!"); + } + orderClient.receiving(orderId,recoveryServe.getRecycleSubsidy()); + return R.ok(); + } } -- Gitblit v1.7.1