From 17abf0608f62cdd318dba3e7b12a32ea486cb482 Mon Sep 17 00:00:00 2001 From: huliguo <2023611923@qq.com> Date: 星期一, 21 四月 2025 20:34:03 +0800 Subject: [PATCH] 导入导出,财务统计 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 352 ++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 243 insertions(+), 109 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..ceb0e8a 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.*; @@ -54,12 +57,12 @@ import java.math.RoundingMode; import java.text.SimpleDateFormat; -import java.time.LocalDateTime; +import java.time.*; -import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -110,6 +113,9 @@ private ShopBalanceStatementClient shopBalanceStatementClient; @Resource + private GoodsEvaluateClient goodsEvaluateClient; + + @Resource private SystemConfigClient systemConfigClient; @Resource @@ -139,21 +145,35 @@ OrderGood orderGood = orderGoodMapper.selectOne(new LambdaQueryWrapper<OrderGood>().eq(OrderGood::getOrderId, orderId)); String goodJson = orderGood.getGoodJson(); Goods goods = JSONObject.parseObject(goodJson, Goods.class); + GoodsSeckill goodsSeckill = JSON.parseObject(orderGood.getSeckillJson(), GoodsSeckill.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()); + if (null!=goodsSeckill){ + orderGoodsVO.setSellingPrice(goodsSeckill.getSellingPrice()); + orderGoodsVO.setIntegral(goodsSeckill.getIntegral()); + }else { + 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 +188,14 @@ e.printStackTrace(); throw new ServiceException("生成核销码失败"); } + if(3!=order.getOrderStatus()){ + //不属于未使用的,应该有个核销\取消时间 + orderDetailVO.setEndTime(order.getEndTime()); + } + //该商品是否被用户评论 + Long evaluateId = goodsEvaluateClient.getEvaluateIdByOrderId(order.getId()).getData(); + orderDetailVO.setEvaluateId(evaluateId); + return orderDetailVO; } @@ -183,13 +211,19 @@ @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("该订单与当前扫码门店不一致"); } + if (order.getOrderStatus()!=3){ + throw new ServiceException("订单已被核销过"); + } + // 售后设置 R<BaseSetting> baseSettingR = baseSettingClient.getBaseSetting(5); @@ -207,10 +241,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); } @@ -221,27 +256,7 @@ * @return */ @Override - public PageInfo<OrderPageListVo> getOrderPageList(OrderPageList orderPageList) { - Long userid = tokenService.getLoginUser().getUserid(); - SysUser sysUser = sysUserClient.getSysUser(userid).getData(); - if (2 == sysUser.getRoleType()) { - orderPageList.setShopId(sysUser.getObjectId()); - } - //搜索条件,用户姓名 - if (StringUtils.isNotEmpty(orderPageList.getUserName())) { - List<AppUser> data = appUserClient.getAppUserByNameNoFilter(orderPageList.getUserName()).getData(); - List<Long> collect = data.stream().map(AppUser::getId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(collect)) { - return new PageInfo<>(); - } - if (null != orderPageList.getAppUserIds()) { - List<Long> appUserIds = orderPageList.getAppUserIds(); - appUserIds.addAll(collect); - orderPageList.setAppUserIds(appUserIds); - } else { - orderPageList.setAppUserIds(collect); - } - } + public PageInfo<OrderManagePageListVO> getOrderPageList(OrderPageList orderPageList) { //搜索条件,用户电话 if (StringUtils.isNotEmpty(orderPageList.getPhone())) { List<AppUser> data = appUserClient.getAppUserByPhoneNoFilter(orderPageList.getPhone()).getData(); @@ -266,27 +281,21 @@ } - PageInfo<OrderPageListVo> pageInfo = new PageInfo<>(orderPageList.getPageCurr(), orderPageList.getPageSize()); + PageInfo<OrderManagePageListVO> pageInfo = new PageInfo<>(orderPageList.getPageCurr(), orderPageList.getPageSize()); - List<OrderPageListVo> list = this.baseMapper.getOrderPageList(pageInfo, orderPageList); - for (OrderPageListVo orderPageListVo : list) { + List<OrderManagePageListVO> list = this.baseMapper.getOrderPageList(pageInfo, orderPageList); + + for (OrderManagePageListVO orderPageListVo : list) { Long appUserId = orderPageListVo.getAppUserId(); AppUser appUser = appUserClient.getAppUserById(appUserId); if (null != appUser) { orderPageListVo.setUserName(appUser.getName()); orderPageListVo.setPhone(appUser.getPhone()); } - String expressJson = orderPageListVo.getExpressJson(); - if (StringUtils.isNotEmpty(expressJson) && !expressJson.equals("NULL")) { - JSONObject jsonObject = null; - try { - jsonObject = JSONObject.parseObject(expressJson); - String companyName = ExpressCompanyMap.getCompanyNameByCode(jsonObject.getString("com")); - orderPageListVo.setExpressCompany(companyName); - orderPageListVo.setExpressNum(jsonObject.getString("num")); - } catch (Exception e) { - } - + //店铺名称 + Shop shop = shopClient.getShopById(orderPageListVo.getShopId()).getData(); + if (null != shop) { + orderPageListVo.setShopName(shop.getName()); } } @@ -355,12 +364,10 @@ @Override public R cancelOrder(Long orderId) { Order order = this.getById(orderId); - if (Arrays.asList(5, 6, 7).contains(order.getOrderStatus())) { + if (Arrays.asList(4,5,8).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()) { @@ -375,9 +382,20 @@ */ public R refundPayMoney(Order order) { //开始退款 - //先回退积分 + BigDecimal paymentAmount = order.getPaymentAmount(); + if (BigDecimal.ZERO.compareTo(order.getPaymentAmount()) < 0) {//支付的金额是否大于0 + //微信退款 + RefundResult refund = PaymentUtil.refund(order.getOrderNumber(), "R" + order.getOrderNumber(), paymentAmount.doubleValue(), "/order/order/refundPayMoneyCallback"); + if (!"100".equals(refund.getRa_Status())) { + return R.fail(refund.getRc_CodeMsg());//退款失败 + } + } + //退款成功再回退积分 AppUser appUser = appUserClient.getAppUserById(order.getAppUserId()); if (order.getPoint()>0) { + if(null==appUser.getCancelPoint()){ + appUser.setCancelPoint(0); + } //返回订单抵扣积分 Integer historicalPoint = appUser.getAvailablePoint(); Integer availablePoint = appUser.getAvailablePoint() + order.getPoint();//可用积分 @@ -385,6 +403,7 @@ appUser.setAvailablePoint(availablePoint); appUser.setCancelPoint(cancelPoint); + appUser.setTotalPoint(appUser.getTotalPoint() + order.getPoint()); appUserClient.editAppUserById(appUser); //构建积分流水 UserPoint userPoint = new UserPoint(); @@ -398,15 +417,6 @@ userPointClient.saveUserPoint(userPoint); } - BigDecimal paymentAmount = order.getPaymentAmount(); - if (BigDecimal.ZERO.compareTo(order.getPaymentAmount()) < 0) {//支付的金额是否大于0 - //微信退款 - RefundResult refund = PaymentUtil.refund(order.getOrderNumber(), "R" + order.getOrderNumber(), paymentAmount.doubleValue(), "/order/order/refundPayMoneyCallback"); - if (!"100".equals(refund.getRa_Status())) { - return R.fail(refund.getRc_CodeMsg());//退款失败 - } - } - order.setRefundStatus(2); order.setRefundTime(LocalDateTime.now()); @@ -415,13 +425,20 @@ goodsClient.editGoodsNum(orderGood.getGoodsId(), -1); //获取商品json Goods good = JSON.parseObject(orderGood.getGoodJson(), Goods.class); + GoodsSeckill goodsSeckill = JSON.parseObject(orderGood.getSeckillJson(), GoodsSeckill.class); //门店减少冻结资金 即减少余额, 冻结资金=余额-可用资金 Shop shop = shopClient.getShopById(order.getShopId()).getData(); BigDecimal historicalBalance=shop.getBalance();//历史余额 - BigDecimal variableAmount=good.getSellingPrice();//变动金额 - BigDecimal balance=shop.getBalance().subtract(good.getSellingPrice());//变动后余额 + BigDecimal variableAmount=BigDecimal.ZERO;//变动金额 + if (null != goodsSeckill) { + variableAmount=goodsSeckill.getSellingPrice(); + }else { + variableAmount=good.getSellingPrice(); + } + + BigDecimal balance=shop.getBalance().subtract(variableAmount);//变动后余额 shop.setBalance(balance); shopClient.updateShop(shop); @@ -511,6 +528,8 @@ orderInfo.setOrderNumber(order.getOrderNumber()); orderInfo.setOrderStatus(order.getOrderStatus()); orderInfo.setCreateTime(order.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + orderInfo.setPointDeductionAmount(order.getPointDeductionAmount()); + AppUser appUser = appUserClient.getAppUserById(order.getAppUserId()); if (null != appUser) { orderInfo.setUserName(appUser.getName()); @@ -527,19 +546,16 @@ orderInfo.setPaymentAmount(order.getPaymentAmount()); - List<OrderGood> orderGoods = orderGoodMapper.selectList(new LambdaQueryWrapper<OrderGood>().eq(OrderGood::getOrderId, orderId).eq(OrderGood::getDelFlag, 0)); - int sum = orderGoods.stream().mapToInt(OrderGood::getNum).sum(); - orderInfo.setGoodsNum(sum); - List<Object> goodsJson = new ArrayList<>(); - for (OrderGood orderGood : orderGoods) { - Goods goods = JSON.parseObject(orderGood.getGoodJson(), Goods.class); - Map<String, Object> map = new HashMap<>(); - map.put("name", goods.getName()); - map.put("imgUrl", goods.getHomePagePicture()); - map.put("number", orderGood.getNum()); - goodsJson.add(map); + OrderGood orderGood = orderGoodMapper.selectOne(new LambdaQueryWrapper<OrderGood>().eq(OrderGood::getOrderId, orderId).eq(OrderGood::getDelFlag, 0)); + orderInfo.setGoodsNum(1); + orderInfo.setGoodsJson(orderGood.getGoodJson()); + if (null != orderGood.getSeckillJson()&& !"".equals(orderGood.getSeckillJson())) { + orderInfo.setSeckillJson(orderGood.getSeckillJson()); + orderInfo.setActivityName("秒杀活动"); } - orderInfo.setGoodsJson(JSON.toJSONString(goodsJson)); + + + orderInfo.setPoint(order.getPoint()); if (null != order.getAfterSaleTime()) { orderInfo.setAfterSaleTime(order.getAfterSaleTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); @@ -626,25 +642,38 @@ 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());//限购数量 + confirmOrderVo.setEndTimeStamp(activityInfo.getEndTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli());//结束时间戳 } + + //判断是否是积分支付 if (type == 1) {//现金 confirmOrderVo.setOrderMoney(confirmOrderVo.getCash()); + Integer availablePoint = appUser.getAvailablePoint();//用户可用积分 + + BigDecimal maxPointDeductionAmount = getCashByPoint(availablePoint);//最大可抵扣金额 + //计算积分抵扣的金额 将积分转为金额,去掉小数 - BigDecimal deduction=getCashByPoint(confirmOrderVo.getResidualPoint()); + //实际抵扣金额 + BigDecimal deduction= maxPointDeductionAmount.min(confirmOrderVo.getCash()); confirmOrderVo.setDeduction(deduction); }else {//积分 - confirmOrderVo.setOrderPoint(good.getIntegral()); + confirmOrderVo.setOrderPoint(confirmOrderVo.getPoint()); } //限购检查 //判断当前数量是否已经超出限购数量(需要计算已经购买的数量) - if(null == good.getPurchaseLimit() || -1 == good.getPurchaseLimit()){ + if(null == confirmOrderVo.getPurchaseLimitNum() || -1 == confirmOrderVo.getPurchaseLimitNum()){ confirmOrderVo.setIsPurchaseLimit(false); confirmOrderVo.setPurchaseLimitNum(-1); }else{ @@ -659,7 +688,7 @@ sum = orderGoodList.stream().mapToInt(OrderGood::getNum).sum(); } confirmOrderVo.setIsPurchaseLimit((1 + sum) > good.getPurchaseLimit()); - confirmOrderVo.setPurchaseLimitNum(good.getPurchaseLimit() - sum); + confirmOrderVo.setPurchaseLimitNum(confirmOrderVo.getPurchaseLimitNum() - sum); } return confirmOrderVo; @@ -675,6 +704,7 @@ int type=1;//商品类型 1=普通商品,2=秒杀商品 //商品信息 Goods goods = goodsClient.getGoodsById(orderPayment.getGoodId()).getData(); + String goodsJson= JSON.toJSONString(goods); if (null == goods || 1==goods.getDelFlag()){ return R.fail( "商品不存在"); } @@ -762,13 +792,18 @@ order.setPointDeductionAmount(pointDeductionAmount.setScale(2, RoundingMode.HALF_EVEN)); order.setPaymentAmount(paymentMoney);//实际支付价格 order.setPoint(orderPoint);//使用积分 - order.setPayMethod(orderPayment.getPaymentType());//支付方式 + if (orderPayment.getPaymentType()==3 && orderPoint>0){//微信支付 但支付的积分也大于0 + order.setPayMethod(4);//组合支付 + }else { + order.setPayMethod(orderPayment.getPaymentType());//积分或者微信 + } order.setPayStatus(1); order.setShopId(orderPayment.getShopId()); order.setDelFlag(0); order.setCreateTime(LocalDateTime.now()); - orderMapper.insert(order); + this.save(order); + //构建订单明细数据 OrderGood orderGood = new OrderGood(); @@ -779,7 +814,7 @@ if (2==type){ orderGood.setSeckillJson(JSON.toJSONString(goodsSeckill)); } - orderGood.setGoodJson(JSON.toJSONString(goods)); + orderGood.setGoodJson(goodsJson); orderGood.setDelFlag(0); orderGood.setCreateTime(LocalDateTime.now()); orderGood.setCashPayment(orderPayment.getPaymentType()==1 ? 1 : 0); @@ -794,6 +829,13 @@ } //判断积分是否为零,积分支付 if (0 != order.getPoint()){ + if (null==appUser.getAvailablePoint()){ + appUser.setAvailablePoint(0); + } + if (null==appUser.getExchangePoint()){ + appUser.setExchangePoint(0); + } + //积分支付 Integer historicalPoint = appUser.getAvailablePoint();//历史积分 Integer availablePoint = historicalPoint - orderPoint;//可用积分 @@ -801,6 +843,7 @@ //扣减订单支付积分 appUser.setAvailablePoint(availablePoint); appUser.setExchangePoint(exchangePoint ); + appUser.setTotalPoint(appUser.getTotalPoint() + order.getPoint());//总积分 //构建积分流水记录 UserPoint userPoint = new UserPoint(); userPoint.setType(4);//兑换商品 @@ -845,6 +888,10 @@ //门店增加冻结资金 即增加余额, 冻结资金=余额-可用资金 Shop shop = shopClient.getShopById(order.getShopId()).getData(); + if (null==shop.getBalance()){ + shop.setBalance(BigDecimal.ZERO); + } + BigDecimal historicalBalance=shop.getBalance();//历史余额 BigDecimal variableAmount=goods.getSellingPrice();//变动金额 BigDecimal balance=shop.getBalance().add(goods.getSellingPrice());//变动后余额 @@ -899,11 +946,16 @@ //商品销量增加 goodsClient.editGoodsNum(orderGood.getGoodsId(), 1); Goods goods = JSON.parseObject(orderGood.getGoodJson(), Goods.class); - + GoodsSeckill goodsSeckill = JSON.parseObject(orderGood.getSeckillJson(), GoodsSeckill.class); //门店增加冻结资金 即增加金额, 冻结资金=余额-可用资金 Shop shop = shopClient.getShopById(order.getShopId()).getData(); BigDecimal historicalBalance=shop.getBalance();//历史余额 - BigDecimal variableAmount=goods.getSellingPrice();//变动余额 + BigDecimal variableAmount=BigDecimal.ZERO;//变动金额 + if (null != goodsSeckill) { + variableAmount=goodsSeckill.getSellingPrice(); + }else { + variableAmount=goods.getSellingPrice(); + } BigDecimal balance=shop.getBalance().add(variableAmount);//变动后余额 shop.setBalance(balance); @@ -961,6 +1013,7 @@ Integer cancelPoint = appUser.getCancelPoint() + order.getPoint();//取消订单积分 appUser.setAvailablePoint(availablePoint); appUser.setCancelPoint(cancelPoint); + appUser.setTotalPoint(appUser.getTotalPoint() + order.getPoint()); //构建积分流水记录 UserPoint userPoint = new UserPoint(); @@ -980,6 +1033,107 @@ } + @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&&status==4) { //4-已完成 8-已评价 + queryWrapper.in("order_status",Arrays.asList(4,8)); + } + if (status != null&&status!=4) {//3-待核销 5-已取消 + 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); + order.setEndTime(LocalDateTime.now()); + R r = refundPayMoney(order); + if (200 == r.getCode()) { + this.updateById(order); + } + return r; + } + + /** + * 后台-工作台-折线图 + * @param startTime + * @param endTime + * @return + */ + @Override + public List<OrderStatisticsDetail> getOrderListGroupByDate(LocalDate startTime, LocalDate endTime) { + // 查询数据库获取原始数据 + List<OrderStatisticsDetail> rawData = orderMapper.getOrderListGroupByDate( + startTime.atTime(0,0, 0), + endTime.atTime(23,59,59) + ); + + // 创建完整日期范围的映射 + Map<LocalDate, OrderStatisticsDetail> dateMap = rawData.stream() + .collect(Collectors.toMap( + OrderStatisticsDetail::getDateTime, + Function.identity() + )); + + // 生成完整日期序列并填充缺失数据 + List<OrderStatisticsDetail> completeList = new ArrayList<>(); + for (LocalDate date = startTime; !date.isAfter(endTime); date = date.plusDays(1)) { + if (dateMap.containsKey(date)) { + completeList.add(dateMap.get(date)); + } else { + completeList.add(new OrderStatisticsDetail(date, 0, BigDecimal.ZERO)); + } + } + return completeList; + } + + + 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()); + } + vo.setIdStr(order.getId().toString()); + return vo; + } + + public String getNumber(Integer size){ StringBuilder str = new StringBuilder(); for (int i = 0; i < size; i++) { @@ -987,27 +1141,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