From 905077448a20fe1f06c9303152e83a6c9463541c Mon Sep 17 00:00:00 2001 From: huliguo <2023611923@qq.com> Date: 星期四, 10 四月 2025 19:21:54 +0800 Subject: [PATCH] 商家端 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 145 ++++++++++++++++++++++++++++++++++++------------ 1 files changed, 108 insertions(+), 37 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java index 501d173..e6290ca 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java @@ -5,6 +5,9 @@ import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.api.feignClient.*; import com.ruoyi.account.api.model.*; @@ -110,6 +113,9 @@ private ShopBalanceStatementClient shopBalanceStatementClient; @Resource + private GoodsEvaluateClient goodsEvaluateClient; + + @Resource private SystemConfigClient systemConfigClient; @Resource @@ -141,19 +147,25 @@ Goods goods = JSONObject.parseObject(goodJson, Goods.class); OrderGoodsVO orderGoodsVO = new OrderGoodsVO(); - BeanUtils.copyProperties(orderGood, orderGoodsVO); + orderGoodsVO.setGoodsId(goods.getId()); orderGoodsVO.setGoodsName(goods.getName()); orderGoodsVO.setGoodsPic(goods.getHomePagePicture()); + orderGoodsVO.setNum(order.getNum()); + orderGoodsVO.setSellingPrice(goods.getSellingPrice()); + orderGoodsVO.setIntegral(goods.getIntegral()); + orderGoodsVO.setOriginalPrice(goods.getOriginalPrice()); OrderDetailVO orderDetailVO = new OrderDetailVO(); orderDetailVO.setOrderGoodsVO(orderGoodsVO); Shop shop = shopR.getData(); + orderDetailVO.setId(order.getId()); orderDetailVO.setOrderStatus(order.getOrderStatus()); - orderDetailVO.setPoint(order.getPoint()); + orderDetailVO.setPoint(order.getPoint());//使用的积分 orderDetailVO.setOrderNumber(order.getOrderNumber()); orderDetailVO.setCreateTime(order.getCreateTime()); orderDetailVO.setTotalAmount(order.getTotalAmount()); + orderDetailVO.setPointDeductionAmount(order.getPointDeductionAmount());//积分抵扣金额 orderDetailVO.setPaymentAmount(order.getPaymentAmount()); orderDetailVO.setShopName(shop.getName()); orderDetailVO.setShopAddress(shop.getAddress()); @@ -168,6 +180,10 @@ e.printStackTrace(); throw new ServiceException("生成核销码失败"); } + //该商品是否被用户评论 + Long evaluateId = goodsEvaluateClient.getEvaluateIdByUserIdAndGoodId(goods.getId(), order.getAppUserId()).getData(); + orderDetailVO.setEvaluateId(evaluateId); + return orderDetailVO; } @@ -183,13 +199,16 @@ @Override @Transactional(rollbackFor = Exception.class) - public void writeOff(String id, Integer shopId, String technicianId) { + public void writeOff(String id, Integer shopId) { LoginUser loginUserApplet = tokenService.getLoginUserApplet(); Order order = orderMapper.selectById(id); - boolean check = check(order, shopId, loginUserApplet.getUserid()); - if (!check) { + if (order == null) { + throw new ServiceException("订单不存在"); + } + if (!order.getShopId().equals(shopId)) { throw new ServiceException("该订单与当前扫码门店不一致"); } + // 售后设置 R<BaseSetting> baseSettingR = baseSettingClient.getBaseSetting(5); @@ -207,10 +226,11 @@ order.setAfterSaleTime(LocalDateTime.now().plusDays(days)); order.setEndTime(LocalDateTime.now()); order.setCancellerAppUserId(loginUserApplet.getUserid()); - if (StringUtils.isNotEmpty(technicianId) && !"null".equals(technicianId)) { -// order.setTechnicianId(Integer.valueOf(technicianId)); - } orderMapper.updateById(order); + //店铺可用金额增加 + Shop shop = shopClient.getShopById(shopId).getData(); + shop.setCanWithdrawMoney(shop.getCanWithdrawMoney().add(order.getTotalAmount())); + shopClient.updateShop(shop); } @@ -222,7 +242,7 @@ */ @Override public PageInfo<OrderPageListVo> getOrderPageList(OrderPageList orderPageList) { - Long userid = tokenService.getLoginUser().getUserid(); + /* Long userid = tokenService.getLoginUser().getUserid(); SysUser sysUser = sysUserClient.getSysUser(userid).getData(); if (2 == sysUser.getRoleType()) { orderPageList.setShopId(sysUser.getObjectId()); @@ -290,7 +310,8 @@ } } - return pageInfo.setRecords(list); + return pageInfo.setRecords(list);*/ + return null; } /** @@ -626,13 +647,20 @@ confirmOrderVo.setCash(good.getSellingPrice()); confirmOrderVo.setPoint(good.getIntegral()); - //计算活动价格信息 - Price price = getPrice(goodId); - if (null != price) { - confirmOrderVo.setCash(price.getCash()); - confirmOrderVo.setOrderPoint(price.getPoint()); - confirmOrderVo.setEndTimeStamp(price.getEndTimeStamp()); + //是否在秒杀活动中 + GetSeckillActivityInfo info = new GetSeckillActivityInfo(); + info.setGoodsId(goodId); + GoodsSeckill goodsSeckill = seckillActivityInfoClient.getSeckillActivityInfo(info).getData(); + + if (null != goodsSeckill){ + SeckillActivityInfo activityInfo = seckillActivityInfoClient.getSeckillActivityInfoById(goodsSeckill.getSeckillActivityInfoId()).getData(); + //价格 + confirmOrderVo.setCash(goodsSeckill.getSellingPrice());//秒杀活动价格 + confirmOrderVo.setPoint(goodsSeckill.getIntegral());//秒杀活动积分价格 + confirmOrderVo.setPurchaseLimitNum(activityInfo.getMaxNum());//限购数量 } + + //判断是否是积分支付 if (type == 1) {//现金 confirmOrderVo.setOrderMoney(confirmOrderVo.getCash()); @@ -980,6 +1008,69 @@ } + @Override + public IPage<OrderPageListVo> getShopOrderList(String content, Integer status, Integer shopId, Integer pageNum, Integer pageSize) { + // 创建分页对象 + Page<Order> page = new Page<>(pageNum, pageSize); + // 构建查询条件 + QueryWrapper<Order> queryWrapper = new QueryWrapper<>(); + // 添加门店ID条件 + if (shopId != null) { + queryWrapper.eq("shop_id", shopId); + } + // 添加订单状态条件 + if (status != null) { + queryWrapper.eq("order_status", status); + } + // 模糊查询条件 + if (StringUtils.isNotBlank(content)) { + // 构建OR条件组:订单编号/商品名/手机号 + queryWrapper.and(wrapper -> wrapper + .like("order_number", content) // 订单编号 + .or() + .like("goods_name", content) // 商品名 + .or() + .inSql("app_user_id", "select id from t_app_user where phone like '%" + content + "%'") // 手机号 + ); + } + + // 执行分页查询 + IPage<Order> orderPage = orderMapper.selectPage(page, queryWrapper); + // 转换为VO对象 + return orderPage.convert(this::convertToOrderListVo); + } + + @Override + public R shopCancelOrder(Long orderId) { + Order order = this.getById(orderId); + if (Arrays.asList(5, 6, 7).contains(order.getOrderStatus())) { + return R.fail("无效的操作"); + } + if (null != order.getAfterSaleTime() && LocalDateTime.now().isAfter(order.getAfterSaleTime())) { + return R.fail("订单取消失败"); + } + order.setOrderStatus(5); + R r = refundPayMoney(order); + if (200 == r.getCode()) { + this.updateById(order); + } + return r; + } + + private OrderPageListVo convertToOrderListVo(Order order) { + OrderPageListVo vo = new OrderPageListVo(); + // 复制属性 + BeanUtils.copyProperties(order, vo); + + // 查询用户信息 + AppUser user = appUserClient.getAppUserById(order.getAppUserId()); + if (user != null) { + vo.setPhone(user.getPhone()); + } + return vo; + } + + public String getNumber(Integer size){ StringBuilder str = new StringBuilder(); for (int i = 0; i < size; i++) { @@ -987,27 +1078,7 @@ } return str.toString(); } - /** - * 根据商品的价格配置体系获取商品当前的价格 - */ - public Price getPrice( Integer goodsId){ - //判断是否有在秒杀活动时间中的商品 - Price price = new Price(); - GetSeckillActivityInfo getSeckillActivityInfo = new GetSeckillActivityInfo(); - getSeckillActivityInfo.setGoodsId(goodsId); - GoodsSeckill goodsSeckill = seckillActivityInfoClient.getSeckillActivityInfo(getSeckillActivityInfo).getData(); - //没有秒杀活动 - if(null == goodsSeckill ){ - return null; - } - //秒杀活动价格 - price.setCash(goodsSeckill.getSellingPrice()); - //计算对应积分 - price.setPoint(getPoint(price.getCash())); - //结束时间 - price.setEndTimeStamp(goodsSeckill.getEndTime()); - return price; - } + /** * 获取现金对应积分 */ -- Gitblit v1.7.1